From 7143784af56601d35f378ee246af0f37e9987a23 Mon Sep 17 00:00:00 2001 From: pcheremu Date: Wed, 13 Dec 2023 11:09:54 +0100 Subject: [PATCH] test: refactoring --- .github/workflows/app-e2e.yml | 15 - .../BootloaderUtilities.dbg.json | 4 - .../BootloaderUtilities.json | 118 - .../IAccountCodeStorage.dbg.json | 4 - .../IAccountCodeStorage.json | 118 - .../IBootloaderUtilities.dbg.json | 4 - .../IBootloaderUtilities.json | 118 - .../IBytecodeCompressor.dbg.json | 4 - .../IBytecodeCompressor.json | 36 - .../IContractDeployer.dbg.json | 4 - .../IContractDeployer.json | 316 --- .../IEthToken.sol/IEthToken.dbg.json | 4 - .../interfaces/IEthToken.sol/IEthToken.json | 206 -- .../IImmutableSimulator.dbg.json | 4 - .../IImmutableSimulator.json | 66 - .../IKnownCodesStorage.dbg.json | 4 - .../IKnownCodesStorage.json | 91 - .../IL1Messenger.sol/IL1Messenger.dbg.json | 4 - .../IL1Messenger.sol/IL1Messenger.json | 56 - .../INonceHolder.sol/INonceHolder.dbg.json | 4 - .../INonceHolder.sol/INonceHolder.json | 229 -- .../IPaymaster.sol/IPaymaster.dbg.json | 4 - .../interfaces/IPaymaster.sol/IPaymaster.json | 248 -- .../IPaymasterFlow.dbg.json | 4 - .../IPaymasterFlow.sol/IPaymasterFlow.json | 48 - .../ISystemContext.dbg.json | 4 - .../ISystemContext.sol/ISystemContext.json | 185 -- .../EfficientCall.sol/EfficientCall.dbg.json | 4 - .../EfficientCall.sol/EfficientCall.json | 11 - .../RLPEncoder.sol/RLPEncoder.dbg.json | 4 - .../libraries/RLPEncoder.sol/RLPEncoder.json | 11 - .../ISystemContract.dbg.json | 4 - .../ISystemContract.json | 11 - .../SystemContractHelper.dbg.json | 4 - .../SystemContractHelper.json | 11 - .../SystemContractsCaller.dbg.json | 4 - .../SystemContractsCaller.json | 11 - .../TransactionHelper.dbg.json | 4 - .../TransactionHelper.json | 11 - .../libraries/Utils.sol/Utils.dbg.json | 4 - .../libraries/Utils.sol/Utils.json | 11 - .../token/ERC20/IERC20.sol/IERC20.dbg.json | 4 - .../token/ERC20/IERC20.sol/IERC20.json | 195 -- .../IERC20Permit.sol/IERC20Permit.dbg.json | 4 - .../IERC20Permit.sol/IERC20Permit.json | 87 - .../utils/SafeERC20.sol/SafeERC20.dbg.json | 4 - .../ERC20/utils/SafeERC20.sol/SafeERC20.json | 11 - .../utils/Address.sol/Address.dbg.json | 4 - .../utils/Address.sol/Address.json | 11 - .../access/Ownable.sol/Ownable.dbg.json | 4 - .../contracts/access/Ownable.sol/Ownable.json | 64 - .../token/ERC20/ERC20.sol/ERC20.dbg.json | 4 - .../token/ERC20/ERC20.sol/ERC20.json | 298 -- .../token/ERC20/IERC20.sol/IERC20.dbg.json | 4 - .../token/ERC20/IERC20.sol/IERC20.json | 195 -- .../IERC20Metadata.dbg.json | 4 - .../IERC20Metadata.sol/IERC20Metadata.json | 234 -- .../utils/SafeERC20.sol/SafeERC20.dbg.json | 4 - .../ERC20/utils/SafeERC20.sol/SafeERC20.json | 11 - .../token/ERC721/ERC721.sol/ERC721.dbg.json | 4 - .../token/ERC721/ERC721.sol/ERC721.json | 358 --- .../token/ERC721/IERC721.sol/IERC721.dbg.json | 4 - .../token/ERC721/IERC721.sol/IERC721.json | 297 -- .../IERC721Receiver.dbg.json | 4 - .../IERC721Receiver.sol/IERC721Receiver.json | 46 - .../ERC721URIStorage.dbg.json | 4 - .../ERC721URIStorage.json | 342 --- .../IERC721Metadata.dbg.json | 4 - .../IERC721Metadata.sol/IERC721Metadata.json | 342 --- .../utils/Address.sol/Address.dbg.json | 4 - .../contracts/utils/Address.sol/Address.json | 11 - .../utils/Context.sol/Context.dbg.json | 4 - .../contracts/utils/Context.sol/Context.json | 11 - .../utils/Counters.sol/Counters.dbg.json | 4 - .../utils/Counters.sol/Counters.json | 11 - .../utils/Strings.sol/Strings.dbg.json | 4 - .../contracts/utils/Strings.sol/Strings.json | 11 - .../introspection/ERC165.sol/ERC165.dbg.json | 4 - .../introspection/ERC165.sol/ERC165.json | 31 - .../IERC165.sol/IERC165.dbg.json | 4 - .../introspection/IERC165.sol/IERC165.json | 31 - .../92cb10df65f6d26368974b9012699389.json | 1 - .../contracts/Caller.sol/GCaller.dbg.json | 4 - .../contracts/Caller.sol/GCaller.json | 75 - .../contracts/Caller.sol/IGreeter2.dbg.json | 4 - .../contracts/Caller.sol/IGreeter2.json | 38 - .../contracts/Greeter.sol/Greeter.dbg.json | 4 - .../contracts/Greeter.sol/Greeter.json | 62 - .../artifacts-zk/contracts/L1.sol/L1.dbg.json | 4 - .../artifacts-zk/contracts/L1.sol/L1.json | 293 -- .../artifacts-zk/contracts/L2.sol/L2.dbg.json | 4 - .../artifacts-zk/contracts/L2.sol/L2.json | 287 -- .../contracts/Middle.sol/IGreeter.dbg.json | 4 - .../contracts/Middle.sol/IGreeter.json | 38 - .../contracts/Middle.sol/Middle.dbg.json | 4 - .../contracts/Middle.sol/Middle.json | 62 - .../MultiTransfer.sol/TokenF2L2.dbg.json | 4 - .../MultiTransfer.sol/TokenF2L2.json | 108 - .../contracts/MyERC20.sol/MyERC20.dbg.json | 4 - .../contracts/MyERC20.sol/MyERC20.json | 327 --- .../contracts/MyNFT.sol/MyNFT.dbg.json | 4 - .../contracts/MyNFT.sol/MyNFT.json | 423 --- .../MyPaymaster.sol/MyPaymaster.dbg.json | 4 - .../MyPaymaster.sol/MyPaymaster.json | 276 -- .../contracts/Root.sol/Root.dbg.json | 4 - .../artifacts-zk/contracts/Root.sol/Root.json | 62 - .../BootloaderUtilities.dbg.json | 4 - .../BootloaderUtilities.json | 117 - .../IAccountCodeStorage.dbg.json | 4 - .../IAccountCodeStorage.json | 117 - .../IBootloaderUtilities.dbg.json | 4 - .../IBootloaderUtilities.json | 117 - .../IBytecodeCompressor.dbg.json | 4 - .../IBytecodeCompressor.json | 35 - .../IContractDeployer.dbg.json | 4 - .../IContractDeployer.json | 315 --- .../IEthToken.sol/IEthToken.dbg.json | 4 - .../interfaces/IEthToken.sol/IEthToken.json | 205 -- .../IImmutableSimulator.dbg.json | 4 - .../IImmutableSimulator.json | 65 - .../IKnownCodesStorage.dbg.json | 4 - .../IKnownCodesStorage.json | 90 - .../IL1Messenger.sol/IL1Messenger.dbg.json | 4 - .../IL1Messenger.sol/IL1Messenger.json | 55 - .../INonceHolder.sol/INonceHolder.dbg.json | 4 - .../INonceHolder.sol/INonceHolder.json | 228 -- .../IPaymaster.sol/IPaymaster.dbg.json | 4 - .../interfaces/IPaymaster.sol/IPaymaster.json | 247 -- .../IPaymasterFlow.dbg.json | 4 - .../IPaymasterFlow.sol/IPaymasterFlow.json | 47 - .../ISystemContext.dbg.json | 4 - .../ISystemContext.sol/ISystemContext.json | 184 -- .../EfficientCall.sol/EfficientCall.dbg.json | 4 - .../EfficientCall.sol/EfficientCall.json | 10 - .../RLPEncoder.sol/RLPEncoder.dbg.json | 4 - .../libraries/RLPEncoder.sol/RLPEncoder.json | 10 - .../ISystemContract.dbg.json | 4 - .../ISystemContract.json | 10 - .../SystemContractHelper.dbg.json | 4 - .../SystemContractHelper.json | 10 - .../SystemContractsCaller.dbg.json | 4 - .../SystemContractsCaller.json | 10 - .../TransactionHelper.dbg.json | 4 - .../TransactionHelper.json | 10 - .../libraries/Utils.sol/Utils.dbg.json | 4 - .../libraries/Utils.sol/Utils.json | 10 - .../token/ERC20/IERC20.sol/IERC20.dbg.json | 4 - .../token/ERC20/IERC20.sol/IERC20.json | 194 -- .../IERC20Permit.sol/IERC20Permit.dbg.json | 4 - .../IERC20Permit.sol/IERC20Permit.json | 86 - .../utils/SafeERC20.sol/SafeERC20.dbg.json | 4 - .../ERC20/utils/SafeERC20.sol/SafeERC20.json | 10 - .../utils/Address.sol/Address.dbg.json | 4 - .../utils/Address.sol/Address.json | 10 - .../access/Ownable.sol/Ownable.dbg.json | 4 - .../contracts/access/Ownable.sol/Ownable.json | 63 - .../token/ERC20/ERC20.sol/ERC20.dbg.json | 4 - .../token/ERC20/ERC20.sol/ERC20.json | 297 -- .../token/ERC20/IERC20.sol/IERC20.dbg.json | 4 - .../token/ERC20/IERC20.sol/IERC20.json | 194 -- .../IERC20Metadata.dbg.json | 4 - .../IERC20Metadata.sol/IERC20Metadata.json | 233 -- .../utils/SafeERC20.sol/SafeERC20.dbg.json | 4 - .../ERC20/utils/SafeERC20.sol/SafeERC20.json | 10 - .../token/ERC721/ERC721.sol/ERC721.dbg.json | 4 - .../token/ERC721/ERC721.sol/ERC721.json | 357 --- .../token/ERC721/IERC721.sol/IERC721.dbg.json | 4 - .../token/ERC721/IERC721.sol/IERC721.json | 296 -- .../IERC721Receiver.dbg.json | 4 - .../IERC721Receiver.sol/IERC721Receiver.json | 45 - .../ERC721URIStorage.dbg.json | 4 - .../ERC721URIStorage.json | 341 --- .../IERC721Metadata.dbg.json | 4 - .../IERC721Metadata.sol/IERC721Metadata.json | 341 --- .../utils/Address.sol/Address.dbg.json | 4 - .../contracts/utils/Address.sol/Address.json | 10 - .../utils/Context.sol/Context.dbg.json | 4 - .../contracts/utils/Context.sol/Context.json | 10 - .../utils/Counters.sol/Counters.dbg.json | 4 - .../utils/Counters.sol/Counters.json | 10 - .../utils/Strings.sol/Strings.dbg.json | 4 - .../contracts/utils/Strings.sol/Strings.json | 10 - .../introspection/ERC165.sol/ERC165.dbg.json | 4 - .../introspection/ERC165.sol/ERC165.json | 30 - .../IERC165.sol/IERC165.dbg.json | 4 - .../introspection/IERC165.sol/IERC165.json | 30 - .../e49535a141eefaebe6d9aa3bc85bbb11.json | 1 - .../contracts/Caller.sol/GCaller.dbg.json | 4 - .../contracts/Caller.sol/GCaller.json | 74 - .../contracts/Caller.sol/IGreeter2.dbg.json | 4 - .../contracts/Caller.sol/IGreeter2.json | 37 - .../contracts/Greeter.sol/Greeter.dbg.json | 4 - .../contracts/Greeter.sol/Greeter.json | 61 - .../artifacts/contracts/L1.sol/L1.dbg.json | 4 - .../artifacts/contracts/L1.sol/L1.json | 292 -- .../artifacts/contracts/L2.sol/L2.dbg.json | 4 - .../artifacts/contracts/L2.sol/L2.json | 286 -- .../contracts/Middle.sol/IGreeter.dbg.json | 4 - .../contracts/Middle.sol/IGreeter.json | 37 - .../contracts/Middle.sol/Middle.dbg.json | 4 - .../contracts/Middle.sol/Middle.json | 61 - .../MultiTransfer.sol/TokenF2L2.dbg.json | 4 - .../MultiTransfer.sol/TokenF2L2.json | 107 - .../contracts/MyERC20.sol/MyERC20.dbg.json | 4 - .../contracts/MyERC20.sol/MyERC20.json | 326 --- .../contracts/MyNFT.sol/MyNFT.dbg.json | 4 - .../artifacts/contracts/MyNFT.sol/MyNFT.json | 422 --- .../MyPaymaster.sol/MyPaymaster.dbg.json | 4 - .../MyPaymaster.sol/MyPaymaster.json | 275 -- .../contracts/Root.sol/Root.dbg.json | 4 - .../artifacts/contracts/Root.sol/Root.json | 61 - .../cache-zk/solidity-files-cache.json | 2397 ---------------- .../playbook/cache/solidity-files-cache.json | 2497 ----------------- 213 files changed, 18395 deletions(-) delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/BootloaderUtilities.sol/BootloaderUtilities.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/BootloaderUtilities.sol/BootloaderUtilities.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IAccountCodeStorage.sol/IAccountCodeStorage.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IAccountCodeStorage.sol/IAccountCodeStorage.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBootloaderUtilities.sol/IBootloaderUtilities.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBootloaderUtilities.sol/IBootloaderUtilities.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBytecodeCompressor.sol/IBytecodeCompressor.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBytecodeCompressor.sol/IBytecodeCompressor.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IContractDeployer.sol/IContractDeployer.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IContractDeployer.sol/IContractDeployer.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IEthToken.sol/IEthToken.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IEthToken.sol/IEthToken.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IImmutableSimulator.sol/IImmutableSimulator.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IImmutableSimulator.sol/IImmutableSimulator.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IKnownCodesStorage.sol/IKnownCodesStorage.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IKnownCodesStorage.sol/IKnownCodesStorage.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IL1Messenger.sol/IL1Messenger.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IL1Messenger.sol/IL1Messenger.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/INonceHolder.sol/INonceHolder.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/INonceHolder.sol/INonceHolder.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymaster.sol/IPaymaster.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymaster.sol/IPaymaster.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymasterFlow.sol/IPaymasterFlow.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymasterFlow.sol/IPaymasterFlow.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/ISystemContext.sol/ISystemContext.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/ISystemContext.sol/ISystemContext.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/libraries/EfficientCall.sol/EfficientCall.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/libraries/EfficientCall.sol/EfficientCall.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/libraries/RLPEncoder.sol/RLPEncoder.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/libraries/RLPEncoder.sol/RLPEncoder.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractHelper.sol/ISystemContract.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractHelper.sol/ISystemContract.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractHelper.sol/SystemContractHelper.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractHelper.sol/SystemContractHelper.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractsCaller.sol/SystemContractsCaller.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractsCaller.sol/SystemContractsCaller.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/libraries/TransactionHelper.sol/TransactionHelper.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/libraries/TransactionHelper.sol/TransactionHelper.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/libraries/Utils.sol/Utils.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/libraries/Utils.sol/Utils.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/IERC20.sol/IERC20.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/IERC20.sol/IERC20.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/extensions/IERC20Permit.sol/IERC20Permit.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/extensions/IERC20Permit.sol/IERC20Permit.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/utils/SafeERC20.sol/SafeERC20.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/utils/SafeERC20.sol/SafeERC20.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/utils/Address.sol/Address.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/utils/Address.sol/Address.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/access/Ownable.sol/Ownable.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/access/Ownable.sol/Ownable.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol/SafeERC20.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol/SafeERC20.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/token/ERC721/ERC721.sol/ERC721.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/token/ERC721/ERC721.sol/ERC721.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/token/ERC721/IERC721.sol/IERC721.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/token/ERC721/IERC721.sol/IERC721.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol/IERC721Receiver.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol/IERC721Receiver.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol/ERC721URIStorage.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol/ERC721URIStorage.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol/IERC721Metadata.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol/IERC721Metadata.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/utils/Address.sol/Address.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/utils/Address.sol/Address.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/utils/Context.sol/Context.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/utils/Context.sol/Context.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/utils/Counters.sol/Counters.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/utils/Counters.sol/Counters.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/utils/Strings.sol/Strings.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/utils/Strings.sol/Strings.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/utils/introspection/ERC165.sol/ERC165.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/utils/introspection/ERC165.sol/ERC165.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/utils/introspection/IERC165.sol/IERC165.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/utils/introspection/IERC165.sol/IERC165.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/build-info/92cb10df65f6d26368974b9012699389.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/contracts/Caller.sol/GCaller.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/contracts/Caller.sol/GCaller.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/contracts/Caller.sol/IGreeter2.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/contracts/Caller.sol/IGreeter2.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/contracts/Greeter.sol/Greeter.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/contracts/Greeter.sol/Greeter.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/contracts/L1.sol/L1.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/contracts/L1.sol/L1.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/contracts/L2.sol/L2.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/contracts/L2.sol/L2.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/contracts/Middle.sol/IGreeter.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/contracts/Middle.sol/IGreeter.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/contracts/Middle.sol/Middle.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/contracts/Middle.sol/Middle.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/contracts/MultiTransfer.sol/TokenF2L2.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/contracts/MultiTransfer.sol/TokenF2L2.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/contracts/MyERC20.sol/MyERC20.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/contracts/MyERC20.sol/MyERC20.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/contracts/MyNFT.sol/MyNFT.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/contracts/MyNFT.sol/MyNFT.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/contracts/MyPaymaster.sol/MyPaymaster.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/contracts/MyPaymaster.sol/MyPaymaster.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/contracts/Root.sol/Root.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts-zk/contracts/Root.sol/Root.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/BootloaderUtilities.sol/BootloaderUtilities.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/BootloaderUtilities.sol/BootloaderUtilities.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IAccountCodeStorage.sol/IAccountCodeStorage.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IAccountCodeStorage.sol/IAccountCodeStorage.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBootloaderUtilities.sol/IBootloaderUtilities.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBootloaderUtilities.sol/IBootloaderUtilities.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBytecodeCompressor.sol/IBytecodeCompressor.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBytecodeCompressor.sol/IBytecodeCompressor.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IContractDeployer.sol/IContractDeployer.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IContractDeployer.sol/IContractDeployer.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IEthToken.sol/IEthToken.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IEthToken.sol/IEthToken.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IImmutableSimulator.sol/IImmutableSimulator.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IImmutableSimulator.sol/IImmutableSimulator.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IKnownCodesStorage.sol/IKnownCodesStorage.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IKnownCodesStorage.sol/IKnownCodesStorage.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IL1Messenger.sol/IL1Messenger.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IL1Messenger.sol/IL1Messenger.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/INonceHolder.sol/INonceHolder.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/INonceHolder.sol/INonceHolder.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymaster.sol/IPaymaster.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymaster.sol/IPaymaster.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymasterFlow.sol/IPaymasterFlow.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymasterFlow.sol/IPaymasterFlow.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/ISystemContext.sol/ISystemContext.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/ISystemContext.sol/ISystemContext.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/libraries/EfficientCall.sol/EfficientCall.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/libraries/EfficientCall.sol/EfficientCall.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/libraries/RLPEncoder.sol/RLPEncoder.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/libraries/RLPEncoder.sol/RLPEncoder.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractHelper.sol/ISystemContract.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractHelper.sol/ISystemContract.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractHelper.sol/SystemContractHelper.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractHelper.sol/SystemContractHelper.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractsCaller.sol/SystemContractsCaller.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractsCaller.sol/SystemContractsCaller.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/libraries/TransactionHelper.sol/TransactionHelper.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/libraries/TransactionHelper.sol/TransactionHelper.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/libraries/Utils.sol/Utils.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/libraries/Utils.sol/Utils.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/IERC20.sol/IERC20.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/IERC20.sol/IERC20.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/extensions/IERC20Permit.sol/IERC20Permit.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/extensions/IERC20Permit.sol/IERC20Permit.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/utils/SafeERC20.sol/SafeERC20.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/utils/SafeERC20.sol/SafeERC20.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/utils/Address.sol/Address.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/utils/Address.sol/Address.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/access/Ownable.sol/Ownable.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/access/Ownable.sol/Ownable.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol/SafeERC20.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol/SafeERC20.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/token/ERC721/ERC721.sol/ERC721.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/token/ERC721/ERC721.sol/ERC721.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/token/ERC721/IERC721.sol/IERC721.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/token/ERC721/IERC721.sol/IERC721.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol/IERC721Receiver.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol/IERC721Receiver.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol/ERC721URIStorage.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol/ERC721URIStorage.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol/IERC721Metadata.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol/IERC721Metadata.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/utils/Address.sol/Address.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/utils/Address.sol/Address.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/utils/Counters.sol/Counters.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/utils/Counters.sol/Counters.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/utils/Strings.sol/Strings.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/utils/Strings.sol/Strings.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/utils/introspection/ERC165.sol/ERC165.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/utils/introspection/ERC165.sol/ERC165.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/utils/introspection/IERC165.sol/IERC165.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/utils/introspection/IERC165.sol/IERC165.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/build-info/e49535a141eefaebe6d9aa3bc85bbb11.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/contracts/Caller.sol/GCaller.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/contracts/Caller.sol/GCaller.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/contracts/Caller.sol/IGreeter2.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/contracts/Caller.sol/IGreeter2.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/contracts/Greeter.sol/Greeter.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/contracts/Greeter.sol/Greeter.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/contracts/L1.sol/L1.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/contracts/L1.sol/L1.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/contracts/L2.sol/L2.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/contracts/L2.sol/L2.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/contracts/Middle.sol/IGreeter.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/contracts/Middle.sol/IGreeter.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/contracts/Middle.sol/Middle.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/contracts/Middle.sol/Middle.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/contracts/MultiTransfer.sol/TokenF2L2.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/contracts/MultiTransfer.sol/TokenF2L2.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/contracts/MyERC20.sol/MyERC20.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/contracts/MyERC20.sol/MyERC20.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/contracts/MyNFT.sol/MyNFT.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/contracts/MyNFT.sol/MyNFT.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/contracts/MyPaymaster.sol/MyPaymaster.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/contracts/MyPaymaster.sol/MyPaymaster.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/contracts/Root.sol/Root.dbg.json delete mode 100644 packages/integration-tests/src/playbook/artifacts/contracts/Root.sol/Root.json delete mode 100644 packages/integration-tests/src/playbook/cache-zk/solidity-files-cache.json delete mode 100644 packages/integration-tests/src/playbook/cache/solidity-files-cache.json diff --git a/.github/workflows/app-e2e.yml b/.github/workflows/app-e2e.yml index de15994b35..6479894358 100644 --- a/.github/workflows/app-e2e.yml +++ b/.github/workflows/app-e2e.yml @@ -87,21 +87,6 @@ jobs: ${{ runner.os }}-build- ${{ runner.os }}- - - name: Cache node modules - id: cache-nodemodules - uses: actions/cache@v3 - env: - cache-name: cache-node-modules - # Workaround for bug https://github.com/typicode/husky/issues/991 - HUSKY: 0 - with: - path: node_modules - key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }} - restore-keys: | - ${{ runner.os }}-build-${{ env.cache-name }}- - ${{ runner.os }}-build- - ${{ runner.os }}- - - name: Install dependencies working-directory: ./ if: steps.cache-nodemodules.outputs.cache-hit != 'true' diff --git a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/BootloaderUtilities.sol/BootloaderUtilities.dbg.json b/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/BootloaderUtilities.sol/BootloaderUtilities.dbg.json deleted file mode 100644 index d6f065d186..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/BootloaderUtilities.sol/BootloaderUtilities.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/92cb10df65f6d26368974b9012699389.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/BootloaderUtilities.sol/BootloaderUtilities.json b/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/BootloaderUtilities.sol/BootloaderUtilities.json deleted file mode 100644 index ff9e43c5d1..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/BootloaderUtilities.sol/BootloaderUtilities.json +++ /dev/null @@ -1,118 +0,0 @@ -{ - "_format": "hh-zksolc-artifact-1", - "contractName": "BootloaderUtilities", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/BootloaderUtilities.sol", - "abi": [ - { - "inputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "txType", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "from", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "to", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "gasLimit", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "gasPerPubdataByteLimit", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxFeePerGas", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxPriorityFeePerGas", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "paymaster", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "uint256[4]", - "name": "reserved", - "type": "uint256[4]" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "signature", - "type": "bytes" - }, - { - "internalType": "bytes32[]", - "name": "factoryDeps", - "type": "bytes32[]" - }, - { - "internalType": "bytes", - "name": "paymasterInput", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "reservedDynamic", - "type": "bytes" - } - ], - "internalType": "struct Transaction", - "name": "_transaction", - "type": "tuple" - } - ], - "name": "getTransactionHashes", - "outputs": [ - { - "internalType": "bytes32", - "name": "txHash", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "signedTxHash", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x0004000000000002000d00000000000200000000030100190000006003300270000009980430019700030000004103550002000000010355000009980030019d000100000000001f000000800a0000390000004000a0043f0000000101200190000000910000c13d0000000001000031000000040110008c000004950000413d0000000201000367000000000101043b0000099a011001970000099b0110009c000004950000c13d0000000001000416000000000110004c000004950000c13d0000000001000031000000040310008a0000099c02000041000000200430008c000000000400001900000000040240190000099c05300197000000000650004c000000000200a0190000099c0550009c000000000204c019000000000220004c000004950000c13d00000002020003670000000404200370000000000904043b0000099d0490009c000004950000213d00000000039300490000099c04000041000002600530008c000000000500001900000000050440190000099c03300197000000000630004c000000000400a0190000099c0330009c00000000030500190000000003046019000000000330004c000004950000c13d0000000403900039000d00000003001d000000000332034f000000000303043b000000000430004c000000990000c13d000c00000009001d0000010401900039000000000112034f000000000101043b000000800210008c000000f60000413d0000008002100270000009a50310009c000000000201a019000009a50310009c0000000003000019000000100300203900000008043001bf0000099d0520009c000000000304201900000040042002700000099d0520009c000000000204201900000004043001bf000009980520009c00000000030420190000002004200270000009980520009c000000000204201900000002043001bf0000ffff0520008c000000000304201900000010042002700000000002042019000000ff0220008c000000000200001900000001020020390000000002230019000000200300008a0000004104200039000000000334016f000000400400043d0000000003340019000b00000004001d000000000443004b000000000400001900000001040040390000099d0530009c000000fa0000213d0000000104400190000000fa0000c13d000000400030043f00000002032000390000000b090000290000000003390436000000210420003900000005044002720000007d0000613d00000000050000310000000205500367000000000600001900000005076002100000000008730019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000000750000413d000000000400004c0000007f0000613d0000000004090433000000000440004c000001720000613d0000000004030433000009a404400197000000f805200210000000000445019f000009a60440004100000000004304350000000302200210000000f80220008900000000012101cf000000ff0220008c00000000010020190000000b0200002900000021022000390000000000120435000001de0000013d0000000001000416000000000110004c000004950000c13d00000020010000390000010000100443000001200000044300000999010000410000265d0001042e000000710430008c000001000000c13d000001c403900039000000000332034f000000230400008a0000000004940049000b00000004001d0000000004140019000000000303043b0000099c05000041000000000643004b000000000600001900000000060580190000099c044001970000099c07300197000000000847004b0000000005008019000000000447013f0000099c0440009c00000000040600190000000004056019000000000440004c000004950000c13d0000000d040000290000000003430019000000000232034f000000000202043b000a00000002001d0000099d0220009c000004950000213d0000000a02000029000000000121004900000020043000390000099c02000041000000000314004b000000000300001900000000030220190000099c01100197000900000004001d0000099c04400197000000000514004b0000000002008019000000000114013f0000099c0110009c00000000010300190000000001026019000000000110004c000004950000c13d00070000000a001d000c00000009001d0000000001000414000800000001001d000009ad010000410000ffeb02000039265c26570000040f00000000020100190000006002200270000109980020019d00030000000103550000000a01000029000000000110004c000003230000c13d0000000001000031000000c001100210000009ae01100197000009ad011001c70000ffe802000039265c26570000040f00000000020100190000006002200270000109980020019d00030000000103550000000801000029000009980110009c000004640000a13d000000400100043d0000004402100039000009c20300004100000000003204350000002402100039000000080300003900000000003204350000099f0200004100000000002104350000000402100039000000200300003900000000003204350000099802000041000009980310009c00000000010280190000004001100210000009a0011001c70000265e00010430000000400200043d000b00000002001d000009a30220009c0000015d0000a13d000009bd0100004100000000001004350000004101000039000000040010043f000009be010000410000265e00010430000000020130008c000001780000c13d000009a101000041000000000010043900000998010000410000000002000414000009980320009c0000000001024019000000c001100210000009a2011001c70000800b02000039000c00000009001d265c26570000040f0000000102200190000004950000613d000000000201043b000000800120008c000002b20000413d0000008001200270000009a50320009c000000000102a019000009a50320009c0000000003000019000000100300203900000008043001bf0000099d0510009c000000000304201900000040041002700000099d0510009c000000000104201900000004043001bf000009980510009c00000000030420190000002004100270000009980510009c000000000104201900000002043001bf0000ffff0510008c000000000304201900000010041002700000000001042019000000ff0110008c000000000100001900000001010020390000000003130019000000200100008a0000004104300039000000000414016f000000400100043d0000000004410019000000000514004b000000000500001900000001050040390000099d0640009c000000fa0000213d0000000105500190000000fa0000c13d000000400040043f00000002043000390000000004410436000000210530003900000005055002720000014a0000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b000001420000413d000000000500004c0000014c0000613d0000000005010433000000000550004c000001720000613d0000000005040433000009a405500197000000f806300210000000000556019f000009a60550004100000000005404350000000303300210000000f80330008900000000023201cf000000ff0330008c000000000200201900000021031000390000000000230435000002d20000013d0000000b070000290000004002700039000000400020043f0000000102000039000000000227043600000000030000310000000203300367000000000400001900000005054002100000000006520019000000000553034f000000000505043b0000000000560435000000010440003a000000000500001900000001050060390000000105500190000001650000c13d0000000003070433000000000330004c000001d50000c13d000009bd0100004100000000001004350000003201000039000000040010043f000009be010000410000265e00010430000000010130008c0000022f0000c13d000009a101000041000000000010043900000998010000410000000002000414000009980320009c0000000001024019000000c001100210000009a2011001c70000800b02000039000c00000009001d265c26570000040f0000000102200190000004950000613d000000000201043b000000800120008c0000033e0000413d0000008001200270000009a50320009c000000000102a019000009a50320009c0000000003000019000000100300203900000008043001bf0000099d0510009c000000000304201900000040041002700000099d0510009c000000000104201900000004043001bf000009980510009c00000000030420190000002004100270000009980510009c000000000104201900000002043001bf0000ffff0510008c000000000304201900000010041002700000000001042019000000ff0110008c000000000100001900000001010020390000000003130019000000200100008a0000004104300039000000000414016f000000400100043d0000000004410019000000000514004b000000000500001900000001050040390000099d0640009c000000fa0000213d0000000105500190000000fa0000c13d000000400040043f0000000204300039000000000441043600000021053000390000000505500272000001c20000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b000001ba0000413d000000000500004c000001c40000613d0000000005010433000000000550004c000001720000613d0000000005040433000009a405500197000000f806300210000000000556019f000009a60550004100000000005404350000000303300210000000f80330008900000000023201cf000000ff0330008c0000000002002019000000210310003900000000002304350000035e0000013d000000f8031002100000099c04000041000000000110004c000000000103001900000000010460190000000003020433000009a403300197000000000113019f00000000001204350000000c01000029000000a4011000390000000201100367000000000201043b000000800120008c000002410000413d0000008001200270000009a50320009c000000000102a019000009a50320009c0000000003000019000000100300203900000008043001bf0000099d0510009c000000000304201900000040041002700000099d0510009c000000000104201900000004043001bf000009980510009c00000000030420190000002004100270000009980510009c000000000104201900000002043001bf0000ffff0510008c000000000304201900000010041002700000000001042019000000ff0110008c000000000100001900000001010020390000000003130019000000200100008a0000004104300039000000000414016f000000400100043d0000000004410019000000000514004b000000000500001900000001050040390000099d0640009c000000fa0000213d0000000105500190000000fa0000c13d000000400040043f00000002043000390000000004410436000000210530003900000005055002720000021c0000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b000002140000413d000000000500004c0000021e0000613d0000000005010433000000000550004c000001720000613d0000000005040433000009a405500197000000f806300210000000000556019f000009a60550004100000000005404350000000303300210000000f80330008900000000023201cf000000ff0330008c000000000200201900000021031000390000000000230435000002610000013d000000400100043d00000044021000390000099e0300004100000000003204350000002402100039000000170300003900000000003204350000099f0200004100000000002104350000000402100039000000200300003900000000003204350000099802000041000009980310009c00000000010280190000004001100210000009a0011001c70000265e00010430000000400100043d000009a30310009c000000fa0000213d0000004003100039000000400030043f0000000103000039000000000331043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a0000000006000019000000010600603900000001066001900000024b0000c13d0000000004010433000000000440004c000001720000613d000000f8042002100000099c05000041000000000220004c000000000204001900000000020560190000000004030433000009a404400197000000000224019f00000000002304350000000c0200002900000064022000390000000202200367000000000302043b000000800230008c000003af0000413d0000008002300270000009a50430009c000000000203a019000009a50430009c0000000004000019000000100400203900000008054001bf0000099d0620009c000000000405201900000040052002700000099d0620009c000000000205201900000004054001bf000009980620009c00000000040520190000002005200270000009980620009c000000000205201900000002054001bf0000ffff0620008c000000000405201900000010052002700000000002052019000000ff0220008c000000000200001900000001020020390000000004240019000000200200008a0000004105400039000000000525016f000000400200043d0000000005520019000000000625004b000000000600001900000001060040390000099d0750009c000000fa0000213d0000000106600190000000fa0000c13d000000400050043f00000002054000390000000005520436000000210640003900000005066002720000029f0000613d0000000007000031000000020770036700000000080000190000000509800210000000000a950019000000000997034f000000000909043b00000000009a04350000000108800039000000000968004b000002970000413d000000000600004c000002a10000613d0000000006020433000000000660004c000001720000613d0000000006050433000009a406600197000000f807400210000000000667019f000009a60660004100000000006504350000000304400210000000f80440008900000000034301cf000000ff0440008c000000000300201900000021042000390000000000340435000003cf0000013d000000400100043d000009a30310009c000000fa0000213d0000004003100039000000400030043f0000000103000039000000000331043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a000000000600001900000001060060390000000106600190000002bc0000c13d0000000004010433000000000440004c000001720000613d000000f8042002100000099c05000041000000000220004c000000000204001900000000020560190000000004030433000009a404400197000000000224019f00000000002304350000000c0200002900000104022000390000000202200367000000000302043b000000800230008c000004970000413d0000008002300270000009a50430009c000000000203a019000009a50430009c0000000004000019000000100400203900000008054001bf0000099d0620009c000000000405201900000040052002700000099d0620009c000000000205201900000004054001bf000009980620009c00000000040520190000002005200270000009980620009c000000000205201900000002054001bf0000ffff0620008c000000000405201900000010052002700000000002052019000000ff0220008c000000000200001900000001020020390000000004240019000000200200008a0000004105400039000000000525016f000000400200043d0000000005520019000000000625004b000000000600001900000001060040390000099d0750009c000000fa0000213d0000000106600190000000fa0000c13d000000400050043f0000000205400039000000000552043600000021064000390000000506600272000003100000613d0000000007000031000000020770036700000000080000190000000509800210000000000a950019000000000997034f000000000909043b00000000009a04350000000108800039000000000968004b000003080000413d000000000600004c000003120000613d0000000006020433000000000660004c000001720000613d0000000006050433000009a406600197000000f807400210000000000667019f000009a60660004100000000006504350000000304400210000000f80440008900000000034301cf000000ff0440008c000000000300201900000021042000390000000000340435000004b70000013d0000000901000029000000c001100210000009ae01100197000009ad011001c70000ffe902000039265c26570000040f00000000020100190000006002200270000109980020019d0000000a0300002900000009020000290000000002230019000000000332004b0000000003000019000000010300403900030000000103550000000101300190000003380000c13d0000000001000031000000000321004b000005230000813d000009bd0100004100000000001004350000001101000039000000040010043f000009be010000410000265e00010430000000400100043d000009a30310009c000000fa0000213d0000004003100039000000400030043f0000000103000039000000000331043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a000000000600001900000001060060390000000106600190000003480000c13d0000000004010433000000000440004c000001720000613d000000f8042002100000099c05000041000000000220004c000000000204001900000000020560190000000004030433000009a404400197000000000224019f00000000002304350000000c0200002900000104022000390000000202200367000000000202043b000000800320008c000005250000413d0000008003200270000009a50420009c000000000302a019000009a50420009c0000000004000019000000100400203900000008054001bf0000099d0630009c000000000405201900000040053002700000099d0630009c000000000305201900000004054001bf000009980630009c00000000040520190000002005300270000009980630009c000000000305201900000002054001bf0000ffff0630008c000000000405201900000010053002700000000003052019000000ff0330008c000000000300001900000001030020390000000004340019000000200300008a0000004105400039000000000535016f000000400300043d0000000005530019000000000635004b000000000600001900000001060040390000099d0750009c000000fa0000213d0000000106600190000000fa0000c13d000000400050043f00000002054000390000000005530436000000210640003900000005066002720000039c0000613d0000000007000031000000020770036700000000080000190000000509800210000000000a950019000000000997034f000000000909043b00000000009a04350000000108800039000000000968004b000003940000413d000000000600004c0000039e0000613d0000000006030433000000000660004c000001720000613d0000000006050433000009a406600197000000f807400210000000000667019f000009a60660004100000000006504350000000304400210000000f80440008900000000024201cf000000ff0440008c000000000200201900000021043000390000000000240435000005450000013d000000400200043d000009a30420009c000000fa0000213d0000004004200039000000400040043f0000000104000039000000000442043600000000050000310000000205500367000000000600001900000005076002100000000008740019000000000775034f000000000707043b0000000000780435000000010660003a000000000700001900000001070060390000000107700190000003b90000c13d0000000005020433000000000550004c000001720000613d000000f8053002100000099c06000041000000000330004c000000000305001900000000030660190000000005040433000009a405500197000000000335019f0000000000340435000000400300043d000a00000003001d00000020033000390000000004010433000000000540004c000003dd0000613d000000000500001900000000063500190000002005500039000000000715001900000000070704330000000000760435000000000645004b000003d60000413d000000000134001900000000000104350000000003020433000000000430004c000003ea0000613d000000000400001900000000051400190000002004400039000000000624001900000000060604330000000000650435000000000534004b000003e30000413d000000000113001900000000000104350000000a030000290000000001310049000000200210008a00000000002304350000001f01100039000000200200008a000800000002001d000000000121016f0000000002310019000000000112004b00000000010000190000000101004039000900000002001d0000099d0220009c000000fa0000213d0000000101100190000000fa0000c13d0000000901000029000000400010043f000009a30110009c000000fa0000213d0000000c0400002900000044014000390000000201100367000000000101043b00000009050000290000004002500039000000400020043f0000002002500039000009a70300004100000000003204350000001502000039000000000025043500000021025000390000006001100210000000000012043500000124014000390000000201100367000000000101043b000000800210008c000007340000413d0000008002100270000009a50310009c000000000201a019000009a50310009c0000000003000019000000100300203900000008043001bf0000099d0520009c000000000304201900000040042002700000099d0520009c000000000204201900000004043001bf000009980520009c00000000030420190000002004200270000009980520009c000000000204201900000002043001bf0000ffff0520008c000000000304201900000010042002700000000002042019000000ff0220008c00000000020000190000000102002039000000000223001900000041032000390000000804000029000000000343016f000000400400043d0000000003340019000700000004001d000000000443004b000000000400001900000001040040390000099d0530009c000000fa0000213d0000000104400190000000fa0000c13d000000400030043f000000020320003900000007040000290000000003340436000000210420003900000005044002720000044f0000613d00000000050000310000000205500367000000000600001900000005076002100000000008730019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000004470000413d000000000400004c000004510000613d00000007040000290000000004040433000000000440004c000001720000613d0000000004030433000009a404400197000000f805200210000000000445019f000009a60440004100000000004304350000000302200210000000f80220008900000000012101cf000000ff0220008c0000000001002019000000070200002900000021022000390000000000120435000007570000013d000009af010000410000ffe702000039265c26570000040f00000000020100190000006002200270000109980020019d0003000000010355000009b0010000410000fff602000039265c26570000040f00000000030100190000006003300270000109980030019d000009980330019700030000000103550000000102200190000005080000613d0000003f01300039000009b101100197000000400200043d0000000001120019000000000421004b000000000400001900000001040040390000099d0510009c000000fa0000213d0000000104400190000000fa0000c13d000000400010043f00000000013204360000001f043000390000000504400272000004900000613d00000000050000310000000205500367000000000600001900000005076002100000000008710019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000004880000413d000000000400004c000004920000613d0000000104000031000000000443004b000006070000a13d00000000010000190000265e00010430000000400200043d000009a30420009c000000fa0000213d0000004004200039000000400040043f0000000104000039000000000442043600000000050000310000000205500367000000000600001900000005076002100000000008740019000000000775034f000000000707043b0000000000780435000000010660003a000000000700001900000001070060390000000107700190000004a10000c13d0000000005020433000000000550004c000001720000613d000000f8053002100000099c06000041000000000330004c000000000305001900000000030660190000000005040433000009a405500197000000000335019f00000000003404350000000c03000029000000c4033000390000000203300367000000000303043b000000800430008c000005960000413d0000008004300270000009a50530009c000000000403a019000009a50530009c0000000005000019000000100500203900000008065001bf0000099d0740009c000000000506201900000040064002700000099d0740009c000000000406201900000004065001bf000009980740009c00000000050620190000002006400270000009980740009c000000000406201900000002065001bf0000ffff0740008c000000000506201900000010064002700000000004062019000000ff0440008c000000000400001900000001040020390000000005450019000000200400008a0000004106500039000000000646016f000000400400043d0000000006640019000000000746004b000000000700001900000001070040390000099d0860009c000000fa0000213d0000000107700190000000fa0000c13d000000400060043f0000000206500039000000000664043600000021075000390000000507700272000004f50000613d000000000800003100000002088003670000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b000004ed0000413d000000000700004c000004f70000613d0000000007040433000000000770004c000001720000613d0000000007060433000009a407700197000000f808500210000000000778019f000009a60770004100000000007604350000000305500210000000f80550008900000000035301cf000000ff0550008c000000000300201900000021054000390000000000350435000005b60000013d0000001f0430018f0000000502300272000005130000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b0000050c0000413d000000000540004c000005210000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f000000000012043500000060013002100000265e000104300000000001210049000000d80000013d000000400300043d000009a30430009c000000fa0000213d0000004004300039000000400040043f0000000104000039000000000443043600000000050000310000000205500367000000000600001900000005076002100000000008740019000000000775034f000000000707043b0000000000780435000000010660003a0000000007000019000000010700603900000001077001900000052f0000c13d0000000005030433000000000550004c000001720000613d000000f8052002100000099c06000041000000000220004c000000000205001900000000020660190000000005040433000009a405500197000000000225019f00000000002404350000000c02000029000000a4022000390000000202200367000000000202043b000000800420008c000006c30000413d0000008004200270000009a50520009c000000000402a019000009a50520009c0000000005000019000000100500203900000008065001bf0000099d0740009c000000000506201900000040064002700000099d0740009c000000000406201900000004065001bf000009980740009c00000000050620190000002006400270000009980740009c000000000406201900000002065001bf0000ffff0740008c000000000506201900000010064002700000000004062019000000ff0440008c000000000400001900000001040020390000000005450019000000200400008a0000004106500039000000000646016f000000400400043d0000000006640019000000000746004b000000000700001900000001070040390000099d0860009c000000fa0000213d0000000107700190000000fa0000c13d000000400060043f0000000206500039000000000664043600000021075000390000000507700272000005830000613d000000000800003100000002088003670000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b0000057b0000413d000000000700004c000005850000613d0000000007040433000000000770004c000001720000613d0000000007060433000009a407700197000000f808500210000000000778019f000009a60770004100000000007604350000000305500210000000f80550008900000000025201cf000000ff0550008c000000000200201900000021054000390000000000250435000006e30000013d000000400400043d000009a30540009c000000fa0000213d0000004005400039000000400050043f0000000105000039000000000554043600000000060000310000000206600367000000000700001900000005087002100000000009850019000000000886034f000000000808043b0000000000890435000000010770003a000000000800001900000001080060390000000108800190000005a00000c13d0000000006040433000000000660004c000001720000613d000000f8063002100000099c07000041000000000330004c000000000306001900000000030760190000000006050433000009a406600197000000000336019f00000000003504350000000c03000029000000a4033000390000000203300367000000000303043b000000800530008c000007a60000413d0000008005300270000009a50630009c000000000503a019000009a50630009c0000000006000019000000100600203900000008076001bf0000099d0850009c000000000607201900000040075002700000099d0850009c000000000507201900000004076001bf000009980850009c00000000060720190000002007500270000009980850009c000000000507201900000002076001bf0000ffff0850008c000000000607201900000010075002700000000005072019000000ff0550008c000000000500001900000001050020390000000006560019000000200500008a0000004107600039000000000757016f000000400500043d0000000007750019000000000857004b000000000800001900000001080040390000099d0970009c000000fa0000213d0000000108800190000000fa0000c13d000000400070043f0000000207600039000000000775043600000021086000390000000508800272000005f40000613d00000000090000310000000209900367000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa00039000000000b8a004b000005ec0000413d000000000800004c000005f60000613d0000000008050433000000000880004c000001720000613d0000000008070433000009a408800197000000f809600210000000000889019f000009a60880004100000000008704350000000306600210000000f80660008900000000036301cf000000ff0660008c000000000300201900000021065000390000000000360435000007c60000013d00000003050003670000001f0430018f0000000503300272000006140000613d000000000600001900000005076002100000000008710019000000000775034f000000000707043b00000000007804350000000106600039000000000736004b0000060c0000413d000000000640004c000006230000613d0000000503300210000000000535034f00000000033100190000000304400210000000000603043300000000064601cf000000000646022f000000000505043b0000010004400089000000000545022f00000000044501cf000000000464019f00000000004304350000000002020433000000200220008c00000ef50000c13d00000000040000310000000b0200002900000000052400190000000c0200002900000204032000390000000202000367000000000332034f000000000303043b0000099c06000041000000000753004b000000000700001900000000070680190000099c055001970000099c08300197000000000958004b0000000006008019000000000558013f0000099c0550009c00000000050700190000000005066019000000000550004c000004950000c13d0000000001010433000a00000001001d0000000d010000290000000001130019000000000312034f000000000503043b0000099d0350009c000004950000213d0000000503500210000000000434004900000020061000390000099c01000041000000000746004b000000000700001900000000070120190000099c044001970000099c08600197000000000948004b0000000001008019000000000448013f0000099c0440009c000000000107c019000000000110004c000004950000c13d000000400100043d0000002004100039000009b205500198000006620000613d000000000262034f000000000600001900000005076002100000000008740019000000000772034f000000000707043b00000000007804350000000106600039000000000756004b0000065a0000413d000000000200004c000006640000613d00000000003104350000003f02300039000000200300008a000000000232016f0000000002210019000000000312004b000000000300001900000001030040390000099d0520009c000000fa0000213d0000000103300190000000fa0000c13d000000400020043f0000099802000041000009980340009c0000000003020019000000000304401900000040033002100000000001010433000009980410009c00000000010280190000006001100210000000000131019f0000000003000414000009980430009c0000000002034019000000c002200210000000000112019f000009ac011001c70000801002000039265c26570000040f00000001022001900000000c03000029000004950000613d00000000020000310000000b04000029000000000542001900000224043000390000000203000367000000000443034f000000000404043b0000099c06000041000000000754004b000000000700001900000000070680190000099c055001970000099c08400197000000000958004b0000000006008019000000000558013f0000099c0550009c00000000050700190000000005066019000000000101043b000b00000001001d000000000150004c000004950000c13d0000000d010000290000000001140019000000000313034f000000000303043b000900000003001d0000099d0330009c000004950000213d0000000903000029000000000232004900000020041000390000099c01000041000000000324004b000000000300001900000000030120190000099c02200197000800000004001d0000099c04400197000000000524004b0000000001008019000000000224013f0000099c0220009c000000000103c019000000000110004c000004950000c13d0000000001000414000600000001001d000009ad010000410000ffeb02000039265c26570000040f00000000020100190000006002200270000109980020019d00030000000103550000000901000029000000000110004c00000c220000c13d000000000100003100000c380000013d000000400400043d000009a30540009c000000fa0000213d0000004005400039000000400050043f0000000105000039000000000554043600000000060000310000000206600367000000000700001900000005087002100000000009850019000000000886034f000000000808043b0000000000890435000000010770003a000000000800001900000001080060390000000108800190000006cd0000c13d0000000006040433000000000660004c000001720000613d000000f8062002100000099c07000041000000000220004c000000000206001900000000020760190000000006050433000009a406600197000000000226019f00000000002504350000000c0200002900000064022000390000000202200367000000000202043b000000800520008c000008170000413d0000008005200270000009a50620009c000000000502a019000009a50620009c0000000006000019000000100600203900000008076001bf0000099d0850009c000000000607201900000040075002700000099d0850009c000000000507201900000004076001bf000009980850009c00000000060720190000002007500270000009980850009c000000000507201900000002076001bf0000ffff0850008c000000000607201900000010075002700000000005072019000000ff0550008c000000000500001900000001050020390000000006560019000000200500008a0000004107600039000000000757016f000000400500043d0000000007750019000000000857004b000000000800001900000001080040390000099d0970009c000000fa0000213d0000000108800190000000fa0000c13d000000400070043f0000000207600039000000000775043600000021086000390000000508800272000007210000613d00000000090000310000000209900367000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa00039000000000b8a004b000007190000413d000000000800004c000007230000613d0000000008050433000000000880004c000001720000613d0000000008070433000009a408800197000000f809600210000000000889019f000009a60880004100000000008704350000000306600210000000f80660008900000000026201cf000000ff0660008c000000000200201900000021065000390000000000260435000008370000013d000000400200043d000700000002001d000009a30220009c000000fa0000213d00000007030000290000004002300039000000400020043f0000000102000039000000000223043600000000030000310000000203300367000000000400001900000005054002100000000006520019000000000553034f000000000505043b0000000000560435000000010440003a000000000500001900000001050060390000000105500190000007400000c13d00000007030000290000000003030433000000000330004c000001720000613d000000f8031002100000099c04000041000000000110004c000000000103001900000000010460190000000003020433000009a403300197000000000113019f0000000000120435000000230100008a0000000c020000290000000004210049000001c4012000390000000202000367000600000001001d000000000112034f000000000101043b0000000003000031000500000004001d00000000044300190000099c05000041000000000641004b000000000600001900000000060580190000099c044001970000099c07100197000000000847004b0000000005008019000000000447013f0000099c0440009c00000000040600190000000004056019000000000440004c000004950000c13d0000000d040000290000000004410019000000000142034f000000000101043b0000099d0510009c000004950000213d000000000513004900000020034000390000099c04000041000000000653004b000000000600001900000000060420190000099c055001970000099c07300197000000000857004b0000000004008019000000000557013f0000099c0550009c000000000406c019000000000440004c000004950000c13d000000010410008c000009e10000c13d000000000132034f000000000101043b000000010200008a0000099c03000041000000000221004b000000000200001900000000020320190000099c011001970000099c0410009c00000000030080190000099c011001670000099c0110009c000000000102001900000000010360190000006002000039000400000002001d000000000110004c00000b0f0000c13d000000400100043d000400000001001d000009a30110009c000000fa0000213d00000004030000290000004001300039000000400010043f0000002001300039000009a60200004100000000002104350000000101000039000000000013043500000b0f0000013d000000400500043d000009a30650009c000000fa0000213d0000004006500039000000400060043f000000010600003900000000066504360000000007000031000000020770036700000000080000190000000509800210000000000a960019000000000997034f000000000909043b00000000009a0435000000010880003a000000000900001900000001090060390000000109900190000007b00000c13d0000000007050433000000000770004c000001720000613d000000f8073002100000099c08000041000000000330004c000000000307001900000000030860190000000007060433000009a407700197000000000337019f00000000003604350000000c0300002900000064033000390000000203300367000000000303043b000000800630008c000008980000413d0000008006300270000009a50730009c000000000603a019000009a50730009c0000000007000019000000100700203900000008087001bf0000099d0960009c000000000708201900000040086002700000099d0960009c000000000608201900000004087001bf000009980960009c00000000070820190000002008600270000009980960009c000000000608201900000002087001bf0000ffff0960008c000000000708201900000010086002700000000006082019000000ff0660008c000000000600001900000001060020390000000007670019000000200600008a0000004108700039000000000868016f000000400600043d0000000008860019000000000968004b000000000900001900000001090040390000099d0a80009c000000fa0000213d0000000109900190000000fa0000c13d000000400080043f0000000208700039000000000886043600000021097000390000000509900272000008040000613d000000000a000031000000020aa00367000000000b000019000000050cb00210000000000dc80019000000000cca034f000000000c0c043b0000000000cd0435000000010bb00039000000000c9b004b000007fc0000413d000000000900004c000008060000613d0000000009060433000000000990004c000001720000613d0000000009080433000009a409900197000000f80a70021000000000099a019f000009a60990004100000000009804350000000307700210000000f80770008900000000037301cf000000ff0770008c000000000300201900000021076000390000000000370435000008b80000013d000000400500043d000009a30650009c000000fa0000213d0000004006500039000000400060043f000000010600003900000000066504360000000007000031000000020770036700000000080000190000000509800210000000000a960019000000000997034f000000000909043b00000000009a0435000000010880003a000000000900001900000001090060390000000109900190000008210000c13d0000000007050433000000000770004c000001720000613d000000f8072002100000099c08000041000000000220004c000000000207001900000000020860190000000007060433000009a407700197000000000227019f0000000000260435000000400600043d000009a30260009c000000fa0000213d0000000c0900002900000044029000390000000202200367000000000202043b0000004007600039000000400070043f0000002007600039000009a70800004100000000008704350000001507000039000000000076043500000021076000390000006002200210000000000027043500000124029000390000000202200367000000000202043b000000800720008c000009190000413d0000008007200270000009a50820009c000000000702a019000009a50820009c0000000008000019000000100800203900000008098001bf0000099d0a70009c000000000809201900000040097002700000099d0a70009c000000000709201900000004098001bf000009980a70009c00000000080920190000002009700270000009980a70009c000000000709201900000002098001bf0000ffff0a70008c000000000809201900000010097002700000000007092019000000ff0770008c000000000700001900000001070020390000000008780019000000200700008a0000004109800039000000000979016f000000400700043d0000000009970019000000000a79004b000000000a000019000000010a0040390000099d0b90009c000000fa0000213d000000010aa00190000000fa0000c13d000000400090043f00000002098000390000000009970436000000210a800039000000050aa00272000008850000613d000000000b000031000000020bb00367000000000c000019000000050dc00210000000000ed90019000000000ddb034f000000000d0d043b0000000000de0435000000010cc00039000000000dac004b0000087d0000413d000000000a00004c000008870000613d000000000a070433000000000aa0004c000001720000613d000000000a090433000009a40aa00197000000f80b800210000000000aab019f000009a60aa000410000000000a904350000000308800210000000f80880008900000000028201cf000000ff0880008c000000000200201900000021087000390000000000280435000009390000013d000000400600043d000009a30760009c000000fa0000213d0000004007600039000000400070043f00000001070000390000000007760436000000000800003100000002088003670000000009000019000000050a900210000000000ba70019000000000aa8034f000000000a0a043b0000000000ab0435000000010990003a000000000a000019000000010a006039000000010aa00190000008a20000c13d0000000008060433000000000880004c000001720000613d000000f8083002100000099c09000041000000000330004c000000000308001900000000030960190000000008070433000009a408800197000000000338019f0000000000370435000000400700043d000009a30370009c000000fa0000213d0000000c0a0000290000004403a000390000000203300367000000000303043b0000004008700039000000400080043f0000002008700039000009a7090000410000000000980435000000150800003900000000008704350000002108700039000000600330021000000000003804350000012403a000390000000203300367000000000303043b000000800830008c00000a1a0000413d0000008008300270000009a50930009c000000000803a019000009a50930009c00000000090000190000001009002039000000080a9001bf0000099d0b80009c00000000090a2019000000400a8002700000099d0b80009c00000000080a2019000000040a9001bf000009980b80009c00000000090a2019000000200a800270000009980b80009c00000000080a2019000000020a9001bf0000ffff0b80008c00000000090a2019000000100a80027000000000080a2019000000ff0880008c000000000800001900000001080020390000000009890019000000200800008a000000410a900039000000000a8a016f000000400800043d000000000aa80019000000000b8a004b000000000b000019000000010b0040390000099d0ca0009c000000fa0000213d000000010bb00190000000fa0000c13d0000004000a0043f000000020a900039000000000aa80436000000210b900039000000050bb00272000009060000613d000000000c000031000000020cc00367000000000d000019000000050ed00210000000000fea0019000000000eec034f000000000e0e043b0000000000ef0435000000010dd00039000000000ebd004b000008fe0000413d000000000b00004c000009080000613d000000000b080433000000000bb0004c000001720000613d000000000b0a0433000009a40bb00197000000f80c900210000000000bbc019f000009a60bb000410000000000ba04350000000309900210000000f80990008900000000039301cf000000ff0990008c00000000030020190000002109800039000000000039043500000a3a0000013d000000400700043d000009a30870009c000000fa0000213d0000004008700039000000400080043f0000000108000039000000000887043600000000090000310000000209900367000000000a000019000000050ba00210000000000cb80019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa0003a000000000b000019000000010b006039000000010bb00190000009230000c13d0000000009070433000000000990004c000001720000613d000000f8092002100000099c0a000041000000000220004c000000000209001900000000020a60190000000009080433000009a409900197000000000229019f0000000000280435000000400200043d00000020082000390000000009010433000000000a90004c000009460000613d000000000a000019000000000b8a0019000000200aa00039000000000c1a0019000000000c0c04330000000000cb0435000000000b9a004b0000093f0000413d000000000189001900000000000104350000000008030433000000000980004c000009530000613d0000000009000019000000000a1900190000002009900039000000000b390019000000000b0b04330000000000ba0435000000000a89004b0000094c0000413d000000000118001900000000000104350000000003040433000000000830004c000009600000613d000000000800001900000000091800190000002008800039000000000a480019000000000a0a04330000000000a90435000000000938004b000009590000413d000000000113001900000000000104350000000003050433000000000430004c0000096d0000613d000000000400001900000000081400190000002004400039000000000954001900000000090904330000000000980435000000000834004b000009660000413d000000000113001900000000000104350000000003060433000000000430004c0000097a0000613d000000000400001900000000051400190000002004400039000000000864001900000000080804330000000000850435000000000534004b000009730000413d000000000113001900000000000104350000000003070433000000000430004c000009870000613d000000000400001900000000051400190000002004400039000000000674001900000000060604330000000000650435000000000534004b000009800000413d000000000113001900000000000104350000000001210049000000200310008a00000000003204350000001f03100039000000200100008a000000000313016f0000000005230019000000000335004b000000000300001900000001030040390000099d0450009c000000fa0000213d0000000103300190000000fa0000c13d000000400050043f000000230300008a0000000c060000290000000004630049000001c4036000390000000207000367000000000637034f000000000606043b000000000800003100000000094800190000099c0a000041000000000b96004b000000000b000019000000000b0a80190000099c099001970000099c0c600197000000000d9c004b000000000a00801900000000099c013f0000099c0990009c00000000090b001900000000090a6019000000000990004c000004950000c13d0000000d090000290000000009960019000000000697034f000000000606043b0000099d0a60009c000004950000213d000000000a68004900000020089000390000099c09000041000000000ba8004b000000000b000019000000000b0920190000099c0aa001970000099c0c800197000000000dac004b0000000009008019000000000aac013f0000099c0aa0009c00000000090bc019000000000990004c000004950000c13d000000010960008c00000f070000c13d000000000687034f000000000606043b000000010700008a0000099c08000041000000000776004b000000000700001900000000070820190000099c066001970000099c0960009c00000000080080190000099c066001670000099c0660009c00000000070860190000006006000039000000000770004c00000fa90000c13d000009a30650009c000000fa0000213d0000004006500039000000400060043f0000002006500039000009a607000041000000000076043500000001060000390000000000650435000000000605001900000fa90000013d000000380210008c00000aef0000413d0000002002100270000009980310009c00000000030100190000000003022019000009980210009c0000000002000019000000040200203900000002042001bf0000ffff0530008c000000000204201900000010043002700000000003042019000000ff0330008c00000000030000190000000103002039000000400400043d000400000004001d000009a30440009c000000fa0000213d000000000232019f00000004040000290000004003400039000000400030043f0000000203200039000000000334043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a000000000600001900000001060060390000000106600190000009ff0000c13d00000004040000290000000004040433000000000440004c000001720000613d0000000004030433000009a404400197000000f805200210000000000445019f000009a8044001c700000000004304350000000302200210000000f80220008900000000012101cf00000004020000290000002102200039000000000012043500000b0f0000013d000000400800043d000009a30980009c000000fa0000213d0000004009800039000000400090043f00000001090000390000000009980436000000000a000031000000020aa00367000000000b000019000000050cb00210000000000dc90019000000000cca034f000000000c0c043b0000000000cd0435000000010bb0003a000000000c000019000000010c006039000000010cc0019000000a240000c13d000000000a080433000000000aa0004c000001720000613d000000f80a3002100000099c0b000041000000000330004c00000000030a001900000000030b6019000000000a090433000009a40aa0019700000000033a019f0000000000390435000000400300043d0000002009300039000000000a010433000000000ba0004c00000a470000613d000000000b000019000000000c9b0019000000200bb00039000000000d1b0019000000000d0d04330000000000dc0435000000000cab004b00000a400000413d00000000019a001900000000000104350000000009020433000000000a90004c00000a540000613d000000000a000019000000000b1a0019000000200aa00039000000000c2a0019000000000c0c04330000000000cb0435000000000b9a004b00000a4d0000413d000000000119001900000000000104350000000002040433000000000920004c00000a610000613d0000000009000019000000000a1900190000002009900039000000000b490019000000000b0b04330000000000ba0435000000000a29004b00000a5a0000413d000000000112001900000000000104350000000002050433000000000420004c00000a6e0000613d000000000400001900000000091400190000002004400039000000000a540019000000000a0a04330000000000a90435000000000924004b00000a670000413d000000000112001900000000000104350000000002060433000000000420004c00000a7b0000613d000000000400001900000000051400190000002004400039000000000964001900000000090904330000000000950435000000000524004b00000a740000413d000000000112001900000000000104350000000002070433000000000420004c00000a880000613d000000000400001900000000051400190000002004400039000000000674001900000000060604330000000000650435000000000524004b00000a810000413d000000000112001900000000000104350000000002080433000000000420004c00000a950000613d000000000400001900000000051400190000002004400039000000000684001900000000060604330000000000650435000000000524004b00000a8e0000413d000000000112001900000000000104350000000001310049000000200210008a00000000002304350000001f02100039000000200100008a000000000212016f0000000005320019000000000225004b000000000200001900000001020040390000099d0450009c000000fa0000213d0000000102200190000000fa0000c13d000000400050043f000000230200008a0000000c060000290000000004620049000001c4026000390000000207000367000000000627034f000000000606043b000000000800003100000000094800190000099c0a000041000000000b96004b000000000b000019000000000b0a80190000099c099001970000099c0c600197000000000d9c004b000000000a00801900000000099c013f0000099c0990009c00000000090b001900000000090a6019000000000990004c000004950000c13d0000000d090000290000000009960019000000000697034f000000000606043b0000099d0a60009c000004950000213d000000000a68004900000020089000390000099c09000041000000000ba8004b000000000b000019000000000b0920190000099c0aa001970000099c0c800197000000000dac004b0000000009008019000000000aac013f0000099c0aa0009c00000000090bc019000000000990004c000004950000c13d000000010960008c00000f570000c13d000000000687034f000000000606043b000000010700008a0000099c08000041000000000776004b000000000700001900000000070820190000099c066001970000099c0960009c00000000080080190000099c066001670000099c0660009c00000000070860190000006006000039000000000770004c000010450000c13d000009a30650009c000000fa0000213d0000004006500039000000400060043f0000002006500039000009a6070000410000000000760435000000010600003900000000006504350000000006050019000010450000013d000000400200043d000400000002001d000009a30220009c000000fa0000213d00000004030000290000004002300039000000400020043f0000000102000039000000000223043600000000030000310000000203300367000000000400001900000005054002100000000006520019000000000553034f000000000505043b0000000000560435000000010440003a00000000050000190000000105006039000000010550019000000afb0000c13d00000004030000290000000003030433000000000330004c000001720000613d000000f8011002100000000003020433000009a403300197000000000113019f0000099c01100167000000000012043500000060010000390000000c0200002900000144032000390000000202000367000000000332034f000000000303043b000000000330004c00000b870000c13d0000000603000029000000000432034f000000000300003100000005050000290000000005530019000000000904043b0000099c04000041000000000659004b000000000600001900000000060480190000099c055001970000099c07900197000000000857004b0000000004008019000000000557013f0000099c0550009c000000000406c019000000000440004c000004950000c13d0000000b0400002900000000040404330000000a0500002900000000050504330000000906000029000000000606043300000007070000290000000007070433000000040800002900000000080804330000000d0a0000290000000009a90019000000000292034f000000000202043b0000099d0a20009c000004950000213d000000000323004900000020099000390000099c0a000041000000000b39004b000000000b000019000000000b0a20190000099c033001970000099c09900197000000000c39004b000000000a008019000000000339013f0000099c0330009c00000000030b001900000000030a6019000000000330004c000004950000c13d00000000034500190000000003630019000000000373001900000000038300190000000002230019000000000301043300000000023200190000099d02200197000000380320008c00000d4a0000413d0000002003200270000009980420009c00000000040200190000000004032019000009980320009c0000000003000019000000040300203900000002053001bf0000ffff0640008c000000000305201900000010054002700000000004052019000000ff0440008c00000000040000190000000104002039000000400500043d000009a30650009c000000fa0000213d000000000343019f0000004004500039000000400040043f0000000204300039000000000445043600000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b0000000000890435000000010770003a00000000080000190000000108006039000000010880019000000b6e0000c13d0000000006050433000000000660004c000001720000613d0000000006040433000009a406600197000000f807300210000000000667019f000009aa066001c700000000006404350000000303300210000000f80330008900000000023201cf0000002103500039000000000023043500000d670000013d000009a101000041000000000010043900000998010000410000000002000414000009980320009c0000000001024019000000c001100210000009a2011001c70000800b02000039265c26570000040f0000000102200190000004950000613d000000000101043b000000800210008c00000be10000413d0000008002100270000009a50310009c000000000201a019000009a50310009c0000000003000019000000100300203900000008043001bf0000099d0520009c000000000304201900000040042002700000099d0520009c000000000204201900000004043001bf000009980520009c00000000030420190000002004200270000009980520009c000000000204201900000002043001bf0000ffff0520008c000000000304201900000010042002700000000002042019000000ff0220008c00000000020000190000000102002039000000000323001900000041023000390000000804000029000000000442016f000000400200043d0000000004420019000000000524004b000000000500001900000001050040390000099d0640009c000000fa0000213d0000000105500190000000fa0000c13d000000400040043f000000020430003900000000044204360000002105300039000000050550027200000bce0000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b00000bc60000413d000000000500004c00000bd00000613d0000000005020433000000000550004c000001720000613d0000000005040433000009a405500197000000f806300210000000000556019f000009a60550004100000000005404350000000303300210000000f80330008900000000013101cf000000ff0330008c00000000010020190000002103200039000000000013043500000c010000013d000000400200043d000009a30320009c000000fa0000213d0000004003200039000000400030043f0000000103000039000000000332043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a00000000060000190000000106006039000000010660019000000beb0000c13d0000000004020433000000000440004c000001720000613d000000f8041002100000099c05000041000000000110004c000000000104001900000000010560190000000004030433000009a404400197000000000114019f0000000000130435000000400100043d00000020031000390000000004020433000000000540004c00000c0e0000613d000000000500001900000000063500190000002005500039000000000725001900000000070704330000000000760435000000000645004b00000c070000413d0000000002340019000009bb03000041000000000032043500000000021200490000001e0320008a000000000031043500000021022000390000000803000029000000000332016f0000000002130019000000000332004b000000000300001900000001030040390000099d0420009c000000fa0000213d0000000103300190000000fa0000c13d000000400020043f000000020200036700000b170000013d0000000801000029000000c001100210000009ae01100197000009ad011001c70000ffe902000039265c26570000040f00000000020100190000006002200270000109980020019d000000090300002900000008020000290000000002230019000000000332004b0000000003000019000000010300403900030000000103550000000101300190000003380000c13d0000000001000031000000000321004b000003380000413d0000000001210049000000c001100210000009ae01100197000009ad011001c70000ffe802000039265c26570000040f00000000020100190000006002200270000109980020019d00030000000103550000000601000029000009980110009c000000e40000213d000009af010000410000ffe702000039265c26570000040f00000000020100190000006002200270000109980020019d0003000000010355000009b0010000410000fff602000039265c26570000040f00000000030100190000006003300270000109980030019d00000998033001970003000000010355000000010220019000000f3c0000613d0000003f01300039000009b101100197000000400200043d0000000001120019000000000421004b000000000400001900000001040040390000099d0510009c000000fa0000213d0000000104400190000000fa0000c13d000000400010043f00000000013204360000001f04300039000000050440027200000c700000613d00000000050000310000000205500367000000000600001900000005076002100000000008710019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b00000c680000413d000000000400004c00000c720000613d0000000104000031000000000443004b000004950000213d00000003050003670000001f0430018f000000050330027200000c820000613d000000000600001900000005076002100000000008710019000000000775034f000000000707043b00000000007804350000000106600039000000000736004b00000c7a0000413d000000000640004c00000c910000613d0000000503300210000000000535034f00000000033100190000000304400210000000000603043300000000064601cf000000000646022f000000000505043b0000010004400089000000000545022f00000000044501cf000000000464019f00000000004304350000000002020433000000200220008c00000ef50000c13d0000000c0c0000290000002402c000390000000203000367000000000423034f0000012402c00039000000000523034f0000010402c00039000000000623034f000000e402c00039000000000723034f000000c402c00039000000000823034f000000a402c00039000000000923034f0000008402c00039000000000a23034f0000006402c00039000000000b23034f0000004402c00039000000000c23034f0000000d02000029000000000223034f000000000202043b000000000304043b00000000040c043b000000000b0b043b000000000a0a043b000000000909043b000000000808043b000000000707043b000000000606043b000000000505043b000000000c010433000000400100043d000001c00d1000390000000000cd0435000001a00c1000390000000b0d0000290000000000dc0435000001800c1000390000000a0d0000290000000000dc0435000001600c10003900000000005c0435000001400510003900000000006504350000012005100039000000000075043500000100051000390000000000850435000000e0051000390000000000950435000000c0051000390000000000a50435000000a0051000390000000000b504350000008005100039000000000045043500000060041000390000000000340435000000400310003900000000002304350000002002100039000009b3030000410000000000320435000001c0030000390000000000310435000009b40310009c000000fa0000213d000001e003100039000000400030043f0000099803000041000009980420009c000000000203801900000040022002100000000001010433000009980410009c00000000010380190000006001100210000000000121019f0000000002000414000009980420009c0000000002038019000000c002200210000000000112019f000009ac011001c70000801002000039265c26570000040f0000000102200190000004950000613d000000000101043b000a00000001001d000000400100043d000b00000001001d000009a101000041000000000010043900000998010000410000000002000414000009980320009c0000000001024019000000c001100210000009a2011001c70000800b02000039265c26570000040f00000007040000290000000102200190000004950000613d0000000b050000290000002002500039000000000101043b000009b5030000410000000000320435000000800350003900000000001304350000006001500039000009b60300004100000000003104350000004001500039000009b70300004100000000003104350000000000450435000009b80150009c000000fa0000213d0000000b04000029000000a001400039000000400010043f0000099801000041000009980320009c000000000201801900000040022002100000000003040433000009980430009c00000000030180190000006003300210000000000223019f0000000003000414000009980430009c0000000001034019000000c001100210000000000121019f000009ac011001c70000801002000039265c26570000040f0000000102200190000004950000613d000000000301043b000000400100043d00000042021000390000000a0400002900000000004204350000002002100039000009b90400004100000000004204350000002204100039000000000034043500000042030000390000000000310435000009ba0310009c000000fa0000213d0000008003100039000000400030043f0000099803000041000009980420009c000000000203801900000040022002100000000001010433000009980410009c00000000010380190000006001100210000000000121019f0000000002000414000009980420009c0000000002038019000000c002200210000000000112019f000009ac011001c70000801002000039265c26570000040f00000001022001900000000c0b00002900000e350000c13d000004950000013d000000400500043d000009a30350009c000000fa0000213d0000004003500039000000400030043f0000000103000039000000000335043600000000040000310000000204400367000000000600001900000005076002100000000008730019000000000774034f000000000707043b0000000000780435000000010660003a00000000070000190000000107006039000000010770019000000d540000c13d0000000004050433000000000440004c000001720000613d000000f8022002100000000004030433000009a404400197000000000242019f000009a902200041000000000023043500000000020000310000000503000029000000000632001900000002030003670000000604000029000000000443034f000000000404043b0000099c07000041000000000864004b000000000800001900000000080780190000099c066001970000099c09400197000000000a69004b0000000007008019000000000669013f0000099c0660009c00000000060800190000000006076019000000000660004c000004950000c13d0000000d060000290000000006640019000000000363034f000000000403043b0000099d0340009c000004950000213d000000000242004900000020066000390000099c03000041000000000726004b000000000700001900000000070320190000099c022001970000099c08600197000000000928004b0000000003008019000000000228013f0000099c0220009c00000000020700190000000002036019000000000220004c000004950000c13d000000400200043d00000020032000390000000007050433000000000870004c00000d9f0000613d000000000800001900000000093800190000002008800039000000000a580019000000000a0a04330000000000a90435000000000978004b00000d980000413d000000000537001900000000000504350000000b0b00002900000000070b0433000000000870004c00000dad0000613d000000000800001900000000095800190000002008800039000000000ab80019000000000a0a04330000000000a90435000000000978004b00000da60000413d000000000557001900000000000504350000000a0b00002900000000070b0433000000000870004c00000dbb0000613d000000000800001900000000095800190000002008800039000000000ab80019000000000a0a04330000000000a90435000000000978004b00000db40000413d00000000055700190000000000050435000000090b00002900000000070b0433000000000870004c00000dc90000613d000000000800001900000000095800190000002008800039000000000ab80019000000000a0a04330000000000a90435000000000978004b00000dc20000413d00000000055700190000000000050435000000070b00002900000000070b0433000000000870004c00000dd70000613d000000000800001900000000095800190000002008800039000000000ab80019000000000a0a04330000000000a90435000000000978004b00000dd00000413d00000000055700190000000000050435000000040b00002900000000070b0433000000000870004c00000de50000613d000000000800001900000000095800190000002008800039000000000ab80019000000000a0a04330000000000a90435000000000978004b00000dde0000413d00000000055700190000001f0740018f00000000000504350000000206600367000000050840027200000df40000613d0000000009000019000000050a900210000000000ba50019000000000aa6034f000000000a0a043b0000000000ab04350000000109900039000000000a89004b00000dec0000413d000000000970004c00000e030000613d0000000508800210000000000686034f00000000088500190000000307700210000000000908043300000000097901cf000000000979022f000000000606043b0000010007700089000000000676022f00000000067601cf000000000696019f0000000000680435000000000445001900000000000404350000000005010433000000000650004c00000e100000613d000000000600001900000000074600190000002006600039000000000816001900000000080804330000000000870435000000000756004b00000e090000413d000000000145001900000000000104350000000001210049000000200410008a00000000004204350000001f011000390000000804000029000000000441016f0000000001240019000000000441004b000000000400001900000001040040390000099d0510009c000000fa0000213d0000000104400190000000fa0000c13d000000400010043f0000099801000041000009980430009c000000000301801900000040033002100000000002020433000009980420009c00000000020180190000006002200210000000000232019f0000000003000414000009980430009c0000000001034019000000c001100210000000000121019f000009ac011001c70000801002000039265c26570000040f00000001022001900000000c0b000029000004950000613d00000002020003670000000d03000029000000000332034f000000000101043b000c00000001001d000000000103043b000000710310008c000010c40000c13d000001e401b00039000000000312034f00000000010000310000000004b10049000000230440008a000000000303043b0000099c05000041000000000643004b000000000600001900000000060580190000099c044001970000099c07300197000000000847004b0000000005008019000000000447013f0000099c0440009c00000000040600190000000004056019000000000440004c000004950000c13d0000000d040000290000000003430019000000000232034f000000000202043b000d00000002001d0000099d0220009c000004950000213d0000000d02000029000000000121004900000020043000390000099c02000041000000000314004b000000000300001900000000030220190000099c01100197000b00000004001d0000099c04400197000000000514004b0000000002008019000000000114013f0000099c0110009c00000000010300190000000001026019000000000110004c000004950000c13d0000000001000414000a00000001001d000009ad010000410000ffeb02000039265c26570000040f00000000020100190000006002200270000109980020019d00030000000103550000000d01000029000000000110004c000013300000c13d0000000001000031000000c001100210000009ae01100197000009ad011001c70000ffe802000039265c26570000040f00000000020100190000006002200270000109980020019d00030000000103550000000a01000029000009980110009c000000e40000213d000009af010000410000ffe702000039265c26570000040f00000000020100190000006002200270000109980020019d0003000000010355000009b0010000410000fff602000039265c26570000040f00000000030100190000006003300270000109980030019d000009980330019700030000000103550000000102200190000013b70000613d0000003f01300039000009b102100197000000400100043d0000000002210019000000000412004b000000000400001900000001040040390000099d0520009c000000fa0000213d0000000104400190000000fa0000c13d000000400020043f00000000023104360000001f04300039000000050440027200000eaf0000613d00000000050000310000000205500367000000000600001900000005076002100000000008720019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b00000ea70000413d000000000400004c00000eb10000613d0000000104000031000000000443004b000004950000213d00000003050003670000001f0430018f000000050330027200000ec10000613d000000000600001900000005076002100000000008720019000000000775034f000000000707043b00000000007804350000000106600039000000000736004b00000eb90000413d000000000640004c00000ed00000613d0000000503300210000000000535034f00000000033200190000000304400210000000000603043300000000064601cf000000000646022f000000000505043b0000010004400089000000000545022f00000000044501cf000000000464019f00000000004304350000000001010433000000200110008c00000ef50000c13d0000000002020433000000400100043d0000004003100039000000000023043500000020021000390000000c03000029000000000032043500000040030000390000000000310435000009c00310009c000000fa0000213d0000006003100039000000400030043f0000099803000041000009980420009c000000000203801900000040022002100000000001010433000009980410009c00000000010380190000006001100210000000000121019f0000000002000414000009980420009c0000000002038019000000c002200210000000000112019f000009ac011001c70000801002000039265c26570000040f0000000102200190000004950000613d000000000101043b000013140000013d000000400100043d0000004402100039000009bf03000041000000000032043500000024021000390000001f0300003900000000003204350000099f0200004100000000002104350000000402100039000000200300003900000000003204350000099802000041000009980310009c00000000010280190000004001100210000009a0011001c70000265e00010430000000380760008c00000f8c0000413d0000002007600270000009980860009c00000000080600190000000008072019000009980760009c0000000007000019000000040700203900000002097001bf0000ffff0a80008c000000000709201900000010098002700000000008092019000000ff0880008c00000000080000190000000108002039000009a30950009c000000fa0000213d000000000787019f0000004008500039000000400080043f0000000208700039000000000885043600000000090000310000000209900367000000000a000019000000050ba00210000000000cb80019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa0003a000000000b000019000000010b006039000000010bb0019000000f220000c13d0000000009050433000000000990004c000001720000613d0000000009080433000009a409900197000000f80a70021000000000099a019f000009a8099001c700000000009804350000000307700210000000f80770008900000000067601cf00000021075000390000000000670435000000000605001900000fa90000013d0000001f0430018f000000050230027200000f470000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b00000f400000413d000000000540004c00000f550000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f000000000012043500000060013002100000265e00010430000000380760008c000010280000413d0000002007600270000009980860009c00000000080600190000000008072019000009980760009c0000000007000019000000040700203900000002097001bf0000ffff0a80008c000000000709201900000010098002700000000008092019000000ff0880008c00000000080000190000000108002039000009a30950009c000000fa0000213d000000000787019f0000004008500039000000400080043f0000000208700039000000000885043600000000090000310000000209900367000000000a000019000000050ba00210000000000cb80019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa0003a000000000b000019000000010b006039000000010bb0019000000f720000c13d0000000009050433000000000990004c000001720000613d0000000009080433000009a409900197000000f80a70021000000000099a019f000009a8099001c700000000009804350000000307700210000000f80770008900000000067601cf000000210750003900000000006704350000000006050019000010450000013d000009a30750009c000000fa0000213d0000004007500039000000400070043f00000001070000390000000007750436000000000800003100000002088003670000000009000019000000050a900210000000000ba70019000000000aa8034f000000000a0a043b0000000000ab0435000000010990003a000000000a000019000000010a006039000000010aa0019000000f950000c13d0000000008050433000000000880004c000001720000613d000000f8066002100000000008070433000009a408800197000000000668019f0000099c0660016700000000006704350000000006050019000000400500043d000009a30750009c000000fa0000213d0000004007500039000000400070043f0000000109000039000000000795043600000000080000310000000208800367000000000a000019000000050ba00210000000000cb70019000000000bb8034f000000000b0b043b0000000000bc0435000000010aa0003a000000000b000019000000010b006039000000010bb0019000000fb30000c13d0000000008050433000000000880004c000001720000613d0000000008070433000009a408800197000009a9088001c7000000000087043500000000070000310000000008470019000000020b000367000000000a3b034f000000000c0a043b0000099c0a000041000000000d8c004b000000000d000019000000000d0a80190000099c088001970000099c0ec00197000000000f8e004b000000000a00801900000000088e013f0000099c0880009c00000000080d001900000000080a6019000000000880004c000004950000c13d0000000008020433000000000a0604330000000d0d000029000000000cdc0019000000000bcb034f000000000b0b043b0000099d0db0009c000004950000213d0000000007b70049000000200cc000390000099c0d000041000000000e7c004b000000000e000019000000000e0d20190000099c077001970000099c0cc00197000000000f7c004b000000000d00801900000000077c013f0000099c0770009c00000000070e001900000000070d6019000000000770004c000004950000c13d00000000078a00190000000007b70019000000000805043300000000078700190000099d08700197000000380780008c0000111a0000413d0000002007800270000009980980009c000000000708a019000009980980009c00000000090000190000000409002039000000020a9001bf0000ffff0b70008c00000000090a2019000000100a70027000000000070a2019000000ff0770008c000000000a000019000000010a002039000000400700043d000009a30b70009c000000fa0000213d0000000009a9019f000000400a7000390000004000a0043f000000020a900039000000000aa70436000000000b000031000000020bb00367000000000c000019000000050dc00210000000000eda0019000000000ddb034f000000000d0d043b0000000000de0435000000010cc0003a000000000d000019000000010d006039000000010dd001900000100f0000c13d000000000b070433000000000bb0004c000001720000613d000000000b0a0433000009a40bb00197000000f80c900210000000000bbc019f000009aa0bb001c70000000000ba04350000000309900210000000f80990008900000000089801cf00000021097000390000000000890435000011360000013d000009a30750009c000000fa0000213d0000004007500039000000400070043f00000001070000390000000007750436000000000800003100000002088003670000000009000019000000050a900210000000000ba70019000000000aa8034f000000000a0a043b0000000000ab0435000000010990003a000000000a000019000000010a006039000000010aa00190000010310000c13d0000000008050433000000000880004c000001720000613d000000f8066002100000000008070433000009a408800197000000000668019f0000099c0660016700000000006704350000000006050019000000400500043d000009a30750009c000000fa0000213d0000004007500039000000400070043f0000000109000039000000000795043600000000080000310000000208800367000000000a000019000000050ba00210000000000cb70019000000000bb8034f000000000b0b043b0000000000bc0435000000010aa0003a000000000b000019000000010b006039000000010bb001900000104f0000c13d0000000008050433000000000880004c000001720000613d0000000008070433000009a408800197000009a9088001c7000000000087043500000000070000310000000008470019000000020b000367000000000a2b034f000000000c0a043b0000099c0a000041000000000d8c004b000000000d000019000000000d0a80190000099c088001970000099c0ec00197000000000f8e004b000000000a00801900000000088e013f0000099c0880009c00000000080d001900000000080a6019000000000880004c000004950000c13d0000000008030433000000000a0604330000000d0d000029000000000cdc0019000000000bcb034f000000000b0b043b0000099d0db0009c000004950000213d0000000007b70049000000200cc000390000099c0d000041000000000e7c004b000000000e000019000000000e0d20190000099c077001970000099c0cc00197000000000f7c004b000000000d00801900000000077c013f0000099c0770009c00000000070e001900000000070d6019000000000770004c000004950000c13d00000000078a00190000000007b70019000000000805043300000000078700190000099d08700197000000380780008c000011de0000413d0000002007800270000009980980009c000000000708a019000009980980009c00000000090000190000000409002039000000020a9001bf0000ffff0b70008c00000000090a2019000000100a70027000000000070a2019000000ff0770008c000000000a000019000000010a002039000000400700043d000009a30b70009c000000fa0000213d0000000009a9019f000000400a7000390000004000a0043f000000020a900039000000000aa70436000000000b000031000000020bb00367000000000c000019000000050dc00210000000000eda0019000000000ddb034f000000000d0d043b0000000000de0435000000010cc0003a000000000d000019000000010d006039000000010dd00190000010ab0000c13d000000000b070433000000000bb0004c000001720000613d000000000b0a0433000009a40bb00197000000f80c900210000000000bbc019f000009aa0bb001c70000000000ba04350000000309900210000000f80990008900000000089801cf00000021097000390000000000890435000011fa0000013d000000000310004c000011d90000c13d0000010401b00039000000000112034f000000000101043b000000800210008c0000129d0000413d0000008002100270000009a50310009c000000000201a019000009a50310009c0000000003000019000000100300203900000008043001bf0000099d0520009c000000000304201900000040042002700000099d0520009c000000000204201900000004043001bf000009980520009c00000000030420190000002004200270000009980520009c000000000204201900000002043001bf0000ffff0520008c000000000304201900000010042002700000000002042019000000ff0220008c000000000200001900000001020020390000000002230019000000200300008a0000004104200039000000000334016f000000400400043d0000000003340019000b00000004001d000000000443004b000000000400001900000001040040390000099d0530009c000000fa0000213d0000000104400190000000fa0000c13d000000400030043f00000002032000390000000b04000029000000000334043600000021042000390000000504400272000011050000613d00000000050000310000000205500367000000000600001900000005076002100000000008730019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000010fd0000413d000000000400004c000011070000613d0000000b040000290000000004040433000000000440004c000001720000613d0000000004030433000009a404400197000000f805200210000000000445019f000009a60440004100000000004304350000000302200210000000f80220008900000000012101cf000000ff0220008c00000000010020190000000b0200002900000021022000390000000000120435000012c00000013d000000400700043d000009a30a70009c000000fa0000213d000000400a7000390000004000a0043f0000000009970436000000000a000031000000020aa00367000000000b000019000000050cb00210000000000dc90019000000000cca034f000000000c0c043b0000000000cd0435000000010bb0003a000000000c000019000000010c006039000000010cc00190000011230000c13d000000000a070433000000000aa0004c000001720000613d000000f808800210000000000a090433000009a40aa001970000000008a8019f000009a9088000410000000000890435000000000900003100000000084900190000000204000367000000000334034f000000000303043b0000099c0a000041000000000b83004b000000000b000019000000000b0a80190000099c088001970000099c0c300197000000000d8c004b000000000a00801900000000088c013f0000099c0880009c00000000080b001900000000080a6019000000000880004c000004950000c13d0000000d080000290000000003830019000000000434034f000000000804043b0000099d0480009c000004950000213d000000000489004900000020093000390000099c03000041000000000a49004b000000000a000019000000000a0320190000099c044001970000099c0b900197000000000c4b004b000000000300801900000000044b013f0000099c0440009c00000000030ac019000000000330004c000004950000c13d000000400300043d0000002004300039000009ab0a0000410000000000a40435000000210a300039000000000b070433000000000cb0004c0000116e0000613d000000000c000019000000000dac0019000000200cc00039000000000e7c0019000000000e0e04330000000000ed0435000000000dbc004b000011670000413d0000000007ab00190000000000070435000000000a020433000000000ba0004c0000117b0000613d000000000b000019000000000c7b0019000000200bb00039000000000d2b0019000000000d0d04330000000000dc0435000000000cab004b000011740000413d00000000027a001900000000000204350000000007060433000000000a70004c000011880000613d000000000a000019000000000b2a0019000000200aa00039000000000c6a0019000000000c0c04330000000000cb0435000000000b7a004b000011810000413d00000000022700190000001f0680018f000000000002043500000002079003670000000509800272000011970000613d000000000a000019000000050ba00210000000000cb20019000000000bb7034f000000000b0b043b0000000000bc0435000000010aa00039000000000b9a004b0000118f0000413d000000000a60004c000011a60000613d0000000509900210000000000797034f00000000099200190000000306600210000000000a090433000000000a6a01cf000000000a6a022f000000000707043b0000010006600089000000000767022f00000000066701cf0000000006a6019f0000000000690435000000000282001900000000000204350000000006050433000000000760004c000011b30000613d000000000700001900000000082700190000002007700039000000000957001900000000090904330000000000980435000000000867004b000011ac0000413d000000000226001900000000000204350000000002320049000000200520008a00000000005304350000001f02200039000000000212016f0000000001320019000000000221004b000000000200001900000001020040390000099d0510009c000000fa0000213d0000000102200190000000fa0000c13d000000400010043f0000099801000041000009980240009c0000000002010019000000000204401900000040022002100000000003030433000009980430009c00000000030180190000006003300210000000000223019f0000000003000414000009980430009c0000000001034019000000c001100210000000000121019f000009ac011001c70000801002000039265c26570000040f00000001022001900000000c0b00002900000e350000c13d000004950000013d000000020210008c000013100000c13d0000000d01000029265c1f6b0000040f000013140000013d000000400700043d000009a30a70009c000000fa0000213d000000400a7000390000004000a0043f0000000009970436000000000a000031000000020aa00367000000000b000019000000050cb00210000000000dc90019000000000cca034f000000000c0c043b0000000000cd0435000000010bb0003a000000000c000019000000010c006039000000010cc00190000011e70000c13d000000000a070433000000000aa0004c000001720000613d000000f808800210000000000a090433000009a40aa001970000000008a8019f000009a9088000410000000000890435000000000900003100000000084900190000000204000367000000000224034f000000000202043b0000099c0a000041000000000b82004b000000000b000019000000000b0a80190000099c088001970000099c0c200197000000000d8c004b000000000a00801900000000088c013f0000099c0880009c00000000080b001900000000080a6019000000000880004c000004950000c13d0000000d080000290000000002820019000000000424034f000000000804043b0000099d0480009c000004950000213d000000000489004900000020092000390000099c02000041000000000a49004b000000000a000019000000000a0220190000099c044001970000099c0b900197000000000c4b004b000000000200801900000000044b013f0000099c0440009c00000000020ac019000000000220004c000004950000c13d000000400200043d0000002004200039000009ac0a0000410000000000a40435000000210a200039000000000b070433000000000cb0004c000012320000613d000000000c000019000000000dac0019000000200cc00039000000000e7c0019000000000e0e04330000000000ed0435000000000dbc004b0000122b0000413d0000000007ab00190000000000070435000000000a030433000000000ba0004c0000123f0000613d000000000b000019000000000c7b0019000000200bb00039000000000d3b0019000000000d0d04330000000000dc0435000000000cab004b000012380000413d00000000037a001900000000000304350000000007060433000000000a70004c0000124c0000613d000000000a000019000000000b3a0019000000200aa00039000000000c6a0019000000000c0c04330000000000cb0435000000000b7a004b000012450000413d00000000033700190000001f0680018f0000000000030435000000020790036700000005098002720000125b0000613d000000000a000019000000050ba00210000000000cb30019000000000bb7034f000000000b0b043b0000000000bc0435000000010aa00039000000000b9a004b000012530000413d000000000a60004c0000126a0000613d0000000509900210000000000797034f00000000099300190000000306600210000000000a090433000000000a6a01cf000000000a6a022f000000000707043b0000010006600089000000000767022f00000000066701cf0000000006a6019f0000000000690435000000000383001900000000000304350000000006050433000000000760004c000012770000613d000000000700001900000000083700190000002007700039000000000957001900000000090904330000000000980435000000000867004b000012700000413d000000000336001900000000000304350000000003230049000000200530008a00000000005204350000001f03300039000000000313016f0000000001230019000000000331004b000000000300001900000001030040390000099d0510009c000000fa0000213d0000000103300190000000fa0000c13d000000400010043f0000099801000041000009980340009c0000000003010019000000000304401900000040033002100000000002020433000009980420009c00000000020180190000006002200210000000000232019f0000000003000414000009980430009c0000000001034019000000c001100210000000000121019f000009ac011001c70000801002000039265c26570000040f00000001022001900000000c0b00002900000e350000c13d000004950000013d000000400200043d000b00000002001d000009a30220009c000000fa0000213d0000000b030000290000004002300039000000400020043f0000000102000039000000000223043600000000030000310000000203300367000000000400001900000005054002100000000006520019000000000553034f000000000505043b0000000000560435000000010440003a000000000500001900000001050060390000000105500190000012a90000c13d0000000b030000290000000003030433000000000330004c000001720000613d000000f8031002100000099c04000041000000000110004c000000000103001900000000010460190000000003020433000009a403300197000000000113019f0000000000120435000000a401b000390000000201100367000000000201043b000000800120008c000013470000413d0000008001200270000009a50320009c000000000102a019000009a50320009c0000000003000019000000100300203900000008043001bf0000099d0510009c000000000304201900000040041002700000099d0510009c000000000104201900000004043001bf000009980510009c00000000030420190000002004100270000009980510009c000000000104201900000002043001bf0000ffff0510008c000000000304201900000010041002700000000001042019000000ff0110008c000000000100001900000001010020390000000003130019000000200100008a0000004104300039000000000414016f000000400100043d0000000004410019000000000514004b000000000500001900000001050040390000099d0640009c000000fa0000213d0000000105500190000000fa0000c13d000000400040043f0000000204300039000000000441043600000021053000390000000505500272000012fd0000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b000012f50000413d000000000500004c000012ff0000613d0000000005010433000000000550004c000001720000613d0000000005040433000009a405500197000000f806300210000000000556019f000009a60550004100000000005404350000000303300210000000f80330008900000000023201cf000000ff0330008c000000000200201900000021031000390000000000230435000013670000013d000000010110008c0000131f0000c13d0000000d01000029265c18fd0000040f000000400200043d00000020032000390000000c04000029000000000043043500000000001204350000099801000041000009980320009c00000000010240190000004001100210000009c1011001c70000265d0001042e000000400200043d000d00000002001d0000099f0100004100000000001204350000000401200039265c18f30000040f0000000d0400002900000000014100490000099802000041000009980310009c0000000001028019000009980340009c000000000204401900000040022002100000006001100210000000000121019f0000265e000104300000000b01000029000000c001100210000009ae01100197000009ad011001c70000ffe902000039265c26570000040f00000000020100190000006002200270000109980020019d0000000d030000290000000b020000290000000002230019000000000332004b0000000003000019000000010300403900030000000103550000000101300190000003380000c13d0000000001000031000000000321004b000003380000413d000000000121004900000e770000013d000000400100043d000009a30310009c000000fa0000213d0000004003100039000000400030043f0000000103000039000000000331043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a000000000600001900000001060060390000000106600190000013510000c13d0000000004010433000000000440004c000001720000613d000000f8042002100000099c05000041000000000220004c000000000204001900000000020560190000000004030433000009a404400197000000000224019f00000000002304350000006402b000390000000202200367000000000302043b000000800230008c000013d20000413d0000008002300270000009a50430009c000000000203a019000009a50430009c0000000004000019000000100400203900000008054001bf0000099d0620009c000000000405201900000040052002700000099d0620009c000000000205201900000004054001bf000009980620009c00000000040520190000002005200270000009980620009c000000000205201900000002054001bf0000ffff0620008c000000000405201900000010052002700000000002052019000000ff0220008c000000000200001900000001020020390000000004240019000000200200008a0000004105400039000000000525016f000000400200043d0000000005520019000000000625004b000000000600001900000001060040390000099d0750009c000000fa0000213d0000000106600190000000fa0000c13d000000400050043f0000000205400039000000000552043600000021064000390000000506600272000013a40000613d0000000007000031000000020770036700000000080000190000000509800210000000000a950019000000000997034f000000000909043b00000000009a04350000000108800039000000000968004b0000139c0000413d000000000600004c000013a60000613d0000000006020433000000000660004c000001720000613d0000000006050433000009a406600197000000f807400210000000000667019f000009a60660004100000000006504350000000304400210000000f80440008900000000034301cf000000ff0440008c000000000300201900000021042000390000000000340435000013f20000013d0000001f0430018f0000000502300272000013c20000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000013bb0000413d000000000540004c000013d00000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f000000000012043500000060013002100000265e00010430000000400200043d000009a30420009c000000fa0000213d0000004004200039000000400040043f0000000104000039000000000442043600000000050000310000000205500367000000000600001900000005076002100000000008740019000000000775034f000000000707043b0000000000780435000000010660003a000000000700001900000001070060390000000107700190000013dc0000c13d0000000005020433000000000550004c000001720000613d000000f8053002100000099c06000041000000000330004c000000000305001900000000030660190000000005040433000009a405500197000000000335019f0000000000340435000000400300043d000a00000003001d00000020033000390000000004010433000000000540004c000014000000613d000000000500001900000000063500190000002005500039000000000715001900000000070704330000000000760435000000000645004b000013f90000413d000000000134001900000000000104350000000003020433000000000430004c0000140d0000613d000000000400001900000000051400190000002004400039000000000624001900000000060604330000000000650435000000000534004b000014060000413d000000000113001900000000000104350000000a030000290000000001310049000000200210008a00000000002304350000001f01100039000000200200008a000800000002001d000000000121016f0000000002310019000000000112004b00000000010000190000000101004039000900000002001d0000099d0220009c000000fa0000213d0000000101100190000000fa0000c13d0000000901000029000000400010043f000009a30110009c000000fa0000213d00000000040b001900000044014000390000000201100367000000000101043b00000009050000290000004002500039000000400020043f0000002002500039000009a70300004100000000003204350000001502000039000000000025043500000021025000390000006001100210000000000012043500000124014000390000000201100367000000000101043b000000800210008c000014870000413d0000008002100270000009a50310009c000000000201a019000009a50310009c0000000003000019000000100300203900000008043001bf0000099d0520009c000000000304201900000040042002700000099d0520009c000000000204201900000004043001bf000009980520009c00000000030420190000002004200270000009980520009c000000000204201900000002043001bf0000ffff0520008c000000000304201900000010042002700000000002042019000000ff0220008c00000000020000190000000102002039000000000223001900000041032000390000000804000029000000000343016f000000400400043d0000000003340019000700000004001d000000000443004b000000000400001900000001040040390000099d0530009c000000fa0000213d0000000104400190000000fa0000c13d000000400030043f00000002032000390000000704000029000000000334043600000021042000390000000504400272000014720000613d00000000050000310000000205500367000000000600001900000005076002100000000008730019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b0000146a0000413d000000000400004c000014740000613d00000007040000290000000004040433000000000440004c000001720000613d0000000004030433000009a404400197000000f805200210000000000445019f000009a60440004100000000004304350000000302200210000000f80220008900000000012101cf000000ff0220008c0000000001002019000000070200002900000021022000390000000000120435000014aa0000013d000000400200043d000700000002001d000009a30220009c000000fa0000213d00000007030000290000004002300039000000400020043f0000000102000039000000000223043600000000030000310000000203300367000000000400001900000005054002100000000006520019000000000553034f000000000505043b0000000000560435000000010440003a000000000500001900000001050060390000000105500190000014930000c13d00000007030000290000000003030433000000000330004c000001720000613d000000f8031002100000099c04000041000000000110004c000000000103001900000000010460190000000003020433000009a403300197000000000113019f0000000000120435000000230100008a00000000020b00190000000004210049000001c4012000390000000202000367000200000001001d000000000112034f000000000101043b0000000003000031000300000004001d00000000044300190000099c05000041000000000641004b000000000600001900000000060580190000099c044001970000099c07100197000000000847004b0000000005008019000000000447013f0000099c0440009c00000000040600190000000004056019000000000440004c000004950000c13d0000000d040000290000000004410019000000000142034f000000000101043b0000099d0510009c000004950000213d000000000513004900000020034000390000099c04000041000000000653004b000000000600001900000000060420190000099c055001970000099c07300197000000000857004b0000000004008019000000000557013f0000099c0550009c000000000406c019000000000440004c000004950000c13d000000010410008c000014f90000c13d000000000132034f000000000101043b000000010200008a0000099c03000041000000000221004b000000000200001900000000020320190000099c011001970000099c0410009c00000000030080190000099c011001670000099c0110009c000000000102001900000000010360190000006002000039000600000002001d000000000110004c000015520000c13d000000400100043d000600000001001d000009a30110009c000000fa0000213d00000006030000290000004001300039000000400010043f0000002001300039000009a602000041000000000021043500000001010000390000000000130435000015520000013d000000380210008c000015320000413d0000002002100270000009980310009c00000000030100190000000003022019000009980210009c0000000002000019000000040200203900000002042001bf0000ffff0530008c000000000204201900000010043002700000000003042019000000ff0330008c00000000030000190000000103002039000000400400043d000600000004001d000009a30440009c000000fa0000213d000000000232019f00000006040000290000004003400039000000400030043f0000000203200039000000000334043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a000000000600001900000001060060390000000106600190000015170000c13d00000006040000290000000004040433000000000440004c000001720000613d0000000004030433000009a404400197000000f805200210000000000445019f000009a8044001c700000000004304350000000302200210000000f80220008900000000012101cf000000060200002900000021022000390000000000120435000015520000013d000000400200043d000600000002001d000009a30220009c000000fa0000213d00000006030000290000004002300039000000400020043f0000000102000039000000000223043600000000030000310000000203300367000000000400001900000005054002100000000006520019000000000553034f000000000505043b0000000000560435000000010440003a0000000005000019000000010500603900000001055001900000153e0000c13d00000006030000290000000003030433000000000330004c000001720000613d000000f8011002100000000003020433000009a403300197000000000113019f0000099c01100167000000000012043500000000030000310000000301000029000000000513001900000000010b0019000001e4011000390000000202000367000000000412034f000000000404043b0000099c06000041000000000754004b000000000700001900000000070680190000099c055001970000099c08400197000000000958004b0000000006008019000000000558013f0000099c0550009c00000000050700190000000005066019000000000550004c000004950000c13d0000000d050000290000000004540019000000000542034f000000000505043b0000099d0650009c000004950000213d000000200650008c000004950000413d000000000553004900000020034000390000099c04000041000000000653004b000000000600001900000000060420190000099c055001970000099c07300197000000000857004b0000000004008019000000000557013f0000099c0550009c000000000406c019000000000440004c000004950000c13d000000000232034f000000000202043b000000800320008c000015d20000413d0000008003200270000009a50420009c000000000302a019000009a50420009c0000000004000019000000100400203900000008054001bf0000099d0630009c000000000405201900000040053002700000099d0630009c000000000305201900000004054001bf000009980630009c00000000040520190000002005300270000009980630009c000000000305201900000002054001bf0000ffff0630008c000000000405201900000010053002700000000003052019000000ff0330008c00000000030000190000000103002039000000000334001900000041043000390000000805000029000000000454016f000000400500043d0000000004450019000500000005001d000000000554004b000000000500001900000001050040390000099d0640009c000000fa0000213d0000000105500190000000fa0000c13d000000400040043f00000002043000390000000505000029000000000445043600000021053000390000000505500272000015bd0000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b000015b50000413d000000000500004c000015bf0000613d00000005050000290000000005050433000000000550004c000001720000613d0000000005040433000009a405500197000000f806300210000000000556019f000009a60550004100000000005404350000000303300210000000f80330008900000000023201cf000000ff0330008c0000000002002019000000050300002900000021033000390000000000230435000015f50000013d000000400300043d000500000003001d000009a30330009c000000fa0000213d00000005040000290000004003400039000000400030043f0000000103000039000000000334043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a000000000600001900000001060060390000000106600190000015de0000c13d00000005040000290000000004040433000000000440004c000001720000613d000000f8042002100000099c05000041000000000220004c000000000204001900000000020560190000000004030433000009a404400197000000000224019f00000000002304350000000003000031000000030200002900000000052300190000000202000367000000000412034f000000000404043b0000099c06000041000000000754004b000000000700001900000000070680190000099c055001970000099c08400197000000000958004b0000000006008019000000000558013f0000099c0550009c00000000050700190000000005066019000000000550004c000004950000c13d0000000d050000290000000004540019000000000542034f000000000505043b0000099d0650009c000004950000213d000000400650008c000004950000413d000000000353004900000020054000390000099c06000041000000000735004b000000000700001900000000070620190000099c033001970000099c05500197000000000835004b0000000006008019000000000335013f0000099c0330009c00000000030700190000000003066019000000000330004c000004950000c13d0000004003400039000000000232034f000000000202043b000000800320008c000016750000413d0000008003200270000009a50420009c000000000302a019000009a50420009c0000000004000019000000100400203900000008054001bf0000099d0630009c000000000405201900000040053002700000099d0630009c000000000305201900000004054001bf000009980630009c00000000040520190000002005300270000009980630009c000000000305201900000002054001bf0000ffff0630008c000000000405201900000010053002700000000003052019000000ff0330008c00000000030000190000000103002039000000000334001900000041043000390000000805000029000000000454016f000000400500043d0000000004450019000400000005001d000000000554004b000000000500001900000001050040390000099d0640009c000000fa0000213d0000000105500190000000fa0000c13d000000400040043f00000002043000390000000405000029000000000445043600000021053000390000000505500272000016600000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b000016580000413d000000000500004c000016620000613d00000004050000290000000005050433000000000550004c000001720000613d0000000005040433000009a405500197000000f806300210000000000556019f000009a60550004100000000005404350000000303300210000000f80330008900000000023201cf000000ff0330008c0000000002002019000000040300002900000021033000390000000000230435000016980000013d000000400300043d000400000003001d000009a30330009c000000fa0000213d00000004040000290000004003400039000000400030043f0000000103000039000000000334043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a000000000600001900000001060060390000000106600190000016810000c13d00000004040000290000000004040433000000000440004c000001720000613d000000f8042002100000099c05000041000000000220004c000000000204001900000000020560190000000004030433000009a404400197000000000224019f00000000002304350000000003000031000000030200002900000000042300190000000202000367000000000112034f000000000101043b0000099c05000041000000000641004b000000000600001900000000060580190000099c044001970000099c07100197000000000847004b0000000005008019000000000447013f0000099c0440009c00000000040600190000000004056019000000000440004c000004950000c13d0000000d040000290000000001410019000000000412034f000000000404043b0000099d0540009c000004950000213d000000000343004900000020051000390000099c06000041000000000735004b000000000700001900000000070620190000099c033001970000099c05500197000000000835004b0000000006008019000000000335013f0000099c0330009c00000000030700190000000003066019000000000330004c000004950000c13d000000410340008c000001720000413d0000006001100039000000000112034f000000000101043b000000f801100270000100000001001d0000001b0110008a000000020110008c0000173a0000813d0000014401b00039000000000112034f000000000101043b000000000110004c0000174c0000613d000009a101000041000000000010043900000998010000410000000002000414000009980320009c0000000001024019000000c001100210000009a2011001c70000800b02000039265c26570000040f0000000102200190000004950000613d000000000201043b0000000101200210000000000320004c000016e70000613d000000090300008a000000000331004b000003380000213d00000000322100d9000000020220008c000003380000c13d000000010300002900000000011300190000000802100039000000000132004b000003380000413d000000800120008c000100000002001d0000174c0000413d0000008001200270000009a50320009c000000000102a019000009a50320009c0000000003000019000000100300203900000008043001bf0000099d0510009c000000000304201900000040041002700000099d0510009c000000000104201900000004043001bf000009980510009c00000000030420190000002004100270000009980510009c000000000104201900000002043001bf0000ffff0510008c000000000304201900000010041002700000000001042019000000ff0110008c00000000010000190000000101002039000000000313001900000041013000390000000804000029000000000441016f000000400100043d0000000004410019000000000514004b000000000500001900000001050040390000099d0640009c000000fa0000213d0000000105500190000000fa0000c13d000000400040043f0000000204300039000000000441043600000021053000390000000505500272000017270000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b0000171f0000413d000000000500004c000017290000613d0000000005010433000000000550004c000001720000613d0000000005040433000009a405500197000000f806300210000000000556019f000009a60550004100000000005404350000000303300210000000f80330008900000000023201cf000000ff0330008c0000000002002019000000210310003900000000002304350000176c0000013d000000400100043d0000004402100039000009bc03000041000000000032043500000024021000390000000f0300003900000000003204350000099f0200004100000000002104350000000402100039000000200300003900000000003204350000099802000041000009980310009c00000000010280190000004001100210000009a0011001c70000265e00010430000000400100043d000009a30210009c000000fa0000213d0000004002100039000000400020043f0000000102000039000000000221043600000000030000310000000203300367000000000400001900000005054002100000000006520019000000000553034f000000000505043b0000000000560435000000010440003a000000000500001900000001050060390000000105500190000017560000c13d0000000003010433000000000330004c000001720000613d0000000105000029000000f8035002100000099c04000041000000000550004c00000000030460190000000004020433000009a404400197000000000334019f000000000032043500000000020000310000000303000029000000000332001900000002080003670000000204000029000000000448034f000000000904043b0000099c04000041000000000539004b000000000500001900000000050480190000099c033001970000099c06900197000000000736004b0000000004008019000000000336013f0000099c0330009c00000000030500190000000003046019000000000330004c000004950000c13d0000000b0300002900000000030304330000000a0400002900000000040404330000000905000029000000000505043300000007060000290000000006060433000000060700002900000000070704330000000d0a0000290000000009a90019000000000898034f000000000808043b0000099d0a80009c000004950000213d000000000282004900000020099000390000099c0a000041000000000b29004b000000000b000019000000000b0a20190000099c022001970000099c09900197000000000c29004b000000000a008019000000000229013f0000099c0220009c00000000020b001900000000020a6019000000000220004c000004950000c13d00000000023400190000000002520019000000000262001900000000027200190000000002820019000000050300002900000000030304330000000002320019000000040300002900000000030304330000000002320019000000000301043300000000023200190000099d02200197000000380320008c000017e40000413d0000002003200270000009980420009c00000000040200190000000004032019000009980320009c0000000003000019000000040300203900000002053001bf0000ffff0640008c000000000305201900000010054002700000000004052019000000ff0440008c00000000040000190000000104002039000000400500043d000009a30650009c000000fa0000213d000000000343019f0000004004500039000000400040043f0000000204300039000000000445043600000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b0000000000890435000000010770003a000000000800001900000001080060390000000108800190000017cb0000c13d0000000006050433000000000660004c000001720000613d0000000006040433000009a406600197000000f807300210000000000667019f000009aa066001c700000000006404350000000303300210000000f80330008900000000023201cf00000021035000390000000000230435000018010000013d000000400500043d000009a30350009c000000fa0000213d0000004003500039000000400030043f0000000103000039000000000335043600000000040000310000000204400367000000000600001900000005076002100000000008730019000000000774034f000000000707043b0000000000780435000000010660003a000000000700001900000001070060390000000107700190000017ee0000c13d0000000004050433000000000440004c000001720000613d000000f8022002100000000004030433000009a404400197000000000242019f000009a902200041000000000023043500000000020000310000000303000029000000000632001900000002030003670000000204000029000000000443034f000000000404043b0000099c07000041000000000864004b000000000800001900000000080780190000099c066001970000099c09400197000000000a69004b0000000007008019000000000669013f0000099c0660009c00000000060800190000000006076019000000000660004c000004950000c13d0000000d060000290000000006640019000000000363034f000000000403043b0000099d0340009c000004950000213d000000000242004900000020066000390000099c03000041000000000726004b000000000700001900000000070320190000099c022001970000099c08600197000000000928004b0000000003008019000000000228013f0000099c0220009c00000000020700190000000002036019000000000220004c000004950000c13d000000400200043d00000020032000390000000007050433000000000870004c000018390000613d000000000800001900000000093800190000002008800039000000000a580019000000000a0a04330000000000a90435000000000978004b000018320000413d000000000537001900000000000504350000000b070000290000000007070433000000000870004c000018480000613d0000000008000019000000000958001900000020088000390000000b0a000029000000000aa80019000000000a0a04330000000000a90435000000000978004b000018400000413d000000000557001900000000000504350000000a070000290000000007070433000000000870004c000018570000613d0000000008000019000000000958001900000020088000390000000a0a000029000000000aa80019000000000a0a04330000000000a90435000000000978004b0000184f0000413d0000000005570019000000000005043500000009070000290000000007070433000000000870004c000018660000613d000000000800001900000000095800190000002008800039000000090a000029000000000aa80019000000000a0a04330000000000a90435000000000978004b0000185e0000413d0000000005570019000000000005043500000007070000290000000007070433000000000870004c000018750000613d000000000800001900000000095800190000002008800039000000070a000029000000000aa80019000000000a0a04330000000000a90435000000000978004b0000186d0000413d0000000005570019000000000005043500000006070000290000000007070433000000000870004c000018840000613d000000000800001900000000095800190000002008800039000000060a000029000000000aa80019000000000a0a04330000000000a90435000000000978004b0000187c0000413d00000000055700190000001f0740018f000000000005043500000002066003670000000508400272000018930000613d0000000009000019000000050a900210000000000ba50019000000000aa6034f000000000a0a043b0000000000ab04350000000109900039000000000a89004b0000188b0000413d000000000970004c000018a20000613d0000000508800210000000000686034f00000000088500190000000307700210000000000908043300000000097901cf000000000979022f000000000606043b0000010007700089000000000676022f00000000067601cf000000000696019f0000000000680435000000000445001900000000000404350000000005010433000000000650004c000018af0000613d000000000600001900000000074600190000002006600039000000000816001900000000080804330000000000870435000000000756004b000018a80000413d0000000001450019000000000001043500000005040000290000000004040433000000000540004c000018be0000613d0000000005000019000000000615001900000020055000390000000507000029000000000775001900000000070704330000000000760435000000000645004b000018b60000413d0000000001140019000000000001043500000004040000290000000004040433000000000540004c000018cd0000613d0000000005000019000000000615001900000020055000390000000407000029000000000775001900000000070704330000000000760435000000000645004b000018c50000413d000000000114001900000000000104350000000001210049000000200410008a00000000004204350000001f011000390000000804000029000000000441016f0000000001240019000000000441004b000000000400001900000001040040390000099d0510009c000000fa0000213d0000000104400190000000fa0000c13d000000400010043f0000099801000041000009980430009c000000000301801900000040033002100000000002020433000009980420009c00000000020180190000006002200210000000000232019f0000000003000414000009980430009c0000000001034019000000c001100210000000000121019f000009ac011001c70000801002000039265c26570000040f0000000102200190000004950000613d000000000101043b000013140000013d0000004002100039000009c3030000410000000000320435000000200210003900000013030000390000000000320435000000200200003900000000002104350000006001100039000000000001042d0006000000000002000400000001001d000009a101000041000000000010043900000998010000410000000002000414000009980320009c0000000001024019000000c001100210000009a2011001c70000800b02000039265c26570000040f000000010220019000001f4b0000613d000000000201043b000000800120008c000019590000413d0000008001200270000009a50320009c000000000102a019000009a50320009c0000000003000019000000100300203900000008043001bf0000099d0510009c000000000304201900000040041002700000099d0510009c000000000104201900000004043001bf000009980510009c00000000030420190000002004100270000009980510009c000000000104201900000002043001bf0000ffff0510008c000000000304201900000010041002700000000001042019000000ff0110008c000000000100001900000001010020390000000003130019000000200100008a0000004104300039000000000414016f000000400100043d0000000004410019000000000514004b000000000500001900000001050040390000099d0640009c00001f4d0000213d000000010550019000001f4d0000c13d000000400040043f0000000204300039000000000441043600000021053000390000000505500272000019460000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b0000193e0000413d000000000500004c000019480000613d0000000005010433000000000550004c00001f530000613d0000000005040433000009a405500197000000f806300210000000000556019f000009a60550004100000000005404350000000303300210000000f80330008900000000023201cf000000ff0330008c000000000200201900000021031000390000000000230435000019790000013d000000400100043d000009a30310009c00001f4d0000213d0000004003100039000000400030043f0000000103000039000000000331043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a000000000600001900000001060060390000000106600190000019630000c13d0000000004010433000000000440004c00001f530000613d000000f8042002100000099c05000041000000000220004c000000000204001900000000020560190000000004030433000009a404400197000000000224019f0000000000230435000000040200002900000100022000390000000202200367000000000202043b000000800320008c000019ca0000413d0000008003200270000009a50420009c000000000302a019000009a50420009c0000000004000019000000100400203900000008054001bf0000099d0630009c000000000405201900000040053002700000099d0630009c000000000305201900000004054001bf000009980630009c00000000040520190000002005300270000009980630009c000000000305201900000002054001bf0000ffff0630008c000000000405201900000010053002700000000003052019000000ff0330008c000000000300001900000001030020390000000004340019000000200300008a0000004105400039000000000535016f000000400300043d0000000005530019000000000635004b000000000600001900000001060040390000099d0750009c00001f4d0000213d000000010660019000001f4d0000c13d000000400050043f0000000205400039000000000553043600000021064000390000000506600272000019b70000613d0000000007000031000000020770036700000000080000190000000509800210000000000a950019000000000997034f000000000909043b00000000009a04350000000108800039000000000968004b000019af0000413d000000000600004c000019b90000613d0000000006030433000000000660004c00001f530000613d0000000006050433000009a406600197000000f807400210000000000667019f000009a60660004100000000006504350000000304400210000000f80440008900000000024201cf000000ff0440008c000000000200201900000021043000390000000000240435000019ea0000013d000000400300043d000009a30430009c00001f4d0000213d0000004004300039000000400040043f0000000104000039000000000443043600000000050000310000000205500367000000000600001900000005076002100000000008740019000000000775034f000000000707043b0000000000780435000000010660003a000000000700001900000001070060390000000107700190000019d40000c13d0000000005030433000000000550004c00001f530000613d000000f8052002100000099c06000041000000000220004c000000000205001900000000020660190000000005040433000009a405500197000000000225019f00000000002404350000000402000029000000a0022000390000000202200367000000000202043b000000800420008c00001a3b0000413d0000008004200270000009a50520009c000000000402a019000009a50520009c0000000005000019000000100500203900000008065001bf0000099d0740009c000000000506201900000040064002700000099d0740009c000000000406201900000004065001bf000009980740009c00000000050620190000002006400270000009980740009c000000000406201900000002065001bf0000ffff0740008c000000000506201900000010064002700000000004062019000000ff0440008c000000000400001900000001040020390000000005450019000000200400008a0000004106500039000000000646016f000000400400043d0000000006640019000000000746004b000000000700001900000001070040390000099d0860009c00001f4d0000213d000000010770019000001f4d0000c13d000000400060043f000000020650003900000000066404360000002107500039000000050770027200001a280000613d000000000800003100000002088003670000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b00001a200000413d000000000700004c00001a2a0000613d0000000007040433000000000770004c00001f530000613d0000000007060433000009a407700197000000f808500210000000000778019f000009a60770004100000000007604350000000305500210000000f80550008900000000025201cf000000ff0550008c00000000020020190000002105400039000000000025043500001a5b0000013d000000400400043d000009a30540009c00001f4d0000213d0000004005400039000000400050043f0000000105000039000000000554043600000000060000310000000206600367000000000700001900000005087002100000000009850019000000000886034f000000000808043b0000000000890435000000010770003a00000000080000190000000108006039000000010880019000001a450000c13d0000000006040433000000000660004c00001f530000613d000000f8062002100000099c07000041000000000220004c000000000206001900000000020760190000000006050433000009a406600197000000000226019f0000000000250435000000040200002900000060022000390000000202200367000000000202043b000000800520008c00001aac0000413d0000008005200270000009a50620009c000000000502a019000009a50620009c0000000006000019000000100600203900000008076001bf0000099d0850009c000000000607201900000040075002700000099d0850009c000000000507201900000004076001bf000009980850009c00000000060720190000002007500270000009980850009c000000000507201900000002076001bf0000ffff0850008c000000000607201900000010075002700000000005072019000000ff0550008c000000000500001900000001050020390000000006560019000000200500008a0000004107600039000000000757016f000000400500043d0000000007750019000000000857004b000000000800001900000001080040390000099d0970009c00001f4d0000213d000000010880019000001f4d0000c13d000000400070043f000000020760003900000000077504360000002108600039000000050880027200001a990000613d00000000090000310000000209900367000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa00039000000000b8a004b00001a910000413d000000000800004c00001a9b0000613d0000000008050433000000000880004c00001f530000613d0000000008070433000009a408800197000000f809600210000000000889019f000009a60880004100000000008704350000000306600210000000f80660008900000000026201cf000000ff0660008c00000000020020190000002106500039000000000026043500001acc0000013d000000400500043d000009a30650009c00001f4d0000213d0000004006500039000000400060043f000000010600003900000000066504360000000007000031000000020770036700000000080000190000000509800210000000000a960019000000000997034f000000000909043b00000000009a0435000000010880003a00000000090000190000000109006039000000010990019000001ab60000c13d0000000007050433000000000770004c00001f530000613d000000f8072002100000099c08000041000000000220004c000000000207001900000000020860190000000007060433000009a407700197000000000227019f0000000000260435000000400600043d000009a30260009c00001f4d0000213d000000040900002900000040029000390000000202200367000000000202043b0000004007600039000000400070043f0000002007600039000009a70800004100000000008704350000001507000039000000000076043500000021076000390000006002200210000000000027043500000120029000390000000202200367000000000202043b000000800720008c00001b2d0000413d0000008007200270000009a50820009c000000000702a019000009a50820009c0000000008000019000000100800203900000008098001bf0000099d0a70009c000000000809201900000040097002700000099d0a70009c000000000709201900000004098001bf000009980a70009c00000000080920190000002009700270000009980a70009c000000000709201900000002098001bf0000ffff0a70008c000000000809201900000010097002700000000007092019000000ff0770008c000000000700001900000001070020390000000008780019000000200700008a0000004109800039000000000979016f000000400700043d0000000009970019000000000a79004b000000000a000019000000010a0040390000099d0b90009c00001f4d0000213d000000010aa0019000001f4d0000c13d000000400090043f00000002098000390000000009970436000000210a800039000000050aa0027200001b1a0000613d000000000b000031000000020bb00367000000000c000019000000050dc00210000000000ed90019000000000ddb034f000000000d0d043b0000000000de0435000000010cc00039000000000dac004b00001b120000413d000000000a00004c00001b1c0000613d000000000a070433000000000aa0004c00001f530000613d000000000a090433000009a40aa00197000000f80b800210000000000aab019f000009a60aa000410000000000a904350000000308800210000000f80880008900000000028201cf000000ff0880008c00000000020020190000002108700039000000000028043500001b4d0000013d000000400700043d000009a30870009c00001f4d0000213d0000004008700039000000400080043f0000000108000039000000000887043600000000090000310000000209900367000000000a000019000000050ba00210000000000cb80019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa0003a000000000b000019000000010b006039000000010bb0019000001b370000c13d0000000009070433000000000990004c00001f530000613d000000f8092002100000099c0a000041000000000220004c000000000209001900000000020a60190000000009080433000009a409900197000000000229019f0000000000280435000000400200043d00000020082000390000000009010433000000000a90004c00001b5a0000613d000000000a000019000000000b8a0019000000200aa00039000000000c1a0019000000000c0c04330000000000cb0435000000000b9a004b00001b530000413d000000000189001900000000000104350000000008030433000000000980004c00001b670000613d0000000009000019000000000a1900190000002009900039000000000b390019000000000b0b04330000000000ba0435000000000a89004b00001b600000413d000000000118001900000000000104350000000003040433000000000830004c00001b740000613d000000000800001900000000091800190000002008800039000000000a480019000000000a0a04330000000000a90435000000000938004b00001b6d0000413d000000000113001900000000000104350000000003050433000000000430004c00001b810000613d000000000400001900000000081400190000002004400039000000000954001900000000090904330000000000980435000000000834004b00001b7a0000413d000000000113001900000000000104350000000003060433000000000430004c00001b8e0000613d000000000400001900000000051400190000002004400039000000000864001900000000080804330000000000850435000000000534004b00001b870000413d000000000113001900000000000104350000000003070433000000000430004c00001b9b0000613d000000000400001900000000051400190000002004400039000000000674001900000000060604330000000000650435000000000534004b00001b940000413d000000000113001900000000000104350000000001210049000000200310008a00000000003204350000001f01100039000000200300008a000200000003001d000000000131016f0000000005210019000000000115004b000000000100001900000001010040390000099d0350009c00001f4d0000213d000000010110019000001f4d0000c13d000000400050043f0000001f0100008a00000004030000290000000004310049000001c0013000390000000207000367000100000001001d000000000117034f000000000601043b000000000800003100000000014800190000099c09000041000000000a16004b000000000a000019000000000a0980190000099c011001970000099c0b600197000000000c1b004b000000000900801900000000011b013f0000099c0110009c00000000010a00190000000001096019000000000110004c00001f4b0000c13d00000004010000290000000001160019000000000617034f000000000606043b0000099d0960009c00001f4b0000213d000000000968004900000020081000390000099c01000041000000000a98004b000000000a000019000000000a0120190000099c099001970000099c0b800197000000000c9b004b000000000100801900000000099b013f0000099c0990009c00000000010ac019000000000110004c00001f4b0000c13d000000010160008c00001bf80000c13d000000000187034f000000000101043b000000010300008a0000099c06000041000000000331004b000000000300001900000000030620190000099c011001970000099c0710009c00000000060080190000099c011001670000099c0110009c000000000103001900000000010660190000006006000039000000000110004c00001c4a0000c13d000009a30150009c00001f4d0000213d0000004001500039000000400010043f0000002001500039000009a603000041000000000031043500000001010000390000000000150435000000000605001900001c4a0000013d000000380160008c00001c2d0000413d0000002001600270000009980360009c00000000030600190000000003012019000009980160009c0000000001000019000000040100203900000002071001bf0000ffff0830008c000000000107201900000010073002700000000003072019000000ff0330008c00000000070000190000000107002039000009a30350009c00001f4d0000213d000000000771019f0000004001500039000000400010043f0000000201700039000000000815043600000000010000310000000209100367000000000a0000190000000501a002100000000003180019000000000119034f000000000101043b0000000000130435000000010aa0003a00000000010000190000000101006039000000010110019000001c130000c13d0000000001050433000000000110004c00001f530000613d0000000001080433000009a401100197000000f803700210000000000113019f000009a8011001c700000000001804350000000301700210000000f80110008900000000011601cf00000021035000390000000000130435000000000605001900001c4a0000013d000009a30150009c00001f4d0000213d0000004001500039000000400010043f0000000101000039000000000715043600000000010000310000000208100367000000000900001900000005019002100000000003170019000000000118034f000000000101043b0000000000130435000000010990003a00000000010000190000000101006039000000010110019000001c360000c13d0000000001050433000000000110004c00001f530000613d000000f8016002100000000003070433000009a403300197000000000113019f0000099c0110016700000000001704350000000006050019000000400500043d000009a30150009c00001f4d0000213d0000004001500039000000400010043f0000000101000039000300000001001d000000000715043600000000010000310000000208100367000000000a0000190000000501a00210000000000b170019000000000118034f000000000101043b00000000001b0435000000010aa0003a00000000010000190000000101006039000000010110019000001c550000c13d0000000001050433000000000110004c00001f530000613d0000000001070433000009a401100197000009a9011001c70000000000170435000000000800003100000000014800190000000403000029000001e00a3000390000000207000367000000000ba7034f000000000b0b043b0000099c0c000041000000000d1b004b000000000d000019000000000d0c80190000099c011001970000099c0eb00197000000000f1e004b000000000c00801900000000011e013f0000099c0110009c00000000010d001900000000010c6019000000000110004c00001f4b0000c13d000000040100002900000000011b0019000000000b17034f000000000b0b043b0000099d0cb0009c00001f4b0000213d000000000cb8004900000020081000390000099c01000041000000000dc8004b000000000d000019000000000d0120190000099c0cc001970000099c0e800197000000000fce004b0000000001008019000000000cce013f0000099c0cc0009c00000000010dc019000000000110004c00001f4b0000c13d0000002001b0008c00001f4b0000413d000000000187034f000000000801043b000000800180008c00001ce20000413d0000008001800270000009a50780009c000000000108a019000009a50780009c00000000070000190000001007002039000000080b7001bf0000099d0c10009c00000000070b2019000000400b1002700000099d0c10009c00000000010b2019000000040b7001bf000009980c10009c00000000070b2019000000200b100270000009980c10009c00000000010b2019000000020b7001bf0000ffff0c10008c00000000070b2019000000100b10027000000000010b2019000000ff0110008c00000000010000190000000101002039000000000b1700190000004101b000390000000203000029000000000131016f000000400700043d0000000001170019000000000c71004b000000000c000019000000010c0040390000099d0d10009c00001f4d0000213d000000010cc0019000001f4d0000c13d000000400010043f0000000201b00039000000000c1704360000002101b00039000000050d10027200001cce0000613d0000000001000031000000020e100367000000000f0000190000000501f0021000000000031c001900000000011e034f000000000101043b0000000000130435000000010ff000390000000001df004b00001cc60000413d000000000100004c00001cd00000613d0000000001070433000000000110004c00001f530000613d00000000010c0433000009a401100197000000f803b00210000000000113019f000009a60110004100000000001c04350000000301b00210000000f80110008900000000031801cf000000ff0110008c000000000103001900000000010020190000002103700039000000000013043500001d010000013d000000400700043d000009a30170009c00001f4d0000213d0000004001700039000000400010043f0000000301000029000000000b1704360000000001000031000000020c100367000000000d0000190000000501d0021000000000031b001900000000011c034f000000000101043b0000000000130435000000010dd0003a00000000010000190000000101006039000000010110019000001cec0000c13d0000000001070433000000000110004c00001f530000613d000000f8018002100000099c03000041000000000880004c000000000103601900000000030b0433000009a403300197000000000113019f00000000001b0435000000000c00003100000000014c001900000002080003670000000003a8034f000000000b03043b0000099c03000041000000000d1b004b000000000d000019000000000d0380190000099c011001970000099c0eb00197000000000f1e004b000000000300801900000000011e013f0000099c0110009c00000000010d00190000000001036019000000000110004c00001f4b0000c13d0000000401000029000000000b1b00190000000001b8034f000000000d01043b0000099d01d0009c00001f4b0000213d0000000001dc00490000002003b000390000099c0c000041000000000e13004b000000000e000019000000000e0c20190000099c011001970000099c03300197000000000f13004b000000000c008019000000000113013f0000099c0110009c00000000010e001900000000010c6019000000000110004c00001f4b0000c13d0000004001d0008c00001f4b0000413d0000004001b00039000000000118034f000000000b01043b0000008001b0008c00001d7d0000413d0000008001b00270000009a503b0009c00000000010ba019000009a503b0009c0000000003000019000000100300203900000008083001bf0000099d0c10009c000000000308201900000040081002700000099d0c10009c000000000108201900000004083001bf000009980c10009c00000000030820190000002008100270000009980c10009c000000000108201900000002083001bf0000ffff0c10008c000000000308201900000010081002700000000001082019000000ff0110008c00000000010000190000000101002039000000000c1300190000004101c000390000000203000029000000000131016f000000400800043d0000000001180019000000000381004b000000000d000019000000010d0040390000099d0310009c00001f4d0000213d0000000103d0019000001f4d0000c13d000000400010043f0000000201c00039000000000d1804360000002101c00039000000050e10027200001d690000613d0000000001000031000000020f1003670000000001000019000000050310021000000000093d001900000000033f034f000000000303043b000000000039043500000001011000390000000003e1004b00001d610000413d000000000100004c00001d6b0000613d0000000001080433000000000110004c00001f530000613d00000000010d0433000009a401100197000000f803c00210000000000113019f000009a60110004100000000001d04350000000301c00210000000f80110008900000000031b01cf000000ff0110008c000000000103001900000000010020190000002103800039000000000013043500001d9c0000013d000000400800043d000009a30180009c00001f4d0000213d0000004001800039000000400010043f0000000301000029000000000c1804360000000001000031000000020d100367000000000e0000190000000501e0021000000000031c001900000000011d034f000000000101043b0000000000130435000000010ee0003a00000000010000190000000101006039000000010110019000001d870000c13d0000000001080433000000000110004c00001f530000613d000000f801b002100000099c030000410000000009b0004c000000000103601900000000030c0433000009a403300197000000000113019f00000000001c0435000000000c00003100000000014c0019000000020b0003670000000003ab034f000000000a03043b0000099c0300004100000000091a004b000000000900001900000000090380190000099c011001970000099c0da00197000000000e1d004b000000000300801900000000011d013f0000099c0110009c00000000010900190000000001036019000000000110004c00001f4b0000c13d0000000401000029000000000a1a00190000000001ab034f000000000d01043b0000099d01d0009c00001f4b0000213d0000000001dc00490000002003a000390000099c09000041000000000c13004b000000000c000019000000000c0920190000099c011001970000099c03300197000000000e13004b0000000009008019000000000113013f0000099c0110009c00000000010c00190000000001096019000000000110004c00001f4b0000c13d0000004101d0008c00001f530000413d0000006001a0003900000000011b034f000000000b000415000000060bb0008a000000200bb000c90000099c0c000041000000000101043b000000f8011002700000001b0310008c00001dd70000613d000000000b000415000000050bb0008a000000200bb000c9000009ab0c0000410000001c0110008c00001f590000c13d000000400a00043d000009a301a0009c00001f4d0000213d0000004001a00039000000400010043f0000000301000029000000000d1a04360000000001000031000000020e100367000000000f0000190000000501f0021000000000031d001900000000011e034f000000000101043b0000000000130435000000010ff0003a00000000010000190000000101006039000000010110019000001de10000c13d00000000010a0433000000000110004c00001f530000613d00000000010d0433000009a4011001970000000001c1019f00000000001d04350000002001b0011a00000000010a001f000000000b00003100000000014b0019000000020e000367000000010300002900000000033e034f000000000f03043b0000099c0300004100000000091f004b000000000900001900000000090380190000099c011001970000099c0cf00197000000000d1c004b000000000300801900000000011c013f0000099c0110009c00000000010900190000000001036019000000000110004c00001f4b0000c13d000000000c020433000000000d060433000000040100002900000000011f001900000000031e034f000000000e03043b0000099d03e0009c00001f4b0000213d0000000003eb004900000020011000390000099c09000041000000000b31004b000000000b000019000000000b0920190000099c033001970000099c01100197000000000f31004b0000000009008019000000000131013f0000099c0110009c00000000010b00190000000001096019000000000110004c00001f4b0000c13d0000000001cd00190000000001e1001900000000030504330000000001310019000000000307043300000000013100190000000003080433000000000131001900000000030a043300000000013100190000099d0c1001970000003801c0008c00001e600000413d0000002001c002700000099803c0009c00000000030c001900000000030120190000099801c0009c0000000001000019000000040100203900000002091001bf0000ffff0b30008c000000000109201900000010093002700000000003092019000000ff0330008c00000000090000190000000109002039000000400b00043d000009a303b0009c00001f4d0000213d000000000991019f0000004001b00039000000400010043f0000000201900039000000000d1b04360000000001000031000000020e100367000000000f0000190000000501f0021000000000031d001900000000011e034f000000000101043b0000000000130435000000010ff0003a00000000010000190000000101006039000000010110019000001e470000c13d00000000010b0433000000000110004c00001f530000613d00000000010d0433000009a401100197000000f803900210000000000113019f000009aa011001c700000000001d04350000000301900210000000f80110008900000000011c01cf0000002103b00039000000000013043500001e7d0000013d000000400b00043d000009a301b0009c00001f4d0000213d0000004001b00039000000400010043f000000030100002900000000091b04360000000001000031000000020d100367000000000e0000190000000501e00210000000000319001900000000011d034f000000000101043b0000000000130435000000010ee0003a00000000010000190000000101006039000000010110019000001e6a0000c13d00000000010b0433000000000110004c00001f530000613d000000f801c002100000000003090433000009a403300197000000000131019f000009a9011000410000000000190435000000000c00003100000000014c001900000002040003670000000103000029000000000334034f000000000303043b0000099c09000041000000000d13004b000000000d000019000000000d0980190000099c011001970000099c0e300197000000000f1e004b000000000900801900000000011e013f0000099c0110009c00000000010d00190000000001096019000000000110004c00001f4b0000c13d00000004010000290000000001130019000000000314034f000000000903043b0000099d0390009c00001f4b0000213d00000000039c0049000000200c1000390000099c0100004100000000043c004b000000000400001900000000040120190000099c033001970000099c0dc00197000000000e3d004b000000000100801900000000033d013f0000099c0330009c000000000104c019000000000110004c00001f4b0000c13d000000400300043d0000002004300039000009ab01000041000400000004001d0000000000140435000000210d300039000000000e0b04330000000001e0004c00001eb70000613d0000000001000019000000000fd1001900000020011000390000000004b10019000000000404043300000000004f04350000000004e1004b00001eb00000413d000000000bde001900000000000b0435000000000d0204330000000001d0004c00001ec40000613d00000000010000190000000004b100190000002001100039000000000e210019000000000e0e04330000000000e404350000000004d1004b00001ebd0000413d0000000002bd00190000000000020435000000000b0604330000000001b0004c00001ed10000613d000000000100001900000000042100190000002001100039000000000d610019000000000d0d04330000000000d404350000000004b1004b00001eca0000413d00000000022b00190000001f0690018f0000000000020435000000020bc00367000000050c90027200001ee00000613d00000000010000190000000504100210000000000d42001900000000044b034f000000000404043b00000000004d043500000001011000390000000004c1004b00001ed80000413d000000000160004c00001eef0000613d0000000501c0021000000000041b034f00000000011200190000000306600210000000000b010433000000000b6b01cf000000000b6b022f000000000404043b0000010006600089000000000464022f00000000046401cf0000000004b4019f0000000000410435000000000292001900000000000204350000000006050433000000000160004c00001efc0000613d000000000100001900000000042100190000002001100039000000000951001900000000090904330000000000940435000000000461004b00001ef50000413d0000000002260019000000000002043500000000050a0433000000000150004c00001f090000613d0000000001000019000000000421001900000020011000390000000006a1001900000000060604330000000000640435000000000451004b00001f020000413d000000000225001900000000000204350000000005070433000000000150004c00001f160000613d000000000100001900000000042100190000002001100039000000000671001900000000060604330000000000640435000000000451004b00001f0f0000413d000000000225001900000000000204350000000005080433000000000150004c00001f230000613d000000000100001900000000042100190000002001100039000000000681001900000000060604330000000000640435000000000451004b00001f1c0000413d000000000125001900000000000104350000000001310049000000200210008a00000000002304350000001f011000390000000202000029000000000221016f0000000001320019000000000221004b000000000200001900000001020040390000099d0410009c00001f4d0000213d000000010220019000001f4d0000c13d000000400010043f00000998010000410000000404000029000009980240009c0000000002010019000000000204401900000040022002100000000003030433000009980430009c00000000030180190000006003300210000000000223019f0000000003000414000009980430009c0000000001034019000000c001100210000000000121019f000009ac011001c70000801002000039265c26570000040f000000010220019000001f4b0000613d000000000101043b000000000001042d00000000010000190000265e00010430000009bd0100004100000000001004350000004101000039000000040010043f000009be010000410000265e00010430000009bd0100004100000000001004350000003201000039000000040010043f000009be010000410000265e00010430000000400100043d0000004402100039000009bc03000041000000000032043500000024021000390000000f0300003900000000003204350000099f0200004100000000002104350000000402100039000000200300003900000000003204350000099802000041000009980310009c00000000010280190000004001100210000009a0011001c70000265e000104300006000000000002000400000001001d000009a101000041000000000010043900000998010000410000000002000414000009980320009c0000000001024019000000c001100210000009a2011001c70000800b02000039265c26570000040f0000000102200190000026370000613d000000000201043b000000800120008c00001fc70000413d0000008001200270000009a50320009c000000000102a019000009a50320009c0000000003000019000000100300203900000008043001bf0000099d0510009c000000000304201900000040041002700000099d0510009c000000000104201900000004043001bf000009980510009c00000000030420190000002004100270000009980510009c000000000104201900000002043001bf0000ffff0510008c000000000304201900000010041002700000000001042019000000ff0110008c000000000100001900000001010020390000000003130019000000200100008a0000004104300039000000000414016f000000400100043d0000000004410019000000000514004b000000000500001900000001050040390000099d0640009c000026390000213d0000000105500190000026390000c13d000000400040043f000000020430003900000000044104360000002105300039000000050550027200001fb40000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b00001fac0000413d000000000500004c00001fb60000613d0000000005010433000000000550004c0000263f0000613d0000000005040433000009a405500197000000f806300210000000000556019f000009a60550004100000000005404350000000303300210000000f80330008900000000023201cf000000ff0330008c00000000020020190000002103100039000000000023043500001fe70000013d000000400100043d000009a30310009c000026390000213d0000004003100039000000400030043f0000000103000039000000000331043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a00000000060000190000000106006039000000010660019000001fd10000c13d0000000004010433000000000440004c0000263f0000613d000000f8042002100000099c05000041000000000220004c000000000204001900000000020560190000000004030433000009a404400197000000000224019f0000000000230435000000040200002900000100022000390000000202200367000000000202043b000000800320008c000020380000413d0000008003200270000009a50420009c000000000302a019000009a50420009c0000000004000019000000100400203900000008054001bf0000099d0630009c000000000405201900000040053002700000099d0630009c000000000305201900000004054001bf000009980630009c00000000040520190000002005300270000009980630009c000000000305201900000002054001bf0000ffff0630008c000000000405201900000010053002700000000003052019000000ff0330008c000000000300001900000001030020390000000004340019000000200300008a0000004105400039000000000535016f000000400300043d0000000005530019000000000635004b000000000600001900000001060040390000099d0750009c000026390000213d0000000106600190000026390000c13d000000400050043f0000000205400039000000000553043600000021064000390000000506600272000020250000613d0000000007000031000000020770036700000000080000190000000509800210000000000a950019000000000997034f000000000909043b00000000009a04350000000108800039000000000968004b0000201d0000413d000000000600004c000020270000613d0000000006030433000000000660004c0000263f0000613d0000000006050433000009a406600197000000f807400210000000000667019f000009a60660004100000000006504350000000304400210000000f80440008900000000024201cf000000ff0440008c000000000200201900000021043000390000000000240435000020580000013d000000400300043d000009a30430009c000026390000213d0000004004300039000000400040043f0000000104000039000000000443043600000000050000310000000205500367000000000600001900000005076002100000000008740019000000000775034f000000000707043b0000000000780435000000010660003a000000000700001900000001070060390000000107700190000020420000c13d0000000005030433000000000550004c0000263f0000613d000000f8052002100000099c06000041000000000220004c000000000205001900000000020660190000000005040433000009a405500197000000000225019f00000000002404350000000402000029000000c0022000390000000202200367000000000202043b000000800420008c000020a90000413d0000008004200270000009a50520009c000000000402a019000009a50520009c0000000005000019000000100500203900000008065001bf0000099d0740009c000000000506201900000040064002700000099d0740009c000000000406201900000004065001bf000009980740009c00000000050620190000002006400270000009980740009c000000000406201900000002065001bf0000ffff0740008c000000000506201900000010064002700000000004062019000000ff0440008c000000000400001900000001040020390000000005450019000000200400008a0000004106500039000000000646016f000000400400043d0000000006640019000000000746004b000000000700001900000001070040390000099d0860009c000026390000213d0000000107700190000026390000c13d000000400060043f0000000206500039000000000664043600000021075000390000000507700272000020960000613d000000000800003100000002088003670000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b0000208e0000413d000000000700004c000020980000613d0000000007040433000000000770004c0000263f0000613d0000000007060433000009a407700197000000f808500210000000000778019f000009a60770004100000000007604350000000305500210000000f80550008900000000025201cf000000ff0550008c000000000200201900000021054000390000000000250435000020c90000013d000000400400043d000009a30540009c000026390000213d0000004005400039000000400050043f0000000105000039000000000554043600000000060000310000000206600367000000000700001900000005087002100000000009850019000000000886034f000000000808043b0000000000890435000000010770003a000000000800001900000001080060390000000108800190000020b30000c13d0000000006040433000000000660004c0000263f0000613d000000f8062002100000099c07000041000000000220004c000000000206001900000000020760190000000006050433000009a406600197000000000226019f00000000002504350000000402000029000000a0022000390000000202200367000000000202043b000000800520008c0000211a0000413d0000008005200270000009a50620009c000000000502a019000009a50620009c0000000006000019000000100600203900000008076001bf0000099d0850009c000000000607201900000040075002700000099d0850009c000000000507201900000004076001bf000009980850009c00000000060720190000002007500270000009980850009c000000000507201900000002076001bf0000ffff0850008c000000000607201900000010075002700000000005072019000000ff0550008c000000000500001900000001050020390000000006560019000000200500008a0000004107600039000000000757016f000000400500043d0000000007750019000000000857004b000000000800001900000001080040390000099d0970009c000026390000213d0000000108800190000026390000c13d000000400070043f0000000207600039000000000775043600000021086000390000000508800272000021070000613d00000000090000310000000209900367000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa00039000000000b8a004b000020ff0000413d000000000800004c000021090000613d0000000008050433000000000880004c0000263f0000613d0000000008070433000009a408800197000000f809600210000000000889019f000009a60880004100000000008704350000000306600210000000f80660008900000000026201cf000000ff0660008c0000000002002019000000210650003900000000002604350000213a0000013d000000400500043d000009a30650009c000026390000213d0000004006500039000000400060043f000000010600003900000000066504360000000007000031000000020770036700000000080000190000000509800210000000000a960019000000000997034f000000000909043b00000000009a0435000000010880003a000000000900001900000001090060390000000109900190000021240000c13d0000000007050433000000000770004c0000263f0000613d000000f8072002100000099c08000041000000000220004c000000000207001900000000020860190000000007060433000009a407700197000000000227019f0000000000260435000000040200002900000060022000390000000202200367000000000202043b000000800620008c0000218b0000413d0000008006200270000009a50720009c000000000602a019000009a50720009c0000000007000019000000100700203900000008087001bf0000099d0960009c000000000708201900000040086002700000099d0960009c000000000608201900000004087001bf000009980960009c00000000070820190000002008600270000009980960009c000000000608201900000002087001bf0000ffff0960008c000000000708201900000010086002700000000006082019000000ff0660008c000000000600001900000001060020390000000007670019000000200600008a0000004108700039000000000868016f000000400600043d0000000008860019000000000968004b000000000900001900000001090040390000099d0a80009c000026390000213d0000000109900190000026390000c13d000000400080043f0000000208700039000000000886043600000021097000390000000509900272000021780000613d000000000a000031000000020aa00367000000000b000019000000050cb00210000000000dc80019000000000cca034f000000000c0c043b0000000000cd0435000000010bb00039000000000c9b004b000021700000413d000000000900004c0000217a0000613d0000000009060433000000000990004c0000263f0000613d0000000009080433000009a409900197000000f80a70021000000000099a019f000009a60990004100000000009804350000000307700210000000f80770008900000000027201cf000000ff0770008c000000000200201900000021076000390000000000270435000021ab0000013d000000400600043d000009a30760009c000026390000213d0000004007600039000000400070043f00000001070000390000000007760436000000000800003100000002088003670000000009000019000000050a900210000000000ba70019000000000aa8034f000000000a0a043b0000000000ab0435000000010990003a000000000a000019000000010a006039000000010aa00190000021950000c13d0000000008060433000000000880004c0000263f0000613d000000f8082002100000099c09000041000000000220004c000000000208001900000000020960190000000008070433000009a408800197000000000228019f0000000000270435000000400700043d000009a30270009c000026390000213d000000040a0000290000004002a000390000000202200367000000000202043b0000004008700039000000400080043f0000002008700039000009a7090000410000000000980435000000150800003900000000008704350000002108700039000000600220021000000000002804350000012002a000390000000202200367000000000202043b000000800820008c0000220c0000413d0000008008200270000009a50920009c000000000802a019000009a50920009c00000000090000190000001009002039000000080a9001bf0000099d0b80009c00000000090a2019000000400a8002700000099d0b80009c00000000080a2019000000040a9001bf000009980b80009c00000000090a2019000000200a800270000009980b80009c00000000080a2019000000020a9001bf0000ffff0b80008c00000000090a2019000000100a80027000000000080a2019000000ff0880008c000000000800001900000001080020390000000009890019000000200800008a000000410a900039000000000a8a016f000000400800043d000000000aa80019000000000b8a004b000000000b000019000000010b0040390000099d0ca0009c000026390000213d000000010bb00190000026390000c13d0000004000a0043f000000020a900039000000000aa80436000000210b900039000000050bb00272000021f90000613d000000000c000031000000020cc00367000000000d000019000000050ed00210000000000fea0019000000000eec034f000000000e0e043b0000000000ef0435000000010dd00039000000000ebd004b000021f10000413d000000000b00004c000021fb0000613d000000000b080433000000000bb0004c0000263f0000613d000000000b0a0433000009a40bb00197000000f80c900210000000000bbc019f000009a60bb000410000000000ba04350000000309900210000000f80990008900000000029201cf000000ff0990008c0000000002002019000000210980003900000000002904350000222c0000013d000000400800043d000009a30980009c000026390000213d0000004009800039000000400090043f00000001090000390000000009980436000000000a000031000000020aa00367000000000b000019000000050cb00210000000000dc90019000000000cca034f000000000c0c043b0000000000cd0435000000010bb0003a000000000c000019000000010c006039000000010cc00190000022160000c13d000000000a080433000000000aa0004c0000263f0000613d000000f80a2002100000099c0b000041000000000220004c00000000020a001900000000020b6019000000000a090433000009a40aa0019700000000022a019f0000000000290435000000400200043d0000002009200039000000000a010433000000000ba0004c000022390000613d000000000b000019000000000c9b0019000000200bb00039000000000d1b0019000000000d0d04330000000000dc0435000000000cab004b000022320000413d00000000019a001900000000000104350000000009030433000000000a90004c000022460000613d000000000a000019000000000b1a0019000000200aa00039000000000c3a0019000000000c0c04330000000000cb0435000000000b9a004b0000223f0000413d000000000119001900000000000104350000000003040433000000000930004c000022530000613d0000000009000019000000000a1900190000002009900039000000000b490019000000000b0b04330000000000ba0435000000000a39004b0000224c0000413d000000000113001900000000000104350000000003050433000000000430004c000022600000613d000000000400001900000000091400190000002004400039000000000a540019000000000a0a04330000000000a90435000000000934004b000022590000413d000000000113001900000000000104350000000003060433000000000430004c0000226d0000613d000000000400001900000000051400190000002004400039000000000964001900000000090904330000000000950435000000000534004b000022660000413d000000000113001900000000000104350000000003070433000000000430004c0000227a0000613d000000000400001900000000051400190000002004400039000000000674001900000000060604330000000000650435000000000534004b000022730000413d000000000113001900000000000104350000000003080433000000000430004c000022870000613d000000000400001900000000051400190000002004400039000000000684001900000000060604330000000000650435000000000534004b000022800000413d000000000113001900000000000104350000000001210049000000200310008a00000000003204350000001f01100039000000200300008a000200000003001d000000000131016f0000000005210019000000000115004b000000000100001900000001010040390000099d0350009c000026390000213d0000000101100190000026390000c13d000000400050043f0000001f0100008a00000004030000290000000004310049000001c0013000390000000207000367000100000001001d000000000117034f000000000601043b000000000800003100000000014800190000099c09000041000000000a16004b000000000a000019000000000a0980190000099c011001970000099c0b600197000000000c1b004b000000000900801900000000011b013f0000099c0110009c00000000010a00190000000001096019000000000110004c000026370000c13d00000004010000290000000001160019000000000617034f000000000606043b0000099d0960009c000026370000213d000000000968004900000020081000390000099c01000041000000000a98004b000000000a000019000000000a0120190000099c099001970000099c0b800197000000000c9b004b000000000100801900000000099b013f0000099c0990009c00000000010ac019000000000110004c000026370000c13d000000010160008c000022e40000c13d000000000187034f000000000101043b000000010300008a0000099c06000041000000000331004b000000000300001900000000030620190000099c011001970000099c0710009c00000000060080190000099c011001670000099c0110009c000000000103001900000000010660190000006006000039000000000110004c000023360000c13d000009a30150009c000026390000213d0000004001500039000000400010043f0000002001500039000009a6030000410000000000310435000000010100003900000000001504350000000006050019000023360000013d000000380160008c000023190000413d0000002001600270000009980360009c00000000030600190000000003012019000009980160009c0000000001000019000000040100203900000002071001bf0000ffff0830008c000000000107201900000010073002700000000003072019000000ff0330008c00000000070000190000000107002039000009a30350009c000026390000213d000000000771019f0000004001500039000000400010043f0000000201700039000000000815043600000000010000310000000209100367000000000a0000190000000501a002100000000003180019000000000119034f000000000101043b0000000000130435000000010aa0003a000000000100001900000001010060390000000101100190000022ff0000c13d0000000001050433000000000110004c0000263f0000613d0000000001080433000009a401100197000000f803700210000000000113019f000009a8011001c700000000001804350000000301700210000000f80110008900000000011601cf000000210350003900000000001304350000000006050019000023360000013d000009a30150009c000026390000213d0000004001500039000000400010043f0000000101000039000000000715043600000000010000310000000208100367000000000900001900000005019002100000000003170019000000000118034f000000000101043b0000000000130435000000010990003a000000000100001900000001010060390000000101100190000023220000c13d0000000001050433000000000110004c0000263f0000613d000000f8016002100000000003070433000009a403300197000000000113019f0000099c0110016700000000001704350000000006050019000000400500043d000009a30150009c000026390000213d0000004001500039000000400010043f0000000101000039000300000001001d000000000715043600000000010000310000000208100367000000000a0000190000000501a00210000000000b170019000000000118034f000000000101043b00000000001b0435000000010aa0003a000000000100001900000001010060390000000101100190000023410000c13d0000000001050433000000000110004c0000263f0000613d0000000001070433000009a401100197000009a9011001c70000000000170435000000000800003100000000014800190000000403000029000001e00a3000390000000207000367000000000ba7034f000000000b0b043b0000099c0c000041000000000d1b004b000000000d000019000000000d0c80190000099c011001970000099c0eb00197000000000f1e004b000000000c00801900000000011e013f0000099c0110009c00000000010d001900000000010c6019000000000110004c000026370000c13d000000040100002900000000011b0019000000000b17034f000000000b0b043b0000099d0cb0009c000026370000213d000000000cb8004900000020081000390000099c01000041000000000dc8004b000000000d000019000000000d0120190000099c0cc001970000099c0e800197000000000fce004b0000000001008019000000000cce013f0000099c0cc0009c00000000010dc019000000000110004c000026370000c13d0000002001b0008c000026370000413d000000000187034f000000000801043b000000800180008c000023ce0000413d0000008001800270000009a50780009c000000000108a019000009a50780009c00000000070000190000001007002039000000080b7001bf0000099d0c10009c00000000070b2019000000400b1002700000099d0c10009c00000000010b2019000000040b7001bf000009980c10009c00000000070b2019000000200b100270000009980c10009c00000000010b2019000000020b7001bf0000ffff0c10008c00000000070b2019000000100b10027000000000010b2019000000ff0110008c00000000010000190000000101002039000000000b1700190000004101b000390000000203000029000000000131016f000000400700043d0000000001170019000000000c71004b000000000c000019000000010c0040390000099d0d10009c000026390000213d000000010cc00190000026390000c13d000000400010043f0000000201b00039000000000c1704360000002101b00039000000050d100272000023ba0000613d0000000001000031000000020e100367000000000f0000190000000501f0021000000000031c001900000000011e034f000000000101043b0000000000130435000000010ff000390000000001df004b000023b20000413d000000000100004c000023bc0000613d0000000001070433000000000110004c0000263f0000613d00000000010c0433000009a401100197000000f803b00210000000000113019f000009a60110004100000000001c04350000000301b00210000000f80110008900000000031801cf000000ff0110008c0000000001030019000000000100201900000021037000390000000000130435000023ed0000013d000000400700043d000009a30170009c000026390000213d0000004001700039000000400010043f0000000301000029000000000b1704360000000001000031000000020c100367000000000d0000190000000501d0021000000000031b001900000000011c034f000000000101043b0000000000130435000000010dd0003a000000000100001900000001010060390000000101100190000023d80000c13d0000000001070433000000000110004c0000263f0000613d000000f8018002100000099c03000041000000000880004c000000000103601900000000030b0433000009a403300197000000000113019f00000000001b0435000000000c00003100000000014c001900000002080003670000000003a8034f000000000b03043b0000099c03000041000000000d1b004b000000000d000019000000000d0380190000099c011001970000099c0eb00197000000000f1e004b000000000300801900000000011e013f0000099c0110009c00000000010d00190000000001036019000000000110004c000026370000c13d0000000401000029000000000b1b00190000000001b8034f000000000d01043b0000099d01d0009c000026370000213d0000000001dc00490000002003b000390000099c0c000041000000000e13004b000000000e000019000000000e0c20190000099c011001970000099c03300197000000000f13004b000000000c008019000000000113013f0000099c0110009c00000000010e001900000000010c6019000000000110004c000026370000c13d0000004001d0008c000026370000413d0000004001b00039000000000118034f000000000b01043b0000008001b0008c000024690000413d0000008001b00270000009a503b0009c00000000010ba019000009a503b0009c0000000003000019000000100300203900000008083001bf0000099d0c10009c000000000308201900000040081002700000099d0c10009c000000000108201900000004083001bf000009980c10009c00000000030820190000002008100270000009980c10009c000000000108201900000002083001bf0000ffff0c10008c000000000308201900000010081002700000000001082019000000ff0110008c00000000010000190000000101002039000000000c1300190000004101c000390000000203000029000000000131016f000000400800043d0000000001180019000000000381004b000000000d000019000000010d0040390000099d0310009c000026390000213d0000000103d00190000026390000c13d000000400010043f0000000201c00039000000000d1804360000002101c00039000000050e100272000024550000613d0000000001000031000000020f1003670000000001000019000000050310021000000000093d001900000000033f034f000000000303043b000000000039043500000001011000390000000003e1004b0000244d0000413d000000000100004c000024570000613d0000000001080433000000000110004c0000263f0000613d00000000010d0433000009a401100197000000f803c00210000000000113019f000009a60110004100000000001d04350000000301c00210000000f80110008900000000031b01cf000000ff0110008c0000000001030019000000000100201900000021038000390000000000130435000024880000013d000000400800043d000009a30180009c000026390000213d0000004001800039000000400010043f0000000301000029000000000c1804360000000001000031000000020d100367000000000e0000190000000501e0021000000000031c001900000000011d034f000000000101043b0000000000130435000000010ee0003a000000000100001900000001010060390000000101100190000024730000c13d0000000001080433000000000110004c0000263f0000613d000000f801b002100000099c030000410000000009b0004c000000000103601900000000030c0433000009a403300197000000000113019f00000000001c0435000000000c00003100000000014c0019000000020b0003670000000003ab034f000000000a03043b0000099c0300004100000000091a004b000000000900001900000000090380190000099c011001970000099c0da00197000000000e1d004b000000000300801900000000011d013f0000099c0110009c00000000010900190000000001036019000000000110004c000026370000c13d0000000401000029000000000a1a00190000000001ab034f000000000d01043b0000099d01d0009c000026370000213d0000000001dc00490000002003a000390000099c09000041000000000c13004b000000000c000019000000000c0920190000099c011001970000099c03300197000000000e13004b0000000009008019000000000113013f0000099c0110009c00000000010c00190000000001096019000000000110004c000026370000c13d0000004101d0008c0000263f0000413d0000006001a0003900000000011b034f000000000b000415000000060bb0008a000000200bb000c90000099c0c000041000000000101043b000000f8011002700000001b0310008c000024c30000613d000000000b000415000000050bb0008a000000200bb000c9000009ab0c0000410000001c0110008c000026450000c13d000000400a00043d000009a301a0009c000026390000213d0000004001a00039000000400010043f0000000301000029000000000d1a04360000000001000031000000020e100367000000000f0000190000000501f0021000000000031d001900000000011e034f000000000101043b0000000000130435000000010ff0003a000000000100001900000001010060390000000101100190000024cd0000c13d00000000010a0433000000000110004c0000263f0000613d00000000010d0433000009a4011001970000000001c1019f00000000001d04350000002001b0011a00000000010a001f000000000b00003100000000014b0019000000020e000367000000010300002900000000033e034f000000000f03043b0000099c0300004100000000091f004b000000000900001900000000090380190000099c011001970000099c0cf00197000000000d1c004b000000000300801900000000011c013f0000099c0110009c00000000010900190000000001036019000000000110004c000026370000c13d000000000c020433000000000d060433000000040100002900000000011f001900000000031e034f000000000e03043b0000099d03e0009c000026370000213d0000000003eb004900000020011000390000099c09000041000000000b31004b000000000b000019000000000b0920190000099c033001970000099c01100197000000000f31004b0000000009008019000000000131013f0000099c0110009c00000000010b00190000000001096019000000000110004c000026370000c13d0000000001cd00190000000001e1001900000000030504330000000001310019000000000307043300000000013100190000000003080433000000000131001900000000030a043300000000013100190000099d0c1001970000003801c0008c0000254c0000413d0000002001c002700000099803c0009c00000000030c001900000000030120190000099801c0009c0000000001000019000000040100203900000002091001bf0000ffff0b30008c000000000109201900000010093002700000000003092019000000ff0330008c00000000090000190000000109002039000000400b00043d000009a303b0009c000026390000213d000000000991019f0000004001b00039000000400010043f0000000201900039000000000d1b04360000000001000031000000020e100367000000000f0000190000000501f0021000000000031d001900000000011e034f000000000101043b0000000000130435000000010ff0003a000000000100001900000001010060390000000101100190000025330000c13d00000000010b0433000000000110004c0000263f0000613d00000000010d0433000009a401100197000000f803900210000000000113019f000009aa011001c700000000001d04350000000301900210000000f80110008900000000011c01cf0000002103b000390000000000130435000025690000013d000000400b00043d000009a301b0009c000026390000213d0000004001b00039000000400010043f000000030100002900000000091b04360000000001000031000000020d100367000000000e0000190000000501e00210000000000319001900000000011d034f000000000101043b0000000000130435000000010ee0003a000000000100001900000001010060390000000101100190000025560000c13d00000000010b0433000000000110004c0000263f0000613d000000f801c002100000000003090433000009a403300197000000000131019f000009a9011000410000000000190435000000000c00003100000000014c001900000002040003670000000103000029000000000334034f000000000303043b0000099c09000041000000000d13004b000000000d000019000000000d0980190000099c011001970000099c0e300197000000000f1e004b000000000900801900000000011e013f0000099c0110009c00000000010d00190000000001096019000000000110004c000026370000c13d00000004010000290000000001130019000000000314034f000000000903043b0000099d0390009c000026370000213d00000000039c0049000000200c1000390000099c0100004100000000043c004b000000000400001900000000040120190000099c033001970000099c0dc00197000000000e3d004b000000000100801900000000033d013f0000099c0330009c000000000104c019000000000110004c000026370000c13d000000400300043d0000002004300039000009ac01000041000400000004001d0000000000140435000000210d300039000000000e0b04330000000001e0004c000025a30000613d0000000001000019000000000fd1001900000020011000390000000004b10019000000000404043300000000004f04350000000004e1004b0000259c0000413d000000000bde001900000000000b0435000000000d0204330000000001d0004c000025b00000613d00000000010000190000000004b100190000002001100039000000000e210019000000000e0e04330000000000e404350000000004d1004b000025a90000413d0000000002bd00190000000000020435000000000b0604330000000001b0004c000025bd0000613d000000000100001900000000042100190000002001100039000000000d610019000000000d0d04330000000000d404350000000004b1004b000025b60000413d00000000022b00190000001f0690018f0000000000020435000000020bc00367000000050c900272000025cc0000613d00000000010000190000000504100210000000000d42001900000000044b034f000000000404043b00000000004d043500000001011000390000000004c1004b000025c40000413d000000000160004c000025db0000613d0000000501c0021000000000041b034f00000000011200190000000306600210000000000b010433000000000b6b01cf000000000b6b022f000000000404043b0000010006600089000000000464022f00000000046401cf0000000004b4019f0000000000410435000000000292001900000000000204350000000006050433000000000160004c000025e80000613d000000000100001900000000042100190000002001100039000000000951001900000000090904330000000000940435000000000461004b000025e10000413d0000000002260019000000000002043500000000050a0433000000000150004c000025f50000613d0000000001000019000000000421001900000020011000390000000006a1001900000000060604330000000000640435000000000451004b000025ee0000413d000000000225001900000000000204350000000005070433000000000150004c000026020000613d000000000100001900000000042100190000002001100039000000000671001900000000060604330000000000640435000000000451004b000025fb0000413d000000000225001900000000000204350000000005080433000000000150004c0000260f0000613d000000000100001900000000042100190000002001100039000000000681001900000000060604330000000000640435000000000451004b000026080000413d000000000125001900000000000104350000000001310049000000200210008a00000000002304350000001f011000390000000202000029000000000221016f0000000001320019000000000221004b000000000200001900000001020040390000099d0410009c000026390000213d0000000102200190000026390000c13d000000400010043f00000998010000410000000404000029000009980240009c0000000002010019000000000204401900000040022002100000000003030433000009980430009c00000000030180190000006003300210000000000223019f0000000003000414000009980430009c0000000001034019000000c001100210000000000121019f000009ac011001c70000801002000039265c26570000040f0000000102200190000026370000613d000000000101043b000000000001042d00000000010000190000265e00010430000009bd0100004100000000001004350000004101000039000000040010043f000009be010000410000265e00010430000009bd0100004100000000001004350000003201000039000000040010043f000009be010000410000265e00010430000000400100043d0000004402100039000009bc03000041000000000032043500000024021000390000000f0300003900000000003204350000099f0200004100000000002104350000000402100039000000200300003900000000003204350000099802000041000009980310009c00000000010280190000004001100210000009a0011001c70000265e000104300000265a002104230000000102000039000000000001042d0000000002000019000000000001042d0000265c000004320000265d0001042e0000265e00010430000000000000000000000000000000000000000000000000000000000000000000000000ffffffff0000000200000000000000000000000000000040000001000000000000000000ffffffff00000000000000000000000000000000000000000000000000000000ebe4a3d7000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff456e636f64696e6720756e737570706f7274656420747800000000000000000008c379a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640000000000000000000000009a8a0592ac89c5ad3bc6df8224c17b485976f597df104ee20d0df415241f670b0200000200000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffbf00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000ffffffffffffffffffffffffffffffff81000000000000000000000000000000000000000000000000000000000000009400000000000000000000000000000000000000000000000000000000000000b800000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000f80000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffff00000000000000000000000000000000ffffffff00000000000000000000000000000000000000000000000000000000ffffffff00000000000000000000ffff000000000000000000000000000000000000801000000000000000000000ffff00000000000000000000000000000000000000000000000000000000000000000000000000000001ffffffe007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848e1bfa1ac4e3576b728bda6721b215c70a7799a5b4866282a71bab954baac8000000000000000000000000000000000000000000000000fffffffffffffe1fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6ead7c5bef027816a800da1736444fb58a807ef4c9603b7848673f7e3a68eb14a519b453ce45aaaaf3a300f5a9ec95869b4f28ab10430b572ee218c3a6a5e07d6f000000000000000000000000000000000000000000000000ffffffffffffff5f1901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff7f8080000000000000000000000000000000000000000000000000000000000000496e76616c696420762076616c756500000000000000000000000000000000004e487b710000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000000000000000000000006b656363616b3235362072657475726e656420696e76616c6964206461746100000000000000000000000000000000000000000000000000ffffffffffffff9f00000000000000000000000000000000000000400000000000000000000000004f766572666c6f77000000000000000000000000000000000000000000000000556e737570706f72746564207478207479706500000000000000000000000000d928534cf2f0aa13aa4853c362232c19f88e4689b9ae2f60c785a65842d58a13", - "deployedBytecode": "0x0004000000000002000d00000000000200000000030100190000006003300270000009980430019700030000004103550002000000010355000009980030019d000100000000001f000000800a0000390000004000a0043f0000000101200190000000910000c13d0000000001000031000000040110008c000004950000413d0000000201000367000000000101043b0000099a011001970000099b0110009c000004950000c13d0000000001000416000000000110004c000004950000c13d0000000001000031000000040310008a0000099c02000041000000200430008c000000000400001900000000040240190000099c05300197000000000650004c000000000200a0190000099c0550009c000000000204c019000000000220004c000004950000c13d00000002020003670000000404200370000000000904043b0000099d0490009c000004950000213d00000000039300490000099c04000041000002600530008c000000000500001900000000050440190000099c03300197000000000630004c000000000400a0190000099c0330009c00000000030500190000000003046019000000000330004c000004950000c13d0000000403900039000d00000003001d000000000332034f000000000303043b000000000430004c000000990000c13d000c00000009001d0000010401900039000000000112034f000000000101043b000000800210008c000000f60000413d0000008002100270000009a50310009c000000000201a019000009a50310009c0000000003000019000000100300203900000008043001bf0000099d0520009c000000000304201900000040042002700000099d0520009c000000000204201900000004043001bf000009980520009c00000000030420190000002004200270000009980520009c000000000204201900000002043001bf0000ffff0520008c000000000304201900000010042002700000000002042019000000ff0220008c000000000200001900000001020020390000000002230019000000200300008a0000004104200039000000000334016f000000400400043d0000000003340019000b00000004001d000000000443004b000000000400001900000001040040390000099d0530009c000000fa0000213d0000000104400190000000fa0000c13d000000400030043f00000002032000390000000b090000290000000003390436000000210420003900000005044002720000007d0000613d00000000050000310000000205500367000000000600001900000005076002100000000008730019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000000750000413d000000000400004c0000007f0000613d0000000004090433000000000440004c000001720000613d0000000004030433000009a404400197000000f805200210000000000445019f000009a60440004100000000004304350000000302200210000000f80220008900000000012101cf000000ff0220008c00000000010020190000000b0200002900000021022000390000000000120435000001de0000013d0000000001000416000000000110004c000004950000c13d00000020010000390000010000100443000001200000044300000999010000410000265d0001042e000000710430008c000001000000c13d000001c403900039000000000332034f000000230400008a0000000004940049000b00000004001d0000000004140019000000000303043b0000099c05000041000000000643004b000000000600001900000000060580190000099c044001970000099c07300197000000000847004b0000000005008019000000000447013f0000099c0440009c00000000040600190000000004056019000000000440004c000004950000c13d0000000d040000290000000003430019000000000232034f000000000202043b000a00000002001d0000099d0220009c000004950000213d0000000a02000029000000000121004900000020043000390000099c02000041000000000314004b000000000300001900000000030220190000099c01100197000900000004001d0000099c04400197000000000514004b0000000002008019000000000114013f0000099c0110009c00000000010300190000000001026019000000000110004c000004950000c13d00070000000a001d000c00000009001d0000000001000414000800000001001d000009ad010000410000ffeb02000039265c26570000040f00000000020100190000006002200270000109980020019d00030000000103550000000a01000029000000000110004c000003230000c13d0000000001000031000000c001100210000009ae01100197000009ad011001c70000ffe802000039265c26570000040f00000000020100190000006002200270000109980020019d00030000000103550000000801000029000009980110009c000004640000a13d000000400100043d0000004402100039000009c20300004100000000003204350000002402100039000000080300003900000000003204350000099f0200004100000000002104350000000402100039000000200300003900000000003204350000099802000041000009980310009c00000000010280190000004001100210000009a0011001c70000265e00010430000000400200043d000b00000002001d000009a30220009c0000015d0000a13d000009bd0100004100000000001004350000004101000039000000040010043f000009be010000410000265e00010430000000020130008c000001780000c13d000009a101000041000000000010043900000998010000410000000002000414000009980320009c0000000001024019000000c001100210000009a2011001c70000800b02000039000c00000009001d265c26570000040f0000000102200190000004950000613d000000000201043b000000800120008c000002b20000413d0000008001200270000009a50320009c000000000102a019000009a50320009c0000000003000019000000100300203900000008043001bf0000099d0510009c000000000304201900000040041002700000099d0510009c000000000104201900000004043001bf000009980510009c00000000030420190000002004100270000009980510009c000000000104201900000002043001bf0000ffff0510008c000000000304201900000010041002700000000001042019000000ff0110008c000000000100001900000001010020390000000003130019000000200100008a0000004104300039000000000414016f000000400100043d0000000004410019000000000514004b000000000500001900000001050040390000099d0640009c000000fa0000213d0000000105500190000000fa0000c13d000000400040043f00000002043000390000000004410436000000210530003900000005055002720000014a0000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b000001420000413d000000000500004c0000014c0000613d0000000005010433000000000550004c000001720000613d0000000005040433000009a405500197000000f806300210000000000556019f000009a60550004100000000005404350000000303300210000000f80330008900000000023201cf000000ff0330008c000000000200201900000021031000390000000000230435000002d20000013d0000000b070000290000004002700039000000400020043f0000000102000039000000000227043600000000030000310000000203300367000000000400001900000005054002100000000006520019000000000553034f000000000505043b0000000000560435000000010440003a000000000500001900000001050060390000000105500190000001650000c13d0000000003070433000000000330004c000001d50000c13d000009bd0100004100000000001004350000003201000039000000040010043f000009be010000410000265e00010430000000010130008c0000022f0000c13d000009a101000041000000000010043900000998010000410000000002000414000009980320009c0000000001024019000000c001100210000009a2011001c70000800b02000039000c00000009001d265c26570000040f0000000102200190000004950000613d000000000201043b000000800120008c0000033e0000413d0000008001200270000009a50320009c000000000102a019000009a50320009c0000000003000019000000100300203900000008043001bf0000099d0510009c000000000304201900000040041002700000099d0510009c000000000104201900000004043001bf000009980510009c00000000030420190000002004100270000009980510009c000000000104201900000002043001bf0000ffff0510008c000000000304201900000010041002700000000001042019000000ff0110008c000000000100001900000001010020390000000003130019000000200100008a0000004104300039000000000414016f000000400100043d0000000004410019000000000514004b000000000500001900000001050040390000099d0640009c000000fa0000213d0000000105500190000000fa0000c13d000000400040043f0000000204300039000000000441043600000021053000390000000505500272000001c20000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b000001ba0000413d000000000500004c000001c40000613d0000000005010433000000000550004c000001720000613d0000000005040433000009a405500197000000f806300210000000000556019f000009a60550004100000000005404350000000303300210000000f80330008900000000023201cf000000ff0330008c0000000002002019000000210310003900000000002304350000035e0000013d000000f8031002100000099c04000041000000000110004c000000000103001900000000010460190000000003020433000009a403300197000000000113019f00000000001204350000000c01000029000000a4011000390000000201100367000000000201043b000000800120008c000002410000413d0000008001200270000009a50320009c000000000102a019000009a50320009c0000000003000019000000100300203900000008043001bf0000099d0510009c000000000304201900000040041002700000099d0510009c000000000104201900000004043001bf000009980510009c00000000030420190000002004100270000009980510009c000000000104201900000002043001bf0000ffff0510008c000000000304201900000010041002700000000001042019000000ff0110008c000000000100001900000001010020390000000003130019000000200100008a0000004104300039000000000414016f000000400100043d0000000004410019000000000514004b000000000500001900000001050040390000099d0640009c000000fa0000213d0000000105500190000000fa0000c13d000000400040043f00000002043000390000000004410436000000210530003900000005055002720000021c0000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b000002140000413d000000000500004c0000021e0000613d0000000005010433000000000550004c000001720000613d0000000005040433000009a405500197000000f806300210000000000556019f000009a60550004100000000005404350000000303300210000000f80330008900000000023201cf000000ff0330008c000000000200201900000021031000390000000000230435000002610000013d000000400100043d00000044021000390000099e0300004100000000003204350000002402100039000000170300003900000000003204350000099f0200004100000000002104350000000402100039000000200300003900000000003204350000099802000041000009980310009c00000000010280190000004001100210000009a0011001c70000265e00010430000000400100043d000009a30310009c000000fa0000213d0000004003100039000000400030043f0000000103000039000000000331043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a0000000006000019000000010600603900000001066001900000024b0000c13d0000000004010433000000000440004c000001720000613d000000f8042002100000099c05000041000000000220004c000000000204001900000000020560190000000004030433000009a404400197000000000224019f00000000002304350000000c0200002900000064022000390000000202200367000000000302043b000000800230008c000003af0000413d0000008002300270000009a50430009c000000000203a019000009a50430009c0000000004000019000000100400203900000008054001bf0000099d0620009c000000000405201900000040052002700000099d0620009c000000000205201900000004054001bf000009980620009c00000000040520190000002005200270000009980620009c000000000205201900000002054001bf0000ffff0620008c000000000405201900000010052002700000000002052019000000ff0220008c000000000200001900000001020020390000000004240019000000200200008a0000004105400039000000000525016f000000400200043d0000000005520019000000000625004b000000000600001900000001060040390000099d0750009c000000fa0000213d0000000106600190000000fa0000c13d000000400050043f00000002054000390000000005520436000000210640003900000005066002720000029f0000613d0000000007000031000000020770036700000000080000190000000509800210000000000a950019000000000997034f000000000909043b00000000009a04350000000108800039000000000968004b000002970000413d000000000600004c000002a10000613d0000000006020433000000000660004c000001720000613d0000000006050433000009a406600197000000f807400210000000000667019f000009a60660004100000000006504350000000304400210000000f80440008900000000034301cf000000ff0440008c000000000300201900000021042000390000000000340435000003cf0000013d000000400100043d000009a30310009c000000fa0000213d0000004003100039000000400030043f0000000103000039000000000331043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a000000000600001900000001060060390000000106600190000002bc0000c13d0000000004010433000000000440004c000001720000613d000000f8042002100000099c05000041000000000220004c000000000204001900000000020560190000000004030433000009a404400197000000000224019f00000000002304350000000c0200002900000104022000390000000202200367000000000302043b000000800230008c000004970000413d0000008002300270000009a50430009c000000000203a019000009a50430009c0000000004000019000000100400203900000008054001bf0000099d0620009c000000000405201900000040052002700000099d0620009c000000000205201900000004054001bf000009980620009c00000000040520190000002005200270000009980620009c000000000205201900000002054001bf0000ffff0620008c000000000405201900000010052002700000000002052019000000ff0220008c000000000200001900000001020020390000000004240019000000200200008a0000004105400039000000000525016f000000400200043d0000000005520019000000000625004b000000000600001900000001060040390000099d0750009c000000fa0000213d0000000106600190000000fa0000c13d000000400050043f0000000205400039000000000552043600000021064000390000000506600272000003100000613d0000000007000031000000020770036700000000080000190000000509800210000000000a950019000000000997034f000000000909043b00000000009a04350000000108800039000000000968004b000003080000413d000000000600004c000003120000613d0000000006020433000000000660004c000001720000613d0000000006050433000009a406600197000000f807400210000000000667019f000009a60660004100000000006504350000000304400210000000f80440008900000000034301cf000000ff0440008c000000000300201900000021042000390000000000340435000004b70000013d0000000901000029000000c001100210000009ae01100197000009ad011001c70000ffe902000039265c26570000040f00000000020100190000006002200270000109980020019d0000000a0300002900000009020000290000000002230019000000000332004b0000000003000019000000010300403900030000000103550000000101300190000003380000c13d0000000001000031000000000321004b000005230000813d000009bd0100004100000000001004350000001101000039000000040010043f000009be010000410000265e00010430000000400100043d000009a30310009c000000fa0000213d0000004003100039000000400030043f0000000103000039000000000331043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a000000000600001900000001060060390000000106600190000003480000c13d0000000004010433000000000440004c000001720000613d000000f8042002100000099c05000041000000000220004c000000000204001900000000020560190000000004030433000009a404400197000000000224019f00000000002304350000000c0200002900000104022000390000000202200367000000000202043b000000800320008c000005250000413d0000008003200270000009a50420009c000000000302a019000009a50420009c0000000004000019000000100400203900000008054001bf0000099d0630009c000000000405201900000040053002700000099d0630009c000000000305201900000004054001bf000009980630009c00000000040520190000002005300270000009980630009c000000000305201900000002054001bf0000ffff0630008c000000000405201900000010053002700000000003052019000000ff0330008c000000000300001900000001030020390000000004340019000000200300008a0000004105400039000000000535016f000000400300043d0000000005530019000000000635004b000000000600001900000001060040390000099d0750009c000000fa0000213d0000000106600190000000fa0000c13d000000400050043f00000002054000390000000005530436000000210640003900000005066002720000039c0000613d0000000007000031000000020770036700000000080000190000000509800210000000000a950019000000000997034f000000000909043b00000000009a04350000000108800039000000000968004b000003940000413d000000000600004c0000039e0000613d0000000006030433000000000660004c000001720000613d0000000006050433000009a406600197000000f807400210000000000667019f000009a60660004100000000006504350000000304400210000000f80440008900000000024201cf000000ff0440008c000000000200201900000021043000390000000000240435000005450000013d000000400200043d000009a30420009c000000fa0000213d0000004004200039000000400040043f0000000104000039000000000442043600000000050000310000000205500367000000000600001900000005076002100000000008740019000000000775034f000000000707043b0000000000780435000000010660003a000000000700001900000001070060390000000107700190000003b90000c13d0000000005020433000000000550004c000001720000613d000000f8053002100000099c06000041000000000330004c000000000305001900000000030660190000000005040433000009a405500197000000000335019f0000000000340435000000400300043d000a00000003001d00000020033000390000000004010433000000000540004c000003dd0000613d000000000500001900000000063500190000002005500039000000000715001900000000070704330000000000760435000000000645004b000003d60000413d000000000134001900000000000104350000000003020433000000000430004c000003ea0000613d000000000400001900000000051400190000002004400039000000000624001900000000060604330000000000650435000000000534004b000003e30000413d000000000113001900000000000104350000000a030000290000000001310049000000200210008a00000000002304350000001f01100039000000200200008a000800000002001d000000000121016f0000000002310019000000000112004b00000000010000190000000101004039000900000002001d0000099d0220009c000000fa0000213d0000000101100190000000fa0000c13d0000000901000029000000400010043f000009a30110009c000000fa0000213d0000000c0400002900000044014000390000000201100367000000000101043b00000009050000290000004002500039000000400020043f0000002002500039000009a70300004100000000003204350000001502000039000000000025043500000021025000390000006001100210000000000012043500000124014000390000000201100367000000000101043b000000800210008c000007340000413d0000008002100270000009a50310009c000000000201a019000009a50310009c0000000003000019000000100300203900000008043001bf0000099d0520009c000000000304201900000040042002700000099d0520009c000000000204201900000004043001bf000009980520009c00000000030420190000002004200270000009980520009c000000000204201900000002043001bf0000ffff0520008c000000000304201900000010042002700000000002042019000000ff0220008c00000000020000190000000102002039000000000223001900000041032000390000000804000029000000000343016f000000400400043d0000000003340019000700000004001d000000000443004b000000000400001900000001040040390000099d0530009c000000fa0000213d0000000104400190000000fa0000c13d000000400030043f000000020320003900000007040000290000000003340436000000210420003900000005044002720000044f0000613d00000000050000310000000205500367000000000600001900000005076002100000000008730019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000004470000413d000000000400004c000004510000613d00000007040000290000000004040433000000000440004c000001720000613d0000000004030433000009a404400197000000f805200210000000000445019f000009a60440004100000000004304350000000302200210000000f80220008900000000012101cf000000ff0220008c0000000001002019000000070200002900000021022000390000000000120435000007570000013d000009af010000410000ffe702000039265c26570000040f00000000020100190000006002200270000109980020019d0003000000010355000009b0010000410000fff602000039265c26570000040f00000000030100190000006003300270000109980030019d000009980330019700030000000103550000000102200190000005080000613d0000003f01300039000009b101100197000000400200043d0000000001120019000000000421004b000000000400001900000001040040390000099d0510009c000000fa0000213d0000000104400190000000fa0000c13d000000400010043f00000000013204360000001f043000390000000504400272000004900000613d00000000050000310000000205500367000000000600001900000005076002100000000008710019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000004880000413d000000000400004c000004920000613d0000000104000031000000000443004b000006070000a13d00000000010000190000265e00010430000000400200043d000009a30420009c000000fa0000213d0000004004200039000000400040043f0000000104000039000000000442043600000000050000310000000205500367000000000600001900000005076002100000000008740019000000000775034f000000000707043b0000000000780435000000010660003a000000000700001900000001070060390000000107700190000004a10000c13d0000000005020433000000000550004c000001720000613d000000f8053002100000099c06000041000000000330004c000000000305001900000000030660190000000005040433000009a405500197000000000335019f00000000003404350000000c03000029000000c4033000390000000203300367000000000303043b000000800430008c000005960000413d0000008004300270000009a50530009c000000000403a019000009a50530009c0000000005000019000000100500203900000008065001bf0000099d0740009c000000000506201900000040064002700000099d0740009c000000000406201900000004065001bf000009980740009c00000000050620190000002006400270000009980740009c000000000406201900000002065001bf0000ffff0740008c000000000506201900000010064002700000000004062019000000ff0440008c000000000400001900000001040020390000000005450019000000200400008a0000004106500039000000000646016f000000400400043d0000000006640019000000000746004b000000000700001900000001070040390000099d0860009c000000fa0000213d0000000107700190000000fa0000c13d000000400060043f0000000206500039000000000664043600000021075000390000000507700272000004f50000613d000000000800003100000002088003670000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b000004ed0000413d000000000700004c000004f70000613d0000000007040433000000000770004c000001720000613d0000000007060433000009a407700197000000f808500210000000000778019f000009a60770004100000000007604350000000305500210000000f80550008900000000035301cf000000ff0550008c000000000300201900000021054000390000000000350435000005b60000013d0000001f0430018f0000000502300272000005130000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b0000050c0000413d000000000540004c000005210000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f000000000012043500000060013002100000265e000104300000000001210049000000d80000013d000000400300043d000009a30430009c000000fa0000213d0000004004300039000000400040043f0000000104000039000000000443043600000000050000310000000205500367000000000600001900000005076002100000000008740019000000000775034f000000000707043b0000000000780435000000010660003a0000000007000019000000010700603900000001077001900000052f0000c13d0000000005030433000000000550004c000001720000613d000000f8052002100000099c06000041000000000220004c000000000205001900000000020660190000000005040433000009a405500197000000000225019f00000000002404350000000c02000029000000a4022000390000000202200367000000000202043b000000800420008c000006c30000413d0000008004200270000009a50520009c000000000402a019000009a50520009c0000000005000019000000100500203900000008065001bf0000099d0740009c000000000506201900000040064002700000099d0740009c000000000406201900000004065001bf000009980740009c00000000050620190000002006400270000009980740009c000000000406201900000002065001bf0000ffff0740008c000000000506201900000010064002700000000004062019000000ff0440008c000000000400001900000001040020390000000005450019000000200400008a0000004106500039000000000646016f000000400400043d0000000006640019000000000746004b000000000700001900000001070040390000099d0860009c000000fa0000213d0000000107700190000000fa0000c13d000000400060043f0000000206500039000000000664043600000021075000390000000507700272000005830000613d000000000800003100000002088003670000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b0000057b0000413d000000000700004c000005850000613d0000000007040433000000000770004c000001720000613d0000000007060433000009a407700197000000f808500210000000000778019f000009a60770004100000000007604350000000305500210000000f80550008900000000025201cf000000ff0550008c000000000200201900000021054000390000000000250435000006e30000013d000000400400043d000009a30540009c000000fa0000213d0000004005400039000000400050043f0000000105000039000000000554043600000000060000310000000206600367000000000700001900000005087002100000000009850019000000000886034f000000000808043b0000000000890435000000010770003a000000000800001900000001080060390000000108800190000005a00000c13d0000000006040433000000000660004c000001720000613d000000f8063002100000099c07000041000000000330004c000000000306001900000000030760190000000006050433000009a406600197000000000336019f00000000003504350000000c03000029000000a4033000390000000203300367000000000303043b000000800530008c000007a60000413d0000008005300270000009a50630009c000000000503a019000009a50630009c0000000006000019000000100600203900000008076001bf0000099d0850009c000000000607201900000040075002700000099d0850009c000000000507201900000004076001bf000009980850009c00000000060720190000002007500270000009980850009c000000000507201900000002076001bf0000ffff0850008c000000000607201900000010075002700000000005072019000000ff0550008c000000000500001900000001050020390000000006560019000000200500008a0000004107600039000000000757016f000000400500043d0000000007750019000000000857004b000000000800001900000001080040390000099d0970009c000000fa0000213d0000000108800190000000fa0000c13d000000400070043f0000000207600039000000000775043600000021086000390000000508800272000005f40000613d00000000090000310000000209900367000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa00039000000000b8a004b000005ec0000413d000000000800004c000005f60000613d0000000008050433000000000880004c000001720000613d0000000008070433000009a408800197000000f809600210000000000889019f000009a60880004100000000008704350000000306600210000000f80660008900000000036301cf000000ff0660008c000000000300201900000021065000390000000000360435000007c60000013d00000003050003670000001f0430018f0000000503300272000006140000613d000000000600001900000005076002100000000008710019000000000775034f000000000707043b00000000007804350000000106600039000000000736004b0000060c0000413d000000000640004c000006230000613d0000000503300210000000000535034f00000000033100190000000304400210000000000603043300000000064601cf000000000646022f000000000505043b0000010004400089000000000545022f00000000044501cf000000000464019f00000000004304350000000002020433000000200220008c00000ef50000c13d00000000040000310000000b0200002900000000052400190000000c0200002900000204032000390000000202000367000000000332034f000000000303043b0000099c06000041000000000753004b000000000700001900000000070680190000099c055001970000099c08300197000000000958004b0000000006008019000000000558013f0000099c0550009c00000000050700190000000005066019000000000550004c000004950000c13d0000000001010433000a00000001001d0000000d010000290000000001130019000000000312034f000000000503043b0000099d0350009c000004950000213d0000000503500210000000000434004900000020061000390000099c01000041000000000746004b000000000700001900000000070120190000099c044001970000099c08600197000000000948004b0000000001008019000000000448013f0000099c0440009c000000000107c019000000000110004c000004950000c13d000000400100043d0000002004100039000009b205500198000006620000613d000000000262034f000000000600001900000005076002100000000008740019000000000772034f000000000707043b00000000007804350000000106600039000000000756004b0000065a0000413d000000000200004c000006640000613d00000000003104350000003f02300039000000200300008a000000000232016f0000000002210019000000000312004b000000000300001900000001030040390000099d0520009c000000fa0000213d0000000103300190000000fa0000c13d000000400020043f0000099802000041000009980340009c0000000003020019000000000304401900000040033002100000000001010433000009980410009c00000000010280190000006001100210000000000131019f0000000003000414000009980430009c0000000002034019000000c002200210000000000112019f000009ac011001c70000801002000039265c26570000040f00000001022001900000000c03000029000004950000613d00000000020000310000000b04000029000000000542001900000224043000390000000203000367000000000443034f000000000404043b0000099c06000041000000000754004b000000000700001900000000070680190000099c055001970000099c08400197000000000958004b0000000006008019000000000558013f0000099c0550009c00000000050700190000000005066019000000000101043b000b00000001001d000000000150004c000004950000c13d0000000d010000290000000001140019000000000313034f000000000303043b000900000003001d0000099d0330009c000004950000213d0000000903000029000000000232004900000020041000390000099c01000041000000000324004b000000000300001900000000030120190000099c02200197000800000004001d0000099c04400197000000000524004b0000000001008019000000000224013f0000099c0220009c000000000103c019000000000110004c000004950000c13d0000000001000414000600000001001d000009ad010000410000ffeb02000039265c26570000040f00000000020100190000006002200270000109980020019d00030000000103550000000901000029000000000110004c00000c220000c13d000000000100003100000c380000013d000000400400043d000009a30540009c000000fa0000213d0000004005400039000000400050043f0000000105000039000000000554043600000000060000310000000206600367000000000700001900000005087002100000000009850019000000000886034f000000000808043b0000000000890435000000010770003a000000000800001900000001080060390000000108800190000006cd0000c13d0000000006040433000000000660004c000001720000613d000000f8062002100000099c07000041000000000220004c000000000206001900000000020760190000000006050433000009a406600197000000000226019f00000000002504350000000c0200002900000064022000390000000202200367000000000202043b000000800520008c000008170000413d0000008005200270000009a50620009c000000000502a019000009a50620009c0000000006000019000000100600203900000008076001bf0000099d0850009c000000000607201900000040075002700000099d0850009c000000000507201900000004076001bf000009980850009c00000000060720190000002007500270000009980850009c000000000507201900000002076001bf0000ffff0850008c000000000607201900000010075002700000000005072019000000ff0550008c000000000500001900000001050020390000000006560019000000200500008a0000004107600039000000000757016f000000400500043d0000000007750019000000000857004b000000000800001900000001080040390000099d0970009c000000fa0000213d0000000108800190000000fa0000c13d000000400070043f0000000207600039000000000775043600000021086000390000000508800272000007210000613d00000000090000310000000209900367000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa00039000000000b8a004b000007190000413d000000000800004c000007230000613d0000000008050433000000000880004c000001720000613d0000000008070433000009a408800197000000f809600210000000000889019f000009a60880004100000000008704350000000306600210000000f80660008900000000026201cf000000ff0660008c000000000200201900000021065000390000000000260435000008370000013d000000400200043d000700000002001d000009a30220009c000000fa0000213d00000007030000290000004002300039000000400020043f0000000102000039000000000223043600000000030000310000000203300367000000000400001900000005054002100000000006520019000000000553034f000000000505043b0000000000560435000000010440003a000000000500001900000001050060390000000105500190000007400000c13d00000007030000290000000003030433000000000330004c000001720000613d000000f8031002100000099c04000041000000000110004c000000000103001900000000010460190000000003020433000009a403300197000000000113019f0000000000120435000000230100008a0000000c020000290000000004210049000001c4012000390000000202000367000600000001001d000000000112034f000000000101043b0000000003000031000500000004001d00000000044300190000099c05000041000000000641004b000000000600001900000000060580190000099c044001970000099c07100197000000000847004b0000000005008019000000000447013f0000099c0440009c00000000040600190000000004056019000000000440004c000004950000c13d0000000d040000290000000004410019000000000142034f000000000101043b0000099d0510009c000004950000213d000000000513004900000020034000390000099c04000041000000000653004b000000000600001900000000060420190000099c055001970000099c07300197000000000857004b0000000004008019000000000557013f0000099c0550009c000000000406c019000000000440004c000004950000c13d000000010410008c000009e10000c13d000000000132034f000000000101043b000000010200008a0000099c03000041000000000221004b000000000200001900000000020320190000099c011001970000099c0410009c00000000030080190000099c011001670000099c0110009c000000000102001900000000010360190000006002000039000400000002001d000000000110004c00000b0f0000c13d000000400100043d000400000001001d000009a30110009c000000fa0000213d00000004030000290000004001300039000000400010043f0000002001300039000009a60200004100000000002104350000000101000039000000000013043500000b0f0000013d000000400500043d000009a30650009c000000fa0000213d0000004006500039000000400060043f000000010600003900000000066504360000000007000031000000020770036700000000080000190000000509800210000000000a960019000000000997034f000000000909043b00000000009a0435000000010880003a000000000900001900000001090060390000000109900190000007b00000c13d0000000007050433000000000770004c000001720000613d000000f8073002100000099c08000041000000000330004c000000000307001900000000030860190000000007060433000009a407700197000000000337019f00000000003604350000000c0300002900000064033000390000000203300367000000000303043b000000800630008c000008980000413d0000008006300270000009a50730009c000000000603a019000009a50730009c0000000007000019000000100700203900000008087001bf0000099d0960009c000000000708201900000040086002700000099d0960009c000000000608201900000004087001bf000009980960009c00000000070820190000002008600270000009980960009c000000000608201900000002087001bf0000ffff0960008c000000000708201900000010086002700000000006082019000000ff0660008c000000000600001900000001060020390000000007670019000000200600008a0000004108700039000000000868016f000000400600043d0000000008860019000000000968004b000000000900001900000001090040390000099d0a80009c000000fa0000213d0000000109900190000000fa0000c13d000000400080043f0000000208700039000000000886043600000021097000390000000509900272000008040000613d000000000a000031000000020aa00367000000000b000019000000050cb00210000000000dc80019000000000cca034f000000000c0c043b0000000000cd0435000000010bb00039000000000c9b004b000007fc0000413d000000000900004c000008060000613d0000000009060433000000000990004c000001720000613d0000000009080433000009a409900197000000f80a70021000000000099a019f000009a60990004100000000009804350000000307700210000000f80770008900000000037301cf000000ff0770008c000000000300201900000021076000390000000000370435000008b80000013d000000400500043d000009a30650009c000000fa0000213d0000004006500039000000400060043f000000010600003900000000066504360000000007000031000000020770036700000000080000190000000509800210000000000a960019000000000997034f000000000909043b00000000009a0435000000010880003a000000000900001900000001090060390000000109900190000008210000c13d0000000007050433000000000770004c000001720000613d000000f8072002100000099c08000041000000000220004c000000000207001900000000020860190000000007060433000009a407700197000000000227019f0000000000260435000000400600043d000009a30260009c000000fa0000213d0000000c0900002900000044029000390000000202200367000000000202043b0000004007600039000000400070043f0000002007600039000009a70800004100000000008704350000001507000039000000000076043500000021076000390000006002200210000000000027043500000124029000390000000202200367000000000202043b000000800720008c000009190000413d0000008007200270000009a50820009c000000000702a019000009a50820009c0000000008000019000000100800203900000008098001bf0000099d0a70009c000000000809201900000040097002700000099d0a70009c000000000709201900000004098001bf000009980a70009c00000000080920190000002009700270000009980a70009c000000000709201900000002098001bf0000ffff0a70008c000000000809201900000010097002700000000007092019000000ff0770008c000000000700001900000001070020390000000008780019000000200700008a0000004109800039000000000979016f000000400700043d0000000009970019000000000a79004b000000000a000019000000010a0040390000099d0b90009c000000fa0000213d000000010aa00190000000fa0000c13d000000400090043f00000002098000390000000009970436000000210a800039000000050aa00272000008850000613d000000000b000031000000020bb00367000000000c000019000000050dc00210000000000ed90019000000000ddb034f000000000d0d043b0000000000de0435000000010cc00039000000000dac004b0000087d0000413d000000000a00004c000008870000613d000000000a070433000000000aa0004c000001720000613d000000000a090433000009a40aa00197000000f80b800210000000000aab019f000009a60aa000410000000000a904350000000308800210000000f80880008900000000028201cf000000ff0880008c000000000200201900000021087000390000000000280435000009390000013d000000400600043d000009a30760009c000000fa0000213d0000004007600039000000400070043f00000001070000390000000007760436000000000800003100000002088003670000000009000019000000050a900210000000000ba70019000000000aa8034f000000000a0a043b0000000000ab0435000000010990003a000000000a000019000000010a006039000000010aa00190000008a20000c13d0000000008060433000000000880004c000001720000613d000000f8083002100000099c09000041000000000330004c000000000308001900000000030960190000000008070433000009a408800197000000000338019f0000000000370435000000400700043d000009a30370009c000000fa0000213d0000000c0a0000290000004403a000390000000203300367000000000303043b0000004008700039000000400080043f0000002008700039000009a7090000410000000000980435000000150800003900000000008704350000002108700039000000600330021000000000003804350000012403a000390000000203300367000000000303043b000000800830008c00000a1a0000413d0000008008300270000009a50930009c000000000803a019000009a50930009c00000000090000190000001009002039000000080a9001bf0000099d0b80009c00000000090a2019000000400a8002700000099d0b80009c00000000080a2019000000040a9001bf000009980b80009c00000000090a2019000000200a800270000009980b80009c00000000080a2019000000020a9001bf0000ffff0b80008c00000000090a2019000000100a80027000000000080a2019000000ff0880008c000000000800001900000001080020390000000009890019000000200800008a000000410a900039000000000a8a016f000000400800043d000000000aa80019000000000b8a004b000000000b000019000000010b0040390000099d0ca0009c000000fa0000213d000000010bb00190000000fa0000c13d0000004000a0043f000000020a900039000000000aa80436000000210b900039000000050bb00272000009060000613d000000000c000031000000020cc00367000000000d000019000000050ed00210000000000fea0019000000000eec034f000000000e0e043b0000000000ef0435000000010dd00039000000000ebd004b000008fe0000413d000000000b00004c000009080000613d000000000b080433000000000bb0004c000001720000613d000000000b0a0433000009a40bb00197000000f80c900210000000000bbc019f000009a60bb000410000000000ba04350000000309900210000000f80990008900000000039301cf000000ff0990008c00000000030020190000002109800039000000000039043500000a3a0000013d000000400700043d000009a30870009c000000fa0000213d0000004008700039000000400080043f0000000108000039000000000887043600000000090000310000000209900367000000000a000019000000050ba00210000000000cb80019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa0003a000000000b000019000000010b006039000000010bb00190000009230000c13d0000000009070433000000000990004c000001720000613d000000f8092002100000099c0a000041000000000220004c000000000209001900000000020a60190000000009080433000009a409900197000000000229019f0000000000280435000000400200043d00000020082000390000000009010433000000000a90004c000009460000613d000000000a000019000000000b8a0019000000200aa00039000000000c1a0019000000000c0c04330000000000cb0435000000000b9a004b0000093f0000413d000000000189001900000000000104350000000008030433000000000980004c000009530000613d0000000009000019000000000a1900190000002009900039000000000b390019000000000b0b04330000000000ba0435000000000a89004b0000094c0000413d000000000118001900000000000104350000000003040433000000000830004c000009600000613d000000000800001900000000091800190000002008800039000000000a480019000000000a0a04330000000000a90435000000000938004b000009590000413d000000000113001900000000000104350000000003050433000000000430004c0000096d0000613d000000000400001900000000081400190000002004400039000000000954001900000000090904330000000000980435000000000834004b000009660000413d000000000113001900000000000104350000000003060433000000000430004c0000097a0000613d000000000400001900000000051400190000002004400039000000000864001900000000080804330000000000850435000000000534004b000009730000413d000000000113001900000000000104350000000003070433000000000430004c000009870000613d000000000400001900000000051400190000002004400039000000000674001900000000060604330000000000650435000000000534004b000009800000413d000000000113001900000000000104350000000001210049000000200310008a00000000003204350000001f03100039000000200100008a000000000313016f0000000005230019000000000335004b000000000300001900000001030040390000099d0450009c000000fa0000213d0000000103300190000000fa0000c13d000000400050043f000000230300008a0000000c060000290000000004630049000001c4036000390000000207000367000000000637034f000000000606043b000000000800003100000000094800190000099c0a000041000000000b96004b000000000b000019000000000b0a80190000099c099001970000099c0c600197000000000d9c004b000000000a00801900000000099c013f0000099c0990009c00000000090b001900000000090a6019000000000990004c000004950000c13d0000000d090000290000000009960019000000000697034f000000000606043b0000099d0a60009c000004950000213d000000000a68004900000020089000390000099c09000041000000000ba8004b000000000b000019000000000b0920190000099c0aa001970000099c0c800197000000000dac004b0000000009008019000000000aac013f0000099c0aa0009c00000000090bc019000000000990004c000004950000c13d000000010960008c00000f070000c13d000000000687034f000000000606043b000000010700008a0000099c08000041000000000776004b000000000700001900000000070820190000099c066001970000099c0960009c00000000080080190000099c066001670000099c0660009c00000000070860190000006006000039000000000770004c00000fa90000c13d000009a30650009c000000fa0000213d0000004006500039000000400060043f0000002006500039000009a607000041000000000076043500000001060000390000000000650435000000000605001900000fa90000013d000000380210008c00000aef0000413d0000002002100270000009980310009c00000000030100190000000003022019000009980210009c0000000002000019000000040200203900000002042001bf0000ffff0530008c000000000204201900000010043002700000000003042019000000ff0330008c00000000030000190000000103002039000000400400043d000400000004001d000009a30440009c000000fa0000213d000000000232019f00000004040000290000004003400039000000400030043f0000000203200039000000000334043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a000000000600001900000001060060390000000106600190000009ff0000c13d00000004040000290000000004040433000000000440004c000001720000613d0000000004030433000009a404400197000000f805200210000000000445019f000009a8044001c700000000004304350000000302200210000000f80220008900000000012101cf00000004020000290000002102200039000000000012043500000b0f0000013d000000400800043d000009a30980009c000000fa0000213d0000004009800039000000400090043f00000001090000390000000009980436000000000a000031000000020aa00367000000000b000019000000050cb00210000000000dc90019000000000cca034f000000000c0c043b0000000000cd0435000000010bb0003a000000000c000019000000010c006039000000010cc0019000000a240000c13d000000000a080433000000000aa0004c000001720000613d000000f80a3002100000099c0b000041000000000330004c00000000030a001900000000030b6019000000000a090433000009a40aa0019700000000033a019f0000000000390435000000400300043d0000002009300039000000000a010433000000000ba0004c00000a470000613d000000000b000019000000000c9b0019000000200bb00039000000000d1b0019000000000d0d04330000000000dc0435000000000cab004b00000a400000413d00000000019a001900000000000104350000000009020433000000000a90004c00000a540000613d000000000a000019000000000b1a0019000000200aa00039000000000c2a0019000000000c0c04330000000000cb0435000000000b9a004b00000a4d0000413d000000000119001900000000000104350000000002040433000000000920004c00000a610000613d0000000009000019000000000a1900190000002009900039000000000b490019000000000b0b04330000000000ba0435000000000a29004b00000a5a0000413d000000000112001900000000000104350000000002050433000000000420004c00000a6e0000613d000000000400001900000000091400190000002004400039000000000a540019000000000a0a04330000000000a90435000000000924004b00000a670000413d000000000112001900000000000104350000000002060433000000000420004c00000a7b0000613d000000000400001900000000051400190000002004400039000000000964001900000000090904330000000000950435000000000524004b00000a740000413d000000000112001900000000000104350000000002070433000000000420004c00000a880000613d000000000400001900000000051400190000002004400039000000000674001900000000060604330000000000650435000000000524004b00000a810000413d000000000112001900000000000104350000000002080433000000000420004c00000a950000613d000000000400001900000000051400190000002004400039000000000684001900000000060604330000000000650435000000000524004b00000a8e0000413d000000000112001900000000000104350000000001310049000000200210008a00000000002304350000001f02100039000000200100008a000000000212016f0000000005320019000000000225004b000000000200001900000001020040390000099d0450009c000000fa0000213d0000000102200190000000fa0000c13d000000400050043f000000230200008a0000000c060000290000000004620049000001c4026000390000000207000367000000000627034f000000000606043b000000000800003100000000094800190000099c0a000041000000000b96004b000000000b000019000000000b0a80190000099c099001970000099c0c600197000000000d9c004b000000000a00801900000000099c013f0000099c0990009c00000000090b001900000000090a6019000000000990004c000004950000c13d0000000d090000290000000009960019000000000697034f000000000606043b0000099d0a60009c000004950000213d000000000a68004900000020089000390000099c09000041000000000ba8004b000000000b000019000000000b0920190000099c0aa001970000099c0c800197000000000dac004b0000000009008019000000000aac013f0000099c0aa0009c00000000090bc019000000000990004c000004950000c13d000000010960008c00000f570000c13d000000000687034f000000000606043b000000010700008a0000099c08000041000000000776004b000000000700001900000000070820190000099c066001970000099c0960009c00000000080080190000099c066001670000099c0660009c00000000070860190000006006000039000000000770004c000010450000c13d000009a30650009c000000fa0000213d0000004006500039000000400060043f0000002006500039000009a6070000410000000000760435000000010600003900000000006504350000000006050019000010450000013d000000400200043d000400000002001d000009a30220009c000000fa0000213d00000004030000290000004002300039000000400020043f0000000102000039000000000223043600000000030000310000000203300367000000000400001900000005054002100000000006520019000000000553034f000000000505043b0000000000560435000000010440003a00000000050000190000000105006039000000010550019000000afb0000c13d00000004030000290000000003030433000000000330004c000001720000613d000000f8011002100000000003020433000009a403300197000000000113019f0000099c01100167000000000012043500000060010000390000000c0200002900000144032000390000000202000367000000000332034f000000000303043b000000000330004c00000b870000c13d0000000603000029000000000432034f000000000300003100000005050000290000000005530019000000000904043b0000099c04000041000000000659004b000000000600001900000000060480190000099c055001970000099c07900197000000000857004b0000000004008019000000000557013f0000099c0550009c000000000406c019000000000440004c000004950000c13d0000000b0400002900000000040404330000000a0500002900000000050504330000000906000029000000000606043300000007070000290000000007070433000000040800002900000000080804330000000d0a0000290000000009a90019000000000292034f000000000202043b0000099d0a20009c000004950000213d000000000323004900000020099000390000099c0a000041000000000b39004b000000000b000019000000000b0a20190000099c033001970000099c09900197000000000c39004b000000000a008019000000000339013f0000099c0330009c00000000030b001900000000030a6019000000000330004c000004950000c13d00000000034500190000000003630019000000000373001900000000038300190000000002230019000000000301043300000000023200190000099d02200197000000380320008c00000d4a0000413d0000002003200270000009980420009c00000000040200190000000004032019000009980320009c0000000003000019000000040300203900000002053001bf0000ffff0640008c000000000305201900000010054002700000000004052019000000ff0440008c00000000040000190000000104002039000000400500043d000009a30650009c000000fa0000213d000000000343019f0000004004500039000000400040043f0000000204300039000000000445043600000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b0000000000890435000000010770003a00000000080000190000000108006039000000010880019000000b6e0000c13d0000000006050433000000000660004c000001720000613d0000000006040433000009a406600197000000f807300210000000000667019f000009aa066001c700000000006404350000000303300210000000f80330008900000000023201cf0000002103500039000000000023043500000d670000013d000009a101000041000000000010043900000998010000410000000002000414000009980320009c0000000001024019000000c001100210000009a2011001c70000800b02000039265c26570000040f0000000102200190000004950000613d000000000101043b000000800210008c00000be10000413d0000008002100270000009a50310009c000000000201a019000009a50310009c0000000003000019000000100300203900000008043001bf0000099d0520009c000000000304201900000040042002700000099d0520009c000000000204201900000004043001bf000009980520009c00000000030420190000002004200270000009980520009c000000000204201900000002043001bf0000ffff0520008c000000000304201900000010042002700000000002042019000000ff0220008c00000000020000190000000102002039000000000323001900000041023000390000000804000029000000000442016f000000400200043d0000000004420019000000000524004b000000000500001900000001050040390000099d0640009c000000fa0000213d0000000105500190000000fa0000c13d000000400040043f000000020430003900000000044204360000002105300039000000050550027200000bce0000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b00000bc60000413d000000000500004c00000bd00000613d0000000005020433000000000550004c000001720000613d0000000005040433000009a405500197000000f806300210000000000556019f000009a60550004100000000005404350000000303300210000000f80330008900000000013101cf000000ff0330008c00000000010020190000002103200039000000000013043500000c010000013d000000400200043d000009a30320009c000000fa0000213d0000004003200039000000400030043f0000000103000039000000000332043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a00000000060000190000000106006039000000010660019000000beb0000c13d0000000004020433000000000440004c000001720000613d000000f8041002100000099c05000041000000000110004c000000000104001900000000010560190000000004030433000009a404400197000000000114019f0000000000130435000000400100043d00000020031000390000000004020433000000000540004c00000c0e0000613d000000000500001900000000063500190000002005500039000000000725001900000000070704330000000000760435000000000645004b00000c070000413d0000000002340019000009bb03000041000000000032043500000000021200490000001e0320008a000000000031043500000021022000390000000803000029000000000332016f0000000002130019000000000332004b000000000300001900000001030040390000099d0420009c000000fa0000213d0000000103300190000000fa0000c13d000000400020043f000000020200036700000b170000013d0000000801000029000000c001100210000009ae01100197000009ad011001c70000ffe902000039265c26570000040f00000000020100190000006002200270000109980020019d000000090300002900000008020000290000000002230019000000000332004b0000000003000019000000010300403900030000000103550000000101300190000003380000c13d0000000001000031000000000321004b000003380000413d0000000001210049000000c001100210000009ae01100197000009ad011001c70000ffe802000039265c26570000040f00000000020100190000006002200270000109980020019d00030000000103550000000601000029000009980110009c000000e40000213d000009af010000410000ffe702000039265c26570000040f00000000020100190000006002200270000109980020019d0003000000010355000009b0010000410000fff602000039265c26570000040f00000000030100190000006003300270000109980030019d00000998033001970003000000010355000000010220019000000f3c0000613d0000003f01300039000009b101100197000000400200043d0000000001120019000000000421004b000000000400001900000001040040390000099d0510009c000000fa0000213d0000000104400190000000fa0000c13d000000400010043f00000000013204360000001f04300039000000050440027200000c700000613d00000000050000310000000205500367000000000600001900000005076002100000000008710019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b00000c680000413d000000000400004c00000c720000613d0000000104000031000000000443004b000004950000213d00000003050003670000001f0430018f000000050330027200000c820000613d000000000600001900000005076002100000000008710019000000000775034f000000000707043b00000000007804350000000106600039000000000736004b00000c7a0000413d000000000640004c00000c910000613d0000000503300210000000000535034f00000000033100190000000304400210000000000603043300000000064601cf000000000646022f000000000505043b0000010004400089000000000545022f00000000044501cf000000000464019f00000000004304350000000002020433000000200220008c00000ef50000c13d0000000c0c0000290000002402c000390000000203000367000000000423034f0000012402c00039000000000523034f0000010402c00039000000000623034f000000e402c00039000000000723034f000000c402c00039000000000823034f000000a402c00039000000000923034f0000008402c00039000000000a23034f0000006402c00039000000000b23034f0000004402c00039000000000c23034f0000000d02000029000000000223034f000000000202043b000000000304043b00000000040c043b000000000b0b043b000000000a0a043b000000000909043b000000000808043b000000000707043b000000000606043b000000000505043b000000000c010433000000400100043d000001c00d1000390000000000cd0435000001a00c1000390000000b0d0000290000000000dc0435000001800c1000390000000a0d0000290000000000dc0435000001600c10003900000000005c0435000001400510003900000000006504350000012005100039000000000075043500000100051000390000000000850435000000e0051000390000000000950435000000c0051000390000000000a50435000000a0051000390000000000b504350000008005100039000000000045043500000060041000390000000000340435000000400310003900000000002304350000002002100039000009b3030000410000000000320435000001c0030000390000000000310435000009b40310009c000000fa0000213d000001e003100039000000400030043f0000099803000041000009980420009c000000000203801900000040022002100000000001010433000009980410009c00000000010380190000006001100210000000000121019f0000000002000414000009980420009c0000000002038019000000c002200210000000000112019f000009ac011001c70000801002000039265c26570000040f0000000102200190000004950000613d000000000101043b000a00000001001d000000400100043d000b00000001001d000009a101000041000000000010043900000998010000410000000002000414000009980320009c0000000001024019000000c001100210000009a2011001c70000800b02000039265c26570000040f00000007040000290000000102200190000004950000613d0000000b050000290000002002500039000000000101043b000009b5030000410000000000320435000000800350003900000000001304350000006001500039000009b60300004100000000003104350000004001500039000009b70300004100000000003104350000000000450435000009b80150009c000000fa0000213d0000000b04000029000000a001400039000000400010043f0000099801000041000009980320009c000000000201801900000040022002100000000003040433000009980430009c00000000030180190000006003300210000000000223019f0000000003000414000009980430009c0000000001034019000000c001100210000000000121019f000009ac011001c70000801002000039265c26570000040f0000000102200190000004950000613d000000000301043b000000400100043d00000042021000390000000a0400002900000000004204350000002002100039000009b90400004100000000004204350000002204100039000000000034043500000042030000390000000000310435000009ba0310009c000000fa0000213d0000008003100039000000400030043f0000099803000041000009980420009c000000000203801900000040022002100000000001010433000009980410009c00000000010380190000006001100210000000000121019f0000000002000414000009980420009c0000000002038019000000c002200210000000000112019f000009ac011001c70000801002000039265c26570000040f00000001022001900000000c0b00002900000e350000c13d000004950000013d000000400500043d000009a30350009c000000fa0000213d0000004003500039000000400030043f0000000103000039000000000335043600000000040000310000000204400367000000000600001900000005076002100000000008730019000000000774034f000000000707043b0000000000780435000000010660003a00000000070000190000000107006039000000010770019000000d540000c13d0000000004050433000000000440004c000001720000613d000000f8022002100000000004030433000009a404400197000000000242019f000009a902200041000000000023043500000000020000310000000503000029000000000632001900000002030003670000000604000029000000000443034f000000000404043b0000099c07000041000000000864004b000000000800001900000000080780190000099c066001970000099c09400197000000000a69004b0000000007008019000000000669013f0000099c0660009c00000000060800190000000006076019000000000660004c000004950000c13d0000000d060000290000000006640019000000000363034f000000000403043b0000099d0340009c000004950000213d000000000242004900000020066000390000099c03000041000000000726004b000000000700001900000000070320190000099c022001970000099c08600197000000000928004b0000000003008019000000000228013f0000099c0220009c00000000020700190000000002036019000000000220004c000004950000c13d000000400200043d00000020032000390000000007050433000000000870004c00000d9f0000613d000000000800001900000000093800190000002008800039000000000a580019000000000a0a04330000000000a90435000000000978004b00000d980000413d000000000537001900000000000504350000000b0b00002900000000070b0433000000000870004c00000dad0000613d000000000800001900000000095800190000002008800039000000000ab80019000000000a0a04330000000000a90435000000000978004b00000da60000413d000000000557001900000000000504350000000a0b00002900000000070b0433000000000870004c00000dbb0000613d000000000800001900000000095800190000002008800039000000000ab80019000000000a0a04330000000000a90435000000000978004b00000db40000413d00000000055700190000000000050435000000090b00002900000000070b0433000000000870004c00000dc90000613d000000000800001900000000095800190000002008800039000000000ab80019000000000a0a04330000000000a90435000000000978004b00000dc20000413d00000000055700190000000000050435000000070b00002900000000070b0433000000000870004c00000dd70000613d000000000800001900000000095800190000002008800039000000000ab80019000000000a0a04330000000000a90435000000000978004b00000dd00000413d00000000055700190000000000050435000000040b00002900000000070b0433000000000870004c00000de50000613d000000000800001900000000095800190000002008800039000000000ab80019000000000a0a04330000000000a90435000000000978004b00000dde0000413d00000000055700190000001f0740018f00000000000504350000000206600367000000050840027200000df40000613d0000000009000019000000050a900210000000000ba50019000000000aa6034f000000000a0a043b0000000000ab04350000000109900039000000000a89004b00000dec0000413d000000000970004c00000e030000613d0000000508800210000000000686034f00000000088500190000000307700210000000000908043300000000097901cf000000000979022f000000000606043b0000010007700089000000000676022f00000000067601cf000000000696019f0000000000680435000000000445001900000000000404350000000005010433000000000650004c00000e100000613d000000000600001900000000074600190000002006600039000000000816001900000000080804330000000000870435000000000756004b00000e090000413d000000000145001900000000000104350000000001210049000000200410008a00000000004204350000001f011000390000000804000029000000000441016f0000000001240019000000000441004b000000000400001900000001040040390000099d0510009c000000fa0000213d0000000104400190000000fa0000c13d000000400010043f0000099801000041000009980430009c000000000301801900000040033002100000000002020433000009980420009c00000000020180190000006002200210000000000232019f0000000003000414000009980430009c0000000001034019000000c001100210000000000121019f000009ac011001c70000801002000039265c26570000040f00000001022001900000000c0b000029000004950000613d00000002020003670000000d03000029000000000332034f000000000101043b000c00000001001d000000000103043b000000710310008c000010c40000c13d000001e401b00039000000000312034f00000000010000310000000004b10049000000230440008a000000000303043b0000099c05000041000000000643004b000000000600001900000000060580190000099c044001970000099c07300197000000000847004b0000000005008019000000000447013f0000099c0440009c00000000040600190000000004056019000000000440004c000004950000c13d0000000d040000290000000003430019000000000232034f000000000202043b000d00000002001d0000099d0220009c000004950000213d0000000d02000029000000000121004900000020043000390000099c02000041000000000314004b000000000300001900000000030220190000099c01100197000b00000004001d0000099c04400197000000000514004b0000000002008019000000000114013f0000099c0110009c00000000010300190000000001026019000000000110004c000004950000c13d0000000001000414000a00000001001d000009ad010000410000ffeb02000039265c26570000040f00000000020100190000006002200270000109980020019d00030000000103550000000d01000029000000000110004c000013300000c13d0000000001000031000000c001100210000009ae01100197000009ad011001c70000ffe802000039265c26570000040f00000000020100190000006002200270000109980020019d00030000000103550000000a01000029000009980110009c000000e40000213d000009af010000410000ffe702000039265c26570000040f00000000020100190000006002200270000109980020019d0003000000010355000009b0010000410000fff602000039265c26570000040f00000000030100190000006003300270000109980030019d000009980330019700030000000103550000000102200190000013b70000613d0000003f01300039000009b102100197000000400100043d0000000002210019000000000412004b000000000400001900000001040040390000099d0520009c000000fa0000213d0000000104400190000000fa0000c13d000000400020043f00000000023104360000001f04300039000000050440027200000eaf0000613d00000000050000310000000205500367000000000600001900000005076002100000000008720019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b00000ea70000413d000000000400004c00000eb10000613d0000000104000031000000000443004b000004950000213d00000003050003670000001f0430018f000000050330027200000ec10000613d000000000600001900000005076002100000000008720019000000000775034f000000000707043b00000000007804350000000106600039000000000736004b00000eb90000413d000000000640004c00000ed00000613d0000000503300210000000000535034f00000000033200190000000304400210000000000603043300000000064601cf000000000646022f000000000505043b0000010004400089000000000545022f00000000044501cf000000000464019f00000000004304350000000001010433000000200110008c00000ef50000c13d0000000002020433000000400100043d0000004003100039000000000023043500000020021000390000000c03000029000000000032043500000040030000390000000000310435000009c00310009c000000fa0000213d0000006003100039000000400030043f0000099803000041000009980420009c000000000203801900000040022002100000000001010433000009980410009c00000000010380190000006001100210000000000121019f0000000002000414000009980420009c0000000002038019000000c002200210000000000112019f000009ac011001c70000801002000039265c26570000040f0000000102200190000004950000613d000000000101043b000013140000013d000000400100043d0000004402100039000009bf03000041000000000032043500000024021000390000001f0300003900000000003204350000099f0200004100000000002104350000000402100039000000200300003900000000003204350000099802000041000009980310009c00000000010280190000004001100210000009a0011001c70000265e00010430000000380760008c00000f8c0000413d0000002007600270000009980860009c00000000080600190000000008072019000009980760009c0000000007000019000000040700203900000002097001bf0000ffff0a80008c000000000709201900000010098002700000000008092019000000ff0880008c00000000080000190000000108002039000009a30950009c000000fa0000213d000000000787019f0000004008500039000000400080043f0000000208700039000000000885043600000000090000310000000209900367000000000a000019000000050ba00210000000000cb80019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa0003a000000000b000019000000010b006039000000010bb0019000000f220000c13d0000000009050433000000000990004c000001720000613d0000000009080433000009a409900197000000f80a70021000000000099a019f000009a8099001c700000000009804350000000307700210000000f80770008900000000067601cf00000021075000390000000000670435000000000605001900000fa90000013d0000001f0430018f000000050230027200000f470000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b00000f400000413d000000000540004c00000f550000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f000000000012043500000060013002100000265e00010430000000380760008c000010280000413d0000002007600270000009980860009c00000000080600190000000008072019000009980760009c0000000007000019000000040700203900000002097001bf0000ffff0a80008c000000000709201900000010098002700000000008092019000000ff0880008c00000000080000190000000108002039000009a30950009c000000fa0000213d000000000787019f0000004008500039000000400080043f0000000208700039000000000885043600000000090000310000000209900367000000000a000019000000050ba00210000000000cb80019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa0003a000000000b000019000000010b006039000000010bb0019000000f720000c13d0000000009050433000000000990004c000001720000613d0000000009080433000009a409900197000000f80a70021000000000099a019f000009a8099001c700000000009804350000000307700210000000f80770008900000000067601cf000000210750003900000000006704350000000006050019000010450000013d000009a30750009c000000fa0000213d0000004007500039000000400070043f00000001070000390000000007750436000000000800003100000002088003670000000009000019000000050a900210000000000ba70019000000000aa8034f000000000a0a043b0000000000ab0435000000010990003a000000000a000019000000010a006039000000010aa0019000000f950000c13d0000000008050433000000000880004c000001720000613d000000f8066002100000000008070433000009a408800197000000000668019f0000099c0660016700000000006704350000000006050019000000400500043d000009a30750009c000000fa0000213d0000004007500039000000400070043f0000000109000039000000000795043600000000080000310000000208800367000000000a000019000000050ba00210000000000cb70019000000000bb8034f000000000b0b043b0000000000bc0435000000010aa0003a000000000b000019000000010b006039000000010bb0019000000fb30000c13d0000000008050433000000000880004c000001720000613d0000000008070433000009a408800197000009a9088001c7000000000087043500000000070000310000000008470019000000020b000367000000000a3b034f000000000c0a043b0000099c0a000041000000000d8c004b000000000d000019000000000d0a80190000099c088001970000099c0ec00197000000000f8e004b000000000a00801900000000088e013f0000099c0880009c00000000080d001900000000080a6019000000000880004c000004950000c13d0000000008020433000000000a0604330000000d0d000029000000000cdc0019000000000bcb034f000000000b0b043b0000099d0db0009c000004950000213d0000000007b70049000000200cc000390000099c0d000041000000000e7c004b000000000e000019000000000e0d20190000099c077001970000099c0cc00197000000000f7c004b000000000d00801900000000077c013f0000099c0770009c00000000070e001900000000070d6019000000000770004c000004950000c13d00000000078a00190000000007b70019000000000805043300000000078700190000099d08700197000000380780008c0000111a0000413d0000002007800270000009980980009c000000000708a019000009980980009c00000000090000190000000409002039000000020a9001bf0000ffff0b70008c00000000090a2019000000100a70027000000000070a2019000000ff0770008c000000000a000019000000010a002039000000400700043d000009a30b70009c000000fa0000213d0000000009a9019f000000400a7000390000004000a0043f000000020a900039000000000aa70436000000000b000031000000020bb00367000000000c000019000000050dc00210000000000eda0019000000000ddb034f000000000d0d043b0000000000de0435000000010cc0003a000000000d000019000000010d006039000000010dd001900000100f0000c13d000000000b070433000000000bb0004c000001720000613d000000000b0a0433000009a40bb00197000000f80c900210000000000bbc019f000009aa0bb001c70000000000ba04350000000309900210000000f80990008900000000089801cf00000021097000390000000000890435000011360000013d000009a30750009c000000fa0000213d0000004007500039000000400070043f00000001070000390000000007750436000000000800003100000002088003670000000009000019000000050a900210000000000ba70019000000000aa8034f000000000a0a043b0000000000ab0435000000010990003a000000000a000019000000010a006039000000010aa00190000010310000c13d0000000008050433000000000880004c000001720000613d000000f8066002100000000008070433000009a408800197000000000668019f0000099c0660016700000000006704350000000006050019000000400500043d000009a30750009c000000fa0000213d0000004007500039000000400070043f0000000109000039000000000795043600000000080000310000000208800367000000000a000019000000050ba00210000000000cb70019000000000bb8034f000000000b0b043b0000000000bc0435000000010aa0003a000000000b000019000000010b006039000000010bb001900000104f0000c13d0000000008050433000000000880004c000001720000613d0000000008070433000009a408800197000009a9088001c7000000000087043500000000070000310000000008470019000000020b000367000000000a2b034f000000000c0a043b0000099c0a000041000000000d8c004b000000000d000019000000000d0a80190000099c088001970000099c0ec00197000000000f8e004b000000000a00801900000000088e013f0000099c0880009c00000000080d001900000000080a6019000000000880004c000004950000c13d0000000008030433000000000a0604330000000d0d000029000000000cdc0019000000000bcb034f000000000b0b043b0000099d0db0009c000004950000213d0000000007b70049000000200cc000390000099c0d000041000000000e7c004b000000000e000019000000000e0d20190000099c077001970000099c0cc00197000000000f7c004b000000000d00801900000000077c013f0000099c0770009c00000000070e001900000000070d6019000000000770004c000004950000c13d00000000078a00190000000007b70019000000000805043300000000078700190000099d08700197000000380780008c000011de0000413d0000002007800270000009980980009c000000000708a019000009980980009c00000000090000190000000409002039000000020a9001bf0000ffff0b70008c00000000090a2019000000100a70027000000000070a2019000000ff0770008c000000000a000019000000010a002039000000400700043d000009a30b70009c000000fa0000213d0000000009a9019f000000400a7000390000004000a0043f000000020a900039000000000aa70436000000000b000031000000020bb00367000000000c000019000000050dc00210000000000eda0019000000000ddb034f000000000d0d043b0000000000de0435000000010cc0003a000000000d000019000000010d006039000000010dd00190000010ab0000c13d000000000b070433000000000bb0004c000001720000613d000000000b0a0433000009a40bb00197000000f80c900210000000000bbc019f000009aa0bb001c70000000000ba04350000000309900210000000f80990008900000000089801cf00000021097000390000000000890435000011fa0000013d000000000310004c000011d90000c13d0000010401b00039000000000112034f000000000101043b000000800210008c0000129d0000413d0000008002100270000009a50310009c000000000201a019000009a50310009c0000000003000019000000100300203900000008043001bf0000099d0520009c000000000304201900000040042002700000099d0520009c000000000204201900000004043001bf000009980520009c00000000030420190000002004200270000009980520009c000000000204201900000002043001bf0000ffff0520008c000000000304201900000010042002700000000002042019000000ff0220008c000000000200001900000001020020390000000002230019000000200300008a0000004104200039000000000334016f000000400400043d0000000003340019000b00000004001d000000000443004b000000000400001900000001040040390000099d0530009c000000fa0000213d0000000104400190000000fa0000c13d000000400030043f00000002032000390000000b04000029000000000334043600000021042000390000000504400272000011050000613d00000000050000310000000205500367000000000600001900000005076002100000000008730019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000010fd0000413d000000000400004c000011070000613d0000000b040000290000000004040433000000000440004c000001720000613d0000000004030433000009a404400197000000f805200210000000000445019f000009a60440004100000000004304350000000302200210000000f80220008900000000012101cf000000ff0220008c00000000010020190000000b0200002900000021022000390000000000120435000012c00000013d000000400700043d000009a30a70009c000000fa0000213d000000400a7000390000004000a0043f0000000009970436000000000a000031000000020aa00367000000000b000019000000050cb00210000000000dc90019000000000cca034f000000000c0c043b0000000000cd0435000000010bb0003a000000000c000019000000010c006039000000010cc00190000011230000c13d000000000a070433000000000aa0004c000001720000613d000000f808800210000000000a090433000009a40aa001970000000008a8019f000009a9088000410000000000890435000000000900003100000000084900190000000204000367000000000334034f000000000303043b0000099c0a000041000000000b83004b000000000b000019000000000b0a80190000099c088001970000099c0c300197000000000d8c004b000000000a00801900000000088c013f0000099c0880009c00000000080b001900000000080a6019000000000880004c000004950000c13d0000000d080000290000000003830019000000000434034f000000000804043b0000099d0480009c000004950000213d000000000489004900000020093000390000099c03000041000000000a49004b000000000a000019000000000a0320190000099c044001970000099c0b900197000000000c4b004b000000000300801900000000044b013f0000099c0440009c00000000030ac019000000000330004c000004950000c13d000000400300043d0000002004300039000009ab0a0000410000000000a40435000000210a300039000000000b070433000000000cb0004c0000116e0000613d000000000c000019000000000dac0019000000200cc00039000000000e7c0019000000000e0e04330000000000ed0435000000000dbc004b000011670000413d0000000007ab00190000000000070435000000000a020433000000000ba0004c0000117b0000613d000000000b000019000000000c7b0019000000200bb00039000000000d2b0019000000000d0d04330000000000dc0435000000000cab004b000011740000413d00000000027a001900000000000204350000000007060433000000000a70004c000011880000613d000000000a000019000000000b2a0019000000200aa00039000000000c6a0019000000000c0c04330000000000cb0435000000000b7a004b000011810000413d00000000022700190000001f0680018f000000000002043500000002079003670000000509800272000011970000613d000000000a000019000000050ba00210000000000cb20019000000000bb7034f000000000b0b043b0000000000bc0435000000010aa00039000000000b9a004b0000118f0000413d000000000a60004c000011a60000613d0000000509900210000000000797034f00000000099200190000000306600210000000000a090433000000000a6a01cf000000000a6a022f000000000707043b0000010006600089000000000767022f00000000066701cf0000000006a6019f0000000000690435000000000282001900000000000204350000000006050433000000000760004c000011b30000613d000000000700001900000000082700190000002007700039000000000957001900000000090904330000000000980435000000000867004b000011ac0000413d000000000226001900000000000204350000000002320049000000200520008a00000000005304350000001f02200039000000000212016f0000000001320019000000000221004b000000000200001900000001020040390000099d0510009c000000fa0000213d0000000102200190000000fa0000c13d000000400010043f0000099801000041000009980240009c0000000002010019000000000204401900000040022002100000000003030433000009980430009c00000000030180190000006003300210000000000223019f0000000003000414000009980430009c0000000001034019000000c001100210000000000121019f000009ac011001c70000801002000039265c26570000040f00000001022001900000000c0b00002900000e350000c13d000004950000013d000000020210008c000013100000c13d0000000d01000029265c1f6b0000040f000013140000013d000000400700043d000009a30a70009c000000fa0000213d000000400a7000390000004000a0043f0000000009970436000000000a000031000000020aa00367000000000b000019000000050cb00210000000000dc90019000000000cca034f000000000c0c043b0000000000cd0435000000010bb0003a000000000c000019000000010c006039000000010cc00190000011e70000c13d000000000a070433000000000aa0004c000001720000613d000000f808800210000000000a090433000009a40aa001970000000008a8019f000009a9088000410000000000890435000000000900003100000000084900190000000204000367000000000224034f000000000202043b0000099c0a000041000000000b82004b000000000b000019000000000b0a80190000099c088001970000099c0c200197000000000d8c004b000000000a00801900000000088c013f0000099c0880009c00000000080b001900000000080a6019000000000880004c000004950000c13d0000000d080000290000000002820019000000000424034f000000000804043b0000099d0480009c000004950000213d000000000489004900000020092000390000099c02000041000000000a49004b000000000a000019000000000a0220190000099c044001970000099c0b900197000000000c4b004b000000000200801900000000044b013f0000099c0440009c00000000020ac019000000000220004c000004950000c13d000000400200043d0000002004200039000009ac0a0000410000000000a40435000000210a200039000000000b070433000000000cb0004c000012320000613d000000000c000019000000000dac0019000000200cc00039000000000e7c0019000000000e0e04330000000000ed0435000000000dbc004b0000122b0000413d0000000007ab00190000000000070435000000000a030433000000000ba0004c0000123f0000613d000000000b000019000000000c7b0019000000200bb00039000000000d3b0019000000000d0d04330000000000dc0435000000000cab004b000012380000413d00000000037a001900000000000304350000000007060433000000000a70004c0000124c0000613d000000000a000019000000000b3a0019000000200aa00039000000000c6a0019000000000c0c04330000000000cb0435000000000b7a004b000012450000413d00000000033700190000001f0680018f0000000000030435000000020790036700000005098002720000125b0000613d000000000a000019000000050ba00210000000000cb30019000000000bb7034f000000000b0b043b0000000000bc0435000000010aa00039000000000b9a004b000012530000413d000000000a60004c0000126a0000613d0000000509900210000000000797034f00000000099300190000000306600210000000000a090433000000000a6a01cf000000000a6a022f000000000707043b0000010006600089000000000767022f00000000066701cf0000000006a6019f0000000000690435000000000383001900000000000304350000000006050433000000000760004c000012770000613d000000000700001900000000083700190000002007700039000000000957001900000000090904330000000000980435000000000867004b000012700000413d000000000336001900000000000304350000000003230049000000200530008a00000000005204350000001f03300039000000000313016f0000000001230019000000000331004b000000000300001900000001030040390000099d0510009c000000fa0000213d0000000103300190000000fa0000c13d000000400010043f0000099801000041000009980340009c0000000003010019000000000304401900000040033002100000000002020433000009980420009c00000000020180190000006002200210000000000232019f0000000003000414000009980430009c0000000001034019000000c001100210000000000121019f000009ac011001c70000801002000039265c26570000040f00000001022001900000000c0b00002900000e350000c13d000004950000013d000000400200043d000b00000002001d000009a30220009c000000fa0000213d0000000b030000290000004002300039000000400020043f0000000102000039000000000223043600000000030000310000000203300367000000000400001900000005054002100000000006520019000000000553034f000000000505043b0000000000560435000000010440003a000000000500001900000001050060390000000105500190000012a90000c13d0000000b030000290000000003030433000000000330004c000001720000613d000000f8031002100000099c04000041000000000110004c000000000103001900000000010460190000000003020433000009a403300197000000000113019f0000000000120435000000a401b000390000000201100367000000000201043b000000800120008c000013470000413d0000008001200270000009a50320009c000000000102a019000009a50320009c0000000003000019000000100300203900000008043001bf0000099d0510009c000000000304201900000040041002700000099d0510009c000000000104201900000004043001bf000009980510009c00000000030420190000002004100270000009980510009c000000000104201900000002043001bf0000ffff0510008c000000000304201900000010041002700000000001042019000000ff0110008c000000000100001900000001010020390000000003130019000000200100008a0000004104300039000000000414016f000000400100043d0000000004410019000000000514004b000000000500001900000001050040390000099d0640009c000000fa0000213d0000000105500190000000fa0000c13d000000400040043f0000000204300039000000000441043600000021053000390000000505500272000012fd0000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b000012f50000413d000000000500004c000012ff0000613d0000000005010433000000000550004c000001720000613d0000000005040433000009a405500197000000f806300210000000000556019f000009a60550004100000000005404350000000303300210000000f80330008900000000023201cf000000ff0330008c000000000200201900000021031000390000000000230435000013670000013d000000010110008c0000131f0000c13d0000000d01000029265c18fd0000040f000000400200043d00000020032000390000000c04000029000000000043043500000000001204350000099801000041000009980320009c00000000010240190000004001100210000009c1011001c70000265d0001042e000000400200043d000d00000002001d0000099f0100004100000000001204350000000401200039265c18f30000040f0000000d0400002900000000014100490000099802000041000009980310009c0000000001028019000009980340009c000000000204401900000040022002100000006001100210000000000121019f0000265e000104300000000b01000029000000c001100210000009ae01100197000009ad011001c70000ffe902000039265c26570000040f00000000020100190000006002200270000109980020019d0000000d030000290000000b020000290000000002230019000000000332004b0000000003000019000000010300403900030000000103550000000101300190000003380000c13d0000000001000031000000000321004b000003380000413d000000000121004900000e770000013d000000400100043d000009a30310009c000000fa0000213d0000004003100039000000400030043f0000000103000039000000000331043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a000000000600001900000001060060390000000106600190000013510000c13d0000000004010433000000000440004c000001720000613d000000f8042002100000099c05000041000000000220004c000000000204001900000000020560190000000004030433000009a404400197000000000224019f00000000002304350000006402b000390000000202200367000000000302043b000000800230008c000013d20000413d0000008002300270000009a50430009c000000000203a019000009a50430009c0000000004000019000000100400203900000008054001bf0000099d0620009c000000000405201900000040052002700000099d0620009c000000000205201900000004054001bf000009980620009c00000000040520190000002005200270000009980620009c000000000205201900000002054001bf0000ffff0620008c000000000405201900000010052002700000000002052019000000ff0220008c000000000200001900000001020020390000000004240019000000200200008a0000004105400039000000000525016f000000400200043d0000000005520019000000000625004b000000000600001900000001060040390000099d0750009c000000fa0000213d0000000106600190000000fa0000c13d000000400050043f0000000205400039000000000552043600000021064000390000000506600272000013a40000613d0000000007000031000000020770036700000000080000190000000509800210000000000a950019000000000997034f000000000909043b00000000009a04350000000108800039000000000968004b0000139c0000413d000000000600004c000013a60000613d0000000006020433000000000660004c000001720000613d0000000006050433000009a406600197000000f807400210000000000667019f000009a60660004100000000006504350000000304400210000000f80440008900000000034301cf000000ff0440008c000000000300201900000021042000390000000000340435000013f20000013d0000001f0430018f0000000502300272000013c20000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000013bb0000413d000000000540004c000013d00000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f000000000012043500000060013002100000265e00010430000000400200043d000009a30420009c000000fa0000213d0000004004200039000000400040043f0000000104000039000000000442043600000000050000310000000205500367000000000600001900000005076002100000000008740019000000000775034f000000000707043b0000000000780435000000010660003a000000000700001900000001070060390000000107700190000013dc0000c13d0000000005020433000000000550004c000001720000613d000000f8053002100000099c06000041000000000330004c000000000305001900000000030660190000000005040433000009a405500197000000000335019f0000000000340435000000400300043d000a00000003001d00000020033000390000000004010433000000000540004c000014000000613d000000000500001900000000063500190000002005500039000000000715001900000000070704330000000000760435000000000645004b000013f90000413d000000000134001900000000000104350000000003020433000000000430004c0000140d0000613d000000000400001900000000051400190000002004400039000000000624001900000000060604330000000000650435000000000534004b000014060000413d000000000113001900000000000104350000000a030000290000000001310049000000200210008a00000000002304350000001f01100039000000200200008a000800000002001d000000000121016f0000000002310019000000000112004b00000000010000190000000101004039000900000002001d0000099d0220009c000000fa0000213d0000000101100190000000fa0000c13d0000000901000029000000400010043f000009a30110009c000000fa0000213d00000000040b001900000044014000390000000201100367000000000101043b00000009050000290000004002500039000000400020043f0000002002500039000009a70300004100000000003204350000001502000039000000000025043500000021025000390000006001100210000000000012043500000124014000390000000201100367000000000101043b000000800210008c000014870000413d0000008002100270000009a50310009c000000000201a019000009a50310009c0000000003000019000000100300203900000008043001bf0000099d0520009c000000000304201900000040042002700000099d0520009c000000000204201900000004043001bf000009980520009c00000000030420190000002004200270000009980520009c000000000204201900000002043001bf0000ffff0520008c000000000304201900000010042002700000000002042019000000ff0220008c00000000020000190000000102002039000000000223001900000041032000390000000804000029000000000343016f000000400400043d0000000003340019000700000004001d000000000443004b000000000400001900000001040040390000099d0530009c000000fa0000213d0000000104400190000000fa0000c13d000000400030043f00000002032000390000000704000029000000000334043600000021042000390000000504400272000014720000613d00000000050000310000000205500367000000000600001900000005076002100000000008730019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b0000146a0000413d000000000400004c000014740000613d00000007040000290000000004040433000000000440004c000001720000613d0000000004030433000009a404400197000000f805200210000000000445019f000009a60440004100000000004304350000000302200210000000f80220008900000000012101cf000000ff0220008c0000000001002019000000070200002900000021022000390000000000120435000014aa0000013d000000400200043d000700000002001d000009a30220009c000000fa0000213d00000007030000290000004002300039000000400020043f0000000102000039000000000223043600000000030000310000000203300367000000000400001900000005054002100000000006520019000000000553034f000000000505043b0000000000560435000000010440003a000000000500001900000001050060390000000105500190000014930000c13d00000007030000290000000003030433000000000330004c000001720000613d000000f8031002100000099c04000041000000000110004c000000000103001900000000010460190000000003020433000009a403300197000000000113019f0000000000120435000000230100008a00000000020b00190000000004210049000001c4012000390000000202000367000200000001001d000000000112034f000000000101043b0000000003000031000300000004001d00000000044300190000099c05000041000000000641004b000000000600001900000000060580190000099c044001970000099c07100197000000000847004b0000000005008019000000000447013f0000099c0440009c00000000040600190000000004056019000000000440004c000004950000c13d0000000d040000290000000004410019000000000142034f000000000101043b0000099d0510009c000004950000213d000000000513004900000020034000390000099c04000041000000000653004b000000000600001900000000060420190000099c055001970000099c07300197000000000857004b0000000004008019000000000557013f0000099c0550009c000000000406c019000000000440004c000004950000c13d000000010410008c000014f90000c13d000000000132034f000000000101043b000000010200008a0000099c03000041000000000221004b000000000200001900000000020320190000099c011001970000099c0410009c00000000030080190000099c011001670000099c0110009c000000000102001900000000010360190000006002000039000600000002001d000000000110004c000015520000c13d000000400100043d000600000001001d000009a30110009c000000fa0000213d00000006030000290000004001300039000000400010043f0000002001300039000009a602000041000000000021043500000001010000390000000000130435000015520000013d000000380210008c000015320000413d0000002002100270000009980310009c00000000030100190000000003022019000009980210009c0000000002000019000000040200203900000002042001bf0000ffff0530008c000000000204201900000010043002700000000003042019000000ff0330008c00000000030000190000000103002039000000400400043d000600000004001d000009a30440009c000000fa0000213d000000000232019f00000006040000290000004003400039000000400030043f0000000203200039000000000334043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a000000000600001900000001060060390000000106600190000015170000c13d00000006040000290000000004040433000000000440004c000001720000613d0000000004030433000009a404400197000000f805200210000000000445019f000009a8044001c700000000004304350000000302200210000000f80220008900000000012101cf000000060200002900000021022000390000000000120435000015520000013d000000400200043d000600000002001d000009a30220009c000000fa0000213d00000006030000290000004002300039000000400020043f0000000102000039000000000223043600000000030000310000000203300367000000000400001900000005054002100000000006520019000000000553034f000000000505043b0000000000560435000000010440003a0000000005000019000000010500603900000001055001900000153e0000c13d00000006030000290000000003030433000000000330004c000001720000613d000000f8011002100000000003020433000009a403300197000000000113019f0000099c01100167000000000012043500000000030000310000000301000029000000000513001900000000010b0019000001e4011000390000000202000367000000000412034f000000000404043b0000099c06000041000000000754004b000000000700001900000000070680190000099c055001970000099c08400197000000000958004b0000000006008019000000000558013f0000099c0550009c00000000050700190000000005066019000000000550004c000004950000c13d0000000d050000290000000004540019000000000542034f000000000505043b0000099d0650009c000004950000213d000000200650008c000004950000413d000000000553004900000020034000390000099c04000041000000000653004b000000000600001900000000060420190000099c055001970000099c07300197000000000857004b0000000004008019000000000557013f0000099c0550009c000000000406c019000000000440004c000004950000c13d000000000232034f000000000202043b000000800320008c000015d20000413d0000008003200270000009a50420009c000000000302a019000009a50420009c0000000004000019000000100400203900000008054001bf0000099d0630009c000000000405201900000040053002700000099d0630009c000000000305201900000004054001bf000009980630009c00000000040520190000002005300270000009980630009c000000000305201900000002054001bf0000ffff0630008c000000000405201900000010053002700000000003052019000000ff0330008c00000000030000190000000103002039000000000334001900000041043000390000000805000029000000000454016f000000400500043d0000000004450019000500000005001d000000000554004b000000000500001900000001050040390000099d0640009c000000fa0000213d0000000105500190000000fa0000c13d000000400040043f00000002043000390000000505000029000000000445043600000021053000390000000505500272000015bd0000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b000015b50000413d000000000500004c000015bf0000613d00000005050000290000000005050433000000000550004c000001720000613d0000000005040433000009a405500197000000f806300210000000000556019f000009a60550004100000000005404350000000303300210000000f80330008900000000023201cf000000ff0330008c0000000002002019000000050300002900000021033000390000000000230435000015f50000013d000000400300043d000500000003001d000009a30330009c000000fa0000213d00000005040000290000004003400039000000400030043f0000000103000039000000000334043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a000000000600001900000001060060390000000106600190000015de0000c13d00000005040000290000000004040433000000000440004c000001720000613d000000f8042002100000099c05000041000000000220004c000000000204001900000000020560190000000004030433000009a404400197000000000224019f00000000002304350000000003000031000000030200002900000000052300190000000202000367000000000412034f000000000404043b0000099c06000041000000000754004b000000000700001900000000070680190000099c055001970000099c08400197000000000958004b0000000006008019000000000558013f0000099c0550009c00000000050700190000000005066019000000000550004c000004950000c13d0000000d050000290000000004540019000000000542034f000000000505043b0000099d0650009c000004950000213d000000400650008c000004950000413d000000000353004900000020054000390000099c06000041000000000735004b000000000700001900000000070620190000099c033001970000099c05500197000000000835004b0000000006008019000000000335013f0000099c0330009c00000000030700190000000003066019000000000330004c000004950000c13d0000004003400039000000000232034f000000000202043b000000800320008c000016750000413d0000008003200270000009a50420009c000000000302a019000009a50420009c0000000004000019000000100400203900000008054001bf0000099d0630009c000000000405201900000040053002700000099d0630009c000000000305201900000004054001bf000009980630009c00000000040520190000002005300270000009980630009c000000000305201900000002054001bf0000ffff0630008c000000000405201900000010053002700000000003052019000000ff0330008c00000000030000190000000103002039000000000334001900000041043000390000000805000029000000000454016f000000400500043d0000000004450019000400000005001d000000000554004b000000000500001900000001050040390000099d0640009c000000fa0000213d0000000105500190000000fa0000c13d000000400040043f00000002043000390000000405000029000000000445043600000021053000390000000505500272000016600000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b000016580000413d000000000500004c000016620000613d00000004050000290000000005050433000000000550004c000001720000613d0000000005040433000009a405500197000000f806300210000000000556019f000009a60550004100000000005404350000000303300210000000f80330008900000000023201cf000000ff0330008c0000000002002019000000040300002900000021033000390000000000230435000016980000013d000000400300043d000400000003001d000009a30330009c000000fa0000213d00000004040000290000004003400039000000400030043f0000000103000039000000000334043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a000000000600001900000001060060390000000106600190000016810000c13d00000004040000290000000004040433000000000440004c000001720000613d000000f8042002100000099c05000041000000000220004c000000000204001900000000020560190000000004030433000009a404400197000000000224019f00000000002304350000000003000031000000030200002900000000042300190000000202000367000000000112034f000000000101043b0000099c05000041000000000641004b000000000600001900000000060580190000099c044001970000099c07100197000000000847004b0000000005008019000000000447013f0000099c0440009c00000000040600190000000004056019000000000440004c000004950000c13d0000000d040000290000000001410019000000000412034f000000000404043b0000099d0540009c000004950000213d000000000343004900000020051000390000099c06000041000000000735004b000000000700001900000000070620190000099c033001970000099c05500197000000000835004b0000000006008019000000000335013f0000099c0330009c00000000030700190000000003066019000000000330004c000004950000c13d000000410340008c000001720000413d0000006001100039000000000112034f000000000101043b000000f801100270000100000001001d0000001b0110008a000000020110008c0000173a0000813d0000014401b00039000000000112034f000000000101043b000000000110004c0000174c0000613d000009a101000041000000000010043900000998010000410000000002000414000009980320009c0000000001024019000000c001100210000009a2011001c70000800b02000039265c26570000040f0000000102200190000004950000613d000000000201043b0000000101200210000000000320004c000016e70000613d000000090300008a000000000331004b000003380000213d00000000322100d9000000020220008c000003380000c13d000000010300002900000000011300190000000802100039000000000132004b000003380000413d000000800120008c000100000002001d0000174c0000413d0000008001200270000009a50320009c000000000102a019000009a50320009c0000000003000019000000100300203900000008043001bf0000099d0510009c000000000304201900000040041002700000099d0510009c000000000104201900000004043001bf000009980510009c00000000030420190000002004100270000009980510009c000000000104201900000002043001bf0000ffff0510008c000000000304201900000010041002700000000001042019000000ff0110008c00000000010000190000000101002039000000000313001900000041013000390000000804000029000000000441016f000000400100043d0000000004410019000000000514004b000000000500001900000001050040390000099d0640009c000000fa0000213d0000000105500190000000fa0000c13d000000400040043f0000000204300039000000000441043600000021053000390000000505500272000017270000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b0000171f0000413d000000000500004c000017290000613d0000000005010433000000000550004c000001720000613d0000000005040433000009a405500197000000f806300210000000000556019f000009a60550004100000000005404350000000303300210000000f80330008900000000023201cf000000ff0330008c0000000002002019000000210310003900000000002304350000176c0000013d000000400100043d0000004402100039000009bc03000041000000000032043500000024021000390000000f0300003900000000003204350000099f0200004100000000002104350000000402100039000000200300003900000000003204350000099802000041000009980310009c00000000010280190000004001100210000009a0011001c70000265e00010430000000400100043d000009a30210009c000000fa0000213d0000004002100039000000400020043f0000000102000039000000000221043600000000030000310000000203300367000000000400001900000005054002100000000006520019000000000553034f000000000505043b0000000000560435000000010440003a000000000500001900000001050060390000000105500190000017560000c13d0000000003010433000000000330004c000001720000613d0000000105000029000000f8035002100000099c04000041000000000550004c00000000030460190000000004020433000009a404400197000000000334019f000000000032043500000000020000310000000303000029000000000332001900000002080003670000000204000029000000000448034f000000000904043b0000099c04000041000000000539004b000000000500001900000000050480190000099c033001970000099c06900197000000000736004b0000000004008019000000000336013f0000099c0330009c00000000030500190000000003046019000000000330004c000004950000c13d0000000b0300002900000000030304330000000a0400002900000000040404330000000905000029000000000505043300000007060000290000000006060433000000060700002900000000070704330000000d0a0000290000000009a90019000000000898034f000000000808043b0000099d0a80009c000004950000213d000000000282004900000020099000390000099c0a000041000000000b29004b000000000b000019000000000b0a20190000099c022001970000099c09900197000000000c29004b000000000a008019000000000229013f0000099c0220009c00000000020b001900000000020a6019000000000220004c000004950000c13d00000000023400190000000002520019000000000262001900000000027200190000000002820019000000050300002900000000030304330000000002320019000000040300002900000000030304330000000002320019000000000301043300000000023200190000099d02200197000000380320008c000017e40000413d0000002003200270000009980420009c00000000040200190000000004032019000009980320009c0000000003000019000000040300203900000002053001bf0000ffff0640008c000000000305201900000010054002700000000004052019000000ff0440008c00000000040000190000000104002039000000400500043d000009a30650009c000000fa0000213d000000000343019f0000004004500039000000400040043f0000000204300039000000000445043600000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b0000000000890435000000010770003a000000000800001900000001080060390000000108800190000017cb0000c13d0000000006050433000000000660004c000001720000613d0000000006040433000009a406600197000000f807300210000000000667019f000009aa066001c700000000006404350000000303300210000000f80330008900000000023201cf00000021035000390000000000230435000018010000013d000000400500043d000009a30350009c000000fa0000213d0000004003500039000000400030043f0000000103000039000000000335043600000000040000310000000204400367000000000600001900000005076002100000000008730019000000000774034f000000000707043b0000000000780435000000010660003a000000000700001900000001070060390000000107700190000017ee0000c13d0000000004050433000000000440004c000001720000613d000000f8022002100000000004030433000009a404400197000000000242019f000009a902200041000000000023043500000000020000310000000303000029000000000632001900000002030003670000000204000029000000000443034f000000000404043b0000099c07000041000000000864004b000000000800001900000000080780190000099c066001970000099c09400197000000000a69004b0000000007008019000000000669013f0000099c0660009c00000000060800190000000006076019000000000660004c000004950000c13d0000000d060000290000000006640019000000000363034f000000000403043b0000099d0340009c000004950000213d000000000242004900000020066000390000099c03000041000000000726004b000000000700001900000000070320190000099c022001970000099c08600197000000000928004b0000000003008019000000000228013f0000099c0220009c00000000020700190000000002036019000000000220004c000004950000c13d000000400200043d00000020032000390000000007050433000000000870004c000018390000613d000000000800001900000000093800190000002008800039000000000a580019000000000a0a04330000000000a90435000000000978004b000018320000413d000000000537001900000000000504350000000b070000290000000007070433000000000870004c000018480000613d0000000008000019000000000958001900000020088000390000000b0a000029000000000aa80019000000000a0a04330000000000a90435000000000978004b000018400000413d000000000557001900000000000504350000000a070000290000000007070433000000000870004c000018570000613d0000000008000019000000000958001900000020088000390000000a0a000029000000000aa80019000000000a0a04330000000000a90435000000000978004b0000184f0000413d0000000005570019000000000005043500000009070000290000000007070433000000000870004c000018660000613d000000000800001900000000095800190000002008800039000000090a000029000000000aa80019000000000a0a04330000000000a90435000000000978004b0000185e0000413d0000000005570019000000000005043500000007070000290000000007070433000000000870004c000018750000613d000000000800001900000000095800190000002008800039000000070a000029000000000aa80019000000000a0a04330000000000a90435000000000978004b0000186d0000413d0000000005570019000000000005043500000006070000290000000007070433000000000870004c000018840000613d000000000800001900000000095800190000002008800039000000060a000029000000000aa80019000000000a0a04330000000000a90435000000000978004b0000187c0000413d00000000055700190000001f0740018f000000000005043500000002066003670000000508400272000018930000613d0000000009000019000000050a900210000000000ba50019000000000aa6034f000000000a0a043b0000000000ab04350000000109900039000000000a89004b0000188b0000413d000000000970004c000018a20000613d0000000508800210000000000686034f00000000088500190000000307700210000000000908043300000000097901cf000000000979022f000000000606043b0000010007700089000000000676022f00000000067601cf000000000696019f0000000000680435000000000445001900000000000404350000000005010433000000000650004c000018af0000613d000000000600001900000000074600190000002006600039000000000816001900000000080804330000000000870435000000000756004b000018a80000413d0000000001450019000000000001043500000005040000290000000004040433000000000540004c000018be0000613d0000000005000019000000000615001900000020055000390000000507000029000000000775001900000000070704330000000000760435000000000645004b000018b60000413d0000000001140019000000000001043500000004040000290000000004040433000000000540004c000018cd0000613d0000000005000019000000000615001900000020055000390000000407000029000000000775001900000000070704330000000000760435000000000645004b000018c50000413d000000000114001900000000000104350000000001210049000000200410008a00000000004204350000001f011000390000000804000029000000000441016f0000000001240019000000000441004b000000000400001900000001040040390000099d0510009c000000fa0000213d0000000104400190000000fa0000c13d000000400010043f0000099801000041000009980430009c000000000301801900000040033002100000000002020433000009980420009c00000000020180190000006002200210000000000232019f0000000003000414000009980430009c0000000001034019000000c001100210000000000121019f000009ac011001c70000801002000039265c26570000040f0000000102200190000004950000613d000000000101043b000013140000013d0000004002100039000009c3030000410000000000320435000000200210003900000013030000390000000000320435000000200200003900000000002104350000006001100039000000000001042d0006000000000002000400000001001d000009a101000041000000000010043900000998010000410000000002000414000009980320009c0000000001024019000000c001100210000009a2011001c70000800b02000039265c26570000040f000000010220019000001f4b0000613d000000000201043b000000800120008c000019590000413d0000008001200270000009a50320009c000000000102a019000009a50320009c0000000003000019000000100300203900000008043001bf0000099d0510009c000000000304201900000040041002700000099d0510009c000000000104201900000004043001bf000009980510009c00000000030420190000002004100270000009980510009c000000000104201900000002043001bf0000ffff0510008c000000000304201900000010041002700000000001042019000000ff0110008c000000000100001900000001010020390000000003130019000000200100008a0000004104300039000000000414016f000000400100043d0000000004410019000000000514004b000000000500001900000001050040390000099d0640009c00001f4d0000213d000000010550019000001f4d0000c13d000000400040043f0000000204300039000000000441043600000021053000390000000505500272000019460000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b0000193e0000413d000000000500004c000019480000613d0000000005010433000000000550004c00001f530000613d0000000005040433000009a405500197000000f806300210000000000556019f000009a60550004100000000005404350000000303300210000000f80330008900000000023201cf000000ff0330008c000000000200201900000021031000390000000000230435000019790000013d000000400100043d000009a30310009c00001f4d0000213d0000004003100039000000400030043f0000000103000039000000000331043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a000000000600001900000001060060390000000106600190000019630000c13d0000000004010433000000000440004c00001f530000613d000000f8042002100000099c05000041000000000220004c000000000204001900000000020560190000000004030433000009a404400197000000000224019f0000000000230435000000040200002900000100022000390000000202200367000000000202043b000000800320008c000019ca0000413d0000008003200270000009a50420009c000000000302a019000009a50420009c0000000004000019000000100400203900000008054001bf0000099d0630009c000000000405201900000040053002700000099d0630009c000000000305201900000004054001bf000009980630009c00000000040520190000002005300270000009980630009c000000000305201900000002054001bf0000ffff0630008c000000000405201900000010053002700000000003052019000000ff0330008c000000000300001900000001030020390000000004340019000000200300008a0000004105400039000000000535016f000000400300043d0000000005530019000000000635004b000000000600001900000001060040390000099d0750009c00001f4d0000213d000000010660019000001f4d0000c13d000000400050043f0000000205400039000000000553043600000021064000390000000506600272000019b70000613d0000000007000031000000020770036700000000080000190000000509800210000000000a950019000000000997034f000000000909043b00000000009a04350000000108800039000000000968004b000019af0000413d000000000600004c000019b90000613d0000000006030433000000000660004c00001f530000613d0000000006050433000009a406600197000000f807400210000000000667019f000009a60660004100000000006504350000000304400210000000f80440008900000000024201cf000000ff0440008c000000000200201900000021043000390000000000240435000019ea0000013d000000400300043d000009a30430009c00001f4d0000213d0000004004300039000000400040043f0000000104000039000000000443043600000000050000310000000205500367000000000600001900000005076002100000000008740019000000000775034f000000000707043b0000000000780435000000010660003a000000000700001900000001070060390000000107700190000019d40000c13d0000000005030433000000000550004c00001f530000613d000000f8052002100000099c06000041000000000220004c000000000205001900000000020660190000000005040433000009a405500197000000000225019f00000000002404350000000402000029000000a0022000390000000202200367000000000202043b000000800420008c00001a3b0000413d0000008004200270000009a50520009c000000000402a019000009a50520009c0000000005000019000000100500203900000008065001bf0000099d0740009c000000000506201900000040064002700000099d0740009c000000000406201900000004065001bf000009980740009c00000000050620190000002006400270000009980740009c000000000406201900000002065001bf0000ffff0740008c000000000506201900000010064002700000000004062019000000ff0440008c000000000400001900000001040020390000000005450019000000200400008a0000004106500039000000000646016f000000400400043d0000000006640019000000000746004b000000000700001900000001070040390000099d0860009c00001f4d0000213d000000010770019000001f4d0000c13d000000400060043f000000020650003900000000066404360000002107500039000000050770027200001a280000613d000000000800003100000002088003670000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b00001a200000413d000000000700004c00001a2a0000613d0000000007040433000000000770004c00001f530000613d0000000007060433000009a407700197000000f808500210000000000778019f000009a60770004100000000007604350000000305500210000000f80550008900000000025201cf000000ff0550008c00000000020020190000002105400039000000000025043500001a5b0000013d000000400400043d000009a30540009c00001f4d0000213d0000004005400039000000400050043f0000000105000039000000000554043600000000060000310000000206600367000000000700001900000005087002100000000009850019000000000886034f000000000808043b0000000000890435000000010770003a00000000080000190000000108006039000000010880019000001a450000c13d0000000006040433000000000660004c00001f530000613d000000f8062002100000099c07000041000000000220004c000000000206001900000000020760190000000006050433000009a406600197000000000226019f0000000000250435000000040200002900000060022000390000000202200367000000000202043b000000800520008c00001aac0000413d0000008005200270000009a50620009c000000000502a019000009a50620009c0000000006000019000000100600203900000008076001bf0000099d0850009c000000000607201900000040075002700000099d0850009c000000000507201900000004076001bf000009980850009c00000000060720190000002007500270000009980850009c000000000507201900000002076001bf0000ffff0850008c000000000607201900000010075002700000000005072019000000ff0550008c000000000500001900000001050020390000000006560019000000200500008a0000004107600039000000000757016f000000400500043d0000000007750019000000000857004b000000000800001900000001080040390000099d0970009c00001f4d0000213d000000010880019000001f4d0000c13d000000400070043f000000020760003900000000077504360000002108600039000000050880027200001a990000613d00000000090000310000000209900367000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa00039000000000b8a004b00001a910000413d000000000800004c00001a9b0000613d0000000008050433000000000880004c00001f530000613d0000000008070433000009a408800197000000f809600210000000000889019f000009a60880004100000000008704350000000306600210000000f80660008900000000026201cf000000ff0660008c00000000020020190000002106500039000000000026043500001acc0000013d000000400500043d000009a30650009c00001f4d0000213d0000004006500039000000400060043f000000010600003900000000066504360000000007000031000000020770036700000000080000190000000509800210000000000a960019000000000997034f000000000909043b00000000009a0435000000010880003a00000000090000190000000109006039000000010990019000001ab60000c13d0000000007050433000000000770004c00001f530000613d000000f8072002100000099c08000041000000000220004c000000000207001900000000020860190000000007060433000009a407700197000000000227019f0000000000260435000000400600043d000009a30260009c00001f4d0000213d000000040900002900000040029000390000000202200367000000000202043b0000004007600039000000400070043f0000002007600039000009a70800004100000000008704350000001507000039000000000076043500000021076000390000006002200210000000000027043500000120029000390000000202200367000000000202043b000000800720008c00001b2d0000413d0000008007200270000009a50820009c000000000702a019000009a50820009c0000000008000019000000100800203900000008098001bf0000099d0a70009c000000000809201900000040097002700000099d0a70009c000000000709201900000004098001bf000009980a70009c00000000080920190000002009700270000009980a70009c000000000709201900000002098001bf0000ffff0a70008c000000000809201900000010097002700000000007092019000000ff0770008c000000000700001900000001070020390000000008780019000000200700008a0000004109800039000000000979016f000000400700043d0000000009970019000000000a79004b000000000a000019000000010a0040390000099d0b90009c00001f4d0000213d000000010aa0019000001f4d0000c13d000000400090043f00000002098000390000000009970436000000210a800039000000050aa0027200001b1a0000613d000000000b000031000000020bb00367000000000c000019000000050dc00210000000000ed90019000000000ddb034f000000000d0d043b0000000000de0435000000010cc00039000000000dac004b00001b120000413d000000000a00004c00001b1c0000613d000000000a070433000000000aa0004c00001f530000613d000000000a090433000009a40aa00197000000f80b800210000000000aab019f000009a60aa000410000000000a904350000000308800210000000f80880008900000000028201cf000000ff0880008c00000000020020190000002108700039000000000028043500001b4d0000013d000000400700043d000009a30870009c00001f4d0000213d0000004008700039000000400080043f0000000108000039000000000887043600000000090000310000000209900367000000000a000019000000050ba00210000000000cb80019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa0003a000000000b000019000000010b006039000000010bb0019000001b370000c13d0000000009070433000000000990004c00001f530000613d000000f8092002100000099c0a000041000000000220004c000000000209001900000000020a60190000000009080433000009a409900197000000000229019f0000000000280435000000400200043d00000020082000390000000009010433000000000a90004c00001b5a0000613d000000000a000019000000000b8a0019000000200aa00039000000000c1a0019000000000c0c04330000000000cb0435000000000b9a004b00001b530000413d000000000189001900000000000104350000000008030433000000000980004c00001b670000613d0000000009000019000000000a1900190000002009900039000000000b390019000000000b0b04330000000000ba0435000000000a89004b00001b600000413d000000000118001900000000000104350000000003040433000000000830004c00001b740000613d000000000800001900000000091800190000002008800039000000000a480019000000000a0a04330000000000a90435000000000938004b00001b6d0000413d000000000113001900000000000104350000000003050433000000000430004c00001b810000613d000000000400001900000000081400190000002004400039000000000954001900000000090904330000000000980435000000000834004b00001b7a0000413d000000000113001900000000000104350000000003060433000000000430004c00001b8e0000613d000000000400001900000000051400190000002004400039000000000864001900000000080804330000000000850435000000000534004b00001b870000413d000000000113001900000000000104350000000003070433000000000430004c00001b9b0000613d000000000400001900000000051400190000002004400039000000000674001900000000060604330000000000650435000000000534004b00001b940000413d000000000113001900000000000104350000000001210049000000200310008a00000000003204350000001f01100039000000200300008a000200000003001d000000000131016f0000000005210019000000000115004b000000000100001900000001010040390000099d0350009c00001f4d0000213d000000010110019000001f4d0000c13d000000400050043f0000001f0100008a00000004030000290000000004310049000001c0013000390000000207000367000100000001001d000000000117034f000000000601043b000000000800003100000000014800190000099c09000041000000000a16004b000000000a000019000000000a0980190000099c011001970000099c0b600197000000000c1b004b000000000900801900000000011b013f0000099c0110009c00000000010a00190000000001096019000000000110004c00001f4b0000c13d00000004010000290000000001160019000000000617034f000000000606043b0000099d0960009c00001f4b0000213d000000000968004900000020081000390000099c01000041000000000a98004b000000000a000019000000000a0120190000099c099001970000099c0b800197000000000c9b004b000000000100801900000000099b013f0000099c0990009c00000000010ac019000000000110004c00001f4b0000c13d000000010160008c00001bf80000c13d000000000187034f000000000101043b000000010300008a0000099c06000041000000000331004b000000000300001900000000030620190000099c011001970000099c0710009c00000000060080190000099c011001670000099c0110009c000000000103001900000000010660190000006006000039000000000110004c00001c4a0000c13d000009a30150009c00001f4d0000213d0000004001500039000000400010043f0000002001500039000009a603000041000000000031043500000001010000390000000000150435000000000605001900001c4a0000013d000000380160008c00001c2d0000413d0000002001600270000009980360009c00000000030600190000000003012019000009980160009c0000000001000019000000040100203900000002071001bf0000ffff0830008c000000000107201900000010073002700000000003072019000000ff0330008c00000000070000190000000107002039000009a30350009c00001f4d0000213d000000000771019f0000004001500039000000400010043f0000000201700039000000000815043600000000010000310000000209100367000000000a0000190000000501a002100000000003180019000000000119034f000000000101043b0000000000130435000000010aa0003a00000000010000190000000101006039000000010110019000001c130000c13d0000000001050433000000000110004c00001f530000613d0000000001080433000009a401100197000000f803700210000000000113019f000009a8011001c700000000001804350000000301700210000000f80110008900000000011601cf00000021035000390000000000130435000000000605001900001c4a0000013d000009a30150009c00001f4d0000213d0000004001500039000000400010043f0000000101000039000000000715043600000000010000310000000208100367000000000900001900000005019002100000000003170019000000000118034f000000000101043b0000000000130435000000010990003a00000000010000190000000101006039000000010110019000001c360000c13d0000000001050433000000000110004c00001f530000613d000000f8016002100000000003070433000009a403300197000000000113019f0000099c0110016700000000001704350000000006050019000000400500043d000009a30150009c00001f4d0000213d0000004001500039000000400010043f0000000101000039000300000001001d000000000715043600000000010000310000000208100367000000000a0000190000000501a00210000000000b170019000000000118034f000000000101043b00000000001b0435000000010aa0003a00000000010000190000000101006039000000010110019000001c550000c13d0000000001050433000000000110004c00001f530000613d0000000001070433000009a401100197000009a9011001c70000000000170435000000000800003100000000014800190000000403000029000001e00a3000390000000207000367000000000ba7034f000000000b0b043b0000099c0c000041000000000d1b004b000000000d000019000000000d0c80190000099c011001970000099c0eb00197000000000f1e004b000000000c00801900000000011e013f0000099c0110009c00000000010d001900000000010c6019000000000110004c00001f4b0000c13d000000040100002900000000011b0019000000000b17034f000000000b0b043b0000099d0cb0009c00001f4b0000213d000000000cb8004900000020081000390000099c01000041000000000dc8004b000000000d000019000000000d0120190000099c0cc001970000099c0e800197000000000fce004b0000000001008019000000000cce013f0000099c0cc0009c00000000010dc019000000000110004c00001f4b0000c13d0000002001b0008c00001f4b0000413d000000000187034f000000000801043b000000800180008c00001ce20000413d0000008001800270000009a50780009c000000000108a019000009a50780009c00000000070000190000001007002039000000080b7001bf0000099d0c10009c00000000070b2019000000400b1002700000099d0c10009c00000000010b2019000000040b7001bf000009980c10009c00000000070b2019000000200b100270000009980c10009c00000000010b2019000000020b7001bf0000ffff0c10008c00000000070b2019000000100b10027000000000010b2019000000ff0110008c00000000010000190000000101002039000000000b1700190000004101b000390000000203000029000000000131016f000000400700043d0000000001170019000000000c71004b000000000c000019000000010c0040390000099d0d10009c00001f4d0000213d000000010cc0019000001f4d0000c13d000000400010043f0000000201b00039000000000c1704360000002101b00039000000050d10027200001cce0000613d0000000001000031000000020e100367000000000f0000190000000501f0021000000000031c001900000000011e034f000000000101043b0000000000130435000000010ff000390000000001df004b00001cc60000413d000000000100004c00001cd00000613d0000000001070433000000000110004c00001f530000613d00000000010c0433000009a401100197000000f803b00210000000000113019f000009a60110004100000000001c04350000000301b00210000000f80110008900000000031801cf000000ff0110008c000000000103001900000000010020190000002103700039000000000013043500001d010000013d000000400700043d000009a30170009c00001f4d0000213d0000004001700039000000400010043f0000000301000029000000000b1704360000000001000031000000020c100367000000000d0000190000000501d0021000000000031b001900000000011c034f000000000101043b0000000000130435000000010dd0003a00000000010000190000000101006039000000010110019000001cec0000c13d0000000001070433000000000110004c00001f530000613d000000f8018002100000099c03000041000000000880004c000000000103601900000000030b0433000009a403300197000000000113019f00000000001b0435000000000c00003100000000014c001900000002080003670000000003a8034f000000000b03043b0000099c03000041000000000d1b004b000000000d000019000000000d0380190000099c011001970000099c0eb00197000000000f1e004b000000000300801900000000011e013f0000099c0110009c00000000010d00190000000001036019000000000110004c00001f4b0000c13d0000000401000029000000000b1b00190000000001b8034f000000000d01043b0000099d01d0009c00001f4b0000213d0000000001dc00490000002003b000390000099c0c000041000000000e13004b000000000e000019000000000e0c20190000099c011001970000099c03300197000000000f13004b000000000c008019000000000113013f0000099c0110009c00000000010e001900000000010c6019000000000110004c00001f4b0000c13d0000004001d0008c00001f4b0000413d0000004001b00039000000000118034f000000000b01043b0000008001b0008c00001d7d0000413d0000008001b00270000009a503b0009c00000000010ba019000009a503b0009c0000000003000019000000100300203900000008083001bf0000099d0c10009c000000000308201900000040081002700000099d0c10009c000000000108201900000004083001bf000009980c10009c00000000030820190000002008100270000009980c10009c000000000108201900000002083001bf0000ffff0c10008c000000000308201900000010081002700000000001082019000000ff0110008c00000000010000190000000101002039000000000c1300190000004101c000390000000203000029000000000131016f000000400800043d0000000001180019000000000381004b000000000d000019000000010d0040390000099d0310009c00001f4d0000213d0000000103d0019000001f4d0000c13d000000400010043f0000000201c00039000000000d1804360000002101c00039000000050e10027200001d690000613d0000000001000031000000020f1003670000000001000019000000050310021000000000093d001900000000033f034f000000000303043b000000000039043500000001011000390000000003e1004b00001d610000413d000000000100004c00001d6b0000613d0000000001080433000000000110004c00001f530000613d00000000010d0433000009a401100197000000f803c00210000000000113019f000009a60110004100000000001d04350000000301c00210000000f80110008900000000031b01cf000000ff0110008c000000000103001900000000010020190000002103800039000000000013043500001d9c0000013d000000400800043d000009a30180009c00001f4d0000213d0000004001800039000000400010043f0000000301000029000000000c1804360000000001000031000000020d100367000000000e0000190000000501e0021000000000031c001900000000011d034f000000000101043b0000000000130435000000010ee0003a00000000010000190000000101006039000000010110019000001d870000c13d0000000001080433000000000110004c00001f530000613d000000f801b002100000099c030000410000000009b0004c000000000103601900000000030c0433000009a403300197000000000113019f00000000001c0435000000000c00003100000000014c0019000000020b0003670000000003ab034f000000000a03043b0000099c0300004100000000091a004b000000000900001900000000090380190000099c011001970000099c0da00197000000000e1d004b000000000300801900000000011d013f0000099c0110009c00000000010900190000000001036019000000000110004c00001f4b0000c13d0000000401000029000000000a1a00190000000001ab034f000000000d01043b0000099d01d0009c00001f4b0000213d0000000001dc00490000002003a000390000099c09000041000000000c13004b000000000c000019000000000c0920190000099c011001970000099c03300197000000000e13004b0000000009008019000000000113013f0000099c0110009c00000000010c00190000000001096019000000000110004c00001f4b0000c13d0000004101d0008c00001f530000413d0000006001a0003900000000011b034f000000000b000415000000060bb0008a000000200bb000c90000099c0c000041000000000101043b000000f8011002700000001b0310008c00001dd70000613d000000000b000415000000050bb0008a000000200bb000c9000009ab0c0000410000001c0110008c00001f590000c13d000000400a00043d000009a301a0009c00001f4d0000213d0000004001a00039000000400010043f0000000301000029000000000d1a04360000000001000031000000020e100367000000000f0000190000000501f0021000000000031d001900000000011e034f000000000101043b0000000000130435000000010ff0003a00000000010000190000000101006039000000010110019000001de10000c13d00000000010a0433000000000110004c00001f530000613d00000000010d0433000009a4011001970000000001c1019f00000000001d04350000002001b0011a00000000010a001f000000000b00003100000000014b0019000000020e000367000000010300002900000000033e034f000000000f03043b0000099c0300004100000000091f004b000000000900001900000000090380190000099c011001970000099c0cf00197000000000d1c004b000000000300801900000000011c013f0000099c0110009c00000000010900190000000001036019000000000110004c00001f4b0000c13d000000000c020433000000000d060433000000040100002900000000011f001900000000031e034f000000000e03043b0000099d03e0009c00001f4b0000213d0000000003eb004900000020011000390000099c09000041000000000b31004b000000000b000019000000000b0920190000099c033001970000099c01100197000000000f31004b0000000009008019000000000131013f0000099c0110009c00000000010b00190000000001096019000000000110004c00001f4b0000c13d0000000001cd00190000000001e1001900000000030504330000000001310019000000000307043300000000013100190000000003080433000000000131001900000000030a043300000000013100190000099d0c1001970000003801c0008c00001e600000413d0000002001c002700000099803c0009c00000000030c001900000000030120190000099801c0009c0000000001000019000000040100203900000002091001bf0000ffff0b30008c000000000109201900000010093002700000000003092019000000ff0330008c00000000090000190000000109002039000000400b00043d000009a303b0009c00001f4d0000213d000000000991019f0000004001b00039000000400010043f0000000201900039000000000d1b04360000000001000031000000020e100367000000000f0000190000000501f0021000000000031d001900000000011e034f000000000101043b0000000000130435000000010ff0003a00000000010000190000000101006039000000010110019000001e470000c13d00000000010b0433000000000110004c00001f530000613d00000000010d0433000009a401100197000000f803900210000000000113019f000009aa011001c700000000001d04350000000301900210000000f80110008900000000011c01cf0000002103b00039000000000013043500001e7d0000013d000000400b00043d000009a301b0009c00001f4d0000213d0000004001b00039000000400010043f000000030100002900000000091b04360000000001000031000000020d100367000000000e0000190000000501e00210000000000319001900000000011d034f000000000101043b0000000000130435000000010ee0003a00000000010000190000000101006039000000010110019000001e6a0000c13d00000000010b0433000000000110004c00001f530000613d000000f801c002100000000003090433000009a403300197000000000131019f000009a9011000410000000000190435000000000c00003100000000014c001900000002040003670000000103000029000000000334034f000000000303043b0000099c09000041000000000d13004b000000000d000019000000000d0980190000099c011001970000099c0e300197000000000f1e004b000000000900801900000000011e013f0000099c0110009c00000000010d00190000000001096019000000000110004c00001f4b0000c13d00000004010000290000000001130019000000000314034f000000000903043b0000099d0390009c00001f4b0000213d00000000039c0049000000200c1000390000099c0100004100000000043c004b000000000400001900000000040120190000099c033001970000099c0dc00197000000000e3d004b000000000100801900000000033d013f0000099c0330009c000000000104c019000000000110004c00001f4b0000c13d000000400300043d0000002004300039000009ab01000041000400000004001d0000000000140435000000210d300039000000000e0b04330000000001e0004c00001eb70000613d0000000001000019000000000fd1001900000020011000390000000004b10019000000000404043300000000004f04350000000004e1004b00001eb00000413d000000000bde001900000000000b0435000000000d0204330000000001d0004c00001ec40000613d00000000010000190000000004b100190000002001100039000000000e210019000000000e0e04330000000000e404350000000004d1004b00001ebd0000413d0000000002bd00190000000000020435000000000b0604330000000001b0004c00001ed10000613d000000000100001900000000042100190000002001100039000000000d610019000000000d0d04330000000000d404350000000004b1004b00001eca0000413d00000000022b00190000001f0690018f0000000000020435000000020bc00367000000050c90027200001ee00000613d00000000010000190000000504100210000000000d42001900000000044b034f000000000404043b00000000004d043500000001011000390000000004c1004b00001ed80000413d000000000160004c00001eef0000613d0000000501c0021000000000041b034f00000000011200190000000306600210000000000b010433000000000b6b01cf000000000b6b022f000000000404043b0000010006600089000000000464022f00000000046401cf0000000004b4019f0000000000410435000000000292001900000000000204350000000006050433000000000160004c00001efc0000613d000000000100001900000000042100190000002001100039000000000951001900000000090904330000000000940435000000000461004b00001ef50000413d0000000002260019000000000002043500000000050a0433000000000150004c00001f090000613d0000000001000019000000000421001900000020011000390000000006a1001900000000060604330000000000640435000000000451004b00001f020000413d000000000225001900000000000204350000000005070433000000000150004c00001f160000613d000000000100001900000000042100190000002001100039000000000671001900000000060604330000000000640435000000000451004b00001f0f0000413d000000000225001900000000000204350000000005080433000000000150004c00001f230000613d000000000100001900000000042100190000002001100039000000000681001900000000060604330000000000640435000000000451004b00001f1c0000413d000000000125001900000000000104350000000001310049000000200210008a00000000002304350000001f011000390000000202000029000000000221016f0000000001320019000000000221004b000000000200001900000001020040390000099d0410009c00001f4d0000213d000000010220019000001f4d0000c13d000000400010043f00000998010000410000000404000029000009980240009c0000000002010019000000000204401900000040022002100000000003030433000009980430009c00000000030180190000006003300210000000000223019f0000000003000414000009980430009c0000000001034019000000c001100210000000000121019f000009ac011001c70000801002000039265c26570000040f000000010220019000001f4b0000613d000000000101043b000000000001042d00000000010000190000265e00010430000009bd0100004100000000001004350000004101000039000000040010043f000009be010000410000265e00010430000009bd0100004100000000001004350000003201000039000000040010043f000009be010000410000265e00010430000000400100043d0000004402100039000009bc03000041000000000032043500000024021000390000000f0300003900000000003204350000099f0200004100000000002104350000000402100039000000200300003900000000003204350000099802000041000009980310009c00000000010280190000004001100210000009a0011001c70000265e000104300006000000000002000400000001001d000009a101000041000000000010043900000998010000410000000002000414000009980320009c0000000001024019000000c001100210000009a2011001c70000800b02000039265c26570000040f0000000102200190000026370000613d000000000201043b000000800120008c00001fc70000413d0000008001200270000009a50320009c000000000102a019000009a50320009c0000000003000019000000100300203900000008043001bf0000099d0510009c000000000304201900000040041002700000099d0510009c000000000104201900000004043001bf000009980510009c00000000030420190000002004100270000009980510009c000000000104201900000002043001bf0000ffff0510008c000000000304201900000010041002700000000001042019000000ff0110008c000000000100001900000001010020390000000003130019000000200100008a0000004104300039000000000414016f000000400100043d0000000004410019000000000514004b000000000500001900000001050040390000099d0640009c000026390000213d0000000105500190000026390000c13d000000400040043f000000020430003900000000044104360000002105300039000000050550027200001fb40000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b00001fac0000413d000000000500004c00001fb60000613d0000000005010433000000000550004c0000263f0000613d0000000005040433000009a405500197000000f806300210000000000556019f000009a60550004100000000005404350000000303300210000000f80330008900000000023201cf000000ff0330008c00000000020020190000002103100039000000000023043500001fe70000013d000000400100043d000009a30310009c000026390000213d0000004003100039000000400030043f0000000103000039000000000331043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a00000000060000190000000106006039000000010660019000001fd10000c13d0000000004010433000000000440004c0000263f0000613d000000f8042002100000099c05000041000000000220004c000000000204001900000000020560190000000004030433000009a404400197000000000224019f0000000000230435000000040200002900000100022000390000000202200367000000000202043b000000800320008c000020380000413d0000008003200270000009a50420009c000000000302a019000009a50420009c0000000004000019000000100400203900000008054001bf0000099d0630009c000000000405201900000040053002700000099d0630009c000000000305201900000004054001bf000009980630009c00000000040520190000002005300270000009980630009c000000000305201900000002054001bf0000ffff0630008c000000000405201900000010053002700000000003052019000000ff0330008c000000000300001900000001030020390000000004340019000000200300008a0000004105400039000000000535016f000000400300043d0000000005530019000000000635004b000000000600001900000001060040390000099d0750009c000026390000213d0000000106600190000026390000c13d000000400050043f0000000205400039000000000553043600000021064000390000000506600272000020250000613d0000000007000031000000020770036700000000080000190000000509800210000000000a950019000000000997034f000000000909043b00000000009a04350000000108800039000000000968004b0000201d0000413d000000000600004c000020270000613d0000000006030433000000000660004c0000263f0000613d0000000006050433000009a406600197000000f807400210000000000667019f000009a60660004100000000006504350000000304400210000000f80440008900000000024201cf000000ff0440008c000000000200201900000021043000390000000000240435000020580000013d000000400300043d000009a30430009c000026390000213d0000004004300039000000400040043f0000000104000039000000000443043600000000050000310000000205500367000000000600001900000005076002100000000008740019000000000775034f000000000707043b0000000000780435000000010660003a000000000700001900000001070060390000000107700190000020420000c13d0000000005030433000000000550004c0000263f0000613d000000f8052002100000099c06000041000000000220004c000000000205001900000000020660190000000005040433000009a405500197000000000225019f00000000002404350000000402000029000000c0022000390000000202200367000000000202043b000000800420008c000020a90000413d0000008004200270000009a50520009c000000000402a019000009a50520009c0000000005000019000000100500203900000008065001bf0000099d0740009c000000000506201900000040064002700000099d0740009c000000000406201900000004065001bf000009980740009c00000000050620190000002006400270000009980740009c000000000406201900000002065001bf0000ffff0740008c000000000506201900000010064002700000000004062019000000ff0440008c000000000400001900000001040020390000000005450019000000200400008a0000004106500039000000000646016f000000400400043d0000000006640019000000000746004b000000000700001900000001070040390000099d0860009c000026390000213d0000000107700190000026390000c13d000000400060043f0000000206500039000000000664043600000021075000390000000507700272000020960000613d000000000800003100000002088003670000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b0000208e0000413d000000000700004c000020980000613d0000000007040433000000000770004c0000263f0000613d0000000007060433000009a407700197000000f808500210000000000778019f000009a60770004100000000007604350000000305500210000000f80550008900000000025201cf000000ff0550008c000000000200201900000021054000390000000000250435000020c90000013d000000400400043d000009a30540009c000026390000213d0000004005400039000000400050043f0000000105000039000000000554043600000000060000310000000206600367000000000700001900000005087002100000000009850019000000000886034f000000000808043b0000000000890435000000010770003a000000000800001900000001080060390000000108800190000020b30000c13d0000000006040433000000000660004c0000263f0000613d000000f8062002100000099c07000041000000000220004c000000000206001900000000020760190000000006050433000009a406600197000000000226019f00000000002504350000000402000029000000a0022000390000000202200367000000000202043b000000800520008c0000211a0000413d0000008005200270000009a50620009c000000000502a019000009a50620009c0000000006000019000000100600203900000008076001bf0000099d0850009c000000000607201900000040075002700000099d0850009c000000000507201900000004076001bf000009980850009c00000000060720190000002007500270000009980850009c000000000507201900000002076001bf0000ffff0850008c000000000607201900000010075002700000000005072019000000ff0550008c000000000500001900000001050020390000000006560019000000200500008a0000004107600039000000000757016f000000400500043d0000000007750019000000000857004b000000000800001900000001080040390000099d0970009c000026390000213d0000000108800190000026390000c13d000000400070043f0000000207600039000000000775043600000021086000390000000508800272000021070000613d00000000090000310000000209900367000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa00039000000000b8a004b000020ff0000413d000000000800004c000021090000613d0000000008050433000000000880004c0000263f0000613d0000000008070433000009a408800197000000f809600210000000000889019f000009a60880004100000000008704350000000306600210000000f80660008900000000026201cf000000ff0660008c0000000002002019000000210650003900000000002604350000213a0000013d000000400500043d000009a30650009c000026390000213d0000004006500039000000400060043f000000010600003900000000066504360000000007000031000000020770036700000000080000190000000509800210000000000a960019000000000997034f000000000909043b00000000009a0435000000010880003a000000000900001900000001090060390000000109900190000021240000c13d0000000007050433000000000770004c0000263f0000613d000000f8072002100000099c08000041000000000220004c000000000207001900000000020860190000000007060433000009a407700197000000000227019f0000000000260435000000040200002900000060022000390000000202200367000000000202043b000000800620008c0000218b0000413d0000008006200270000009a50720009c000000000602a019000009a50720009c0000000007000019000000100700203900000008087001bf0000099d0960009c000000000708201900000040086002700000099d0960009c000000000608201900000004087001bf000009980960009c00000000070820190000002008600270000009980960009c000000000608201900000002087001bf0000ffff0960008c000000000708201900000010086002700000000006082019000000ff0660008c000000000600001900000001060020390000000007670019000000200600008a0000004108700039000000000868016f000000400600043d0000000008860019000000000968004b000000000900001900000001090040390000099d0a80009c000026390000213d0000000109900190000026390000c13d000000400080043f0000000208700039000000000886043600000021097000390000000509900272000021780000613d000000000a000031000000020aa00367000000000b000019000000050cb00210000000000dc80019000000000cca034f000000000c0c043b0000000000cd0435000000010bb00039000000000c9b004b000021700000413d000000000900004c0000217a0000613d0000000009060433000000000990004c0000263f0000613d0000000009080433000009a409900197000000f80a70021000000000099a019f000009a60990004100000000009804350000000307700210000000f80770008900000000027201cf000000ff0770008c000000000200201900000021076000390000000000270435000021ab0000013d000000400600043d000009a30760009c000026390000213d0000004007600039000000400070043f00000001070000390000000007760436000000000800003100000002088003670000000009000019000000050a900210000000000ba70019000000000aa8034f000000000a0a043b0000000000ab0435000000010990003a000000000a000019000000010a006039000000010aa00190000021950000c13d0000000008060433000000000880004c0000263f0000613d000000f8082002100000099c09000041000000000220004c000000000208001900000000020960190000000008070433000009a408800197000000000228019f0000000000270435000000400700043d000009a30270009c000026390000213d000000040a0000290000004002a000390000000202200367000000000202043b0000004008700039000000400080043f0000002008700039000009a7090000410000000000980435000000150800003900000000008704350000002108700039000000600220021000000000002804350000012002a000390000000202200367000000000202043b000000800820008c0000220c0000413d0000008008200270000009a50920009c000000000802a019000009a50920009c00000000090000190000001009002039000000080a9001bf0000099d0b80009c00000000090a2019000000400a8002700000099d0b80009c00000000080a2019000000040a9001bf000009980b80009c00000000090a2019000000200a800270000009980b80009c00000000080a2019000000020a9001bf0000ffff0b80008c00000000090a2019000000100a80027000000000080a2019000000ff0880008c000000000800001900000001080020390000000009890019000000200800008a000000410a900039000000000a8a016f000000400800043d000000000aa80019000000000b8a004b000000000b000019000000010b0040390000099d0ca0009c000026390000213d000000010bb00190000026390000c13d0000004000a0043f000000020a900039000000000aa80436000000210b900039000000050bb00272000021f90000613d000000000c000031000000020cc00367000000000d000019000000050ed00210000000000fea0019000000000eec034f000000000e0e043b0000000000ef0435000000010dd00039000000000ebd004b000021f10000413d000000000b00004c000021fb0000613d000000000b080433000000000bb0004c0000263f0000613d000000000b0a0433000009a40bb00197000000f80c900210000000000bbc019f000009a60bb000410000000000ba04350000000309900210000000f80990008900000000029201cf000000ff0990008c0000000002002019000000210980003900000000002904350000222c0000013d000000400800043d000009a30980009c000026390000213d0000004009800039000000400090043f00000001090000390000000009980436000000000a000031000000020aa00367000000000b000019000000050cb00210000000000dc90019000000000cca034f000000000c0c043b0000000000cd0435000000010bb0003a000000000c000019000000010c006039000000010cc00190000022160000c13d000000000a080433000000000aa0004c0000263f0000613d000000f80a2002100000099c0b000041000000000220004c00000000020a001900000000020b6019000000000a090433000009a40aa0019700000000022a019f0000000000290435000000400200043d0000002009200039000000000a010433000000000ba0004c000022390000613d000000000b000019000000000c9b0019000000200bb00039000000000d1b0019000000000d0d04330000000000dc0435000000000cab004b000022320000413d00000000019a001900000000000104350000000009030433000000000a90004c000022460000613d000000000a000019000000000b1a0019000000200aa00039000000000c3a0019000000000c0c04330000000000cb0435000000000b9a004b0000223f0000413d000000000119001900000000000104350000000003040433000000000930004c000022530000613d0000000009000019000000000a1900190000002009900039000000000b490019000000000b0b04330000000000ba0435000000000a39004b0000224c0000413d000000000113001900000000000104350000000003050433000000000430004c000022600000613d000000000400001900000000091400190000002004400039000000000a540019000000000a0a04330000000000a90435000000000934004b000022590000413d000000000113001900000000000104350000000003060433000000000430004c0000226d0000613d000000000400001900000000051400190000002004400039000000000964001900000000090904330000000000950435000000000534004b000022660000413d000000000113001900000000000104350000000003070433000000000430004c0000227a0000613d000000000400001900000000051400190000002004400039000000000674001900000000060604330000000000650435000000000534004b000022730000413d000000000113001900000000000104350000000003080433000000000430004c000022870000613d000000000400001900000000051400190000002004400039000000000684001900000000060604330000000000650435000000000534004b000022800000413d000000000113001900000000000104350000000001210049000000200310008a00000000003204350000001f01100039000000200300008a000200000003001d000000000131016f0000000005210019000000000115004b000000000100001900000001010040390000099d0350009c000026390000213d0000000101100190000026390000c13d000000400050043f0000001f0100008a00000004030000290000000004310049000001c0013000390000000207000367000100000001001d000000000117034f000000000601043b000000000800003100000000014800190000099c09000041000000000a16004b000000000a000019000000000a0980190000099c011001970000099c0b600197000000000c1b004b000000000900801900000000011b013f0000099c0110009c00000000010a00190000000001096019000000000110004c000026370000c13d00000004010000290000000001160019000000000617034f000000000606043b0000099d0960009c000026370000213d000000000968004900000020081000390000099c01000041000000000a98004b000000000a000019000000000a0120190000099c099001970000099c0b800197000000000c9b004b000000000100801900000000099b013f0000099c0990009c00000000010ac019000000000110004c000026370000c13d000000010160008c000022e40000c13d000000000187034f000000000101043b000000010300008a0000099c06000041000000000331004b000000000300001900000000030620190000099c011001970000099c0710009c00000000060080190000099c011001670000099c0110009c000000000103001900000000010660190000006006000039000000000110004c000023360000c13d000009a30150009c000026390000213d0000004001500039000000400010043f0000002001500039000009a6030000410000000000310435000000010100003900000000001504350000000006050019000023360000013d000000380160008c000023190000413d0000002001600270000009980360009c00000000030600190000000003012019000009980160009c0000000001000019000000040100203900000002071001bf0000ffff0830008c000000000107201900000010073002700000000003072019000000ff0330008c00000000070000190000000107002039000009a30350009c000026390000213d000000000771019f0000004001500039000000400010043f0000000201700039000000000815043600000000010000310000000209100367000000000a0000190000000501a002100000000003180019000000000119034f000000000101043b0000000000130435000000010aa0003a000000000100001900000001010060390000000101100190000022ff0000c13d0000000001050433000000000110004c0000263f0000613d0000000001080433000009a401100197000000f803700210000000000113019f000009a8011001c700000000001804350000000301700210000000f80110008900000000011601cf000000210350003900000000001304350000000006050019000023360000013d000009a30150009c000026390000213d0000004001500039000000400010043f0000000101000039000000000715043600000000010000310000000208100367000000000900001900000005019002100000000003170019000000000118034f000000000101043b0000000000130435000000010990003a000000000100001900000001010060390000000101100190000023220000c13d0000000001050433000000000110004c0000263f0000613d000000f8016002100000000003070433000009a403300197000000000113019f0000099c0110016700000000001704350000000006050019000000400500043d000009a30150009c000026390000213d0000004001500039000000400010043f0000000101000039000300000001001d000000000715043600000000010000310000000208100367000000000a0000190000000501a00210000000000b170019000000000118034f000000000101043b00000000001b0435000000010aa0003a000000000100001900000001010060390000000101100190000023410000c13d0000000001050433000000000110004c0000263f0000613d0000000001070433000009a401100197000009a9011001c70000000000170435000000000800003100000000014800190000000403000029000001e00a3000390000000207000367000000000ba7034f000000000b0b043b0000099c0c000041000000000d1b004b000000000d000019000000000d0c80190000099c011001970000099c0eb00197000000000f1e004b000000000c00801900000000011e013f0000099c0110009c00000000010d001900000000010c6019000000000110004c000026370000c13d000000040100002900000000011b0019000000000b17034f000000000b0b043b0000099d0cb0009c000026370000213d000000000cb8004900000020081000390000099c01000041000000000dc8004b000000000d000019000000000d0120190000099c0cc001970000099c0e800197000000000fce004b0000000001008019000000000cce013f0000099c0cc0009c00000000010dc019000000000110004c000026370000c13d0000002001b0008c000026370000413d000000000187034f000000000801043b000000800180008c000023ce0000413d0000008001800270000009a50780009c000000000108a019000009a50780009c00000000070000190000001007002039000000080b7001bf0000099d0c10009c00000000070b2019000000400b1002700000099d0c10009c00000000010b2019000000040b7001bf000009980c10009c00000000070b2019000000200b100270000009980c10009c00000000010b2019000000020b7001bf0000ffff0c10008c00000000070b2019000000100b10027000000000010b2019000000ff0110008c00000000010000190000000101002039000000000b1700190000004101b000390000000203000029000000000131016f000000400700043d0000000001170019000000000c71004b000000000c000019000000010c0040390000099d0d10009c000026390000213d000000010cc00190000026390000c13d000000400010043f0000000201b00039000000000c1704360000002101b00039000000050d100272000023ba0000613d0000000001000031000000020e100367000000000f0000190000000501f0021000000000031c001900000000011e034f000000000101043b0000000000130435000000010ff000390000000001df004b000023b20000413d000000000100004c000023bc0000613d0000000001070433000000000110004c0000263f0000613d00000000010c0433000009a401100197000000f803b00210000000000113019f000009a60110004100000000001c04350000000301b00210000000f80110008900000000031801cf000000ff0110008c0000000001030019000000000100201900000021037000390000000000130435000023ed0000013d000000400700043d000009a30170009c000026390000213d0000004001700039000000400010043f0000000301000029000000000b1704360000000001000031000000020c100367000000000d0000190000000501d0021000000000031b001900000000011c034f000000000101043b0000000000130435000000010dd0003a000000000100001900000001010060390000000101100190000023d80000c13d0000000001070433000000000110004c0000263f0000613d000000f8018002100000099c03000041000000000880004c000000000103601900000000030b0433000009a403300197000000000113019f00000000001b0435000000000c00003100000000014c001900000002080003670000000003a8034f000000000b03043b0000099c03000041000000000d1b004b000000000d000019000000000d0380190000099c011001970000099c0eb00197000000000f1e004b000000000300801900000000011e013f0000099c0110009c00000000010d00190000000001036019000000000110004c000026370000c13d0000000401000029000000000b1b00190000000001b8034f000000000d01043b0000099d01d0009c000026370000213d0000000001dc00490000002003b000390000099c0c000041000000000e13004b000000000e000019000000000e0c20190000099c011001970000099c03300197000000000f13004b000000000c008019000000000113013f0000099c0110009c00000000010e001900000000010c6019000000000110004c000026370000c13d0000004001d0008c000026370000413d0000004001b00039000000000118034f000000000b01043b0000008001b0008c000024690000413d0000008001b00270000009a503b0009c00000000010ba019000009a503b0009c0000000003000019000000100300203900000008083001bf0000099d0c10009c000000000308201900000040081002700000099d0c10009c000000000108201900000004083001bf000009980c10009c00000000030820190000002008100270000009980c10009c000000000108201900000002083001bf0000ffff0c10008c000000000308201900000010081002700000000001082019000000ff0110008c00000000010000190000000101002039000000000c1300190000004101c000390000000203000029000000000131016f000000400800043d0000000001180019000000000381004b000000000d000019000000010d0040390000099d0310009c000026390000213d0000000103d00190000026390000c13d000000400010043f0000000201c00039000000000d1804360000002101c00039000000050e100272000024550000613d0000000001000031000000020f1003670000000001000019000000050310021000000000093d001900000000033f034f000000000303043b000000000039043500000001011000390000000003e1004b0000244d0000413d000000000100004c000024570000613d0000000001080433000000000110004c0000263f0000613d00000000010d0433000009a401100197000000f803c00210000000000113019f000009a60110004100000000001d04350000000301c00210000000f80110008900000000031b01cf000000ff0110008c0000000001030019000000000100201900000021038000390000000000130435000024880000013d000000400800043d000009a30180009c000026390000213d0000004001800039000000400010043f0000000301000029000000000c1804360000000001000031000000020d100367000000000e0000190000000501e0021000000000031c001900000000011d034f000000000101043b0000000000130435000000010ee0003a000000000100001900000001010060390000000101100190000024730000c13d0000000001080433000000000110004c0000263f0000613d000000f801b002100000099c030000410000000009b0004c000000000103601900000000030c0433000009a403300197000000000113019f00000000001c0435000000000c00003100000000014c0019000000020b0003670000000003ab034f000000000a03043b0000099c0300004100000000091a004b000000000900001900000000090380190000099c011001970000099c0da00197000000000e1d004b000000000300801900000000011d013f0000099c0110009c00000000010900190000000001036019000000000110004c000026370000c13d0000000401000029000000000a1a00190000000001ab034f000000000d01043b0000099d01d0009c000026370000213d0000000001dc00490000002003a000390000099c09000041000000000c13004b000000000c000019000000000c0920190000099c011001970000099c03300197000000000e13004b0000000009008019000000000113013f0000099c0110009c00000000010c00190000000001096019000000000110004c000026370000c13d0000004101d0008c0000263f0000413d0000006001a0003900000000011b034f000000000b000415000000060bb0008a000000200bb000c90000099c0c000041000000000101043b000000f8011002700000001b0310008c000024c30000613d000000000b000415000000050bb0008a000000200bb000c9000009ab0c0000410000001c0110008c000026450000c13d000000400a00043d000009a301a0009c000026390000213d0000004001a00039000000400010043f0000000301000029000000000d1a04360000000001000031000000020e100367000000000f0000190000000501f0021000000000031d001900000000011e034f000000000101043b0000000000130435000000010ff0003a000000000100001900000001010060390000000101100190000024cd0000c13d00000000010a0433000000000110004c0000263f0000613d00000000010d0433000009a4011001970000000001c1019f00000000001d04350000002001b0011a00000000010a001f000000000b00003100000000014b0019000000020e000367000000010300002900000000033e034f000000000f03043b0000099c0300004100000000091f004b000000000900001900000000090380190000099c011001970000099c0cf00197000000000d1c004b000000000300801900000000011c013f0000099c0110009c00000000010900190000000001036019000000000110004c000026370000c13d000000000c020433000000000d060433000000040100002900000000011f001900000000031e034f000000000e03043b0000099d03e0009c000026370000213d0000000003eb004900000020011000390000099c09000041000000000b31004b000000000b000019000000000b0920190000099c033001970000099c01100197000000000f31004b0000000009008019000000000131013f0000099c0110009c00000000010b00190000000001096019000000000110004c000026370000c13d0000000001cd00190000000001e1001900000000030504330000000001310019000000000307043300000000013100190000000003080433000000000131001900000000030a043300000000013100190000099d0c1001970000003801c0008c0000254c0000413d0000002001c002700000099803c0009c00000000030c001900000000030120190000099801c0009c0000000001000019000000040100203900000002091001bf0000ffff0b30008c000000000109201900000010093002700000000003092019000000ff0330008c00000000090000190000000109002039000000400b00043d000009a303b0009c000026390000213d000000000991019f0000004001b00039000000400010043f0000000201900039000000000d1b04360000000001000031000000020e100367000000000f0000190000000501f0021000000000031d001900000000011e034f000000000101043b0000000000130435000000010ff0003a000000000100001900000001010060390000000101100190000025330000c13d00000000010b0433000000000110004c0000263f0000613d00000000010d0433000009a401100197000000f803900210000000000113019f000009aa011001c700000000001d04350000000301900210000000f80110008900000000011c01cf0000002103b000390000000000130435000025690000013d000000400b00043d000009a301b0009c000026390000213d0000004001b00039000000400010043f000000030100002900000000091b04360000000001000031000000020d100367000000000e0000190000000501e00210000000000319001900000000011d034f000000000101043b0000000000130435000000010ee0003a000000000100001900000001010060390000000101100190000025560000c13d00000000010b0433000000000110004c0000263f0000613d000000f801c002100000000003090433000009a403300197000000000131019f000009a9011000410000000000190435000000000c00003100000000014c001900000002040003670000000103000029000000000334034f000000000303043b0000099c09000041000000000d13004b000000000d000019000000000d0980190000099c011001970000099c0e300197000000000f1e004b000000000900801900000000011e013f0000099c0110009c00000000010d00190000000001096019000000000110004c000026370000c13d00000004010000290000000001130019000000000314034f000000000903043b0000099d0390009c000026370000213d00000000039c0049000000200c1000390000099c0100004100000000043c004b000000000400001900000000040120190000099c033001970000099c0dc00197000000000e3d004b000000000100801900000000033d013f0000099c0330009c000000000104c019000000000110004c000026370000c13d000000400300043d0000002004300039000009ac01000041000400000004001d0000000000140435000000210d300039000000000e0b04330000000001e0004c000025a30000613d0000000001000019000000000fd1001900000020011000390000000004b10019000000000404043300000000004f04350000000004e1004b0000259c0000413d000000000bde001900000000000b0435000000000d0204330000000001d0004c000025b00000613d00000000010000190000000004b100190000002001100039000000000e210019000000000e0e04330000000000e404350000000004d1004b000025a90000413d0000000002bd00190000000000020435000000000b0604330000000001b0004c000025bd0000613d000000000100001900000000042100190000002001100039000000000d610019000000000d0d04330000000000d404350000000004b1004b000025b60000413d00000000022b00190000001f0690018f0000000000020435000000020bc00367000000050c900272000025cc0000613d00000000010000190000000504100210000000000d42001900000000044b034f000000000404043b00000000004d043500000001011000390000000004c1004b000025c40000413d000000000160004c000025db0000613d0000000501c0021000000000041b034f00000000011200190000000306600210000000000b010433000000000b6b01cf000000000b6b022f000000000404043b0000010006600089000000000464022f00000000046401cf0000000004b4019f0000000000410435000000000292001900000000000204350000000006050433000000000160004c000025e80000613d000000000100001900000000042100190000002001100039000000000951001900000000090904330000000000940435000000000461004b000025e10000413d0000000002260019000000000002043500000000050a0433000000000150004c000025f50000613d0000000001000019000000000421001900000020011000390000000006a1001900000000060604330000000000640435000000000451004b000025ee0000413d000000000225001900000000000204350000000005070433000000000150004c000026020000613d000000000100001900000000042100190000002001100039000000000671001900000000060604330000000000640435000000000451004b000025fb0000413d000000000225001900000000000204350000000005080433000000000150004c0000260f0000613d000000000100001900000000042100190000002001100039000000000681001900000000060604330000000000640435000000000451004b000026080000413d000000000125001900000000000104350000000001310049000000200210008a00000000002304350000001f011000390000000202000029000000000221016f0000000001320019000000000221004b000000000200001900000001020040390000099d0410009c000026390000213d0000000102200190000026390000c13d000000400010043f00000998010000410000000404000029000009980240009c0000000002010019000000000204401900000040022002100000000003030433000009980430009c00000000030180190000006003300210000000000223019f0000000003000414000009980430009c0000000001034019000000c001100210000000000121019f000009ac011001c70000801002000039265c26570000040f0000000102200190000026370000613d000000000101043b000000000001042d00000000010000190000265e00010430000009bd0100004100000000001004350000004101000039000000040010043f000009be010000410000265e00010430000009bd0100004100000000001004350000003201000039000000040010043f000009be010000410000265e00010430000000400100043d0000004402100039000009bc03000041000000000032043500000024021000390000000f0300003900000000003204350000099f0200004100000000002104350000000402100039000000200300003900000000003204350000099802000041000009980310009c00000000010280190000004001100210000009a0011001c70000265e000104300000265a002104230000000102000039000000000001042d0000000002000019000000000001042d0000265c000004320000265d0001042e0000265e00010430000000000000000000000000000000000000000000000000000000000000000000000000ffffffff0000000200000000000000000000000000000040000001000000000000000000ffffffff00000000000000000000000000000000000000000000000000000000ebe4a3d7000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff456e636f64696e6720756e737570706f7274656420747800000000000000000008c379a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640000000000000000000000009a8a0592ac89c5ad3bc6df8224c17b485976f597df104ee20d0df415241f670b0200000200000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffbf00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000ffffffffffffffffffffffffffffffff81000000000000000000000000000000000000000000000000000000000000009400000000000000000000000000000000000000000000000000000000000000b800000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000f80000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffff00000000000000000000000000000000ffffffff00000000000000000000000000000000000000000000000000000000ffffffff00000000000000000000ffff000000000000000000000000000000000000801000000000000000000000ffff00000000000000000000000000000000000000000000000000000000000000000000000000000001ffffffe007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848e1bfa1ac4e3576b728bda6721b215c70a7799a5b4866282a71bab954baac8000000000000000000000000000000000000000000000000fffffffffffffe1fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6ead7c5bef027816a800da1736444fb58a807ef4c9603b7848673f7e3a68eb14a519b453ce45aaaaf3a300f5a9ec95869b4f28ab10430b572ee218c3a6a5e07d6f000000000000000000000000000000000000000000000000ffffffffffffff5f1901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff7f8080000000000000000000000000000000000000000000000000000000000000496e76616c696420762076616c756500000000000000000000000000000000004e487b710000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000000000000000000000006b656363616b3235362072657475726e656420696e76616c6964206461746100000000000000000000000000000000000000000000000000ffffffffffffff9f00000000000000000000000000000000000000400000000000000000000000004f766572666c6f77000000000000000000000000000000000000000000000000556e737570706f72746564207478207479706500000000000000000000000000d928534cf2f0aa13aa4853c362232c19f88e4689b9ae2f60c785a65842d58a13", - "linkReferences": {}, - "deployedLinkReferences": {}, - "factoryDeps": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IAccountCodeStorage.sol/IAccountCodeStorage.dbg.json b/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IAccountCodeStorage.sol/IAccountCodeStorage.dbg.json deleted file mode 100644 index 9177ae2051..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IAccountCodeStorage.sol/IAccountCodeStorage.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../../build-info/92cb10df65f6d26368974b9012699389.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IAccountCodeStorage.sol/IAccountCodeStorage.json b/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IAccountCodeStorage.sol/IAccountCodeStorage.json deleted file mode 100644 index d11a18250f..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IAccountCodeStorage.sol/IAccountCodeStorage.json +++ /dev/null @@ -1,118 +0,0 @@ -{ - "_format": "hh-zksolc-artifact-1", - "contractName": "IAccountCodeStorage", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IAccountCodeStorage.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "uint256", - "name": "_input", - "type": "uint256" - } - ], - "name": "getCodeHash", - "outputs": [ - { - "internalType": "bytes32", - "name": "codeHash", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_input", - "type": "uint256" - } - ], - "name": "getCodeSize", - "outputs": [ - { - "internalType": "uint256", - "name": "codeSize", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_address", - "type": "address" - } - ], - "name": "getRawCodeHash", - "outputs": [ - { - "internalType": "bytes32", - "name": "codeHash", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_address", - "type": "address" - } - ], - "name": "markAccountCodeHashAsConstructed", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_address", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "_hash", - "type": "bytes32" - } - ], - "name": "storeAccountConstructedCodeHash", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_address", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "_hash", - "type": "bytes32" - } - ], - "name": "storeAccountConstructingCodeHash", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {}, - "factoryDeps": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBootloaderUtilities.sol/IBootloaderUtilities.dbg.json b/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBootloaderUtilities.sol/IBootloaderUtilities.dbg.json deleted file mode 100644 index 9177ae2051..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBootloaderUtilities.sol/IBootloaderUtilities.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../../build-info/92cb10df65f6d26368974b9012699389.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBootloaderUtilities.sol/IBootloaderUtilities.json b/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBootloaderUtilities.sol/IBootloaderUtilities.json deleted file mode 100644 index 985d5c3485..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBootloaderUtilities.sol/IBootloaderUtilities.json +++ /dev/null @@ -1,118 +0,0 @@ -{ - "_format": "hh-zksolc-artifact-1", - "contractName": "IBootloaderUtilities", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBootloaderUtilities.sol", - "abi": [ - { - "inputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "txType", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "from", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "to", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "gasLimit", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "gasPerPubdataByteLimit", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxFeePerGas", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxPriorityFeePerGas", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "paymaster", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "uint256[4]", - "name": "reserved", - "type": "uint256[4]" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "signature", - "type": "bytes" - }, - { - "internalType": "bytes32[]", - "name": "factoryDeps", - "type": "bytes32[]" - }, - { - "internalType": "bytes", - "name": "paymasterInput", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "reservedDynamic", - "type": "bytes" - } - ], - "internalType": "struct Transaction", - "name": "_transaction", - "type": "tuple" - } - ], - "name": "getTransactionHashes", - "outputs": [ - { - "internalType": "bytes32", - "name": "txHash", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "signedTxHash", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {}, - "factoryDeps": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBytecodeCompressor.sol/IBytecodeCompressor.dbg.json b/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBytecodeCompressor.sol/IBytecodeCompressor.dbg.json deleted file mode 100644 index 9177ae2051..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBytecodeCompressor.sol/IBytecodeCompressor.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../../build-info/92cb10df65f6d26368974b9012699389.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBytecodeCompressor.sol/IBytecodeCompressor.json b/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBytecodeCompressor.sol/IBytecodeCompressor.json deleted file mode 100644 index 5d67d330bc..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBytecodeCompressor.sol/IBytecodeCompressor.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "_format": "hh-zksolc-artifact-1", - "contractName": "IBytecodeCompressor", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBytecodeCompressor.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "bytes", - "name": "_bytecode", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "_rawCompressedData", - "type": "bytes" - } - ], - "name": "publishCompressedBytecode", - "outputs": [ - { - "internalType": "bytes32", - "name": "bytecodeHash", - "type": "bytes32" - } - ], - "stateMutability": "payable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {}, - "factoryDeps": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IContractDeployer.sol/IContractDeployer.dbg.json b/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IContractDeployer.sol/IContractDeployer.dbg.json deleted file mode 100644 index 9177ae2051..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IContractDeployer.sol/IContractDeployer.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../../build-info/92cb10df65f6d26368974b9012699389.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IContractDeployer.sol/IContractDeployer.json b/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IContractDeployer.sol/IContractDeployer.json deleted file mode 100644 index 394ca3a2a8..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IContractDeployer.sol/IContractDeployer.json +++ /dev/null @@ -1,316 +0,0 @@ -{ - "_format": "hh-zksolc-artifact-1", - "contractName": "IContractDeployer", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IContractDeployer.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "accountAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "enum IContractDeployer.AccountNonceOrdering", - "name": "nonceOrdering", - "type": "uint8" - } - ], - "name": "AccountNonceOrderingUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "accountAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "enum IContractDeployer.AccountAbstractionVersion", - "name": "aaVersion", - "type": "uint8" - } - ], - "name": "AccountVersionUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "deployerAddress", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "bytecodeHash", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "contractAddress", - "type": "address" - } - ], - "name": "ContractDeployed", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_salt", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "_bytecodeHash", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "_input", - "type": "bytes" - } - ], - "name": "create", - "outputs": [ - { - "internalType": "address", - "name": "newAddress", - "type": "address" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_salt", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "_bytecodeHash", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "_input", - "type": "bytes" - } - ], - "name": "create2", - "outputs": [ - { - "internalType": "address", - "name": "newAddress", - "type": "address" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_salt", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "_bytecodeHash", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "_input", - "type": "bytes" - }, - { - "internalType": "enum IContractDeployer.AccountAbstractionVersion", - "name": "_aaVersion", - "type": "uint8" - } - ], - "name": "create2Account", - "outputs": [ - { - "internalType": "address", - "name": "newAddress", - "type": "address" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_salt", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "_bytecodeHash", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "_input", - "type": "bytes" - }, - { - "internalType": "enum IContractDeployer.AccountAbstractionVersion", - "name": "_aaVersion", - "type": "uint8" - } - ], - "name": "createAccount", - "outputs": [ - { - "internalType": "address", - "name": "newAddress", - "type": "address" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_address", - "type": "address" - } - ], - "name": "getAccountInfo", - "outputs": [ - { - "components": [ - { - "internalType": "enum IContractDeployer.AccountAbstractionVersion", - "name": "supportedAAVersion", - "type": "uint8" - }, - { - "internalType": "enum IContractDeployer.AccountNonceOrdering", - "name": "nonceOrdering", - "type": "uint8" - } - ], - "internalType": "struct IContractDeployer.AccountInfo", - "name": "info", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_sender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_senderNonce", - "type": "uint256" - } - ], - "name": "getNewAddressCreate", - "outputs": [ - { - "internalType": "address", - "name": "newAddress", - "type": "address" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_sender", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "_bytecodeHash", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "_salt", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "_input", - "type": "bytes" - } - ], - "name": "getNewAddressCreate2", - "outputs": [ - { - "internalType": "address", - "name": "newAddress", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "enum IContractDeployer.AccountAbstractionVersion", - "name": "_version", - "type": "uint8" - } - ], - "name": "updateAccountVersion", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "enum IContractDeployer.AccountNonceOrdering", - "name": "_nonceOrdering", - "type": "uint8" - } - ], - "name": "updateNonceOrdering", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {}, - "factoryDeps": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IEthToken.sol/IEthToken.dbg.json b/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IEthToken.sol/IEthToken.dbg.json deleted file mode 100644 index 9177ae2051..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IEthToken.sol/IEthToken.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../../build-info/92cb10df65f6d26368974b9012699389.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IEthToken.sol/IEthToken.json b/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IEthToken.sol/IEthToken.json deleted file mode 100644 index b2db134305..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IEthToken.sol/IEthToken.json +++ /dev/null @@ -1,206 +0,0 @@ -{ - "_format": "hh-zksolc-artifact-1", - "contractName": "IEthToken", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IEthToken.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "Mint", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_l2Sender", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "_l1Receiver", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - } - ], - "name": "Withdrawal", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "decimals", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_account", - "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": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "pure", - "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": "_amount", - "type": "uint256" - } - ], - "name": "transferFromTo", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_l1Receiver", - "type": "address" - } - ], - "name": "withdraw", - "outputs": [], - "stateMutability": "payable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {}, - "factoryDeps": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IImmutableSimulator.sol/IImmutableSimulator.dbg.json b/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IImmutableSimulator.sol/IImmutableSimulator.dbg.json deleted file mode 100644 index 9177ae2051..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IImmutableSimulator.sol/IImmutableSimulator.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../../build-info/92cb10df65f6d26368974b9012699389.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IImmutableSimulator.sol/IImmutableSimulator.json b/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IImmutableSimulator.sol/IImmutableSimulator.json deleted file mode 100644 index 5c5ab4bb4d..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IImmutableSimulator.sol/IImmutableSimulator.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "_format": "hh-zksolc-artifact-1", - "contractName": "IImmutableSimulator", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IImmutableSimulator.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "_dest", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_index", - "type": "uint256" - } - ], - "name": "getImmutable", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_dest", - "type": "address" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "index", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "value", - "type": "bytes32" - } - ], - "internalType": "struct ImmutableData[]", - "name": "_immutables", - "type": "tuple[]" - } - ], - "name": "setImmutables", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {}, - "factoryDeps": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IKnownCodesStorage.sol/IKnownCodesStorage.dbg.json b/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IKnownCodesStorage.sol/IKnownCodesStorage.dbg.json deleted file mode 100644 index 9177ae2051..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IKnownCodesStorage.sol/IKnownCodesStorage.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../../build-info/92cb10df65f6d26368974b9012699389.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IKnownCodesStorage.sol/IKnownCodesStorage.json b/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IKnownCodesStorage.sol/IKnownCodesStorage.json deleted file mode 100644 index 79ed1a12ea..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IKnownCodesStorage.sol/IKnownCodesStorage.json +++ /dev/null @@ -1,91 +0,0 @@ -{ - "_format": "hh-zksolc-artifact-1", - "contractName": "IKnownCodesStorage", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IKnownCodesStorage.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "bytecodeHash", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "bool", - "name": "sendBytecodeToL1", - "type": "bool" - } - ], - "name": "MarkedAsKnown", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_hash", - "type": "bytes32" - } - ], - "name": "getMarker", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_bytecodeHash", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "_l1PreimageHash", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "_l1PreimageBytesLen", - "type": "uint256" - } - ], - "name": "markBytecodeAsPublished", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bool", - "name": "_shouldSendToL1", - "type": "bool" - }, - { - "internalType": "bytes32[]", - "name": "_hashes", - "type": "bytes32[]" - } - ], - "name": "markFactoryDeps", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {}, - "factoryDeps": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IL1Messenger.sol/IL1Messenger.dbg.json b/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IL1Messenger.sol/IL1Messenger.dbg.json deleted file mode 100644 index 9177ae2051..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IL1Messenger.sol/IL1Messenger.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../../build-info/92cb10df65f6d26368974b9012699389.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IL1Messenger.sol/IL1Messenger.json b/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IL1Messenger.sol/IL1Messenger.json deleted file mode 100644 index 9679793db8..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IL1Messenger.sol/IL1Messenger.json +++ /dev/null @@ -1,56 +0,0 @@ -{ - "_format": "hh-zksolc-artifact-1", - "contractName": "IL1Messenger", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IL1Messenger.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_sender", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "_hash", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "_message", - "type": "bytes" - } - ], - "name": "L1MessageSent", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "_message", - "type": "bytes" - } - ], - "name": "sendToL1", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {}, - "factoryDeps": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/INonceHolder.sol/INonceHolder.dbg.json b/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/INonceHolder.sol/INonceHolder.dbg.json deleted file mode 100644 index 9177ae2051..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/INonceHolder.sol/INonceHolder.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../../build-info/92cb10df65f6d26368974b9012699389.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/INonceHolder.sol/INonceHolder.json b/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/INonceHolder.sol/INonceHolder.json deleted file mode 100644 index ad7dd9e755..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/INonceHolder.sol/INonceHolder.json +++ /dev/null @@ -1,229 +0,0 @@ -{ - "_format": "hh-zksolc-artifact-1", - "contractName": "INonceHolder", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/interfaces/INonceHolder.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "accountAddress", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "key", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "ValueSetUnderNonce", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_address", - "type": "address" - } - ], - "name": "getDeploymentNonce", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_address", - "type": "address" - } - ], - "name": "getMinNonce", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_address", - "type": "address" - } - ], - "name": "getRawNonce", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_key", - "type": "uint256" - } - ], - "name": "getValueUnderNonce", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_value", - "type": "uint256" - } - ], - "name": "increaseMinNonce", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_address", - "type": "address" - } - ], - "name": "incrementDeploymentNonce", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_expectedNonce", - "type": "uint256" - } - ], - "name": "incrementMinNonceIfEquals", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_address", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_nonce", - "type": "uint256" - } - ], - "name": "isNonceUsed", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_key", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_value", - "type": "uint256" - } - ], - "name": "setValueUnderNonce", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_address", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_key", - "type": "uint256" - }, - { - "internalType": "bool", - "name": "_shouldBeUsed", - "type": "bool" - } - ], - "name": "validateNonceUsage", - "outputs": [], - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {}, - "factoryDeps": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymaster.sol/IPaymaster.dbg.json b/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymaster.sol/IPaymaster.dbg.json deleted file mode 100644 index 9177ae2051..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymaster.sol/IPaymaster.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../../build-info/92cb10df65f6d26368974b9012699389.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymaster.sol/IPaymaster.json b/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymaster.sol/IPaymaster.json deleted file mode 100644 index db43402b08..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymaster.sol/IPaymaster.json +++ /dev/null @@ -1,248 +0,0 @@ -{ - "_format": "hh-zksolc-artifact-1", - "contractName": "IPaymaster", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymaster.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "bytes", - "name": "_context", - "type": "bytes" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "txType", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "from", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "to", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "gasLimit", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "gasPerPubdataByteLimit", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxFeePerGas", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxPriorityFeePerGas", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "paymaster", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "uint256[4]", - "name": "reserved", - "type": "uint256[4]" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "signature", - "type": "bytes" - }, - { - "internalType": "bytes32[]", - "name": "factoryDeps", - "type": "bytes32[]" - }, - { - "internalType": "bytes", - "name": "paymasterInput", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "reservedDynamic", - "type": "bytes" - } - ], - "internalType": "struct Transaction", - "name": "_transaction", - "type": "tuple" - }, - { - "internalType": "bytes32", - "name": "_txHash", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "_suggestedSignedHash", - "type": "bytes32" - }, - { - "internalType": "enum ExecutionResult", - "name": "_txResult", - "type": "uint8" - }, - { - "internalType": "uint256", - "name": "_maxRefundedGas", - "type": "uint256" - } - ], - "name": "postTransaction", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_txHash", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "_suggestedSignedHash", - "type": "bytes32" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "txType", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "from", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "to", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "gasLimit", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "gasPerPubdataByteLimit", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxFeePerGas", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxPriorityFeePerGas", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "paymaster", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "uint256[4]", - "name": "reserved", - "type": "uint256[4]" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "signature", - "type": "bytes" - }, - { - "internalType": "bytes32[]", - "name": "factoryDeps", - "type": "bytes32[]" - }, - { - "internalType": "bytes", - "name": "paymasterInput", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "reservedDynamic", - "type": "bytes" - } - ], - "internalType": "struct Transaction", - "name": "_transaction", - "type": "tuple" - } - ], - "name": "validateAndPayForPaymasterTransaction", - "outputs": [ - { - "internalType": "bytes4", - "name": "magic", - "type": "bytes4" - }, - { - "internalType": "bytes", - "name": "context", - "type": "bytes" - } - ], - "stateMutability": "payable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {}, - "factoryDeps": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymasterFlow.sol/IPaymasterFlow.dbg.json b/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymasterFlow.sol/IPaymasterFlow.dbg.json deleted file mode 100644 index 9177ae2051..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymasterFlow.sol/IPaymasterFlow.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../../build-info/92cb10df65f6d26368974b9012699389.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymasterFlow.sol/IPaymasterFlow.json b/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymasterFlow.sol/IPaymasterFlow.json deleted file mode 100644 index 1c34ea4091..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymasterFlow.sol/IPaymasterFlow.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "_format": "hh-zksolc-artifact-1", - "contractName": "IPaymasterFlow", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymasterFlow.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "_token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_minAllowance", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "_innerInput", - "type": "bytes" - } - ], - "name": "approvalBased", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "input", - "type": "bytes" - } - ], - "name": "general", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {}, - "factoryDeps": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/ISystemContext.sol/ISystemContext.dbg.json b/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/ISystemContext.sol/ISystemContext.dbg.json deleted file mode 100644 index 9177ae2051..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/ISystemContext.sol/ISystemContext.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../../build-info/92cb10df65f6d26368974b9012699389.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/ISystemContext.sol/ISystemContext.json b/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/ISystemContext.sol/ISystemContext.json deleted file mode 100644 index e8766d4075..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/ISystemContext.sol/ISystemContext.json +++ /dev/null @@ -1,185 +0,0 @@ -{ - "_format": "hh-zksolc-artifact-1", - "contractName": "ISystemContext", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/interfaces/ISystemContext.sol", - "abi": [ - { - "inputs": [], - "name": "baseFee", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "blockGasLimit", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_block", - "type": "uint256" - } - ], - "name": "blockHash", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "chainId", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "coinbase", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "difficulty", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "gasPrice", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_block", - "type": "uint256" - } - ], - "name": "getBlockHashEVM", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getBlockNumber", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getBlockNumberAndTimestamp", - "outputs": [ - { - "internalType": "uint256", - "name": "blockNumber", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "blockTimestamp", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getBlockTimestamp", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "origin", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {}, - "factoryDeps": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/libraries/EfficientCall.sol/EfficientCall.dbg.json b/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/libraries/EfficientCall.sol/EfficientCall.dbg.json deleted file mode 100644 index 9177ae2051..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/libraries/EfficientCall.sol/EfficientCall.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../../build-info/92cb10df65f6d26368974b9012699389.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/libraries/EfficientCall.sol/EfficientCall.json b/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/libraries/EfficientCall.sol/EfficientCall.json deleted file mode 100644 index b29aa4e24b..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/libraries/EfficientCall.sol/EfficientCall.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "_format": "hh-zksolc-artifact-1", - "contractName": "EfficientCall", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/libraries/EfficientCall.sol", - "abi": [], - "bytecode": "0x00000001012001900000000c0000613d0000008001000039000000400010043f0000000001000416000000000110004c0000000c0000c13d00000020010000390000010000100443000001200000044300000005010000410000000f0001042e000000000100001900000010000104300000000e000004320000000f0001042e00000010000104300000000000000000000000000000000000000000000000000000000200000000000000000000000000000040000001000000000000000000c93c837758aca2b30e52b1ee52996fdab25a7b5916dda3d71f04cf086bcf340f", - "deployedBytecode": "0x00000001012001900000000c0000613d0000008001000039000000400010043f0000000001000416000000000110004c0000000c0000c13d00000020010000390000010000100443000001200000044300000005010000410000000f0001042e000000000100001900000010000104300000000e000004320000000f0001042e00000010000104300000000000000000000000000000000000000000000000000000000200000000000000000000000000000040000001000000000000000000c93c837758aca2b30e52b1ee52996fdab25a7b5916dda3d71f04cf086bcf340f", - "linkReferences": {}, - "deployedLinkReferences": {}, - "factoryDeps": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/libraries/RLPEncoder.sol/RLPEncoder.dbg.json b/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/libraries/RLPEncoder.sol/RLPEncoder.dbg.json deleted file mode 100644 index 9177ae2051..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/libraries/RLPEncoder.sol/RLPEncoder.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../../build-info/92cb10df65f6d26368974b9012699389.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/libraries/RLPEncoder.sol/RLPEncoder.json b/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/libraries/RLPEncoder.sol/RLPEncoder.json deleted file mode 100644 index d9609de681..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/libraries/RLPEncoder.sol/RLPEncoder.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "_format": "hh-zksolc-artifact-1", - "contractName": "RLPEncoder", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/libraries/RLPEncoder.sol", - "abi": [], - "bytecode": "0x00000001012001900000000c0000613d0000008001000039000000400010043f0000000001000416000000000110004c0000000c0000c13d00000020010000390000010000100443000001200000044300000005010000410000000f0001042e000000000100001900000010000104300000000e000004320000000f0001042e000000100001043000000000000000000000000000000000000000000000000000000002000000000000000000000000000000400000010000000000000000007d9fa76a5819bc2f496706b159807ab8dfbbaeb695aabc4182b8ceb6b09e0b06", - "deployedBytecode": "0x00000001012001900000000c0000613d0000008001000039000000400010043f0000000001000416000000000110004c0000000c0000c13d00000020010000390000010000100443000001200000044300000005010000410000000f0001042e000000000100001900000010000104300000000e000004320000000f0001042e000000100001043000000000000000000000000000000000000000000000000000000002000000000000000000000000000000400000010000000000000000007d9fa76a5819bc2f496706b159807ab8dfbbaeb695aabc4182b8ceb6b09e0b06", - "linkReferences": {}, - "deployedLinkReferences": {}, - "factoryDeps": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractHelper.sol/ISystemContract.dbg.json b/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractHelper.sol/ISystemContract.dbg.json deleted file mode 100644 index 9177ae2051..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractHelper.sol/ISystemContract.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../../build-info/92cb10df65f6d26368974b9012699389.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractHelper.sol/ISystemContract.json b/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractHelper.sol/ISystemContract.json deleted file mode 100644 index 78d5e254b8..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractHelper.sol/ISystemContract.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "_format": "hh-zksolc-artifact-1", - "contractName": "ISystemContract", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractHelper.sol", - "abi": [], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {}, - "factoryDeps": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractHelper.sol/SystemContractHelper.dbg.json b/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractHelper.sol/SystemContractHelper.dbg.json deleted file mode 100644 index 9177ae2051..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractHelper.sol/SystemContractHelper.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../../build-info/92cb10df65f6d26368974b9012699389.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractHelper.sol/SystemContractHelper.json b/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractHelper.sol/SystemContractHelper.json deleted file mode 100644 index 51a1ecbcf8..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractHelper.sol/SystemContractHelper.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "_format": "hh-zksolc-artifact-1", - "contractName": "SystemContractHelper", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractHelper.sol", - "abi": [], - "bytecode": "0x00000001012001900000000c0000613d0000008001000039000000400010043f0000000001000416000000000110004c0000000c0000c13d00000020010000390000010000100443000001200000044300000005010000410000000f0001042e000000000100001900000010000104300000000e000004320000000f0001042e00000010000104300000000000000000000000000000000000000000000000000000000200000000000000000000000000000040000001000000000000000000fd1073a5e73312d60704f23c55926a71d49a3efb53baa0aa6e09e69148bbf05e", - "deployedBytecode": "0x00000001012001900000000c0000613d0000008001000039000000400010043f0000000001000416000000000110004c0000000c0000c13d00000020010000390000010000100443000001200000044300000005010000410000000f0001042e000000000100001900000010000104300000000e000004320000000f0001042e00000010000104300000000000000000000000000000000000000000000000000000000200000000000000000000000000000040000001000000000000000000fd1073a5e73312d60704f23c55926a71d49a3efb53baa0aa6e09e69148bbf05e", - "linkReferences": {}, - "deployedLinkReferences": {}, - "factoryDeps": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractsCaller.sol/SystemContractsCaller.dbg.json b/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractsCaller.sol/SystemContractsCaller.dbg.json deleted file mode 100644 index 9177ae2051..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractsCaller.sol/SystemContractsCaller.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../../build-info/92cb10df65f6d26368974b9012699389.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractsCaller.sol/SystemContractsCaller.json b/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractsCaller.sol/SystemContractsCaller.json deleted file mode 100644 index 3cc48b3b74..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractsCaller.sol/SystemContractsCaller.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "_format": "hh-zksolc-artifact-1", - "contractName": "SystemContractsCaller", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractsCaller.sol", - "abi": [], - "bytecode": "0x00000001012001900000000c0000613d0000008001000039000000400010043f0000000001000416000000000110004c0000000c0000c13d00000020010000390000010000100443000001200000044300000005010000410000000f0001042e000000000100001900000010000104300000000e000004320000000f0001042e000000100001043000000000000000000000000000000000000000000000000000000002000000000000000000000000000000400000010000000000000000006aba34187e0726c82074b221ce9892df7c126f562440ba7eb94d08e52521ce05", - "deployedBytecode": "0x00000001012001900000000c0000613d0000008001000039000000400010043f0000000001000416000000000110004c0000000c0000c13d00000020010000390000010000100443000001200000044300000005010000410000000f0001042e000000000100001900000010000104300000000e000004320000000f0001042e000000100001043000000000000000000000000000000000000000000000000000000002000000000000000000000000000000400000010000000000000000006aba34187e0726c82074b221ce9892df7c126f562440ba7eb94d08e52521ce05", - "linkReferences": {}, - "deployedLinkReferences": {}, - "factoryDeps": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/libraries/TransactionHelper.sol/TransactionHelper.dbg.json b/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/libraries/TransactionHelper.sol/TransactionHelper.dbg.json deleted file mode 100644 index 9177ae2051..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/libraries/TransactionHelper.sol/TransactionHelper.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../../build-info/92cb10df65f6d26368974b9012699389.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/libraries/TransactionHelper.sol/TransactionHelper.json b/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/libraries/TransactionHelper.sol/TransactionHelper.json deleted file mode 100644 index bf8971db53..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/libraries/TransactionHelper.sol/TransactionHelper.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "_format": "hh-zksolc-artifact-1", - "contractName": "TransactionHelper", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/libraries/TransactionHelper.sol", - "abi": [], - "bytecode": "0x00000001012001900000000c0000613d0000008001000039000000400010043f0000000001000416000000000110004c0000000c0000c13d00000020010000390000010000100443000001200000044300000005010000410000000f0001042e000000000100001900000010000104300000000e000004320000000f0001042e00000010000104300000000000000000000000000000000000000000000000000000000200000000000000000000000000000040000001000000000000000000baa4882ae8c35bb14ccccf81b9cf7d54e874fbe731d6df96ea9e7293e4b789ea", - "deployedBytecode": "0x00000001012001900000000c0000613d0000008001000039000000400010043f0000000001000416000000000110004c0000000c0000c13d00000020010000390000010000100443000001200000044300000005010000410000000f0001042e000000000100001900000010000104300000000e000004320000000f0001042e00000010000104300000000000000000000000000000000000000000000000000000000200000000000000000000000000000040000001000000000000000000baa4882ae8c35bb14ccccf81b9cf7d54e874fbe731d6df96ea9e7293e4b789ea", - "linkReferences": {}, - "deployedLinkReferences": {}, - "factoryDeps": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/libraries/Utils.sol/Utils.dbg.json b/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/libraries/Utils.sol/Utils.dbg.json deleted file mode 100644 index 9177ae2051..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/libraries/Utils.sol/Utils.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../../build-info/92cb10df65f6d26368974b9012699389.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/libraries/Utils.sol/Utils.json b/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/libraries/Utils.sol/Utils.json deleted file mode 100644 index 2768dabfe1..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/libraries/Utils.sol/Utils.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "_format": "hh-zksolc-artifact-1", - "contractName": "Utils", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/libraries/Utils.sol", - "abi": [], - "bytecode": "0x00000001012001900000000c0000613d0000008001000039000000400010043f0000000001000416000000000110004c0000000c0000c13d00000020010000390000010000100443000001200000044300000005010000410000000f0001042e000000000100001900000010000104300000000e000004320000000f0001042e00000010000104300000000000000000000000000000000000000000000000000000000200000000000000000000000000000040000001000000000000000000dd52e824b72a73a0eed9ea0f76098605e20f61ec93b169953e0111479912f142", - "deployedBytecode": "0x00000001012001900000000c0000613d0000008001000039000000400010043f0000000001000416000000000110004c0000000c0000c13d00000020010000390000010000100443000001200000044300000005010000410000000f0001042e000000000100001900000010000104300000000e000004320000000f0001042e00000010000104300000000000000000000000000000000000000000000000000000000200000000000000000000000000000040000001000000000000000000dd52e824b72a73a0eed9ea0f76098605e20f61ec93b169953e0111479912f142", - "linkReferences": {}, - "deployedLinkReferences": {}, - "factoryDeps": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/IERC20.sol/IERC20.dbg.json b/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/IERC20.sol/IERC20.dbg.json deleted file mode 100644 index 93ce59d2c2..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/IERC20.sol/IERC20.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../../../../build-info/92cb10df65f6d26368974b9012699389.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/IERC20.sol/IERC20.json b/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/IERC20.sol/IERC20.json deleted file mode 100644 index 5f50f63f7d..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/IERC20.sol/IERC20.json +++ /dev/null @@ -1,195 +0,0 @@ -{ - "_format": "hh-zksolc-artifact-1", - "contractName": "IERC20", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/IERC20.sol", - "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" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {}, - "factoryDeps": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/extensions/IERC20Permit.sol/IERC20Permit.dbg.json b/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/extensions/IERC20Permit.sol/IERC20Permit.dbg.json deleted file mode 100644 index a9b95b91cd..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/extensions/IERC20Permit.sol/IERC20Permit.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../../../../../build-info/92cb10df65f6d26368974b9012699389.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/extensions/IERC20Permit.sol/IERC20Permit.json b/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/extensions/IERC20Permit.sol/IERC20Permit.json deleted file mode 100644 index af6c4e9e03..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/extensions/IERC20Permit.sol/IERC20Permit.json +++ /dev/null @@ -1,87 +0,0 @@ -{ - "_format": "hh-zksolc-artifact-1", - "contractName": "IERC20Permit", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/extensions/IERC20Permit.sol", - "abi": [ - { - "inputs": [], - "name": "DOMAIN_SEPARATOR", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "nonces", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "permit", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {}, - "factoryDeps": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/utils/SafeERC20.sol/SafeERC20.dbg.json b/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/utils/SafeERC20.sol/SafeERC20.dbg.json deleted file mode 100644 index a9b95b91cd..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/utils/SafeERC20.sol/SafeERC20.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../../../../../build-info/92cb10df65f6d26368974b9012699389.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/utils/SafeERC20.sol/SafeERC20.json b/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/utils/SafeERC20.sol/SafeERC20.json deleted file mode 100644 index f75c4609eb..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/utils/SafeERC20.sol/SafeERC20.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "_format": "hh-zksolc-artifact-1", - "contractName": "SafeERC20", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/utils/SafeERC20.sol", - "abi": [], - "bytecode": "0x00000001012001900000000c0000613d0000008001000039000000400010043f0000000001000416000000000110004c0000000c0000c13d00000020010000390000010000100443000001200000044300000005010000410000000f0001042e000000000100001900000010000104300000000e000004320000000f0001042e00000010000104300000000000000000000000000000000000000000000000000000000200000000000000000000000000000040000001000000000000000000c41c06100bf1e4ba96aa6dd3f611d2b1efed955ea2d4b293638af23b4462d2e6", - "deployedBytecode": "0x00000001012001900000000c0000613d0000008001000039000000400010043f0000000001000416000000000110004c0000000c0000c13d00000020010000390000010000100443000001200000044300000005010000410000000f0001042e000000000100001900000010000104300000000e000004320000000f0001042e00000010000104300000000000000000000000000000000000000000000000000000000200000000000000000000000000000040000001000000000000000000c41c06100bf1e4ba96aa6dd3f611d2b1efed955ea2d4b293638af23b4462d2e6", - "linkReferences": {}, - "deployedLinkReferences": {}, - "factoryDeps": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/utils/Address.sol/Address.dbg.json b/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/utils/Address.sol/Address.dbg.json deleted file mode 100644 index 81cbe85b35..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/utils/Address.sol/Address.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../../../build-info/92cb10df65f6d26368974b9012699389.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/utils/Address.sol/Address.json b/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/utils/Address.sol/Address.json deleted file mode 100644 index e704e5afa5..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/utils/Address.sol/Address.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "_format": "hh-zksolc-artifact-1", - "contractName": "Address", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/utils/Address.sol", - "abi": [], - "bytecode": "0x00000001012001900000000c0000613d0000008001000039000000400010043f0000000001000416000000000110004c0000000c0000c13d00000020010000390000010000100443000001200000044300000005010000410000000f0001042e000000000100001900000010000104300000000e000004320000000f0001042e00000010000104300000000000000000000000000000000000000000000000000000000200000000000000000000000000000040000001000000000000000000f0b97e8249a35a6ef256f181be80ba90e42fc3fd690287b649b4e9938d2f156f", - "deployedBytecode": "0x00000001012001900000000c0000613d0000008001000039000000400010043f0000000001000416000000000110004c0000000c0000c13d00000020010000390000010000100443000001200000044300000005010000410000000f0001042e000000000100001900000010000104300000000e000004320000000f0001042e00000010000104300000000000000000000000000000000000000000000000000000000200000000000000000000000000000040000001000000000000000000f0b97e8249a35a6ef256f181be80ba90e42fc3fd690287b649b4e9938d2f156f", - "linkReferences": {}, - "deployedLinkReferences": {}, - "factoryDeps": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/access/Ownable.sol/Ownable.dbg.json b/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/access/Ownable.sol/Ownable.dbg.json deleted file mode 100644 index ea34a40fbf..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/access/Ownable.sol/Ownable.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../build-info/92cb10df65f6d26368974b9012699389.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/access/Ownable.sol/Ownable.json b/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/access/Ownable.sol/Ownable.json deleted file mode 100644 index 89371bd8ee..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/access/Ownable.sol/Ownable.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "_format": "hh-zksolc-artifact-1", - "contractName": "Ownable", - "sourceName": "@openzeppelin/contracts/access/Ownable.sol", - "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" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {}, - "factoryDeps": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.dbg.json b/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.dbg.json deleted file mode 100644 index d6f065d186..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/92cb10df65f6d26368974b9012699389.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.json b/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.json deleted file mode 100644 index 6748e1491f..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.json +++ /dev/null @@ -1,298 +0,0 @@ -{ - "_format": "hh-zksolc-artifact-1", - "contractName": "ERC20", - "sourceName": "@openzeppelin/contracts/token/ERC20/ERC20.sol", - "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" - } - ], - "bytecode": "0x00020000000000020008000000000002000100000001035500000060011002700000017d0010019d0000008001000039000000400010043f0000000101200190000000410000c13d0000000001000031000000040110008c000003240000413d0000000101000367000000000101043b000000e001100270000001820210009c0000014a0000a13d000001830210009c0000016c0000213d000001870210009c000001ca0000613d000001880210009c000002100000613d000001890110009c000003240000c13d0000000001000416000000000110004c000003240000c13d000000040100008a00000000011000310000017f02000041000000000310004c000000000300001900000000030240190000017f01100197000000000410004c000000000200a0190000017f0110009c00000000010300190000000001026019000000000110004c000003240000c13d0000000405000039000000000405041a000000010640019000000001014002700000007f0210018f00000000010260190000001f0210008c00000000020000190000000102002039000000000224013f0000000102200190000003330000c13d000000400200043d0000000003120436000000000660004c000003430000c13d000001000500008a000000000454016f0000000000430435000000000110004c00000020040000390000000004006019000003500000013d0000000001000416000000000110004c000003240000c13d00000000020000310000001f01200039000000200a00008a0000000004a1016f000000400100043d0000000003140019000000000443004b000000000400001900000001040040390000017e0530009c0000037e0000213d00000001044001900000037e0000c13d000000400030043f0000001f0320018f000000010400036700000005052002720000005f0000613d000000000600001900000005076002100000000008710019000000000774034f000000000707043b00000000007804350000000106600039000000000756004b000000570000413d000000000630004c0000006e0000613d0000000505500210000000000454034f00000000055100190000000303300210000000000605043300000000063601cf000000000636022f000000000404043b0000010003300089000000000434022f00000000033401cf000000000363019f00000000003504350000017f03000041000000400420008c000000000400001900000000040340190000017f05200197000000000650004c000000000300a0190000017f0550009c000000000304c019000000000330004c000003240000c13d00000000340104340000017e0540009c000003240000213d000000000221001900000000041400190000001f054000390000017f06000041000000000725004b000000000700001900000000070680190000017f055001970000017f08200197000000000985004b0000000006008019000000000585013f0000017f0550009c00000000050700190000000005066019000000000550004c000003240000c13d00000000050404330000017e0650009c0000037e0000213d0000003f065000390000000006a6016f000000400b00043d00000000066b00190000000007b6004b000000000700001900000001070040390000017e0860009c0000037e0000213d00000001077001900000037e0000c13d000000400060043f000000000c5b043600000020065000390000000007460019000000000727004b000003240000213d000000000750004c000000ab0000613d000000000700001900000020077000390000000008b70019000000000947001900000000090904330000000000980435000000000857004b000000a40000413d00000000046b0019000000000004043500000000030304330000017e0430009c000003240000213d00000000011300190000001f031000390000017f04000041000000000523004b000000000500001900000000050480190000017f033001970000017f06200197000000000763004b0000000004008019000000000363013f0000017f0330009c00000000030500190000000003046019000000000330004c000003240000c13d00000000030104330000017e0430009c0000037e0000213d0000003f043000390000000004a4016f000000400700043d0000000004470019000000000574004b000000000500001900000001050040390000017e0640009c0000037e0000213d00000001055001900000037e0000c13d000000400040043f0000000004370436000700000004001d00000020043000390000000005140019000000000225004b000003240000213d00040000000c001d00080000000b001d00050000000a001d000000000230004c000000e20000613d000000000200001900000020022000390000000005720019000000000612001900000000060604330000000000650435000000000532004b000000db0000413d0000000001470019000000000001043500000008010000290000000001010433000600000001001d0000017e0110009c0000037e0000213d000100000007001d0000000301000039000300000001001d000000000101041a000000010210019000000001011002700000007f0310018f0000000001036019000200000001001d0000001f0110008c00000000010000190000000101002039000000010110018f000000000112004b000003330000c13d0000000201000029000000200110008c000001180000413d000000030100002900000000001004350000017d0100004100000000020004140000017d0320009c0000000001024019000000c00110021000000180011001c7000080100200003905ee05e90000040f0000000102200190000003240000613d00000006030000290000001f023000390000000502200270000000200330008c0000000002004019000000000301043b00000002010000290000001f01100039000000050110027000000000011300190000000002230019000000000312004b000001180000813d000000000002041b0000000102200039000000000312004b000001140000413d00000006010000290000001f0110008c000004290000a13d000000030100002900000000001004350000017d0100004100000000020004140000017d0320009c0000000001024019000000c00110021000000180011001c7000080100200003905ee05e90000040f000000010220019000000005020000290000000806000029000003240000613d000000060300002900000000032301700000002002000039000000000101043b000001380000613d0000002002000039000000000400001900000000056200190000000005050433000000000051041b000000200220003900000001011000390000002004400039000000000534004b000001300000413d0000000604000029000000000343004b000001460000813d00000006030000290000000303300210000000f80330018f000000010400008a000000000334022f000000000343013f000000080400002900000000024200190000000002020433000000000232016f000000000021041b000000010100003900000006020000290000000102200210000004360000013d0000018a0210009c000001a30000a13d0000018b0210009c000002340000613d0000018c0210009c0000024f0000613d0000018d0110009c000003240000c13d0000000001000416000000000110004c000003240000c13d000000040100008a00000000011000310000017f02000041000000000310004c000000000300001900000000030240190000017f01100197000000000410004c000000000200a0190000017f0110009c00000000010300190000000001026019000000000110004c000003240000c13d000000400100043d000000120200003900000000002104350000017d020000410000017d0310009c0000000001028019000000400110021000000191011001c7000005ef0001042e000001840210009c0000029e0000613d000001850210009c000002f00000613d000001860110009c000003240000c13d0000000001000416000000000110004c000003240000c13d000000040100008a00000000011000310000017f02000041000000400310008c000000000300001900000000030240190000017f01100197000000000410004c000000000200a0190000017f0110009c00000000010300190000000001026019000000000110004c000003240000c13d00000001020003670000000401200370000000000101043b000001900310009c000003240000213d0000002402200370000000000302043b000001900230009c000003240000213d00000000001004350000000101000039000000200010043f0000004002000039000800000002001d0000000001000019000700000003001d05ee04b30000040f00000007020000290000000000200435000000200010043f0000000001000019000000080200002905ee04b30000040f000000000101041a000000400200043d00000000001204350000017d010000410000017d0320009c0000000001024019000000400110021000000191011001c7000005ef0001042e0000018e0210009c000003130000613d0000018f0110009c000003240000c13d0000000001000416000000000110004c000003240000c13d000000040100008a00000000011000310000017f02000041000000400310008c000000000300001900000000030240190000017f01100197000000000410004c000000000200a0190000017f0110009c00000000010300190000000001026019000000000110004c000003240000c13d00000001010003670000000402100370000000000202043b000001900320009c000003240000213d0000002401100370000000000301043b000000000100041105ee057d0000040f0000000101000039000000400200043d00000000001204350000017d010000410000017d0320009c0000000001024019000000400110021000000191011001c7000005ef0001042e0000000001000416000000000110004c000003240000c13d000000040100008a00000000011000310000017f02000041000000400310008c000000000300001900000000030240190000017f01100197000000000410004c000000000200a0190000017f0110009c00000000010300190000000001026019000000000110004c000003240000c13d00000004010000390000000101100367000000000101043b000800000001001d000001900110009c000003240000213d0000000001000411000600000001001d00000000001004350000000101000039000700000001001d000000200010043f0000017d0100004100000000020004140000017d0320009c0000000001024019000000c00110021000000192011001c7000080100200003905ee05e90000040f0000000102200190000003240000613d000000000101043b00000008020000290000000000200435000000200010043f0000017d0100004100000000020004140000017d0320009c0000000001024019000000c00110021000000192011001c7000080100200003905ee05e90000040f0000000102200190000003240000613d000000000101043b000000000101041a00000024020000390000000102200367000000000202043b0000000003120019000000000123004b000000000100001900000001010040390000000101100190000003930000613d000001980100004100000000001004350000001101000039000000040010043f0000019901000041000005f0000104300000000001000416000000000110004c000003240000c13d000000040100008a00000000011000310000017f02000041000000200310008c000000000300001900000000030240190000017f01100197000000000410004c000000000200a0190000017f0110009c00000000010300190000000001026019000000000110004c000003240000c13d00000004010000390000000101100367000000000101043b000001900210009c000003240000213d0000000000100435000000200000043f0000004002000039000000000100001905ee04b30000040f000000000101041a000000400200043d00000000001204350000017d010000410000017d0320009c0000000001024019000000400110021000000191011001c7000005ef0001042e0000000001000416000000000110004c000003240000c13d000000040100008a00000000011000310000017f02000041000000000310004c000000000300001900000000030240190000017f01100197000000000410004c000000000200a0190000017f0110009c00000000010300190000000001026019000000000110004c000003240000c13d0000000201000039000000000101041a000000400200043d00000000001204350000017d010000410000017d0320009c0000000001024019000000400110021000000191011001c7000005ef0001042e0000000001000416000000000110004c000003240000c13d000000040100008a00000000011000310000017f02000041000000600310008c000000000300001900000000030240190000017f01100197000000000410004c000000000200a0190000017f0110009c00000000010300190000000001026019000000000110004c000003240000c13d00000001010003670000000402100370000000000402043b000001900240009c000003240000213d0000002402100370000000000202043b000800000002001d000001900220009c000003240000213d0000004401100370000000000101043b000600000001001d00000000004004350000000101000039000500000001001d000000200010043f0000017d0100004100000000020004140000017d0320009c0000000001024019000000c00110021000000192011001c70000801002000039000700000004001d05ee05e90000040f0000000102200190000003240000613d000000000101043b0000000002000411000400000002001d0000000000200435000000200010043f0000017d0100004100000000020004140000017d0320009c0000000001024019000000c00110021000000192011001c7000080100200003905ee05e90000040f00000007030000290000000102200190000003240000613d000000000101043b000000000201041a000000010100008a000000000112004b000003ac0000c13d00000000010300190000000802000029000000060300002905ee04df0000040f000000400100043d000000050200002900000000002104350000017d020000410000017d0310009c0000000001028019000000400110021000000191011001c7000005ef0001042e0000000001000416000000000110004c000003240000c13d000000040100008a00000000011000310000017f02000041000000400310008c000000000300001900000000030240190000017f01100197000000000410004c000000000200a0190000017f0110009c00000000010300190000000001026019000000000110004c000003240000c13d00000001010003670000000402100370000000000202043b000800000002001d000001900220009c000003240000213d0000002401100370000000000101043b000700000001001d0000000001000411000500000001001d00000000001004350000000101000039000600000001001d000000200010043f0000017d0100004100000000020004140000017d0320009c0000000001024019000000c00110021000000192011001c7000080100200003905ee05e90000040f0000000102200190000003240000613d000000000101043b00000008020000290000000000200435000000200010043f0000017d0100004100000000020004140000017d0320009c0000000001024019000000c00110021000000192011001c7000080100200003905ee05e90000040f0000000102200190000003240000613d000000000101043b000000000101041a0000000703000029000000000231004b0000039f0000813d000000400100043d000000640210003900000193030000410000000000320435000000440210003900000194030000410000000000320435000000240210003900000025030000390000000000320435000001950200004100000000002104350000000402100039000000200300003900000000003204350000017d020000410000017d0310009c0000000001028019000000400110021000000196011001c7000005f0000104300000000001000416000000000110004c000003240000c13d000000040100008a00000000011000310000017f02000041000000400310008c000000000300001900000000030240190000017f01100197000000000410004c000000000200a0190000017f0110009c00000000010300190000000001026019000000000110004c000003240000c13d00000001010003670000000402100370000000000202043b000001900320009c000003240000213d0000002401100370000000000301043b000000000100041105ee04df0000040f0000000101000039000000400200043d00000000001204350000017d010000410000017d0320009c0000000001024019000000400110021000000191011001c7000005ef0001042e0000000001000416000000000110004c000003240000c13d000000040100008a00000000011000310000017f02000041000000000310004c000000000300001900000000030240190000017f01100197000000000410004c000000000200a0190000017f0110009c00000000010300190000000001026019000000000110004c000003260000613d0000000001000019000005f0000104300000000303000039000000000203041a000000010420019000000001012002700000007f0510018f000000000601001900000000060560190000001f0560008c00000000050000190000000105002039000000000552013f0000000105500190000003390000613d000001980100004100000000001004350000002201000039000000040010043f0000019901000041000005f000010430000000800060043f000000000440004c000003690000c13d000001000300008a000000000232016f000000a00020043f000000000160004c000000c001000039000000a001006039000003780000013d0000000000500435000000000410004c0000000004000019000003500000613d000001970500004100000000040000190000000006430019000000000705041a000000000076043500000001055000390000002004400039000000000614004b000003490000413d0000003f01400039000000200300008a000000000331016f0000000001230019000000000331004b000000000400001900000001040040390000017e0310009c0000037e0000213d00000001034001900000037e0000c13d000000400010043f000800000001001d05ee04c90000040f000000080400002900000000014100490000017d020000410000017d0310009c00000000010280190000017d0340009c000000000204401900000040022002100000006001100210000000000121019f000005ef0001042e0000000000300435000000a001000039000000000260004c000003840000613d000001a10200004100000000040000190000000003040019000000000402041a000000a005300039000000000045043500000001022000390000002004300039000000000564004b0000036f0000413d000000c0013000390000001f01100039000000200200008a000000000121016f000001a202100041000001a30220009c000003840000813d000001980100004100000000001004350000004101000039000000040010043f0000019901000041000005f000010430000800000001001d000000400010043f000000800200003905ee04c90000040f000000080400002900000000014100490000017d020000410000017d0310009c00000000010280190000017d0340009c000000000204401900000040022002100000006001100210000000000121019f000005ef0001042e0000000601000029000000080200002905ee057d0000040f000000400100043d000000070200002900000000002104350000017d020000410000017d0310009c0000000001028019000000400110021000000191011001c7000005ef0001042e00000000033100490000000501000029000000080200002905ee057d0000040f000000400100043d000000060200002900000000002104350000017d020000410000017d0310009c0000000001028019000000400110021000000191011001c7000005ef0001042e0000000601000029000000000112004b000003c10000813d000000400100043d00000044021000390000019f03000041000000000032043500000024021000390000001d030000390000000000320435000001950200004100000000002104350000000402100039000000200300003900000000003204350000017d020000410000017d0310009c00000000010280190000004001100210000001a0011001c7000005f000010430000300000002001d000000000130004c000003d90000c13d000000400100043d00000064021000390000019d03000041000000000032043500000044021000390000019e030000410000000000320435000000240210003900000024030000390000000000320435000001950200004100000000002104350000000402100039000000200300003900000000003204350000017d020000410000017d0310009c0000000001028019000000400110021000000196011001c7000005f00001043000000004010000290000019001100198000400000001001d000003f20000c13d000000400100043d00000064021000390000019b03000041000000000032043500000044021000390000019c030000410000000000320435000000240210003900000022030000390000000000320435000001950200004100000000002104350000000402100039000000200300003900000000003204350000017d020000410000017d0310009c0000000001028019000000400110021000000196011001c7000005f000010430000000070100002900000000001004350000000501000029000000200010043f0000017d0100004100000000020004140000017d0320009c0000000001024019000000c00110021000000192011001c7000080100200003905ee05e90000040f0000000102200190000003240000613d000000000101043b00000004020000290000000000200435000000200010043f0000017d0100004100000000020004140000017d0320009c0000000001024019000000c00110021000000192011001c7000080100200003905ee05e90000040f00000003030000290000000102200190000003240000613d00000006020000290000000002230049000000000101043b000000000021041b000000400100043d00000000002104350000017d0200004100000000030004140000017d0430009c00000000030280190000017d0410009c00000000010280190000004001100210000000c002300210000000000112019f00000180011001c70000800d0200003900000003030000390000019a040000410000000705000029000000040600002905ee05e40000040f00000007030000290000000101200190000002910000c13d000003240000013d0000000601000029000000000110004c00000000010000190000042f0000613d0000000401000029000000000101043300000006040000290000000302400210000000010300008a000000000223022f000000000232013f000000000221016f0000000101400210000000000112019f0000000302000029000000000012041b00000001010000290000000001010433000800000001001d0000017e0110009c0000037e0000213d0000000401000039000600000001001d000000000101041a000000010210019000000001021002700000007f0320018f0000000002036019000400000002001d0000001f0220008c00000000020000190000000102002039000000000121013f0000000101100190000003330000c13d0000000401000029000000200110008c0000046c0000413d000000060100002900000000001004350000017d0100004100000000020004140000017d0320009c0000000001024019000000c00110021000000180011001c7000080100200003905ee05e90000040f0000000102200190000003240000613d00000008030000290000001f023000390000000502200270000000200330008c0000000002004019000000000301043b00000004010000290000001f01100039000000050110027000000000011300190000000002230019000000000312004b0000046c0000813d000000000002041b0000000102200039000000000312004b000004680000413d00000008010000290000001f0110008c0000049e0000a13d000000060100002900000000001004350000017d0100004100000000020004140000017d0320009c0000000001024019000000c00110021000000180011001c7000080100200003905ee05e90000040f000000010220019000000005020000290000000106000029000003240000613d000000080300002900000000032301700000002002000039000000000101043b0000048c0000613d0000002002000039000000000400001900000000056200190000000005050433000000000051041b000000200220003900000001011000390000002004400039000000000534004b000004840000413d0000000804000029000000000343004b0000049a0000813d00000008030000290000000303300210000000f80330018f000000010400008a000000000334022f000000000343013f000000010400002900000000024200190000000002020433000000000232016f000000000021041b000000010100003900000008020000290000000102200210000004ab0000013d0000000801000029000000000110004c0000000001000019000004a40000613d0000000701000029000000000101043300000008040000290000000302400210000000010300008a000000000223022f000000000232013f000000000221016f0000000101400210000000000112019f0000000602000029000000000012041b0000002001000039000001000010044300000120000004430000018101000041000005ef0001042e0000017d030000410000017d0410009c000000000103801900000040011002100000017d0420009c00000000020380190000006002200210000000000112019f00000000020004140000017d0420009c0000000002038019000000c002200210000000000112019f000001a4011001c7000080100200003905ee05e90000040f0000000102200190000004c70000613d000000000101043b000000000001042d0000000001000019000005f00001043000000020030000390000000004310436000000000302043300000000003404350000004001100039000000000430004c000004d80000613d000000000400001900000000054100190000002004400039000000000624001900000000060604330000000000650435000000000534004b000004d10000413d000000000231001900000000000204350000001f02300039000000200300008a000000000232016f0000000001210019000000000001042d00040000000000020000019001100198000005380000613d000400000003001d0000019002200198000200000002001d0000054d0000613d000300000001001d0000000000100435000000200000043f0000017d0100004100000000020004140000017d0320009c0000000001024019000000c00110021000000192011001c7000080100200003905ee05e90000040f0000000102200190000005360000613d000000000101043b000000000201041a0000000401000029000100000002001d000000000112004b000005620000413d00000003010000290000000000100435000000200000043f0000017d0100004100000000020004140000017d0320009c0000000001024019000000c00110021000000192011001c7000080100200003905ee05e90000040f0000000102200190000005360000613d000000040200002900000001030000290000000002230049000000000101043b000000000021041b000000020100002900000000001004350000017d0100004100000000020004140000017d0320009c0000000001024019000000c00110021000000192011001c7000080100200003905ee05e90000040f0000000102200190000005360000613d000000000101043b000000000301041a00000004040000290000000002430019000000000332004b000000000300001900000001030040390000000103300190000005770000c13d000000000021041b000000400100043d00000000004104350000017d0200004100000000030004140000017d0430009c00000000030280190000017d0410009c00000000010280190000004001100210000000c002300210000000000112019f00000180011001c70000800d020000390000000303000039000001a5040000410000000305000029000000020600002905ee05e40000040f0000000101200190000005360000613d000000000001042d0000000001000019000005f000010430000000400100043d0000006402100039000001aa0300004100000000003204350000004402100039000001ab030000410000000000320435000000240210003900000025030000390000000000320435000001950200004100000000002104350000000402100039000000200300003900000000003204350000017d020000410000017d0310009c0000000001028019000000400110021000000196011001c7000005f000010430000000400100043d0000006402100039000001a80300004100000000003204350000004402100039000001a9030000410000000000320435000000240210003900000023030000390000000000320435000001950200004100000000002104350000000402100039000000200300003900000000003204350000017d020000410000017d0310009c0000000001028019000000400110021000000196011001c7000005f000010430000000400100043d0000006402100039000001a60300004100000000003204350000004402100039000001a7030000410000000000320435000000240210003900000026030000390000000000320435000001950200004100000000002104350000000402100039000000200300003900000000003204350000017d020000410000017d0310009c0000000001028019000000400110021000000196011001c7000005f000010430000001980100004100000000001004350000001101000039000000040010043f0000019901000041000005f00001043000030000000000020000019001100198000005ba0000613d000200000003001d0000019002200198000300000002001d000005cf0000613d000100000001001d00000000001004350000000101000039000000200010043f0000017d0100004100000000020004140000017d0320009c0000000001024019000000c00110021000000192011001c7000080100200003905ee05e90000040f00000001022001900000000304000029000005b80000613d000000000101043b0000000000400435000000200010043f0000017d0100004100000000020004140000017d0320009c0000000001024019000000c00110021000000192011001c7000080100200003905ee05e90000040f00000003060000290000000102200190000005b80000613d000000000101043b0000000202000029000000000021041b000000400100043d00000000002104350000017d0200004100000000030004140000017d0430009c00000000030280190000017d0410009c00000000010280190000004001100210000000c002300210000000000112019f00000180011001c70000800d0200003900000003030000390000019a04000041000000010500002905ee05e40000040f0000000101200190000005b80000613d000000000001042d0000000001000019000005f000010430000000400100043d00000064021000390000019d03000041000000000032043500000044021000390000019e030000410000000000320435000000240210003900000024030000390000000000320435000001950200004100000000002104350000000402100039000000200300003900000000003204350000017d020000410000017d0310009c0000000001028019000000400110021000000196011001c7000005f000010430000000400100043d00000064021000390000019b03000041000000000032043500000044021000390000019c030000410000000000320435000000240210003900000022030000390000000000320435000001950200004100000000002104350000000402100039000000200300003900000000003204350000017d020000410000017d0310009c0000000001028019000000400110021000000196011001c7000005f000010430000005e7002104210000000102000039000000000001042d0000000002000019000000000001042d000005ec002104230000000102000039000000000001042d0000000002000019000000000001042d000005ee00000432000005ef0001042e000005f00001043000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff000000000000000000000000000000000000000000000000ffffffffffffffff800000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000200000000000000000000000000000000200000000000000000000000000000040000001000000000000000000000000000000000000000000000000000000000000000000000000003950935000000000000000000000000000000000000000000000000000000000a457c2d600000000000000000000000000000000000000000000000000000000a457c2d700000000000000000000000000000000000000000000000000000000a9059cbb00000000000000000000000000000000000000000000000000000000dd62ed3e00000000000000000000000000000000000000000000000000000000395093510000000000000000000000000000000000000000000000000000000070a082310000000000000000000000000000000000000000000000000000000095d89b410000000000000000000000000000000000000000000000000000000018160ddc0000000000000000000000000000000000000000000000000000000018160ddd0000000000000000000000000000000000000000000000000000000023b872dd00000000000000000000000000000000000000000000000000000000313ce5670000000000000000000000000000000000000000000000000000000006fdde0300000000000000000000000000000000000000000000000000000000095ea7b3000000000000000000000000ffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000200000000000000000000000000200000000000000000000000000000000000040000000000000000000000000207a65726f00000000000000000000000000000000000000000000000000000045524332303a2064656372656173656420616c6c6f77616e63652062656c6f7708c379a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000840000000000000000000000008a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b4e487b710000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000000000000000000000008c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925737300000000000000000000000000000000000000000000000000000000000045524332303a20617070726f766520746f20746865207a65726f206164647265726573730000000000000000000000000000000000000000000000000000000045524332303a20617070726f76652066726f6d20746865207a65726f2061646445524332303a20696e73756666696369656e7420616c6c6f77616e63650000000000000000000000000000000000000000000064000000000000000000000000c2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85bffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff00000000000000800200000000000000000000000000000000000000000000000000000000000000ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef616c616e6365000000000000000000000000000000000000000000000000000045524332303a207472616e7366657220616d6f756e7420657863656564732062657373000000000000000000000000000000000000000000000000000000000045524332303a207472616e7366657220746f20746865207a65726f2061646472647265737300000000000000000000000000000000000000000000000000000045524332303a207472616e736665722066726f6d20746865207a65726f20616495f053a375f41aa4ff047f1d5053c1c866c82db245cabc25796cd9cb10e57b4a", - "deployedBytecode": "0x00020000000000020008000000000002000100000001035500000060011002700000017d0010019d0000008001000039000000400010043f0000000101200190000000410000c13d0000000001000031000000040110008c000003240000413d0000000101000367000000000101043b000000e001100270000001820210009c0000014a0000a13d000001830210009c0000016c0000213d000001870210009c000001ca0000613d000001880210009c000002100000613d000001890110009c000003240000c13d0000000001000416000000000110004c000003240000c13d000000040100008a00000000011000310000017f02000041000000000310004c000000000300001900000000030240190000017f01100197000000000410004c000000000200a0190000017f0110009c00000000010300190000000001026019000000000110004c000003240000c13d0000000405000039000000000405041a000000010640019000000001014002700000007f0210018f00000000010260190000001f0210008c00000000020000190000000102002039000000000224013f0000000102200190000003330000c13d000000400200043d0000000003120436000000000660004c000003430000c13d000001000500008a000000000454016f0000000000430435000000000110004c00000020040000390000000004006019000003500000013d0000000001000416000000000110004c000003240000c13d00000000020000310000001f01200039000000200a00008a0000000004a1016f000000400100043d0000000003140019000000000443004b000000000400001900000001040040390000017e0530009c0000037e0000213d00000001044001900000037e0000c13d000000400030043f0000001f0320018f000000010400036700000005052002720000005f0000613d000000000600001900000005076002100000000008710019000000000774034f000000000707043b00000000007804350000000106600039000000000756004b000000570000413d000000000630004c0000006e0000613d0000000505500210000000000454034f00000000055100190000000303300210000000000605043300000000063601cf000000000636022f000000000404043b0000010003300089000000000434022f00000000033401cf000000000363019f00000000003504350000017f03000041000000400420008c000000000400001900000000040340190000017f05200197000000000650004c000000000300a0190000017f0550009c000000000304c019000000000330004c000003240000c13d00000000340104340000017e0540009c000003240000213d000000000221001900000000041400190000001f054000390000017f06000041000000000725004b000000000700001900000000070680190000017f055001970000017f08200197000000000985004b0000000006008019000000000585013f0000017f0550009c00000000050700190000000005066019000000000550004c000003240000c13d00000000050404330000017e0650009c0000037e0000213d0000003f065000390000000006a6016f000000400b00043d00000000066b00190000000007b6004b000000000700001900000001070040390000017e0860009c0000037e0000213d00000001077001900000037e0000c13d000000400060043f000000000c5b043600000020065000390000000007460019000000000727004b000003240000213d000000000750004c000000ab0000613d000000000700001900000020077000390000000008b70019000000000947001900000000090904330000000000980435000000000857004b000000a40000413d00000000046b0019000000000004043500000000030304330000017e0430009c000003240000213d00000000011300190000001f031000390000017f04000041000000000523004b000000000500001900000000050480190000017f033001970000017f06200197000000000763004b0000000004008019000000000363013f0000017f0330009c00000000030500190000000003046019000000000330004c000003240000c13d00000000030104330000017e0430009c0000037e0000213d0000003f043000390000000004a4016f000000400700043d0000000004470019000000000574004b000000000500001900000001050040390000017e0640009c0000037e0000213d00000001055001900000037e0000c13d000000400040043f0000000004370436000700000004001d00000020043000390000000005140019000000000225004b000003240000213d00040000000c001d00080000000b001d00050000000a001d000000000230004c000000e20000613d000000000200001900000020022000390000000005720019000000000612001900000000060604330000000000650435000000000532004b000000db0000413d0000000001470019000000000001043500000008010000290000000001010433000600000001001d0000017e0110009c0000037e0000213d000100000007001d0000000301000039000300000001001d000000000101041a000000010210019000000001011002700000007f0310018f0000000001036019000200000001001d0000001f0110008c00000000010000190000000101002039000000010110018f000000000112004b000003330000c13d0000000201000029000000200110008c000001180000413d000000030100002900000000001004350000017d0100004100000000020004140000017d0320009c0000000001024019000000c00110021000000180011001c7000080100200003905ee05e90000040f0000000102200190000003240000613d00000006030000290000001f023000390000000502200270000000200330008c0000000002004019000000000301043b00000002010000290000001f01100039000000050110027000000000011300190000000002230019000000000312004b000001180000813d000000000002041b0000000102200039000000000312004b000001140000413d00000006010000290000001f0110008c000004290000a13d000000030100002900000000001004350000017d0100004100000000020004140000017d0320009c0000000001024019000000c00110021000000180011001c7000080100200003905ee05e90000040f000000010220019000000005020000290000000806000029000003240000613d000000060300002900000000032301700000002002000039000000000101043b000001380000613d0000002002000039000000000400001900000000056200190000000005050433000000000051041b000000200220003900000001011000390000002004400039000000000534004b000001300000413d0000000604000029000000000343004b000001460000813d00000006030000290000000303300210000000f80330018f000000010400008a000000000334022f000000000343013f000000080400002900000000024200190000000002020433000000000232016f000000000021041b000000010100003900000006020000290000000102200210000004360000013d0000018a0210009c000001a30000a13d0000018b0210009c000002340000613d0000018c0210009c0000024f0000613d0000018d0110009c000003240000c13d0000000001000416000000000110004c000003240000c13d000000040100008a00000000011000310000017f02000041000000000310004c000000000300001900000000030240190000017f01100197000000000410004c000000000200a0190000017f0110009c00000000010300190000000001026019000000000110004c000003240000c13d000000400100043d000000120200003900000000002104350000017d020000410000017d0310009c0000000001028019000000400110021000000191011001c7000005ef0001042e000001840210009c0000029e0000613d000001850210009c000002f00000613d000001860110009c000003240000c13d0000000001000416000000000110004c000003240000c13d000000040100008a00000000011000310000017f02000041000000400310008c000000000300001900000000030240190000017f01100197000000000410004c000000000200a0190000017f0110009c00000000010300190000000001026019000000000110004c000003240000c13d00000001020003670000000401200370000000000101043b000001900310009c000003240000213d0000002402200370000000000302043b000001900230009c000003240000213d00000000001004350000000101000039000000200010043f0000004002000039000800000002001d0000000001000019000700000003001d05ee04b30000040f00000007020000290000000000200435000000200010043f0000000001000019000000080200002905ee04b30000040f000000000101041a000000400200043d00000000001204350000017d010000410000017d0320009c0000000001024019000000400110021000000191011001c7000005ef0001042e0000018e0210009c000003130000613d0000018f0110009c000003240000c13d0000000001000416000000000110004c000003240000c13d000000040100008a00000000011000310000017f02000041000000400310008c000000000300001900000000030240190000017f01100197000000000410004c000000000200a0190000017f0110009c00000000010300190000000001026019000000000110004c000003240000c13d00000001010003670000000402100370000000000202043b000001900320009c000003240000213d0000002401100370000000000301043b000000000100041105ee057d0000040f0000000101000039000000400200043d00000000001204350000017d010000410000017d0320009c0000000001024019000000400110021000000191011001c7000005ef0001042e0000000001000416000000000110004c000003240000c13d000000040100008a00000000011000310000017f02000041000000400310008c000000000300001900000000030240190000017f01100197000000000410004c000000000200a0190000017f0110009c00000000010300190000000001026019000000000110004c000003240000c13d00000004010000390000000101100367000000000101043b000800000001001d000001900110009c000003240000213d0000000001000411000600000001001d00000000001004350000000101000039000700000001001d000000200010043f0000017d0100004100000000020004140000017d0320009c0000000001024019000000c00110021000000192011001c7000080100200003905ee05e90000040f0000000102200190000003240000613d000000000101043b00000008020000290000000000200435000000200010043f0000017d0100004100000000020004140000017d0320009c0000000001024019000000c00110021000000192011001c7000080100200003905ee05e90000040f0000000102200190000003240000613d000000000101043b000000000101041a00000024020000390000000102200367000000000202043b0000000003120019000000000123004b000000000100001900000001010040390000000101100190000003930000613d000001980100004100000000001004350000001101000039000000040010043f0000019901000041000005f0000104300000000001000416000000000110004c000003240000c13d000000040100008a00000000011000310000017f02000041000000200310008c000000000300001900000000030240190000017f01100197000000000410004c000000000200a0190000017f0110009c00000000010300190000000001026019000000000110004c000003240000c13d00000004010000390000000101100367000000000101043b000001900210009c000003240000213d0000000000100435000000200000043f0000004002000039000000000100001905ee04b30000040f000000000101041a000000400200043d00000000001204350000017d010000410000017d0320009c0000000001024019000000400110021000000191011001c7000005ef0001042e0000000001000416000000000110004c000003240000c13d000000040100008a00000000011000310000017f02000041000000000310004c000000000300001900000000030240190000017f01100197000000000410004c000000000200a0190000017f0110009c00000000010300190000000001026019000000000110004c000003240000c13d0000000201000039000000000101041a000000400200043d00000000001204350000017d010000410000017d0320009c0000000001024019000000400110021000000191011001c7000005ef0001042e0000000001000416000000000110004c000003240000c13d000000040100008a00000000011000310000017f02000041000000600310008c000000000300001900000000030240190000017f01100197000000000410004c000000000200a0190000017f0110009c00000000010300190000000001026019000000000110004c000003240000c13d00000001010003670000000402100370000000000402043b000001900240009c000003240000213d0000002402100370000000000202043b000800000002001d000001900220009c000003240000213d0000004401100370000000000101043b000600000001001d00000000004004350000000101000039000500000001001d000000200010043f0000017d0100004100000000020004140000017d0320009c0000000001024019000000c00110021000000192011001c70000801002000039000700000004001d05ee05e90000040f0000000102200190000003240000613d000000000101043b0000000002000411000400000002001d0000000000200435000000200010043f0000017d0100004100000000020004140000017d0320009c0000000001024019000000c00110021000000192011001c7000080100200003905ee05e90000040f00000007030000290000000102200190000003240000613d000000000101043b000000000201041a000000010100008a000000000112004b000003ac0000c13d00000000010300190000000802000029000000060300002905ee04df0000040f000000400100043d000000050200002900000000002104350000017d020000410000017d0310009c0000000001028019000000400110021000000191011001c7000005ef0001042e0000000001000416000000000110004c000003240000c13d000000040100008a00000000011000310000017f02000041000000400310008c000000000300001900000000030240190000017f01100197000000000410004c000000000200a0190000017f0110009c00000000010300190000000001026019000000000110004c000003240000c13d00000001010003670000000402100370000000000202043b000800000002001d000001900220009c000003240000213d0000002401100370000000000101043b000700000001001d0000000001000411000500000001001d00000000001004350000000101000039000600000001001d000000200010043f0000017d0100004100000000020004140000017d0320009c0000000001024019000000c00110021000000192011001c7000080100200003905ee05e90000040f0000000102200190000003240000613d000000000101043b00000008020000290000000000200435000000200010043f0000017d0100004100000000020004140000017d0320009c0000000001024019000000c00110021000000192011001c7000080100200003905ee05e90000040f0000000102200190000003240000613d000000000101043b000000000101041a0000000703000029000000000231004b0000039f0000813d000000400100043d000000640210003900000193030000410000000000320435000000440210003900000194030000410000000000320435000000240210003900000025030000390000000000320435000001950200004100000000002104350000000402100039000000200300003900000000003204350000017d020000410000017d0310009c0000000001028019000000400110021000000196011001c7000005f0000104300000000001000416000000000110004c000003240000c13d000000040100008a00000000011000310000017f02000041000000400310008c000000000300001900000000030240190000017f01100197000000000410004c000000000200a0190000017f0110009c00000000010300190000000001026019000000000110004c000003240000c13d00000001010003670000000402100370000000000202043b000001900320009c000003240000213d0000002401100370000000000301043b000000000100041105ee04df0000040f0000000101000039000000400200043d00000000001204350000017d010000410000017d0320009c0000000001024019000000400110021000000191011001c7000005ef0001042e0000000001000416000000000110004c000003240000c13d000000040100008a00000000011000310000017f02000041000000000310004c000000000300001900000000030240190000017f01100197000000000410004c000000000200a0190000017f0110009c00000000010300190000000001026019000000000110004c000003260000613d0000000001000019000005f0000104300000000303000039000000000203041a000000010420019000000001012002700000007f0510018f000000000601001900000000060560190000001f0560008c00000000050000190000000105002039000000000552013f0000000105500190000003390000613d000001980100004100000000001004350000002201000039000000040010043f0000019901000041000005f000010430000000800060043f000000000440004c000003690000c13d000001000300008a000000000232016f000000a00020043f000000000160004c000000c001000039000000a001006039000003780000013d0000000000500435000000000410004c0000000004000019000003500000613d000001970500004100000000040000190000000006430019000000000705041a000000000076043500000001055000390000002004400039000000000614004b000003490000413d0000003f01400039000000200300008a000000000331016f0000000001230019000000000331004b000000000400001900000001040040390000017e0310009c0000037e0000213d00000001034001900000037e0000c13d000000400010043f000800000001001d05ee04c90000040f000000080400002900000000014100490000017d020000410000017d0310009c00000000010280190000017d0340009c000000000204401900000040022002100000006001100210000000000121019f000005ef0001042e0000000000300435000000a001000039000000000260004c000003840000613d000001a10200004100000000040000190000000003040019000000000402041a000000a005300039000000000045043500000001022000390000002004300039000000000564004b0000036f0000413d000000c0013000390000001f01100039000000200200008a000000000121016f000001a202100041000001a30220009c000003840000813d000001980100004100000000001004350000004101000039000000040010043f0000019901000041000005f000010430000800000001001d000000400010043f000000800200003905ee04c90000040f000000080400002900000000014100490000017d020000410000017d0310009c00000000010280190000017d0340009c000000000204401900000040022002100000006001100210000000000121019f000005ef0001042e0000000601000029000000080200002905ee057d0000040f000000400100043d000000070200002900000000002104350000017d020000410000017d0310009c0000000001028019000000400110021000000191011001c7000005ef0001042e00000000033100490000000501000029000000080200002905ee057d0000040f000000400100043d000000060200002900000000002104350000017d020000410000017d0310009c0000000001028019000000400110021000000191011001c7000005ef0001042e0000000601000029000000000112004b000003c10000813d000000400100043d00000044021000390000019f03000041000000000032043500000024021000390000001d030000390000000000320435000001950200004100000000002104350000000402100039000000200300003900000000003204350000017d020000410000017d0310009c00000000010280190000004001100210000001a0011001c7000005f000010430000300000002001d000000000130004c000003d90000c13d000000400100043d00000064021000390000019d03000041000000000032043500000044021000390000019e030000410000000000320435000000240210003900000024030000390000000000320435000001950200004100000000002104350000000402100039000000200300003900000000003204350000017d020000410000017d0310009c0000000001028019000000400110021000000196011001c7000005f00001043000000004010000290000019001100198000400000001001d000003f20000c13d000000400100043d00000064021000390000019b03000041000000000032043500000044021000390000019c030000410000000000320435000000240210003900000022030000390000000000320435000001950200004100000000002104350000000402100039000000200300003900000000003204350000017d020000410000017d0310009c0000000001028019000000400110021000000196011001c7000005f000010430000000070100002900000000001004350000000501000029000000200010043f0000017d0100004100000000020004140000017d0320009c0000000001024019000000c00110021000000192011001c7000080100200003905ee05e90000040f0000000102200190000003240000613d000000000101043b00000004020000290000000000200435000000200010043f0000017d0100004100000000020004140000017d0320009c0000000001024019000000c00110021000000192011001c7000080100200003905ee05e90000040f00000003030000290000000102200190000003240000613d00000006020000290000000002230049000000000101043b000000000021041b000000400100043d00000000002104350000017d0200004100000000030004140000017d0430009c00000000030280190000017d0410009c00000000010280190000004001100210000000c002300210000000000112019f00000180011001c70000800d0200003900000003030000390000019a040000410000000705000029000000040600002905ee05e40000040f00000007030000290000000101200190000002910000c13d000003240000013d0000000601000029000000000110004c00000000010000190000042f0000613d0000000401000029000000000101043300000006040000290000000302400210000000010300008a000000000223022f000000000232013f000000000221016f0000000101400210000000000112019f0000000302000029000000000012041b00000001010000290000000001010433000800000001001d0000017e0110009c0000037e0000213d0000000401000039000600000001001d000000000101041a000000010210019000000001021002700000007f0320018f0000000002036019000400000002001d0000001f0220008c00000000020000190000000102002039000000000121013f0000000101100190000003330000c13d0000000401000029000000200110008c0000046c0000413d000000060100002900000000001004350000017d0100004100000000020004140000017d0320009c0000000001024019000000c00110021000000180011001c7000080100200003905ee05e90000040f0000000102200190000003240000613d00000008030000290000001f023000390000000502200270000000200330008c0000000002004019000000000301043b00000004010000290000001f01100039000000050110027000000000011300190000000002230019000000000312004b0000046c0000813d000000000002041b0000000102200039000000000312004b000004680000413d00000008010000290000001f0110008c0000049e0000a13d000000060100002900000000001004350000017d0100004100000000020004140000017d0320009c0000000001024019000000c00110021000000180011001c7000080100200003905ee05e90000040f000000010220019000000005020000290000000106000029000003240000613d000000080300002900000000032301700000002002000039000000000101043b0000048c0000613d0000002002000039000000000400001900000000056200190000000005050433000000000051041b000000200220003900000001011000390000002004400039000000000534004b000004840000413d0000000804000029000000000343004b0000049a0000813d00000008030000290000000303300210000000f80330018f000000010400008a000000000334022f000000000343013f000000010400002900000000024200190000000002020433000000000232016f000000000021041b000000010100003900000008020000290000000102200210000004ab0000013d0000000801000029000000000110004c0000000001000019000004a40000613d0000000701000029000000000101043300000008040000290000000302400210000000010300008a000000000223022f000000000232013f000000000221016f0000000101400210000000000112019f0000000602000029000000000012041b0000002001000039000001000010044300000120000004430000018101000041000005ef0001042e0000017d030000410000017d0410009c000000000103801900000040011002100000017d0420009c00000000020380190000006002200210000000000112019f00000000020004140000017d0420009c0000000002038019000000c002200210000000000112019f000001a4011001c7000080100200003905ee05e90000040f0000000102200190000004c70000613d000000000101043b000000000001042d0000000001000019000005f00001043000000020030000390000000004310436000000000302043300000000003404350000004001100039000000000430004c000004d80000613d000000000400001900000000054100190000002004400039000000000624001900000000060604330000000000650435000000000534004b000004d10000413d000000000231001900000000000204350000001f02300039000000200300008a000000000232016f0000000001210019000000000001042d00040000000000020000019001100198000005380000613d000400000003001d0000019002200198000200000002001d0000054d0000613d000300000001001d0000000000100435000000200000043f0000017d0100004100000000020004140000017d0320009c0000000001024019000000c00110021000000192011001c7000080100200003905ee05e90000040f0000000102200190000005360000613d000000000101043b000000000201041a0000000401000029000100000002001d000000000112004b000005620000413d00000003010000290000000000100435000000200000043f0000017d0100004100000000020004140000017d0320009c0000000001024019000000c00110021000000192011001c7000080100200003905ee05e90000040f0000000102200190000005360000613d000000040200002900000001030000290000000002230049000000000101043b000000000021041b000000020100002900000000001004350000017d0100004100000000020004140000017d0320009c0000000001024019000000c00110021000000192011001c7000080100200003905ee05e90000040f0000000102200190000005360000613d000000000101043b000000000301041a00000004040000290000000002430019000000000332004b000000000300001900000001030040390000000103300190000005770000c13d000000000021041b000000400100043d00000000004104350000017d0200004100000000030004140000017d0430009c00000000030280190000017d0410009c00000000010280190000004001100210000000c002300210000000000112019f00000180011001c70000800d020000390000000303000039000001a5040000410000000305000029000000020600002905ee05e40000040f0000000101200190000005360000613d000000000001042d0000000001000019000005f000010430000000400100043d0000006402100039000001aa0300004100000000003204350000004402100039000001ab030000410000000000320435000000240210003900000025030000390000000000320435000001950200004100000000002104350000000402100039000000200300003900000000003204350000017d020000410000017d0310009c0000000001028019000000400110021000000196011001c7000005f000010430000000400100043d0000006402100039000001a80300004100000000003204350000004402100039000001a9030000410000000000320435000000240210003900000023030000390000000000320435000001950200004100000000002104350000000402100039000000200300003900000000003204350000017d020000410000017d0310009c0000000001028019000000400110021000000196011001c7000005f000010430000000400100043d0000006402100039000001a60300004100000000003204350000004402100039000001a7030000410000000000320435000000240210003900000026030000390000000000320435000001950200004100000000002104350000000402100039000000200300003900000000003204350000017d020000410000017d0310009c0000000001028019000000400110021000000196011001c7000005f000010430000001980100004100000000001004350000001101000039000000040010043f0000019901000041000005f00001043000030000000000020000019001100198000005ba0000613d000200000003001d0000019002200198000300000002001d000005cf0000613d000100000001001d00000000001004350000000101000039000000200010043f0000017d0100004100000000020004140000017d0320009c0000000001024019000000c00110021000000192011001c7000080100200003905ee05e90000040f00000001022001900000000304000029000005b80000613d000000000101043b0000000000400435000000200010043f0000017d0100004100000000020004140000017d0320009c0000000001024019000000c00110021000000192011001c7000080100200003905ee05e90000040f00000003060000290000000102200190000005b80000613d000000000101043b0000000202000029000000000021041b000000400100043d00000000002104350000017d0200004100000000030004140000017d0430009c00000000030280190000017d0410009c00000000010280190000004001100210000000c002300210000000000112019f00000180011001c70000800d0200003900000003030000390000019a04000041000000010500002905ee05e40000040f0000000101200190000005b80000613d000000000001042d0000000001000019000005f000010430000000400100043d00000064021000390000019d03000041000000000032043500000044021000390000019e030000410000000000320435000000240210003900000024030000390000000000320435000001950200004100000000002104350000000402100039000000200300003900000000003204350000017d020000410000017d0310009c0000000001028019000000400110021000000196011001c7000005f000010430000000400100043d00000064021000390000019b03000041000000000032043500000044021000390000019c030000410000000000320435000000240210003900000022030000390000000000320435000001950200004100000000002104350000000402100039000000200300003900000000003204350000017d020000410000017d0310009c0000000001028019000000400110021000000196011001c7000005f000010430000005e7002104210000000102000039000000000001042d0000000002000019000000000001042d000005ec002104230000000102000039000000000001042d0000000002000019000000000001042d000005ee00000432000005ef0001042e000005f00001043000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff000000000000000000000000000000000000000000000000ffffffffffffffff800000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000200000000000000000000000000000000200000000000000000000000000000040000001000000000000000000000000000000000000000000000000000000000000000000000000003950935000000000000000000000000000000000000000000000000000000000a457c2d600000000000000000000000000000000000000000000000000000000a457c2d700000000000000000000000000000000000000000000000000000000a9059cbb00000000000000000000000000000000000000000000000000000000dd62ed3e00000000000000000000000000000000000000000000000000000000395093510000000000000000000000000000000000000000000000000000000070a082310000000000000000000000000000000000000000000000000000000095d89b410000000000000000000000000000000000000000000000000000000018160ddc0000000000000000000000000000000000000000000000000000000018160ddd0000000000000000000000000000000000000000000000000000000023b872dd00000000000000000000000000000000000000000000000000000000313ce5670000000000000000000000000000000000000000000000000000000006fdde0300000000000000000000000000000000000000000000000000000000095ea7b3000000000000000000000000ffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000200000000000000000000000000200000000000000000000000000000000000040000000000000000000000000207a65726f00000000000000000000000000000000000000000000000000000045524332303a2064656372656173656420616c6c6f77616e63652062656c6f7708c379a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000840000000000000000000000008a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b4e487b710000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000000000000000000000008c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925737300000000000000000000000000000000000000000000000000000000000045524332303a20617070726f766520746f20746865207a65726f206164647265726573730000000000000000000000000000000000000000000000000000000045524332303a20617070726f76652066726f6d20746865207a65726f2061646445524332303a20696e73756666696369656e7420616c6c6f77616e63650000000000000000000000000000000000000000000064000000000000000000000000c2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85bffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff00000000000000800200000000000000000000000000000000000000000000000000000000000000ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef616c616e6365000000000000000000000000000000000000000000000000000045524332303a207472616e7366657220616d6f756e7420657863656564732062657373000000000000000000000000000000000000000000000000000000000045524332303a207472616e7366657220746f20746865207a65726f2061646472647265737300000000000000000000000000000000000000000000000000000045524332303a207472616e736665722066726f6d20746865207a65726f20616495f053a375f41aa4ff047f1d5053c1c866c82db245cabc25796cd9cb10e57b4a", - "linkReferences": {}, - "deployedLinkReferences": {}, - "factoryDeps": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.dbg.json b/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.dbg.json deleted file mode 100644 index d6f065d186..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/92cb10df65f6d26368974b9012699389.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.json b/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.json deleted file mode 100644 index 4d607b9a51..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.json +++ /dev/null @@ -1,195 +0,0 @@ -{ - "_format": "hh-zksolc-artifact-1", - "contractName": "IERC20", - "sourceName": "@openzeppelin/contracts/token/ERC20/IERC20.sol", - "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" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {}, - "factoryDeps": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.dbg.json b/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.dbg.json deleted file mode 100644 index 9177ae2051..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../../build-info/92cb10df65f6d26368974b9012699389.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.json b/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.json deleted file mode 100644 index d581ee49f4..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.json +++ /dev/null @@ -1,234 +0,0 @@ -{ - "_format": "hh-zksolc-artifact-1", - "contractName": "IERC20Metadata", - "sourceName": "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol", - "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" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {}, - "factoryDeps": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol/SafeERC20.dbg.json b/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol/SafeERC20.dbg.json deleted file mode 100644 index 9177ae2051..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol/SafeERC20.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../../build-info/92cb10df65f6d26368974b9012699389.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol/SafeERC20.json b/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol/SafeERC20.json deleted file mode 100644 index fa967788da..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol/SafeERC20.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "_format": "hh-zksolc-artifact-1", - "contractName": "SafeERC20", - "sourceName": "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", - "abi": [], - "bytecode": "0x00000001012001900000000c0000613d0000008001000039000000400010043f0000000001000416000000000110004c0000000c0000c13d00000020010000390000010000100443000001200000044300000005010000410000000f0001042e000000000100001900000010000104300000000e000004320000000f0001042e00000010000104300000000000000000000000000000000000000000000000000000000200000000000000000000000000000040000001000000000000000000457f3a95284cdc3b1b211b7a4274ad0da67d291c79948148f7fff3b563f244d7", - "deployedBytecode": "0x00000001012001900000000c0000613d0000008001000039000000400010043f0000000001000416000000000110004c0000000c0000c13d00000020010000390000010000100443000001200000044300000005010000410000000f0001042e000000000100001900000010000104300000000e000004320000000f0001042e00000010000104300000000000000000000000000000000000000000000000000000000200000000000000000000000000000040000001000000000000000000457f3a95284cdc3b1b211b7a4274ad0da67d291c79948148f7fff3b563f244d7", - "linkReferences": {}, - "deployedLinkReferences": {}, - "factoryDeps": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/token/ERC721/ERC721.sol/ERC721.dbg.json b/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/token/ERC721/ERC721.sol/ERC721.dbg.json deleted file mode 100644 index d6f065d186..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/token/ERC721/ERC721.sol/ERC721.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/92cb10df65f6d26368974b9012699389.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/token/ERC721/ERC721.sol/ERC721.json b/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/token/ERC721/ERC721.sol/ERC721.json deleted file mode 100644 index a6edd6403b..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/token/ERC721/ERC721.sol/ERC721.json +++ /dev/null @@ -1,358 +0,0 @@ -{ - "_format": "hh-zksolc-artifact-1", - "contractName": "ERC721", - "sourceName": "@openzeppelin/contracts/token/ERC721/ERC721.sol", - "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": "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": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "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": "", - "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": "nonpayable", - "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": "nonpayable", - "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": "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": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x0004000000000002000700000000000200000000030100190000006003300270000002ab0430019700030000004103550002000000010355000002ab0030019d000100000000001f0000008001000039000000400010043f0000000101200190000000860000c13d0000000001000031000000040110008c000004e80000413d0000000201000367000000000101043b000000e001100270000002b00210009c0000018b0000a13d000002b10210009c000001b10000a13d000002b20210009c000001f90000213d000002b50210009c0000022c0000613d000002b60110009c000004e80000c13d0000000001000416000000000110004c000004e80000c13d0000000003000031000000040130008a000002ad02000041000000800410008c00000000040000190000000004024019000002ad01100197000000000510004c000000000200a019000002ad0110009c00000000010400190000000001026019000000000110004c000004e80000c13d00000002040003670000000401400370000000000101043b000002c10210009c000004e80000213d0000002402400370000000000202043b000002c10520009c000004e80000213d0000006405400370000000000605043b000002ac0560009c000004e80000213d0000002305600039000002ad07000041000000000835004b00000000080000190000000008078019000002ad03300197000002ad05500197000000000935004b0000000007008019000000000335013f000002ad0330009c00000000030800190000000003076019000000000330004c000004e80000c13d0000000403600039000000000334034f000000000303043b000002ac0430009c000003c10000213d0000003f04300039000000200500008a000000000554016f000000400400043d0000000005540019000000000745004b00000000070000190000000107004039000002ac0850009c000003c10000213d0000000107700190000003c10000c13d000000400050043f0000000005340436000000240760003900000000067300190000000008000031000000000686004b000004e80000213d0000001f0630018f000000020770036700000005083002720000006f0000613d0000000009000019000000050a900210000000000ba50019000000000aa7034f000000000a0a043b0000000000ab04350000000109900039000000000a89004b000000670000413d000000000960004c0000007e0000613d0000000508800210000000000787034f00000000088500190000000306600210000000000908043300000000096901cf000000000969022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000696019f00000000006804350000000003350019000000000003043500000044030000390000000203300367000000000303043b0aa6060a0000040f000000000100001900000aa70001042e0000000001000416000000000110004c000004e80000c13d00000000020000310000001f01200039000000200a00008a0000000004a1016f000000400100043d0000000003140019000000000443004b00000000040000190000000104004039000002ac0530009c000003c10000213d0000000104400190000003c10000c13d000000400030043f0000001f0320018f00000002040003670000000505200272000000a40000613d000000000600001900000005076002100000000008710019000000000774034f000000000707043b00000000007804350000000106600039000000000756004b0000009c0000413d000000000630004c000000b30000613d0000000505500210000000000454034f00000000055100190000000303300210000000000605043300000000063601cf000000000636022f000000000404043b0000010003300089000000000434022f00000000033401cf000000000363019f0000000000350435000002ad03000041000000400420008c00000000040000190000000004034019000002ad05200197000000000650004c000000000300a019000002ad0550009c000000000304c019000000000330004c000004e80000c13d0000000034010434000002ac0540009c000004e80000213d000000000221001900000000041400190000001f05400039000002ad06000041000000000725004b00000000070000190000000007068019000002ad05500197000002ad08200197000000000985004b0000000006008019000000000585013f000002ad0550009c00000000050700190000000005066019000000000550004c000004e80000c13d0000000005040433000002ac0650009c000003c10000213d0000003f065000390000000006a6016f000000400b00043d00000000066b00190000000007b6004b00000000070000190000000107004039000002ac0860009c000003c10000213d0000000107700190000003c10000c13d000000400060043f000000000c5b043600000020065000390000000007460019000000000727004b000004e80000213d000000000750004c000000f00000613d000000000700001900000020077000390000000008b70019000000000947001900000000090904330000000000980435000000000857004b000000e90000413d00000000046b001900000000000404350000000003030433000002ac0430009c000004e80000213d00000000011300190000001f03100039000002ad04000041000000000523004b00000000050000190000000005048019000002ad03300197000002ad06200197000000000763004b0000000004008019000000000363013f000002ad0330009c00000000030500190000000003046019000000000330004c000004e80000c13d0000000003010433000002ac0430009c000003c10000213d0000003f043000390000000004a4016f000000400700043d0000000004470019000000000574004b00000000050000190000000105004039000002ac0640009c000003c10000213d0000000105500190000003c10000c13d000000400040043f0000000004370436000600000004001d00000020043000390000000005140019000000000225004b000004e80000213d00030000000c001d00070000000b001d00040000000a001d000000000230004c000001270000613d000000000200001900000020022000390000000005720019000000000612001900000000060604330000000000650435000000000532004b000001200000413d0000000001470019000000000001043500000007010000290000000001010433000500000001001d000002ac0110009c000003c10000213d000100000007001d000000000100041a000000010210019000000001011002700000007f0310018f0000000001036019000200000001001d0000001f0110008c00000000010000190000000101002039000000010110018f000000000112004b000002a30000c13d0000000201000029000000200110008c0000015a0000413d0000000000000435000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002ae011001c700008010020000390aa60aa10000040f0000000102200190000004e80000613d00000005030000290000001f023000390000000502200270000000200330008c0000000002004019000000000301043b00000002010000290000001f01100039000000050110027000000000011300190000000002230019000000000312004b0000015a0000813d000000000002041b0000000102200039000000000312004b000001560000413d00000005010000290000001f0110008c000004740000a13d0000000000000435000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002ae011001c700008010020000390aa60aa10000040f000000010220019000000004020000290000000706000029000004e80000613d000000050300002900000000032301700000002002000039000000000101043b000001790000613d0000002002000039000000000400001900000000056200190000000005050433000000000051041b000000200220003900000001011000390000002004400039000000000534004b000001710000413d0000000504000029000000000343004b000001870000813d00000005030000290000000303300210000000f80330018f000000010400008a000000000334022f000000000343013f000000070400002900000000024200190000000002020433000000000232016f000000000021041b000000010100003900000005020000290000000102200210000004810000013d000002ba0210009c000001e00000213d000002be0210009c0000025e0000613d000002bf0210009c000002860000613d000002c00110009c000004e80000c13d0000000001000416000000000110004c000004e80000c13d000000040100008a0000000001100031000002ad02000041000000200310008c00000000030000190000000003024019000002ad01100197000000000410004c000000000200a019000002ad0110009c00000000010300190000000001026019000000000110004c000004e80000c13d00000004010000390000000201100367000000000101043b0aa605b60000040f000002c101100197000000400200043d0000000000120435000002ab01000041000002ab0320009c00000000010240190000004001100210000002c2011001c700000aa70001042e000002b70210009c000002a90000613d000002b80210009c000002c70000613d000002b90110009c000004e80000c13d0000000001000416000000000110004c000004e80000c13d000000040100008a0000000001100031000002ad02000041000000000310004c00000000030000190000000003024019000002ad01100197000000000410004c000000000200a019000002ad0110009c00000000010300190000000001026019000000000110004c000004e80000c13d0000000104000039000000000304041a000000010530019000000001013002700000007f0210018f000000000701001900000000070260190000001f0270008c00000000020000190000000102002039000000000223013f0000000102200190000002a30000c13d000000400100043d0000000002710436000000000550004c0000038b0000c13d000001000400008a000000000343016f0000000000320435000000000270004c00000020030000390000000003006019000003980000013d000002bb0210009c000002f40000613d000002bc0210009c000003340000613d000002bd0110009c000004e80000c13d0000000001000416000000000110004c000004e80000c13d00000000010000310aa6052b0000040f000700000001001d000600000002001d000500000003001d000000400100043d000400000001001d0aa605460000040f000000040400002900000000000404350000000701000029000000060200002900000005030000290aa6060a0000040f000000000100001900000aa70001042e000002b30210009c000003460000613d000002b40110009c000004e80000c13d0000000001000416000000000110004c000004e80000c13d000000040100008a0000000001100031000002ad02000041000000400310008c00000000030000190000000003024019000002ad01100197000000000410004c000000000200a019000002ad0110009c00000000010300190000000001026019000000000110004c000004e80000c13d00000002020003670000000401200370000000000101043b000002c10310009c000004e80000213d0000002402200370000000000302043b000002c10230009c000004e80000213d00000000001004350000000501000039000000200010043f00000040020000390000000001000019000700000003001d0aa604ff0000040f00000007020000290aa605640000040f000000000101041a000000ff011001900000000001000019000000010100c039000000400200043d0000000000120435000002ab01000041000002ab0320009c00000000010240190000004001100210000002c2011001c700000aa70001042e0000000001000416000000000110004c000004e80000c13d000000040100008a0000000001100031000002ad02000041000000400310008c00000000030000190000000003024019000002ad01100197000000000410004c000000000200a019000002ad0110009c00000000010300190000000001026019000000000110004c000004e80000c13d00000002010003670000000402100370000000000402043b000002c10240009c000004e80000213d0000002401100370000000000501043b000000000150004c0000000001000019000000010100c039000000000115004b000004e80000c13d0000000002000411000000000142004b000003e60000c13d000000400100043d0000004402100039000002cc030000410000000000320435000000240210003900000019030000390000000000320435000002c7020000410000000000210435000000040210003900000020030000390000000000320435000002ab02000041000002ab0310009c00000000010280190000004001100210000002cd011001c700000aa8000104300000000001000416000000000110004c000004e80000c13d000000040100008a0000000001100031000002ad02000041000000200310008c00000000030000190000000003024019000002ad01100197000000000410004c000000000200a019000002ad0110009c00000000010300190000000001026019000000000110004c000004e80000c13d00000004010000390000000201100367000000000101043b000002d602100197000000000212004b000004e80000c13d0000000102000039000002d70310009c0000027d0000613d000002d80310009c0000027d0000613d000002d90110009c00000000020000190000000102006039000000010120018f000000400200043d0000000000120435000002ab01000041000002ab0320009c00000000010240190000004001100210000002c2011001c700000aa70001042e0000000001000416000000000110004c000004e80000c13d000000040100008a0000000001100031000002ad02000041000000000310004c00000000030000190000000003024019000002ad01100197000000000410004c000000000200a019000002ad0110009c00000000010300190000000001026019000000000110004c000004e80000c13d000000000300041a000000010430019000000001013002700000007f0210018f000000000701001900000000070260190000001f0270008c00000000020000190000000102002039000000000223013f0000000102200190000003800000613d000002c90100004100000000001004350000002201000039000000040010043f000002ca0100004100000aa8000104300000000001000416000000000110004c000004e80000c13d000000040100008a0000000001100031000002ad02000041000000200310008c00000000030000190000000003024019000002ad01100197000000000410004c000000000200a019000002ad0110009c00000000010300190000000001026019000000000110004c000004e80000c13d00000004010000390000000201100367000000000101043b0aa605750000040f000002c101100197000000400200043d0000000000120435000002ab01000041000002ab0320009c00000000010240190000004001100210000002c2011001c700000aa70001042e0000000001000416000000000110004c000004e80000c13d000000040100008a0000000001100031000002ad02000041000000200310008c00000000030000190000000003024019000002ad01100197000000000410004c000000000200a019000002ad0110009c00000000010300190000000001026019000000000110004c000004e80000c13d00000004010000390000000201100367000000000101043b000002c10210009c000004e80000213d000000000210004c000003aa0000c13d000000400100043d0000006402100039000002cf0300004100000000003204350000004402100039000002d003000041000000000032043500000024021000390000002a030000390000000000320435000002c7020000410000000000210435000000040210003900000020030000390000000000320435000002ab02000041000002ab0310009c00000000010280190000004001100210000002c8011001c700000aa8000104300000000001000416000000000110004c000004e80000c13d000000040100008a0000000001100031000002ad02000041000000400310008c00000000030000190000000003024019000002ad01100197000000000410004c000000000200a019000002ad0110009c00000000010300190000000001026019000000000110004c000004e80000c13d00000002010003670000000402100370000000000202043b000700000002001d000002c10220009c000004e80000213d0000002401100370000000000101043b000600000001001d00000000001004350000000201000039000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f0000000102200190000004e80000613d000000000101043b000000000101041a000002c102100198000004210000c13d000000400100043d0000006402100039000002d30300004100000000003204350000004402100039000002d4030000410000000000320435000000240210003900000029030000390000000000320435000002c7020000410000000000210435000000040210003900000020030000390000000000320435000002ab02000041000002ab0310009c00000000010280190000004001100210000002c8011001c700000aa8000104300000000001000416000000000110004c000004e80000c13d00000000010000310aa6052b0000040f000700000001001d000600000002001d0000000002030019000500000002001d00000000010004110aa607c30000040f0aa605f20000040f0000000701000029000000060200002900000005030000290aa608780000040f000000000100001900000aa70001042e0000000001000416000000000110004c000004e80000c13d000000040100008a0000000001100031000002ad02000041000000200310008c00000000030000190000000003024019000002ad01100197000000000410004c000000000200a019000002ad0110009c00000000010300190000000001026019000000000110004c000004e80000c13d00000004010000390000000201100367000000000101043b00000000001004350000000201000039000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f0000000102200190000004e80000613d000000400200043d000000000101043b000000000101041a000002c101100198000003b90000c13d0000006401200039000002c50300004100000000003104350000004401200039000002c603000041000000000031043500000024012000390000002f030000390000000000310435000002c7010000410000000000120435000000040120003900000020030000390000000000310435000002ab01000041000002ab0320009c00000000010240190000004001100210000002c8011001c700000aa800010430000000400100043d0000000002710436000000000440004c000003c70000c13d000001000400008a000000000343016f0000000000320435000000000270004c00000020030000390000000003006019000003d40000013d0000000000400435000000000370004c0000000003000019000003980000613d000002ce0400004100000000030000190000000005230019000000000604041a000000000065043500000001044000390000002003300039000000000573004b000003910000413d0000002002300039000700000001001d0aa605510000040f000000400100043d000600000001001d00000007020000290aa605150000040f00000006040000290000000001410049000002ab02000041000002ab0310009c0000000001028019000002ab0340009c000000000204401900000040022002100000006001100210000000000121019f00000aa70001042e00000000001004350000000301000039000000200010043f000000400200003900000000010000190aa604ff0000040f000000000101041a000000400200043d0000000000120435000002ab01000041000002ab0320009c00000000010240190000004001100210000002c2011001c700000aa70001042e000002c40120009c000003c10000213d0000002001200039000000400010043f0000000000020435000000400200043d000002c40120009c000004390000a13d000002c90100004100000000001004350000004101000039000000040010043f000002ca0100004100000aa8000104300000000000000435000000000370004c0000000003000019000003d40000613d000002d50400004100000000030000190000000005230019000000000604041a000000000065043500000001044000390000002003300039000000000573004b000003cd0000413d0000002002300039000700000001001d0aa605510000040f000000400100043d000600000001001d00000007020000290aa605150000040f00000006040000290000000001410049000002ab02000041000002ab0310009c0000000001028019000002ab0340009c000000000204401900000040022002100000006001100210000000000121019f00000aa70001042e000500000002001d00000000002004350000000501000039000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c70000801002000039000700000004001d000600000005001d0aa60aa10000040f00000007030000290000000102200190000004e80000613d000000000101043b0000000000300435000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f000000060400002900000007060000290000000102200190000004e80000613d000000000101043b000000000201041a000001000300008a000000000232016f000000000242019f000000000021041b000000400100043d0000000000410435000002ab020000410000000003000414000002ab0430009c0000000003028019000002ab0410009c00000000010280190000004001100210000000c002300210000000000112019f000002ae011001c70000800d020000390000000303000039000002cb0400004100000005050000290aa60a9c0000040f0000000101200190000004e80000613d000000000100001900000aa70001042e0000000701000029000000000121004b0000044a0000c13d000000400100043d0000006402100039000002d10300004100000000003204350000004402100039000002d2030000410000000000320435000000240210003900000021030000390000000000320435000002c7020000410000000000210435000000040210003900000020030000390000000000320435000002ab02000041000002ab0310009c00000000010280190000004001100210000002c8011001c700000aa8000104300000002001200039000000400010043f0000000000020435000000400100043d000700000001001d0aa605150000040f00000007040000290000000001410049000002ab02000041000002ab0310009c0000000001028019000002ab0340009c000000000204401900000040022002100000006001100210000000000121019f00000aa70001042e00000001010000390000000004000411000000000324004b0000046e0000613d000500000004001d00000000002004350000000501000039000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f0000000102200190000004e80000613d000000000101043b0000000502000029000002c1022001970000000000200435000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f0000000102200190000004e80000613d000000000101043b000000000101041a000000ff0110018f0aa6059e0000040f000000070100002900000006020000290aa6095e0000040f000000000100001900000aa70001042e0000000501000029000000000110004c00000000010000190000047a0000613d0000000301000029000000000101043300000005040000290000000302400210000000010300008a000000000223022f000000000232013f000000000221016f0000000101400210000000000112019f000000000010041b00000001010000290000000001010433000700000001001d000002ac0110009c000003c10000213d0000000101000039000300000001001d000000000101041a000000010210019000000001021002700000007f0320018f0000000002036019000500000002001d0000001f0220008c00000000020000190000000102002039000000000121013f0000000101100190000002a30000c13d0000000501000029000000200110008c000004b60000413d00000001010000390000000000100435000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002ae011001c700008010020000390aa60aa10000040f0000000102200190000004e80000613d00000007030000290000001f023000390000000502200270000000200330008c0000000002004019000000000301043b00000005010000290000001f01100039000000050110027000000000011300190000000002230019000000000312004b000004b60000813d000000000002041b0000000102200039000000000312004b000004b20000413d00000007010000290000001f0110008c000004ea0000a13d00000003010000290000000000100435000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002ae011001c700008010020000390aa60aa10000040f000000010220019000000004020000290000000106000029000004e80000613d000000070300002900000000032301700000002002000039000000000101043b000004d60000613d0000002002000039000000000400001900000000056200190000000005050433000000000051041b000000200220003900000001011000390000002004400039000000000534004b000004ce0000413d0000000704000029000000000343004b000004e40000813d00000007030000290000000303300210000000f80330018f000000010400008a000000000334022f000000000343013f000000010400002900000000024200190000000002020433000000000232016f000000000021041b000000070100002900000001011002100000000302000029000004f70000013d000000000100001900000aa8000104300000000701000029000000000110004c0000000001000019000004f00000613d0000000601000029000000000101043300000007040000290000000302400210000000010300008a000000000223022f000000000232013f000000000121016f0000000102400210000000000121019f0000000302000029000000000012041b000000200100003900000100001004430000012000000443000002af0100004100000aa70001042e000002ab03000041000002ab0410009c00000000010380190000004001100210000002ab0420009c00000000020380190000006002200210000000000112019f0000000002000414000002ab0420009c0000000002038019000000c002200210000000000112019f000002da011001c700008010020000390aa60aa10000040f0000000102200190000005130000613d000000000101043b000000000001042d000000000100001900000aa80001043000000020030000390000000004310436000000000302043300000000003404350000004001100039000000000430004c000005240000613d000000000400001900000000051400190000002004400039000000000624001900000000060604330000000000650435000000000534004b0000051d0000413d000000000213001900000000000204350000001f02300039000000200300008a000000000232016f0000000001120019000000000001042d000000040110008a000002ad020000410000005f0310008c00000000030000190000000003022019000002ad01100197000000000410004c0000000002008019000002ad0110009c00000000010300190000000001026019000000000110004c000005440000613d00000002030003670000000401300370000000000101043b000002c10210009c000005440000213d0000002402300370000000000202043b000002c10420009c000005440000213d0000004403300370000000000303043b000000000001042d000000000100001900000aa800010430000002db0210009c0000054b0000813d0000002001100039000000400010043f000000000001042d000002c90100004100000000001004350000004101000039000000040010043f000002ca0100004100000aa8000104300000001f02200039000000200300008a000000000232016f0000000001120019000000000221004b00000000020000190000000102004039000002ac0310009c0000055e0000213d00000001022001900000055e0000c13d000000400010043f000000000001042d000002c90100004100000000001004350000004101000039000000040010043f000002ca0100004100000aa800010430000002c1022001970000000000200435000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f0000000102200190000005730000613d000000000101043b000000000001042d000000000100001900000aa80001043000000000001004350000000201000039000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f0000000102200190000005870000613d000000000101043b000000000101041a000002c101100198000005890000613d000000000001042d000000000100001900000aa800010430000000400100043d0000006402100039000002d30300004100000000003204350000004402100039000002d4030000410000000000320435000000240210003900000029030000390000000000320435000002c7020000410000000000210435000000040210003900000020030000390000000000320435000002ab02000041000002ab0310009c00000000010280190000004001100210000002c8011001c700000aa800010430000000000110004c000005a10000613d000000000001042d000000400100043d0000006402100039000002dc0300004100000000003204350000004402100039000002dd030000410000000000320435000000240210003900000038030000390000000000320435000002c7020000410000000000210435000000040210003900000020030000390000000000320435000002ab02000041000002ab0310009c00000000010280190000004001100210000002c8011001c700000aa8000104300001000000000002000100000001001d00000000001004350000000201000039000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f0000000102200190000005db0000613d000000000101043b000000000101041a000002c101100198000005dd0000613d000000010100002900000000001004350000000401000039000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f0000000102200190000005db0000613d000000000101043b000000000101041a000002c101100197000000000001042d000000000100001900000aa800010430000000400100043d0000006402100039000002de0300004100000000003204350000004402100039000002df03000041000000000032043500000024021000390000002c030000390000000000320435000002c7020000410000000000210435000000040210003900000020030000390000000000320435000002ab02000041000002ab0310009c00000000010280190000004001100210000002c8011001c700000aa800010430000000000110004c000005f50000613d000000000001042d000000400100043d0000006402100039000002e00300004100000000003204350000004402100039000002e1030000410000000000320435000000240210003900000031030000390000000000320435000002c7020000410000000000210435000000040210003900000020030000390000000000320435000002ab02000041000002ab0310009c00000000010280190000004001100210000002c8011001c700000aa8000104300008000000000002000200000004001d000400000002001d000500000001001d000800000003001d00000000003004350000000201000039000700000001001d000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f00000001022001900000071f0000613d000000000101043b000000000101041a000002c1011001980000073c0000613d000000080100002900000000001004350000000701000029000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f00000001022001900000071f0000613d000000000101043b000000000101041a000002c101100198000007210000613d0000000002000411000002c102200197000600000002001d000000000212004b0000067d0000613d00000000001004350000000501000039000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f00000001022001900000071f0000613d000000000101043b00000006020000290000000000200435000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f00000001022001900000071f0000613d000000000101043b000000000101041a000000ff011001900000067d0000c13d000000080100002900000000001004350000000701000029000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f00000001022001900000071f0000613d000000000101043b000000000101041a000002c1011001980000078c0000613d000000080100002900000000001004350000000401000039000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f00000001022001900000071f0000613d000000000101043b000000000101041a000002c1011001970000000602000029000000000121004b000007a10000c13d000000080100002900000000001004350000000701000029000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f00000001022001900000071f0000613d000000000101043b000000000101041a000002c101100198000600000001001d000007210000613d0000000501000029000002c1011001970000000602000029000000000112004b000007510000c13d0000000401000029000002c101100198000300000001001d000007660000613d000000080100002900000000001004350000000401000039000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f00000001022001900000071f0000613d000000000101043b000000000201041a000002e402200197000000000021041b000000080100002900000000001004350000000701000029000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f00000001022001900000071f0000613d000000000101043b000000000101041a000002c105100198000007210000613d000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002da011001c70000800d020000390000000403000039000002e504000041000000000600001900000008070000290aa60a9c0000040f00000001012001900000071f0000613d000000060100002900000000001004350000000301000039000100000001001d000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f00000001022001900000071f0000613d000000000101043b000000000201041a000000000320004c000007360000613d000000010220008a000000000021041b000000030100002900000000001004350000000101000029000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f00000001022001900000071f0000613d000000000101043b000000000201041a000000010300008a000000000332004b000007360000613d0000000102200039000000000021041b000000080100002900000000001004350000000701000029000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f00000001022001900000071f0000613d000000000101043b000000000201041a000002e4022001970000000306000029000000000262019f000000000021041b000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002da011001c70000800d020000390000000403000039000002e604000041000000060500002900000008070000290aa60a9c0000040f00000001012001900000071f0000613d00000005010000290000000402000029000000080300002900000002040000290aa609ae0000040f000000000110004c0000077b0000613d000000000001042d000000000100001900000aa800010430000000400100043d0000006402100039000002d30300004100000000003204350000004402100039000002d4030000410000000000320435000000240210003900000029030000390000000000320435000002c7020000410000000000210435000000040210003900000020030000390000000000320435000002ab02000041000002ab0310009c00000000010280190000004001100210000002c8011001c700000aa800010430000002c90100004100000000001004350000001101000039000000040010043f000002ca0100004100000aa800010430000000400100043d0000006402100039000002de0300004100000000003204350000004402100039000002e903000041000000000032043500000024021000390000002c030000390000000000320435000002c7020000410000000000210435000000040210003900000020030000390000000000320435000002ab02000041000002ab0310009c00000000010280190000004001100210000002c8011001c700000aa800010430000000400100043d0000006402100039000002e20300004100000000003204350000004402100039000002e3030000410000000000320435000000240210003900000025030000390000000000320435000002c7020000410000000000210435000000040210003900000020030000390000000000320435000002ab02000041000002ab0310009c00000000010280190000004001100210000002c8011001c700000aa800010430000000400100043d0000006402100039000002e70300004100000000003204350000004402100039000002e8030000410000000000320435000000240210003900000024030000390000000000320435000002c7020000410000000000210435000000040210003900000020030000390000000000320435000002ab02000041000002ab0310009c00000000010280190000004001100210000002c8011001c700000aa800010430000000400200043d000800000002001d000002c701000041000000000012043500000004012000390aa607b60000040f00000008040000290000000001410049000002ab02000041000002ab0310009c0000000001028019000002ab0340009c000000000204401900000040022002100000006001100210000000000121019f00000aa800010430000000400100043d0000006402100039000002de0300004100000000003204350000004402100039000002df03000041000000000032043500000024021000390000002c030000390000000000320435000002c7020000410000000000210435000000040210003900000020030000390000000000320435000002ab02000041000002ab0310009c00000000010280190000004001100210000002c8011001c700000aa800010430000000400100043d0000006402100039000002e00300004100000000003204350000004402100039000002e1030000410000000000320435000000240210003900000031030000390000000000320435000002c7020000410000000000210435000000040210003900000020030000390000000000320435000002ab02000041000002ab0310009c00000000010280190000004001100210000002c8011001c700000aa8000104300000006002100039000002ea0300004100000000003204350000004002100039000002eb030000410000000000320435000000200210003900000032030000390000000000320435000000200200003900000000002104350000008001100039000000000001042d0003000000000002000100000001001d000300000002001d00000000002004350000000201000039000200000001001d000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f0000000102200190000008370000613d000000000101043b000000000101041a000002c101100198000008390000613d000000030100002900000000001004350000000201000029000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f0000000102200190000008370000613d000000000101043b000000000101041a000002c1021001980000084e0000613d00000001010000390000000103000029000002c103300197000100000003001d000000000323004b000008360000613d00000000002004350000000501000039000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f0000000102200190000008370000613d000000000101043b00000001020000290000000000200435000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f0000000102200190000008370000613d000000000101043b000000000101041a000000ff01100190000008360000c13d000000030100002900000000001004350000000201000029000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f0000000102200190000008370000613d000000000101043b000000000101041a000002c101100198000008630000613d000000030100002900000000001004350000000401000039000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f0000000102200190000008370000613d000000000101043b000000000101041a000002c1011001970000000102000029000000000121004b00000000010000190000000101006039000000000001042d000000000100001900000aa800010430000000400100043d0000006402100039000002de0300004100000000003204350000004402100039000002e903000041000000000032043500000024021000390000002c030000390000000000320435000002c7020000410000000000210435000000040210003900000020030000390000000000320435000002ab02000041000002ab0310009c00000000010280190000004001100210000002c8011001c700000aa800010430000000400100043d0000006402100039000002d30300004100000000003204350000004402100039000002d4030000410000000000320435000000240210003900000029030000390000000000320435000002c7020000410000000000210435000000040210003900000020030000390000000000320435000002ab02000041000002ab0310009c00000000010280190000004001100210000002c8011001c700000aa800010430000000400100043d0000006402100039000002de0300004100000000003204350000004402100039000002df03000041000000000032043500000024021000390000002c030000390000000000320435000002c7020000410000000000210435000000040210003900000020030000390000000000320435000002ab02000041000002ab0310009c00000000010280190000004001100210000002c8011001c700000aa8000104300005000000000002000100000002001d000200000001001d000500000003001d00000000003004350000000201000039000300000001001d000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f0000000102200190000009170000613d000000000101043b000000000101041a000002c101100198000400000001001d000009190000613d0000000201000029000002c1011001970000000402000029000000000112004b000009340000c13d0000000101000029000002c101100198000200000001001d000009490000613d000000050100002900000000001004350000000401000039000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f0000000102200190000009170000613d000000000101043b000000000201041a000002e402200197000000000021041b000000050100002900000000001004350000000301000029000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f0000000102200190000009170000613d000000000101043b000000000101041a000002c105100198000009190000613d000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002da011001c70000800d020000390000000403000039000002e504000041000000000600001900000005070000290aa60a9c0000040f0000000101200190000009170000613d000000040100002900000000001004350000000301000039000100000001001d000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f0000000102200190000009170000613d000000000101043b000000000201041a000000000320004c0000092e0000613d000000010220008a000000000021041b000000020100002900000000001004350000000101000029000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f0000000102200190000009170000613d000000000101043b000000000201041a000000010300008a000000000332004b0000092e0000613d0000000102200039000000000021041b000000050100002900000000001004350000000301000029000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f0000000102200190000009170000613d000000000101043b000000000201041a000002e4022001970000000206000029000000000262019f000000000021041b000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002da011001c70000800d020000390000000403000039000002e604000041000000040500002900000005070000290aa60a9c0000040f0000000101200190000009170000613d000000000001042d000000000100001900000aa800010430000000400100043d0000006402100039000002d30300004100000000003204350000004402100039000002d4030000410000000000320435000000240210003900000029030000390000000000320435000002c7020000410000000000210435000000040210003900000020030000390000000000320435000002ab02000041000002ab0310009c00000000010280190000004001100210000002c8011001c700000aa800010430000002c90100004100000000001004350000001101000039000000040010043f000002ca0100004100000aa800010430000000400100043d0000006402100039000002e20300004100000000003204350000004402100039000002e3030000410000000000320435000000240210003900000025030000390000000000320435000002c7020000410000000000210435000000040210003900000020030000390000000000320435000002ab02000041000002ab0310009c00000000010280190000004001100210000002c8011001c700000aa800010430000000400100043d0000006402100039000002e70300004100000000003204350000004402100039000002e8030000410000000000320435000000240210003900000024030000390000000000320435000002c7020000410000000000210435000000040210003900000020030000390000000000320435000002ab02000041000002ab0310009c00000000010280190000004001100210000002c8011001c700000aa8000104300002000000000002000100000001001d000200000002001d00000000002004350000000401000039000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f0000000102200190000009970000613d0000000102000029000002c103200197000000000101043b000000000201041a000002e402200197000100000003001d000000000232019f000000000021041b000000020100002900000000001004350000000201000039000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f0000000102200190000009970000613d0000000207000029000000000101043b000000000101041a000002c105100198000009990000613d000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002da011001c70000800d020000390000000403000039000002e50400004100000001060000290aa60a9c0000040f0000000101200190000009970000613d000000000001042d000000000100001900000aa800010430000000400100043d0000006402100039000002d30300004100000000003204350000004402100039000002d4030000410000000000320435000000240210003900000029030000390000000000320435000002c7020000410000000000210435000000040210003900000020030000390000000000320435000002ab02000041000002ab0310009c00000000010280190000004001100210000002c8011001c700000aa8000104300006000000000002000400000004001d000200000003001d000100000001001d000002ec010000410000000000100439000300000002001d0000000400200443000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002ed011001c700008002020000390aa60aa10000040f000000000301034f000000010120019000000a490000613d0000000101000039000000000203043b000000000220004c00000a480000613d000000400a00043d000002ee0100004100000000001a04350000006402a000390000000001000414000000800300003900000000003204350000004402a00039000000020300002900000000003204350000000102000029000002c1022001970000002403a0003900000000002304350000000002000411000002c1022001970000000403a000390000000000230435000000040800002900000000030804330000008402a000390000000000320435000000a404a000390000000302000029000002c102200197000000000530004c000009e80000613d000000000500001900000000064500190000002005500039000000000785001900000000070704330000000000760435000000000635004b000009e10000413d00000000044300190000000000040435000000040420008c000009f50000c13d0000000001000415000000060110008a00000020011000c90000000103000031000000200230008c00000020040000390000000004034019000600000000001d00000a320000013d0000001f03300039000000200400008a000000000343016f000002ab04000041000002ab05a0009c000000000504001900000000050a40190000004005500210000000a403300039000002ab0630009c00000000030480190000006003300210000000000353019f000002ab0510009c0000000001048019000000c001100210000000000113019f00040000000a001d0aa60a9c0000040f000000040a00002900000000030100190000006003300270000002ab03300197000000200430008c000000200400003900000000040340190000001f0540018f000000050640027200000a1b0000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b00000a130000413d000000000750004c00000a2a0000613d0000000506600210000000000761034f00000000066a00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f00030000000103550000000001000415000000050110008a00000020011000c9000500000000001d000000010220019000000a4b0000613d0000001f02400039000000600420018f0000000002a40019000000000442004b00000000040000190000000104004039000002ac0520009c00000a8d0000213d000000010440019000000a8d0000c13d000000400020043f000000200230008c00000a490000413d00000000020a0433000002d603200197000000000323004b00000a490000c13d000000200110011a000000000102001f000002ee0120009c00000000010000190000000101006039000000000001042d000000000100001900000aa8000104300000006001000039000000000230004c00000a620000c13d0000000021010434000000000310004c00000a930000c13d000000400200043d000400000002001d000002c701000041000000000012043500000004012000390aa607b60000040f00000004040000290000000001410049000002ab02000041000002ab0310009c0000000001028019000002ab0340009c000000000204401900000040022002100000006001100210000000000121019f00000aa8000104300000003f01300039000002ef02100197000000400100043d0000000002210019000000000412004b00000000040000190000000104004039000002ac0520009c00000a8d0000213d000000010440019000000a8d0000c13d000000400020043f0000000002310436000000030300036700000001050000310000001f0450018f000000050550027200000a7d0000613d000000000600001900000005076002100000000008720019000000000773034f000000000707043b00000000007804350000000106600039000000000756004b00000a750000413d000000000640004c00000a4e0000613d0000000505500210000000000353034f00000000025200190000000304400210000000000502043300000000054501cf000000000545022f000000000303043b0000010004400089000000000343022f00000000034301cf000000000353019f000000000032043500000a4e0000013d000002c90100004100000000001004350000004101000039000000040010043f000002ca0100004100000aa800010430000002ab03000041000002ab0420009c0000000002038019000002ab0410009c000000000103801900000060011002100000004002200210000000000121019f00000aa80001043000000a9f002104210000000102000039000000000001042d0000000002000019000000000001042d00000aa4002104230000000102000039000000000001042d0000000002000019000000000001042d00000aa60000043200000aa70001042e00000aa80001043000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff000000000000000000000000000000000000000000000000ffffffffffffffff800000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000200000000000000000000000000000000200000000000000000000000000000040000001000000000000000000000000000000000000000000000000000000000000000000000000006352211d00000000000000000000000000000000000000000000000000000000a22cb46400000000000000000000000000000000000000000000000000000000c87b56dc00000000000000000000000000000000000000000000000000000000c87b56dd00000000000000000000000000000000000000000000000000000000e985e9c500000000000000000000000000000000000000000000000000000000a22cb46500000000000000000000000000000000000000000000000000000000b88d4fde000000000000000000000000000000000000000000000000000000006352211e0000000000000000000000000000000000000000000000000000000070a082310000000000000000000000000000000000000000000000000000000095d89b4100000000000000000000000000000000000000000000000000000000095ea7b200000000000000000000000000000000000000000000000000000000095ea7b30000000000000000000000000000000000000000000000000000000023b872dd0000000000000000000000000000000000000000000000000000000042842e0e0000000000000000000000000000000000000000000000000000000001ffc9a70000000000000000000000000000000000000000000000000000000006fdde0300000000000000000000000000000000000000000000000000000000081812fc000000000000000000000000ffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000200000000000000000000000000200000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffdf6e6578697374656e7420746f6b656e00000000000000000000000000000000004552433732314d657461646174613a2055524920717565727920666f72206e6f08c379a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000840000000000000000000000004e487b7100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002400000000000000000000000017307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c314552433732313a20617070726f766520746f2063616c6c6572000000000000000000000000000000000000000000000000000064000000000000000000000000b10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6726f2061646472657373000000000000000000000000000000000000000000004552433732313a2062616c616e636520717565727920666f7220746865207a6572000000000000000000000000000000000000000000000000000000000000004552433732313a20617070726f76616c20746f2063757272656e74206f776e65656e7420746f6b656e00000000000000000000000000000000000000000000004552433732313a206f776e657220717565727920666f72206e6f6e6578697374290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563ffffffff0000000000000000000000000000000000000000000000000000000080ac58cd000000000000000000000000000000000000000000000000000000005b5e139f0000000000000000000000000000000000000000000000000000000001ffc9a7000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffe06e6572206e6f7220617070726f76656420666f7220616c6c00000000000000004552433732313a20617070726f76652063616c6c6572206973206e6f74206f77697374656e7420746f6b656e00000000000000000000000000000000000000004552433732313a20617070726f76656420717565727920666f72206e6f6e6578776e6572206e6f7220617070726f7665640000000000000000000000000000004552433732313a207472616e736665722063616c6c6572206973206e6f74206f6f776e65720000000000000000000000000000000000000000000000000000004552433732313a207472616e736665722066726f6d20696e636f727265637420ffffffffffffffffffffffff00000000000000000000000000000000000000008c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef72657373000000000000000000000000000000000000000000000000000000004552433732313a207472616e7366657220746f20746865207a65726f206164644552433732313a206f70657261746f7220717565727920666f72206e6f6e657863656976657220696d706c656d656e74657200000000000000000000000000004552433732313a207472616e7366657220746f206e6f6e2045524337323152651806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b830200000200000000000000000000000000000024000000000000000000000000150b7a020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001ffffffe033dae5398c21bf07288f60369cb8f9fe4288fbf119aef8a44b5dd643a9bf0b3a", - "deployedBytecode": "0x0004000000000002000700000000000200000000030100190000006003300270000002ab0430019700030000004103550002000000010355000002ab0030019d000100000000001f0000008001000039000000400010043f0000000101200190000000860000c13d0000000001000031000000040110008c000004e80000413d0000000201000367000000000101043b000000e001100270000002b00210009c0000018b0000a13d000002b10210009c000001b10000a13d000002b20210009c000001f90000213d000002b50210009c0000022c0000613d000002b60110009c000004e80000c13d0000000001000416000000000110004c000004e80000c13d0000000003000031000000040130008a000002ad02000041000000800410008c00000000040000190000000004024019000002ad01100197000000000510004c000000000200a019000002ad0110009c00000000010400190000000001026019000000000110004c000004e80000c13d00000002040003670000000401400370000000000101043b000002c10210009c000004e80000213d0000002402400370000000000202043b000002c10520009c000004e80000213d0000006405400370000000000605043b000002ac0560009c000004e80000213d0000002305600039000002ad07000041000000000835004b00000000080000190000000008078019000002ad03300197000002ad05500197000000000935004b0000000007008019000000000335013f000002ad0330009c00000000030800190000000003076019000000000330004c000004e80000c13d0000000403600039000000000334034f000000000303043b000002ac0430009c000003c10000213d0000003f04300039000000200500008a000000000554016f000000400400043d0000000005540019000000000745004b00000000070000190000000107004039000002ac0850009c000003c10000213d0000000107700190000003c10000c13d000000400050043f0000000005340436000000240760003900000000067300190000000008000031000000000686004b000004e80000213d0000001f0630018f000000020770036700000005083002720000006f0000613d0000000009000019000000050a900210000000000ba50019000000000aa7034f000000000a0a043b0000000000ab04350000000109900039000000000a89004b000000670000413d000000000960004c0000007e0000613d0000000508800210000000000787034f00000000088500190000000306600210000000000908043300000000096901cf000000000969022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000696019f00000000006804350000000003350019000000000003043500000044030000390000000203300367000000000303043b0aa6060a0000040f000000000100001900000aa70001042e0000000001000416000000000110004c000004e80000c13d00000000020000310000001f01200039000000200a00008a0000000004a1016f000000400100043d0000000003140019000000000443004b00000000040000190000000104004039000002ac0530009c000003c10000213d0000000104400190000003c10000c13d000000400030043f0000001f0320018f00000002040003670000000505200272000000a40000613d000000000600001900000005076002100000000008710019000000000774034f000000000707043b00000000007804350000000106600039000000000756004b0000009c0000413d000000000630004c000000b30000613d0000000505500210000000000454034f00000000055100190000000303300210000000000605043300000000063601cf000000000636022f000000000404043b0000010003300089000000000434022f00000000033401cf000000000363019f0000000000350435000002ad03000041000000400420008c00000000040000190000000004034019000002ad05200197000000000650004c000000000300a019000002ad0550009c000000000304c019000000000330004c000004e80000c13d0000000034010434000002ac0540009c000004e80000213d000000000221001900000000041400190000001f05400039000002ad06000041000000000725004b00000000070000190000000007068019000002ad05500197000002ad08200197000000000985004b0000000006008019000000000585013f000002ad0550009c00000000050700190000000005066019000000000550004c000004e80000c13d0000000005040433000002ac0650009c000003c10000213d0000003f065000390000000006a6016f000000400b00043d00000000066b00190000000007b6004b00000000070000190000000107004039000002ac0860009c000003c10000213d0000000107700190000003c10000c13d000000400060043f000000000c5b043600000020065000390000000007460019000000000727004b000004e80000213d000000000750004c000000f00000613d000000000700001900000020077000390000000008b70019000000000947001900000000090904330000000000980435000000000857004b000000e90000413d00000000046b001900000000000404350000000003030433000002ac0430009c000004e80000213d00000000011300190000001f03100039000002ad04000041000000000523004b00000000050000190000000005048019000002ad03300197000002ad06200197000000000763004b0000000004008019000000000363013f000002ad0330009c00000000030500190000000003046019000000000330004c000004e80000c13d0000000003010433000002ac0430009c000003c10000213d0000003f043000390000000004a4016f000000400700043d0000000004470019000000000574004b00000000050000190000000105004039000002ac0640009c000003c10000213d0000000105500190000003c10000c13d000000400040043f0000000004370436000600000004001d00000020043000390000000005140019000000000225004b000004e80000213d00030000000c001d00070000000b001d00040000000a001d000000000230004c000001270000613d000000000200001900000020022000390000000005720019000000000612001900000000060604330000000000650435000000000532004b000001200000413d0000000001470019000000000001043500000007010000290000000001010433000500000001001d000002ac0110009c000003c10000213d000100000007001d000000000100041a000000010210019000000001011002700000007f0310018f0000000001036019000200000001001d0000001f0110008c00000000010000190000000101002039000000010110018f000000000112004b000002a30000c13d0000000201000029000000200110008c0000015a0000413d0000000000000435000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002ae011001c700008010020000390aa60aa10000040f0000000102200190000004e80000613d00000005030000290000001f023000390000000502200270000000200330008c0000000002004019000000000301043b00000002010000290000001f01100039000000050110027000000000011300190000000002230019000000000312004b0000015a0000813d000000000002041b0000000102200039000000000312004b000001560000413d00000005010000290000001f0110008c000004740000a13d0000000000000435000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002ae011001c700008010020000390aa60aa10000040f000000010220019000000004020000290000000706000029000004e80000613d000000050300002900000000032301700000002002000039000000000101043b000001790000613d0000002002000039000000000400001900000000056200190000000005050433000000000051041b000000200220003900000001011000390000002004400039000000000534004b000001710000413d0000000504000029000000000343004b000001870000813d00000005030000290000000303300210000000f80330018f000000010400008a000000000334022f000000000343013f000000070400002900000000024200190000000002020433000000000232016f000000000021041b000000010100003900000005020000290000000102200210000004810000013d000002ba0210009c000001e00000213d000002be0210009c0000025e0000613d000002bf0210009c000002860000613d000002c00110009c000004e80000c13d0000000001000416000000000110004c000004e80000c13d000000040100008a0000000001100031000002ad02000041000000200310008c00000000030000190000000003024019000002ad01100197000000000410004c000000000200a019000002ad0110009c00000000010300190000000001026019000000000110004c000004e80000c13d00000004010000390000000201100367000000000101043b0aa605b60000040f000002c101100197000000400200043d0000000000120435000002ab01000041000002ab0320009c00000000010240190000004001100210000002c2011001c700000aa70001042e000002b70210009c000002a90000613d000002b80210009c000002c70000613d000002b90110009c000004e80000c13d0000000001000416000000000110004c000004e80000c13d000000040100008a0000000001100031000002ad02000041000000000310004c00000000030000190000000003024019000002ad01100197000000000410004c000000000200a019000002ad0110009c00000000010300190000000001026019000000000110004c000004e80000c13d0000000104000039000000000304041a000000010530019000000001013002700000007f0210018f000000000701001900000000070260190000001f0270008c00000000020000190000000102002039000000000223013f0000000102200190000002a30000c13d000000400100043d0000000002710436000000000550004c0000038b0000c13d000001000400008a000000000343016f0000000000320435000000000270004c00000020030000390000000003006019000003980000013d000002bb0210009c000002f40000613d000002bc0210009c000003340000613d000002bd0110009c000004e80000c13d0000000001000416000000000110004c000004e80000c13d00000000010000310aa6052b0000040f000700000001001d000600000002001d000500000003001d000000400100043d000400000001001d0aa605460000040f000000040400002900000000000404350000000701000029000000060200002900000005030000290aa6060a0000040f000000000100001900000aa70001042e000002b30210009c000003460000613d000002b40110009c000004e80000c13d0000000001000416000000000110004c000004e80000c13d000000040100008a0000000001100031000002ad02000041000000400310008c00000000030000190000000003024019000002ad01100197000000000410004c000000000200a019000002ad0110009c00000000010300190000000001026019000000000110004c000004e80000c13d00000002020003670000000401200370000000000101043b000002c10310009c000004e80000213d0000002402200370000000000302043b000002c10230009c000004e80000213d00000000001004350000000501000039000000200010043f00000040020000390000000001000019000700000003001d0aa604ff0000040f00000007020000290aa605640000040f000000000101041a000000ff011001900000000001000019000000010100c039000000400200043d0000000000120435000002ab01000041000002ab0320009c00000000010240190000004001100210000002c2011001c700000aa70001042e0000000001000416000000000110004c000004e80000c13d000000040100008a0000000001100031000002ad02000041000000400310008c00000000030000190000000003024019000002ad01100197000000000410004c000000000200a019000002ad0110009c00000000010300190000000001026019000000000110004c000004e80000c13d00000002010003670000000402100370000000000402043b000002c10240009c000004e80000213d0000002401100370000000000501043b000000000150004c0000000001000019000000010100c039000000000115004b000004e80000c13d0000000002000411000000000142004b000003e60000c13d000000400100043d0000004402100039000002cc030000410000000000320435000000240210003900000019030000390000000000320435000002c7020000410000000000210435000000040210003900000020030000390000000000320435000002ab02000041000002ab0310009c00000000010280190000004001100210000002cd011001c700000aa8000104300000000001000416000000000110004c000004e80000c13d000000040100008a0000000001100031000002ad02000041000000200310008c00000000030000190000000003024019000002ad01100197000000000410004c000000000200a019000002ad0110009c00000000010300190000000001026019000000000110004c000004e80000c13d00000004010000390000000201100367000000000101043b000002d602100197000000000212004b000004e80000c13d0000000102000039000002d70310009c0000027d0000613d000002d80310009c0000027d0000613d000002d90110009c00000000020000190000000102006039000000010120018f000000400200043d0000000000120435000002ab01000041000002ab0320009c00000000010240190000004001100210000002c2011001c700000aa70001042e0000000001000416000000000110004c000004e80000c13d000000040100008a0000000001100031000002ad02000041000000000310004c00000000030000190000000003024019000002ad01100197000000000410004c000000000200a019000002ad0110009c00000000010300190000000001026019000000000110004c000004e80000c13d000000000300041a000000010430019000000001013002700000007f0210018f000000000701001900000000070260190000001f0270008c00000000020000190000000102002039000000000223013f0000000102200190000003800000613d000002c90100004100000000001004350000002201000039000000040010043f000002ca0100004100000aa8000104300000000001000416000000000110004c000004e80000c13d000000040100008a0000000001100031000002ad02000041000000200310008c00000000030000190000000003024019000002ad01100197000000000410004c000000000200a019000002ad0110009c00000000010300190000000001026019000000000110004c000004e80000c13d00000004010000390000000201100367000000000101043b0aa605750000040f000002c101100197000000400200043d0000000000120435000002ab01000041000002ab0320009c00000000010240190000004001100210000002c2011001c700000aa70001042e0000000001000416000000000110004c000004e80000c13d000000040100008a0000000001100031000002ad02000041000000200310008c00000000030000190000000003024019000002ad01100197000000000410004c000000000200a019000002ad0110009c00000000010300190000000001026019000000000110004c000004e80000c13d00000004010000390000000201100367000000000101043b000002c10210009c000004e80000213d000000000210004c000003aa0000c13d000000400100043d0000006402100039000002cf0300004100000000003204350000004402100039000002d003000041000000000032043500000024021000390000002a030000390000000000320435000002c7020000410000000000210435000000040210003900000020030000390000000000320435000002ab02000041000002ab0310009c00000000010280190000004001100210000002c8011001c700000aa8000104300000000001000416000000000110004c000004e80000c13d000000040100008a0000000001100031000002ad02000041000000400310008c00000000030000190000000003024019000002ad01100197000000000410004c000000000200a019000002ad0110009c00000000010300190000000001026019000000000110004c000004e80000c13d00000002010003670000000402100370000000000202043b000700000002001d000002c10220009c000004e80000213d0000002401100370000000000101043b000600000001001d00000000001004350000000201000039000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f0000000102200190000004e80000613d000000000101043b000000000101041a000002c102100198000004210000c13d000000400100043d0000006402100039000002d30300004100000000003204350000004402100039000002d4030000410000000000320435000000240210003900000029030000390000000000320435000002c7020000410000000000210435000000040210003900000020030000390000000000320435000002ab02000041000002ab0310009c00000000010280190000004001100210000002c8011001c700000aa8000104300000000001000416000000000110004c000004e80000c13d00000000010000310aa6052b0000040f000700000001001d000600000002001d0000000002030019000500000002001d00000000010004110aa607c30000040f0aa605f20000040f0000000701000029000000060200002900000005030000290aa608780000040f000000000100001900000aa70001042e0000000001000416000000000110004c000004e80000c13d000000040100008a0000000001100031000002ad02000041000000200310008c00000000030000190000000003024019000002ad01100197000000000410004c000000000200a019000002ad0110009c00000000010300190000000001026019000000000110004c000004e80000c13d00000004010000390000000201100367000000000101043b00000000001004350000000201000039000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f0000000102200190000004e80000613d000000400200043d000000000101043b000000000101041a000002c101100198000003b90000c13d0000006401200039000002c50300004100000000003104350000004401200039000002c603000041000000000031043500000024012000390000002f030000390000000000310435000002c7010000410000000000120435000000040120003900000020030000390000000000310435000002ab01000041000002ab0320009c00000000010240190000004001100210000002c8011001c700000aa800010430000000400100043d0000000002710436000000000440004c000003c70000c13d000001000400008a000000000343016f0000000000320435000000000270004c00000020030000390000000003006019000003d40000013d0000000000400435000000000370004c0000000003000019000003980000613d000002ce0400004100000000030000190000000005230019000000000604041a000000000065043500000001044000390000002003300039000000000573004b000003910000413d0000002002300039000700000001001d0aa605510000040f000000400100043d000600000001001d00000007020000290aa605150000040f00000006040000290000000001410049000002ab02000041000002ab0310009c0000000001028019000002ab0340009c000000000204401900000040022002100000006001100210000000000121019f00000aa70001042e00000000001004350000000301000039000000200010043f000000400200003900000000010000190aa604ff0000040f000000000101041a000000400200043d0000000000120435000002ab01000041000002ab0320009c00000000010240190000004001100210000002c2011001c700000aa70001042e000002c40120009c000003c10000213d0000002001200039000000400010043f0000000000020435000000400200043d000002c40120009c000004390000a13d000002c90100004100000000001004350000004101000039000000040010043f000002ca0100004100000aa8000104300000000000000435000000000370004c0000000003000019000003d40000613d000002d50400004100000000030000190000000005230019000000000604041a000000000065043500000001044000390000002003300039000000000573004b000003cd0000413d0000002002300039000700000001001d0aa605510000040f000000400100043d000600000001001d00000007020000290aa605150000040f00000006040000290000000001410049000002ab02000041000002ab0310009c0000000001028019000002ab0340009c000000000204401900000040022002100000006001100210000000000121019f00000aa70001042e000500000002001d00000000002004350000000501000039000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c70000801002000039000700000004001d000600000005001d0aa60aa10000040f00000007030000290000000102200190000004e80000613d000000000101043b0000000000300435000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f000000060400002900000007060000290000000102200190000004e80000613d000000000101043b000000000201041a000001000300008a000000000232016f000000000242019f000000000021041b000000400100043d0000000000410435000002ab020000410000000003000414000002ab0430009c0000000003028019000002ab0410009c00000000010280190000004001100210000000c002300210000000000112019f000002ae011001c70000800d020000390000000303000039000002cb0400004100000005050000290aa60a9c0000040f0000000101200190000004e80000613d000000000100001900000aa70001042e0000000701000029000000000121004b0000044a0000c13d000000400100043d0000006402100039000002d10300004100000000003204350000004402100039000002d2030000410000000000320435000000240210003900000021030000390000000000320435000002c7020000410000000000210435000000040210003900000020030000390000000000320435000002ab02000041000002ab0310009c00000000010280190000004001100210000002c8011001c700000aa8000104300000002001200039000000400010043f0000000000020435000000400100043d000700000001001d0aa605150000040f00000007040000290000000001410049000002ab02000041000002ab0310009c0000000001028019000002ab0340009c000000000204401900000040022002100000006001100210000000000121019f00000aa70001042e00000001010000390000000004000411000000000324004b0000046e0000613d000500000004001d00000000002004350000000501000039000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f0000000102200190000004e80000613d000000000101043b0000000502000029000002c1022001970000000000200435000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f0000000102200190000004e80000613d000000000101043b000000000101041a000000ff0110018f0aa6059e0000040f000000070100002900000006020000290aa6095e0000040f000000000100001900000aa70001042e0000000501000029000000000110004c00000000010000190000047a0000613d0000000301000029000000000101043300000005040000290000000302400210000000010300008a000000000223022f000000000232013f000000000221016f0000000101400210000000000112019f000000000010041b00000001010000290000000001010433000700000001001d000002ac0110009c000003c10000213d0000000101000039000300000001001d000000000101041a000000010210019000000001021002700000007f0320018f0000000002036019000500000002001d0000001f0220008c00000000020000190000000102002039000000000121013f0000000101100190000002a30000c13d0000000501000029000000200110008c000004b60000413d00000001010000390000000000100435000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002ae011001c700008010020000390aa60aa10000040f0000000102200190000004e80000613d00000007030000290000001f023000390000000502200270000000200330008c0000000002004019000000000301043b00000005010000290000001f01100039000000050110027000000000011300190000000002230019000000000312004b000004b60000813d000000000002041b0000000102200039000000000312004b000004b20000413d00000007010000290000001f0110008c000004ea0000a13d00000003010000290000000000100435000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002ae011001c700008010020000390aa60aa10000040f000000010220019000000004020000290000000106000029000004e80000613d000000070300002900000000032301700000002002000039000000000101043b000004d60000613d0000002002000039000000000400001900000000056200190000000005050433000000000051041b000000200220003900000001011000390000002004400039000000000534004b000004ce0000413d0000000704000029000000000343004b000004e40000813d00000007030000290000000303300210000000f80330018f000000010400008a000000000334022f000000000343013f000000010400002900000000024200190000000002020433000000000232016f000000000021041b000000070100002900000001011002100000000302000029000004f70000013d000000000100001900000aa8000104300000000701000029000000000110004c0000000001000019000004f00000613d0000000601000029000000000101043300000007040000290000000302400210000000010300008a000000000223022f000000000232013f000000000121016f0000000102400210000000000121019f0000000302000029000000000012041b000000200100003900000100001004430000012000000443000002af0100004100000aa70001042e000002ab03000041000002ab0410009c00000000010380190000004001100210000002ab0420009c00000000020380190000006002200210000000000112019f0000000002000414000002ab0420009c0000000002038019000000c002200210000000000112019f000002da011001c700008010020000390aa60aa10000040f0000000102200190000005130000613d000000000101043b000000000001042d000000000100001900000aa80001043000000020030000390000000004310436000000000302043300000000003404350000004001100039000000000430004c000005240000613d000000000400001900000000051400190000002004400039000000000624001900000000060604330000000000650435000000000534004b0000051d0000413d000000000213001900000000000204350000001f02300039000000200300008a000000000232016f0000000001120019000000000001042d000000040110008a000002ad020000410000005f0310008c00000000030000190000000003022019000002ad01100197000000000410004c0000000002008019000002ad0110009c00000000010300190000000001026019000000000110004c000005440000613d00000002030003670000000401300370000000000101043b000002c10210009c000005440000213d0000002402300370000000000202043b000002c10420009c000005440000213d0000004403300370000000000303043b000000000001042d000000000100001900000aa800010430000002db0210009c0000054b0000813d0000002001100039000000400010043f000000000001042d000002c90100004100000000001004350000004101000039000000040010043f000002ca0100004100000aa8000104300000001f02200039000000200300008a000000000232016f0000000001120019000000000221004b00000000020000190000000102004039000002ac0310009c0000055e0000213d00000001022001900000055e0000c13d000000400010043f000000000001042d000002c90100004100000000001004350000004101000039000000040010043f000002ca0100004100000aa800010430000002c1022001970000000000200435000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f0000000102200190000005730000613d000000000101043b000000000001042d000000000100001900000aa80001043000000000001004350000000201000039000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f0000000102200190000005870000613d000000000101043b000000000101041a000002c101100198000005890000613d000000000001042d000000000100001900000aa800010430000000400100043d0000006402100039000002d30300004100000000003204350000004402100039000002d4030000410000000000320435000000240210003900000029030000390000000000320435000002c7020000410000000000210435000000040210003900000020030000390000000000320435000002ab02000041000002ab0310009c00000000010280190000004001100210000002c8011001c700000aa800010430000000000110004c000005a10000613d000000000001042d000000400100043d0000006402100039000002dc0300004100000000003204350000004402100039000002dd030000410000000000320435000000240210003900000038030000390000000000320435000002c7020000410000000000210435000000040210003900000020030000390000000000320435000002ab02000041000002ab0310009c00000000010280190000004001100210000002c8011001c700000aa8000104300001000000000002000100000001001d00000000001004350000000201000039000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f0000000102200190000005db0000613d000000000101043b000000000101041a000002c101100198000005dd0000613d000000010100002900000000001004350000000401000039000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f0000000102200190000005db0000613d000000000101043b000000000101041a000002c101100197000000000001042d000000000100001900000aa800010430000000400100043d0000006402100039000002de0300004100000000003204350000004402100039000002df03000041000000000032043500000024021000390000002c030000390000000000320435000002c7020000410000000000210435000000040210003900000020030000390000000000320435000002ab02000041000002ab0310009c00000000010280190000004001100210000002c8011001c700000aa800010430000000000110004c000005f50000613d000000000001042d000000400100043d0000006402100039000002e00300004100000000003204350000004402100039000002e1030000410000000000320435000000240210003900000031030000390000000000320435000002c7020000410000000000210435000000040210003900000020030000390000000000320435000002ab02000041000002ab0310009c00000000010280190000004001100210000002c8011001c700000aa8000104300008000000000002000200000004001d000400000002001d000500000001001d000800000003001d00000000003004350000000201000039000700000001001d000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f00000001022001900000071f0000613d000000000101043b000000000101041a000002c1011001980000073c0000613d000000080100002900000000001004350000000701000029000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f00000001022001900000071f0000613d000000000101043b000000000101041a000002c101100198000007210000613d0000000002000411000002c102200197000600000002001d000000000212004b0000067d0000613d00000000001004350000000501000039000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f00000001022001900000071f0000613d000000000101043b00000006020000290000000000200435000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f00000001022001900000071f0000613d000000000101043b000000000101041a000000ff011001900000067d0000c13d000000080100002900000000001004350000000701000029000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f00000001022001900000071f0000613d000000000101043b000000000101041a000002c1011001980000078c0000613d000000080100002900000000001004350000000401000039000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f00000001022001900000071f0000613d000000000101043b000000000101041a000002c1011001970000000602000029000000000121004b000007a10000c13d000000080100002900000000001004350000000701000029000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f00000001022001900000071f0000613d000000000101043b000000000101041a000002c101100198000600000001001d000007210000613d0000000501000029000002c1011001970000000602000029000000000112004b000007510000c13d0000000401000029000002c101100198000300000001001d000007660000613d000000080100002900000000001004350000000401000039000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f00000001022001900000071f0000613d000000000101043b000000000201041a000002e402200197000000000021041b000000080100002900000000001004350000000701000029000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f00000001022001900000071f0000613d000000000101043b000000000101041a000002c105100198000007210000613d000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002da011001c70000800d020000390000000403000039000002e504000041000000000600001900000008070000290aa60a9c0000040f00000001012001900000071f0000613d000000060100002900000000001004350000000301000039000100000001001d000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f00000001022001900000071f0000613d000000000101043b000000000201041a000000000320004c000007360000613d000000010220008a000000000021041b000000030100002900000000001004350000000101000029000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f00000001022001900000071f0000613d000000000101043b000000000201041a000000010300008a000000000332004b000007360000613d0000000102200039000000000021041b000000080100002900000000001004350000000701000029000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f00000001022001900000071f0000613d000000000101043b000000000201041a000002e4022001970000000306000029000000000262019f000000000021041b000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002da011001c70000800d020000390000000403000039000002e604000041000000060500002900000008070000290aa60a9c0000040f00000001012001900000071f0000613d00000005010000290000000402000029000000080300002900000002040000290aa609ae0000040f000000000110004c0000077b0000613d000000000001042d000000000100001900000aa800010430000000400100043d0000006402100039000002d30300004100000000003204350000004402100039000002d4030000410000000000320435000000240210003900000029030000390000000000320435000002c7020000410000000000210435000000040210003900000020030000390000000000320435000002ab02000041000002ab0310009c00000000010280190000004001100210000002c8011001c700000aa800010430000002c90100004100000000001004350000001101000039000000040010043f000002ca0100004100000aa800010430000000400100043d0000006402100039000002de0300004100000000003204350000004402100039000002e903000041000000000032043500000024021000390000002c030000390000000000320435000002c7020000410000000000210435000000040210003900000020030000390000000000320435000002ab02000041000002ab0310009c00000000010280190000004001100210000002c8011001c700000aa800010430000000400100043d0000006402100039000002e20300004100000000003204350000004402100039000002e3030000410000000000320435000000240210003900000025030000390000000000320435000002c7020000410000000000210435000000040210003900000020030000390000000000320435000002ab02000041000002ab0310009c00000000010280190000004001100210000002c8011001c700000aa800010430000000400100043d0000006402100039000002e70300004100000000003204350000004402100039000002e8030000410000000000320435000000240210003900000024030000390000000000320435000002c7020000410000000000210435000000040210003900000020030000390000000000320435000002ab02000041000002ab0310009c00000000010280190000004001100210000002c8011001c700000aa800010430000000400200043d000800000002001d000002c701000041000000000012043500000004012000390aa607b60000040f00000008040000290000000001410049000002ab02000041000002ab0310009c0000000001028019000002ab0340009c000000000204401900000040022002100000006001100210000000000121019f00000aa800010430000000400100043d0000006402100039000002de0300004100000000003204350000004402100039000002df03000041000000000032043500000024021000390000002c030000390000000000320435000002c7020000410000000000210435000000040210003900000020030000390000000000320435000002ab02000041000002ab0310009c00000000010280190000004001100210000002c8011001c700000aa800010430000000400100043d0000006402100039000002e00300004100000000003204350000004402100039000002e1030000410000000000320435000000240210003900000031030000390000000000320435000002c7020000410000000000210435000000040210003900000020030000390000000000320435000002ab02000041000002ab0310009c00000000010280190000004001100210000002c8011001c700000aa8000104300000006002100039000002ea0300004100000000003204350000004002100039000002eb030000410000000000320435000000200210003900000032030000390000000000320435000000200200003900000000002104350000008001100039000000000001042d0003000000000002000100000001001d000300000002001d00000000002004350000000201000039000200000001001d000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f0000000102200190000008370000613d000000000101043b000000000101041a000002c101100198000008390000613d000000030100002900000000001004350000000201000029000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f0000000102200190000008370000613d000000000101043b000000000101041a000002c1021001980000084e0000613d00000001010000390000000103000029000002c103300197000100000003001d000000000323004b000008360000613d00000000002004350000000501000039000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f0000000102200190000008370000613d000000000101043b00000001020000290000000000200435000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f0000000102200190000008370000613d000000000101043b000000000101041a000000ff01100190000008360000c13d000000030100002900000000001004350000000201000029000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f0000000102200190000008370000613d000000000101043b000000000101041a000002c101100198000008630000613d000000030100002900000000001004350000000401000039000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f0000000102200190000008370000613d000000000101043b000000000101041a000002c1011001970000000102000029000000000121004b00000000010000190000000101006039000000000001042d000000000100001900000aa800010430000000400100043d0000006402100039000002de0300004100000000003204350000004402100039000002e903000041000000000032043500000024021000390000002c030000390000000000320435000002c7020000410000000000210435000000040210003900000020030000390000000000320435000002ab02000041000002ab0310009c00000000010280190000004001100210000002c8011001c700000aa800010430000000400100043d0000006402100039000002d30300004100000000003204350000004402100039000002d4030000410000000000320435000000240210003900000029030000390000000000320435000002c7020000410000000000210435000000040210003900000020030000390000000000320435000002ab02000041000002ab0310009c00000000010280190000004001100210000002c8011001c700000aa800010430000000400100043d0000006402100039000002de0300004100000000003204350000004402100039000002df03000041000000000032043500000024021000390000002c030000390000000000320435000002c7020000410000000000210435000000040210003900000020030000390000000000320435000002ab02000041000002ab0310009c00000000010280190000004001100210000002c8011001c700000aa8000104300005000000000002000100000002001d000200000001001d000500000003001d00000000003004350000000201000039000300000001001d000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f0000000102200190000009170000613d000000000101043b000000000101041a000002c101100198000400000001001d000009190000613d0000000201000029000002c1011001970000000402000029000000000112004b000009340000c13d0000000101000029000002c101100198000200000001001d000009490000613d000000050100002900000000001004350000000401000039000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f0000000102200190000009170000613d000000000101043b000000000201041a000002e402200197000000000021041b000000050100002900000000001004350000000301000029000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f0000000102200190000009170000613d000000000101043b000000000101041a000002c105100198000009190000613d000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002da011001c70000800d020000390000000403000039000002e504000041000000000600001900000005070000290aa60a9c0000040f0000000101200190000009170000613d000000040100002900000000001004350000000301000039000100000001001d000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f0000000102200190000009170000613d000000000101043b000000000201041a000000000320004c0000092e0000613d000000010220008a000000000021041b000000020100002900000000001004350000000101000029000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f0000000102200190000009170000613d000000000101043b000000000201041a000000010300008a000000000332004b0000092e0000613d0000000102200039000000000021041b000000050100002900000000001004350000000301000029000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f0000000102200190000009170000613d000000000101043b000000000201041a000002e4022001970000000206000029000000000262019f000000000021041b000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002da011001c70000800d020000390000000403000039000002e604000041000000040500002900000005070000290aa60a9c0000040f0000000101200190000009170000613d000000000001042d000000000100001900000aa800010430000000400100043d0000006402100039000002d30300004100000000003204350000004402100039000002d4030000410000000000320435000000240210003900000029030000390000000000320435000002c7020000410000000000210435000000040210003900000020030000390000000000320435000002ab02000041000002ab0310009c00000000010280190000004001100210000002c8011001c700000aa800010430000002c90100004100000000001004350000001101000039000000040010043f000002ca0100004100000aa800010430000000400100043d0000006402100039000002e20300004100000000003204350000004402100039000002e3030000410000000000320435000000240210003900000025030000390000000000320435000002c7020000410000000000210435000000040210003900000020030000390000000000320435000002ab02000041000002ab0310009c00000000010280190000004001100210000002c8011001c700000aa800010430000000400100043d0000006402100039000002e70300004100000000003204350000004402100039000002e8030000410000000000320435000000240210003900000024030000390000000000320435000002c7020000410000000000210435000000040210003900000020030000390000000000320435000002ab02000041000002ab0310009c00000000010280190000004001100210000002c8011001c700000aa8000104300002000000000002000100000001001d000200000002001d00000000002004350000000401000039000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f0000000102200190000009970000613d0000000102000029000002c103200197000000000101043b000000000201041a000002e402200197000100000003001d000000000232019f000000000021041b000000020100002900000000001004350000000201000039000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f0000000102200190000009970000613d0000000207000029000000000101043b000000000101041a000002c105100198000009990000613d000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002da011001c70000800d020000390000000403000039000002e50400004100000001060000290aa60a9c0000040f0000000101200190000009970000613d000000000001042d000000000100001900000aa800010430000000400100043d0000006402100039000002d30300004100000000003204350000004402100039000002d4030000410000000000320435000000240210003900000029030000390000000000320435000002c7020000410000000000210435000000040210003900000020030000390000000000320435000002ab02000041000002ab0310009c00000000010280190000004001100210000002c8011001c700000aa8000104300006000000000002000400000004001d000200000003001d000100000001001d000002ec010000410000000000100439000300000002001d0000000400200443000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002ed011001c700008002020000390aa60aa10000040f000000000301034f000000010120019000000a490000613d0000000101000039000000000203043b000000000220004c00000a480000613d000000400a00043d000002ee0100004100000000001a04350000006402a000390000000001000414000000800300003900000000003204350000004402a00039000000020300002900000000003204350000000102000029000002c1022001970000002403a0003900000000002304350000000002000411000002c1022001970000000403a000390000000000230435000000040800002900000000030804330000008402a000390000000000320435000000a404a000390000000302000029000002c102200197000000000530004c000009e80000613d000000000500001900000000064500190000002005500039000000000785001900000000070704330000000000760435000000000635004b000009e10000413d00000000044300190000000000040435000000040420008c000009f50000c13d0000000001000415000000060110008a00000020011000c90000000103000031000000200230008c00000020040000390000000004034019000600000000001d00000a320000013d0000001f03300039000000200400008a000000000343016f000002ab04000041000002ab05a0009c000000000504001900000000050a40190000004005500210000000a403300039000002ab0630009c00000000030480190000006003300210000000000353019f000002ab0510009c0000000001048019000000c001100210000000000113019f00040000000a001d0aa60a9c0000040f000000040a00002900000000030100190000006003300270000002ab03300197000000200430008c000000200400003900000000040340190000001f0540018f000000050640027200000a1b0000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b00000a130000413d000000000750004c00000a2a0000613d0000000506600210000000000761034f00000000066a00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f00030000000103550000000001000415000000050110008a00000020011000c9000500000000001d000000010220019000000a4b0000613d0000001f02400039000000600420018f0000000002a40019000000000442004b00000000040000190000000104004039000002ac0520009c00000a8d0000213d000000010440019000000a8d0000c13d000000400020043f000000200230008c00000a490000413d00000000020a0433000002d603200197000000000323004b00000a490000c13d000000200110011a000000000102001f000002ee0120009c00000000010000190000000101006039000000000001042d000000000100001900000aa8000104300000006001000039000000000230004c00000a620000c13d0000000021010434000000000310004c00000a930000c13d000000400200043d000400000002001d000002c701000041000000000012043500000004012000390aa607b60000040f00000004040000290000000001410049000002ab02000041000002ab0310009c0000000001028019000002ab0340009c000000000204401900000040022002100000006001100210000000000121019f00000aa8000104300000003f01300039000002ef02100197000000400100043d0000000002210019000000000412004b00000000040000190000000104004039000002ac0520009c00000a8d0000213d000000010440019000000a8d0000c13d000000400020043f0000000002310436000000030300036700000001050000310000001f0450018f000000050550027200000a7d0000613d000000000600001900000005076002100000000008720019000000000773034f000000000707043b00000000007804350000000106600039000000000756004b00000a750000413d000000000640004c00000a4e0000613d0000000505500210000000000353034f00000000025200190000000304400210000000000502043300000000054501cf000000000545022f000000000303043b0000010004400089000000000343022f00000000034301cf000000000353019f000000000032043500000a4e0000013d000002c90100004100000000001004350000004101000039000000040010043f000002ca0100004100000aa800010430000002ab03000041000002ab0420009c0000000002038019000002ab0410009c000000000103801900000060011002100000004002200210000000000121019f00000aa80001043000000a9f002104210000000102000039000000000001042d0000000002000019000000000001042d00000aa4002104230000000102000039000000000001042d0000000002000019000000000001042d00000aa60000043200000aa70001042e00000aa80001043000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff000000000000000000000000000000000000000000000000ffffffffffffffff800000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000200000000000000000000000000000000200000000000000000000000000000040000001000000000000000000000000000000000000000000000000000000000000000000000000006352211d00000000000000000000000000000000000000000000000000000000a22cb46400000000000000000000000000000000000000000000000000000000c87b56dc00000000000000000000000000000000000000000000000000000000c87b56dd00000000000000000000000000000000000000000000000000000000e985e9c500000000000000000000000000000000000000000000000000000000a22cb46500000000000000000000000000000000000000000000000000000000b88d4fde000000000000000000000000000000000000000000000000000000006352211e0000000000000000000000000000000000000000000000000000000070a082310000000000000000000000000000000000000000000000000000000095d89b4100000000000000000000000000000000000000000000000000000000095ea7b200000000000000000000000000000000000000000000000000000000095ea7b30000000000000000000000000000000000000000000000000000000023b872dd0000000000000000000000000000000000000000000000000000000042842e0e0000000000000000000000000000000000000000000000000000000001ffc9a70000000000000000000000000000000000000000000000000000000006fdde0300000000000000000000000000000000000000000000000000000000081812fc000000000000000000000000ffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000200000000000000000000000000200000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffdf6e6578697374656e7420746f6b656e00000000000000000000000000000000004552433732314d657461646174613a2055524920717565727920666f72206e6f08c379a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000840000000000000000000000004e487b7100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002400000000000000000000000017307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c314552433732313a20617070726f766520746f2063616c6c6572000000000000000000000000000000000000000000000000000064000000000000000000000000b10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6726f2061646472657373000000000000000000000000000000000000000000004552433732313a2062616c616e636520717565727920666f7220746865207a6572000000000000000000000000000000000000000000000000000000000000004552433732313a20617070726f76616c20746f2063757272656e74206f776e65656e7420746f6b656e00000000000000000000000000000000000000000000004552433732313a206f776e657220717565727920666f72206e6f6e6578697374290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563ffffffff0000000000000000000000000000000000000000000000000000000080ac58cd000000000000000000000000000000000000000000000000000000005b5e139f0000000000000000000000000000000000000000000000000000000001ffc9a7000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffe06e6572206e6f7220617070726f76656420666f7220616c6c00000000000000004552433732313a20617070726f76652063616c6c6572206973206e6f74206f77697374656e7420746f6b656e00000000000000000000000000000000000000004552433732313a20617070726f76656420717565727920666f72206e6f6e6578776e6572206e6f7220617070726f7665640000000000000000000000000000004552433732313a207472616e736665722063616c6c6572206973206e6f74206f6f776e65720000000000000000000000000000000000000000000000000000004552433732313a207472616e736665722066726f6d20696e636f727265637420ffffffffffffffffffffffff00000000000000000000000000000000000000008c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef72657373000000000000000000000000000000000000000000000000000000004552433732313a207472616e7366657220746f20746865207a65726f206164644552433732313a206f70657261746f7220717565727920666f72206e6f6e657863656976657220696d706c656d656e74657200000000000000000000000000004552433732313a207472616e7366657220746f206e6f6e2045524337323152651806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b830200000200000000000000000000000000000024000000000000000000000000150b7a020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001ffffffe033dae5398c21bf07288f60369cb8f9fe4288fbf119aef8a44b5dd643a9bf0b3a", - "linkReferences": {}, - "deployedLinkReferences": {}, - "factoryDeps": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/token/ERC721/IERC721.sol/IERC721.dbg.json b/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/token/ERC721/IERC721.sol/IERC721.dbg.json deleted file mode 100644 index d6f065d186..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/token/ERC721/IERC721.sol/IERC721.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/92cb10df65f6d26368974b9012699389.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/token/ERC721/IERC721.sol/IERC721.json b/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/token/ERC721/IERC721.sol/IERC721.json deleted file mode 100644 index 80c6e8d391..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/token/ERC721/IERC721.sol/IERC721.json +++ /dev/null @@ -1,297 +0,0 @@ -{ - "_format": "hh-zksolc-artifact-1", - "contractName": "IERC721", - "sourceName": "@openzeppelin/contracts/token/ERC721/IERC721.sol", - "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": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "balance", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "getApproved", - "outputs": [ - { - "internalType": "address", - "name": "operator", - "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": "owner", - "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": "nonpayable", - "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": "nonpayable", - "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": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {}, - "factoryDeps": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol/IERC721Receiver.dbg.json b/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol/IERC721Receiver.dbg.json deleted file mode 100644 index d6f065d186..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol/IERC721Receiver.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/92cb10df65f6d26368974b9012699389.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol/IERC721Receiver.json b/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol/IERC721Receiver.json deleted file mode 100644 index f442745317..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol/IERC721Receiver.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "_format": "hh-zksolc-artifact-1", - "contractName": "IERC721Receiver", - "sourceName": "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol", - "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" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {}, - "factoryDeps": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol/ERC721URIStorage.dbg.json b/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol/ERC721URIStorage.dbg.json deleted file mode 100644 index 9177ae2051..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol/ERC721URIStorage.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../../build-info/92cb10df65f6d26368974b9012699389.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol/ERC721URIStorage.json b/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol/ERC721URIStorage.json deleted file mode 100644 index ae9d3efb11..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol/ERC721URIStorage.json +++ /dev/null @@ -1,342 +0,0 @@ -{ - "_format": "hh-zksolc-artifact-1", - "contractName": "ERC721URIStorage", - "sourceName": "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol", - "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": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "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": "", - "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": "nonpayable", - "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": "nonpayable", - "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": "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": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {}, - "factoryDeps": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol/IERC721Metadata.dbg.json b/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol/IERC721Metadata.dbg.json deleted file mode 100644 index 9177ae2051..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol/IERC721Metadata.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../../build-info/92cb10df65f6d26368974b9012699389.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol/IERC721Metadata.json b/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol/IERC721Metadata.json deleted file mode 100644 index 5644097523..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol/IERC721Metadata.json +++ /dev/null @@ -1,342 +0,0 @@ -{ - "_format": "hh-zksolc-artifact-1", - "contractName": "IERC721Metadata", - "sourceName": "@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol", - "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": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "balance", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "getApproved", - "outputs": [ - { - "internalType": "address", - "name": "operator", - "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": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "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": "tokenId", - "type": "uint256" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "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": "nonpayable", - "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": "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": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {}, - "factoryDeps": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/utils/Address.sol/Address.dbg.json b/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/utils/Address.sol/Address.dbg.json deleted file mode 100644 index ea34a40fbf..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/utils/Address.sol/Address.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../build-info/92cb10df65f6d26368974b9012699389.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/utils/Address.sol/Address.json b/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/utils/Address.sol/Address.json deleted file mode 100644 index 9eb03ecaa6..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/utils/Address.sol/Address.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "_format": "hh-zksolc-artifact-1", - "contractName": "Address", - "sourceName": "@openzeppelin/contracts/utils/Address.sol", - "abi": [], - "bytecode": "0x00000001012001900000000c0000613d0000008001000039000000400010043f0000000001000416000000000110004c0000000c0000c13d00000020010000390000010000100443000001200000044300000005010000410000000f0001042e000000000100001900000010000104300000000e000004320000000f0001042e0000001000010430000000000000000000000000000000000000000000000000000000020000000000000000000000000000004000000100000000000000000075a02678df72152a956a174413430d4055bd7836b8469a375bf6ec00883453a0", - "deployedBytecode": "0x00000001012001900000000c0000613d0000008001000039000000400010043f0000000001000416000000000110004c0000000c0000c13d00000020010000390000010000100443000001200000044300000005010000410000000f0001042e000000000100001900000010000104300000000e000004320000000f0001042e0000001000010430000000000000000000000000000000000000000000000000000000020000000000000000000000000000004000000100000000000000000075a02678df72152a956a174413430d4055bd7836b8469a375bf6ec00883453a0", - "linkReferences": {}, - "deployedLinkReferences": {}, - "factoryDeps": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/utils/Context.sol/Context.dbg.json b/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/utils/Context.sol/Context.dbg.json deleted file mode 100644 index ea34a40fbf..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/utils/Context.sol/Context.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../build-info/92cb10df65f6d26368974b9012699389.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/utils/Context.sol/Context.json b/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/utils/Context.sol/Context.json deleted file mode 100644 index 4cdd3843b5..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/utils/Context.sol/Context.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "_format": "hh-zksolc-artifact-1", - "contractName": "Context", - "sourceName": "@openzeppelin/contracts/utils/Context.sol", - "abi": [], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {}, - "factoryDeps": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/utils/Counters.sol/Counters.dbg.json b/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/utils/Counters.sol/Counters.dbg.json deleted file mode 100644 index ea34a40fbf..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/utils/Counters.sol/Counters.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../build-info/92cb10df65f6d26368974b9012699389.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/utils/Counters.sol/Counters.json b/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/utils/Counters.sol/Counters.json deleted file mode 100644 index d33ca0c619..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/utils/Counters.sol/Counters.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "_format": "hh-zksolc-artifact-1", - "contractName": "Counters", - "sourceName": "@openzeppelin/contracts/utils/Counters.sol", - "abi": [], - "bytecode": "0x00000001012001900000000c0000613d0000008001000039000000400010043f0000000001000416000000000110004c0000000c0000c13d00000020010000390000010000100443000001200000044300000005010000410000000f0001042e000000000100001900000010000104300000000e000004320000000f0001042e00000010000104300000000000000000000000000000000000000000000000000000000200000000000000000000000000000040000001000000000000000000dd7c7f14f4bda4945a306625d6857efbba27ee6817d49e5f7e648fc5a6842b02", - "deployedBytecode": "0x00000001012001900000000c0000613d0000008001000039000000400010043f0000000001000416000000000110004c0000000c0000c13d00000020010000390000010000100443000001200000044300000005010000410000000f0001042e000000000100001900000010000104300000000e000004320000000f0001042e00000010000104300000000000000000000000000000000000000000000000000000000200000000000000000000000000000040000001000000000000000000dd7c7f14f4bda4945a306625d6857efbba27ee6817d49e5f7e648fc5a6842b02", - "linkReferences": {}, - "deployedLinkReferences": {}, - "factoryDeps": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/utils/Strings.sol/Strings.dbg.json b/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/utils/Strings.sol/Strings.dbg.json deleted file mode 100644 index ea34a40fbf..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/utils/Strings.sol/Strings.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../build-info/92cb10df65f6d26368974b9012699389.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/utils/Strings.sol/Strings.json b/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/utils/Strings.sol/Strings.json deleted file mode 100644 index 3f252b65cc..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/utils/Strings.sol/Strings.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "_format": "hh-zksolc-artifact-1", - "contractName": "Strings", - "sourceName": "@openzeppelin/contracts/utils/Strings.sol", - "abi": [], - "bytecode": "0x00000001012001900000000c0000613d0000008001000039000000400010043f0000000001000416000000000110004c0000000c0000c13d00000020010000390000010000100443000001200000044300000005010000410000000f0001042e000000000100001900000010000104300000000e000004320000000f0001042e00000010000104300000000000000000000000000000000000000000000000000000000200000000000000000000000000000040000001000000000000000000df0cdf37261618c06f38f09546430a6585ed1a2ef7f100067368b0ded0082c0e", - "deployedBytecode": "0x00000001012001900000000c0000613d0000008001000039000000400010043f0000000001000416000000000110004c0000000c0000c13d00000020010000390000010000100443000001200000044300000005010000410000000f0001042e000000000100001900000010000104300000000e000004320000000f0001042e00000010000104300000000000000000000000000000000000000000000000000000000200000000000000000000000000000040000001000000000000000000df0cdf37261618c06f38f09546430a6585ed1a2ef7f100067368b0ded0082c0e", - "linkReferences": {}, - "deployedLinkReferences": {}, - "factoryDeps": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/utils/introspection/ERC165.sol/ERC165.dbg.json b/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/utils/introspection/ERC165.sol/ERC165.dbg.json deleted file mode 100644 index d6f065d186..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/utils/introspection/ERC165.sol/ERC165.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/92cb10df65f6d26368974b9012699389.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/utils/introspection/ERC165.sol/ERC165.json b/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/utils/introspection/ERC165.sol/ERC165.json deleted file mode 100644 index d5a2f73831..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/utils/introspection/ERC165.sol/ERC165.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "_format": "hh-zksolc-artifact-1", - "contractName": "ERC165", - "sourceName": "@openzeppelin/contracts/utils/introspection/ERC165.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {}, - "factoryDeps": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/utils/introspection/IERC165.sol/IERC165.dbg.json b/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/utils/introspection/IERC165.sol/IERC165.dbg.json deleted file mode 100644 index d6f065d186..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/utils/introspection/IERC165.sol/IERC165.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/92cb10df65f6d26368974b9012699389.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/utils/introspection/IERC165.sol/IERC165.json b/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/utils/introspection/IERC165.sol/IERC165.json deleted file mode 100644 index e1c53d0b23..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/@openzeppelin/contracts/utils/introspection/IERC165.sol/IERC165.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "_format": "hh-zksolc-artifact-1", - "contractName": "IERC165", - "sourceName": "@openzeppelin/contracts/utils/introspection/IERC165.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {}, - "factoryDeps": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/build-info/92cb10df65f6d26368974b9012699389.json b/packages/integration-tests/src/playbook/artifacts-zk/build-info/92cb10df65f6d26368974b9012699389.json deleted file mode 100644 index 851e133c5f..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/build-info/92cb10df65f6d26368974b9012699389.json +++ /dev/null @@ -1 +0,0 @@ -{"id":"92cb10df65f6d26368974b9012699389","_format":"hh-sol-build-info-1","solcVersion":"0.8.18","solcLongVersion":"0.8.18+commit.87f61d96","input":{"language":"Solidity","sources":{"@matterlabs/zksync-contracts/l2/system-contracts/BootloaderUtilities.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\nimport \"./interfaces/IBootloaderUtilities.sol\";\nimport \"./libraries/TransactionHelper.sol\";\nimport \"./libraries/RLPEncoder.sol\";\nimport \"./libraries/EfficientCall.sol\";\n\n/**\n * @author Matter Labs\n * @notice A contract that provides some utility methods for the bootloader\n * that is very hard to write in Yul.\n */\ncontract BootloaderUtilities is IBootloaderUtilities {\n using TransactionHelper for *;\n\n /// @notice Calculates the canonical transaction hash and the recommended transaction hash.\n /// @param _transaction The transaction.\n /// @return txHash and signedTxHash of the transaction, i.e. the transaction hash to be used in the explorer and commits to all\n /// the fields of the transaction and the recommended hash to be signed for this transaction.\n /// @dev txHash must be unique for all transactions.\n function getTransactionHashes(\n Transaction calldata _transaction\n ) external view override returns (bytes32 txHash, bytes32 signedTxHash) {\n signedTxHash = _transaction.encodeHash();\n if (_transaction.txType == EIP_712_TX_TYPE) {\n txHash = keccak256(bytes.concat(signedTxHash, EfficientCall.keccak(_transaction.signature)));\n } else if (_transaction.txType == LEGACY_TX_TYPE) {\n txHash = encodeLegacyTransactionHash(_transaction);\n } else if (_transaction.txType == EIP_1559_TX_TYPE) {\n txHash = encodeEIP1559TransactionHash(_transaction);\n } else if (_transaction.txType == EIP_2930_TX_TYPE) {\n txHash = encodeEIP2930TransactionHash(_transaction);\n } else {\n revert(\"Unsupported tx type\");\n }\n }\n\n /// @notice Calculates the hash for a legacy transaction.\n /// @param _transaction The legacy transaction.\n /// @return txHash The hash of the transaction.\n function encodeLegacyTransactionHash(Transaction calldata _transaction) internal view returns (bytes32 txHash) {\n // Hash of legacy transactions are encoded as one of the:\n // - RLP(nonce, gasPrice, gasLimit, to, value, data, chainId, 0, 0)\n // - RLP(nonce, gasPrice, gasLimit, to, value, data)\n //\n // In this RLP encoding, only the first one above list appears, so we encode each element\n // inside list and then concatenate the length of all elements with them.\n\n bytes memory encodedNonce = RLPEncoder.encodeUint256(_transaction.nonce);\n // Encode `gasPrice` and `gasLimit` together to prevent \"stack too deep error\".\n bytes memory encodedGasParam;\n {\n bytes memory encodedGasPrice = RLPEncoder.encodeUint256(_transaction.maxFeePerGas);\n bytes memory encodedGasLimit = RLPEncoder.encodeUint256(_transaction.gasLimit);\n encodedGasParam = bytes.concat(encodedGasPrice, encodedGasLimit);\n }\n\n bytes memory encodedTo = RLPEncoder.encodeAddress(address(uint160(_transaction.to)));\n bytes memory encodedValue = RLPEncoder.encodeUint256(_transaction.value);\n // Encode only the length of the transaction data, and not the data itself,\n // so as not to copy to memory a potentially huge transaction data twice.\n bytes memory encodedDataLength;\n {\n // Safe cast, because the length of the transaction data can't be so large.\n uint64 txDataLen = uint64(_transaction.data.length);\n if (txDataLen != 1) {\n // If the length is not equal to one, then only using the length can it be encoded definitely.\n encodedDataLength = RLPEncoder.encodeNonSingleBytesLen(txDataLen);\n } else if (_transaction.data[0] >= 0x80) {\n // If input is a byte in [0x80, 0xff] range, RLP encoding will concatenates 0x81 with the byte.\n encodedDataLength = hex\"81\";\n }\n // Otherwise the length is not encoded at all.\n }\n\n bytes memory rEncoded;\n {\n uint256 rInt = uint256(bytes32(_transaction.signature[0:32]));\n rEncoded = RLPEncoder.encodeUint256(rInt);\n }\n bytes memory sEncoded;\n {\n uint256 sInt = uint256(bytes32(_transaction.signature[32:64]));\n sEncoded = RLPEncoder.encodeUint256(sInt);\n }\n bytes memory vEncoded;\n {\n uint256 vInt = uint256(uint8(_transaction.signature[64]));\n require(vInt == 27 || vInt == 28, \"Invalid v value\");\n\n // If the `chainId` is specified in the transaction, then the `v` value is encoded as\n // `35 + y + 2 * chainId == vInt + 8 + 2 * chainId`, where y - parity bit (see EIP-155).\n if (_transaction.reserved[0] != 0) {\n vInt += 8 + block.chainid * 2;\n }\n\n vEncoded = RLPEncoder.encodeUint256(vInt);\n }\n\n bytes memory encodedListLength;\n unchecked {\n uint256 listLength = encodedNonce.length +\n encodedGasParam.length +\n encodedTo.length +\n encodedValue.length +\n encodedDataLength.length +\n _transaction.data.length +\n rEncoded.length +\n sEncoded.length +\n vEncoded.length;\n\n // Safe cast, because the length of the list can't be so large.\n encodedListLength = RLPEncoder.encodeListLen(uint64(listLength));\n }\n\n return\n keccak256(\n bytes.concat(\n encodedListLength,\n encodedNonce,\n encodedGasParam,\n encodedTo,\n encodedValue,\n encodedDataLength,\n _transaction.data,\n vEncoded,\n rEncoded,\n sEncoded\n )\n );\n }\n\n /// @notice Calculates the hash for an EIP2930 transaction.\n /// @param _transaction The EIP2930 transaction.\n /// @return txHash The hash of the transaction.\n function encodeEIP2930TransactionHash(Transaction calldata _transaction) internal view returns (bytes32) {\n // Encode all fixed-length params to avoid \"stack too deep error\"\n bytes memory encodedFixedLengthParams;\n {\n bytes memory encodedChainId = RLPEncoder.encodeUint256(block.chainid);\n bytes memory encodedNonce = RLPEncoder.encodeUint256(_transaction.nonce);\n bytes memory encodedGasPrice = RLPEncoder.encodeUint256(_transaction.maxFeePerGas);\n bytes memory encodedGasLimit = RLPEncoder.encodeUint256(_transaction.gasLimit);\n bytes memory encodedTo = RLPEncoder.encodeAddress(address(uint160(_transaction.to)));\n bytes memory encodedValue = RLPEncoder.encodeUint256(_transaction.value);\n encodedFixedLengthParams = bytes.concat(\n encodedChainId,\n encodedNonce,\n encodedGasPrice,\n encodedGasLimit,\n encodedTo,\n encodedValue\n );\n }\n\n // Encode only the length of the transaction data, and not the data itself,\n // so as not to copy to memory a potentially huge transaction data twice.\n bytes memory encodedDataLength;\n {\n // Safe cast, because the length of the transaction data can't be so large.\n uint64 txDataLen = uint64(_transaction.data.length);\n if (txDataLen != 1) {\n // If the length is not equal to one, then only using the length can it be encoded definitely.\n encodedDataLength = RLPEncoder.encodeNonSingleBytesLen(txDataLen);\n } else if (_transaction.data[0] >= 0x80) {\n // If input is a byte in [0x80, 0xff] range, RLP encoding will concatenates 0x81 with the byte.\n encodedDataLength = hex\"81\";\n }\n // Otherwise the length is not encoded at all.\n }\n\n // On zkSync, access lists are always zero length (at least for now).\n bytes memory encodedAccessListLength = RLPEncoder.encodeListLen(0);\n\n bytes memory rEncoded;\n {\n uint256 rInt = uint256(bytes32(_transaction.signature[0:32]));\n rEncoded = RLPEncoder.encodeUint256(rInt);\n }\n bytes memory sEncoded;\n {\n uint256 sInt = uint256(bytes32(_transaction.signature[32:64]));\n sEncoded = RLPEncoder.encodeUint256(sInt);\n }\n bytes memory vEncoded;\n {\n uint256 vInt = uint256(uint8(_transaction.signature[64]));\n require(vInt == 27 || vInt == 28, \"Invalid v value\");\n\n vEncoded = RLPEncoder.encodeUint256(vInt - 27);\n }\n\n bytes memory encodedListLength;\n unchecked {\n uint256 listLength = encodedFixedLengthParams.length +\n encodedDataLength.length +\n _transaction.data.length +\n encodedAccessListLength.length +\n rEncoded.length +\n sEncoded.length +\n vEncoded.length;\n\n // Safe cast, because the length of the list can't be so large.\n encodedListLength = RLPEncoder.encodeListLen(uint64(listLength));\n }\n\n return\n keccak256(\n bytes.concat(\n \"\\x01\",\n encodedListLength,\n encodedFixedLengthParams,\n encodedDataLength,\n _transaction.data,\n encodedAccessListLength,\n vEncoded,\n rEncoded,\n sEncoded\n )\n );\n }\n\n /// @notice Calculates the hash for an EIP1559 transaction.\n /// @param _transaction The legacy transaction.\n /// @return txHash The hash of the transaction.\n function encodeEIP1559TransactionHash(Transaction calldata _transaction) internal view returns (bytes32) {\n // The formula for hash of EIP1559 transaction in the original proposal:\n // https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1559.md\n\n // Encode all fixed-length params to avoid \"stack too deep error\"\n bytes memory encodedFixedLengthParams;\n {\n bytes memory encodedChainId = RLPEncoder.encodeUint256(block.chainid);\n bytes memory encodedNonce = RLPEncoder.encodeUint256(_transaction.nonce);\n bytes memory encodedMaxPriorityFeePerGas = RLPEncoder.encodeUint256(_transaction.maxPriorityFeePerGas);\n bytes memory encodedMaxFeePerGas = RLPEncoder.encodeUint256(_transaction.maxFeePerGas);\n bytes memory encodedGasLimit = RLPEncoder.encodeUint256(_transaction.gasLimit);\n bytes memory encodedTo = RLPEncoder.encodeAddress(address(uint160(_transaction.to)));\n bytes memory encodedValue = RLPEncoder.encodeUint256(_transaction.value);\n encodedFixedLengthParams = bytes.concat(\n encodedChainId,\n encodedNonce,\n encodedMaxPriorityFeePerGas,\n encodedMaxFeePerGas,\n encodedGasLimit,\n encodedTo,\n encodedValue\n );\n }\n\n // Encode only the length of the transaction data, and not the data itself,\n // so as not to copy to memory a potentially huge transaction data twice.\n bytes memory encodedDataLength;\n {\n // Safe cast, because the length of the transaction data can't be so large.\n uint64 txDataLen = uint64(_transaction.data.length);\n if (txDataLen != 1) {\n // If the length is not equal to one, then only using the length can it be encoded definitely.\n encodedDataLength = RLPEncoder.encodeNonSingleBytesLen(txDataLen);\n } else if (_transaction.data[0] >= 0x80) {\n // If input is a byte in [0x80, 0xff] range, RLP encoding will concatenates 0x81 with the byte.\n encodedDataLength = hex\"81\";\n }\n // Otherwise the length is not encoded at all.\n }\n\n // On zkSync, access lists are always zero length (at least for now).\n bytes memory encodedAccessListLength = RLPEncoder.encodeListLen(0);\n\n bytes memory rEncoded;\n {\n uint256 rInt = uint256(bytes32(_transaction.signature[0:32]));\n rEncoded = RLPEncoder.encodeUint256(rInt);\n }\n bytes memory sEncoded;\n {\n uint256 sInt = uint256(bytes32(_transaction.signature[32:64]));\n sEncoded = RLPEncoder.encodeUint256(sInt);\n }\n bytes memory vEncoded;\n {\n uint256 vInt = uint256(uint8(_transaction.signature[64]));\n require(vInt == 27 || vInt == 28, \"Invalid v value\");\n\n vEncoded = RLPEncoder.encodeUint256(vInt - 27);\n }\n\n bytes memory encodedListLength;\n unchecked {\n uint256 listLength = encodedFixedLengthParams.length +\n encodedDataLength.length +\n _transaction.data.length +\n encodedAccessListLength.length +\n rEncoded.length +\n sEncoded.length +\n vEncoded.length;\n\n // Safe cast, because the length of the list can't be so large.\n encodedListLength = RLPEncoder.encodeListLen(uint64(listLength));\n }\n\n return\n keccak256(\n bytes.concat(\n \"\\x02\",\n encodedListLength,\n encodedFixedLengthParams,\n encodedDataLength,\n _transaction.data,\n encodedAccessListLength,\n vEncoded,\n rEncoded,\n sEncoded\n )\n );\n }\n}\n"},"@matterlabs/zksync-contracts/l2/system-contracts/Constants.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\nimport \"./interfaces/IAccountCodeStorage.sol\";\nimport \"./interfaces/INonceHolder.sol\";\nimport \"./interfaces/IContractDeployer.sol\";\nimport \"./interfaces/IKnownCodesStorage.sol\";\nimport \"./interfaces/IImmutableSimulator.sol\";\nimport \"./interfaces/IEthToken.sol\";\nimport \"./interfaces/IL1Messenger.sol\";\nimport \"./interfaces/ISystemContext.sol\";\nimport \"./interfaces/IBytecodeCompressor.sol\";\nimport \"./BootloaderUtilities.sol\";\n\n/// @dev All the system contracts introduced by zkSync have their addresses\n/// started from 2^15 in order to avoid collision with Ethereum precompiles.\nuint160 constant SYSTEM_CONTRACTS_OFFSET = 0x8000; // 2^15\n\n/// @dev All the system contracts must be located in the kernel space,\n/// i.e. their addresses must be below 2^16.\nuint160 constant MAX_SYSTEM_CONTRACT_ADDRESS = 0xffff; // 2^16 - 1\n\naddress constant ECRECOVER_SYSTEM_CONTRACT = address(0x01);\naddress constant SHA256_SYSTEM_CONTRACT = address(0x02);\n\n/// @dev The current maximum deployed precompile address.\n/// Note: currently only two precompiles are deployed:\n/// 0x01 - ecrecover\n/// 0x02 - sha256\n/// Important! So the constant should be updated if more precompiles are deployed.\nuint256 constant CURRENT_MAX_PRECOMPILE_ADDRESS = uint256(uint160(SHA256_SYSTEM_CONTRACT));\n\naddress payable constant BOOTLOADER_FORMAL_ADDRESS = payable(address(SYSTEM_CONTRACTS_OFFSET + 0x01));\nIAccountCodeStorage constant ACCOUNT_CODE_STORAGE_SYSTEM_CONTRACT = IAccountCodeStorage(\n address(SYSTEM_CONTRACTS_OFFSET + 0x02)\n);\nINonceHolder constant NONCE_HOLDER_SYSTEM_CONTRACT = INonceHolder(address(SYSTEM_CONTRACTS_OFFSET + 0x03));\nIKnownCodesStorage constant KNOWN_CODE_STORAGE_CONTRACT = IKnownCodesStorage(address(SYSTEM_CONTRACTS_OFFSET + 0x04));\nIImmutableSimulator constant IMMUTABLE_SIMULATOR_SYSTEM_CONTRACT = IImmutableSimulator(\n address(SYSTEM_CONTRACTS_OFFSET + 0x05)\n);\nIContractDeployer constant DEPLOYER_SYSTEM_CONTRACT = IContractDeployer(address(SYSTEM_CONTRACTS_OFFSET + 0x06));\n\n// A contract that is allowed to deploy any codehash\n// on any address. To be used only during an upgrade.\naddress constant FORCE_DEPLOYER = address(SYSTEM_CONTRACTS_OFFSET + 0x07);\nIL1Messenger constant L1_MESSENGER_CONTRACT = IL1Messenger(address(SYSTEM_CONTRACTS_OFFSET + 0x08));\naddress constant MSG_VALUE_SYSTEM_CONTRACT = address(SYSTEM_CONTRACTS_OFFSET + 0x09);\n\nIEthToken constant ETH_TOKEN_SYSTEM_CONTRACT = IEthToken(address(SYSTEM_CONTRACTS_OFFSET + 0x0a));\n\naddress constant KECCAK256_SYSTEM_CONTRACT = address(SYSTEM_CONTRACTS_OFFSET + 0x10);\n\nISystemContext constant SYSTEM_CONTEXT_CONTRACT = ISystemContext(payable(address(SYSTEM_CONTRACTS_OFFSET + 0x0b)));\n\nBootloaderUtilities constant BOOTLOADER_UTILITIES = BootloaderUtilities(address(SYSTEM_CONTRACTS_OFFSET + 0x0c));\n\naddress constant EVENT_WRITER_CONTRACT = address(SYSTEM_CONTRACTS_OFFSET + 0x0d);\n\nIBytecodeCompressor constant BYTECODE_COMPRESSOR_CONTRACT = IBytecodeCompressor(\n address(SYSTEM_CONTRACTS_OFFSET + 0x0e)\n);\n\n/// @dev If the bitwise AND of the extraAbi[2] param when calling the MSG_VALUE_SIMULATOR\n/// is non-zero, the call will be assumed to be a system one.\nuint256 constant MSG_VALUE_SIMULATOR_IS_SYSTEM_BIT = 1;\n\n/// @dev The maximal msg.value that context can have\nuint256 constant MAX_MSG_VALUE = 2 ** 128 - 1;\n\n/// @dev Prefix used during derivation of account addresses using CREATE2\n/// @dev keccak256(\"zksyncCreate2\")\nbytes32 constant CREATE2_PREFIX = 0x2020dba91b30cc0006188af794c2fb30dd8520db7e2c088b7fc7c103c00ca494;\n/// @dev Prefix used during derivation of account addresses using CREATE\n/// @dev keccak256(\"zksyncCreate\")\nbytes32 constant CREATE_PREFIX = 0x63bae3a9951d38e8a3fbb7b70909afc1200610fc5bc55ade242f815974674f23;\n"},"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IAccountCodeStorage.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\ninterface IAccountCodeStorage {\n function storeAccountConstructingCodeHash(address _address, bytes32 _hash) external;\n\n function storeAccountConstructedCodeHash(address _address, bytes32 _hash) external;\n\n function markAccountCodeHashAsConstructed(address _address) external;\n\n function getRawCodeHash(address _address) external view returns (bytes32 codeHash);\n\n function getCodeHash(uint256 _input) external view returns (bytes32 codeHash);\n\n function getCodeSize(uint256 _input) external view returns (uint256 codeSize);\n}\n"},"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBootloaderUtilities.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\nimport \"../libraries/TransactionHelper.sol\";\n\ninterface IBootloaderUtilities {\n function getTransactionHashes(\n Transaction calldata _transaction\n ) external view returns (bytes32 txHash, bytes32 signedTxHash);\n}\n"},"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBytecodeCompressor.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\ninterface IBytecodeCompressor {\n function publishCompressedBytecode(\n bytes calldata _bytecode,\n bytes calldata _rawCompressedData\n ) external payable returns (bytes32 bytecodeHash);\n}\n"},"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IContractDeployer.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\ninterface IContractDeployer {\n /// @notice Defines the version of the account abstraction protocol\n /// that a contract claims to follow.\n /// - `None` means that the account is just a contract and it should never be interacted\n /// with as a custom account\n /// - `Version1` means that the account follows the first version of the account abstraction protocol\n enum AccountAbstractionVersion {\n None,\n Version1\n }\n\n /// @notice Defines the nonce ordering used by the account\n /// - `Sequential` means that it is expected that the nonces are monotonic and increment by 1\n /// at a time (the same as EOAs).\n /// - `Arbitrary` means that the nonces for the accounts can be arbitrary. The operator\n /// should serve the transactions from such an account on a first-come-first-serve basis.\n /// @dev This ordering is more of a suggestion to the operator on how the AA expects its transactions\n /// to be processed and is not considered as a system invariant.\n enum AccountNonceOrdering {\n Sequential,\n Arbitrary\n }\n\n struct AccountInfo {\n AccountAbstractionVersion supportedAAVersion;\n AccountNonceOrdering nonceOrdering;\n }\n\n event ContractDeployed(\n address indexed deployerAddress,\n bytes32 indexed bytecodeHash,\n address indexed contractAddress\n );\n\n event AccountNonceOrderingUpdated(address indexed accountAddress, AccountNonceOrdering nonceOrdering);\n\n event AccountVersionUpdated(address indexed accountAddress, AccountAbstractionVersion aaVersion);\n\n function getNewAddressCreate2(\n address _sender,\n bytes32 _bytecodeHash,\n bytes32 _salt,\n bytes calldata _input\n ) external view returns (address newAddress);\n\n function getNewAddressCreate(address _sender, uint256 _senderNonce) external pure returns (address newAddress);\n\n function create2(\n bytes32 _salt,\n bytes32 _bytecodeHash,\n bytes calldata _input\n ) external payable returns (address newAddress);\n\n function create2Account(\n bytes32 _salt,\n bytes32 _bytecodeHash,\n bytes calldata _input,\n AccountAbstractionVersion _aaVersion\n ) external payable returns (address newAddress);\n\n /// @dev While the `_salt` parameter is not used anywhere here,\n /// it is still needed for consistency between `create` and\n /// `create2` functions (required by the compiler).\n function create(\n bytes32 _salt,\n bytes32 _bytecodeHash,\n bytes calldata _input\n ) external payable returns (address newAddress);\n\n /// @dev While `_salt` is never used here, we leave it here as a parameter\n /// for the consistency with the `create` function.\n function createAccount(\n bytes32 _salt,\n bytes32 _bytecodeHash,\n bytes calldata _input,\n AccountAbstractionVersion _aaVersion\n ) external payable returns (address newAddress);\n\n /// @notice Returns the information about a certain AA.\n function getAccountInfo(address _address) external view returns (AccountInfo memory info);\n\n /// @notice Can be called by an account to update its account version\n function updateAccountVersion(AccountAbstractionVersion _version) external;\n\n /// @notice Can be called by an account to update its nonce ordering\n function updateNonceOrdering(AccountNonceOrdering _nonceOrdering) external;\n}\n"},"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IEthToken.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\ninterface IEthToken {\n function balanceOf(uint256) external view returns (uint256);\n\n function transferFromTo(address _from, address _to, uint256 _amount) external;\n\n function totalSupply() external view returns (uint256);\n\n function name() external pure returns (string memory);\n\n function symbol() external pure returns (string memory);\n\n function decimals() external pure returns (uint8);\n\n function mint(address _account, uint256 _amount) external;\n\n function withdraw(address _l1Receiver) external payable;\n\n event Mint(address indexed account, uint256 amount);\n\n event Transfer(address indexed from, address indexed to, uint256 value);\n\n event Withdrawal(address indexed _l2Sender, address indexed _l1Receiver, uint256 _amount);\n}\n"},"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IImmutableSimulator.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\nstruct ImmutableData {\n uint256 index;\n bytes32 value;\n}\n\ninterface IImmutableSimulator {\n function getImmutable(address _dest, uint256 _index) external view returns (bytes32);\n\n function setImmutables(address _dest, ImmutableData[] calldata _immutables) external;\n}\n"},"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IKnownCodesStorage.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\ninterface IKnownCodesStorage {\n event MarkedAsKnown(bytes32 indexed bytecodeHash, bool indexed sendBytecodeToL1);\n\n function markFactoryDeps(bool _shouldSendToL1, bytes32[] calldata _hashes) external;\n\n function markBytecodeAsPublished(\n bytes32 _bytecodeHash,\n bytes32 _l1PreimageHash,\n uint256 _l1PreimageBytesLen\n ) external;\n\n function getMarker(bytes32 _hash) external view returns (uint256);\n}\n"},"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IL1Messenger.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\ninterface IL1Messenger {\n // Possibly in the future we will be able to track the messages sent to L1 with\n // some hooks in the VM. For now, it is much easier to track them with L2 events.\n event L1MessageSent(address indexed _sender, bytes32 indexed _hash, bytes _message);\n\n function sendToL1(bytes memory _message) external returns (bytes32);\n}\n"},"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/INonceHolder.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\n/**\n * @author Matter Labs\n * @dev Interface of the nonce holder contract -- a contract used by the system to ensure\n * that there is always a unique identifier for a transaction with a particular account (we call it nonce).\n * In other words, the pair of (address, nonce) should always be unique.\n * @dev Custom accounts should use methods of this contract to store nonces or other possible unique identifiers\n * for the transaction.\n */\ninterface INonceHolder {\n event ValueSetUnderNonce(address indexed accountAddress, uint256 indexed key, uint256 value);\n\n /// @dev Returns the current minimal nonce for account.\n function getMinNonce(address _address) external view returns (uint256);\n\n /// @dev Returns the raw version of the current minimal nonce\n /// (equal to minNonce + 2^128 * deployment nonce).\n function getRawNonce(address _address) external view returns (uint256);\n\n /// @dev Increases the minimal nonce for the msg.sender.\n function increaseMinNonce(uint256 _value) external returns (uint256);\n\n /// @dev Sets the nonce value `key` as used.\n function setValueUnderNonce(uint256 _key, uint256 _value) external;\n\n /// @dev Gets the value stored inside a custom nonce.\n function getValueUnderNonce(uint256 _key) external view returns (uint256);\n\n /// @dev A convenience method to increment the minimal nonce if it is equal\n /// to the `_expectedNonce`.\n function incrementMinNonceIfEquals(uint256 _expectedNonce) external;\n\n /// @dev Returns the deployment nonce for the accounts used for CREATE opcode.\n function getDeploymentNonce(address _address) external view returns (uint256);\n\n /// @dev Increments the deployment nonce for the account and returns the previous one.\n function incrementDeploymentNonce(address _address) external returns (uint256);\n\n /// @dev Determines whether a certain nonce has been already used for an account.\n function validateNonceUsage(address _address, uint256 _key, bool _shouldBeUsed) external view;\n\n /// @dev Returns whether a nonce has been used for an account.\n function isNonceUsed(address _address, uint256 _nonce) external view returns (bool);\n}\n"},"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymaster.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\nimport \"../libraries/TransactionHelper.sol\";\n\nenum ExecutionResult {\n Revert,\n Success\n}\n\nbytes4 constant PAYMASTER_VALIDATION_SUCCESS_MAGIC = IPaymaster.validateAndPayForPaymasterTransaction.selector;\n\ninterface IPaymaster {\n /// @dev Called by the bootloader to verify that the paymaster agrees to pay for the\n /// fee for the transaction. This transaction should also send the necessary amount of funds onto the bootloader\n /// address.\n /// @param _txHash The hash of the transaction\n /// @param _suggestedSignedHash The hash of the transaction that is signed by an EOA\n /// @param _transaction The transaction itself.\n /// @return magic The value that should be equal to the signature of the validateAndPayForPaymasterTransaction\n /// if the paymaster agrees to pay for the transaction.\n /// @return context The \"context\" of the transaction: an array of bytes of length at most 1024 bytes, which will be\n /// passed to the `postTransaction` method of the account.\n /// @dev The developer should strive to preserve as many steps as possible both for valid\n /// and invalid transactions as this very method is also used during the gas fee estimation\n /// (without some of the necessary data, e.g. signature).\n function validateAndPayForPaymasterTransaction(\n bytes32 _txHash,\n bytes32 _suggestedSignedHash,\n Transaction calldata _transaction\n ) external payable returns (bytes4 magic, bytes memory context);\n\n /// @dev Called by the bootloader after the execution of the transaction. Please note that\n /// there is no guarantee that this method will be called at all. Unlike the original EIP4337,\n /// this method won't be called if the transaction execution results in out-of-gas.\n /// @param _context, the context of the execution, returned by the \"validateAndPayForPaymasterTransaction\" method.\n /// @param _transaction, the users' transaction.\n /// @param _txResult, the result of the transaction execution (success or failure).\n /// @param _maxRefundedGas, the upper bound on the amout of gas that could be refunded to the paymaster.\n /// @dev The exact amount refunded depends on the gas spent by the \"postOp\" itself and so the developers should\n /// take that into account.\n function postTransaction(\n bytes calldata _context,\n Transaction calldata _transaction,\n bytes32 _txHash,\n bytes32 _suggestedSignedHash,\n ExecutionResult _txResult,\n uint256 _maxRefundedGas\n ) external payable;\n}\n"},"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymasterFlow.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\n/**\n * @author Matter Labs\n * @dev The interface that is used for encoding/decoding of\n * different types of paymaster flows.\n * @notice This is NOT an interface to be implementated\n * by contracts. It is just used for encoding.\n */\ninterface IPaymasterFlow {\n function general(bytes calldata input) external;\n\n function approvalBased(address _token, uint256 _minAllowance, bytes calldata _innerInput) external;\n}\n"},"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/ISystemContext.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\n/**\n * @author Matter Labs\n * @notice Contract that stores some of the context variables, that may be either\n * block-scoped, tx-scoped or system-wide.\n */\ninterface ISystemContext {\n function chainId() external view returns (uint256);\n\n function origin() external view returns (address);\n\n function gasPrice() external view returns (uint256);\n\n function blockGasLimit() external view returns (uint256);\n\n function coinbase() external view returns (address);\n\n function difficulty() external view returns (uint256);\n\n function baseFee() external view returns (uint256);\n\n function blockHash(uint256 _block) external view returns (bytes32);\n\n function getBlockHashEVM(uint256 _block) external view returns (bytes32);\n\n function getBlockNumberAndTimestamp() external view returns (uint256 blockNumber, uint256 blockTimestamp);\n\n // Note, that for now, the implementation of the bootloader allows this variables to\n // be incremented multiple times inside a block, so it should not relied upon right now.\n function getBlockNumber() external view returns (uint256);\n\n function getBlockTimestamp() external view returns (uint256);\n}\n"},"@matterlabs/zksync-contracts/l2/system-contracts/libraries/EfficientCall.sol":{"content":"// SPDX-License-Identifier: MIT OR Apache-2.0\n\npragma solidity ^0.8.0;\n\nimport \"./SystemContractHelper.sol\";\nimport \"./Utils.sol\";\nimport {SHA256_SYSTEM_CONTRACT, KECCAK256_SYSTEM_CONTRACT} from \"../Constants.sol\";\n\n/**\n * @author Matter Labs\n * @notice This library is used to perform ultra-efficient calls using zkEVM-specific features.\n * @dev EVM calls always accept a memory slice as input and return a memory slice as output.\n * Therefore, even if the user has a ready-made calldata slice, they still need to copy it to memory\n * before calling. This is especially inefficient for large inputs (proxies, multi-calls, etc.).\n * In turn, zkEVM operates over a fat pointer, which is a set of (memory page, offset, start, length) in the memory/calldata/returndata.\n * This allows forwarding the calldata slice as is, without copying it to memory.\n * @dev Fat pointer is not just an integer, it is an extended data type supported on the VM level.\n * zkEVM creates the wellformed fat pointers for all the calldata/returndata regions, later\n * the contract may manipulate the already created fat pointers to forward a slice of the data, but not\n * to create new fat pointers!\n * @dev The allowed operation on fat pointers are:\n * 1. `ptr.add` - Transforms `ptr.offset` into `ptr.offset + u32(_value)`. If overflow happens then it panics.\n * 2. `ptr.sub` - Transforms `ptr.offset` into `ptr.offset - u32(_value)`. If underflow happens then it panics.\n * 3. `ptr.pack` - Do the concatenation between the lowest 128 bits of the pointer itself and the highest 128 bits of `_value`. It is typically used to prepare the ABI for external calls.\n * 4. `ptr.shrink` - Transforms `ptr.length` into `ptr.length - u32(_shrink)`. If underflow happens then it panics.\n * @dev The call opcodes accept the fat pointer and change it to its canonical form before passing it to the child call\n * 1. `ptr.start` is transformed into `ptr.offset + ptr.start`\n * 2. `ptr.length` is transformed into `ptr.length - ptr.offset`\n * 3. `ptr.offset` is transformed into `0`\n */\nlibrary EfficientCall {\n /// @notice Call the `keccak256` without copying calldata to memory.\n /// @param _data The preimage data.\n /// @return The `keccak256` hash.\n function keccak(bytes calldata _data) internal view returns (bytes32) {\n bytes memory returnData = staticCall(gasleft(), KECCAK256_SYSTEM_CONTRACT, _data);\n require(returnData.length == 32, \"keccak256 returned invalid data\");\n return bytes32(returnData);\n }\n\n /// @notice Call the `sha256` precompile without copying calldata to memory.\n /// @param _data The preimage data.\n /// @return The `sha256` hash.\n function sha(bytes calldata _data) internal view returns (bytes32) {\n bytes memory returnData = staticCall(gasleft(), SHA256_SYSTEM_CONTRACT, _data);\n require(returnData.length == 32, \"sha returned invalid data\");\n return bytes32(returnData);\n }\n\n /// @notice Perform a `call` without copying calldata to memory.\n /// @param _gas The gas to use for the call.\n /// @param _address The address to call.\n /// @param _value The `msg.value` to send.\n /// @param _data The calldata to use for the call.\n /// @param _isSystem Whether the call should contain the `isSystem` flag.\n /// @return returnData The copied to memory return data.\n function call(\n uint256 _gas,\n address _address,\n uint256 _value,\n bytes calldata _data,\n bool _isSystem\n ) internal returns (bytes memory returnData) {\n bool success = rawCall(_gas, _address, _value, _data, _isSystem);\n returnData = _verifyCallResult(success);\n }\n\n /// @notice Perform a `staticCall` without copying calldata to memory.\n /// @param _gas The gas to use for the call.\n /// @param _address The address to call.\n /// @param _data The calldata to use for the call.\n /// @return returnData The copied to memory return data.\n function staticCall(\n uint256 _gas,\n address _address,\n bytes calldata _data\n ) internal view returns (bytes memory returnData) {\n bool success = rawStaticCall(_gas, _address, _data);\n returnData = _verifyCallResult(success);\n }\n\n /// @notice Perform a `delegateCall` without copying calldata to memory.\n /// @param _gas The gas to use for the call.\n /// @param _address The address to call.\n /// @param _data The calldata to use for the call.\n /// @return returnData The copied to memory return data.\n function delegateCall(\n uint256 _gas,\n address _address,\n bytes calldata _data\n ) internal returns (bytes memory returnData) {\n bool success = rawDelegateCall(_gas, _address, _data);\n returnData = _verifyCallResult(success);\n }\n\n /// @notice Perform a `mimicCall` (a call with custom msg.sender) without copying calldata to memory.\n /// @param _gas The gas to use for the call.\n /// @param _address The address to call.\n /// @param _data The calldata to use for the call.\n /// @param _whoToMimic The `msg.sender` for the next call.\n /// @param _isConstructor Whether the call should contain the `isConstructor` flag.\n /// @param _isSystem Whether the call should contain the `isSystem` flag.\n /// @return returnData The copied to memory return data.\n function mimicCall(\n uint256 _gas,\n address _address,\n bytes calldata _data,\n address _whoToMimic,\n bool _isConstructor,\n bool _isSystem\n ) internal returns (bytes memory returnData) {\n bool success = rawMimicCall(_gas, _address, _data, _whoToMimic, _isConstructor, _isSystem);\n returnData = _verifyCallResult(success);\n }\n\n /// @notice Perform a `call` without copying calldata to memory.\n /// @param _gas The gas to use for the call.\n /// @param _address The address to call.\n /// @param _value The `msg.value` to send.\n /// @param _data The calldata to use for the call.\n /// @param _isSystem Whether the call should contain the `isSystem` flag.\n /// @return success whether the call was successful.\n function rawCall(\n uint256 _gas,\n address _address,\n uint256 _value,\n bytes calldata _data,\n bool _isSystem\n ) internal returns (bool success) {\n if (_value == 0) {\n _loadFarCallABIIntoActivePtr(_gas, _data, false, _isSystem);\n\n address callAddr = RAW_FAR_CALL_BY_REF_CALL_ADDRESS;\n assembly {\n success := call(_address, callAddr, 0, 0, 0xFFFF, 0, 0)\n }\n } else {\n _loadFarCallABIIntoActivePtr(_gas, _data, false, true);\n\n // If there is provided `msg.value` call the `MsgValueSimulator` to forward ether.\n address msgValueSimulator = MSG_VALUE_SYSTEM_CONTRACT;\n address callAddr = SYSTEM_CALL_BY_REF_CALL_ADDRESS;\n // We need to supply the mask to the MsgValueSimulator to denote\n // that the call should be a system one.\n uint256 forwardMask = _isSystem ? MSG_VALUE_SIMULATOR_IS_SYSTEM_BIT : 0;\n\n assembly {\n success := call(msgValueSimulator, callAddr, _value, _address, 0xFFFF, forwardMask, 0)\n }\n }\n }\n\n /// @notice Perform a `staticCall` without copying calldata to memory.\n /// @param _gas The gas to use for the call.\n /// @param _address The address to call.\n /// @param _data The calldata to use for the call.\n /// @return success whether the call was successful.\n function rawStaticCall(uint256 _gas, address _address, bytes calldata _data) internal view returns (bool success) {\n _loadFarCallABIIntoActivePtr(_gas, _data, false, false);\n\n address callAddr = RAW_FAR_CALL_BY_REF_CALL_ADDRESS;\n assembly {\n success := staticcall(_address, callAddr, 0, 0xFFFF, 0, 0)\n }\n }\n\n /// @notice Perform a `delegatecall` without copying calldata to memory.\n /// @param _gas The gas to use for the call.\n /// @param _address The address to call.\n /// @param _data The calldata to use for the call.\n /// @return success whether the call was successful.\n function rawDelegateCall(uint256 _gas, address _address, bytes calldata _data) internal returns (bool success) {\n _loadFarCallABIIntoActivePtr(_gas, _data, false, false);\n\n address callAddr = RAW_FAR_CALL_BY_REF_CALL_ADDRESS;\n assembly {\n success := delegatecall(_address, callAddr, 0, 0xFFFF, 0, 0)\n }\n }\n\n /// @notice Perform a `mimicCall` (call with custom msg.sender) without copying calldata to memory.\n /// @param _gas The gas to use for the call.\n /// @param _address The address to call.\n /// @param _data The calldata to use for the call.\n /// @param _whoToMimic The `msg.sender` for the next call.\n /// @param _isConstructor Whether the call should contain the `isConstructor` flag.\n /// @param _isSystem Whether the call should contain the `isSystem` flag.\n /// @return success whether the call was successful.\n /// @dev If called not in kernel mode, it will result in a revert (enforced by the VM)\n function rawMimicCall(\n uint256 _gas,\n address _address,\n bytes calldata _data,\n address _whoToMimic,\n bool _isConstructor,\n bool _isSystem\n ) internal returns (bool success) {\n _loadFarCallABIIntoActivePtr(_gas, _data, _isConstructor, _isSystem);\n\n address callAddr = MIMIC_CALL_BY_REF_CALL_ADDRESS;\n uint256 cleanupMask = ADDRESS_MASK;\n assembly {\n // Clearing values before usage in assembly, since Solidity\n // doesn't do it by default\n _whoToMimic := and(_whoToMimic, cleanupMask)\n\n success := call(_address, callAddr, 0, 0, _whoToMimic, 0, 0)\n }\n }\n\n /// @dev Verify that a low-level call was successful, and revert if it wasn't, by bubbling the revert reason.\n /// @param _success Whether the call was successful.\n /// @return returnData The copied to memory return data.\n function _verifyCallResult(bool _success) private pure returns (bytes memory returnData) {\n if (_success) {\n uint256 size;\n assembly {\n size := returndatasize()\n }\n\n returnData = new bytes(size);\n assembly {\n returndatacopy(add(returnData, 0x20), 0, size)\n }\n } else {\n propagateRevert();\n }\n }\n\n /// @dev Propagate the revert reason from the current call to the caller.\n function propagateRevert() internal pure {\n assembly {\n let size := returndatasize()\n returndatacopy(0, 0, size)\n revert(0, size)\n }\n }\n\n /// @dev Load the far call ABI into active ptr, that will be used for the next call by reference.\n /// @param _gas The gas to be passed to the call.\n /// @param _data The calldata to be passed to the call.\n /// @param _isConstructor Whether the call is a constructor call.\n /// @param _isSystem Whether the call is a system call.\n function _loadFarCallABIIntoActivePtr(\n uint256 _gas,\n bytes calldata _data,\n bool _isConstructor,\n bool _isSystem\n ) private view {\n SystemContractHelper.loadCalldataIntoActivePtr();\n\n // Currently, zkEVM considers the pointer valid if(ptr.offset < ptr.length || (ptr.length == 0 && ptr.offset == 0)), otherwise panics.\n // So, if the data is empty we need to make the `ptr.length = ptr.offset = 0`, otherwise follow standard logic.\n if (_data.length == 0) {\n // Safe to cast, offset is never bigger than `type(uint32).max`\n SystemContractHelper.ptrShrinkIntoActive(uint32(msg.data.length));\n } else {\n uint256 dataOffset;\n assembly {\n dataOffset := _data.offset\n }\n\n // Safe to cast, offset is never bigger than `type(uint32).max`\n SystemContractHelper.ptrAddIntoActive(uint32(dataOffset));\n // Safe to cast, `data.length` is never bigger than `type(uint32).max`\n uint32 shrinkTo = uint32(msg.data.length - (_data.length + dataOffset));\n SystemContractHelper.ptrShrinkIntoActive(shrinkTo);\n }\n\n uint32 gas = Utils.safeCastToU32(_gas);\n uint256 farCallAbi = SystemContractsCaller.getFarCallABIWithEmptyFatPointer(\n gas,\n // Only rollup is supported for now\n 0,\n CalldataForwardingMode.ForwardFatPointer,\n _isConstructor,\n _isSystem\n );\n SystemContractHelper.ptrPackIntoActivePtr(farCallAbi);\n }\n}\n"},"@matterlabs/zksync-contracts/l2/system-contracts/libraries/RLPEncoder.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\nlibrary RLPEncoder {\n function encodeAddress(address _val) internal pure returns (bytes memory encoded) {\n // The size is equal to 20 bytes of the address itself + 1 for encoding bytes length in RLP.\n encoded = new bytes(0x15);\n\n bytes20 shiftedVal = bytes20(_val);\n assembly {\n // In the first byte we write the encoded length as 0x80 + 0x14 == 0x94.\n mstore(add(encoded, 0x20), 0x9400000000000000000000000000000000000000000000000000000000000000)\n // Write address data without stripping zeros.\n mstore(add(encoded, 0x21), shiftedVal)\n }\n }\n\n function encodeUint256(uint256 _val) internal pure returns (bytes memory encoded) {\n unchecked {\n if (_val < 128) {\n encoded = new bytes(1);\n // Handle zero as a non-value, since stripping zeroes results in an empty byte array\n encoded[0] = (_val == 0) ? bytes1(uint8(128)) : bytes1(uint8(_val));\n } else {\n uint256 hbs = _highestByteSet(_val);\n\n encoded = new bytes(hbs + 2);\n encoded[0] = bytes1(uint8(hbs + 0x81));\n\n uint256 lbs = 31 - hbs;\n uint256 shiftedVal = _val << (lbs * 8);\n\n assembly {\n mstore(add(encoded, 0x21), shiftedVal)\n }\n }\n }\n }\n\n /// @notice Encodes the size of bytes in RLP format.\n /// @param _len The length of the bytes to encode. It has a `uint64` type since as larger values are not supported.\n /// NOTE: panics if the length is 1 since the length encoding is ambiguous in this case.\n function encodeNonSingleBytesLen(uint64 _len) internal pure returns (bytes memory) {\n assert(_len != 1);\n return _encodeLength(_len, 0x80);\n }\n\n /// @notice Encodes the size of list items in RLP format.\n /// @param _len The length of the bytes to encode. It has a `uint64` type since as larger values are not supported.\n function encodeListLen(uint64 _len) internal pure returns (bytes memory) {\n return _encodeLength(_len, 0xc0);\n }\n\n function _encodeLength(uint64 _len, uint256 _offset) private pure returns (bytes memory encoded) {\n unchecked {\n if (_len < 56) {\n encoded = new bytes(1);\n encoded[0] = bytes1(uint8(_len + _offset));\n } else {\n uint256 hbs = _highestByteSet(uint256(_len));\n\n encoded = new bytes(hbs + 2);\n encoded[0] = bytes1(uint8(_offset + hbs + 56));\n\n uint256 lbs = 31 - hbs;\n uint256 shiftedVal = uint256(_len) << (lbs * 8);\n\n assembly {\n mstore(add(encoded, 0x21), shiftedVal)\n }\n }\n }\n }\n\n /// @notice Computes the index of the highest byte set in number.\n /// @notice Uses little endian ordering (The least significant byte has index `0`).\n /// NOTE: returns `0` for `0`\n function _highestByteSet(uint256 _number) private pure returns (uint256 hbs) {\n unchecked {\n if (_number > type(uint128).max) {\n _number >>= 128;\n hbs += 16;\n }\n if (_number > type(uint64).max) {\n _number >>= 64;\n hbs += 8;\n }\n if (_number > type(uint32).max) {\n _number >>= 32;\n hbs += 4;\n }\n if (_number > type(uint16).max) {\n _number >>= 16;\n hbs += 2;\n }\n if (_number > type(uint8).max) {\n hbs += 1;\n }\n }\n }\n}\n"},"@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractHelper.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8;\n\nimport {MAX_SYSTEM_CONTRACT_ADDRESS, MSG_VALUE_SYSTEM_CONTRACT} from \"../Constants.sol\";\n\nimport \"./SystemContractsCaller.sol\";\nimport \"./Utils.sol\";\n\nuint256 constant UINT32_MASK = 0xffffffff;\nuint256 constant UINT128_MASK = 0xffffffffffffffffffffffffffffffff;\n/// @dev The mask that is used to convert any uint256 to a proper address.\n/// It needs to be padded with `00` to be treated as uint256 by Solidity\nuint256 constant ADDRESS_MASK = 0x00ffffffffffffffffffffffffffffffffffffffff;\n\nstruct ZkSyncMeta {\n uint32 gasPerPubdataByte;\n uint32 heapSize;\n uint32 auxHeapSize;\n uint8 shardId;\n uint8 callerShardId;\n uint8 codeShardId;\n}\n\nenum Global {\n CalldataPtr,\n CallFlags,\n ExtraABIData1,\n ExtraABIData2,\n ReturndataPtr\n}\n\n/**\n * @author Matter Labs\n * @notice Library used for accessing zkEVM-specific opcodes, needed for the development\n * of system contracts.\n * @dev While this library will be eventually available to public, some of the provided\n * methods won't work for non-system contracts. We will not recommend this library\n * for external use.\n */\nlibrary SystemContractHelper {\n /// @notice Send an L2Log to L1.\n /// @param _isService The `isService` flag.\n /// @param _key The `key` part of the L2Log.\n /// @param _value The `value` part of the L2Log.\n /// @dev The meaning of all these parameters is context-dependent, but they\n /// have no intrinsic meaning per se.\n function toL1(bool _isService, bytes32 _key, bytes32 _value) internal {\n address callAddr = TO_L1_CALL_ADDRESS;\n assembly {\n // Ensuring that the type is bool\n _isService := and(_isService, 1)\n // This `success` is always 0, but the method always succeeds\n // (except for the cases when there is not enough gas)\n let success := call(_isService, callAddr, _key, _value, 0xFFFF, 0, 0)\n }\n }\n\n /// @notice Get address of the currently executed code.\n /// @dev This allows differentiating between `call` and `delegatecall`.\n /// During the former `this` and `codeAddress` are the same, while\n /// during the latter they are not.\n function getCodeAddress() internal view returns (address addr) {\n address callAddr = CODE_ADDRESS_CALL_ADDRESS;\n assembly {\n addr := staticcall(0, callAddr, 0, 0xFFFF, 0, 0)\n }\n }\n\n /// @notice Provide a compiler hint, by placing calldata fat pointer into virtual `ACTIVE_PTR`,\n /// that can be manipulated by `ptr.add`/`ptr.sub`/`ptr.pack`/`ptr.shrink` later.\n /// @dev This allows making a call by forwarding calldata pointer to the child call.\n /// It is a much more efficient way to forward calldata, than standard EVM bytes copying.\n function loadCalldataIntoActivePtr() internal view {\n address callAddr = LOAD_CALLDATA_INTO_ACTIVE_PTR_CALL_ADDRESS;\n assembly {\n pop(staticcall(0, callAddr, 0, 0xFFFF, 0, 0))\n }\n }\n\n /// @notice Compiler simulation of the `ptr.pack` opcode for the virtual `ACTIVE_PTR` pointer.\n /// @dev Do the concatenation between lowest part of `ACTIVE_PTR` and highest part of `_farCallAbi`\n /// forming packed fat pointer for a far call or ret ABI when necessary.\n /// Note: Panics if the lowest 128 bits of `_farCallAbi` are not zeroes.\n function ptrPackIntoActivePtr(uint256 _farCallAbi) internal view {\n address callAddr = PTR_PACK_INTO_ACTIVE_CALL_ADDRESS;\n assembly {\n pop(staticcall(_farCallAbi, callAddr, 0, 0xFFFF, 0, 0))\n }\n }\n\n /// @notice Compiler simulation of the `ptr.add` opcode for the virtual `ACTIVE_PTR` pointer.\n /// @dev Transforms `ACTIVE_PTR.offset` into `ACTIVE_PTR.offset + u32(_value)`. If overflow happens then it panics.\n function ptrAddIntoActive(uint32 _value) internal view {\n address callAddr = PTR_ADD_INTO_ACTIVE_CALL_ADDRESS;\n uint256 cleanupMask = UINT32_MASK;\n assembly {\n // Clearing input params as they are not cleaned by Solidity by default\n _value := and(_value, cleanupMask)\n pop(staticcall(_value, callAddr, 0, 0xFFFF, 0, 0))\n }\n }\n\n /// @notice Compiler simulation of the `ptr.shrink` opcode for the virtual `ACTIVE_PTR` pointer.\n /// @dev Transforms `ACTIVE_PTR.length` into `ACTIVE_PTR.length - u32(_shrink)`. If underflow happens then it panics.\n function ptrShrinkIntoActive(uint32 _shrink) internal view {\n address callAddr = PTR_SHRINK_INTO_ACTIVE_CALL_ADDRESS;\n uint256 cleanupMask = UINT32_MASK;\n assembly {\n // Clearing input params as they are not cleaned by Solidity by default\n _shrink := and(_shrink, cleanupMask)\n pop(staticcall(_shrink, callAddr, 0, 0xFFFF, 0, 0))\n }\n }\n\n /// @notice packs precompile parameters into one word\n /// @param _inputMemoryOffset The memory offset in 32-byte words for the input data for calling the precompile.\n /// @param _inputMemoryLength The length of the input data in words.\n /// @param _outputMemoryOffset The memory offset in 32-byte words for the output data.\n /// @param _outputMemoryLength The length of the output data in words.\n /// @param _perPrecompileInterpreted The constant, the meaning of which is defined separately for\n /// each precompile. For information, please read the documentation of the precompilecall log in\n /// the VM.\n function packPrecompileParams(\n uint32 _inputMemoryOffset,\n uint32 _inputMemoryLength,\n uint32 _outputMemoryOffset,\n uint32 _outputMemoryLength,\n uint64 _perPrecompileInterpreted\n ) internal pure returns (uint256 rawParams) {\n rawParams = _inputMemoryOffset;\n rawParams |= uint256(_inputMemoryLength) << 32;\n rawParams |= uint256(_outputMemoryOffset) << 64;\n rawParams |= uint256(_outputMemoryLength) << 96;\n rawParams |= uint256(_perPrecompileInterpreted) << 192;\n }\n\n /// @notice Call precompile with given parameters.\n /// @param _rawParams The packed precompile params. They can be retrieved by\n /// the `packPrecompileParams` method.\n /// @param _gasToBurn The number of gas to burn during this call.\n /// @return success Whether the call was successful.\n /// @dev The list of currently available precompiles sha256, keccak256, ecrecover.\n /// NOTE: The precompile type depends on `this` which calls precompile, which means that only\n /// system contracts corresponding to the list of precompiles above can do `precompileCall`.\n /// @dev If used not in the `sha256`, `keccak256` or `ecrecover` contracts, it will just burn the gas provided.\n function precompileCall(uint256 _rawParams, uint32 _gasToBurn) internal view returns (bool success) {\n address callAddr = PRECOMPILE_CALL_ADDRESS;\n\n // After `precompileCall` gas will be burned down to 0 if there are not enough of them,\n // thats why it should be checked before the call.\n require(gasleft() >= _gasToBurn);\n uint256 cleanupMask = UINT32_MASK;\n assembly {\n // Clearing input params as they are not cleaned by Solidity by default\n _gasToBurn := and(_gasToBurn, cleanupMask)\n success := staticcall(_rawParams, callAddr, _gasToBurn, 0xFFFF, 0, 0)\n }\n }\n\n /// @notice Set `msg.value` to next far call.\n /// @param _value The msg.value that will be used for the *next* call.\n /// @dev If called not in kernel mode, it will result in a revert (enforced by the VM)\n function setValueForNextFarCall(uint128 _value) internal returns (bool success) {\n uint256 cleanupMask = UINT128_MASK;\n address callAddr = SET_CONTEXT_VALUE_CALL_ADDRESS;\n assembly {\n // Clearing input params as they are not cleaned by Solidity by default\n _value := and(_value, cleanupMask)\n success := call(0, callAddr, _value, 0, 0xFFFF, 0, 0)\n }\n }\n\n /// @notice Initialize a new event.\n /// @param initializer The event initializing value.\n /// @param value1 The first topic or data chunk.\n function eventInitialize(uint256 initializer, uint256 value1) internal {\n address callAddr = EVENT_INITIALIZE_ADDRESS;\n assembly {\n pop(call(initializer, callAddr, value1, 0, 0xFFFF, 0, 0))\n }\n }\n\n /// @notice Continue writing the previously initialized event.\n /// @param value1 The first topic or data chunk.\n /// @param value2 The second topic or data chunk.\n function eventWrite(uint256 value1, uint256 value2) internal {\n address callAddr = EVENT_WRITE_ADDRESS;\n assembly {\n pop(call(value1, callAddr, value2, 0, 0xFFFF, 0, 0))\n }\n }\n\n /// @notice Get the packed representation of the `ZkSyncMeta` from the current context.\n /// @return meta The packed representation of the ZkSyncMeta.\n /// @dev The fields in ZkSyncMeta are NOT tightly packed, i.e. there is a special rule on how\n /// they are packed. For more information, please read the documentation on ZkSyncMeta.\n function getZkSyncMetaBytes() internal view returns (uint256 meta) {\n address callAddr = META_CALL_ADDRESS;\n assembly {\n meta := staticcall(0, callAddr, 0, 0xFFFF, 0, 0)\n }\n }\n\n /// @notice Returns the bits [offset..offset+size-1] of the meta.\n /// @param meta Packed representation of the ZkSyncMeta.\n /// @param offset The offset of the bits.\n /// @param size The size of the extracted number in bits.\n /// @return result The extracted number.\n function extractNumberFromMeta(uint256 meta, uint256 offset, uint256 size) internal pure returns (uint256 result) {\n // Firstly, we delete all the bits after the field\n uint256 shifted = (meta << (256 - size - offset));\n // Then we shift everything back\n result = (shifted >> (256 - size));\n }\n\n /// @notice Given the packed representation of `ZkSyncMeta`, retrieves the number of gas\n /// that a single byte sent to L1 as pubdata costs.\n /// @param meta Packed representation of the ZkSyncMeta.\n /// @return gasPerPubdataByte The current price in gas per pubdata byte.\n function getGasPerPubdataByteFromMeta(uint256 meta) internal pure returns (uint32 gasPerPubdataByte) {\n gasPerPubdataByte = uint32(extractNumberFromMeta(meta, META_GAS_PER_PUBDATA_BYTE_OFFSET, 32));\n }\n\n /// @notice Given the packed representation of `ZkSyncMeta`, retrieves the number of the current size\n /// of the heap in bytes.\n /// @param meta Packed representation of the ZkSyncMeta.\n /// @return heapSize The size of the memory in bytes byte.\n /// @dev The following expression: getHeapSizeFromMeta(getZkSyncMetaBytes()) is\n /// equivalent to the MSIZE in Solidity.\n function getHeapSizeFromMeta(uint256 meta) internal pure returns (uint32 heapSize) {\n heapSize = uint32(extractNumberFromMeta(meta, META_HEAP_SIZE_OFFSET, 32));\n }\n\n /// @notice Given the packed representation of `ZkSyncMeta`, retrieves the number of the current size\n /// of the auxilary heap in bytes.\n /// @param meta Packed representation of the ZkSyncMeta.\n /// @return auxHeapSize The size of the auxilary memory in bytes byte.\n /// @dev You can read more on auxilary memory in the VM1.2 documentation.\n function getAuxHeapSizeFromMeta(uint256 meta) internal pure returns (uint32 auxHeapSize) {\n auxHeapSize = uint32(extractNumberFromMeta(meta, META_AUX_HEAP_SIZE_OFFSET, 32));\n }\n\n /// @notice Given the packed representation of `ZkSyncMeta`, retrieves the shardId of `this`.\n /// @param meta Packed representation of the ZkSyncMeta.\n /// @return shardId The shardId of `this`.\n /// @dev Currently only shard 0 (zkRollup) is supported.\n function getShardIdFromMeta(uint256 meta) internal pure returns (uint8 shardId) {\n shardId = uint8(extractNumberFromMeta(meta, META_SHARD_ID_OFFSET, 8));\n }\n\n /// @notice Given the packed representation of `ZkSyncMeta`, retrieves the shardId of\n /// the msg.sender.\n /// @param meta Packed representation of the ZkSyncMeta.\n /// @return callerShardId The shardId of the msg.sender.\n /// @dev Currently only shard 0 (zkRollup) is supported.\n function getCallerShardIdFromMeta(uint256 meta) internal pure returns (uint8 callerShardId) {\n callerShardId = uint8(extractNumberFromMeta(meta, META_CALLER_SHARD_ID_OFFSET, 8));\n }\n\n /// @notice Given the packed representation of `ZkSyncMeta`, retrieves the shardId of\n /// the currently executed code.\n /// @param meta Packed representation of the ZkSyncMeta.\n /// @return codeShardId The shardId of the currently executed code.\n /// @dev Currently only shard 0 (zkRollup) is supported.\n function getCodeShardIdFromMeta(uint256 meta) internal pure returns (uint8 codeShardId) {\n codeShardId = uint8(extractNumberFromMeta(meta, META_CODE_SHARD_ID_OFFSET, 8));\n }\n\n /// @notice Retrieves the ZkSyncMeta structure.\n /// @return meta The ZkSyncMeta execution context parameters.\n function getZkSyncMeta() internal view returns (ZkSyncMeta memory meta) {\n uint256 metaPacked = getZkSyncMetaBytes();\n meta.gasPerPubdataByte = getGasPerPubdataByteFromMeta(metaPacked);\n meta.shardId = getShardIdFromMeta(metaPacked);\n meta.callerShardId = getCallerShardIdFromMeta(metaPacked);\n meta.codeShardId = getCodeShardIdFromMeta(metaPacked);\n }\n\n /// @notice Returns the call flags for the current call.\n /// @return callFlags The bitmask of the callflags.\n /// @dev Call flags is the value of the first register\n /// at the start of the call.\n /// @dev The zero bit of the callFlags indicates whether the call is\n /// a constructor call. The first bit of the callFlags indicates whether\n /// the call is a system one.\n function getCallFlags() internal view returns (uint256 callFlags) {\n address callAddr = CALLFLAGS_CALL_ADDRESS;\n assembly {\n callFlags := staticcall(0, callAddr, 0, 0xFFFF, 0, 0)\n }\n }\n\n /// @notice Returns the current calldata pointer.\n /// @return ptr The current calldata pointer.\n /// @dev NOTE: This file is just an integer and it can not be used\n /// to forward the calldata to the next calls in any way.\n function getCalldataPtr() internal view returns (uint256 ptr) {\n address callAddr = PTR_CALLDATA_CALL_ADDRESS;\n assembly {\n ptr := staticcall(0, callAddr, 0, 0xFFFF, 0, 0)\n }\n }\n\n /// @notice Returns the N-th extraAbiParam for the current call.\n /// @return extraAbiData The value of the N-th extraAbiParam for this call.\n /// @dev It is equal to the value of the (N+2)-th register\n /// at the start of the call.\n function getExtraAbiData(uint256 index) internal view returns (uint256 extraAbiData) {\n require(index < 10, \"There are only 10 accessible registers\");\n\n address callAddr = GET_EXTRA_ABI_DATA_ADDRESS;\n assembly {\n extraAbiData := staticcall(index, callAddr, 0, 0xFFFF, 0, 0)\n }\n }\n\n /// @notice Retuns whether the current call is a system call.\n /// @return `true` or `false` based on whether the current call is a system call.\n function isSystemCall() internal view returns (bool) {\n uint256 callFlags = getCallFlags();\n // When the system call is passed, the 2-bit it set to 1\n return (callFlags & 2) != 0;\n }\n\n /// @notice Returns whether the address is a system contract.\n /// @param _address The address to test\n /// @return `true` or `false` based on whether the `_address` is a system contract.\n function isSystemContract(address _address) internal pure returns (bool) {\n return uint160(_address) <= uint160(MAX_SYSTEM_CONTRACT_ADDRESS);\n }\n}\n\n/// @dev Solidity does not allow exporting modifiers via libraries, so\n/// the only way to do reuse modifiers is to have a base contract\nabstract contract ISystemContract {\n /// @notice Modifier that makes sure that the method\n /// can only be called via a system call.\n modifier onlySystemCall() {\n require(\n SystemContractHelper.isSystemCall() || SystemContractHelper.isSystemContract(msg.sender),\n \"This method require system call flag\"\n );\n _;\n }\n}\n"},"@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractsCaller.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8;\n\nimport {MSG_VALUE_SYSTEM_CONTRACT, MSG_VALUE_SIMULATOR_IS_SYSTEM_BIT} from \"../Constants.sol\";\nimport \"./Utils.sol\";\n\n// Addresses used for the compiler to be replaced with the\n// zkSync-specific opcodes during the compilation.\n// IMPORTANT: these are just compile-time constants and are used\n// only if used in-place by Yul optimizer.\naddress constant TO_L1_CALL_ADDRESS = address((1 << 16) - 1);\naddress constant CODE_ADDRESS_CALL_ADDRESS = address((1 << 16) - 2);\naddress constant PRECOMPILE_CALL_ADDRESS = address((1 << 16) - 3);\naddress constant META_CALL_ADDRESS = address((1 << 16) - 4);\naddress constant MIMIC_CALL_CALL_ADDRESS = address((1 << 16) - 5);\naddress constant SYSTEM_MIMIC_CALL_CALL_ADDRESS = address((1 << 16) - 6);\naddress constant MIMIC_CALL_BY_REF_CALL_ADDRESS = address((1 << 16) - 7);\naddress constant SYSTEM_MIMIC_CALL_BY_REF_CALL_ADDRESS = address((1 << 16) - 8);\naddress constant RAW_FAR_CALL_CALL_ADDRESS = address((1 << 16) - 9);\naddress constant RAW_FAR_CALL_BY_REF_CALL_ADDRESS = address((1 << 16) - 10);\naddress constant SYSTEM_CALL_CALL_ADDRESS = address((1 << 16) - 11);\naddress constant SYSTEM_CALL_BY_REF_CALL_ADDRESS = address((1 << 16) - 12);\naddress constant SET_CONTEXT_VALUE_CALL_ADDRESS = address((1 << 16) - 13);\naddress constant SET_PUBDATA_PRICE_CALL_ADDRESS = address((1 << 16) - 14);\naddress constant INCREMENT_TX_COUNTER_CALL_ADDRESS = address((1 << 16) - 15);\naddress constant PTR_CALLDATA_CALL_ADDRESS = address((1 << 16) - 16);\naddress constant CALLFLAGS_CALL_ADDRESS = address((1 << 16) - 17);\naddress constant PTR_RETURNDATA_CALL_ADDRESS = address((1 << 16) - 18);\naddress constant EVENT_INITIALIZE_ADDRESS = address((1 << 16) - 19);\naddress constant EVENT_WRITE_ADDRESS = address((1 << 16) - 20);\naddress constant LOAD_CALLDATA_INTO_ACTIVE_PTR_CALL_ADDRESS = address((1 << 16) - 21);\naddress constant LOAD_LATEST_RETURNDATA_INTO_ACTIVE_PTR_CALL_ADDRESS = address((1 << 16) - 22);\naddress constant PTR_ADD_INTO_ACTIVE_CALL_ADDRESS = address((1 << 16) - 23);\naddress constant PTR_SHRINK_INTO_ACTIVE_CALL_ADDRESS = address((1 << 16) - 24);\naddress constant PTR_PACK_INTO_ACTIVE_CALL_ADDRESS = address((1 << 16) - 25);\naddress constant MULTIPLICATION_HIGH_ADDRESS = address((1 << 16) - 26);\naddress constant GET_EXTRA_ABI_DATA_ADDRESS = address((1 << 16) - 27);\n\n// All the offsets are in bits\nuint256 constant META_GAS_PER_PUBDATA_BYTE_OFFSET = 0 * 8;\nuint256 constant META_HEAP_SIZE_OFFSET = 8 * 8;\nuint256 constant META_AUX_HEAP_SIZE_OFFSET = 12 * 8;\nuint256 constant META_SHARD_ID_OFFSET = 28 * 8;\nuint256 constant META_CALLER_SHARD_ID_OFFSET = 29 * 8;\nuint256 constant META_CODE_SHARD_ID_OFFSET = 30 * 8;\n\n/// @notice The way to forward the calldata:\n/// - Use the current heap (i.e. the same as on EVM).\n/// - Use the auxiliary heap.\n/// - Forward via a pointer\n/// @dev Note, that currently, users do not have access to the auxiliary\n/// heap and so the only type of forwarding that will be used by the users\n/// are UseHeap and ForwardFatPointer for forwarding a slice of the current calldata\n/// to the next call.\nenum CalldataForwardingMode {\n UseHeap,\n ForwardFatPointer,\n UseAuxHeap\n}\n\n/**\n * @author Matter Labs\n * @notice A library that allows calling contracts with the `isSystem` flag.\n * @dev It is needed to call ContractDeployer and NonceHolder.\n */\nlibrary SystemContractsCaller {\n /// @notice Makes a call with the `isSystem` flag.\n /// @param gasLimit The gas limit for the call.\n /// @param to The address to call.\n /// @param value The value to pass with the transaction.\n /// @param data The calldata.\n /// @return success Whether the transaction has been successful.\n /// @dev Note, that the `isSystem` flag can only be set when calling system contracts.\n function systemCall(uint32 gasLimit, address to, uint256 value, bytes memory data) internal returns (bool success) {\n address callAddr = SYSTEM_CALL_CALL_ADDRESS;\n\n uint32 dataStart;\n assembly {\n dataStart := add(data, 0x20)\n }\n uint32 dataLength = uint32(Utils.safeCastToU32(data.length));\n\n uint256 farCallAbi = SystemContractsCaller.getFarCallABI(\n 0,\n 0,\n dataStart,\n dataLength,\n gasLimit,\n // Only rollup is supported for now\n 0,\n CalldataForwardingMode.UseHeap,\n false,\n true\n );\n\n if (value == 0) {\n // Doing the system call directly\n assembly {\n success := call(to, callAddr, 0, 0, farCallAbi, 0, 0)\n }\n } else {\n address msgValueSimulator = MSG_VALUE_SYSTEM_CONTRACT;\n // We need to supply the mask to the MsgValueSimulator to denote\n // that the call should be a system one.\n uint256 forwardMask = MSG_VALUE_SIMULATOR_IS_SYSTEM_BIT;\n\n assembly {\n success := call(msgValueSimulator, callAddr, value, to, farCallAbi, forwardMask, 0)\n }\n }\n }\n\n /// @notice Makes a call with the `isSystem` flag.\n /// @param gasLimit The gas limit for the call.\n /// @param to The address to call.\n /// @param value The value to pass with the transaction.\n /// @param data The calldata.\n /// @return success Whether the transaction has been successful.\n /// @return returnData The returndata of the transaction (revert reason in case the transaction has failed).\n /// @dev Note, that the `isSystem` flag can only be set when calling system contracts.\n function systemCallWithReturndata(\n uint32 gasLimit,\n address to,\n uint128 value,\n bytes memory data\n ) internal returns (bool success, bytes memory returnData) {\n success = systemCall(gasLimit, to, value, data);\n\n uint256 size;\n assembly {\n size := returndatasize()\n }\n\n returnData = new bytes(size);\n assembly {\n returndatacopy(add(returnData, 0x20), 0, size)\n }\n }\n\n /// @notice Makes a call with the `isSystem` flag.\n /// @param gasLimit The gas limit for the call.\n /// @param to The address to call.\n /// @param value The value to pass with the transaction.\n /// @param data The calldata.\n /// @return returnData The returndata of the transaction. In case the transaction reverts, the error\n /// bubbles up to the parent frame.\n /// @dev Note, that the `isSystem` flag can only be set when calling system contracts.\n function systemCallWithPropagatedRevert(\n uint32 gasLimit,\n address to,\n uint128 value,\n bytes memory data\n ) internal returns (bytes memory returnData) {\n bool success;\n (success, returnData) = systemCallWithReturndata(gasLimit, to, value, data);\n\n if (!success) {\n assembly {\n let size := mload(returnData)\n revert(add(returnData, 0x20), size)\n }\n }\n }\n\n /// @notice Calculates the packed representation of the FarCallABI.\n /// @param dataOffset Calldata offset in memory. Provide 0 unless using custom pointer.\n /// @param memoryPage Memory page to use. Provide 0 unless using custom pointer.\n /// @param dataStart The start of the calldata slice. Provide the offset in memory\n /// if not using custom pointer.\n /// @param dataLength The calldata length. Provide the length of the calldata in bytes\n /// unless using custom pointer.\n /// @param gasPassed The gas to pass with the call.\n /// @param shardId Of the account to call. Currently only 0 is supported.\n /// @param forwardingMode The forwarding mode to use:\n /// - provide CalldataForwardingMode.UseHeap when using your current memory\n /// - provide CalldataForwardingMode.ForwardFatPointer when using custom pointer.\n /// @param isConstructorCall Whether the call will be a call to the constructor\n /// (ignored when the caller is not a system contract).\n /// @param isSystemCall Whether the call will have the `isSystem` flag.\n /// @return farCallAbi The far call ABI.\n /// @dev The `FarCallABI` has the following structure:\n /// pub struct FarCallABI {\n /// pub memory_quasi_fat_pointer: FatPointer,\n /// pub gas_passed: u32,\n /// pub shard_id: u8,\n /// pub forwarding_mode: FarCallForwardPageType,\n /// pub constructor_call: bool,\n /// pub to_system: bool,\n /// }\n ///\n /// The FatPointer struct:\n ///\n /// pub struct FatPointer {\n /// pub offset: u32, // offset relative to `start`\n /// pub memory_page: u32, // memory page where slice is located\n /// pub start: u32, // absolute start of the slice\n /// pub length: u32, // length of the slice\n /// }\n ///\n /// @dev Note, that the actual layout is the following:\n ///\n /// [0..32) bits -- the calldata offset\n /// [32..64) bits -- the memory page to use. Can be left blank in most of the cases.\n /// [64..96) bits -- the absolute start of the slice\n /// [96..128) bits -- the length of the slice.\n /// [128..192) bits -- empty bits.\n /// [192..224) bits -- gasPassed.\n /// [224..232) bits -- forwarding_mode\n /// [232..240) bits -- shard id.\n /// [240..248) bits -- constructor call flag\n /// [248..256] bits -- system call flag\n function getFarCallABI(\n uint32 dataOffset,\n uint32 memoryPage,\n uint32 dataStart,\n uint32 dataLength,\n uint32 gasPassed,\n uint8 shardId,\n CalldataForwardingMode forwardingMode,\n bool isConstructorCall,\n bool isSystemCall\n ) internal pure returns (uint256 farCallAbi) {\n // Fill in the call parameter fields\n farCallAbi = getFarCallABIWithEmptyFatPointer(\n gasPassed,\n shardId,\n forwardingMode,\n isConstructorCall,\n isSystemCall\n );\n // Fill in the fat pointer fields\n farCallAbi |= dataOffset;\n farCallAbi |= (uint256(memoryPage) << 32);\n farCallAbi |= (uint256(dataStart) << 64);\n farCallAbi |= (uint256(dataLength) << 96);\n }\n\n /// @notice Calculates the packed representation of the FarCallABI with zero fat pointer fields.\n /// @param gasPassed The gas to pass with the call.\n /// @param shardId Of the account to call. Currently only 0 is supported.\n /// @param forwardingMode The forwarding mode to use:\n /// - provide CalldataForwardingMode.UseHeap when using your current memory\n /// - provide CalldataForwardingMode.ForwardFatPointer when using custom pointer.\n /// @param isConstructorCall Whether the call will be a call to the constructor\n /// (ignored when the caller is not a system contract).\n /// @param isSystemCall Whether the call will have the `isSystem` flag.\n /// @return farCallAbiWithEmptyFatPtr The far call ABI with zero fat pointer fields.\n function getFarCallABIWithEmptyFatPointer(\n uint32 gasPassed,\n uint8 shardId,\n CalldataForwardingMode forwardingMode,\n bool isConstructorCall,\n bool isSystemCall\n ) internal pure returns (uint256 farCallAbiWithEmptyFatPtr) {\n farCallAbiWithEmptyFatPtr |= (uint256(gasPassed) << 192);\n farCallAbiWithEmptyFatPtr |= (uint256(forwardingMode) << 224);\n farCallAbiWithEmptyFatPtr |= (uint256(shardId) << 232);\n if (isConstructorCall) {\n farCallAbiWithEmptyFatPtr |= (1 << 240);\n }\n if (isSystemCall) {\n farCallAbiWithEmptyFatPtr |= (1 << 248);\n }\n }\n}\n"},"@matterlabs/zksync-contracts/l2/system-contracts/libraries/TransactionHelper.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\nimport \"../openzeppelin/token/ERC20/IERC20.sol\";\nimport \"../openzeppelin/token/ERC20/utils/SafeERC20.sol\";\n\nimport \"../interfaces/IPaymasterFlow.sol\";\nimport \"../interfaces/IContractDeployer.sol\";\nimport {ETH_TOKEN_SYSTEM_CONTRACT, BOOTLOADER_FORMAL_ADDRESS} from \"../Constants.sol\";\nimport \"./RLPEncoder.sol\";\nimport \"./EfficientCall.sol\";\n\n/// @dev The type id of zkSync's EIP-712-signed transaction.\nuint8 constant EIP_712_TX_TYPE = 0x71;\n\n/// @dev The type id of legacy transactions.\nuint8 constant LEGACY_TX_TYPE = 0x0;\n/// @dev The type id of legacy transactions.\nuint8 constant EIP_2930_TX_TYPE = 0x01;\n/// @dev The type id of EIP1559 transactions.\nuint8 constant EIP_1559_TX_TYPE = 0x02;\n\n/// @notice Structure used to represent zkSync transaction.\nstruct Transaction {\n // The type of the transaction.\n uint256 txType;\n // The caller.\n uint256 from;\n // The callee.\n uint256 to;\n // The gasLimit to pass with the transaction.\n // It has the same meaning as Ethereum's gasLimit.\n uint256 gasLimit;\n // The maximum amount of gas the user is willing to pay for a byte of pubdata.\n uint256 gasPerPubdataByteLimit;\n // The maximum fee per gas that the user is willing to pay.\n // It is akin to EIP1559's maxFeePerGas.\n uint256 maxFeePerGas;\n // The maximum priority fee per gas that the user is willing to pay.\n // It is akin to EIP1559's maxPriorityFeePerGas.\n uint256 maxPriorityFeePerGas;\n // The transaction's paymaster. If there is no paymaster, it is equal to 0.\n uint256 paymaster;\n // The nonce of the transaction.\n uint256 nonce;\n // The value to pass with the transaction.\n uint256 value;\n // In the future, we might want to add some\n // new fields to the struct. The `txData` struct\n // is to be passed to account and any changes to its structure\n // would mean a breaking change to these accounts. In order to prevent this,\n // we should keep some fields as \"reserved\".\n // It is also recommended that their length is fixed, since\n // it would allow easier proof integration (in case we will need\n // some special circuit for preprocessing transactions).\n uint256[4] reserved;\n // The transaction's calldata.\n bytes data;\n // The signature of the transaction.\n bytes signature;\n // The properly formatted hashes of bytecodes that must be published on L1\n // with the inclusion of this transaction. Note, that a bytecode has been published\n // before, the user won't pay fees for its republishing.\n bytes32[] factoryDeps;\n // The input to the paymaster.\n bytes paymasterInput;\n // Reserved dynamic type for the future use-case. Using it should be avoided,\n // But it is still here, just in case we want to enable some additional functionality.\n bytes reservedDynamic;\n}\n\n/**\n * @author Matter Labs\n * @notice Library is used to help custom accounts to work with common methods for the Transaction type.\n */\nlibrary TransactionHelper {\n using SafeERC20 for IERC20;\n\n /// @notice The EIP-712 typehash for the contract's domain\n bytes32 constant EIP712_DOMAIN_TYPEHASH = keccak256(\"EIP712Domain(string name,string version,uint256 chainId)\");\n\n bytes32 constant EIP712_TRANSACTION_TYPE_HASH =\n keccak256(\n \"Transaction(uint256 txType,uint256 from,uint256 to,uint256 gasLimit,uint256 gasPerPubdataByteLimit,uint256 maxFeePerGas,uint256 maxPriorityFeePerGas,uint256 paymaster,uint256 nonce,uint256 value,bytes data,bytes32[] factoryDeps,bytes paymasterInput)\"\n );\n\n /// @notice Whether the token is Ethereum.\n /// @param _addr The address of the token\n /// @return `true` or `false` based on whether the token is Ether.\n /// @dev This method assumes that address is Ether either if the address is 0 (for convenience)\n /// or if the address is the address of the L2EthToken system contract.\n function isEthToken(uint256 _addr) internal pure returns (bool) {\n return _addr == uint256(uint160(address(ETH_TOKEN_SYSTEM_CONTRACT))) || _addr == 0;\n }\n\n /// @notice Calculate the suggested signed hash of the transaction,\n /// i.e. the hash that is signed by EOAs and is recommended to be signed by other accounts.\n function encodeHash(Transaction calldata _transaction) internal view returns (bytes32 resultHash) {\n if (_transaction.txType == LEGACY_TX_TYPE) {\n resultHash = _encodeHashLegacyTransaction(_transaction);\n } else if (_transaction.txType == EIP_712_TX_TYPE) {\n resultHash = _encodeHashEIP712Transaction(_transaction);\n } else if (_transaction.txType == EIP_1559_TX_TYPE) {\n resultHash = _encodeHashEIP1559Transaction(_transaction);\n } else if (_transaction.txType == EIP_2930_TX_TYPE) {\n resultHash = _encodeHashEIP2930Transaction(_transaction);\n } else {\n // Currently no other transaction types are supported.\n // Any new transaction types will be processed in a similar manner.\n revert(\"Encoding unsupported tx\");\n }\n }\n\n /// @notice Encode hash of the zkSync native transaction type.\n /// @return keccak256 hash of the EIP-712 encoded representation of transaction\n function _encodeHashEIP712Transaction(Transaction calldata _transaction) private view returns (bytes32) {\n bytes32 structHash = keccak256(\n abi.encode(\n EIP712_TRANSACTION_TYPE_HASH,\n _transaction.txType,\n _transaction.from,\n _transaction.to,\n _transaction.gasLimit,\n _transaction.gasPerPubdataByteLimit,\n _transaction.maxFeePerGas,\n _transaction.maxPriorityFeePerGas,\n _transaction.paymaster,\n _transaction.nonce,\n _transaction.value,\n EfficientCall.keccak(_transaction.data),\n keccak256(abi.encodePacked(_transaction.factoryDeps)),\n EfficientCall.keccak(_transaction.paymasterInput)\n )\n );\n\n bytes32 domainSeparator = keccak256(\n abi.encode(EIP712_DOMAIN_TYPEHASH, keccak256(\"zkSync\"), keccak256(\"2\"), block.chainid)\n );\n\n return keccak256(abi.encodePacked(\"\\x19\\x01\", domainSeparator, structHash));\n }\n\n /// @notice Encode hash of the legacy transaction type.\n /// @return keccak256 of the serialized RLP encoded representation of transaction\n function _encodeHashLegacyTransaction(Transaction calldata _transaction) private view returns (bytes32) {\n // Hash of legacy transactions are encoded as one of the:\n // - RLP(nonce, gasPrice, gasLimit, to, value, data, chainId, 0, 0)\n // - RLP(nonce, gasPrice, gasLimit, to, value, data)\n //\n // In this RLP encoding, only the first one above list appears, so we encode each element\n // inside list and then concatenate the length of all elements with them.\n\n bytes memory encodedNonce = RLPEncoder.encodeUint256(_transaction.nonce);\n // Encode `gasPrice` and `gasLimit` together to prevent \"stack too deep error\".\n bytes memory encodedGasParam;\n {\n bytes memory encodedGasPrice = RLPEncoder.encodeUint256(_transaction.maxFeePerGas);\n bytes memory encodedGasLimit = RLPEncoder.encodeUint256(_transaction.gasLimit);\n encodedGasParam = bytes.concat(encodedGasPrice, encodedGasLimit);\n }\n\n bytes memory encodedTo = RLPEncoder.encodeAddress(address(uint160(_transaction.to)));\n bytes memory encodedValue = RLPEncoder.encodeUint256(_transaction.value);\n // Encode only the length of the transaction data, and not the data itself,\n // so as not to copy to memory a potentially huge transaction data twice.\n bytes memory encodedDataLength;\n {\n // Safe cast, because the length of the transaction data can't be so large.\n uint64 txDataLen = uint64(_transaction.data.length);\n if (txDataLen != 1) {\n // If the length is not equal to one, then only using the length can it be encoded definitely.\n encodedDataLength = RLPEncoder.encodeNonSingleBytesLen(txDataLen);\n } else if (_transaction.data[0] >= 0x80) {\n // If input is a byte in [0x80, 0xff] range, RLP encoding will concatenates 0x81 with the byte.\n encodedDataLength = hex\"81\";\n }\n // Otherwise the length is not encoded at all.\n }\n\n // Encode `chainId` according to EIP-155, but only if the `chainId` is specified in the transaction.\n bytes memory encodedChainId;\n if (_transaction.reserved[0] != 0) {\n encodedChainId = bytes.concat(RLPEncoder.encodeUint256(block.chainid), hex\"80_80\");\n }\n\n bytes memory encodedListLength;\n unchecked {\n uint256 listLength = encodedNonce.length +\n encodedGasParam.length +\n encodedTo.length +\n encodedValue.length +\n encodedDataLength.length +\n _transaction.data.length +\n encodedChainId.length;\n\n // Safe cast, because the length of the list can't be so large.\n encodedListLength = RLPEncoder.encodeListLen(uint64(listLength));\n }\n\n return\n keccak256(\n bytes.concat(\n encodedListLength,\n encodedNonce,\n encodedGasParam,\n encodedTo,\n encodedValue,\n encodedDataLength,\n _transaction.data,\n encodedChainId\n )\n );\n }\n\n /// @notice Encode hash of the EIP2930 transaction type.\n /// @return keccak256 of the serialized RLP encoded representation of transaction\n function _encodeHashEIP2930Transaction(Transaction calldata _transaction) private view returns (bytes32) {\n // Hash of EIP2930 transactions is encoded the following way:\n // H(0x01 || RLP(chain_id, nonce, gas_price, gas_limit, destination, amount, data, access_list))\n //\n // Note, that on zkSync access lists are not supported and should always be empty.\n\n // Encode all fixed-length params to avoid \"stack too deep error\"\n bytes memory encodedFixedLengthParams;\n {\n bytes memory encodedChainId = RLPEncoder.encodeUint256(block.chainid);\n bytes memory encodedNonce = RLPEncoder.encodeUint256(_transaction.nonce);\n bytes memory encodedGasPrice = RLPEncoder.encodeUint256(_transaction.maxFeePerGas);\n bytes memory encodedGasLimit = RLPEncoder.encodeUint256(_transaction.gasLimit);\n bytes memory encodedTo = RLPEncoder.encodeAddress(address(uint160(_transaction.to)));\n bytes memory encodedValue = RLPEncoder.encodeUint256(_transaction.value);\n encodedFixedLengthParams = bytes.concat(\n encodedChainId,\n encodedNonce,\n encodedGasPrice,\n encodedGasLimit,\n encodedTo,\n encodedValue\n );\n }\n\n // Encode only the length of the transaction data, and not the data itself,\n // so as not to copy to memory a potentially huge transaction data twice.\n bytes memory encodedDataLength;\n {\n // Safe cast, because the length of the transaction data can't be so large.\n uint64 txDataLen = uint64(_transaction.data.length);\n if (txDataLen != 1) {\n // If the length is not equal to one, then only using the length can it be encoded definitely.\n encodedDataLength = RLPEncoder.encodeNonSingleBytesLen(txDataLen);\n } else if (_transaction.data[0] >= 0x80) {\n // If input is a byte in [0x80, 0xff] range, RLP encoding will concatenates 0x81 with the byte.\n encodedDataLength = hex\"81\";\n }\n // Otherwise the length is not encoded at all.\n }\n\n // On zkSync, access lists are always zero length (at least for now).\n bytes memory encodedAccessListLength = RLPEncoder.encodeListLen(0);\n\n bytes memory encodedListLength;\n unchecked {\n uint256 listLength = encodedFixedLengthParams.length +\n encodedDataLength.length +\n _transaction.data.length +\n encodedAccessListLength.length;\n\n // Safe cast, because the length of the list can't be so large.\n encodedListLength = RLPEncoder.encodeListLen(uint64(listLength));\n }\n\n return\n keccak256(\n bytes.concat(\n \"\\x01\",\n encodedListLength,\n encodedFixedLengthParams,\n encodedDataLength,\n _transaction.data,\n encodedAccessListLength\n )\n );\n }\n\n /// @notice Encode hash of the EIP1559 transaction type.\n /// @return keccak256 of the serialized RLP encoded representation of transaction\n function _encodeHashEIP1559Transaction(Transaction calldata _transaction) private view returns (bytes32) {\n // Hash of EIP1559 transactions is encoded the following way:\n // H(0x02 || RLP(chain_id, nonce, max_priority_fee_per_gas, max_fee_per_gas, gas_limit, destination, amount, data, access_list))\n //\n // Note, that on zkSync access lists are not supported and should always be empty.\n\n // Encode all fixed-length params to avoid \"stack too deep error\"\n bytes memory encodedFixedLengthParams;\n {\n bytes memory encodedChainId = RLPEncoder.encodeUint256(block.chainid);\n bytes memory encodedNonce = RLPEncoder.encodeUint256(_transaction.nonce);\n bytes memory encodedMaxPriorityFeePerGas = RLPEncoder.encodeUint256(_transaction.maxPriorityFeePerGas);\n bytes memory encodedMaxFeePerGas = RLPEncoder.encodeUint256(_transaction.maxFeePerGas);\n bytes memory encodedGasLimit = RLPEncoder.encodeUint256(_transaction.gasLimit);\n bytes memory encodedTo = RLPEncoder.encodeAddress(address(uint160(_transaction.to)));\n bytes memory encodedValue = RLPEncoder.encodeUint256(_transaction.value);\n encodedFixedLengthParams = bytes.concat(\n encodedChainId,\n encodedNonce,\n encodedMaxPriorityFeePerGas,\n encodedMaxFeePerGas,\n encodedGasLimit,\n encodedTo,\n encodedValue\n );\n }\n\n // Encode only the length of the transaction data, and not the data itself,\n // so as not to copy to memory a potentially huge transaction data twice.\n bytes memory encodedDataLength;\n {\n // Safe cast, because the length of the transaction data can't be so large.\n uint64 txDataLen = uint64(_transaction.data.length);\n if (txDataLen != 1) {\n // If the length is not equal to one, then only using the length can it be encoded definitely.\n encodedDataLength = RLPEncoder.encodeNonSingleBytesLen(txDataLen);\n } else if (_transaction.data[0] >= 0x80) {\n // If input is a byte in [0x80, 0xff] range, RLP encoding will concatenates 0x81 with the byte.\n encodedDataLength = hex\"81\";\n }\n // Otherwise the length is not encoded at all.\n }\n\n // On zkSync, access lists are always zero length (at least for now).\n bytes memory encodedAccessListLength = RLPEncoder.encodeListLen(0);\n\n bytes memory encodedListLength;\n unchecked {\n uint256 listLength = encodedFixedLengthParams.length +\n encodedDataLength.length +\n _transaction.data.length +\n encodedAccessListLength.length;\n\n // Safe cast, because the length of the list can't be so large.\n encodedListLength = RLPEncoder.encodeListLen(uint64(listLength));\n }\n\n return\n keccak256(\n bytes.concat(\n \"\\x02\",\n encodedListLength,\n encodedFixedLengthParams,\n encodedDataLength,\n _transaction.data,\n encodedAccessListLength\n )\n );\n }\n\n /// @notice Processes the common paymaster flows, e.g. setting proper allowance\n /// for tokens, etc. For more information on the expected behavior, check out\n /// the \"Paymaster flows\" section in the documentation.\n function processPaymasterInput(Transaction calldata _transaction) internal {\n require(_transaction.paymasterInput.length >= 4, \"The standard paymaster input must be at least 4 bytes long\");\n\n bytes4 paymasterInputSelector = bytes4(_transaction.paymasterInput[0:4]);\n if (paymasterInputSelector == IPaymasterFlow.approvalBased.selector) {\n require(\n _transaction.paymasterInput.length >= 68,\n \"The approvalBased paymaster input must be at least 68 bytes long\"\n );\n\n // While the actual data consists of address, uint256 and bytes data,\n // the data is needed only for the paymaster, so we ignore it here for the sake of optimization\n (address token, uint256 minAllowance) = abi.decode(_transaction.paymasterInput[4:68], (address, uint256));\n address paymaster = address(uint160(_transaction.paymaster));\n\n uint256 currentAllowance = IERC20(token).allowance(address(this), paymaster);\n if (currentAllowance < minAllowance) {\n // Some tokens, e.g. USDT require that the allowance is firsty set to zero\n // and only then updated to the new value.\n\n IERC20(token).safeApprove(paymaster, 0);\n IERC20(token).safeApprove(paymaster, minAllowance);\n }\n } else if (paymasterInputSelector == IPaymasterFlow.general.selector) {\n // Do nothing. general(bytes) paymaster flow means that the paymaster must interpret these bytes on his own.\n } else {\n revert(\"Unsupported paymaster flow\");\n }\n }\n\n /// @notice Pays the required fee for the transaction to the bootloader.\n /// @dev Currently it pays the maximum amount \"_transaction.maxFeePerGas * _transaction.gasLimit\",\n /// it will change in the future.\n function payToTheBootloader(Transaction calldata _transaction) internal returns (bool success) {\n address bootloaderAddr = BOOTLOADER_FORMAL_ADDRESS;\n uint256 amount = _transaction.maxFeePerGas * _transaction.gasLimit;\n\n assembly {\n success := call(gas(), bootloaderAddr, amount, 0, 0, 0, 0)\n }\n }\n\n // Returns the balance required to process the transaction.\n function totalRequiredBalance(Transaction calldata _transaction) internal pure returns (uint256 requiredBalance) {\n if (address(uint160(_transaction.paymaster)) != address(0)) {\n // Paymaster pays for the fee\n requiredBalance = _transaction.value;\n } else {\n // The user should have enough balance for both the fee and the value of the transaction\n requiredBalance = _transaction.maxFeePerGas * _transaction.gasLimit + _transaction.value;\n }\n }\n}\n"},"@matterlabs/zksync-contracts/l2/system-contracts/libraries/Utils.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity >=0.8.0;\n\nimport \"./EfficientCall.sol\";\n\n/**\n * @author Matter Labs\n * @dev Common utilities used in zkSync system contracts\n */\nlibrary Utils {\n /// @dev Bit mask of bytecode hash \"isConstructor\" marker\n bytes32 constant IS_CONSTRUCTOR_BYTECODE_HASH_BIT_MASK =\n 0x00ff000000000000000000000000000000000000000000000000000000000000;\n\n /// @dev Bit mask to set the \"isConstructor\" marker in the bytecode hash\n bytes32 constant SET_IS_CONSTRUCTOR_MARKER_BIT_MASK =\n 0x0001000000000000000000000000000000000000000000000000000000000000;\n\n function safeCastToU128(uint256 _x) internal pure returns (uint128) {\n require(_x <= type(uint128).max, \"Overflow\");\n\n return uint128(_x);\n }\n\n function safeCastToU32(uint256 _x) internal pure returns (uint32) {\n require(_x <= type(uint32).max, \"Overflow\");\n\n return uint32(_x);\n }\n\n function safeCastToU24(uint256 _x) internal pure returns (uint24) {\n require(_x <= type(uint24).max, \"Overflow\");\n\n return uint24(_x);\n }\n\n /// @return codeLength The bytecode length in bytes\n function bytecodeLenInBytes(bytes32 _bytecodeHash) internal pure returns (uint256 codeLength) {\n codeLength = bytecodeLenInWords(_bytecodeHash) << 5; // _bytecodeHash * 32\n }\n\n /// @return codeLengthInWords The bytecode length in machine words\n function bytecodeLenInWords(bytes32 _bytecodeHash) internal pure returns (uint256 codeLengthInWords) {\n unchecked {\n codeLengthInWords = uint256(uint8(_bytecodeHash[2])) * 256 + uint256(uint8(_bytecodeHash[3]));\n }\n }\n\n /// @notice Denotes whether bytecode hash corresponds to a contract that already constructed\n function isContractConstructed(bytes32 _bytecodeHash) internal pure returns (bool) {\n return _bytecodeHash[1] == 0x00;\n }\n\n /// @notice Denotes whether bytecode hash corresponds to a contract that is on constructor or has already been constructed\n function isContractConstructing(bytes32 _bytecodeHash) internal pure returns (bool) {\n return _bytecodeHash[1] == 0x01;\n }\n\n /// @notice Sets \"isConstructor\" flag to TRUE for the bytecode hash\n /// @param _bytecodeHash The bytecode hash for which it is needed to set the constructing flag\n /// @return The bytecode hash with \"isConstructor\" flag set to TRUE\n function constructingBytecodeHash(bytes32 _bytecodeHash) internal pure returns (bytes32) {\n // Clear the \"isConstructor\" marker and set it to 0x01.\n return constructedBytecodeHash(_bytecodeHash) | SET_IS_CONSTRUCTOR_MARKER_BIT_MASK;\n }\n\n /// @notice Sets \"isConstructor\" flag to FALSE for the bytecode hash\n /// @param _bytecodeHash The bytecode hash for which it is needed to set the constructing flag\n /// @return The bytecode hash with \"isConstructor\" flag set to FALSE\n function constructedBytecodeHash(bytes32 _bytecodeHash) internal pure returns (bytes32) {\n return _bytecodeHash & ~IS_CONSTRUCTOR_BYTECODE_HASH_BIT_MASK;\n }\n\n /// @notice Validate the bytecode format and calculate its hash.\n /// @param _bytecode The bytecode to hash.\n /// @return hashedBytecode The 32-byte hash of the bytecode.\n /// Note: The function reverts the execution if the bytecode has non expected format:\n /// - Bytecode bytes length is not a multiple of 32\n /// - Bytecode bytes length is not less than 2^21 bytes (2^16 words)\n /// - Bytecode words length is not odd\n function hashL2Bytecode(bytes calldata _bytecode) internal view returns (bytes32 hashedBytecode) {\n // Note that the length of the bytecode must be provided in 32-byte words.\n require(_bytecode.length % 32 == 0, \"po\");\n\n uint256 bytecodeLenInWords = _bytecode.length / 32;\n require(bytecodeLenInWords < 2 ** 16, \"pp\"); // bytecode length must be less than 2^16 words\n require(bytecodeLenInWords % 2 == 1, \"pr\"); // bytecode length in words must be odd\n hashedBytecode =\n EfficientCall.sha(_bytecode) &\n 0x00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF;\n // Setting the version of the hash\n hashedBytecode = (hashedBytecode | bytes32(uint256(1 << 248)));\n // Setting the length\n hashedBytecode = hashedBytecode | bytes32(bytecodeLenInWords << 224);\n }\n}\n"},"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/extensions/IERC20Permit.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Permit.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in\n * https://eips.ethereum.org/EIPS/eip-2612[EIP-2612].\n *\n * Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by\n * presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't\n * need to send a transaction, and thus is not required to hold Ether at all.\n */\ninterface IERC20Permit {\n /**\n * @dev Sets `value` as the allowance of `spender` over ``owner``'s tokens,\n * given ``owner``'s signed approval.\n *\n * IMPORTANT: The same issues {IERC20-approve} has related to transaction\n * ordering also apply here.\n *\n * Emits an {Approval} event.\n *\n * Requirements:\n *\n * - `spender` cannot be the zero address.\n * - `deadline` must be a timestamp in the future.\n * - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner`\n * over the EIP712-formatted function arguments.\n * - the signature must use ``owner``'s current nonce (see {nonces}).\n *\n * For more information on the signature format, see the\n * https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP\n * section].\n */\n function permit(\n address owner,\n address spender,\n uint256 value,\n uint256 deadline,\n uint8 v,\n bytes32 r,\n bytes32 s\n ) external;\n\n /**\n * @dev Returns the current nonce for `owner`. This value must be\n * included whenever a signature is generated for {permit}.\n *\n * Every successful call to {permit} increases ``owner``'s nonce by one. This\n * prevents a signature from being used multiple times.\n */\n function nonces(address owner) external view returns (uint256);\n\n /**\n * @dev Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}.\n */\n // solhint-disable-next-line func-name-mixedcase\n function DOMAIN_SEPARATOR() external view returns (bytes32);\n}\n"},"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/IERC20.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Interface of the ERC20 standard as defined in the EIP.\n */\ninterface IERC20 {\n /**\n * @dev Emitted when `value` tokens are moved from one account (`from`) to\n * another (`to`).\n *\n * Note that `value` may be zero.\n */\n event Transfer(address indexed from, address indexed to, uint256 value);\n\n /**\n * @dev Emitted when the allowance of a `spender` for an `owner` is set by\n * a call to {approve}. `value` is the new allowance.\n */\n event Approval(address indexed owner, address indexed spender, uint256 value);\n\n /**\n * @dev Returns the amount of tokens in existence.\n */\n function totalSupply() external view returns (uint256);\n\n /**\n * @dev Returns the amount of tokens owned by `account`.\n */\n function balanceOf(address account) external view returns (uint256);\n\n /**\n * @dev Moves `amount` tokens from the caller's account to `to`.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * Emits a {Transfer} event.\n */\n function transfer(address to, uint256 amount) external returns (bool);\n\n /**\n * @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 *\n * This value changes when {approve} or {transferFrom} are called.\n */\n function allowance(address owner, address spender) external view returns (uint256);\n\n /**\n * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\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 *\n * Emits an {Approval} event.\n */\n function approve(address spender, uint256 amount) external returns (bool);\n\n /**\n * @dev Moves `amount` tokens from `from` to `to` using the\n * allowance mechanism. `amount` is then deducted from the caller's\n * allowance.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * Emits a {Transfer} event.\n */\n function transferFrom(\n address from,\n address to,\n uint256 amount\n ) external returns (bool);\n}\n"},"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/utils/SafeERC20.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.8.0) (token/ERC20/utils/SafeERC20.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../IERC20.sol\";\nimport \"../extensions/IERC20Permit.sol\";\nimport \"../../../utils/Address.sol\";\n\n/**\n * @title SafeERC20\n * @dev Wrappers around ERC20 operations that throw on failure (when the token\n * contract returns false). Tokens that return no value (and instead revert or\n * throw on failure) are also supported, non-reverting calls are assumed to be\n * successful.\n * To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,\n * which allows you to call the safe operations as `token.safeTransfer(...)`, etc.\n */\nlibrary SafeERC20 {\n using Address for address;\n\n function safeTransfer(\n IERC20 token,\n address to,\n uint256 value\n ) internal {\n _callOptionalReturn(\n token,\n abi.encodeWithSelector(token.transfer.selector, to, value)\n );\n }\n\n function safeTransferFrom(\n IERC20 token,\n address from,\n address to,\n uint256 value\n ) internal {\n _callOptionalReturn(\n token,\n abi.encodeWithSelector(token.transferFrom.selector, from, to, value)\n );\n }\n\n /**\n * @dev Deprecated. This function has issues similar to the ones found in\n * {IERC20-approve}, and its usage is discouraged.\n *\n * Whenever possible, use {safeIncreaseAllowance} and\n * {safeDecreaseAllowance} instead.\n */\n function safeApprove(\n IERC20 token,\n address spender,\n uint256 value\n ) internal {\n // safeApprove should only be called when setting an initial allowance,\n // or when resetting it to zero. To increase and decrease it, use\n // 'safeIncreaseAllowance' and 'safeDecreaseAllowance'\n require(\n (value == 0) || (token.allowance(address(this), spender) == 0),\n \"SafeERC20: approve from non-zero to non-zero allowance\"\n );\n _callOptionalReturn(\n token,\n abi.encodeWithSelector(token.approve.selector, spender, value)\n );\n }\n\n function safeIncreaseAllowance(\n IERC20 token,\n address spender,\n uint256 value\n ) internal {\n uint256 newAllowance = token.allowance(address(this), spender) + value;\n _callOptionalReturn(\n token,\n abi.encodeWithSelector(\n token.approve.selector,\n spender,\n newAllowance\n )\n );\n }\n\n function safeDecreaseAllowance(\n IERC20 token,\n address spender,\n uint256 value\n ) internal {\n unchecked {\n uint256 oldAllowance = token.allowance(address(this), spender);\n require(\n oldAllowance >= value,\n \"SafeERC20: decreased allowance below zero\"\n );\n uint256 newAllowance = oldAllowance - value;\n _callOptionalReturn(\n token,\n abi.encodeWithSelector(\n token.approve.selector,\n spender,\n newAllowance\n )\n );\n }\n }\n\n function safePermit(\n IERC20Permit token,\n address owner,\n address spender,\n uint256 value,\n uint256 deadline,\n uint8 v,\n bytes32 r,\n bytes32 s\n ) internal {\n uint256 nonceBefore = token.nonces(owner);\n token.permit(owner, spender, value, deadline, v, r, s);\n uint256 nonceAfter = token.nonces(owner);\n require(\n nonceAfter == nonceBefore + 1,\n \"SafeERC20: permit did not succeed\"\n );\n }\n\n /**\n * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\n * on the return value: the return value is optional (but if data is returned, it must not be false).\n * @param token The token targeted by the call.\n * @param data The call data (encoded using abi.encode or one of its variants).\n */\n function _callOptionalReturn(IERC20 token, bytes memory data) private {\n // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since\n // we're implementing it ourselves. We use {Address-functionCall} to perform this call, which verifies that\n // the target address contains contract code and also asserts for success in the low-level call.\n\n bytes memory returndata = address(token).functionCall(\n data,\n \"SafeERC20: low-level call failed\"\n );\n if (returndata.length > 0) {\n // Return data is optional\n require(\n abi.decode(returndata, (bool)),\n \"SafeERC20: ERC20 operation did not succeed\"\n );\n }\n }\n}\n"},"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/utils/Address.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.8.0) (utils/Address.sol)\n\npragma solidity ^0.8.1;\n\n/**\n * @dev Collection of functions related to the address type\n */\nlibrary Address {\n /**\n * @dev Returns true if `account` is a contract.\n *\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 *\n * Among others, `isContract` will return false for the following\n * types of addresses:\n *\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 *\n * [IMPORTANT]\n * ====\n * You shouldn't rely on `isContract` to protect against flash loan attacks!\n *\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 * ====\n */\n function isContract(address account) internal view returns (bool) {\n // This method relies on extcodesize/address.code.length, which returns 0\n // for contracts in construction, since the code is only stored at the end\n // of the constructor execution.\n\n return account.code.length > 0;\n }\n\n /**\n * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n * `recipient`, forwarding all available gas and reverting on errors.\n *\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 *\n * https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n *\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].\n */\n function sendValue(address payable recipient, uint256 amount) internal {\n require(\n address(this).balance >= amount,\n \"Address: insufficient balance\"\n );\n\n (bool success, ) = recipient.call{value: amount}(\"\");\n require(\n success,\n \"Address: unable to send value, recipient may have reverted\"\n );\n }\n\n /**\n * @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 *\n * If `target` reverts with a revert reason, it is bubbled up by this\n * function (like regular Solidity function calls).\n *\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 *\n * Requirements:\n *\n * - `target` must be a contract.\n * - calling `target` with `data` must not revert.\n *\n * _Available since v3.1._\n */\n function functionCall(address target, bytes memory data)\n internal\n returns (bytes memory)\n {\n return\n functionCallWithValue(\n target,\n data,\n 0,\n \"Address: low-level call failed\"\n );\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n * `errorMessage` as a fallback revert reason when `target` reverts.\n *\n * _Available since v3.1._\n */\n function functionCall(\n address target,\n bytes memory data,\n string memory errorMessage\n ) internal returns (bytes memory) {\n return functionCallWithValue(target, data, 0, errorMessage);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but also transferring `value` wei to `target`.\n *\n * Requirements:\n *\n * - the calling contract must have an ETH balance of at least `value`.\n * - the called Solidity function must be `payable`.\n *\n * _Available since v3.1._\n */\n function functionCallWithValue(\n address target,\n bytes memory data,\n uint256 value\n ) internal returns (bytes memory) {\n return\n functionCallWithValue(\n target,\n data,\n value,\n \"Address: low-level call with value failed\"\n );\n }\n\n /**\n * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n * with `errorMessage` as a fallback revert reason when `target` reverts.\n *\n * _Available since v3.1._\n */\n function functionCallWithValue(\n address target,\n bytes memory data,\n uint256 value,\n string memory errorMessage\n ) internal returns (bytes memory) {\n require(\n address(this).balance >= value,\n \"Address: insufficient balance for call\"\n );\n (bool success, bytes memory returndata) = target.call{value: value}(\n data\n );\n return\n verifyCallResultFromTarget(\n target,\n success,\n returndata,\n errorMessage\n );\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but performing a static call.\n *\n * _Available since v3.3._\n */\n function functionStaticCall(address target, bytes memory data)\n internal\n view\n returns (bytes memory)\n {\n return\n functionStaticCall(\n target,\n data,\n \"Address: low-level static call failed\"\n );\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n * but performing a static call.\n *\n * _Available since v3.3._\n */\n function functionStaticCall(\n address target,\n bytes memory data,\n string memory errorMessage\n ) internal view returns (bytes memory) {\n (bool success, bytes memory returndata) = target.staticcall(data);\n return\n verifyCallResultFromTarget(\n target,\n success,\n returndata,\n errorMessage\n );\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but performing a delegate call.\n *\n * _Available since v3.4._\n */\n function functionDelegateCall(address target, bytes memory data)\n internal\n returns (bytes memory)\n {\n return\n functionDelegateCall(\n target,\n data,\n \"Address: low-level delegate call failed\"\n );\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n * but performing a delegate call.\n *\n * _Available since v3.4._\n */\n function functionDelegateCall(\n address target,\n bytes memory data,\n string memory errorMessage\n ) internal returns (bytes memory) {\n (bool success, bytes memory returndata) = target.delegatecall(data);\n return\n verifyCallResultFromTarget(\n target,\n success,\n returndata,\n errorMessage\n );\n }\n\n /**\n * @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 *\n * _Available since v4.8._\n */\n function verifyCallResultFromTarget(\n address target,\n bool success,\n bytes memory returndata,\n string memory errorMessage\n ) internal view returns (bytes memory) {\n if (success) {\n if (returndata.length == 0) {\n // only check isContract if the call was successful and the return data is empty\n // otherwise we already know that it was a contract\n require(isContract(target), \"Address: call to non-contract\");\n }\n return returndata;\n } else {\n _revert(returndata, errorMessage);\n }\n }\n\n /**\n * @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 *\n * _Available since v4.3._\n */\n function verifyCallResult(\n bool success,\n bytes memory returndata,\n string memory errorMessage\n ) internal pure returns (bytes memory) {\n if (success) {\n return returndata;\n } else {\n _revert(returndata, errorMessage);\n }\n }\n\n function _revert(bytes memory returndata, string memory errorMessage)\n private\n pure\n {\n // Look for revert reason and bubble it up if present\n if (returndata.length > 0) {\n // The easiest way to bubble the revert reason is using memory via assembly\n /// @solidity memory-safe-assembly\n assembly {\n let returndata_size := mload(returndata)\n revert(add(32, returndata), returndata_size)\n }\n } else {\n revert(errorMessage);\n }\n }\n}\n"},"@openzeppelin/contracts/access/Ownable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (access/Ownable.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../utils/Context.sol\";\n\n/**\n * @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 *\n * By default, the owner account will be the one that deploys the contract. This\n * can later be changed with {transferOwnership}.\n *\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.\n */\nabstract contract Ownable is Context {\n address private _owner;\n\n event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\n\n /**\n * @dev Initializes the contract setting the deployer as the initial owner.\n */\n constructor() {\n _transferOwnership(_msgSender());\n }\n\n /**\n * @dev Returns the address of the current owner.\n */\n function owner() public view virtual returns (address) {\n return _owner;\n }\n\n /**\n * @dev Throws if called by any account other than the owner.\n */\n modifier onlyOwner() {\n require(owner() == _msgSender(), \"Ownable: caller is not the owner\");\n _;\n }\n\n /**\n * @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 *\n * NOTE: Renouncing ownership will leave the contract without an owner,\n * thereby removing any functionality that is only available to the owner.\n */\n function renounceOwnership() public virtual onlyOwner {\n _transferOwnership(address(0));\n }\n\n /**\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\n * Can only be called by the current owner.\n */\n function transferOwnership(address newOwner) public virtual onlyOwner {\n require(newOwner != address(0), \"Ownable: new owner is the zero address\");\n _transferOwnership(newOwner);\n }\n\n /**\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\n * Internal function without access restriction.\n */\n function _transferOwnership(address newOwner) internal virtual {\n address oldOwner = _owner;\n _owner = newOwner;\n emit OwnershipTransferred(oldOwner, newOwner);\n }\n}\n"},"@openzeppelin/contracts/token/ERC20/ERC20.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/ERC20.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./IERC20.sol\";\nimport \"./extensions/IERC20Metadata.sol\";\nimport \"../../utils/Context.sol\";\n\n/**\n * @dev Implementation of the {IERC20} interface.\n *\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 *\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 *\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 *\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 *\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}.\n */\ncontract ERC20 is Context, IERC20, IERC20Metadata {\n mapping(address => uint256) private _balances;\n\n mapping(address => mapping(address => uint256)) private _allowances;\n\n uint256 private _totalSupply;\n\n string private _name;\n string private _symbol;\n\n /**\n * @dev Sets the values for {name} and {symbol}.\n *\n * The default value of {decimals} is 18. To select a different value for\n * {decimals} you should overload it.\n *\n * All two of these values are immutable: they can only be set once during\n * construction.\n */\n constructor(string memory name_, string memory symbol_) {\n _name = name_;\n _symbol = symbol_;\n }\n\n /**\n * @dev Returns the name of the token.\n */\n function name() public view virtual override returns (string memory) {\n return _name;\n }\n\n /**\n * @dev Returns the symbol of the token, usually a shorter version of the\n * name.\n */\n function symbol() public view virtual override returns (string memory) {\n return _symbol;\n }\n\n /**\n * @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 *\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 *\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}.\n */\n function decimals() public view virtual override returns (uint8) {\n return 18;\n }\n\n /**\n * @dev See {IERC20-totalSupply}.\n */\n function totalSupply() public view virtual override returns (uint256) {\n return _totalSupply;\n }\n\n /**\n * @dev See {IERC20-balanceOf}.\n */\n function balanceOf(address account) public view virtual override returns (uint256) {\n return _balances[account];\n }\n\n /**\n * @dev See {IERC20-transfer}.\n *\n * Requirements:\n *\n * - `to` cannot be the zero address.\n * - the caller must have a balance of at least `amount`.\n */\n function transfer(address to, uint256 amount) public virtual override returns (bool) {\n address owner = _msgSender();\n _transfer(owner, to, amount);\n return true;\n }\n\n /**\n * @dev See {IERC20-allowance}.\n */\n function allowance(address owner, address spender) public view virtual override returns (uint256) {\n return _allowances[owner][spender];\n }\n\n /**\n * @dev See {IERC20-approve}.\n *\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 *\n * Requirements:\n *\n * - `spender` cannot be the zero address.\n */\n function approve(address spender, uint256 amount) public virtual override returns (bool) {\n address owner = _msgSender();\n _approve(owner, spender, amount);\n return true;\n }\n\n /**\n * @dev See {IERC20-transferFrom}.\n *\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 *\n * NOTE: Does not update the allowance if the current allowance\n * is the maximum `uint256`.\n *\n * Requirements:\n *\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`.\n */\n function transferFrom(\n address from,\n address to,\n uint256 amount\n ) public virtual override returns (bool) {\n address spender = _msgSender();\n _spendAllowance(from, spender, amount);\n _transfer(from, to, amount);\n return true;\n }\n\n /**\n * @dev Atomically increases the allowance granted to `spender` by the caller.\n *\n * This is an alternative to {approve} that can be used as a mitigation for\n * problems described in {IERC20-approve}.\n *\n * Emits an {Approval} event indicating the updated allowance.\n *\n * Requirements:\n *\n * - `spender` cannot be the zero address.\n */\n function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {\n address owner = _msgSender();\n _approve(owner, spender, allowance(owner, spender) + addedValue);\n return true;\n }\n\n /**\n * @dev Atomically decreases the allowance granted to `spender` by the caller.\n *\n * This is an alternative to {approve} that can be used as a mitigation for\n * problems described in {IERC20-approve}.\n *\n * Emits an {Approval} event indicating the updated allowance.\n *\n * Requirements:\n *\n * - `spender` cannot be the zero address.\n * - `spender` must have allowance for the caller of at least\n * `subtractedValue`.\n */\n function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {\n address owner = _msgSender();\n uint256 currentAllowance = allowance(owner, spender);\n require(currentAllowance >= subtractedValue, \"ERC20: decreased allowance below zero\");\n unchecked {\n _approve(owner, spender, currentAllowance - subtractedValue);\n }\n\n return true;\n }\n\n /**\n * @dev Moves `amount` of tokens from `sender` to `recipient`.\n *\n * This internal function is equivalent to {transfer}, and can be used to\n * e.g. implement automatic token fees, slashing mechanisms, etc.\n *\n * Emits a {Transfer} event.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `from` must have a balance of at least `amount`.\n */\n function _transfer(\n address from,\n address to,\n uint256 amount\n ) internal virtual {\n require(from != address(0), \"ERC20: transfer from the zero address\");\n require(to != address(0), \"ERC20: transfer to the zero address\");\n\n _beforeTokenTransfer(from, to, amount);\n\n uint256 fromBalance = _balances[from];\n require(fromBalance >= amount, \"ERC20: transfer amount exceeds balance\");\n unchecked {\n _balances[from] = fromBalance - amount;\n }\n _balances[to] += amount;\n\n emit Transfer(from, to, amount);\n\n _afterTokenTransfer(from, to, amount);\n }\n\n /** @dev Creates `amount` tokens and assigns them to `account`, increasing\n * the total supply.\n *\n * Emits a {Transfer} event with `from` set to the zero address.\n *\n * Requirements:\n *\n * - `account` cannot be the zero address.\n */\n function _mint(address account, uint256 amount) internal virtual {\n require(account != address(0), \"ERC20: mint to the zero address\");\n\n _beforeTokenTransfer(address(0), account, amount);\n\n _totalSupply += amount;\n _balances[account] += amount;\n emit Transfer(address(0), account, amount);\n\n _afterTokenTransfer(address(0), account, amount);\n }\n\n /**\n * @dev Destroys `amount` tokens from `account`, reducing the\n * total supply.\n *\n * Emits a {Transfer} event with `to` set to the zero address.\n *\n * Requirements:\n *\n * - `account` cannot be the zero address.\n * - `account` must have at least `amount` tokens.\n */\n function _burn(address account, uint256 amount) internal virtual {\n require(account != address(0), \"ERC20: burn from the zero address\");\n\n _beforeTokenTransfer(account, address(0), amount);\n\n uint256 accountBalance = _balances[account];\n require(accountBalance >= amount, \"ERC20: burn amount exceeds balance\");\n unchecked {\n _balances[account] = accountBalance - amount;\n }\n _totalSupply -= amount;\n\n emit Transfer(account, address(0), amount);\n\n _afterTokenTransfer(account, address(0), amount);\n }\n\n /**\n * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.\n *\n * This internal function is equivalent to `approve`, and can be used to\n * e.g. set automatic allowances for certain subsystems, etc.\n *\n * Emits an {Approval} event.\n *\n * Requirements:\n *\n * - `owner` cannot be the zero address.\n * - `spender` cannot be the zero address.\n */\n function _approve(\n address owner,\n address spender,\n uint256 amount\n ) internal virtual {\n require(owner != address(0), \"ERC20: approve from the zero address\");\n require(spender != address(0), \"ERC20: approve to the zero address\");\n\n _allowances[owner][spender] = amount;\n emit Approval(owner, spender, amount);\n }\n\n /**\n * @dev Updates `owner` s allowance for `spender` based on spent `amount`.\n *\n * Does not update the allowance amount in case of infinite allowance.\n * Revert if not enough allowance is available.\n *\n * Might emit an {Approval} event.\n */\n function _spendAllowance(\n address owner,\n address spender,\n uint256 amount\n ) internal virtual {\n uint256 currentAllowance = allowance(owner, spender);\n if (currentAllowance != type(uint256).max) {\n require(currentAllowance >= amount, \"ERC20: insufficient allowance\");\n unchecked {\n _approve(owner, spender, currentAllowance - amount);\n }\n }\n }\n\n /**\n * @dev Hook that is called before any transfer of tokens. This includes\n * minting and burning.\n *\n * Calling conditions:\n *\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 *\n * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\n */\n function _beforeTokenTransfer(\n address from,\n address to,\n uint256 amount\n ) internal virtual {}\n\n /**\n * @dev Hook that is called after any transfer of tokens. This includes\n * minting and burning.\n *\n * Calling conditions:\n *\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 *\n * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\n */\n function _afterTokenTransfer(\n address from,\n address to,\n uint256 amount\n ) internal virtual {}\n}\n"},"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../IERC20.sol\";\n\n/**\n * @dev Interface for the optional metadata functions from the ERC20 standard.\n *\n * _Available since v4.1._\n */\ninterface IERC20Metadata is IERC20 {\n /**\n * @dev Returns the name of the token.\n */\n function name() external view returns (string memory);\n\n /**\n * @dev Returns the symbol of the token.\n */\n function symbol() external view returns (string memory);\n\n /**\n * @dev Returns the decimals places of the token.\n */\n function decimals() external view returns (uint8);\n}\n"},"@openzeppelin/contracts/token/ERC20/IERC20.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Interface of the ERC20 standard as defined in the EIP.\n */\ninterface IERC20 {\n /**\n * @dev Emitted when `value` tokens are moved from one account (`from`) to\n * another (`to`).\n *\n * Note that `value` may be zero.\n */\n event Transfer(address indexed from, address indexed to, uint256 value);\n\n /**\n * @dev Emitted when the allowance of a `spender` for an `owner` is set by\n * a call to {approve}. `value` is the new allowance.\n */\n event Approval(address indexed owner, address indexed spender, uint256 value);\n\n /**\n * @dev Returns the amount of tokens in existence.\n */\n function totalSupply() external view returns (uint256);\n\n /**\n * @dev Returns the amount of tokens owned by `account`.\n */\n function balanceOf(address account) external view returns (uint256);\n\n /**\n * @dev Moves `amount` tokens from the caller's account to `to`.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * Emits a {Transfer} event.\n */\n function transfer(address to, uint256 amount) external returns (bool);\n\n /**\n * @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 *\n * This value changes when {approve} or {transferFrom} are called.\n */\n function allowance(address owner, address spender) external view returns (uint256);\n\n /**\n * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\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 *\n * Emits an {Approval} event.\n */\n function approve(address spender, uint256 amount) external returns (bool);\n\n /**\n * @dev Moves `amount` tokens from `from` to `to` using the\n * allowance mechanism. `amount` is then deducted from the caller's\n * allowance.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * Emits a {Transfer} event.\n */\n function transferFrom(\n address from,\n address to,\n uint256 amount\n ) external returns (bool);\n}\n"},"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (token/ERC20/utils/SafeERC20.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../IERC20.sol\";\nimport \"../../../utils/Address.sol\";\n\n/**\n * @title SafeERC20\n * @dev Wrappers around ERC20 operations that throw on failure (when the token\n * contract returns false). Tokens that return no value (and instead revert or\n * throw on failure) are also supported, non-reverting calls are assumed to be\n * successful.\n * To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,\n * which allows you to call the safe operations as `token.safeTransfer(...)`, etc.\n */\nlibrary SafeERC20 {\n using Address for address;\n\n function safeTransfer(\n IERC20 token,\n address to,\n uint256 value\n ) internal {\n _callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));\n }\n\n function safeTransferFrom(\n IERC20 token,\n address from,\n address to,\n uint256 value\n ) internal {\n _callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value));\n }\n\n /**\n * @dev Deprecated. This function has issues similar to the ones found in\n * {IERC20-approve}, and its usage is discouraged.\n *\n * Whenever possible, use {safeIncreaseAllowance} and\n * {safeDecreaseAllowance} instead.\n */\n function safeApprove(\n IERC20 token,\n address spender,\n uint256 value\n ) internal {\n // safeApprove should only be called when setting an initial allowance,\n // or when resetting it to zero. To increase and decrease it, use\n // 'safeIncreaseAllowance' and 'safeDecreaseAllowance'\n require(\n (value == 0) || (token.allowance(address(this), spender) == 0),\n \"SafeERC20: approve from non-zero to non-zero allowance\"\n );\n _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value));\n }\n\n function safeIncreaseAllowance(\n IERC20 token,\n address spender,\n uint256 value\n ) internal {\n uint256 newAllowance = token.allowance(address(this), spender) + value;\n _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));\n }\n\n function safeDecreaseAllowance(\n IERC20 token,\n address spender,\n uint256 value\n ) internal {\n unchecked {\n uint256 oldAllowance = token.allowance(address(this), spender);\n require(oldAllowance >= value, \"SafeERC20: decreased allowance below zero\");\n uint256 newAllowance = oldAllowance - value;\n _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));\n }\n }\n\n /**\n * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\n * on the return value: the return value is optional (but if data is returned, it must not be false).\n * @param token The token targeted by the call.\n * @param data The call data (encoded using abi.encode or one of its variants).\n */\n function _callOptionalReturn(IERC20 token, bytes memory data) private {\n // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since\n // we're implementing it ourselves. We use {Address.functionCall} to perform this call, which verifies that\n // the target address contains contract code and also asserts for success in the low-level call.\n\n bytes memory returndata = address(token).functionCall(data, \"SafeERC20: low-level call failed\");\n if (returndata.length > 0) {\n // Return data is optional\n require(abi.decode(returndata, (bool)), \"SafeERC20: ERC20 operation did not succeed\");\n }\n }\n}\n"},"@openzeppelin/contracts/token/ERC721/ERC721.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC721/ERC721.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./IERC721.sol\";\nimport \"./IERC721Receiver.sol\";\nimport \"./extensions/IERC721Metadata.sol\";\nimport \"../../utils/Address.sol\";\nimport \"../../utils/Context.sol\";\nimport \"../../utils/Strings.sol\";\nimport \"../../utils/introspection/ERC165.sol\";\n\n/**\n * @dev Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including\n * the Metadata extension, but not including the Enumerable extension, which is available separately as\n * {ERC721Enumerable}.\n */\ncontract ERC721 is Context, ERC165, IERC721, IERC721Metadata {\n using Address for address;\n using Strings for uint256;\n\n // Token name\n string private _name;\n\n // Token symbol\n string private _symbol;\n\n // Mapping from token ID to owner address\n mapping(uint256 => address) private _owners;\n\n // Mapping owner address to token count\n mapping(address => uint256) private _balances;\n\n // Mapping from token ID to approved address\n mapping(uint256 => address) private _tokenApprovals;\n\n // Mapping from owner to operator approvals\n mapping(address => mapping(address => bool)) private _operatorApprovals;\n\n /**\n * @dev Initializes the contract by setting a `name` and a `symbol` to the token collection.\n */\n constructor(string memory name_, string memory symbol_) {\n _name = name_;\n _symbol = symbol_;\n }\n\n /**\n * @dev See {IERC165-supportsInterface}.\n */\n function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165, IERC165) returns (bool) {\n return\n interfaceId == type(IERC721).interfaceId ||\n interfaceId == type(IERC721Metadata).interfaceId ||\n super.supportsInterface(interfaceId);\n }\n\n /**\n * @dev See {IERC721-balanceOf}.\n */\n function balanceOf(address owner) public view virtual override returns (uint256) {\n require(owner != address(0), \"ERC721: balance query for the zero address\");\n return _balances[owner];\n }\n\n /**\n * @dev See {IERC721-ownerOf}.\n */\n function ownerOf(uint256 tokenId) public view virtual override returns (address) {\n address owner = _owners[tokenId];\n require(owner != address(0), \"ERC721: owner query for nonexistent token\");\n return owner;\n }\n\n /**\n * @dev See {IERC721Metadata-name}.\n */\n function name() public view virtual override returns (string memory) {\n return _name;\n }\n\n /**\n * @dev See {IERC721Metadata-symbol}.\n */\n function symbol() public view virtual override returns (string memory) {\n return _symbol;\n }\n\n /**\n * @dev See {IERC721Metadata-tokenURI}.\n */\n function tokenURI(uint256 tokenId) public view virtual override returns (string memory) {\n require(_exists(tokenId), \"ERC721Metadata: URI query for nonexistent token\");\n\n string memory baseURI = _baseURI();\n return bytes(baseURI).length > 0 ? string(abi.encodePacked(baseURI, tokenId.toString())) : \"\";\n }\n\n /**\n * @dev Base URI for computing {tokenURI}. If set, the resulting URI for each\n * token will be the concatenation of the `baseURI` and the `tokenId`. Empty\n * by default, can be overridden in child contracts.\n */\n function _baseURI() internal view virtual returns (string memory) {\n return \"\";\n }\n\n /**\n * @dev See {IERC721-approve}.\n */\n function approve(address to, uint256 tokenId) public virtual override {\n address owner = ERC721.ownerOf(tokenId);\n require(to != owner, \"ERC721: approval to current owner\");\n\n require(\n _msgSender() == owner || isApprovedForAll(owner, _msgSender()),\n \"ERC721: approve caller is not owner nor approved for all\"\n );\n\n _approve(to, tokenId);\n }\n\n /**\n * @dev See {IERC721-getApproved}.\n */\n function getApproved(uint256 tokenId) public view virtual override returns (address) {\n require(_exists(tokenId), \"ERC721: approved query for nonexistent token\");\n\n return _tokenApprovals[tokenId];\n }\n\n /**\n * @dev See {IERC721-setApprovalForAll}.\n */\n function setApprovalForAll(address operator, bool approved) public virtual override {\n _setApprovalForAll(_msgSender(), operator, approved);\n }\n\n /**\n * @dev See {IERC721-isApprovedForAll}.\n */\n function isApprovedForAll(address owner, address operator) public view virtual override returns (bool) {\n return _operatorApprovals[owner][operator];\n }\n\n /**\n * @dev See {IERC721-transferFrom}.\n */\n function transferFrom(\n address from,\n address to,\n uint256 tokenId\n ) public virtual override {\n //solhint-disable-next-line max-line-length\n require(_isApprovedOrOwner(_msgSender(), tokenId), \"ERC721: transfer caller is not owner nor approved\");\n\n _transfer(from, to, tokenId);\n }\n\n /**\n * @dev See {IERC721-safeTransferFrom}.\n */\n function safeTransferFrom(\n address from,\n address to,\n uint256 tokenId\n ) public virtual override {\n safeTransferFrom(from, to, tokenId, \"\");\n }\n\n /**\n * @dev See {IERC721-safeTransferFrom}.\n */\n function safeTransferFrom(\n address from,\n address to,\n uint256 tokenId,\n bytes memory _data\n ) public virtual override {\n require(_isApprovedOrOwner(_msgSender(), tokenId), \"ERC721: transfer caller is not owner nor approved\");\n _safeTransfer(from, to, tokenId, _data);\n }\n\n /**\n * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n * are aware of the ERC721 protocol to prevent tokens from being forever locked.\n *\n * `_data` is additional data, it has no specified format and it is sent in call to `to`.\n *\n * This internal function is equivalent to {safeTransferFrom}, and can be used to e.g.\n * implement alternative mechanisms to perform token transfer, such as signature-based.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must exist and be owned by `from`.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function _safeTransfer(\n address from,\n address to,\n uint256 tokenId,\n bytes memory _data\n ) internal virtual {\n _transfer(from, to, tokenId);\n require(_checkOnERC721Received(from, to, tokenId, _data), \"ERC721: transfer to non ERC721Receiver implementer\");\n }\n\n /**\n * @dev Returns whether `tokenId` exists.\n *\n * Tokens can be managed by their owner or approved accounts via {approve} or {setApprovalForAll}.\n *\n * Tokens start existing when they are minted (`_mint`),\n * and stop existing when they are burned (`_burn`).\n */\n function _exists(uint256 tokenId) internal view virtual returns (bool) {\n return _owners[tokenId] != address(0);\n }\n\n /**\n * @dev Returns whether `spender` is allowed to manage `tokenId`.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n */\n function _isApprovedOrOwner(address spender, uint256 tokenId) internal view virtual returns (bool) {\n require(_exists(tokenId), \"ERC721: operator query for nonexistent token\");\n address owner = ERC721.ownerOf(tokenId);\n return (spender == owner || isApprovedForAll(owner, spender) || getApproved(tokenId) == spender);\n }\n\n /**\n * @dev Safely mints `tokenId` and transfers it to `to`.\n *\n * Requirements:\n *\n * - `tokenId` must not exist.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function _safeMint(address to, uint256 tokenId) internal virtual {\n _safeMint(to, tokenId, \"\");\n }\n\n /**\n * @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is\n * forwarded in {IERC721Receiver-onERC721Received} to contract recipients.\n */\n function _safeMint(\n address to,\n uint256 tokenId,\n bytes memory _data\n ) internal virtual {\n _mint(to, tokenId);\n require(\n _checkOnERC721Received(address(0), to, tokenId, _data),\n \"ERC721: transfer to non ERC721Receiver implementer\"\n );\n }\n\n /**\n * @dev Mints `tokenId` and transfers it to `to`.\n *\n * WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\n *\n * Requirements:\n *\n * - `tokenId` must not exist.\n * - `to` cannot be the zero address.\n *\n * Emits a {Transfer} event.\n */\n function _mint(address to, uint256 tokenId) internal virtual {\n require(to != address(0), \"ERC721: mint to the zero address\");\n require(!_exists(tokenId), \"ERC721: token already minted\");\n\n _beforeTokenTransfer(address(0), to, tokenId);\n\n _balances[to] += 1;\n _owners[tokenId] = to;\n\n emit Transfer(address(0), to, tokenId);\n\n _afterTokenTransfer(address(0), to, tokenId);\n }\n\n /**\n * @dev Destroys `tokenId`.\n * The approval is cleared when the token is burned.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n *\n * Emits a {Transfer} event.\n */\n function _burn(uint256 tokenId) internal virtual {\n address owner = ERC721.ownerOf(tokenId);\n\n _beforeTokenTransfer(owner, address(0), tokenId);\n\n // Clear approvals\n _approve(address(0), tokenId);\n\n _balances[owner] -= 1;\n delete _owners[tokenId];\n\n emit Transfer(owner, address(0), tokenId);\n\n _afterTokenTransfer(owner, address(0), tokenId);\n }\n\n /**\n * @dev Transfers `tokenId` from `from` to `to`.\n * As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\n *\n * Requirements:\n *\n * - `to` cannot be the zero address.\n * - `tokenId` token must be owned by `from`.\n *\n * Emits a {Transfer} event.\n */\n function _transfer(\n address from,\n address to,\n uint256 tokenId\n ) internal virtual {\n require(ERC721.ownerOf(tokenId) == from, \"ERC721: transfer from incorrect owner\");\n require(to != address(0), \"ERC721: transfer to the zero address\");\n\n _beforeTokenTransfer(from, to, tokenId);\n\n // Clear approvals from the previous owner\n _approve(address(0), tokenId);\n\n _balances[from] -= 1;\n _balances[to] += 1;\n _owners[tokenId] = to;\n\n emit Transfer(from, to, tokenId);\n\n _afterTokenTransfer(from, to, tokenId);\n }\n\n /**\n * @dev Approve `to` to operate on `tokenId`\n *\n * Emits a {Approval} event.\n */\n function _approve(address to, uint256 tokenId) internal virtual {\n _tokenApprovals[tokenId] = to;\n emit Approval(ERC721.ownerOf(tokenId), to, tokenId);\n }\n\n /**\n * @dev Approve `operator` to operate on all of `owner` tokens\n *\n * Emits a {ApprovalForAll} event.\n */\n function _setApprovalForAll(\n address owner,\n address operator,\n bool approved\n ) internal virtual {\n require(owner != operator, \"ERC721: approve to caller\");\n _operatorApprovals[owner][operator] = approved;\n emit ApprovalForAll(owner, operator, approved);\n }\n\n /**\n * @dev Internal function to invoke {IERC721Receiver-onERC721Received} on a target address.\n * The call is not executed if the target address is not a contract.\n *\n * @param from address representing the previous owner of the given token ID\n * @param to target address that will receive the tokens\n * @param tokenId uint256 ID of the token to be transferred\n * @param _data bytes optional data to send along with the call\n * @return bool whether the call correctly returned the expected magic value\n */\n function _checkOnERC721Received(\n address from,\n address to,\n uint256 tokenId,\n bytes memory _data\n ) private returns (bool) {\n if (to.isContract()) {\n try IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, _data) returns (bytes4 retval) {\n return retval == IERC721Receiver.onERC721Received.selector;\n } catch (bytes memory reason) {\n if (reason.length == 0) {\n revert(\"ERC721: transfer to non ERC721Receiver implementer\");\n } else {\n assembly {\n revert(add(32, reason), mload(reason))\n }\n }\n }\n } else {\n return true;\n }\n }\n\n /**\n * @dev Hook that is called before any token transfer. This includes minting\n * and burning.\n *\n * Calling conditions:\n *\n * - When `from` and `to` are both non-zero, ``from``'s `tokenId` will be\n * transferred to `to`.\n * - When `from` is zero, `tokenId` will be minted for `to`.\n * - When `to` is zero, ``from``'s `tokenId` will be burned.\n * - `from` and `to` are never both zero.\n *\n * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\n */\n function _beforeTokenTransfer(\n address from,\n address to,\n uint256 tokenId\n ) internal virtual {}\n\n /**\n * @dev Hook that is called after any transfer of tokens. This includes\n * minting and burning.\n *\n * Calling conditions:\n *\n * - when `from` and `to` are both non-zero.\n * - `from` and `to` are never both zero.\n *\n * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\n */\n function _afterTokenTransfer(\n address from,\n address to,\n uint256 tokenId\n ) internal virtual {}\n}\n"},"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (token/ERC721/extensions/ERC721URIStorage.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../ERC721.sol\";\n\n/**\n * @dev ERC721 token with storage based token URI management.\n */\nabstract contract ERC721URIStorage is ERC721 {\n using Strings for uint256;\n\n // Optional mapping for token URIs\n mapping(uint256 => string) private _tokenURIs;\n\n /**\n * @dev See {IERC721Metadata-tokenURI}.\n */\n function tokenURI(uint256 tokenId) public view virtual override returns (string memory) {\n require(_exists(tokenId), \"ERC721URIStorage: URI query for nonexistent token\");\n\n string memory _tokenURI = _tokenURIs[tokenId];\n string memory base = _baseURI();\n\n // If there is no base URI, return the token URI.\n if (bytes(base).length == 0) {\n return _tokenURI;\n }\n // If both are set, concatenate the baseURI and tokenURI (via abi.encodePacked).\n if (bytes(_tokenURI).length > 0) {\n return string(abi.encodePacked(base, _tokenURI));\n }\n\n return super.tokenURI(tokenId);\n }\n\n /**\n * @dev Sets `_tokenURI` as the tokenURI of `tokenId`.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n */\n function _setTokenURI(uint256 tokenId, string memory _tokenURI) internal virtual {\n require(_exists(tokenId), \"ERC721URIStorage: URI set of nonexistent token\");\n _tokenURIs[tokenId] = _tokenURI;\n }\n\n /**\n * @dev Destroys `tokenId`.\n * The approval is cleared when the token is burned.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n *\n * Emits a {Transfer} event.\n */\n function _burn(uint256 tokenId) internal virtual override {\n super._burn(tokenId);\n\n if (bytes(_tokenURIs[tokenId]).length != 0) {\n delete _tokenURIs[tokenId];\n }\n }\n}\n"},"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (token/ERC721/extensions/IERC721Metadata.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../IERC721.sol\";\n\n/**\n * @title ERC-721 Non-Fungible Token Standard, optional metadata extension\n * @dev See https://eips.ethereum.org/EIPS/eip-721\n */\ninterface IERC721Metadata is IERC721 {\n /**\n * @dev Returns the token collection name.\n */\n function name() external view returns (string memory);\n\n /**\n * @dev Returns the token collection symbol.\n */\n function symbol() external view returns (string memory);\n\n /**\n * @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token.\n */\n function tokenURI(uint256 tokenId) external view returns (string memory);\n}\n"},"@openzeppelin/contracts/token/ERC721/IERC721.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC721/IERC721.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../../utils/introspection/IERC165.sol\";\n\n/**\n * @dev Required interface of an ERC721 compliant contract.\n */\ninterface IERC721 is IERC165 {\n /**\n * @dev Emitted when `tokenId` token is transferred from `from` to `to`.\n */\n event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);\n\n /**\n * @dev Emitted when `owner` enables `approved` to manage the `tokenId` token.\n */\n event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);\n\n /**\n * @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\n */\n event ApprovalForAll(address indexed owner, address indexed operator, bool approved);\n\n /**\n * @dev Returns the number of tokens in ``owner``'s account.\n */\n function balanceOf(address owner) external view returns (uint256 balance);\n\n /**\n * @dev Returns the owner of the `tokenId` token.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n */\n function ownerOf(uint256 tokenId) external view returns (address owner);\n\n /**\n * @dev Safely transfers `tokenId` token from `from` to `to`.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must exist and be owned by `from`.\n * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function safeTransferFrom(\n address from,\n address to,\n uint256 tokenId,\n bytes calldata data\n ) external;\n\n /**\n * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n * are aware of the ERC721 protocol to prevent tokens from being forever locked.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must exist and be owned by `from`.\n * - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function safeTransferFrom(\n address from,\n address to,\n uint256 tokenId\n ) external;\n\n /**\n * @dev Transfers `tokenId` token from `from` to `to`.\n *\n * WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must be owned by `from`.\n * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n *\n * Emits a {Transfer} event.\n */\n function transferFrom(\n address from,\n address to,\n uint256 tokenId\n ) external;\n\n /**\n * @dev Gives permission to `to` to transfer `tokenId` token to another account.\n * The approval is cleared when the token is transferred.\n *\n * Only a single account can be approved at a time, so approving the zero address clears previous approvals.\n *\n * Requirements:\n *\n * - The caller must own the token or be an approved operator.\n * - `tokenId` must exist.\n *\n * Emits an {Approval} event.\n */\n function approve(address to, uint256 tokenId) external;\n\n /**\n * @dev Approve or remove `operator` as an operator for the caller.\n * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\n *\n * Requirements:\n *\n * - The `operator` cannot be the caller.\n *\n * Emits an {ApprovalForAll} event.\n */\n function setApprovalForAll(address operator, bool _approved) external;\n\n /**\n * @dev Returns the account approved for `tokenId` token.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n */\n function getApproved(uint256 tokenId) external view returns (address operator);\n\n /**\n * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\n *\n * See {setApprovalForAll}\n */\n function isApprovedForAll(address owner, address operator) external view returns (bool);\n}\n"},"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC721/IERC721Receiver.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @title ERC721 token receiver interface\n * @dev Interface for any contract that wants to support safeTransfers\n * from ERC721 asset contracts.\n */\ninterface IERC721Receiver {\n /**\n * @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\n * by `operator` from `from`, this function is called.\n *\n * It must return its Solidity selector to confirm the token transfer.\n * If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted.\n *\n * The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`.\n */\n function onERC721Received(\n address operator,\n address from,\n uint256 tokenId,\n bytes calldata data\n ) external returns (bytes4);\n}\n"},"@openzeppelin/contracts/utils/Address.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.5.0) (utils/Address.sol)\n\npragma solidity ^0.8.1;\n\n/**\n * @dev Collection of functions related to the address type\n */\nlibrary Address {\n /**\n * @dev Returns true if `account` is a contract.\n *\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 *\n * Among others, `isContract` will return false for the following\n * types of addresses:\n *\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 *\n * [IMPORTANT]\n * ====\n * You shouldn't rely on `isContract` to protect against flash loan attacks!\n *\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 * ====\n */\n function isContract(address account) internal view returns (bool) {\n // This method relies on extcodesize/address.code.length, which returns 0\n // for contracts in construction, since the code is only stored at the end\n // of the constructor execution.\n\n return account.code.length > 0;\n }\n\n /**\n * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n * `recipient`, forwarding all available gas and reverting on errors.\n *\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 *\n * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n *\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].\n */\n function sendValue(address payable recipient, uint256 amount) internal {\n require(address(this).balance >= amount, \"Address: insufficient balance\");\n\n (bool success, ) = recipient.call{value: amount}(\"\");\n require(success, \"Address: unable to send value, recipient may have reverted\");\n }\n\n /**\n * @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 *\n * If `target` reverts with a revert reason, it is bubbled up by this\n * function (like regular Solidity function calls).\n *\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 *\n * Requirements:\n *\n * - `target` must be a contract.\n * - calling `target` with `data` must not revert.\n *\n * _Available since v3.1._\n */\n function functionCall(address target, bytes memory data) internal returns (bytes memory) {\n return functionCall(target, data, \"Address: low-level call failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n * `errorMessage` as a fallback revert reason when `target` reverts.\n *\n * _Available since v3.1._\n */\n function functionCall(\n address target,\n bytes memory data,\n string memory errorMessage\n ) internal returns (bytes memory) {\n return functionCallWithValue(target, data, 0, errorMessage);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but also transferring `value` wei to `target`.\n *\n * Requirements:\n *\n * - the calling contract must have an ETH balance of at least `value`.\n * - the called Solidity function must be `payable`.\n *\n * _Available since v3.1._\n */\n function functionCallWithValue(\n address target,\n bytes memory data,\n uint256 value\n ) internal returns (bytes memory) {\n return functionCallWithValue(target, data, value, \"Address: low-level call with value failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n * with `errorMessage` as a fallback revert reason when `target` reverts.\n *\n * _Available since v3.1._\n */\n function functionCallWithValue(\n address target,\n bytes memory data,\n uint256 value,\n string memory errorMessage\n ) internal returns (bytes memory) {\n require(address(this).balance >= value, \"Address: insufficient balance for call\");\n require(isContract(target), \"Address: call to non-contract\");\n\n (bool success, bytes memory returndata) = target.call{value: value}(data);\n return verifyCallResult(success, returndata, errorMessage);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but performing a static call.\n *\n * _Available since v3.3._\n */\n function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\n return functionStaticCall(target, data, \"Address: low-level static call failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n * but performing a static call.\n *\n * _Available since v3.3._\n */\n function functionStaticCall(\n address target,\n bytes memory data,\n string memory errorMessage\n ) internal view returns (bytes memory) {\n require(isContract(target), \"Address: static call to non-contract\");\n\n (bool success, bytes memory returndata) = target.staticcall(data);\n return verifyCallResult(success, returndata, errorMessage);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but performing a delegate call.\n *\n * _Available since v3.4._\n */\n function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\n return functionDelegateCall(target, data, \"Address: low-level delegate call failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n * but performing a delegate call.\n *\n * _Available since v3.4._\n */\n function functionDelegateCall(\n address target,\n bytes memory data,\n string memory errorMessage\n ) internal returns (bytes memory) {\n require(isContract(target), \"Address: delegate call to non-contract\");\n\n (bool success, bytes memory returndata) = target.delegatecall(data);\n return verifyCallResult(success, returndata, errorMessage);\n }\n\n /**\n * @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 *\n * _Available since v4.3._\n */\n function verifyCallResult(\n bool success,\n bytes memory returndata,\n string memory errorMessage\n ) internal pure returns (bytes memory) {\n if (success) {\n return returndata;\n } else {\n // Look for revert reason and bubble it up if present\n if (returndata.length > 0) {\n // The easiest way to bubble the revert reason is using memory via assembly\n\n assembly {\n let returndata_size := mload(returndata)\n revert(add(32, returndata), returndata_size)\n }\n } else {\n revert(errorMessage);\n }\n }\n }\n}\n"},"@openzeppelin/contracts/utils/Context.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @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 *\n * This contract is only required for intermediate, library-like contracts.\n */\nabstract contract Context {\n function _msgSender() internal view virtual returns (address) {\n return msg.sender;\n }\n\n function _msgData() internal view virtual returns (bytes calldata) {\n return msg.data;\n }\n}\n"},"@openzeppelin/contracts/utils/Counters.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (utils/Counters.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @title Counters\n * @author Matt Condon (@shrugs)\n * @dev Provides counters that can only be incremented, decremented or reset. This can be used e.g. to track the number\n * of elements in a mapping, issuing ERC721 ids, or counting request ids.\n *\n * Include with `using Counters for Counters.Counter;`\n */\nlibrary Counters {\n struct Counter {\n // This variable should never be directly accessed by users of the library: interactions must be restricted to\n // the library's function. As of Solidity v0.5.2, this cannot be enforced, though there is a proposal to add\n // this feature: see https://github.com/ethereum/solidity/issues/4637\n uint256 _value; // default: 0\n }\n\n function current(Counter storage counter) internal view returns (uint256) {\n return counter._value;\n }\n\n function increment(Counter storage counter) internal {\n unchecked {\n counter._value += 1;\n }\n }\n\n function decrement(Counter storage counter) internal {\n uint256 value = counter._value;\n require(value > 0, \"Counter: decrement overflow\");\n unchecked {\n counter._value = value - 1;\n }\n }\n\n function reset(Counter storage counter) internal {\n counter._value = 0;\n }\n}\n"},"@openzeppelin/contracts/utils/introspection/ERC165.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (utils/introspection/ERC165.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./IERC165.sol\";\n\n/**\n * @dev Implementation of the {IERC165} interface.\n *\n * Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check\n * for the additional interface id that will be supported. For example:\n *\n * ```solidity\n * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n * return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\n * }\n * ```\n *\n * Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.\n */\nabstract contract ERC165 is IERC165 {\n /**\n * @dev See {IERC165-supportsInterface}.\n */\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n return interfaceId == type(IERC165).interfaceId;\n }\n}\n"},"@openzeppelin/contracts/utils/introspection/IERC165.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Interface of the ERC165 standard, as defined in the\n * https://eips.ethereum.org/EIPS/eip-165[EIP].\n *\n * Implementers can declare support of contract interfaces, which can then be\n * queried by others ({ERC165Checker}).\n *\n * For an implementation, see {ERC165}.\n */\ninterface IERC165 {\n /**\n * @dev Returns true if this contract implements the interface defined by\n * `interfaceId`. See the corresponding\n * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n * to learn more about how these ids are created.\n *\n * This function call must use less than 30 000 gas.\n */\n function supportsInterface(bytes4 interfaceId) external view returns (bool);\n}\n"},"@openzeppelin/contracts/utils/Strings.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (utils/Strings.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev String operations.\n */\nlibrary Strings {\n bytes16 private constant _HEX_SYMBOLS = \"0123456789abcdef\";\n\n /**\n * @dev Converts a `uint256` to its ASCII `string` decimal representation.\n */\n function toString(uint256 value) internal pure returns (string memory) {\n // Inspired by OraclizeAPI's implementation - MIT licence\n // https://github.com/oraclize/ethereum-api/blob/b42146b063c7d6ee1358846c198246239e9360e8/oraclizeAPI_0.4.25.sol\n\n if (value == 0) {\n return \"0\";\n }\n uint256 temp = value;\n uint256 digits;\n while (temp != 0) {\n digits++;\n temp /= 10;\n }\n bytes memory buffer = new bytes(digits);\n while (value != 0) {\n digits -= 1;\n buffer[digits] = bytes1(uint8(48 + uint256(value % 10)));\n value /= 10;\n }\n return string(buffer);\n }\n\n /**\n * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation.\n */\n function toHexString(uint256 value) internal pure returns (string memory) {\n if (value == 0) {\n return \"0x00\";\n }\n uint256 temp = value;\n uint256 length = 0;\n while (temp != 0) {\n length++;\n temp >>= 8;\n }\n return toHexString(value, length);\n }\n\n /**\n * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length.\n */\n function toHexString(uint256 value, uint256 length) internal pure returns (string memory) {\n bytes memory buffer = new bytes(2 * length + 2);\n buffer[0] = \"0\";\n buffer[1] = \"x\";\n for (uint256 i = 2 * length + 1; i > 1; --i) {\n buffer[i] = _HEX_SYMBOLS[value & 0xf];\n value >>= 4;\n }\n require(value == 0, \"Strings: hex length insufficient\");\n return string(buffer);\n }\n}\n"},"contracts/Caller.sol":{"content":"// SPDX-License-Identifier: Unlicense\npragma solidity ^0.8.0;\n\ninterface IGreeter2 {\n function callGreeter() external view returns (string memory);\n function setGreet(string memory greeting) external;\n}\n\ncontract GCaller {\n address public myAddress;\n address public callAddress;\n string private defaultGreeting = \"Hi from Caller\";\n\n constructor(address _callAddress) {\n myAddress = address(this);\n callAddress = _callAddress;\n }\n\n function newSetGreet(string memory _greeting) external {\n bytes memory greetingBytes = bytes(_greeting);\n string memory greeting = (greetingBytes.length > 0) ? _greeting : defaultGreeting;\n IGreeter2(callAddress).setGreet(greeting);\n }\n\n function newCallGreeter() external view returns (string memory) {\n return IGreeter2(callAddress).callGreeter();\n }\n}"},"contracts/Greeter.sol":{"content":"//SPDX-License-Identifier: Unlicense\npragma solidity ^0.8.0;\n\ncontract Greeter {\n string private greeting;\n\n event SetGreeting(string greeting);\n\n constructor(string memory _greeting) {\n greeting = _greeting;\n }\n\n function greet() public view returns (string memory) {\n return greeting;\n }\n\n function setGreeting(string memory _greeting) public {\n greeting = _greeting;\n\n emit SetGreeting(_greeting);\n }\n}"},"contracts/L1.sol":{"content":"//SPDX-License-Identifier: Unlicense\npragma solidity ^0.8.0;\n\nimport \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\n\ncontract L1 is ERC20 {\n uint256 constant _initial_supply = 1000 * (10 ** 18);\n\n constructor(address _recipient) public ERC20(\"L1 ERC20 token\", \"L1\") {\n _mint(_recipient, _initial_supply);\n }\n}"},"contracts/L2.sol":{"content":"//SPDX-License-Identifier: Unlicense\npragma solidity ^0.8.0;\n\nimport \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\n\ncontract L2 is ERC20 {\n uint256 constant _initial_supply = 1000 * (10 ** 18);\n\n constructor() ERC20(\"L2 ERC20 token\", \"L2\") {\n _mint(msg.sender, _initial_supply);\n }\n}"},"contracts/Middle.sol":{"content":"// SPDX-License-Identifier: Unlicense\npragma solidity ^0.8.0;\n\ninterface IGreeter {\n function greet() external view returns (string memory);\n function setGreeting(string memory) external;\n}\n\ncontract Middle {\n address public myAddress;\n\n constructor(address _myAddress) {\n myAddress = _myAddress;\n }\n\n function setGreet(string memory newGreeting) external {\n IGreeter(myAddress).setGreeting(newGreeting);\n }\n\n function callGreeter() external view returns (string memory) {\n return IGreeter(myAddress).greet();\n }\n}"},"contracts/MultiTransfer.sol":{"content":"// File @openzeppelin/contracts/token/ERC20/IERC20.sol@v4.6.0\n\nimport \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\";\nimport \"@openzeppelin/contracts/utils/Address.sol\";\n\n// SPDX-License-Identifier: MIT\npragma solidity ^0.8.16;\n\n\ncontract TokenF2L2 {\n // Declare the using directive on the contract scope\n using SafeERC20 for IERC20;\n using Address for address payable;\n\n //Be able to receive any funds to the contract\n receive() external payable {\n pay();\n }\n\n function pay() public payable {\n emit Paid(msg.sender, msg.value, block.timestamp);\n }\n\n function getBalance() public view returns (uint) {\n return address(this).balance;\n }\n\n address public owner;\n\n constructor(address _owner) {\n owner = _owner;\n }\n\n event Paid(address indexed _from, uint _amount, uint _timestamp);\n\n modifier onlyOwner() {\n require(owner == msg.sender, \"You are not the owner\");\n _; // continue\n }\n\n function multiTransfer(\n address[] memory _recivers,\n address[] memory _tokenAddresses,\n uint256[] memory _tokenAmounts\n ) public payable onlyOwner {\n // Check that the length of the tokenAddresses array is equal to the length of the tokenAmounts array\n require(_tokenAddresses.length == _tokenAmounts.length, \"Arrays must have the same length\");\n require(_tokenAddresses.length == _recivers.length, \"Arrays must have the same length\");\n\n // Iterate over the arrays and transfer the specified amount of each token\n for (uint i = 0; i < _tokenAddresses.length; i++) {\n if (_tokenAddresses[i] == address(0)) {\n payable(_recivers[i]).sendValue(_tokenAmounts[i]);\n } else {\n // Cast the token address to an IERC20 contract to access its safeTransfer function\n IERC20 token = IERC20(_tokenAddresses[i]);\n\n // Attempt to transfer the specified amount of the token\n token.safeTransfer(_recivers[i], _tokenAmounts[i]);\n }\n }\n }\n}\n"},"contracts/MyERC20.sol":{"content":"// SPDX-License-Identifier: UNLICENSED\n\npragma solidity ^0.8.0;\n\nimport \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\n\ncontract MyERC20 is ERC20 {\n uint8 private _decimals;\n\n constructor(\n string memory name_,\n string memory symbol_,\n uint8 decimals_\n ) ERC20(name_, symbol_) {\n _decimals = decimals_;\n }\n\n function mint(address _to, uint256 _amount) public returns (bool) {\n _mint(_to, _amount);\n return true;\n }\n\n function decimals() public view override returns (uint8) {\n return _decimals;\n }\n}"},"contracts/MyNFT.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\nimport \"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol\";\nimport \"@openzeppelin/contracts/utils/Counters.sol\";\nimport \"@openzeppelin/contracts/access/Ownable.sol\";\n\ncontract MyNFT is ERC721URIStorage, Ownable {\n using Counters for Counters.Counter;\n Counters.Counter private _tokenIds;\n\n constructor() ERC721(\"MyNFT\", \"NFT\") {}\n\n function mintNFT(address recipient, string memory tokenURI) public onlyOwner returns (uint256) {\n _tokenIds.increment();\n\n uint256 newItemId = _tokenIds.current();\n _mint(recipient, newItemId);\n _setTokenURI(newItemId, tokenURI);\n\n return newItemId;\n }\n}\n"},"contracts/MyPaymaster.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\n\nimport {IPaymaster, ExecutionResult, PAYMASTER_VALIDATION_SUCCESS_MAGIC} from \"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymaster.sol\";\nimport {IPaymasterFlow} from \"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymasterFlow.sol\";\nimport {TransactionHelper, Transaction} from \"@matterlabs/zksync-contracts/l2/system-contracts/libraries/TransactionHelper.sol\";\n\nimport \"@matterlabs/zksync-contracts/l2/system-contracts/Constants.sol\";\n\ncontract MyPaymaster is IPaymaster {\n uint256 constant PRICE_FOR_PAYING_FEES = 1;\n\n address public allowedToken;\n\n modifier onlyBootloader() {\n require(\n msg.sender == BOOTLOADER_FORMAL_ADDRESS,\n \"Only bootloader can call this method\"\n );\n // Continure execution if called from the bootloader.\n _;\n }\n\n constructor(address _erc20) {\n allowedToken = _erc20;\n }\n\n function validateAndPayForPaymasterTransaction(\n bytes32,\n bytes32,\n Transaction calldata _transaction\n ) external payable returns (bytes4 magic, bytes memory context) {\n // By default we consider the transaction as accepted.\n magic = PAYMASTER_VALIDATION_SUCCESS_MAGIC;\n require(\n _transaction.paymasterInput.length >= 4,\n \"The standard paymaster input must be at least 4 bytes long\"\n );\n\n bytes4 paymasterInputSelector = bytes4(\n _transaction.paymasterInput[0:4]\n );\n if (paymasterInputSelector == IPaymasterFlow.approvalBased.selector) {\n // While the transaction data consists of address, uint256 and bytes data,\n // the data is not needed for this paymaster\n (address token, uint256 amount, bytes memory data) = abi.decode(\n _transaction.paymasterInput[4:],\n (address, uint256, bytes)\n );\n\n // Verify if token is the correct one\n require(token == allowedToken, \"Invalid token\");\n\n // We verify that the user has provided enough allowance\n address userAddress = address(uint160(_transaction.from));\n\n address thisAddress = address(this);\n\n uint256 providedAllowance = IERC20(token).allowance(\n userAddress,\n thisAddress\n );\n require(\n providedAllowance >= PRICE_FOR_PAYING_FEES,\n \"Min allowance too low\"\n );\n\n // Note, that while the minimal amount of ETH needed is tx.gasPrice * tx.gasLimit,\n // neither paymaster nor account are allowed to access this context variable.\n uint256 requiredETH = _transaction.gasLimit *\n _transaction.maxFeePerGas;\n\n try\n IERC20(token).transferFrom(userAddress, thisAddress, amount)\n {} catch (bytes memory revertReason) {\n // If the revert reason is empty or represented by just a function selector,\n // we replace the error with a more user-friendly message\n if (revertReason.length <= 4) {\n revert(\"Failed to transferFrom from users' account\");\n } else {\n assembly {\n revert(add(0x20, revertReason), mload(revertReason))\n }\n }\n }\n\n // The bootloader never returns any data, so it can safely be ignored here.\n (bool success, ) = payable(BOOTLOADER_FORMAL_ADDRESS).call{\n value: requiredETH\n }(\"\");\n require(success, \"Failed to transfer funds to the bootloader\");\n } else {\n revert(\"Unsupported paymaster flow\");\n }\n }\n\n function postTransaction(\n bytes calldata _context,\n Transaction calldata _transaction,\n bytes32,\n bytes32,\n ExecutionResult _txResult,\n uint256 _maxRefundedGas\n ) external payable override {\n // Refunds are not supported yet.\n }\n\n receive() external payable {}\n}\n"},"contracts/Root.sol":{"content":"//SPDX-License-Identifier: Unlicense\npragma solidity ^0.8.0;\n\ncontract Root {\n string private greeting = \"Hi from Root\";\n\n event SetGreeting(string greeting);\n\n constructor(string memory _greeting) {\n greeting = _greeting;\n }\n\n function greet() public view returns (string memory) {\n return greeting;\n }\n\n function setGreeting(string memory _greeting) public {\n greeting = _greeting;\n\n emit SetGreeting(_greeting);\n }\n}"}},"settings":{"optimizer":{"enabled":true,"mode":"3"},"viaIR":true,"outputSelection":{"*":{"*":["abi","evm.methodIdentifiers","metadata"],"":["ast"]}}}},"output":{"errors":[{"component":"general","errorCode":"2519","formattedMessage":"Warning: This declaration shadows an existing declaration.\n --> @matterlabs/zksync-contracts/l2/system-contracts/libraries/Utils.sol:85:9:\n |\n85 | uint256 bytecodeLenInWords = _bytecode.length / 32;\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^\nNote: The shadowed declaration is here:\n --> @matterlabs/zksync-contracts/l2/system-contracts/libraries/Utils.sol:43:5:\n |\n43 | function bytecodeLenInWords(bytes32 _bytecodeHash) internal pure returns (uint256 codeLengthInWords) {\n | ^ (Relevant source part starts here and spans across multiple lines).\n\n","message":"This declaration shadows an existing declaration.","severity":"warning","sourceLocation":{"file":"@matterlabs/zksync-contracts/l2/system-contracts/libraries/Utils.sol","start":3763,"end":3789},"type":"Warning"},{"component":"general","errorCode":"2462","formattedMessage":"Warning: Visibility for constructor is ignored. If you want the contract to be non-deployable, making it \"abstract\" is sufficient.\n --> contracts/L1.sol:9:5:\n |\n9 | constructor(address _recipient) public ERC20(\"L1 ERC20 token\", \"L1\") {\n | ^ (Relevant source part starts here and spans across multiple lines).\n\n","message":"Visibility for constructor is ignored. If you want the contract to be non-deployable, making it \"abstract\" is sufficient.","severity":"warning","sourceLocation":{"file":"contracts/L1.sol","start":205,"end":325},"type":"Warning"},{"component":"general","errorCode":"5667","formattedMessage":"Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.\n --> contracts/MyPaymaster.sol:34:47:\n |\n34 | ) external payable returns (bytes4 magic, bytes memory context) {\n | ^^^^^^^^^^^^^^^^^^^^\n\n","message":"Unused function parameter. Remove or comment out the variable name to silence this warning.","severity":"warning","sourceLocation":{"file":"contracts/MyPaymaster.sol","start":1196,"end":1216},"type":"Warning"},{"component":"general","errorCode":"2072","formattedMessage":"Warning: Unused local variable.\n --> contracts/MyPaymaster.sol:48:45:\n |\n48 | (address token, uint256 amount, bytes memory data) = abi.decode(\n | ^^^^^^^^^^^^^^^^^\n\n","message":"Unused local variable.","severity":"warning","sourceLocation":{"file":"contracts/MyPaymaster.sol","start":1861,"end":1878},"type":"Warning"},{"component":"general","errorCode":null,"formattedMessage":"\n┌──────────────────────────────────────────────────────────────────────────────────────────────────┐\n│ Warning: You are checking for 'block.timestamp' in your code, which might lead to unexpected │\n│ behavior. Due to the nature of the zkEVM, the timestamp of a block actually refers to the │\n│ timestamp of the whole batch that will be sent to L1 (meaning, the timestamp of this batch │\n│ started being processed). │\n│ We will provide a custom method to access the L2 block timestamp from the smart contract code in │\n│ the future. │\n└──────────────────────────────────────────────────────────────────────────────────────────────────┘\n--> contracts/MultiTransfer.sol\n","message":"\n┌──────────────────────────────────────────────────────────────────────────────────────────────────┐\n│ Warning: You are checking for 'block.timestamp' in your code, which might lead to unexpected │\n│ behavior. Due to the nature of the zkEVM, the timestamp of a block actually refers to the │\n│ timestamp of the whole batch that will be sent to L1 (meaning, the timestamp of this batch │\n│ started being processed). │\n│ We will provide a custom method to access the L2 block timestamp from the smart contract code in │\n│ the future. │\n└──────────────────────────────────────────────────────────────────────────────────────────────────┘","severity":"warning","sourceLocation":{"file":"45","start":574,"end":589},"type":"Warning"}],"version":"0.8.18","long_version":"0.8.18+commit.87f61d96.Linux.g++","zk_version":"1.3.9","sources":{"@matterlabs/zksync-contracts/l2/system-contracts/BootloaderUtilities.sol":{"id":0,"ast":{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/BootloaderUtilities.sol","exportedSymbols":{"ADDRESS_MASK":[2520],"Address":[5645],"BOOTLOADER_FORMAL_ADDRESS":[958],"BootloaderUtilities":[905],"CALLFLAGS_CALL_ADDRESS":[3261],"CODE_ADDRESS_CALL_ADDRESS":[3096],"CalldataForwardingMode":[3405],"EIP_1559_TX_TYPE":[3710],"EIP_2930_TX_TYPE":[3706],"EIP_712_TX_TYPE":[3698],"ETH_TOKEN_SYSTEM_CONTRACT":[1051],"EVENT_INITIALIZE_ADDRESS":[3283],"EVENT_WRITE_ADDRESS":[3294],"EfficientCall":[2170],"GET_EXTRA_ABI_DATA_ADDRESS":[3371],"Global":[2539],"IBootloaderUtilities":[1180],"IContractDeployer":[1327],"IERC20":[4998],"IERC20Permit":[5034],"INCREMENT_TX_COUNTER_CALL_ADDRESS":[3239],"IPaymasterFlow":[1634],"ISystemContract":[3068],"KECCAK256_SYSTEM_CONTRACT":[1059],"LEGACY_TX_TYPE":[3702],"LOAD_CALLDATA_INTO_ACTIVE_PTR_CALL_ADDRESS":[3305],"LOAD_LATEST_RETURNDATA_INTO_ACTIVE_PTR_CALL_ADDRESS":[3316],"MAX_SYSTEM_CONTRACT_ADDRESS":[925],"META_AUX_HEAP_SIZE_OFFSET":[3386],"META_CALLER_SHARD_ID_OFFSET":[3396],"META_CALL_ADDRESS":[3118],"META_CODE_SHARD_ID_OFFSET":[3401],"META_GAS_PER_PUBDATA_BYTE_OFFSET":[3376],"META_HEAP_SIZE_OFFSET":[3381],"META_SHARD_ID_OFFSET":[3391],"MIMIC_CALL_BY_REF_CALL_ADDRESS":[3151],"MIMIC_CALL_CALL_ADDRESS":[3129],"MSG_VALUE_SIMULATOR_IS_SYSTEM_BIT":[1107],"MSG_VALUE_SYSTEM_CONTRACT":[1040],"MULTIPLICATION_HIGH_ADDRESS":[3360],"PRECOMPILE_CALL_ADDRESS":[3107],"PTR_ADD_INTO_ACTIVE_CALL_ADDRESS":[3327],"PTR_CALLDATA_CALL_ADDRESS":[3250],"PTR_PACK_INTO_ACTIVE_CALL_ADDRESS":[3349],"PTR_RETURNDATA_CALL_ADDRESS":[3272],"PTR_SHRINK_INTO_ACTIVE_CALL_ADDRESS":[3338],"RAW_FAR_CALL_BY_REF_CALL_ADDRESS":[3184],"RAW_FAR_CALL_CALL_ADDRESS":[3173],"RLPEncoder":[2503],"SET_CONTEXT_VALUE_CALL_ADDRESS":[3217],"SET_PUBDATA_PRICE_CALL_ADDRESS":[3228],"SHA256_SYSTEM_CONTRACT":[937],"SYSTEM_CALL_BY_REF_CALL_ADDRESS":[3206],"SYSTEM_CALL_CALL_ADDRESS":[3195],"SYSTEM_MIMIC_CALL_BY_REF_CALL_ADDRESS":[3162],"SYSTEM_MIMIC_CALL_CALL_ADDRESS":[3140],"SafeERC20":[5315],"SystemContractHelper":[3048],"SystemContractsCaller":[3683],"TO_L1_CALL_ADDRESS":[3085],"Transaction":[3746],"TransactionHelper":[4646],"UINT128_MASK":[2516],"UINT32_MASK":[2513],"Utils":[4920],"ZkSyncMeta":[2533]},"id":906,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"33:23:0"},{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBootloaderUtilities.sol","file":"./interfaces/IBootloaderUtilities.sol","id":2,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":906,"sourceUnit":1181,"src":"58:47:0","symbolAliases":[],"unitAlias":""},{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/libraries/TransactionHelper.sol","file":"./libraries/TransactionHelper.sol","id":3,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":906,"sourceUnit":4647,"src":"106:43:0","symbolAliases":[],"unitAlias":""},{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/libraries/RLPEncoder.sol","file":"./libraries/RLPEncoder.sol","id":4,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":906,"sourceUnit":2504,"src":"150:36:0","symbolAliases":[],"unitAlias":""},{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/libraries/EfficientCall.sol","file":"./libraries/EfficientCall.sol","id":5,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":906,"sourceUnit":2171,"src":"187:39:0","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":7,"name":"IBootloaderUtilities","nameLocations":["405:20:0"],"nodeType":"IdentifierPath","referencedDeclaration":1180,"src":"405:20:0"},"id":8,"nodeType":"InheritanceSpecifier","src":"405:20:0"}],"canonicalName":"BootloaderUtilities","contractDependencies":[],"contractKind":"contract","documentation":{"id":6,"nodeType":"StructuredDocumentation","src":"228:144:0","text":" @author Matter Labs\n @notice A contract that provides some utility methods for the bootloader\n that is very hard to write in Yul."},"fullyImplemented":true,"id":905,"linearizedBaseContracts":[905,1180],"name":"BootloaderUtilities","nameLocation":"382:19:0","nodeType":"ContractDefinition","nodes":[{"global":false,"id":10,"libraryName":{"id":9,"name":"TransactionHelper","nameLocations":["438:17:0"],"nodeType":"IdentifierPath","referencedDeclaration":4646,"src":"438:17:0"},"nodeType":"UsingForDirective","src":"432:30:0"},{"baseFunctions":[1179],"body":{"id":90,"nodeType":"Block","src":"1045:665:0","statements":[{"expression":{"id":26,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":22,"name":"signedTxHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20,"src":"1055:12:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":23,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14,"src":"1070:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":24,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1083:10:0","memberName":"encodeHash","nodeType":"MemberAccess","referencedDeclaration":3851,"src":"1070:23:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Transaction_$3746_calldata_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_Transaction_$3746_calldata_ptr_$","typeString":"function (struct Transaction calldata) view returns (bytes32)"}},"id":25,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1070:25:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1055:40:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":27,"nodeType":"ExpressionStatement","src":"1055:40:0"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":31,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":28,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14,"src":"1109:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":29,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1122:6:0","memberName":"txType","nodeType":"MemberAccess","referencedDeclaration":3712,"src":"1109:19:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":30,"name":"EIP_712_TX_TYPE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3698,"src":"1132:15:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"1109:38:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":48,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14,"src":"1276:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":49,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1289:6:0","memberName":"txType","nodeType":"MemberAccess","referencedDeclaration":3712,"src":"1276:19:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":50,"name":"LEGACY_TX_TYPE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3702,"src":"1299:14:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"1276:37:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":62,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":59,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14,"src":"1400:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":60,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1413:6:0","memberName":"txType","nodeType":"MemberAccess","referencedDeclaration":3712,"src":"1400:19:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":61,"name":"EIP_1559_TX_TYPE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3710,"src":"1423:16:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"1400:39:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":70,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14,"src":"1527:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":71,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1540:6:0","memberName":"txType","nodeType":"MemberAccess","referencedDeclaration":3712,"src":"1527:19:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":72,"name":"EIP_2930_TX_TYPE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3706,"src":"1550:16:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"1527:39:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":85,"nodeType":"Block","src":"1650:54:0","statements":[{"expression":{"arguments":[{"hexValue":"556e737570706f727465642074782074797065","id":82,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1671:21:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_80e5a2b1dbea1a10c3ff9dc41a140aa31d17ca0d483cdc36909c7a2458049455","typeString":"literal_string \"Unsupported tx type\""},"value":"Unsupported tx type"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_80e5a2b1dbea1a10c3ff9dc41a140aa31d17ca0d483cdc36909c7a2458049455","typeString":"literal_string \"Unsupported tx type\""}],"id":81,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"1664:6:0","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":83,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1664:29:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84,"nodeType":"ExpressionStatement","src":"1664:29:0"}]},"id":86,"nodeType":"IfStatement","src":"1523:181:0","trueBody":{"id":80,"nodeType":"Block","src":"1568:76:0","statements":[{"expression":{"id":78,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74,"name":"txHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18,"src":"1582:6:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":76,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14,"src":"1620:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}],"id":75,"name":"encodeEIP2930TransactionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":628,"src":"1591:28:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Transaction_$3746_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct Transaction calldata) view returns (bytes32)"}},"id":77,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1591:42:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1582:51:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":79,"nodeType":"ExpressionStatement","src":"1582:51:0"}]}},"id":87,"nodeType":"IfStatement","src":"1396:308:0","trueBody":{"id":69,"nodeType":"Block","src":"1441:76:0","statements":[{"expression":{"id":67,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":63,"name":"txHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18,"src":"1455:6:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":65,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14,"src":"1493:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}],"id":64,"name":"encodeEIP1559TransactionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":904,"src":"1464:28:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Transaction_$3746_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct Transaction calldata) view returns (bytes32)"}},"id":66,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1464:42:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1455:51:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":68,"nodeType":"ExpressionStatement","src":"1455:51:0"}]}},"id":88,"nodeType":"IfStatement","src":"1272:432:0","trueBody":{"id":58,"nodeType":"Block","src":"1315:75:0","statements":[{"expression":{"id":56,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52,"name":"txHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18,"src":"1329:6:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":54,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14,"src":"1366:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}],"id":53,"name":"encodeLegacyTransactionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":361,"src":"1338:27:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Transaction_$3746_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct Transaction calldata) view returns (bytes32)"}},"id":55,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1338:41:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1329:50:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":57,"nodeType":"ExpressionStatement","src":"1329:50:0"}]}},"id":89,"nodeType":"IfStatement","src":"1105:599:0","trueBody":{"id":47,"nodeType":"Block","src":"1149:117:0","statements":[{"expression":{"id":45,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":32,"name":"txHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18,"src":"1163:6:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":37,"name":"signedTxHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20,"src":"1195:12:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"expression":{"id":40,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14,"src":"1230:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":41,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1243:9:0","memberName":"signature","nodeType":"MemberAccess","referencedDeclaration":3738,"src":"1230:22:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":38,"name":"EfficientCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2170,"src":"1209:13:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EfficientCall_$2170_$","typeString":"type(library EfficientCall)"}},"id":39,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1223:6:0","memberName":"keccak","nodeType":"MemberAccess","referencedDeclaration":1743,"src":"1209:20:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (bytes calldata) view returns (bytes32)"}},"id":42,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1209:44:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":35,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1182:5:0","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":34,"name":"bytes","nodeType":"ElementaryTypeName","src":"1182:5:0","typeDescriptions":{}}},"id":36,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1188:6:0","memberName":"concat","nodeType":"MemberAccess","src":"1182:12:0","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":43,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1182:72:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":33,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1172:9:0","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":44,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1172:83:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1163:92:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":46,"nodeType":"ExpressionStatement","src":"1163:92:0"}]}}]},"documentation":{"id":11,"nodeType":"StructuredDocumentation","src":"468:423:0","text":"@notice Calculates the canonical transaction hash and the recommended transaction hash.\n @param _transaction The transaction.\n @return txHash and signedTxHash of the transaction, i.e. the transaction hash to be used in the explorer and commits to all\n the fields of the transaction and the recommended hash to be signed for this transaction.\n @dev txHash must be unique for all transactions."},"functionSelector":"ebe4a3d7","id":91,"implemented":true,"kind":"function","modifiers":[],"name":"getTransactionHashes","nameLocation":"905:20:0","nodeType":"FunctionDefinition","overrides":{"id":16,"nodeType":"OverrideSpecifier","overrides":[],"src":"989:8:0"},"parameters":{"id":15,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14,"mutability":"mutable","name":"_transaction","nameLocation":"956:12:0","nodeType":"VariableDeclaration","scope":91,"src":"935:33:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction"},"typeName":{"id":13,"nodeType":"UserDefinedTypeName","pathNode":{"id":12,"name":"Transaction","nameLocations":["935:11:0"],"nodeType":"IdentifierPath","referencedDeclaration":3746,"src":"935:11:0"},"referencedDeclaration":3746,"src":"935:11:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_storage_ptr","typeString":"struct Transaction"}},"visibility":"internal"}],"src":"925:49:0"},"returnParameters":{"id":21,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18,"mutability":"mutable","name":"txHash","nameLocation":"1015:6:0","nodeType":"VariableDeclaration","scope":91,"src":"1007:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1007:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":20,"mutability":"mutable","name":"signedTxHash","nameLocation":"1031:12:0","nodeType":"VariableDeclaration","scope":91,"src":"1023:20:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1023:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1006:38:0"},"scope":905,"src":"896:814:0","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":360,"nodeType":"Block","src":"1993:3909:0","statements":[{"assignments":[101],"declarations":[{"constant":false,"id":101,"mutability":"mutable","name":"encodedNonce","nameLocation":"2411:12:0","nodeType":"VariableDeclaration","scope":360,"src":"2398:25:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":100,"name":"bytes","nodeType":"ElementaryTypeName","src":"2398:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":107,"initialValue":{"arguments":[{"expression":{"id":104,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":95,"src":"2451:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2464:5:0","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":3728,"src":"2451:18:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":102,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"2426:10:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":103,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2437:13:0","memberName":"encodeUint256","nodeType":"MemberAccess","referencedDeclaration":2286,"src":"2426:24:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":106,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2426:44:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"2398:72:0"},{"assignments":[109],"declarations":[{"constant":false,"id":109,"mutability":"mutable","name":"encodedGasParam","nameLocation":"2581:15:0","nodeType":"VariableDeclaration","scope":360,"src":"2568:28:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":108,"name":"bytes","nodeType":"ElementaryTypeName","src":"2568:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":110,"nodeType":"VariableDeclarationStatement","src":"2568:28:0"},{"id":136,"nodeType":"Block","src":"2606:277:0","statements":[{"assignments":[112],"declarations":[{"constant":false,"id":112,"mutability":"mutable","name":"encodedGasPrice","nameLocation":"2633:15:0","nodeType":"VariableDeclaration","scope":136,"src":"2620:28:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":111,"name":"bytes","nodeType":"ElementaryTypeName","src":"2620:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":118,"initialValue":{"arguments":[{"expression":{"id":115,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":95,"src":"2676:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2689:12:0","memberName":"maxFeePerGas","nodeType":"MemberAccess","referencedDeclaration":3722,"src":"2676:25:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":113,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"2651:10:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2662:13:0","memberName":"encodeUint256","nodeType":"MemberAccess","referencedDeclaration":2286,"src":"2651:24:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":117,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2651:51:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"2620:82:0"},{"assignments":[120],"declarations":[{"constant":false,"id":120,"mutability":"mutable","name":"encodedGasLimit","nameLocation":"2729:15:0","nodeType":"VariableDeclaration","scope":136,"src":"2716:28:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":119,"name":"bytes","nodeType":"ElementaryTypeName","src":"2716:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":126,"initialValue":{"arguments":[{"expression":{"id":123,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":95,"src":"2772:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":124,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2785:8:0","memberName":"gasLimit","nodeType":"MemberAccess","referencedDeclaration":3718,"src":"2772:21:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":121,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"2747:10:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2758:13:0","memberName":"encodeUint256","nodeType":"MemberAccess","referencedDeclaration":2286,"src":"2747:24:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":125,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2747:47:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"2716:78:0"},{"expression":{"id":134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":127,"name":"encodedGasParam","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109,"src":"2808:15:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":131,"name":"encodedGasPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":112,"src":"2839:15:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":132,"name":"encodedGasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":120,"src":"2856:15:0","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":129,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2826:5:0","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":128,"name":"bytes","nodeType":"ElementaryTypeName","src":"2826:5:0","typeDescriptions":{}}},"id":130,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2832:6:0","memberName":"concat","nodeType":"MemberAccess","src":"2826:12:0","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":133,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2826:46:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"2808:64:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":135,"nodeType":"ExpressionStatement","src":"2808:64:0"}]},{"assignments":[138],"declarations":[{"constant":false,"id":138,"mutability":"mutable","name":"encodedTo","nameLocation":"2906:9:0","nodeType":"VariableDeclaration","scope":360,"src":"2893:22:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":137,"name":"bytes","nodeType":"ElementaryTypeName","src":"2893:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":150,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"expression":{"id":145,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":95,"src":"2959:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":146,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2972:2:0","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":3716,"src":"2959:15:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":144,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2951:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":143,"name":"uint160","nodeType":"ElementaryTypeName","src":"2951:7:0","typeDescriptions":{}}},"id":147,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2951:24:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":142,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2943:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":141,"name":"address","nodeType":"ElementaryTypeName","src":"2943:7:0","typeDescriptions":{}}},"id":148,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2943:33:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":139,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"2918:10:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2929:13:0","memberName":"encodeAddress","nodeType":"MemberAccess","referencedDeclaration":2195,"src":"2918:24:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_bytes_memory_ptr_$","typeString":"function (address) pure returns (bytes memory)"}},"id":149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2918:59:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"2893:84:0"},{"assignments":[152],"declarations":[{"constant":false,"id":152,"mutability":"mutable","name":"encodedValue","nameLocation":"3000:12:0","nodeType":"VariableDeclaration","scope":360,"src":"2987:25:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":151,"name":"bytes","nodeType":"ElementaryTypeName","src":"2987:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":158,"initialValue":{"arguments":[{"expression":{"id":155,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":95,"src":"3040:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3053:5:0","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":3730,"src":"3040:18:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":153,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"3015:10:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":154,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3026:13:0","memberName":"encodeUint256","nodeType":"MemberAccess","referencedDeclaration":2286,"src":"3015:24:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":157,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3015:44:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"2987:72:0"},{"assignments":[160],"declarations":[{"constant":false,"id":160,"mutability":"mutable","name":"encodedDataLength","nameLocation":"3248:17:0","nodeType":"VariableDeclaration","scope":360,"src":"3235:30:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":159,"name":"bytes","nodeType":"ElementaryTypeName","src":"3235:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":161,"nodeType":"VariableDeclarationStatement","src":"3235:30:0"},{"id":195,"nodeType":"Block","src":"3275:677:0","statements":[{"assignments":[163],"declarations":[{"constant":false,"id":163,"mutability":"mutable","name":"txDataLen","nameLocation":"3384:9:0","nodeType":"VariableDeclaration","scope":195,"src":"3377:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":162,"name":"uint64","nodeType":"ElementaryTypeName","src":"3377:6:0","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":170,"initialValue":{"arguments":[{"expression":{"expression":{"id":166,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":95,"src":"3403:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3416:4:0","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":3736,"src":"3403:17:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3421:6:0","memberName":"length","nodeType":"MemberAccess","src":"3403:24:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":165,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3396:6:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":164,"name":"uint64","nodeType":"ElementaryTypeName","src":"3396:6:0","typeDescriptions":{}}},"id":169,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3396:32:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"3377:51:0"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":171,"name":"txDataLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":163,"src":"3446:9:0","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"31","id":172,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3459:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3446:14:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"id":187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":182,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":95,"src":"3681:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3694:4:0","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":3736,"src":"3681:17:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":185,"indexExpression":{"hexValue":"30","id":184,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3699:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3681:20:0","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30783830","id":186,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3705:4:0","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"0x80"},"src":"3681:28:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":193,"nodeType":"IfStatement","src":"3677:206:0","trueBody":{"id":192,"nodeType":"Block","src":"3711:172:0","statements":[{"expression":{"id":190,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":188,"name":"encodedDataLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":160,"src":"3841:17:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"81","id":189,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"3861:7:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_1fed454f35701d8970ad2ac06907e973314989ab6eb948eda79c00e416c4bdeb","typeString":"literal_string hex\"81\""}},"src":"3841:27:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":191,"nodeType":"ExpressionStatement","src":"3841:27:0"}]}},"id":194,"nodeType":"IfStatement","src":"3442:441:0","trueBody":{"id":181,"nodeType":"Block","src":"3462:209:0","statements":[{"expression":{"id":179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":174,"name":"encodedDataLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":160,"src":"3591:17:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":177,"name":"txDataLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":163,"src":"3646:9:0","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":175,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"3611:10:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3622:23:0","memberName":"encodeNonSingleBytesLen","nodeType":"MemberAccess","referencedDeclaration":2306,"src":"3611:34:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint64_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint64) pure returns (bytes memory)"}},"id":178,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3611:45:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"3591:65:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":180,"nodeType":"ExpressionStatement","src":"3591:65:0"}]}}]},{"assignments":[197],"declarations":[{"constant":false,"id":197,"mutability":"mutable","name":"rEncoded","nameLocation":"3975:8:0","nodeType":"VariableDeclaration","scope":360,"src":"3962:21:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":196,"name":"bytes","nodeType":"ElementaryTypeName","src":"3962:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":198,"nodeType":"VariableDeclarationStatement","src":"3962:21:0"},{"id":220,"nodeType":"Block","src":"3993:141:0","statements":[{"assignments":[200],"declarations":[{"constant":false,"id":200,"mutability":"mutable","name":"rInt","nameLocation":"4015:4:0","nodeType":"VariableDeclaration","scope":220,"src":"4007:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":199,"name":"uint256","nodeType":"ElementaryTypeName","src":"4007:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":212,"initialValue":{"arguments":[{"arguments":[{"baseExpression":{"expression":{"id":205,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":95,"src":"4038:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4051:9:0","memberName":"signature","nodeType":"MemberAccess","referencedDeclaration":3738,"src":"4038:22:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"endExpression":{"hexValue":"3332","id":208,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4063:2:0","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"id":209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"4038:28:0","startExpression":{"hexValue":"30","id":207,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4061:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}],"id":204,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4030:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":203,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4030:7:0","typeDescriptions":{}}},"id":210,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4030:37:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":202,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4022:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":201,"name":"uint256","nodeType":"ElementaryTypeName","src":"4022:7:0","typeDescriptions":{}}},"id":211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4022:46:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4007:61:0"},{"expression":{"id":218,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":213,"name":"rEncoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":197,"src":"4082:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":216,"name":"rInt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":200,"src":"4118:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":214,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"4093:10:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":215,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4104:13:0","memberName":"encodeUint256","nodeType":"MemberAccess","referencedDeclaration":2286,"src":"4093:24:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":217,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4093:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"4082:41:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":219,"nodeType":"ExpressionStatement","src":"4082:41:0"}]},{"assignments":[222],"declarations":[{"constant":false,"id":222,"mutability":"mutable","name":"sEncoded","nameLocation":"4156:8:0","nodeType":"VariableDeclaration","scope":360,"src":"4143:21:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":221,"name":"bytes","nodeType":"ElementaryTypeName","src":"4143:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":223,"nodeType":"VariableDeclarationStatement","src":"4143:21:0"},{"id":245,"nodeType":"Block","src":"4174:142:0","statements":[{"assignments":[225],"declarations":[{"constant":false,"id":225,"mutability":"mutable","name":"sInt","nameLocation":"4196:4:0","nodeType":"VariableDeclaration","scope":245,"src":"4188:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":224,"name":"uint256","nodeType":"ElementaryTypeName","src":"4188:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":237,"initialValue":{"arguments":[{"arguments":[{"baseExpression":{"expression":{"id":230,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":95,"src":"4219:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4232:9:0","memberName":"signature","nodeType":"MemberAccess","referencedDeclaration":3738,"src":"4219:22:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"endExpression":{"hexValue":"3634","id":233,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4245:2:0","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"id":234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"4219:29:0","startExpression":{"hexValue":"3332","id":232,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4242:2:0","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}],"id":229,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4211:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":228,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4211:7:0","typeDescriptions":{}}},"id":235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4211:38:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":227,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4203:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":226,"name":"uint256","nodeType":"ElementaryTypeName","src":"4203:7:0","typeDescriptions":{}}},"id":236,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4203:47:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4188:62:0"},{"expression":{"id":243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":238,"name":"sEncoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":222,"src":"4264:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":241,"name":"sInt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":225,"src":"4300:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":239,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"4275:10:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4286:13:0","memberName":"encodeUint256","nodeType":"MemberAccess","referencedDeclaration":2286,"src":"4275:24:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":242,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4275:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"4264:41:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":244,"nodeType":"ExpressionStatement","src":"4264:41:0"}]},{"assignments":[247],"declarations":[{"constant":false,"id":247,"mutability":"mutable","name":"vEncoded","nameLocation":"4338:8:0","nodeType":"VariableDeclaration","scope":360,"src":"4325:21:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":246,"name":"bytes","nodeType":"ElementaryTypeName","src":"4325:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":248,"nodeType":"VariableDeclarationStatement","src":"4325:21:0"},{"id":297,"nodeType":"Block","src":"4356:514:0","statements":[{"assignments":[250],"declarations":[{"constant":false,"id":250,"mutability":"mutable","name":"vInt","nameLocation":"4378:4:0","nodeType":"VariableDeclaration","scope":297,"src":"4370:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":249,"name":"uint256","nodeType":"ElementaryTypeName","src":"4370:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":261,"initialValue":{"arguments":[{"arguments":[{"baseExpression":{"expression":{"id":255,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":95,"src":"4399:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4412:9:0","memberName":"signature","nodeType":"MemberAccess","referencedDeclaration":3738,"src":"4399:22:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":258,"indexExpression":{"hexValue":"3634","id":257,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4422:2:0","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4399:26:0","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"id":254,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4393:5:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":253,"name":"uint8","nodeType":"ElementaryTypeName","src":"4393:5:0","typeDescriptions":{}}},"id":259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4393:33:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":252,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4385:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":251,"name":"uint256","nodeType":"ElementaryTypeName","src":"4385:7:0","typeDescriptions":{}}},"id":260,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4385:42:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4370:57:0"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":263,"name":"vInt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":250,"src":"4449:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"3237","id":264,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4457:2:0","typeDescriptions":{"typeIdentifier":"t_rational_27_by_1","typeString":"int_const 27"},"value":"27"},"src":"4449:10:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":268,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":266,"name":"vInt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":250,"src":"4463:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"3238","id":267,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4471:2:0","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"28"},"src":"4463:10:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4449:24:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e76616c696420762076616c7565","id":270,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4475:17:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_f613e52df535beb210f5afa95458c6f7da3e398b02413e7c040934ce67cb08b2","typeString":"literal_string \"Invalid v value\""},"value":"Invalid v value"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f613e52df535beb210f5afa95458c6f7da3e398b02413e7c040934ce67cb08b2","typeString":"literal_string \"Invalid v value\""}],"id":262,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4441:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4441:52:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":272,"nodeType":"ExpressionStatement","src":"4441:52:0"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":278,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":273,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":95,"src":"4711:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4724:8:0","memberName":"reserved","nodeType":"MemberAccess","referencedDeclaration":3734,"src":"4711:21:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$4_calldata_ptr","typeString":"uint256[4] calldata"}},"id":276,"indexExpression":{"hexValue":"30","id":275,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4733:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4711:24:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":277,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4739:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4711:29:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":289,"nodeType":"IfStatement","src":"4707:97:0","trueBody":{"id":288,"nodeType":"Block","src":"4742:62:0","statements":[{"expression":{"id":286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":279,"name":"vInt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":250,"src":"4760:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"38","id":280,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4768:1:0","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":284,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":281,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"4772:5:0","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":282,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4778:7:0","memberName":"chainid","nodeType":"MemberAccess","src":"4772:13:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"32","id":283,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4788:1:0","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"4772:17:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4768:21:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4760:29:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":287,"nodeType":"ExpressionStatement","src":"4760:29:0"}]}},{"expression":{"id":295,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":290,"name":"vEncoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":247,"src":"4818:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":293,"name":"vInt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":250,"src":"4854:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":291,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"4829:10:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4840:13:0","memberName":"encodeUint256","nodeType":"MemberAccess","referencedDeclaration":2286,"src":"4829:24:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":294,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4829:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"4818:41:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":296,"nodeType":"ExpressionStatement","src":"4818:41:0"}]},{"assignments":[299],"declarations":[{"constant":false,"id":299,"mutability":"mutable","name":"encodedListLength","nameLocation":"4893:17:0","nodeType":"VariableDeclaration","scope":360,"src":"4880:30:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":298,"name":"bytes","nodeType":"ElementaryTypeName","src":"4880:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":300,"nodeType":"VariableDeclarationStatement","src":"4880:30:0"},{"id":341,"nodeType":"UncheckedBlock","src":"4920:532:0","statements":[{"assignments":[302],"declarations":[{"constant":false,"id":302,"mutability":"mutable","name":"listLength","nameLocation":"4952:10:0","nodeType":"VariableDeclaration","scope":341,"src":"4944:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":301,"name":"uint256","nodeType":"ElementaryTypeName","src":"4944:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":330,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":326,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":323,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":320,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":316,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":313,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":307,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":303,"name":"encodedNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":101,"src":"4965:12:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":304,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4978:6:0","memberName":"length","nodeType":"MemberAccess","src":"4965:19:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":305,"name":"encodedGasParam","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109,"src":"5003:15:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":306,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5019:6:0","memberName":"length","nodeType":"MemberAccess","src":"5003:22:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4965:60:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":308,"name":"encodedTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":138,"src":"5044:9:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":309,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5054:6:0","memberName":"length","nodeType":"MemberAccess","src":"5044:16:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4965:95:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":311,"name":"encodedValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":152,"src":"5079:12:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5092:6:0","memberName":"length","nodeType":"MemberAccess","src":"5079:19:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4965:133:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":314,"name":"encodedDataLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":160,"src":"5117:17:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5135:6:0","memberName":"length","nodeType":"MemberAccess","src":"5117:24:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4965:176:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"expression":{"id":317,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":95,"src":"5160:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5173:4:0","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":3736,"src":"5160:17:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":319,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5178:6:0","memberName":"length","nodeType":"MemberAccess","src":"5160:24:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4965:219:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":321,"name":"rEncoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":197,"src":"5203:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5212:6:0","memberName":"length","nodeType":"MemberAccess","src":"5203:15:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4965:253:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":324,"name":"sEncoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":222,"src":"5237:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":325,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5246:6:0","memberName":"length","nodeType":"MemberAccess","src":"5237:15:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4965:287:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":327,"name":"vEncoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":247,"src":"5271:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5280:6:0","memberName":"length","nodeType":"MemberAccess","src":"5271:15:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4965:321:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4944:342:0"},{"expression":{"id":339,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":331,"name":"encodedListLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":299,"src":"5377:17:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":336,"name":"listLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":302,"src":"5429:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":335,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5422:6:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":334,"name":"uint64","nodeType":"ElementaryTypeName","src":"5422:6:0","typeDescriptions":{}}},"id":337,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5422:18:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":332,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"5397:10:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5408:13:0","memberName":"encodeListLen","nodeType":"MemberAccess","referencedDeclaration":2320,"src":"5397:24:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint64_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint64) pure returns (bytes memory)"}},"id":338,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5397:44:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"5377:64:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":340,"nodeType":"ExpressionStatement","src":"5377:64:0"}]},{"expression":{"arguments":[{"arguments":[{"id":346,"name":"encodedListLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":299,"src":"5542:17:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":347,"name":"encodedNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":101,"src":"5581:12:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":348,"name":"encodedGasParam","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109,"src":"5615:15:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":349,"name":"encodedTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":138,"src":"5652:9:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":350,"name":"encodedValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":152,"src":"5683:12:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":351,"name":"encodedDataLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":160,"src":"5717:17:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"id":352,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":95,"src":"5756:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5769:4:0","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":3736,"src":"5756:17:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":354,"name":"vEncoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":247,"src":"5795:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":355,"name":"rEncoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":197,"src":"5825:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":356,"name":"sEncoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":222,"src":"5855:8:0","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"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":344,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5508:5:0","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":343,"name":"bytes","nodeType":"ElementaryTypeName","src":"5508:5:0","typeDescriptions":{}}},"id":345,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5514:6:0","memberName":"concat","nodeType":"MemberAccess","src":"5508:12:0","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5508:373:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":342,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5481:9:0","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":358,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5481:414:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":99,"id":359,"nodeType":"Return","src":"5462:433:0"}]},"documentation":{"id":92,"nodeType":"StructuredDocumentation","src":"1716:161:0","text":"@notice Calculates the hash for a legacy transaction.\n @param _transaction The legacy transaction.\n @return txHash The hash of the transaction."},"id":361,"implemented":true,"kind":"function","modifiers":[],"name":"encodeLegacyTransactionHash","nameLocation":"1891:27:0","nodeType":"FunctionDefinition","parameters":{"id":96,"nodeType":"ParameterList","parameters":[{"constant":false,"id":95,"mutability":"mutable","name":"_transaction","nameLocation":"1940:12:0","nodeType":"VariableDeclaration","scope":361,"src":"1919:33:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction"},"typeName":{"id":94,"nodeType":"UserDefinedTypeName","pathNode":{"id":93,"name":"Transaction","nameLocations":["1919:11:0"],"nodeType":"IdentifierPath","referencedDeclaration":3746,"src":"1919:11:0"},"referencedDeclaration":3746,"src":"1919:11:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_storage_ptr","typeString":"struct Transaction"}},"visibility":"internal"}],"src":"1918:35:0"},"returnParameters":{"id":99,"nodeType":"ParameterList","parameters":[{"constant":false,"id":98,"mutability":"mutable","name":"txHash","nameLocation":"1985:6:0","nodeType":"VariableDeclaration","scope":361,"src":"1977:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":97,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1977:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1976:16:0"},"scope":905,"src":"1882:4020:0","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":627,"nodeType":"Block","src":"6182:3558:0","statements":[{"assignments":[371],"declarations":[{"constant":false,"id":371,"mutability":"mutable","name":"encodedFixedLengthParams","nameLocation":"6279:24:0","nodeType":"VariableDeclaration","scope":627,"src":"6266:37:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":370,"name":"bytes","nodeType":"ElementaryTypeName","src":"6266:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":372,"nodeType":"VariableDeclarationStatement","src":"6266:37:0"},{"id":440,"nodeType":"Block","src":"6313:804:0","statements":[{"assignments":[374],"declarations":[{"constant":false,"id":374,"mutability":"mutable","name":"encodedChainId","nameLocation":"6340:14:0","nodeType":"VariableDeclaration","scope":440,"src":"6327:27:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":373,"name":"bytes","nodeType":"ElementaryTypeName","src":"6327:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":380,"initialValue":{"arguments":[{"expression":{"id":377,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"6382:5:0","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6388:7:0","memberName":"chainid","nodeType":"MemberAccess","src":"6382:13:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":375,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"6357:10:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6368:13:0","memberName":"encodeUint256","nodeType":"MemberAccess","referencedDeclaration":2286,"src":"6357:24:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6357:39:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"6327:69:0"},{"assignments":[382],"declarations":[{"constant":false,"id":382,"mutability":"mutable","name":"encodedNonce","nameLocation":"6423:12:0","nodeType":"VariableDeclaration","scope":440,"src":"6410:25:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":381,"name":"bytes","nodeType":"ElementaryTypeName","src":"6410:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":388,"initialValue":{"arguments":[{"expression":{"id":385,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":365,"src":"6463:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":386,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6476:5:0","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":3728,"src":"6463:18:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":383,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"6438:10:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":384,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6449:13:0","memberName":"encodeUint256","nodeType":"MemberAccess","referencedDeclaration":2286,"src":"6438:24:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":387,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6438:44:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"6410:72:0"},{"assignments":[390],"declarations":[{"constant":false,"id":390,"mutability":"mutable","name":"encodedGasPrice","nameLocation":"6509:15:0","nodeType":"VariableDeclaration","scope":440,"src":"6496:28:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":389,"name":"bytes","nodeType":"ElementaryTypeName","src":"6496:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":396,"initialValue":{"arguments":[{"expression":{"id":393,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":365,"src":"6552:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6565:12:0","memberName":"maxFeePerGas","nodeType":"MemberAccess","referencedDeclaration":3722,"src":"6552:25:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":391,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"6527:10:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6538:13:0","memberName":"encodeUint256","nodeType":"MemberAccess","referencedDeclaration":2286,"src":"6527:24:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":395,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6527:51:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"6496:82:0"},{"assignments":[398],"declarations":[{"constant":false,"id":398,"mutability":"mutable","name":"encodedGasLimit","nameLocation":"6605:15:0","nodeType":"VariableDeclaration","scope":440,"src":"6592:28:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":397,"name":"bytes","nodeType":"ElementaryTypeName","src":"6592:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":404,"initialValue":{"arguments":[{"expression":{"id":401,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":365,"src":"6648:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6661:8:0","memberName":"gasLimit","nodeType":"MemberAccess","referencedDeclaration":3718,"src":"6648:21:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":399,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"6623:10:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6634:13:0","memberName":"encodeUint256","nodeType":"MemberAccess","referencedDeclaration":2286,"src":"6623:24:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6623:47:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"6592:78:0"},{"assignments":[406],"declarations":[{"constant":false,"id":406,"mutability":"mutable","name":"encodedTo","nameLocation":"6697:9:0","nodeType":"VariableDeclaration","scope":440,"src":"6684:22:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":405,"name":"bytes","nodeType":"ElementaryTypeName","src":"6684:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":418,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"expression":{"id":413,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":365,"src":"6750:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6763:2:0","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":3716,"src":"6750:15:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":412,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6742:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":411,"name":"uint160","nodeType":"ElementaryTypeName","src":"6742:7:0","typeDescriptions":{}}},"id":415,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6742:24:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":410,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6734:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":409,"name":"address","nodeType":"ElementaryTypeName","src":"6734:7:0","typeDescriptions":{}}},"id":416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6734:33:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":407,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"6709:10:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":408,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6720:13:0","memberName":"encodeAddress","nodeType":"MemberAccess","referencedDeclaration":2195,"src":"6709:24:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_bytes_memory_ptr_$","typeString":"function (address) pure returns (bytes memory)"}},"id":417,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6709:59:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"6684:84:0"},{"assignments":[420],"declarations":[{"constant":false,"id":420,"mutability":"mutable","name":"encodedValue","nameLocation":"6795:12:0","nodeType":"VariableDeclaration","scope":440,"src":"6782:25:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":419,"name":"bytes","nodeType":"ElementaryTypeName","src":"6782:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":426,"initialValue":{"arguments":[{"expression":{"id":423,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":365,"src":"6835:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6848:5:0","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":3730,"src":"6835:18:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":421,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"6810:10:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6821:13:0","memberName":"encodeUint256","nodeType":"MemberAccess","referencedDeclaration":2286,"src":"6810:24:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6810:44:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"6782:72:0"},{"expression":{"id":438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":427,"name":"encodedFixedLengthParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":371,"src":"6868:24:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":431,"name":"encodedChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":374,"src":"6925:14:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":432,"name":"encodedNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":382,"src":"6957:12:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":433,"name":"encodedGasPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":390,"src":"6987:15:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":434,"name":"encodedGasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":398,"src":"7020:15:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":435,"name":"encodedTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":406,"src":"7053:9:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":436,"name":"encodedValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":420,"src":"7080:12:0","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"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":429,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6895:5:0","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":428,"name":"bytes","nodeType":"ElementaryTypeName","src":"6895:5:0","typeDescriptions":{}}},"id":430,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6901:6:0","memberName":"concat","nodeType":"MemberAccess","src":"6895:12:0","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6895:211:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"6868:238:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":439,"nodeType":"ExpressionStatement","src":"6868:238:0"}]},{"assignments":[442],"declarations":[{"constant":false,"id":442,"mutability":"mutable","name":"encodedDataLength","nameLocation":"7306:17:0","nodeType":"VariableDeclaration","scope":627,"src":"7293:30:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":441,"name":"bytes","nodeType":"ElementaryTypeName","src":"7293:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":443,"nodeType":"VariableDeclarationStatement","src":"7293:30:0"},{"id":477,"nodeType":"Block","src":"7333:677:0","statements":[{"assignments":[445],"declarations":[{"constant":false,"id":445,"mutability":"mutable","name":"txDataLen","nameLocation":"7442:9:0","nodeType":"VariableDeclaration","scope":477,"src":"7435:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":444,"name":"uint64","nodeType":"ElementaryTypeName","src":"7435:6:0","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":452,"initialValue":{"arguments":[{"expression":{"expression":{"id":448,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":365,"src":"7461:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7474:4:0","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":3736,"src":"7461:17:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7479:6:0","memberName":"length","nodeType":"MemberAccess","src":"7461:24:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":447,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7454:6:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":446,"name":"uint64","nodeType":"ElementaryTypeName","src":"7454:6:0","typeDescriptions":{}}},"id":451,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7454:32:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"7435:51:0"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":453,"name":"txDataLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":445,"src":"7504:9:0","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"31","id":454,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7517:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7504:14:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"id":469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":464,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":365,"src":"7739:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7752:4:0","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":3736,"src":"7739:17:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":467,"indexExpression":{"hexValue":"30","id":466,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7757:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7739:20:0","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30783830","id":468,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7763:4:0","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"0x80"},"src":"7739:28:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":475,"nodeType":"IfStatement","src":"7735:206:0","trueBody":{"id":474,"nodeType":"Block","src":"7769:172:0","statements":[{"expression":{"id":472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":470,"name":"encodedDataLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":442,"src":"7899:17:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"81","id":471,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"7919:7:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_1fed454f35701d8970ad2ac06907e973314989ab6eb948eda79c00e416c4bdeb","typeString":"literal_string hex\"81\""}},"src":"7899:27:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":473,"nodeType":"ExpressionStatement","src":"7899:27:0"}]}},"id":476,"nodeType":"IfStatement","src":"7500:441:0","trueBody":{"id":463,"nodeType":"Block","src":"7520:209:0","statements":[{"expression":{"id":461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":456,"name":"encodedDataLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":442,"src":"7649:17:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":459,"name":"txDataLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":445,"src":"7704:9:0","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":457,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"7669:10:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":458,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7680:23:0","memberName":"encodeNonSingleBytesLen","nodeType":"MemberAccess","referencedDeclaration":2306,"src":"7669:34:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint64_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint64) pure returns (bytes memory)"}},"id":460,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7669:45:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"7649:65:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":462,"nodeType":"ExpressionStatement","src":"7649:65:0"}]}}]},{"assignments":[479],"declarations":[{"constant":false,"id":479,"mutability":"mutable","name":"encodedAccessListLength","nameLocation":"8111:23:0","nodeType":"VariableDeclaration","scope":627,"src":"8098:36:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":478,"name":"bytes","nodeType":"ElementaryTypeName","src":"8098:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":484,"initialValue":{"arguments":[{"hexValue":"30","id":482,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8162:1:0","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"}],"expression":{"id":480,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"8137:10:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":481,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8148:13:0","memberName":"encodeListLen","nodeType":"MemberAccess","referencedDeclaration":2320,"src":"8137:24:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint64_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint64) pure returns (bytes memory)"}},"id":483,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8137:27:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"8098:66:0"},{"assignments":[486],"declarations":[{"constant":false,"id":486,"mutability":"mutable","name":"rEncoded","nameLocation":"8188:8:0","nodeType":"VariableDeclaration","scope":627,"src":"8175:21:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":485,"name":"bytes","nodeType":"ElementaryTypeName","src":"8175:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":487,"nodeType":"VariableDeclarationStatement","src":"8175:21:0"},{"id":509,"nodeType":"Block","src":"8206:141:0","statements":[{"assignments":[489],"declarations":[{"constant":false,"id":489,"mutability":"mutable","name":"rInt","nameLocation":"8228:4:0","nodeType":"VariableDeclaration","scope":509,"src":"8220:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":488,"name":"uint256","nodeType":"ElementaryTypeName","src":"8220:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":501,"initialValue":{"arguments":[{"arguments":[{"baseExpression":{"expression":{"id":494,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":365,"src":"8251:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8264:9:0","memberName":"signature","nodeType":"MemberAccess","referencedDeclaration":3738,"src":"8251:22:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"endExpression":{"hexValue":"3332","id":497,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8276:2:0","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"id":498,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"8251:28:0","startExpression":{"hexValue":"30","id":496,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8274:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}],"id":493,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8243:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":492,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8243:7:0","typeDescriptions":{}}},"id":499,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8243:37:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":491,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8235:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":490,"name":"uint256","nodeType":"ElementaryTypeName","src":"8235:7:0","typeDescriptions":{}}},"id":500,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8235:46:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8220:61:0"},{"expression":{"id":507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":502,"name":"rEncoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":486,"src":"8295:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":505,"name":"rInt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":489,"src":"8331:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":503,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"8306:10:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8317:13:0","memberName":"encodeUint256","nodeType":"MemberAccess","referencedDeclaration":2286,"src":"8306:24:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":506,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8306:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"8295:41:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":508,"nodeType":"ExpressionStatement","src":"8295:41:0"}]},{"assignments":[511],"declarations":[{"constant":false,"id":511,"mutability":"mutable","name":"sEncoded","nameLocation":"8369:8:0","nodeType":"VariableDeclaration","scope":627,"src":"8356:21:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":510,"name":"bytes","nodeType":"ElementaryTypeName","src":"8356:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":512,"nodeType":"VariableDeclarationStatement","src":"8356:21:0"},{"id":534,"nodeType":"Block","src":"8387:142:0","statements":[{"assignments":[514],"declarations":[{"constant":false,"id":514,"mutability":"mutable","name":"sInt","nameLocation":"8409:4:0","nodeType":"VariableDeclaration","scope":534,"src":"8401:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":513,"name":"uint256","nodeType":"ElementaryTypeName","src":"8401:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":526,"initialValue":{"arguments":[{"arguments":[{"baseExpression":{"expression":{"id":519,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":365,"src":"8432:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8445:9:0","memberName":"signature","nodeType":"MemberAccess","referencedDeclaration":3738,"src":"8432:22:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"endExpression":{"hexValue":"3634","id":522,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8458:2:0","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"id":523,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"8432:29:0","startExpression":{"hexValue":"3332","id":521,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8455:2:0","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}],"id":518,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8424:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":517,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8424:7:0","typeDescriptions":{}}},"id":524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8424:38:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":516,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8416:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":515,"name":"uint256","nodeType":"ElementaryTypeName","src":"8416:7:0","typeDescriptions":{}}},"id":525,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8416:47:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8401:62:0"},{"expression":{"id":532,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":527,"name":"sEncoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":511,"src":"8477:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":530,"name":"sInt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":514,"src":"8513:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":528,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"8488:10:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8499:13:0","memberName":"encodeUint256","nodeType":"MemberAccess","referencedDeclaration":2286,"src":"8488:24:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":531,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8488:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"8477:41:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":533,"nodeType":"ExpressionStatement","src":"8477:41:0"}]},{"assignments":[536],"declarations":[{"constant":false,"id":536,"mutability":"mutable","name":"vEncoded","nameLocation":"8551:8:0","nodeType":"VariableDeclaration","scope":627,"src":"8538:21:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":535,"name":"bytes","nodeType":"ElementaryTypeName","src":"8538:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":537,"nodeType":"VariableDeclarationStatement","src":"8538:21:0"},{"id":571,"nodeType":"Block","src":"8569:209:0","statements":[{"assignments":[539],"declarations":[{"constant":false,"id":539,"mutability":"mutable","name":"vInt","nameLocation":"8591:4:0","nodeType":"VariableDeclaration","scope":571,"src":"8583:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":538,"name":"uint256","nodeType":"ElementaryTypeName","src":"8583:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":550,"initialValue":{"arguments":[{"arguments":[{"baseExpression":{"expression":{"id":544,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":365,"src":"8612:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":545,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8625:9:0","memberName":"signature","nodeType":"MemberAccess","referencedDeclaration":3738,"src":"8612:22:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":547,"indexExpression":{"hexValue":"3634","id":546,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8635:2:0","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8612:26:0","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"id":543,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8606:5:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":542,"name":"uint8","nodeType":"ElementaryTypeName","src":"8606:5:0","typeDescriptions":{}}},"id":548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8606:33:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":541,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8598:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":540,"name":"uint256","nodeType":"ElementaryTypeName","src":"8598:7:0","typeDescriptions":{}}},"id":549,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8598:42:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8583:57:0"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":558,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":552,"name":"vInt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":539,"src":"8662:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"3237","id":553,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8670:2:0","typeDescriptions":{"typeIdentifier":"t_rational_27_by_1","typeString":"int_const 27"},"value":"27"},"src":"8662:10:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":555,"name":"vInt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":539,"src":"8676:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"3238","id":556,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8684:2:0","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"28"},"src":"8676:10:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8662:24:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e76616c696420762076616c7565","id":559,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8688:17:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_f613e52df535beb210f5afa95458c6f7da3e398b02413e7c040934ce67cb08b2","typeString":"literal_string \"Invalid v value\""},"value":"Invalid v value"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f613e52df535beb210f5afa95458c6f7da3e398b02413e7c040934ce67cb08b2","typeString":"literal_string \"Invalid v value\""}],"id":551,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8654:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":560,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8654:52:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":561,"nodeType":"ExpressionStatement","src":"8654:52:0"},{"expression":{"id":569,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":562,"name":"vEncoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":536,"src":"8721:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":567,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":565,"name":"vInt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":539,"src":"8757:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"3237","id":566,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8764:2:0","typeDescriptions":{"typeIdentifier":"t_rational_27_by_1","typeString":"int_const 27"},"value":"27"},"src":"8757:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":563,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"8732:10:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":564,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8743:13:0","memberName":"encodeUint256","nodeType":"MemberAccess","referencedDeclaration":2286,"src":"8732:24:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":568,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8732:35:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"8721:46:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":570,"nodeType":"ExpressionStatement","src":"8721:46:0"}]},{"assignments":[573],"declarations":[{"constant":false,"id":573,"mutability":"mutable","name":"encodedListLength","nameLocation":"8801:17:0","nodeType":"VariableDeclaration","scope":627,"src":"8788:30:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":572,"name":"bytes","nodeType":"ElementaryTypeName","src":"8788:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":574,"nodeType":"VariableDeclarationStatement","src":"8788:30:0"},{"id":609,"nodeType":"UncheckedBlock","src":"8828:479:0","statements":[{"assignments":[576],"declarations":[{"constant":false,"id":576,"mutability":"mutable","name":"listLength","nameLocation":"8860:10:0","nodeType":"VariableDeclaration","scope":609,"src":"8852:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":575,"name":"uint256","nodeType":"ElementaryTypeName","src":"8852:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":598,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":591,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":588,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":581,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":577,"name":"encodedFixedLengthParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":371,"src":"8873:24:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":578,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8898:6:0","memberName":"length","nodeType":"MemberAccess","src":"8873:31:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":579,"name":"encodedDataLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":442,"src":"8923:17:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":580,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8941:6:0","memberName":"length","nodeType":"MemberAccess","src":"8923:24:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8873:74:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"expression":{"id":582,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":365,"src":"8966:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8979:4:0","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":3736,"src":"8966:17:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":584,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8984:6:0","memberName":"length","nodeType":"MemberAccess","src":"8966:24:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8873:117:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":586,"name":"encodedAccessListLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":479,"src":"9009:23:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9033:6:0","memberName":"length","nodeType":"MemberAccess","src":"9009:30:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8873:166:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":589,"name":"rEncoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":486,"src":"9058:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9067:6:0","memberName":"length","nodeType":"MemberAccess","src":"9058:15:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8873:200:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":592,"name":"sEncoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":511,"src":"9092:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":593,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9101:6:0","memberName":"length","nodeType":"MemberAccess","src":"9092:15:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8873:234:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":595,"name":"vEncoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":536,"src":"9126:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9135:6:0","memberName":"length","nodeType":"MemberAccess","src":"9126:15:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8873:268:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8852:289:0"},{"expression":{"id":607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":599,"name":"encodedListLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":573,"src":"9232:17:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":604,"name":"listLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":576,"src":"9284:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":603,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9277:6:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":602,"name":"uint64","nodeType":"ElementaryTypeName","src":"9277:6:0","typeDescriptions":{}}},"id":605,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9277:18:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":600,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"9252:10:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9263:13:0","memberName":"encodeListLen","nodeType":"MemberAccess","referencedDeclaration":2320,"src":"9252:24:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint64_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint64) pure returns (bytes memory)"}},"id":606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9252:44:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"9232:64:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":608,"nodeType":"ExpressionStatement","src":"9232:64:0"}]},{"expression":{"arguments":[{"arguments":[{"hexValue":"01","id":614,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9397:6:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_5fe7f977e71dba2ea1a68e21057beebb9be2ac30c6410aa38d4f3fbe41dcffd2","typeString":"literal_string hex\"01\""},"value":"\u0001"},{"id":615,"name":"encodedListLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":573,"src":"9425:17:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":616,"name":"encodedFixedLengthParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":371,"src":"9464:24:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":617,"name":"encodedDataLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":442,"src":"9510:17:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"id":618,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":365,"src":"9549:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":619,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9562:4:0","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":3736,"src":"9549:17:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":620,"name":"encodedAccessListLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":479,"src":"9588:23:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":621,"name":"vEncoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":536,"src":"9633:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":622,"name":"rEncoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":486,"src":"9663:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":623,"name":"sEncoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":511,"src":"9693:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5fe7f977e71dba2ea1a68e21057beebb9be2ac30c6410aa38d4f3fbe41dcffd2","typeString":"literal_string hex\"01\""},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":612,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9363:5:0","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":611,"name":"bytes","nodeType":"ElementaryTypeName","src":"9363:5:0","typeDescriptions":{}}},"id":613,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9369:6:0","memberName":"concat","nodeType":"MemberAccess","src":"9363:12:0","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9363:356:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":610,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"9336:9:0","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9336:397:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":369,"id":626,"nodeType":"Return","src":"9317:416:0"}]},"documentation":{"id":362,"nodeType":"StructuredDocumentation","src":"5908:164:0","text":"@notice Calculates the hash for an EIP2930 transaction.\n @param _transaction The EIP2930 transaction.\n @return txHash The hash of the transaction."},"id":628,"implemented":true,"kind":"function","modifiers":[],"name":"encodeEIP2930TransactionHash","nameLocation":"6086:28:0","nodeType":"FunctionDefinition","parameters":{"id":366,"nodeType":"ParameterList","parameters":[{"constant":false,"id":365,"mutability":"mutable","name":"_transaction","nameLocation":"6136:12:0","nodeType":"VariableDeclaration","scope":628,"src":"6115:33:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction"},"typeName":{"id":364,"nodeType":"UserDefinedTypeName","pathNode":{"id":363,"name":"Transaction","nameLocations":["6115:11:0"],"nodeType":"IdentifierPath","referencedDeclaration":3746,"src":"6115:11:0"},"referencedDeclaration":3746,"src":"6115:11:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_storage_ptr","typeString":"struct Transaction"}},"visibility":"internal"}],"src":"6114:35:0"},"returnParameters":{"id":369,"nodeType":"ParameterList","parameters":[{"constant":false,"id":368,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":628,"src":"6173:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":367,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6173:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6172:9:0"},"scope":905,"src":"6077:3663:0","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":903,"nodeType":"Block","src":"10019:3882:0","statements":[{"assignments":[638],"declarations":[{"constant":false,"id":638,"mutability":"mutable","name":"encodedFixedLengthParams","nameLocation":"10271:24:0","nodeType":"VariableDeclaration","scope":903,"src":"10258:37:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":637,"name":"bytes","nodeType":"ElementaryTypeName","src":"10258:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":639,"nodeType":"VariableDeclarationStatement","src":"10258:37:0"},{"id":716,"nodeType":"Block","src":"10305:973:0","statements":[{"assignments":[641],"declarations":[{"constant":false,"id":641,"mutability":"mutable","name":"encodedChainId","nameLocation":"10332:14:0","nodeType":"VariableDeclaration","scope":716,"src":"10319:27:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":640,"name":"bytes","nodeType":"ElementaryTypeName","src":"10319:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":647,"initialValue":{"arguments":[{"expression":{"id":644,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"10374:5:0","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10380:7:0","memberName":"chainid","nodeType":"MemberAccess","src":"10374:13:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":642,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"10349:10:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":643,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10360:13:0","memberName":"encodeUint256","nodeType":"MemberAccess","referencedDeclaration":2286,"src":"10349:24:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":646,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10349:39:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"10319:69:0"},{"assignments":[649],"declarations":[{"constant":false,"id":649,"mutability":"mutable","name":"encodedNonce","nameLocation":"10415:12:0","nodeType":"VariableDeclaration","scope":716,"src":"10402:25:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":648,"name":"bytes","nodeType":"ElementaryTypeName","src":"10402:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":655,"initialValue":{"arguments":[{"expression":{"id":652,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":632,"src":"10455:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10468:5:0","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":3728,"src":"10455:18:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":650,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"10430:10:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":651,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10441:13:0","memberName":"encodeUint256","nodeType":"MemberAccess","referencedDeclaration":2286,"src":"10430:24:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":654,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10430:44:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"10402:72:0"},{"assignments":[657],"declarations":[{"constant":false,"id":657,"mutability":"mutable","name":"encodedMaxPriorityFeePerGas","nameLocation":"10501:27:0","nodeType":"VariableDeclaration","scope":716,"src":"10488:40:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":656,"name":"bytes","nodeType":"ElementaryTypeName","src":"10488:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":663,"initialValue":{"arguments":[{"expression":{"id":660,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":632,"src":"10556:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":661,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10569:20:0","memberName":"maxPriorityFeePerGas","nodeType":"MemberAccess","referencedDeclaration":3724,"src":"10556:33:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":658,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"10531:10:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10542:13:0","memberName":"encodeUint256","nodeType":"MemberAccess","referencedDeclaration":2286,"src":"10531:24:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":662,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10531:59:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"10488:102:0"},{"assignments":[665],"declarations":[{"constant":false,"id":665,"mutability":"mutable","name":"encodedMaxFeePerGas","nameLocation":"10617:19:0","nodeType":"VariableDeclaration","scope":716,"src":"10604:32:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":664,"name":"bytes","nodeType":"ElementaryTypeName","src":"10604:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":671,"initialValue":{"arguments":[{"expression":{"id":668,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":632,"src":"10664:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10677:12:0","memberName":"maxFeePerGas","nodeType":"MemberAccess","referencedDeclaration":3722,"src":"10664:25:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":666,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"10639:10:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":667,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10650:13:0","memberName":"encodeUint256","nodeType":"MemberAccess","referencedDeclaration":2286,"src":"10639:24:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":670,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10639:51:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"10604:86:0"},{"assignments":[673],"declarations":[{"constant":false,"id":673,"mutability":"mutable","name":"encodedGasLimit","nameLocation":"10717:15:0","nodeType":"VariableDeclaration","scope":716,"src":"10704:28:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":672,"name":"bytes","nodeType":"ElementaryTypeName","src":"10704:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":679,"initialValue":{"arguments":[{"expression":{"id":676,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":632,"src":"10760:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10773:8:0","memberName":"gasLimit","nodeType":"MemberAccess","referencedDeclaration":3718,"src":"10760:21:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":674,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"10735:10:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10746:13:0","memberName":"encodeUint256","nodeType":"MemberAccess","referencedDeclaration":2286,"src":"10735:24:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":678,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10735:47:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"10704:78:0"},{"assignments":[681],"declarations":[{"constant":false,"id":681,"mutability":"mutable","name":"encodedTo","nameLocation":"10809:9:0","nodeType":"VariableDeclaration","scope":716,"src":"10796:22:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":680,"name":"bytes","nodeType":"ElementaryTypeName","src":"10796:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":693,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"expression":{"id":688,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":632,"src":"10862:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":689,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10875:2:0","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":3716,"src":"10862:15:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":687,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10854:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":686,"name":"uint160","nodeType":"ElementaryTypeName","src":"10854:7:0","typeDescriptions":{}}},"id":690,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10854:24:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":685,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10846:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":684,"name":"address","nodeType":"ElementaryTypeName","src":"10846:7:0","typeDescriptions":{}}},"id":691,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10846:33:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":682,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"10821:10:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":683,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10832:13:0","memberName":"encodeAddress","nodeType":"MemberAccess","referencedDeclaration":2195,"src":"10821:24:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_bytes_memory_ptr_$","typeString":"function (address) pure returns (bytes memory)"}},"id":692,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10821:59:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"10796:84:0"},{"assignments":[695],"declarations":[{"constant":false,"id":695,"mutability":"mutable","name":"encodedValue","nameLocation":"10907:12:0","nodeType":"VariableDeclaration","scope":716,"src":"10894:25:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":694,"name":"bytes","nodeType":"ElementaryTypeName","src":"10894:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":701,"initialValue":{"arguments":[{"expression":{"id":698,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":632,"src":"10947:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":699,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10960:5:0","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":3730,"src":"10947:18:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":696,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"10922:10:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":697,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10933:13:0","memberName":"encodeUint256","nodeType":"MemberAccess","referencedDeclaration":2286,"src":"10922:24:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":700,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10922:44:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"10894:72:0"},{"expression":{"id":714,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":702,"name":"encodedFixedLengthParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":638,"src":"10980:24:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":706,"name":"encodedChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":641,"src":"11037:14:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":707,"name":"encodedNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":649,"src":"11069:12:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":708,"name":"encodedMaxPriorityFeePerGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":657,"src":"11099:27:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":709,"name":"encodedMaxFeePerGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":665,"src":"11144:19:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":710,"name":"encodedGasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":673,"src":"11181:15:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":711,"name":"encodedTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":681,"src":"11214:9:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":712,"name":"encodedValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":695,"src":"11241:12:0","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"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":704,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11007:5:0","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":703,"name":"bytes","nodeType":"ElementaryTypeName","src":"11007:5:0","typeDescriptions":{}}},"id":705,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11013:6:0","memberName":"concat","nodeType":"MemberAccess","src":"11007:12:0","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":713,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11007:260:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"10980:287:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":715,"nodeType":"ExpressionStatement","src":"10980:287:0"}]},{"assignments":[718],"declarations":[{"constant":false,"id":718,"mutability":"mutable","name":"encodedDataLength","nameLocation":"11467:17:0","nodeType":"VariableDeclaration","scope":903,"src":"11454:30:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":717,"name":"bytes","nodeType":"ElementaryTypeName","src":"11454:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":719,"nodeType":"VariableDeclarationStatement","src":"11454:30:0"},{"id":753,"nodeType":"Block","src":"11494:677:0","statements":[{"assignments":[721],"declarations":[{"constant":false,"id":721,"mutability":"mutable","name":"txDataLen","nameLocation":"11603:9:0","nodeType":"VariableDeclaration","scope":753,"src":"11596:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":720,"name":"uint64","nodeType":"ElementaryTypeName","src":"11596:6:0","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":728,"initialValue":{"arguments":[{"expression":{"expression":{"id":724,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":632,"src":"11622:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11635:4:0","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":3736,"src":"11622:17:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":726,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11640:6:0","memberName":"length","nodeType":"MemberAccess","src":"11622:24:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":723,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11615:6:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":722,"name":"uint64","nodeType":"ElementaryTypeName","src":"11615:6:0","typeDescriptions":{}}},"id":727,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11615:32:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"11596:51:0"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":729,"name":"txDataLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":721,"src":"11665:9:0","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"31","id":730,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11678:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"11665:14:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"id":745,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":740,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":632,"src":"11900:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11913:4:0","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":3736,"src":"11900:17:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":743,"indexExpression":{"hexValue":"30","id":742,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11918:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11900:20:0","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30783830","id":744,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11924:4:0","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"0x80"},"src":"11900:28:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":751,"nodeType":"IfStatement","src":"11896:206:0","trueBody":{"id":750,"nodeType":"Block","src":"11930:172:0","statements":[{"expression":{"id":748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":746,"name":"encodedDataLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":718,"src":"12060:17:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"81","id":747,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"12080:7:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_1fed454f35701d8970ad2ac06907e973314989ab6eb948eda79c00e416c4bdeb","typeString":"literal_string hex\"81\""}},"src":"12060:27:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":749,"nodeType":"ExpressionStatement","src":"12060:27:0"}]}},"id":752,"nodeType":"IfStatement","src":"11661:441:0","trueBody":{"id":739,"nodeType":"Block","src":"11681:209:0","statements":[{"expression":{"id":737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":732,"name":"encodedDataLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":718,"src":"11810:17:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":735,"name":"txDataLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":721,"src":"11865:9:0","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":733,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"11830:10:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11841:23:0","memberName":"encodeNonSingleBytesLen","nodeType":"MemberAccess","referencedDeclaration":2306,"src":"11830:34:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint64_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint64) pure returns (bytes memory)"}},"id":736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11830:45:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"11810:65:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":738,"nodeType":"ExpressionStatement","src":"11810:65:0"}]}}]},{"assignments":[755],"declarations":[{"constant":false,"id":755,"mutability":"mutable","name":"encodedAccessListLength","nameLocation":"12272:23:0","nodeType":"VariableDeclaration","scope":903,"src":"12259:36:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":754,"name":"bytes","nodeType":"ElementaryTypeName","src":"12259:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":760,"initialValue":{"arguments":[{"hexValue":"30","id":758,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12323:1:0","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"}],"expression":{"id":756,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"12298:10:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":757,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12309:13:0","memberName":"encodeListLen","nodeType":"MemberAccess","referencedDeclaration":2320,"src":"12298:24:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint64_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint64) pure returns (bytes memory)"}},"id":759,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12298:27:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"12259:66:0"},{"assignments":[762],"declarations":[{"constant":false,"id":762,"mutability":"mutable","name":"rEncoded","nameLocation":"12349:8:0","nodeType":"VariableDeclaration","scope":903,"src":"12336:21:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":761,"name":"bytes","nodeType":"ElementaryTypeName","src":"12336:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":763,"nodeType":"VariableDeclarationStatement","src":"12336:21:0"},{"id":785,"nodeType":"Block","src":"12367:141:0","statements":[{"assignments":[765],"declarations":[{"constant":false,"id":765,"mutability":"mutable","name":"rInt","nameLocation":"12389:4:0","nodeType":"VariableDeclaration","scope":785,"src":"12381:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":764,"name":"uint256","nodeType":"ElementaryTypeName","src":"12381:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":777,"initialValue":{"arguments":[{"arguments":[{"baseExpression":{"expression":{"id":770,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":632,"src":"12412:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":771,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12425:9:0","memberName":"signature","nodeType":"MemberAccess","referencedDeclaration":3738,"src":"12412:22:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"endExpression":{"hexValue":"3332","id":773,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12437:2:0","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"id":774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"12412:28:0","startExpression":{"hexValue":"30","id":772,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12435:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}],"id":769,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12404:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":768,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12404:7:0","typeDescriptions":{}}},"id":775,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12404:37:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":767,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12396:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":766,"name":"uint256","nodeType":"ElementaryTypeName","src":"12396:7:0","typeDescriptions":{}}},"id":776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12396:46:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"12381:61:0"},{"expression":{"id":783,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":778,"name":"rEncoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":762,"src":"12456:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":781,"name":"rInt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":765,"src":"12492:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":779,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"12467:10:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12478:13:0","memberName":"encodeUint256","nodeType":"MemberAccess","referencedDeclaration":2286,"src":"12467:24:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":782,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12467:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"12456:41:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":784,"nodeType":"ExpressionStatement","src":"12456:41:0"}]},{"assignments":[787],"declarations":[{"constant":false,"id":787,"mutability":"mutable","name":"sEncoded","nameLocation":"12530:8:0","nodeType":"VariableDeclaration","scope":903,"src":"12517:21:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":786,"name":"bytes","nodeType":"ElementaryTypeName","src":"12517:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":788,"nodeType":"VariableDeclarationStatement","src":"12517:21:0"},{"id":810,"nodeType":"Block","src":"12548:142:0","statements":[{"assignments":[790],"declarations":[{"constant":false,"id":790,"mutability":"mutable","name":"sInt","nameLocation":"12570:4:0","nodeType":"VariableDeclaration","scope":810,"src":"12562:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":789,"name":"uint256","nodeType":"ElementaryTypeName","src":"12562:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":802,"initialValue":{"arguments":[{"arguments":[{"baseExpression":{"expression":{"id":795,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":632,"src":"12593:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":796,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12606:9:0","memberName":"signature","nodeType":"MemberAccess","referencedDeclaration":3738,"src":"12593:22:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"endExpression":{"hexValue":"3634","id":798,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12619:2:0","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"id":799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"12593:29:0","startExpression":{"hexValue":"3332","id":797,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12616:2:0","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}],"id":794,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12585:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":793,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12585:7:0","typeDescriptions":{}}},"id":800,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12585:38:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":792,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12577:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":791,"name":"uint256","nodeType":"ElementaryTypeName","src":"12577:7:0","typeDescriptions":{}}},"id":801,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12577:47:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"12562:62:0"},{"expression":{"id":808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":803,"name":"sEncoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":787,"src":"12638:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":806,"name":"sInt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":790,"src":"12674:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":804,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"12649:10:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":805,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12660:13:0","memberName":"encodeUint256","nodeType":"MemberAccess","referencedDeclaration":2286,"src":"12649:24:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":807,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12649:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"12638:41:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":809,"nodeType":"ExpressionStatement","src":"12638:41:0"}]},{"assignments":[812],"declarations":[{"constant":false,"id":812,"mutability":"mutable","name":"vEncoded","nameLocation":"12712:8:0","nodeType":"VariableDeclaration","scope":903,"src":"12699:21:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":811,"name":"bytes","nodeType":"ElementaryTypeName","src":"12699:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":813,"nodeType":"VariableDeclarationStatement","src":"12699:21:0"},{"id":847,"nodeType":"Block","src":"12730:209:0","statements":[{"assignments":[815],"declarations":[{"constant":false,"id":815,"mutability":"mutable","name":"vInt","nameLocation":"12752:4:0","nodeType":"VariableDeclaration","scope":847,"src":"12744:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":814,"name":"uint256","nodeType":"ElementaryTypeName","src":"12744:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":826,"initialValue":{"arguments":[{"arguments":[{"baseExpression":{"expression":{"id":820,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":632,"src":"12773:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":821,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12786:9:0","memberName":"signature","nodeType":"MemberAccess","referencedDeclaration":3738,"src":"12773:22:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":823,"indexExpression":{"hexValue":"3634","id":822,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12796:2:0","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12773:26:0","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"id":819,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12767:5:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":818,"name":"uint8","nodeType":"ElementaryTypeName","src":"12767:5:0","typeDescriptions":{}}},"id":824,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12767:33:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":817,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12759:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":816,"name":"uint256","nodeType":"ElementaryTypeName","src":"12759:7:0","typeDescriptions":{}}},"id":825,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12759:42:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"12744:57:0"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":828,"name":"vInt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":815,"src":"12823:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"3237","id":829,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12831:2:0","typeDescriptions":{"typeIdentifier":"t_rational_27_by_1","typeString":"int_const 27"},"value":"27"},"src":"12823:10:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":831,"name":"vInt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":815,"src":"12837:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"3238","id":832,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12845:2:0","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"28"},"src":"12837:10:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"12823:24:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e76616c696420762076616c7565","id":835,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12849:17:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_f613e52df535beb210f5afa95458c6f7da3e398b02413e7c040934ce67cb08b2","typeString":"literal_string \"Invalid v value\""},"value":"Invalid v value"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f613e52df535beb210f5afa95458c6f7da3e398b02413e7c040934ce67cb08b2","typeString":"literal_string \"Invalid v value\""}],"id":827,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"12815:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12815:52:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":837,"nodeType":"ExpressionStatement","src":"12815:52:0"},{"expression":{"id":845,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":838,"name":"vEncoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":812,"src":"12882:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":843,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":841,"name":"vInt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":815,"src":"12918:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"3237","id":842,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12925:2:0","typeDescriptions":{"typeIdentifier":"t_rational_27_by_1","typeString":"int_const 27"},"value":"27"},"src":"12918:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":839,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"12893:10:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12904:13:0","memberName":"encodeUint256","nodeType":"MemberAccess","referencedDeclaration":2286,"src":"12893:24:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":844,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12893:35:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"12882:46:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":846,"nodeType":"ExpressionStatement","src":"12882:46:0"}]},{"assignments":[849],"declarations":[{"constant":false,"id":849,"mutability":"mutable","name":"encodedListLength","nameLocation":"12962:17:0","nodeType":"VariableDeclaration","scope":903,"src":"12949:30:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":848,"name":"bytes","nodeType":"ElementaryTypeName","src":"12949:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":850,"nodeType":"VariableDeclarationStatement","src":"12949:30:0"},{"id":885,"nodeType":"UncheckedBlock","src":"12989:479:0","statements":[{"assignments":[852],"declarations":[{"constant":false,"id":852,"mutability":"mutable","name":"listLength","nameLocation":"13021:10:0","nodeType":"VariableDeclaration","scope":885,"src":"13013:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":851,"name":"uint256","nodeType":"ElementaryTypeName","src":"13013:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":874,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":873,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":867,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":864,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":861,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":853,"name":"encodedFixedLengthParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":638,"src":"13034:24:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":854,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13059:6:0","memberName":"length","nodeType":"MemberAccess","src":"13034:31:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":855,"name":"encodedDataLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":718,"src":"13084:17:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13102:6:0","memberName":"length","nodeType":"MemberAccess","src":"13084:24:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13034:74:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"expression":{"id":858,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":632,"src":"13127:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":859,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13140:4:0","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":3736,"src":"13127:17:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13145:6:0","memberName":"length","nodeType":"MemberAccess","src":"13127:24:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13034:117:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":862,"name":"encodedAccessListLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":755,"src":"13170:23:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13194:6:0","memberName":"length","nodeType":"MemberAccess","src":"13170:30:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13034:166:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":865,"name":"rEncoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":762,"src":"13219:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":866,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13228:6:0","memberName":"length","nodeType":"MemberAccess","src":"13219:15:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13034:200:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":868,"name":"sEncoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":787,"src":"13253:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13262:6:0","memberName":"length","nodeType":"MemberAccess","src":"13253:15:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13034:234:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":871,"name":"vEncoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":812,"src":"13287:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13296:6:0","memberName":"length","nodeType":"MemberAccess","src":"13287:15:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13034:268:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13013:289:0"},{"expression":{"id":883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":875,"name":"encodedListLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":849,"src":"13393:17:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":880,"name":"listLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":852,"src":"13445:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":879,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13438:6:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":878,"name":"uint64","nodeType":"ElementaryTypeName","src":"13438:6:0","typeDescriptions":{}}},"id":881,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13438:18:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":876,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"13413:10:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13424:13:0","memberName":"encodeListLen","nodeType":"MemberAccess","referencedDeclaration":2320,"src":"13413:24:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint64_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint64) pure returns (bytes memory)"}},"id":882,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13413:44:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"13393:64:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":884,"nodeType":"ExpressionStatement","src":"13393:64:0"}]},{"expression":{"arguments":[{"arguments":[{"hexValue":"02","id":890,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13558:6:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_f2ee15ea639b73fa3db9b34a245bdfa015c260c598b211bf05a1ecc4b3e3b4f2","typeString":"literal_string hex\"02\""},"value":"\u0002"},{"id":891,"name":"encodedListLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":849,"src":"13586:17:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":892,"name":"encodedFixedLengthParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":638,"src":"13625:24:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":893,"name":"encodedDataLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":718,"src":"13671:17:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"id":894,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":632,"src":"13710:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":895,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13723:4:0","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":3736,"src":"13710:17:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":896,"name":"encodedAccessListLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":755,"src":"13749:23:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":897,"name":"vEncoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":812,"src":"13794:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":898,"name":"rEncoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":762,"src":"13824:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":899,"name":"sEncoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":787,"src":"13854:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f2ee15ea639b73fa3db9b34a245bdfa015c260c598b211bf05a1ecc4b3e3b4f2","typeString":"literal_string hex\"02\""},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":888,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13524:5:0","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":887,"name":"bytes","nodeType":"ElementaryTypeName","src":"13524:5:0","typeDescriptions":{}}},"id":889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13530:6:0","memberName":"concat","nodeType":"MemberAccess","src":"13524:12:0","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":900,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13524:356:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":886,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"13497:9:0","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":901,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13497:397:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":636,"id":902,"nodeType":"Return","src":"13478:416:0"}]},"documentation":{"id":629,"nodeType":"StructuredDocumentation","src":"9746:163:0","text":"@notice Calculates the hash for an EIP1559 transaction.\n @param _transaction The legacy transaction.\n @return txHash The hash of the transaction."},"id":904,"implemented":true,"kind":"function","modifiers":[],"name":"encodeEIP1559TransactionHash","nameLocation":"9923:28:0","nodeType":"FunctionDefinition","parameters":{"id":633,"nodeType":"ParameterList","parameters":[{"constant":false,"id":632,"mutability":"mutable","name":"_transaction","nameLocation":"9973:12:0","nodeType":"VariableDeclaration","scope":904,"src":"9952:33:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction"},"typeName":{"id":631,"nodeType":"UserDefinedTypeName","pathNode":{"id":630,"name":"Transaction","nameLocations":["9952:11:0"],"nodeType":"IdentifierPath","referencedDeclaration":3746,"src":"9952:11:0"},"referencedDeclaration":3746,"src":"9952:11:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_storage_ptr","typeString":"struct Transaction"}},"visibility":"internal"}],"src":"9951:35:0"},"returnParameters":{"id":636,"nodeType":"ParameterList","parameters":[{"constant":false,"id":635,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":904,"src":"10010:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":634,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10010:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"10009:9:0"},"scope":905,"src":"9914:3987:0","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":906,"src":"373:13530:0","usedErrors":[]}],"src":"33:13871:0"}},"@matterlabs/zksync-contracts/l2/system-contracts/Constants.sol":{"id":1,"ast":{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/Constants.sol","exportedSymbols":{"ACCOUNT_CODE_STORAGE_SYSTEM_CONTRACT":[969],"BOOTLOADER_FORMAL_ADDRESS":[958],"BOOTLOADER_UTILITIES":[1084],"BYTECODE_COMPRESSOR_CONTRACT":[1103],"BootloaderUtilities":[905],"CREATE2_PREFIX":[1119],"CREATE_PREFIX":[1123],"CURRENT_MAX_PRECOMPILE_ADDRESS":[947],"DEPLOYER_SYSTEM_CONTRACT":[1013],"ECRECOVER_SYSTEM_CONTRACT":[931],"ETH_TOKEN_SYSTEM_CONTRACT":[1051],"EVENT_WRITER_CONTRACT":[1092],"FORCE_DEPLOYER":[1021],"IAccountCodeStorage":[1166],"IBytecodeCompressor":[1192],"IContractDeployer":[1327],"IEthToken":[1400],"IImmutableSimulator":[1426],"IKnownCodesStorage":[1459],"IL1Messenger":[1477],"IMMUTABLE_SIMULATOR_SYSTEM_CONTRACT":[1002],"INonceHolder":[1571],"ISystemContext":[1704],"ImmutableData":[1407],"KECCAK256_SYSTEM_CONTRACT":[1059],"KNOWN_CODE_STORAGE_CONTRACT":[991],"L1_MESSENGER_CONTRACT":[1032],"MAX_MSG_VALUE":[1115],"MAX_SYSTEM_CONTRACT_ADDRESS":[925],"MSG_VALUE_SIMULATOR_IS_SYSTEM_BIT":[1107],"MSG_VALUE_SYSTEM_CONTRACT":[1040],"NONCE_HOLDER_SYSTEM_CONTRACT":[980],"SHA256_SYSTEM_CONTRACT":[937],"SYSTEM_CONTEXT_CONTRACT":[1073],"SYSTEM_CONTRACTS_OFFSET":[921]},"id":1124,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":907,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"33:23:1"},{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IAccountCodeStorage.sol","file":"./interfaces/IAccountCodeStorage.sol","id":908,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1124,"sourceUnit":1167,"src":"58:46:1","symbolAliases":[],"unitAlias":""},{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/INonceHolder.sol","file":"./interfaces/INonceHolder.sol","id":909,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1124,"sourceUnit":1572,"src":"105:39:1","symbolAliases":[],"unitAlias":""},{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IContractDeployer.sol","file":"./interfaces/IContractDeployer.sol","id":910,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1124,"sourceUnit":1328,"src":"145:44:1","symbolAliases":[],"unitAlias":""},{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IKnownCodesStorage.sol","file":"./interfaces/IKnownCodesStorage.sol","id":911,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1124,"sourceUnit":1460,"src":"190:45:1","symbolAliases":[],"unitAlias":""},{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IImmutableSimulator.sol","file":"./interfaces/IImmutableSimulator.sol","id":912,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1124,"sourceUnit":1427,"src":"236:46:1","symbolAliases":[],"unitAlias":""},{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IEthToken.sol","file":"./interfaces/IEthToken.sol","id":913,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1124,"sourceUnit":1401,"src":"283:36:1","symbolAliases":[],"unitAlias":""},{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IL1Messenger.sol","file":"./interfaces/IL1Messenger.sol","id":914,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1124,"sourceUnit":1478,"src":"320:39:1","symbolAliases":[],"unitAlias":""},{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/ISystemContext.sol","file":"./interfaces/ISystemContext.sol","id":915,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1124,"sourceUnit":1705,"src":"360:41:1","symbolAliases":[],"unitAlias":""},{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBytecodeCompressor.sol","file":"./interfaces/IBytecodeCompressor.sol","id":916,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1124,"sourceUnit":1193,"src":"402:46:1","symbolAliases":[],"unitAlias":""},{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/BootloaderUtilities.sol","file":"./BootloaderUtilities.sol","id":917,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1124,"sourceUnit":906,"src":"449:35:1","symbolAliases":[],"unitAlias":""},{"constant":true,"id":921,"mutability":"constant","name":"SYSTEM_CONTRACTS_OFFSET","nameLocation":"656:23:1","nodeType":"VariableDeclaration","scope":1124,"src":"639:49:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"},"typeName":{"id":919,"name":"uint160","nodeType":"ElementaryTypeName","src":"639:7:1","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"value":{"hexValue":"307838303030","id":920,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"682:6:1","typeDescriptions":{"typeIdentifier":"t_rational_32768_by_1","typeString":"int_const 32768"},"value":"0x8000"},"visibility":"internal"},{"constant":true,"id":925,"mutability":"constant","name":"MAX_SYSTEM_CONTRACT_ADDRESS","nameLocation":"832:27:1","nodeType":"VariableDeclaration","scope":1124,"src":"815:53:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"},"typeName":{"id":923,"name":"uint160","nodeType":"ElementaryTypeName","src":"815:7:1","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"value":{"hexValue":"307866666666","id":924,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"862:6:1","typeDescriptions":{"typeIdentifier":"t_rational_65535_by_1","typeString":"int_const 65535"},"value":"0xffff"},"visibility":"internal"},{"constant":true,"id":931,"mutability":"constant","name":"ECRECOVER_SYSTEM_CONTRACT","nameLocation":"900:25:1","nodeType":"VariableDeclaration","scope":1124,"src":"883:58:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":926,"name":"address","nodeType":"ElementaryTypeName","src":"883:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"30783031","id":929,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"936:4:1","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":928,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"928:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":927,"name":"address","nodeType":"ElementaryTypeName","src":"928:7:1","typeDescriptions":{}}},"id":930,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"928:13:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":true,"id":937,"mutability":"constant","name":"SHA256_SYSTEM_CONTRACT","nameLocation":"960:22:1","nodeType":"VariableDeclaration","scope":1124,"src":"943:55:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":932,"name":"address","nodeType":"ElementaryTypeName","src":"943:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"30783032","id":935,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"993:4:1","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"0x02"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":934,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"985:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":933,"name":"address","nodeType":"ElementaryTypeName","src":"985:7:1","typeDescriptions":{}}},"id":936,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"985:13:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":true,"id":947,"mutability":"constant","name":"CURRENT_MAX_PRECOMPILE_ADDRESS","nameLocation":"1253:30:1","nodeType":"VariableDeclaration","scope":1124,"src":"1236:90:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":939,"name":"uint256","nodeType":"ElementaryTypeName","src":"1236:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"arguments":[{"arguments":[{"id":944,"name":"SHA256_SYSTEM_CONTRACT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":937,"src":"1302:22:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":943,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1294:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":942,"name":"uint160","nodeType":"ElementaryTypeName","src":"1294:7:1","typeDescriptions":{}}},"id":945,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1294:31:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":941,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1286:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":940,"name":"uint256","nodeType":"ElementaryTypeName","src":"1286:7:1","typeDescriptions":{}}},"id":946,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1286:40:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":true,"id":958,"mutability":"constant","name":"BOOTLOADER_FORMAL_ADDRESS","nameLocation":"1354:25:1","nodeType":"VariableDeclaration","scope":1124,"src":"1329:101:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":948,"name":"address","nodeType":"ElementaryTypeName","src":"1329:15:1","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"value":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint160","typeString":"uint160"},"id":955,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":953,"name":"SYSTEM_CONTRACTS_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":921,"src":"1398:23:1","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"30783031","id":954,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1424:4:1","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"0x01"},"src":"1398:30:1","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":952,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1390:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":951,"name":"address","nodeType":"ElementaryTypeName","src":"1390:7:1","typeDescriptions":{}}},"id":956,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1390:39:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":950,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1382:8:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":949,"name":"address","nodeType":"ElementaryTypeName","src":"1382:8:1","stateMutability":"payable","typeDescriptions":{}}},"id":957,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1382:48:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":true,"id":969,"mutability":"constant","name":"ACCOUNT_CODE_STORAGE_SYSTEM_CONTRACT","nameLocation":"1461:36:1","nodeType":"VariableDeclaration","scope":1124,"src":"1432:134:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IAccountCodeStorage_$1166","typeString":"contract IAccountCodeStorage"},"typeName":{"id":960,"nodeType":"UserDefinedTypeName","pathNode":{"id":959,"name":"IAccountCodeStorage","nameLocations":["1432:19:1"],"nodeType":"IdentifierPath","referencedDeclaration":1166,"src":"1432:19:1"},"referencedDeclaration":1166,"src":"1432:19:1","typeDescriptions":{"typeIdentifier":"t_contract$_IAccountCodeStorage_$1166","typeString":"contract IAccountCodeStorage"}},"value":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint160","typeString":"uint160"},"id":966,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":964,"name":"SYSTEM_CONTRACTS_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":921,"src":"1533:23:1","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"30783032","id":965,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1559:4:1","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"0x02"},"src":"1533:30:1","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":963,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1525:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":962,"name":"address","nodeType":"ElementaryTypeName","src":"1525:7:1","typeDescriptions":{}}},"id":967,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1525:39:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":961,"name":"IAccountCodeStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1166,"src":"1500:19:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAccountCodeStorage_$1166_$","typeString":"type(contract IAccountCodeStorage)"}},"id":968,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1500:66:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IAccountCodeStorage_$1166","typeString":"contract IAccountCodeStorage"}},"visibility":"internal"},{"constant":true,"id":980,"mutability":"constant","name":"NONCE_HOLDER_SYSTEM_CONTRACT","nameLocation":"1590:28:1","nodeType":"VariableDeclaration","scope":1124,"src":"1568:106:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_INonceHolder_$1571","typeString":"contract INonceHolder"},"typeName":{"id":971,"nodeType":"UserDefinedTypeName","pathNode":{"id":970,"name":"INonceHolder","nameLocations":["1568:12:1"],"nodeType":"IdentifierPath","referencedDeclaration":1571,"src":"1568:12:1"},"referencedDeclaration":1571,"src":"1568:12:1","typeDescriptions":{"typeIdentifier":"t_contract$_INonceHolder_$1571","typeString":"contract INonceHolder"}},"value":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint160","typeString":"uint160"},"id":977,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":975,"name":"SYSTEM_CONTRACTS_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":921,"src":"1642:23:1","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"30783033","id":976,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1668:4:1","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"0x03"},"src":"1642:30:1","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":974,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1634:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":973,"name":"address","nodeType":"ElementaryTypeName","src":"1634:7:1","typeDescriptions":{}}},"id":978,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1634:39:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":972,"name":"INonceHolder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1571,"src":"1621:12:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_INonceHolder_$1571_$","typeString":"type(contract INonceHolder)"}},"id":979,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1621:53:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_INonceHolder_$1571","typeString":"contract INonceHolder"}},"visibility":"internal"},{"constant":true,"id":991,"mutability":"constant","name":"KNOWN_CODE_STORAGE_CONTRACT","nameLocation":"1704:27:1","nodeType":"VariableDeclaration","scope":1124,"src":"1676:117:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IKnownCodesStorage_$1459","typeString":"contract IKnownCodesStorage"},"typeName":{"id":982,"nodeType":"UserDefinedTypeName","pathNode":{"id":981,"name":"IKnownCodesStorage","nameLocations":["1676:18:1"],"nodeType":"IdentifierPath","referencedDeclaration":1459,"src":"1676:18:1"},"referencedDeclaration":1459,"src":"1676:18:1","typeDescriptions":{"typeIdentifier":"t_contract$_IKnownCodesStorage_$1459","typeString":"contract IKnownCodesStorage"}},"value":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint160","typeString":"uint160"},"id":988,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":986,"name":"SYSTEM_CONTRACTS_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":921,"src":"1761:23:1","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"30783034","id":987,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1787:4:1","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"0x04"},"src":"1761:30:1","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":985,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1753:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":984,"name":"address","nodeType":"ElementaryTypeName","src":"1753:7:1","typeDescriptions":{}}},"id":989,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1753:39:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":983,"name":"IKnownCodesStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1459,"src":"1734:18:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IKnownCodesStorage_$1459_$","typeString":"type(contract IKnownCodesStorage)"}},"id":990,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1734:59:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IKnownCodesStorage_$1459","typeString":"contract IKnownCodesStorage"}},"visibility":"internal"},{"constant":true,"id":1002,"mutability":"constant","name":"IMMUTABLE_SIMULATOR_SYSTEM_CONTRACT","nameLocation":"1824:35:1","nodeType":"VariableDeclaration","scope":1124,"src":"1795:133:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IImmutableSimulator_$1426","typeString":"contract IImmutableSimulator"},"typeName":{"id":993,"nodeType":"UserDefinedTypeName","pathNode":{"id":992,"name":"IImmutableSimulator","nameLocations":["1795:19:1"],"nodeType":"IdentifierPath","referencedDeclaration":1426,"src":"1795:19:1"},"referencedDeclaration":1426,"src":"1795:19:1","typeDescriptions":{"typeIdentifier":"t_contract$_IImmutableSimulator_$1426","typeString":"contract IImmutableSimulator"}},"value":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint160","typeString":"uint160"},"id":999,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":997,"name":"SYSTEM_CONTRACTS_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":921,"src":"1895:23:1","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"30783035","id":998,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1921:4:1","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"0x05"},"src":"1895:30:1","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":996,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1887:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":995,"name":"address","nodeType":"ElementaryTypeName","src":"1887:7:1","typeDescriptions":{}}},"id":1000,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1887:39:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":994,"name":"IImmutableSimulator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1426,"src":"1862:19:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IImmutableSimulator_$1426_$","typeString":"type(contract IImmutableSimulator)"}},"id":1001,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1862:66:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IImmutableSimulator_$1426","typeString":"contract IImmutableSimulator"}},"visibility":"internal"},{"constant":true,"id":1013,"mutability":"constant","name":"DEPLOYER_SYSTEM_CONTRACT","nameLocation":"1957:24:1","nodeType":"VariableDeclaration","scope":1124,"src":"1930:112:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IContractDeployer_$1327","typeString":"contract IContractDeployer"},"typeName":{"id":1004,"nodeType":"UserDefinedTypeName","pathNode":{"id":1003,"name":"IContractDeployer","nameLocations":["1930:17:1"],"nodeType":"IdentifierPath","referencedDeclaration":1327,"src":"1930:17:1"},"referencedDeclaration":1327,"src":"1930:17:1","typeDescriptions":{"typeIdentifier":"t_contract$_IContractDeployer_$1327","typeString":"contract IContractDeployer"}},"value":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint160","typeString":"uint160"},"id":1010,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":1008,"name":"SYSTEM_CONTRACTS_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":921,"src":"2010:23:1","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"30783036","id":1009,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2036:4:1","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"0x06"},"src":"2010:30:1","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":1007,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2002:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1006,"name":"address","nodeType":"ElementaryTypeName","src":"2002:7:1","typeDescriptions":{}}},"id":1011,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2002:39:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1005,"name":"IContractDeployer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1327,"src":"1984:17:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IContractDeployer_$1327_$","typeString":"type(contract IContractDeployer)"}},"id":1012,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1984:58:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IContractDeployer_$1327","typeString":"contract IContractDeployer"}},"visibility":"internal"},{"constant":true,"id":1021,"mutability":"constant","name":"FORCE_DEPLOYER","nameLocation":"2169:14:1","nodeType":"VariableDeclaration","scope":1124,"src":"2152:73:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1014,"name":"address","nodeType":"ElementaryTypeName","src":"2152:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"commonType":{"typeIdentifier":"t_uint160","typeString":"uint160"},"id":1019,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":1017,"name":"SYSTEM_CONTRACTS_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":921,"src":"2194:23:1","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"30783037","id":1018,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2220:4:1","typeDescriptions":{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"},"value":"0x07"},"src":"2194:30:1","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":1016,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2186:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1015,"name":"address","nodeType":"ElementaryTypeName","src":"2186:7:1","typeDescriptions":{}}},"id":1020,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2186:39:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":true,"id":1032,"mutability":"constant","name":"L1_MESSENGER_CONTRACT","nameLocation":"2249:21:1","nodeType":"VariableDeclaration","scope":1124,"src":"2227:99:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IL1Messenger_$1477","typeString":"contract IL1Messenger"},"typeName":{"id":1023,"nodeType":"UserDefinedTypeName","pathNode":{"id":1022,"name":"IL1Messenger","nameLocations":["2227:12:1"],"nodeType":"IdentifierPath","referencedDeclaration":1477,"src":"2227:12:1"},"referencedDeclaration":1477,"src":"2227:12:1","typeDescriptions":{"typeIdentifier":"t_contract$_IL1Messenger_$1477","typeString":"contract IL1Messenger"}},"value":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint160","typeString":"uint160"},"id":1029,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":1027,"name":"SYSTEM_CONTRACTS_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":921,"src":"2294:23:1","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"30783038","id":1028,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2320:4:1","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"0x08"},"src":"2294:30:1","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":1026,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2286:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1025,"name":"address","nodeType":"ElementaryTypeName","src":"2286:7:1","typeDescriptions":{}}},"id":1030,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2286:39:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1024,"name":"IL1Messenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1477,"src":"2273:12:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IL1Messenger_$1477_$","typeString":"type(contract IL1Messenger)"}},"id":1031,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2273:53:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IL1Messenger_$1477","typeString":"contract IL1Messenger"}},"visibility":"internal"},{"constant":true,"id":1040,"mutability":"constant","name":"MSG_VALUE_SYSTEM_CONTRACT","nameLocation":"2345:25:1","nodeType":"VariableDeclaration","scope":1124,"src":"2328:84:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1033,"name":"address","nodeType":"ElementaryTypeName","src":"2328:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"commonType":{"typeIdentifier":"t_uint160","typeString":"uint160"},"id":1038,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":1036,"name":"SYSTEM_CONTRACTS_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":921,"src":"2381:23:1","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"30783039","id":1037,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2407:4:1","typeDescriptions":{"typeIdentifier":"t_rational_9_by_1","typeString":"int_const 9"},"value":"0x09"},"src":"2381:30:1","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":1035,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2373:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1034,"name":"address","nodeType":"ElementaryTypeName","src":"2373:7:1","typeDescriptions":{}}},"id":1039,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2373:39:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":true,"id":1051,"mutability":"constant","name":"ETH_TOKEN_SYSTEM_CONTRACT","nameLocation":"2434:25:1","nodeType":"VariableDeclaration","scope":1124,"src":"2415:97:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IEthToken_$1400","typeString":"contract IEthToken"},"typeName":{"id":1042,"nodeType":"UserDefinedTypeName","pathNode":{"id":1041,"name":"IEthToken","nameLocations":["2415:9:1"],"nodeType":"IdentifierPath","referencedDeclaration":1400,"src":"2415:9:1"},"referencedDeclaration":1400,"src":"2415:9:1","typeDescriptions":{"typeIdentifier":"t_contract$_IEthToken_$1400","typeString":"contract IEthToken"}},"value":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint160","typeString":"uint160"},"id":1048,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":1046,"name":"SYSTEM_CONTRACTS_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":921,"src":"2480:23:1","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"30783061","id":1047,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2506:4:1","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"0x0a"},"src":"2480:30:1","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":1045,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2472:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1044,"name":"address","nodeType":"ElementaryTypeName","src":"2472:7:1","typeDescriptions":{}}},"id":1049,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2472:39:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1043,"name":"IEthToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1400,"src":"2462:9:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IEthToken_$1400_$","typeString":"type(contract IEthToken)"}},"id":1050,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2462:50:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IEthToken_$1400","typeString":"contract IEthToken"}},"visibility":"internal"},{"constant":true,"id":1059,"mutability":"constant","name":"KECCAK256_SYSTEM_CONTRACT","nameLocation":"2532:25:1","nodeType":"VariableDeclaration","scope":1124,"src":"2515:84:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1052,"name":"address","nodeType":"ElementaryTypeName","src":"2515:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"commonType":{"typeIdentifier":"t_uint160","typeString":"uint160"},"id":1057,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":1055,"name":"SYSTEM_CONTRACTS_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":921,"src":"2568:23:1","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"30783130","id":1056,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2594:4:1","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"0x10"},"src":"2568:30:1","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":1054,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2560:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1053,"name":"address","nodeType":"ElementaryTypeName","src":"2560:7:1","typeDescriptions":{}}},"id":1058,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2560:39:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":true,"id":1073,"mutability":"constant","name":"SYSTEM_CONTEXT_CONTRACT","nameLocation":"2626:23:1","nodeType":"VariableDeclaration","scope":1124,"src":"2602:114:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ISystemContext_$1704","typeString":"contract ISystemContext"},"typeName":{"id":1061,"nodeType":"UserDefinedTypeName","pathNode":{"id":1060,"name":"ISystemContext","nameLocations":["2602:14:1"],"nodeType":"IdentifierPath","referencedDeclaration":1704,"src":"2602:14:1"},"referencedDeclaration":1704,"src":"2602:14:1","typeDescriptions":{"typeIdentifier":"t_contract$_ISystemContext_$1704","typeString":"contract ISystemContext"}},"value":{"arguments":[{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint160","typeString":"uint160"},"id":1069,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":1067,"name":"SYSTEM_CONTRACTS_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":921,"src":"2683:23:1","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"30783062","id":1068,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2709:4:1","typeDescriptions":{"typeIdentifier":"t_rational_11_by_1","typeString":"int_const 11"},"value":"0x0b"},"src":"2683:30:1","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":1066,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2675:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1065,"name":"address","nodeType":"ElementaryTypeName","src":"2675:7:1","typeDescriptions":{}}},"id":1070,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2675:39:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1064,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2667:8:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":1063,"name":"address","nodeType":"ElementaryTypeName","src":"2667:8:1","stateMutability":"payable","typeDescriptions":{}}},"id":1071,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2667:48:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":1062,"name":"ISystemContext","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1704,"src":"2652:14:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ISystemContext_$1704_$","typeString":"type(contract ISystemContext)"}},"id":1072,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2652:64:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ISystemContext_$1704","typeString":"contract ISystemContext"}},"visibility":"internal"},{"constant":true,"id":1084,"mutability":"constant","name":"BOOTLOADER_UTILITIES","nameLocation":"2748:20:1","nodeType":"VariableDeclaration","scope":1124,"src":"2719:112:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_BootloaderUtilities_$905","typeString":"contract BootloaderUtilities"},"typeName":{"id":1075,"nodeType":"UserDefinedTypeName","pathNode":{"id":1074,"name":"BootloaderUtilities","nameLocations":["2719:19:1"],"nodeType":"IdentifierPath","referencedDeclaration":905,"src":"2719:19:1"},"referencedDeclaration":905,"src":"2719:19:1","typeDescriptions":{"typeIdentifier":"t_contract$_BootloaderUtilities_$905","typeString":"contract BootloaderUtilities"}},"value":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint160","typeString":"uint160"},"id":1081,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":1079,"name":"SYSTEM_CONTRACTS_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":921,"src":"2799:23:1","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"30783063","id":1080,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2825:4:1","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"0x0c"},"src":"2799:30:1","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":1078,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2791:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1077,"name":"address","nodeType":"ElementaryTypeName","src":"2791:7:1","typeDescriptions":{}}},"id":1082,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2791:39:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1076,"name":"BootloaderUtilities","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":905,"src":"2771:19:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BootloaderUtilities_$905_$","typeString":"type(contract BootloaderUtilities)"}},"id":1083,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2771:60:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_BootloaderUtilities_$905","typeString":"contract BootloaderUtilities"}},"visibility":"internal"},{"constant":true,"id":1092,"mutability":"constant","name":"EVENT_WRITER_CONTRACT","nameLocation":"2851:21:1","nodeType":"VariableDeclaration","scope":1124,"src":"2834:80:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1085,"name":"address","nodeType":"ElementaryTypeName","src":"2834:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"commonType":{"typeIdentifier":"t_uint160","typeString":"uint160"},"id":1090,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":1088,"name":"SYSTEM_CONTRACTS_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":921,"src":"2883:23:1","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"30783064","id":1089,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2909:4:1","typeDescriptions":{"typeIdentifier":"t_rational_13_by_1","typeString":"int_const 13"},"value":"0x0d"},"src":"2883:30:1","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":1087,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2875:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1086,"name":"address","nodeType":"ElementaryTypeName","src":"2875:7:1","typeDescriptions":{}}},"id":1091,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2875:39:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":true,"id":1103,"mutability":"constant","name":"BYTECODE_COMPRESSOR_CONTRACT","nameLocation":"2946:28:1","nodeType":"VariableDeclaration","scope":1124,"src":"2917:126:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IBytecodeCompressor_$1192","typeString":"contract IBytecodeCompressor"},"typeName":{"id":1094,"nodeType":"UserDefinedTypeName","pathNode":{"id":1093,"name":"IBytecodeCompressor","nameLocations":["2917:19:1"],"nodeType":"IdentifierPath","referencedDeclaration":1192,"src":"2917:19:1"},"referencedDeclaration":1192,"src":"2917:19:1","typeDescriptions":{"typeIdentifier":"t_contract$_IBytecodeCompressor_$1192","typeString":"contract IBytecodeCompressor"}},"value":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint160","typeString":"uint160"},"id":1100,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":1098,"name":"SYSTEM_CONTRACTS_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":921,"src":"3010:23:1","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"30783065","id":1099,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3036:4:1","typeDescriptions":{"typeIdentifier":"t_rational_14_by_1","typeString":"int_const 14"},"value":"0x0e"},"src":"3010:30:1","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":1097,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3002:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1096,"name":"address","nodeType":"ElementaryTypeName","src":"3002:7:1","typeDescriptions":{}}},"id":1101,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3002:39:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1095,"name":"IBytecodeCompressor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1192,"src":"2977:19:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBytecodeCompressor_$1192_$","typeString":"type(contract IBytecodeCompressor)"}},"id":1102,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2977:66:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IBytecodeCompressor_$1192","typeString":"contract IBytecodeCompressor"}},"visibility":"internal"},{"constant":true,"id":1107,"mutability":"constant","name":"MSG_VALUE_SIMULATOR_IS_SYSTEM_BIT","nameLocation":"3215:33:1","nodeType":"VariableDeclaration","scope":1124,"src":"3198:54:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1105,"name":"uint256","nodeType":"ElementaryTypeName","src":"3198:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":1106,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3251:1:1","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"constant":true,"id":1115,"mutability":"constant","name":"MAX_MSG_VALUE","nameLocation":"3325:13:1","nodeType":"VariableDeclaration","scope":1124,"src":"3308:45:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1109,"name":"uint256","nodeType":"ElementaryTypeName","src":"3308:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_340282366920938463463374607431768211455_by_1","typeString":"int_const 3402...(31 digits omitted)...1455"},"id":1114,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"},"id":1112,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":1110,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3341:1:1","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"313238","id":1111,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3346:3:1","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"3341:8:1","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":1113,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3352:1:1","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3341:12:1","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211455_by_1","typeString":"int_const 3402...(31 digits omitted)...1455"}},"visibility":"internal"},{"constant":true,"id":1119,"mutability":"constant","name":"CREATE2_PREFIX","nameLocation":"3483:14:1","nodeType":"VariableDeclaration","scope":1124,"src":"3466:100:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1117,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3466:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307832303230646261393162333063633030303631383861663739346332666233306464383532306462376532633038386237666337633130336330306361343934","id":1118,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3500:66:1","typeDescriptions":{"typeIdentifier":"t_rational_14532066302281872353670009812739458257996995916004049562278051237580304589972_by_1","typeString":"int_const 1453...(69 digits omitted)...9972"},"value":"0x2020dba91b30cc0006188af794c2fb30dd8520db7e2c088b7fc7c103c00ca494"},"visibility":"internal"},{"constant":true,"id":1123,"mutability":"constant","name":"CREATE_PREFIX","nameLocation":"3693:13:1","nodeType":"VariableDeclaration","scope":1124,"src":"3676:99:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1121,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3676:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307836336261653361393935316433386538613366626237623730393039616663313230303631306663356263353561646532343266383135393734363734663233","id":1122,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3709:66:1","typeDescriptions":{"typeIdentifier":"t_rational_45109176832147412956193996987544447529162221282176659798762896814373383655203_by_1","typeString":"int_const 4510...(69 digits omitted)...5203"},"value":"0x63bae3a9951d38e8a3fbb7b70909afc1200610fc5bc55ade242f815974674f23"},"visibility":"internal"}],"src":"33:3744:1"}},"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IAccountCodeStorage.sol":{"id":2,"ast":{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IAccountCodeStorage.sol","exportedSymbols":{"IAccountCodeStorage":[1166]},"id":1167,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1125,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"33:23:2"},{"abstract":false,"baseContracts":[],"canonicalName":"IAccountCodeStorage","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":1166,"linearizedBaseContracts":[1166],"name":"IAccountCodeStorage","nameLocation":"68:19:2","nodeType":"ContractDefinition","nodes":[{"functionSelector":"4f1e1be0","id":1132,"implemented":false,"kind":"function","modifiers":[],"name":"storeAccountConstructingCodeHash","nameLocation":"103:32:2","nodeType":"FunctionDefinition","parameters":{"id":1130,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1127,"mutability":"mutable","name":"_address","nameLocation":"144:8:2","nodeType":"VariableDeclaration","scope":1132,"src":"136:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1126,"name":"address","nodeType":"ElementaryTypeName","src":"136:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1129,"mutability":"mutable","name":"_hash","nameLocation":"162:5:2","nodeType":"VariableDeclaration","scope":1132,"src":"154:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1128,"name":"bytes32","nodeType":"ElementaryTypeName","src":"154:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"135:33:2"},"returnParameters":{"id":1131,"nodeType":"ParameterList","parameters":[],"src":"177:0:2"},"scope":1166,"src":"94:84:2","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"0d4651aa","id":1139,"implemented":false,"kind":"function","modifiers":[],"name":"storeAccountConstructedCodeHash","nameLocation":"193:31:2","nodeType":"FunctionDefinition","parameters":{"id":1137,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1134,"mutability":"mutable","name":"_address","nameLocation":"233:8:2","nodeType":"VariableDeclaration","scope":1139,"src":"225:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1133,"name":"address","nodeType":"ElementaryTypeName","src":"225:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1136,"mutability":"mutable","name":"_hash","nameLocation":"251:5:2","nodeType":"VariableDeclaration","scope":1139,"src":"243:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1135,"name":"bytes32","nodeType":"ElementaryTypeName","src":"243:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"224:33:2"},"returnParameters":{"id":1138,"nodeType":"ParameterList","parameters":[],"src":"266:0:2"},"scope":1166,"src":"184:83:2","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"c2e4ff97","id":1144,"implemented":false,"kind":"function","modifiers":[],"name":"markAccountCodeHashAsConstructed","nameLocation":"282:32:2","nodeType":"FunctionDefinition","parameters":{"id":1142,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1141,"mutability":"mutable","name":"_address","nameLocation":"323:8:2","nodeType":"VariableDeclaration","scope":1144,"src":"315:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1140,"name":"address","nodeType":"ElementaryTypeName","src":"315:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"314:18:2"},"returnParameters":{"id":1143,"nodeType":"ParameterList","parameters":[],"src":"341:0:2"},"scope":1166,"src":"273:69:2","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"4de2e468","id":1151,"implemented":false,"kind":"function","modifiers":[],"name":"getRawCodeHash","nameLocation":"357:14:2","nodeType":"FunctionDefinition","parameters":{"id":1147,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1146,"mutability":"mutable","name":"_address","nameLocation":"380:8:2","nodeType":"VariableDeclaration","scope":1151,"src":"372:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1145,"name":"address","nodeType":"ElementaryTypeName","src":"372:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"371:18:2"},"returnParameters":{"id":1150,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1149,"mutability":"mutable","name":"codeHash","nameLocation":"421:8:2","nodeType":"VariableDeclaration","scope":1151,"src":"413:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1148,"name":"bytes32","nodeType":"ElementaryTypeName","src":"413:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"412:18:2"},"scope":1166,"src":"348:83:2","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"e03fe177","id":1158,"implemented":false,"kind":"function","modifiers":[],"name":"getCodeHash","nameLocation":"446:11:2","nodeType":"FunctionDefinition","parameters":{"id":1154,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1153,"mutability":"mutable","name":"_input","nameLocation":"466:6:2","nodeType":"VariableDeclaration","scope":1158,"src":"458:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1152,"name":"uint256","nodeType":"ElementaryTypeName","src":"458:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"457:16:2"},"returnParameters":{"id":1157,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1156,"mutability":"mutable","name":"codeHash","nameLocation":"505:8:2","nodeType":"VariableDeclaration","scope":1158,"src":"497:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1155,"name":"bytes32","nodeType":"ElementaryTypeName","src":"497:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"496:18:2"},"scope":1166,"src":"437:78:2","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"1806aa18","id":1165,"implemented":false,"kind":"function","modifiers":[],"name":"getCodeSize","nameLocation":"530:11:2","nodeType":"FunctionDefinition","parameters":{"id":1161,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1160,"mutability":"mutable","name":"_input","nameLocation":"550:6:2","nodeType":"VariableDeclaration","scope":1165,"src":"542:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1159,"name":"uint256","nodeType":"ElementaryTypeName","src":"542:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"541:16:2"},"returnParameters":{"id":1164,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1163,"mutability":"mutable","name":"codeSize","nameLocation":"589:8:2","nodeType":"VariableDeclaration","scope":1165,"src":"581:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1162,"name":"uint256","nodeType":"ElementaryTypeName","src":"581:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"580:18:2"},"scope":1166,"src":"521:78:2","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":1167,"src":"58:543:2","usedErrors":[]}],"src":"33:569:2"}},"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBootloaderUtilities.sol":{"id":3,"ast":{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBootloaderUtilities.sol","exportedSymbols":{"ADDRESS_MASK":[2520],"Address":[5645],"BOOTLOADER_FORMAL_ADDRESS":[958],"CALLFLAGS_CALL_ADDRESS":[3261],"CODE_ADDRESS_CALL_ADDRESS":[3096],"CalldataForwardingMode":[3405],"EIP_1559_TX_TYPE":[3710],"EIP_2930_TX_TYPE":[3706],"EIP_712_TX_TYPE":[3698],"ETH_TOKEN_SYSTEM_CONTRACT":[1051],"EVENT_INITIALIZE_ADDRESS":[3283],"EVENT_WRITE_ADDRESS":[3294],"EfficientCall":[2170],"GET_EXTRA_ABI_DATA_ADDRESS":[3371],"Global":[2539],"IBootloaderUtilities":[1180],"IContractDeployer":[1327],"IERC20":[4998],"IERC20Permit":[5034],"INCREMENT_TX_COUNTER_CALL_ADDRESS":[3239],"IPaymasterFlow":[1634],"ISystemContract":[3068],"KECCAK256_SYSTEM_CONTRACT":[1059],"LEGACY_TX_TYPE":[3702],"LOAD_CALLDATA_INTO_ACTIVE_PTR_CALL_ADDRESS":[3305],"LOAD_LATEST_RETURNDATA_INTO_ACTIVE_PTR_CALL_ADDRESS":[3316],"MAX_SYSTEM_CONTRACT_ADDRESS":[925],"META_AUX_HEAP_SIZE_OFFSET":[3386],"META_CALLER_SHARD_ID_OFFSET":[3396],"META_CALL_ADDRESS":[3118],"META_CODE_SHARD_ID_OFFSET":[3401],"META_GAS_PER_PUBDATA_BYTE_OFFSET":[3376],"META_HEAP_SIZE_OFFSET":[3381],"META_SHARD_ID_OFFSET":[3391],"MIMIC_CALL_BY_REF_CALL_ADDRESS":[3151],"MIMIC_CALL_CALL_ADDRESS":[3129],"MSG_VALUE_SIMULATOR_IS_SYSTEM_BIT":[1107],"MSG_VALUE_SYSTEM_CONTRACT":[1040],"MULTIPLICATION_HIGH_ADDRESS":[3360],"PRECOMPILE_CALL_ADDRESS":[3107],"PTR_ADD_INTO_ACTIVE_CALL_ADDRESS":[3327],"PTR_CALLDATA_CALL_ADDRESS":[3250],"PTR_PACK_INTO_ACTIVE_CALL_ADDRESS":[3349],"PTR_RETURNDATA_CALL_ADDRESS":[3272],"PTR_SHRINK_INTO_ACTIVE_CALL_ADDRESS":[3338],"RAW_FAR_CALL_BY_REF_CALL_ADDRESS":[3184],"RAW_FAR_CALL_CALL_ADDRESS":[3173],"RLPEncoder":[2503],"SET_CONTEXT_VALUE_CALL_ADDRESS":[3217],"SET_PUBDATA_PRICE_CALL_ADDRESS":[3228],"SHA256_SYSTEM_CONTRACT":[937],"SYSTEM_CALL_BY_REF_CALL_ADDRESS":[3206],"SYSTEM_CALL_CALL_ADDRESS":[3195],"SYSTEM_MIMIC_CALL_BY_REF_CALL_ADDRESS":[3162],"SYSTEM_MIMIC_CALL_CALL_ADDRESS":[3140],"SafeERC20":[5315],"SystemContractHelper":[3048],"SystemContractsCaller":[3683],"TO_L1_CALL_ADDRESS":[3085],"Transaction":[3746],"TransactionHelper":[4646],"UINT128_MASK":[2516],"UINT32_MASK":[2513],"Utils":[4920],"ZkSyncMeta":[2533]},"id":1181,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1168,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"33:23:3"},{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/libraries/TransactionHelper.sol","file":"../libraries/TransactionHelper.sol","id":1169,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1181,"sourceUnit":4647,"src":"58:44:3","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"IBootloaderUtilities","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":1180,"linearizedBaseContracts":[1180],"name":"IBootloaderUtilities","nameLocation":"114:20:3","nodeType":"ContractDefinition","nodes":[{"functionSelector":"ebe4a3d7","id":1179,"implemented":false,"kind":"function","modifiers":[],"name":"getTransactionHashes","nameLocation":"150:20:3","nodeType":"FunctionDefinition","parameters":{"id":1173,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1172,"mutability":"mutable","name":"_transaction","nameLocation":"201:12:3","nodeType":"VariableDeclaration","scope":1179,"src":"180:33:3","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction"},"typeName":{"id":1171,"nodeType":"UserDefinedTypeName","pathNode":{"id":1170,"name":"Transaction","nameLocations":["180:11:3"],"nodeType":"IdentifierPath","referencedDeclaration":3746,"src":"180:11:3"},"referencedDeclaration":3746,"src":"180:11:3","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_storage_ptr","typeString":"struct Transaction"}},"visibility":"internal"}],"src":"170:49:3"},"returnParameters":{"id":1178,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1175,"mutability":"mutable","name":"txHash","nameLocation":"251:6:3","nodeType":"VariableDeclaration","scope":1179,"src":"243:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1174,"name":"bytes32","nodeType":"ElementaryTypeName","src":"243:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1177,"mutability":"mutable","name":"signedTxHash","nameLocation":"267:12:3","nodeType":"VariableDeclaration","scope":1179,"src":"259:20:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1176,"name":"bytes32","nodeType":"ElementaryTypeName","src":"259:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"242:38:3"},"scope":1180,"src":"141:140:3","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":1181,"src":"104:179:3","usedErrors":[]}],"src":"33:251:3"}},"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBytecodeCompressor.sol":{"id":4,"ast":{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBytecodeCompressor.sol","exportedSymbols":{"IBytecodeCompressor":[1192]},"id":1193,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1182,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"33:23:4"},{"abstract":false,"baseContracts":[],"canonicalName":"IBytecodeCompressor","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":1192,"linearizedBaseContracts":[1192],"name":"IBytecodeCompressor","nameLocation":"68:19:4","nodeType":"ContractDefinition","nodes":[{"functionSelector":"f5e69a47","id":1191,"implemented":false,"kind":"function","modifiers":[],"name":"publishCompressedBytecode","nameLocation":"103:25:4","nodeType":"FunctionDefinition","parameters":{"id":1187,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1184,"mutability":"mutable","name":"_bytecode","nameLocation":"153:9:4","nodeType":"VariableDeclaration","scope":1191,"src":"138:24:4","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1183,"name":"bytes","nodeType":"ElementaryTypeName","src":"138:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1186,"mutability":"mutable","name":"_rawCompressedData","nameLocation":"187:18:4","nodeType":"VariableDeclaration","scope":1191,"src":"172:33:4","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1185,"name":"bytes","nodeType":"ElementaryTypeName","src":"172:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"128:83:4"},"returnParameters":{"id":1190,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1189,"mutability":"mutable","name":"bytecodeHash","nameLocation":"246:12:4","nodeType":"VariableDeclaration","scope":1191,"src":"238:20:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1188,"name":"bytes32","nodeType":"ElementaryTypeName","src":"238:7:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"237:22:4"},"scope":1192,"src":"94:166:4","stateMutability":"payable","virtual":false,"visibility":"external"}],"scope":1193,"src":"58:204:4","usedErrors":[]}],"src":"33:230:4"}},"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IContractDeployer.sol":{"id":5,"ast":{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IContractDeployer.sol","exportedSymbols":{"IContractDeployer":[1327]},"id":1328,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1194,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"33:23:5"},{"abstract":false,"baseContracts":[],"canonicalName":"IContractDeployer","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":1327,"linearizedBaseContracts":[1327],"name":"IContractDeployer","nameLocation":"68:17:5","nodeType":"ContractDefinition","nodes":[{"canonicalName":"IContractDeployer.AccountAbstractionVersion","id":1197,"members":[{"id":1195,"name":"None","nameLocation":"479:4:5","nodeType":"EnumValue","src":"479:4:5"},{"id":1196,"name":"Version1","nameLocation":"493:8:5","nodeType":"EnumValue","src":"493:8:5"}],"name":"AccountAbstractionVersion","nameLocation":"443:25:5","nodeType":"EnumDefinition","src":"438:69:5"},{"canonicalName":"IContractDeployer.AccountNonceOrdering","id":1200,"members":[{"id":1198,"name":"Sequential","nameLocation":"1109:10:5","nodeType":"EnumValue","src":"1109:10:5"},{"id":1199,"name":"Arbitrary","nameLocation":"1129:9:5","nodeType":"EnumValue","src":"1129:9:5"}],"name":"AccountNonceOrdering","nameLocation":"1078:20:5","nodeType":"EnumDefinition","src":"1073:71:5"},{"canonicalName":"IContractDeployer.AccountInfo","id":1207,"members":[{"constant":false,"id":1203,"mutability":"mutable","name":"supportedAAVersion","nameLocation":"1205:18:5","nodeType":"VariableDeclaration","scope":1207,"src":"1179:44:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_AccountAbstractionVersion_$1197","typeString":"enum IContractDeployer.AccountAbstractionVersion"},"typeName":{"id":1202,"nodeType":"UserDefinedTypeName","pathNode":{"id":1201,"name":"AccountAbstractionVersion","nameLocations":["1179:25:5"],"nodeType":"IdentifierPath","referencedDeclaration":1197,"src":"1179:25:5"},"referencedDeclaration":1197,"src":"1179:25:5","typeDescriptions":{"typeIdentifier":"t_enum$_AccountAbstractionVersion_$1197","typeString":"enum IContractDeployer.AccountAbstractionVersion"}},"visibility":"internal"},{"constant":false,"id":1206,"mutability":"mutable","name":"nonceOrdering","nameLocation":"1254:13:5","nodeType":"VariableDeclaration","scope":1207,"src":"1233:34:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_AccountNonceOrdering_$1200","typeString":"enum IContractDeployer.AccountNonceOrdering"},"typeName":{"id":1205,"nodeType":"UserDefinedTypeName","pathNode":{"id":1204,"name":"AccountNonceOrdering","nameLocations":["1233:20:5"],"nodeType":"IdentifierPath","referencedDeclaration":1200,"src":"1233:20:5"},"referencedDeclaration":1200,"src":"1233:20:5","typeDescriptions":{"typeIdentifier":"t_enum$_AccountNonceOrdering_$1200","typeString":"enum IContractDeployer.AccountNonceOrdering"}},"visibility":"internal"}],"name":"AccountInfo","nameLocation":"1157:11:5","nodeType":"StructDefinition","scope":1327,"src":"1150:124:5","visibility":"public"},{"anonymous":false,"eventSelector":"290afdae231a3fc0bbae8b1af63698b0a1d79b21ad17df0342dfb952fe74f8e5","id":1215,"name":"ContractDeployed","nameLocation":"1286:16:5","nodeType":"EventDefinition","parameters":{"id":1214,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1209,"indexed":true,"mutability":"mutable","name":"deployerAddress","nameLocation":"1328:15:5","nodeType":"VariableDeclaration","scope":1215,"src":"1312:31:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1208,"name":"address","nodeType":"ElementaryTypeName","src":"1312:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1211,"indexed":true,"mutability":"mutable","name":"bytecodeHash","nameLocation":"1369:12:5","nodeType":"VariableDeclaration","scope":1215,"src":"1353:28:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1210,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1353:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1213,"indexed":true,"mutability":"mutable","name":"contractAddress","nameLocation":"1407:15:5","nodeType":"VariableDeclaration","scope":1215,"src":"1391:31:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1212,"name":"address","nodeType":"ElementaryTypeName","src":"1391:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1302:126:5"},"src":"1280:149:5"},{"anonymous":false,"eventSelector":"c7544194dab38b1652f35439b9b4806d8b71e113f2cf5c1351cb2ecf7c83959a","id":1222,"name":"AccountNonceOrderingUpdated","nameLocation":"1441:27:5","nodeType":"EventDefinition","parameters":{"id":1221,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1217,"indexed":true,"mutability":"mutable","name":"accountAddress","nameLocation":"1485:14:5","nodeType":"VariableDeclaration","scope":1222,"src":"1469:30:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1216,"name":"address","nodeType":"ElementaryTypeName","src":"1469:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1220,"indexed":false,"mutability":"mutable","name":"nonceOrdering","nameLocation":"1522:13:5","nodeType":"VariableDeclaration","scope":1222,"src":"1501:34:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_AccountNonceOrdering_$1200","typeString":"enum IContractDeployer.AccountNonceOrdering"},"typeName":{"id":1219,"nodeType":"UserDefinedTypeName","pathNode":{"id":1218,"name":"AccountNonceOrdering","nameLocations":["1501:20:5"],"nodeType":"IdentifierPath","referencedDeclaration":1200,"src":"1501:20:5"},"referencedDeclaration":1200,"src":"1501:20:5","typeDescriptions":{"typeIdentifier":"t_enum$_AccountNonceOrdering_$1200","typeString":"enum IContractDeployer.AccountNonceOrdering"}},"visibility":"internal"}],"src":"1468:68:5"},"src":"1435:102:5"},{"anonymous":false,"eventSelector":"3fb6f4f15ddd4a75588ca934894ad2cdcab25a5012e2515e1783433d0128611a","id":1229,"name":"AccountVersionUpdated","nameLocation":"1549:21:5","nodeType":"EventDefinition","parameters":{"id":1228,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1224,"indexed":true,"mutability":"mutable","name":"accountAddress","nameLocation":"1587:14:5","nodeType":"VariableDeclaration","scope":1229,"src":"1571:30:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1223,"name":"address","nodeType":"ElementaryTypeName","src":"1571:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1227,"indexed":false,"mutability":"mutable","name":"aaVersion","nameLocation":"1629:9:5","nodeType":"VariableDeclaration","scope":1229,"src":"1603:35:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_AccountAbstractionVersion_$1197","typeString":"enum IContractDeployer.AccountAbstractionVersion"},"typeName":{"id":1226,"nodeType":"UserDefinedTypeName","pathNode":{"id":1225,"name":"AccountAbstractionVersion","nameLocations":["1603:25:5"],"nodeType":"IdentifierPath","referencedDeclaration":1197,"src":"1603:25:5"},"referencedDeclaration":1197,"src":"1603:25:5","typeDescriptions":{"typeIdentifier":"t_enum$_AccountAbstractionVersion_$1197","typeString":"enum IContractDeployer.AccountAbstractionVersion"}},"visibility":"internal"}],"src":"1570:69:5"},"src":"1543:97:5"},{"functionSelector":"84da1fb4","id":1242,"implemented":false,"kind":"function","modifiers":[],"name":"getNewAddressCreate2","nameLocation":"1655:20:5","nodeType":"FunctionDefinition","parameters":{"id":1238,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1231,"mutability":"mutable","name":"_sender","nameLocation":"1693:7:5","nodeType":"VariableDeclaration","scope":1242,"src":"1685:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1230,"name":"address","nodeType":"ElementaryTypeName","src":"1685:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1233,"mutability":"mutable","name":"_bytecodeHash","nameLocation":"1718:13:5","nodeType":"VariableDeclaration","scope":1242,"src":"1710:21:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1232,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1710:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1235,"mutability":"mutable","name":"_salt","nameLocation":"1749:5:5","nodeType":"VariableDeclaration","scope":1242,"src":"1741:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1234,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1741:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1237,"mutability":"mutable","name":"_input","nameLocation":"1779:6:5","nodeType":"VariableDeclaration","scope":1242,"src":"1764:21:5","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1236,"name":"bytes","nodeType":"ElementaryTypeName","src":"1764:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1675:116:5"},"returnParameters":{"id":1241,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1240,"mutability":"mutable","name":"newAddress","nameLocation":"1823:10:5","nodeType":"VariableDeclaration","scope":1242,"src":"1815:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1239,"name":"address","nodeType":"ElementaryTypeName","src":"1815:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1814:20:5"},"scope":1327,"src":"1646:189:5","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"187598a5","id":1251,"implemented":false,"kind":"function","modifiers":[],"name":"getNewAddressCreate","nameLocation":"1850:19:5","nodeType":"FunctionDefinition","parameters":{"id":1247,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1244,"mutability":"mutable","name":"_sender","nameLocation":"1878:7:5","nodeType":"VariableDeclaration","scope":1251,"src":"1870:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1243,"name":"address","nodeType":"ElementaryTypeName","src":"1870:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1246,"mutability":"mutable","name":"_senderNonce","nameLocation":"1895:12:5","nodeType":"VariableDeclaration","scope":1251,"src":"1887:20:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1245,"name":"uint256","nodeType":"ElementaryTypeName","src":"1887:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1869:39:5"},"returnParameters":{"id":1250,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1249,"mutability":"mutable","name":"newAddress","nameLocation":"1940:10:5","nodeType":"VariableDeclaration","scope":1251,"src":"1932:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1248,"name":"address","nodeType":"ElementaryTypeName","src":"1932:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1931:20:5"},"scope":1327,"src":"1841:111:5","stateMutability":"pure","virtual":false,"visibility":"external"},{"functionSelector":"3cda3351","id":1262,"implemented":false,"kind":"function","modifiers":[],"name":"create2","nameLocation":"1967:7:5","nodeType":"FunctionDefinition","parameters":{"id":1258,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1253,"mutability":"mutable","name":"_salt","nameLocation":"1992:5:5","nodeType":"VariableDeclaration","scope":1262,"src":"1984:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1252,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1984:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1255,"mutability":"mutable","name":"_bytecodeHash","nameLocation":"2015:13:5","nodeType":"VariableDeclaration","scope":1262,"src":"2007:21:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1254,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2007:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1257,"mutability":"mutable","name":"_input","nameLocation":"2053:6:5","nodeType":"VariableDeclaration","scope":1262,"src":"2038:21:5","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1256,"name":"bytes","nodeType":"ElementaryTypeName","src":"2038:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1974:91:5"},"returnParameters":{"id":1261,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1260,"mutability":"mutable","name":"newAddress","nameLocation":"2100:10:5","nodeType":"VariableDeclaration","scope":1262,"src":"2092:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1259,"name":"address","nodeType":"ElementaryTypeName","src":"2092:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2091:20:5"},"scope":1327,"src":"1958:154:5","stateMutability":"payable","virtual":false,"visibility":"external"},{"functionSelector":"5d382700","id":1276,"implemented":false,"kind":"function","modifiers":[],"name":"create2Account","nameLocation":"2127:14:5","nodeType":"FunctionDefinition","parameters":{"id":1272,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1264,"mutability":"mutable","name":"_salt","nameLocation":"2159:5:5","nodeType":"VariableDeclaration","scope":1276,"src":"2151:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1263,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2151:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1266,"mutability":"mutable","name":"_bytecodeHash","nameLocation":"2182:13:5","nodeType":"VariableDeclaration","scope":1276,"src":"2174:21:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1265,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2174:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1268,"mutability":"mutable","name":"_input","nameLocation":"2220:6:5","nodeType":"VariableDeclaration","scope":1276,"src":"2205:21:5","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1267,"name":"bytes","nodeType":"ElementaryTypeName","src":"2205:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1271,"mutability":"mutable","name":"_aaVersion","nameLocation":"2262:10:5","nodeType":"VariableDeclaration","scope":1276,"src":"2236:36:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_AccountAbstractionVersion_$1197","typeString":"enum IContractDeployer.AccountAbstractionVersion"},"typeName":{"id":1270,"nodeType":"UserDefinedTypeName","pathNode":{"id":1269,"name":"AccountAbstractionVersion","nameLocations":["2236:25:5"],"nodeType":"IdentifierPath","referencedDeclaration":1197,"src":"2236:25:5"},"referencedDeclaration":1197,"src":"2236:25:5","typeDescriptions":{"typeIdentifier":"t_enum$_AccountAbstractionVersion_$1197","typeString":"enum IContractDeployer.AccountAbstractionVersion"}},"visibility":"internal"}],"src":"2141:137:5"},"returnParameters":{"id":1275,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1274,"mutability":"mutable","name":"newAddress","nameLocation":"2313:10:5","nodeType":"VariableDeclaration","scope":1276,"src":"2305:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1273,"name":"address","nodeType":"ElementaryTypeName","src":"2305:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2304:20:5"},"scope":1327,"src":"2118:207:5","stateMutability":"payable","virtual":false,"visibility":"external"},{"documentation":{"id":1277,"nodeType":"StructuredDocumentation","src":"2331:183:5","text":"@dev While the `_salt` parameter is not used anywhere here,\n it is still needed for consistency between `create` and\n `create2` functions (required by the compiler)."},"functionSelector":"9c4d535b","id":1288,"implemented":false,"kind":"function","modifiers":[],"name":"create","nameLocation":"2528:6:5","nodeType":"FunctionDefinition","parameters":{"id":1284,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1279,"mutability":"mutable","name":"_salt","nameLocation":"2552:5:5","nodeType":"VariableDeclaration","scope":1288,"src":"2544:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1278,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2544:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1281,"mutability":"mutable","name":"_bytecodeHash","nameLocation":"2575:13:5","nodeType":"VariableDeclaration","scope":1288,"src":"2567:21:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1280,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2567:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1283,"mutability":"mutable","name":"_input","nameLocation":"2613:6:5","nodeType":"VariableDeclaration","scope":1288,"src":"2598:21:5","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1282,"name":"bytes","nodeType":"ElementaryTypeName","src":"2598:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2534:91:5"},"returnParameters":{"id":1287,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1286,"mutability":"mutable","name":"newAddress","nameLocation":"2660:10:5","nodeType":"VariableDeclaration","scope":1288,"src":"2652:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1285,"name":"address","nodeType":"ElementaryTypeName","src":"2652:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2651:20:5"},"scope":1327,"src":"2519:153:5","stateMutability":"payable","virtual":false,"visibility":"external"},{"documentation":{"id":1289,"nodeType":"StructuredDocumentation","src":"2678:130:5","text":"@dev While `_salt` is never used here, we leave it here as a parameter\n for the consistency with the `create` function."},"functionSelector":"ecf95b8a","id":1303,"implemented":false,"kind":"function","modifiers":[],"name":"createAccount","nameLocation":"2822:13:5","nodeType":"FunctionDefinition","parameters":{"id":1299,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1291,"mutability":"mutable","name":"_salt","nameLocation":"2853:5:5","nodeType":"VariableDeclaration","scope":1303,"src":"2845:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1290,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2845:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1293,"mutability":"mutable","name":"_bytecodeHash","nameLocation":"2876:13:5","nodeType":"VariableDeclaration","scope":1303,"src":"2868:21:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1292,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2868:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1295,"mutability":"mutable","name":"_input","nameLocation":"2914:6:5","nodeType":"VariableDeclaration","scope":1303,"src":"2899:21:5","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1294,"name":"bytes","nodeType":"ElementaryTypeName","src":"2899:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1298,"mutability":"mutable","name":"_aaVersion","nameLocation":"2956:10:5","nodeType":"VariableDeclaration","scope":1303,"src":"2930:36:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_AccountAbstractionVersion_$1197","typeString":"enum IContractDeployer.AccountAbstractionVersion"},"typeName":{"id":1297,"nodeType":"UserDefinedTypeName","pathNode":{"id":1296,"name":"AccountAbstractionVersion","nameLocations":["2930:25:5"],"nodeType":"IdentifierPath","referencedDeclaration":1197,"src":"2930:25:5"},"referencedDeclaration":1197,"src":"2930:25:5","typeDescriptions":{"typeIdentifier":"t_enum$_AccountAbstractionVersion_$1197","typeString":"enum IContractDeployer.AccountAbstractionVersion"}},"visibility":"internal"}],"src":"2835:137:5"},"returnParameters":{"id":1302,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1301,"mutability":"mutable","name":"newAddress","nameLocation":"3007:10:5","nodeType":"VariableDeclaration","scope":1303,"src":"2999:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1300,"name":"address","nodeType":"ElementaryTypeName","src":"2999:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2998:20:5"},"scope":1327,"src":"2813:206:5","stateMutability":"payable","virtual":false,"visibility":"external"},{"documentation":{"id":1304,"nodeType":"StructuredDocumentation","src":"3025:55:5","text":"@notice Returns the information about a certain AA."},"functionSelector":"7b510fe8","id":1312,"implemented":false,"kind":"function","modifiers":[],"name":"getAccountInfo","nameLocation":"3094:14:5","nodeType":"FunctionDefinition","parameters":{"id":1307,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1306,"mutability":"mutable","name":"_address","nameLocation":"3117:8:5","nodeType":"VariableDeclaration","scope":1312,"src":"3109:16:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1305,"name":"address","nodeType":"ElementaryTypeName","src":"3109:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3108:18:5"},"returnParameters":{"id":1311,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1310,"mutability":"mutable","name":"info","nameLocation":"3169:4:5","nodeType":"VariableDeclaration","scope":1312,"src":"3150:23:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_AccountInfo_$1207_memory_ptr","typeString":"struct IContractDeployer.AccountInfo"},"typeName":{"id":1309,"nodeType":"UserDefinedTypeName","pathNode":{"id":1308,"name":"AccountInfo","nameLocations":["3150:11:5"],"nodeType":"IdentifierPath","referencedDeclaration":1207,"src":"3150:11:5"},"referencedDeclaration":1207,"src":"3150:11:5","typeDescriptions":{"typeIdentifier":"t_struct$_AccountInfo_$1207_storage_ptr","typeString":"struct IContractDeployer.AccountInfo"}},"visibility":"internal"}],"src":"3149:25:5"},"scope":1327,"src":"3085:90:5","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1313,"nodeType":"StructuredDocumentation","src":"3181:69:5","text":"@notice Can be called by an account to update its account version"},"functionSelector":"57180981","id":1319,"implemented":false,"kind":"function","modifiers":[],"name":"updateAccountVersion","nameLocation":"3264:20:5","nodeType":"FunctionDefinition","parameters":{"id":1317,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1316,"mutability":"mutable","name":"_version","nameLocation":"3311:8:5","nodeType":"VariableDeclaration","scope":1319,"src":"3285:34:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_AccountAbstractionVersion_$1197","typeString":"enum IContractDeployer.AccountAbstractionVersion"},"typeName":{"id":1315,"nodeType":"UserDefinedTypeName","pathNode":{"id":1314,"name":"AccountAbstractionVersion","nameLocations":["3285:25:5"],"nodeType":"IdentifierPath","referencedDeclaration":1197,"src":"3285:25:5"},"referencedDeclaration":1197,"src":"3285:25:5","typeDescriptions":{"typeIdentifier":"t_enum$_AccountAbstractionVersion_$1197","typeString":"enum IContractDeployer.AccountAbstractionVersion"}},"visibility":"internal"}],"src":"3284:36:5"},"returnParameters":{"id":1318,"nodeType":"ParameterList","parameters":[],"src":"3329:0:5"},"scope":1327,"src":"3255:75:5","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1320,"nodeType":"StructuredDocumentation","src":"3336:68:5","text":"@notice Can be called by an account to update its nonce ordering"},"functionSelector":"ec8067c7","id":1326,"implemented":false,"kind":"function","modifiers":[],"name":"updateNonceOrdering","nameLocation":"3418:19:5","nodeType":"FunctionDefinition","parameters":{"id":1324,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1323,"mutability":"mutable","name":"_nonceOrdering","nameLocation":"3459:14:5","nodeType":"VariableDeclaration","scope":1326,"src":"3438:35:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_AccountNonceOrdering_$1200","typeString":"enum IContractDeployer.AccountNonceOrdering"},"typeName":{"id":1322,"nodeType":"UserDefinedTypeName","pathNode":{"id":1321,"name":"AccountNonceOrdering","nameLocations":["3438:20:5"],"nodeType":"IdentifierPath","referencedDeclaration":1200,"src":"3438:20:5"},"referencedDeclaration":1200,"src":"3438:20:5","typeDescriptions":{"typeIdentifier":"t_enum$_AccountNonceOrdering_$1200","typeString":"enum IContractDeployer.AccountNonceOrdering"}},"visibility":"internal"}],"src":"3437:37:5"},"returnParameters":{"id":1325,"nodeType":"ParameterList","parameters":[],"src":"3483:0:5"},"scope":1327,"src":"3409:75:5","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":1328,"src":"58:3428:5","usedErrors":[]}],"src":"33:3454:5"}},"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IEthToken.sol":{"id":6,"ast":{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IEthToken.sol","exportedSymbols":{"IEthToken":[1400]},"id":1401,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1329,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"33:23:6"},{"abstract":false,"baseContracts":[],"canonicalName":"IEthToken","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":1400,"linearizedBaseContracts":[1400],"name":"IEthToken","nameLocation":"68:9:6","nodeType":"ContractDefinition","nodes":[{"functionSelector":"9cc7f708","id":1336,"implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"93:9:6","nodeType":"FunctionDefinition","parameters":{"id":1332,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1331,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1336,"src":"103:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1330,"name":"uint256","nodeType":"ElementaryTypeName","src":"103:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"102:9:6"},"returnParameters":{"id":1335,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1334,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1336,"src":"135:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1333,"name":"uint256","nodeType":"ElementaryTypeName","src":"135:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"134:9:6"},"scope":1400,"src":"84:60:6","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"579952fc","id":1345,"implemented":false,"kind":"function","modifiers":[],"name":"transferFromTo","nameLocation":"159:14:6","nodeType":"FunctionDefinition","parameters":{"id":1343,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1338,"mutability":"mutable","name":"_from","nameLocation":"182:5:6","nodeType":"VariableDeclaration","scope":1345,"src":"174:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1337,"name":"address","nodeType":"ElementaryTypeName","src":"174:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1340,"mutability":"mutable","name":"_to","nameLocation":"197:3:6","nodeType":"VariableDeclaration","scope":1345,"src":"189:11:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1339,"name":"address","nodeType":"ElementaryTypeName","src":"189:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1342,"mutability":"mutable","name":"_amount","nameLocation":"210:7:6","nodeType":"VariableDeclaration","scope":1345,"src":"202:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1341,"name":"uint256","nodeType":"ElementaryTypeName","src":"202:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"173:45:6"},"returnParameters":{"id":1344,"nodeType":"ParameterList","parameters":[],"src":"227:0:6"},"scope":1400,"src":"150:78:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"18160ddd","id":1350,"implemented":false,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"243:11:6","nodeType":"FunctionDefinition","parameters":{"id":1346,"nodeType":"ParameterList","parameters":[],"src":"254:2:6"},"returnParameters":{"id":1349,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1348,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1350,"src":"280:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1347,"name":"uint256","nodeType":"ElementaryTypeName","src":"280:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"279:9:6"},"scope":1400,"src":"234:55:6","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"06fdde03","id":1355,"implemented":false,"kind":"function","modifiers":[],"name":"name","nameLocation":"304:4:6","nodeType":"FunctionDefinition","parameters":{"id":1351,"nodeType":"ParameterList","parameters":[],"src":"308:2:6"},"returnParameters":{"id":1354,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1353,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1355,"src":"334:13:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1352,"name":"string","nodeType":"ElementaryTypeName","src":"334:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"333:15:6"},"scope":1400,"src":"295:54:6","stateMutability":"pure","virtual":false,"visibility":"external"},{"functionSelector":"95d89b41","id":1360,"implemented":false,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"364:6:6","nodeType":"FunctionDefinition","parameters":{"id":1356,"nodeType":"ParameterList","parameters":[],"src":"370:2:6"},"returnParameters":{"id":1359,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1358,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1360,"src":"396:13:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1357,"name":"string","nodeType":"ElementaryTypeName","src":"396:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"395:15:6"},"scope":1400,"src":"355:56:6","stateMutability":"pure","virtual":false,"visibility":"external"},{"functionSelector":"313ce567","id":1365,"implemented":false,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"426:8:6","nodeType":"FunctionDefinition","parameters":{"id":1361,"nodeType":"ParameterList","parameters":[],"src":"434:2:6"},"returnParameters":{"id":1364,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1363,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1365,"src":"460:5:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1362,"name":"uint8","nodeType":"ElementaryTypeName","src":"460:5:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"459:7:6"},"scope":1400,"src":"417:50:6","stateMutability":"pure","virtual":false,"visibility":"external"},{"functionSelector":"40c10f19","id":1372,"implemented":false,"kind":"function","modifiers":[],"name":"mint","nameLocation":"482:4:6","nodeType":"FunctionDefinition","parameters":{"id":1370,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1367,"mutability":"mutable","name":"_account","nameLocation":"495:8:6","nodeType":"VariableDeclaration","scope":1372,"src":"487:16:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1366,"name":"address","nodeType":"ElementaryTypeName","src":"487:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1369,"mutability":"mutable","name":"_amount","nameLocation":"513:7:6","nodeType":"VariableDeclaration","scope":1372,"src":"505:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1368,"name":"uint256","nodeType":"ElementaryTypeName","src":"505:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"486:35:6"},"returnParameters":{"id":1371,"nodeType":"ParameterList","parameters":[],"src":"530:0:6"},"scope":1400,"src":"473:58:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"51cff8d9","id":1377,"implemented":false,"kind":"function","modifiers":[],"name":"withdraw","nameLocation":"546:8:6","nodeType":"FunctionDefinition","parameters":{"id":1375,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1374,"mutability":"mutable","name":"_l1Receiver","nameLocation":"563:11:6","nodeType":"VariableDeclaration","scope":1377,"src":"555:19:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1373,"name":"address","nodeType":"ElementaryTypeName","src":"555:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"554:21:6"},"returnParameters":{"id":1376,"nodeType":"ParameterList","parameters":[],"src":"592:0:6"},"scope":1400,"src":"537:56:6","stateMutability":"payable","virtual":false,"visibility":"external"},{"anonymous":false,"eventSelector":"0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885","id":1383,"name":"Mint","nameLocation":"605:4:6","nodeType":"EventDefinition","parameters":{"id":1382,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1379,"indexed":true,"mutability":"mutable","name":"account","nameLocation":"626:7:6","nodeType":"VariableDeclaration","scope":1383,"src":"610:23:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1378,"name":"address","nodeType":"ElementaryTypeName","src":"610:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1381,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"643:6:6","nodeType":"VariableDeclaration","scope":1383,"src":"635:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1380,"name":"uint256","nodeType":"ElementaryTypeName","src":"635:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"609:41:6"},"src":"599:52:6"},{"anonymous":false,"eventSelector":"ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","id":1391,"name":"Transfer","nameLocation":"663:8:6","nodeType":"EventDefinition","parameters":{"id":1390,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1385,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"688:4:6","nodeType":"VariableDeclaration","scope":1391,"src":"672:20:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1384,"name":"address","nodeType":"ElementaryTypeName","src":"672:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1387,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"710:2:6","nodeType":"VariableDeclaration","scope":1391,"src":"694:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1386,"name":"address","nodeType":"ElementaryTypeName","src":"694:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1389,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"722:5:6","nodeType":"VariableDeclaration","scope":1391,"src":"714:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1388,"name":"uint256","nodeType":"ElementaryTypeName","src":"714:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"671:57:6"},"src":"657:72:6"},{"anonymous":false,"eventSelector":"2717ead6b9200dd235aad468c9809ea400fe33ac69b5bfaa6d3e90fc922b6398","id":1399,"name":"Withdrawal","nameLocation":"741:10:6","nodeType":"EventDefinition","parameters":{"id":1398,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1393,"indexed":true,"mutability":"mutable","name":"_l2Sender","nameLocation":"768:9:6","nodeType":"VariableDeclaration","scope":1399,"src":"752:25:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1392,"name":"address","nodeType":"ElementaryTypeName","src":"752:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1395,"indexed":true,"mutability":"mutable","name":"_l1Receiver","nameLocation":"795:11:6","nodeType":"VariableDeclaration","scope":1399,"src":"779:27:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1394,"name":"address","nodeType":"ElementaryTypeName","src":"779:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1397,"indexed":false,"mutability":"mutable","name":"_amount","nameLocation":"816:7:6","nodeType":"VariableDeclaration","scope":1399,"src":"808:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1396,"name":"uint256","nodeType":"ElementaryTypeName","src":"808:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"751:73:6"},"src":"735:90:6"}],"scope":1401,"src":"58:769:6","usedErrors":[]}],"src":"33:795:6"}},"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IImmutableSimulator.sol":{"id":7,"ast":{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IImmutableSimulator.sol","exportedSymbols":{"IImmutableSimulator":[1426],"ImmutableData":[1407]},"id":1427,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1402,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"33:23:7"},{"canonicalName":"ImmutableData","id":1407,"members":[{"constant":false,"id":1404,"mutability":"mutable","name":"index","nameLocation":"93:5:7","nodeType":"VariableDeclaration","scope":1407,"src":"85:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1403,"name":"uint256","nodeType":"ElementaryTypeName","src":"85:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1406,"mutability":"mutable","name":"value","nameLocation":"112:5:7","nodeType":"VariableDeclaration","scope":1407,"src":"104:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1405,"name":"bytes32","nodeType":"ElementaryTypeName","src":"104:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"ImmutableData","nameLocation":"65:13:7","nodeType":"StructDefinition","scope":1427,"src":"58:62:7","visibility":"public"},{"abstract":false,"baseContracts":[],"canonicalName":"IImmutableSimulator","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":1426,"linearizedBaseContracts":[1426],"name":"IImmutableSimulator","nameLocation":"132:19:7","nodeType":"ContractDefinition","nodes":[{"functionSelector":"310ab089","id":1416,"implemented":false,"kind":"function","modifiers":[],"name":"getImmutable","nameLocation":"167:12:7","nodeType":"FunctionDefinition","parameters":{"id":1412,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1409,"mutability":"mutable","name":"_dest","nameLocation":"188:5:7","nodeType":"VariableDeclaration","scope":1416,"src":"180:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1408,"name":"address","nodeType":"ElementaryTypeName","src":"180:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1411,"mutability":"mutable","name":"_index","nameLocation":"203:6:7","nodeType":"VariableDeclaration","scope":1416,"src":"195:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1410,"name":"uint256","nodeType":"ElementaryTypeName","src":"195:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"179:31:7"},"returnParameters":{"id":1415,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1414,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1416,"src":"234:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1413,"name":"bytes32","nodeType":"ElementaryTypeName","src":"234:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"233:9:7"},"scope":1426,"src":"158:85:7","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"ad7e232e","id":1425,"implemented":false,"kind":"function","modifiers":[],"name":"setImmutables","nameLocation":"258:13:7","nodeType":"FunctionDefinition","parameters":{"id":1423,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1418,"mutability":"mutable","name":"_dest","nameLocation":"280:5:7","nodeType":"VariableDeclaration","scope":1425,"src":"272:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1417,"name":"address","nodeType":"ElementaryTypeName","src":"272:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1422,"mutability":"mutable","name":"_immutables","nameLocation":"312:11:7","nodeType":"VariableDeclaration","scope":1425,"src":"287:36:7","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ImmutableData_$1407_calldata_ptr_$dyn_calldata_ptr","typeString":"struct ImmutableData[]"},"typeName":{"baseType":{"id":1420,"nodeType":"UserDefinedTypeName","pathNode":{"id":1419,"name":"ImmutableData","nameLocations":["287:13:7"],"nodeType":"IdentifierPath","referencedDeclaration":1407,"src":"287:13:7"},"referencedDeclaration":1407,"src":"287:13:7","typeDescriptions":{"typeIdentifier":"t_struct$_ImmutableData_$1407_storage_ptr","typeString":"struct ImmutableData"}},"id":1421,"nodeType":"ArrayTypeName","src":"287:15:7","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ImmutableData_$1407_storage_$dyn_storage_ptr","typeString":"struct ImmutableData[]"}},"visibility":"internal"}],"src":"271:53:7"},"returnParameters":{"id":1424,"nodeType":"ParameterList","parameters":[],"src":"333:0:7"},"scope":1426,"src":"249:85:7","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":1427,"src":"122:214:7","usedErrors":[]}],"src":"33:304:7"}},"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IKnownCodesStorage.sol":{"id":8,"ast":{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IKnownCodesStorage.sol","exportedSymbols":{"IKnownCodesStorage":[1459]},"id":1460,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1428,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"33:23:8"},{"abstract":false,"baseContracts":[],"canonicalName":"IKnownCodesStorage","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":1459,"linearizedBaseContracts":[1459],"name":"IKnownCodesStorage","nameLocation":"68:18:8","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"eventSelector":"c94722ff13eacf53547c4741dab5228353a05938ffcdd5d4a2d533ae0e618287","id":1434,"name":"MarkedAsKnown","nameLocation":"99:13:8","nodeType":"EventDefinition","parameters":{"id":1433,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1430,"indexed":true,"mutability":"mutable","name":"bytecodeHash","nameLocation":"129:12:8","nodeType":"VariableDeclaration","scope":1434,"src":"113:28:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1429,"name":"bytes32","nodeType":"ElementaryTypeName","src":"113:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1432,"indexed":true,"mutability":"mutable","name":"sendBytecodeToL1","nameLocation":"156:16:8","nodeType":"VariableDeclaration","scope":1434,"src":"143:29:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1431,"name":"bool","nodeType":"ElementaryTypeName","src":"143:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"112:61:8"},"src":"93:81:8"},{"functionSelector":"e516761e","id":1442,"implemented":false,"kind":"function","modifiers":[],"name":"markFactoryDeps","nameLocation":"189:15:8","nodeType":"FunctionDefinition","parameters":{"id":1440,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1436,"mutability":"mutable","name":"_shouldSendToL1","nameLocation":"210:15:8","nodeType":"VariableDeclaration","scope":1442,"src":"205:20:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1435,"name":"bool","nodeType":"ElementaryTypeName","src":"205:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":1439,"mutability":"mutable","name":"_hashes","nameLocation":"246:7:8","nodeType":"VariableDeclaration","scope":1442,"src":"227:26:8","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":1437,"name":"bytes32","nodeType":"ElementaryTypeName","src":"227:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":1438,"nodeType":"ArrayTypeName","src":"227:9:8","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"204:50:8"},"returnParameters":{"id":1441,"nodeType":"ParameterList","parameters":[],"src":"263:0:8"},"scope":1459,"src":"180:84:8","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"24a55db9","id":1451,"implemented":false,"kind":"function","modifiers":[],"name":"markBytecodeAsPublished","nameLocation":"279:23:8","nodeType":"FunctionDefinition","parameters":{"id":1449,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1444,"mutability":"mutable","name":"_bytecodeHash","nameLocation":"320:13:8","nodeType":"VariableDeclaration","scope":1451,"src":"312:21:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1443,"name":"bytes32","nodeType":"ElementaryTypeName","src":"312:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1446,"mutability":"mutable","name":"_l1PreimageHash","nameLocation":"351:15:8","nodeType":"VariableDeclaration","scope":1451,"src":"343:23:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1445,"name":"bytes32","nodeType":"ElementaryTypeName","src":"343:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1448,"mutability":"mutable","name":"_l1PreimageBytesLen","nameLocation":"384:19:8","nodeType":"VariableDeclaration","scope":1451,"src":"376:27:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1447,"name":"uint256","nodeType":"ElementaryTypeName","src":"376:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"302:107:8"},"returnParameters":{"id":1450,"nodeType":"ParameterList","parameters":[],"src":"418:0:8"},"scope":1459,"src":"270:149:8","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"4c6314f0","id":1458,"implemented":false,"kind":"function","modifiers":[],"name":"getMarker","nameLocation":"434:9:8","nodeType":"FunctionDefinition","parameters":{"id":1454,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1453,"mutability":"mutable","name":"_hash","nameLocation":"452:5:8","nodeType":"VariableDeclaration","scope":1458,"src":"444:13:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1452,"name":"bytes32","nodeType":"ElementaryTypeName","src":"444:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"443:15:8"},"returnParameters":{"id":1457,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1456,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1458,"src":"482:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1455,"name":"uint256","nodeType":"ElementaryTypeName","src":"482:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"481:9:8"},"scope":1459,"src":"425:66:8","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":1460,"src":"58:435:8","usedErrors":[]}],"src":"33:461:8"}},"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IL1Messenger.sol":{"id":9,"ast":{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IL1Messenger.sol","exportedSymbols":{"IL1Messenger":[1477]},"id":1478,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1461,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"33:23:9"},{"abstract":false,"baseContracts":[],"canonicalName":"IL1Messenger","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":1477,"linearizedBaseContracts":[1477],"name":"IL1Messenger","nameLocation":"68:12:9","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"eventSelector":"3a36e47291f4201faf137fab081d92295bce2d53be2c6ca68ba82c7faa9ce241","id":1469,"name":"L1MessageSent","nameLocation":"263:13:9","nodeType":"EventDefinition","parameters":{"id":1468,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1463,"indexed":true,"mutability":"mutable","name":"_sender","nameLocation":"293:7:9","nodeType":"VariableDeclaration","scope":1469,"src":"277:23:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1462,"name":"address","nodeType":"ElementaryTypeName","src":"277:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1465,"indexed":true,"mutability":"mutable","name":"_hash","nameLocation":"318:5:9","nodeType":"VariableDeclaration","scope":1469,"src":"302:21:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1464,"name":"bytes32","nodeType":"ElementaryTypeName","src":"302:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1467,"indexed":false,"mutability":"mutable","name":"_message","nameLocation":"331:8:9","nodeType":"VariableDeclaration","scope":1469,"src":"325:14:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1466,"name":"bytes","nodeType":"ElementaryTypeName","src":"325:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"276:64:9"},"src":"257:84:9"},{"functionSelector":"62f84b24","id":1476,"implemented":false,"kind":"function","modifiers":[],"name":"sendToL1","nameLocation":"356:8:9","nodeType":"FunctionDefinition","parameters":{"id":1472,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1471,"mutability":"mutable","name":"_message","nameLocation":"378:8:9","nodeType":"VariableDeclaration","scope":1476,"src":"365:21:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1470,"name":"bytes","nodeType":"ElementaryTypeName","src":"365:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"364:23:9"},"returnParameters":{"id":1475,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1474,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1476,"src":"406:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1473,"name":"bytes32","nodeType":"ElementaryTypeName","src":"406:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"405:9:9"},"scope":1477,"src":"347:68:9","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":1478,"src":"58:359:9","usedErrors":[]}],"src":"33:385:9"}},"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/INonceHolder.sol":{"id":10,"ast":{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/INonceHolder.sol","exportedSymbols":{"INonceHolder":[1571]},"id":1572,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1479,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"33:23:10"},{"abstract":false,"baseContracts":[],"canonicalName":"INonceHolder","contractDependencies":[],"contractKind":"interface","documentation":{"id":1480,"nodeType":"StructuredDocumentation","src":"58:438:10","text":" @author Matter Labs\n @dev Interface of the nonce holder contract -- a contract used by the system to ensure\n that there is always a unique identifier for a transaction with a particular account (we call it nonce).\n In other words, the pair of (address, nonce) should always be unique.\n @dev Custom accounts should use methods of this contract to store nonces or other possible unique identifiers\n for the transaction."},"fullyImplemented":false,"id":1571,"linearizedBaseContracts":[1571],"name":"INonceHolder","nameLocation":"507:12:10","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"eventSelector":"da2b716e5a5d5f602b9a5842bcd89c215b125258dfea271a03e5e0e801d93a8c","id":1488,"name":"ValueSetUnderNonce","nameLocation":"532:18:10","nodeType":"EventDefinition","parameters":{"id":1487,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1482,"indexed":true,"mutability":"mutable","name":"accountAddress","nameLocation":"567:14:10","nodeType":"VariableDeclaration","scope":1488,"src":"551:30:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1481,"name":"address","nodeType":"ElementaryTypeName","src":"551:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1484,"indexed":true,"mutability":"mutable","name":"key","nameLocation":"599:3:10","nodeType":"VariableDeclaration","scope":1488,"src":"583:19:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1483,"name":"uint256","nodeType":"ElementaryTypeName","src":"583:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1486,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"612:5:10","nodeType":"VariableDeclaration","scope":1488,"src":"604:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1485,"name":"uint256","nodeType":"ElementaryTypeName","src":"604:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"550:68:10"},"src":"526:93:10"},{"documentation":{"id":1489,"nodeType":"StructuredDocumentation","src":"625:55:10","text":"@dev Returns the current minimal nonce for account."},"functionSelector":"896909dc","id":1496,"implemented":false,"kind":"function","modifiers":[],"name":"getMinNonce","nameLocation":"694:11:10","nodeType":"FunctionDefinition","parameters":{"id":1492,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1491,"mutability":"mutable","name":"_address","nameLocation":"714:8:10","nodeType":"VariableDeclaration","scope":1496,"src":"706:16:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1490,"name":"address","nodeType":"ElementaryTypeName","src":"706:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"705:18:10"},"returnParameters":{"id":1495,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1494,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1496,"src":"747:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1493,"name":"uint256","nodeType":"ElementaryTypeName","src":"747:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"746:9:10"},"scope":1571,"src":"685:71:10","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1497,"nodeType":"StructuredDocumentation","src":"762:117:10","text":"@dev Returns the raw version of the current minimal nonce\n (equal to minNonce + 2^128 * deployment nonce)."},"functionSelector":"5aa9b6b5","id":1504,"implemented":false,"kind":"function","modifiers":[],"name":"getRawNonce","nameLocation":"893:11:10","nodeType":"FunctionDefinition","parameters":{"id":1500,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1499,"mutability":"mutable","name":"_address","nameLocation":"913:8:10","nodeType":"VariableDeclaration","scope":1504,"src":"905:16:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1498,"name":"address","nodeType":"ElementaryTypeName","src":"905:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"904:18:10"},"returnParameters":{"id":1503,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1502,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1504,"src":"946:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1501,"name":"uint256","nodeType":"ElementaryTypeName","src":"946:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"945:9:10"},"scope":1571,"src":"884:71:10","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1505,"nodeType":"StructuredDocumentation","src":"961:56:10","text":"@dev Increases the minimal nonce for the msg.sender."},"functionSelector":"38a78092","id":1512,"implemented":false,"kind":"function","modifiers":[],"name":"increaseMinNonce","nameLocation":"1031:16:10","nodeType":"FunctionDefinition","parameters":{"id":1508,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1507,"mutability":"mutable","name":"_value","nameLocation":"1056:6:10","nodeType":"VariableDeclaration","scope":1512,"src":"1048:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1506,"name":"uint256","nodeType":"ElementaryTypeName","src":"1048:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1047:16:10"},"returnParameters":{"id":1511,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1510,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1512,"src":"1082:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1509,"name":"uint256","nodeType":"ElementaryTypeName","src":"1082:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1081:9:10"},"scope":1571,"src":"1022:69:10","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1513,"nodeType":"StructuredDocumentation","src":"1097:44:10","text":"@dev Sets the nonce value `key` as used."},"functionSelector":"155fd27a","id":1520,"implemented":false,"kind":"function","modifiers":[],"name":"setValueUnderNonce","nameLocation":"1155:18:10","nodeType":"FunctionDefinition","parameters":{"id":1518,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1515,"mutability":"mutable","name":"_key","nameLocation":"1182:4:10","nodeType":"VariableDeclaration","scope":1520,"src":"1174:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1514,"name":"uint256","nodeType":"ElementaryTypeName","src":"1174:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1517,"mutability":"mutable","name":"_value","nameLocation":"1196:6:10","nodeType":"VariableDeclaration","scope":1520,"src":"1188:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1516,"name":"uint256","nodeType":"ElementaryTypeName","src":"1188:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1173:30:10"},"returnParameters":{"id":1519,"nodeType":"ParameterList","parameters":[],"src":"1212:0:10"},"scope":1571,"src":"1146:67:10","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1521,"nodeType":"StructuredDocumentation","src":"1219:53:10","text":"@dev Gets the value stored inside a custom nonce."},"functionSelector":"55d35d18","id":1528,"implemented":false,"kind":"function","modifiers":[],"name":"getValueUnderNonce","nameLocation":"1286:18:10","nodeType":"FunctionDefinition","parameters":{"id":1524,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1523,"mutability":"mutable","name":"_key","nameLocation":"1313:4:10","nodeType":"VariableDeclaration","scope":1528,"src":"1305:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1522,"name":"uint256","nodeType":"ElementaryTypeName","src":"1305:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1304:14:10"},"returnParameters":{"id":1527,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1526,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1528,"src":"1342:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1525,"name":"uint256","nodeType":"ElementaryTypeName","src":"1342:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1341:9:10"},"scope":1571,"src":"1277:74:10","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1529,"nodeType":"StructuredDocumentation","src":"1357:108:10","text":"@dev A convenience method to increment the minimal nonce if it is equal\n to the `_expectedNonce`."},"functionSelector":"e1239cd8","id":1534,"implemented":false,"kind":"function","modifiers":[],"name":"incrementMinNonceIfEquals","nameLocation":"1479:25:10","nodeType":"FunctionDefinition","parameters":{"id":1532,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1531,"mutability":"mutable","name":"_expectedNonce","nameLocation":"1513:14:10","nodeType":"VariableDeclaration","scope":1534,"src":"1505:22:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1530,"name":"uint256","nodeType":"ElementaryTypeName","src":"1505:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1504:24:10"},"returnParameters":{"id":1533,"nodeType":"ParameterList","parameters":[],"src":"1537:0:10"},"scope":1571,"src":"1470:68:10","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1535,"nodeType":"StructuredDocumentation","src":"1544:78:10","text":"@dev Returns the deployment nonce for the accounts used for CREATE opcode."},"functionSelector":"fb1a9a57","id":1542,"implemented":false,"kind":"function","modifiers":[],"name":"getDeploymentNonce","nameLocation":"1636:18:10","nodeType":"FunctionDefinition","parameters":{"id":1538,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1537,"mutability":"mutable","name":"_address","nameLocation":"1663:8:10","nodeType":"VariableDeclaration","scope":1542,"src":"1655:16:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1536,"name":"address","nodeType":"ElementaryTypeName","src":"1655:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1654:18:10"},"returnParameters":{"id":1541,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1540,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1542,"src":"1696:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1539,"name":"uint256","nodeType":"ElementaryTypeName","src":"1696:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1695:9:10"},"scope":1571,"src":"1627:78:10","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1543,"nodeType":"StructuredDocumentation","src":"1711:86:10","text":"@dev Increments the deployment nonce for the account and returns the previous one."},"functionSelector":"306395c6","id":1550,"implemented":false,"kind":"function","modifiers":[],"name":"incrementDeploymentNonce","nameLocation":"1811:24:10","nodeType":"FunctionDefinition","parameters":{"id":1546,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1545,"mutability":"mutable","name":"_address","nameLocation":"1844:8:10","nodeType":"VariableDeclaration","scope":1550,"src":"1836:16:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1544,"name":"address","nodeType":"ElementaryTypeName","src":"1836:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1835:18:10"},"returnParameters":{"id":1549,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1548,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1550,"src":"1872:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1547,"name":"uint256","nodeType":"ElementaryTypeName","src":"1872:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1871:9:10"},"scope":1571,"src":"1802:79:10","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1551,"nodeType":"StructuredDocumentation","src":"1887:81:10","text":"@dev Determines whether a certain nonce has been already used for an account."},"functionSelector":"6ee1dc20","id":1560,"implemented":false,"kind":"function","modifiers":[],"name":"validateNonceUsage","nameLocation":"1982:18:10","nodeType":"FunctionDefinition","parameters":{"id":1558,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1553,"mutability":"mutable","name":"_address","nameLocation":"2009:8:10","nodeType":"VariableDeclaration","scope":1560,"src":"2001:16:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1552,"name":"address","nodeType":"ElementaryTypeName","src":"2001:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1555,"mutability":"mutable","name":"_key","nameLocation":"2027:4:10","nodeType":"VariableDeclaration","scope":1560,"src":"2019:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1554,"name":"uint256","nodeType":"ElementaryTypeName","src":"2019:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1557,"mutability":"mutable","name":"_shouldBeUsed","nameLocation":"2038:13:10","nodeType":"VariableDeclaration","scope":1560,"src":"2033:18:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1556,"name":"bool","nodeType":"ElementaryTypeName","src":"2033:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2000:52:10"},"returnParameters":{"id":1559,"nodeType":"ParameterList","parameters":[],"src":"2066:0:10"},"scope":1571,"src":"1973:94:10","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1561,"nodeType":"StructuredDocumentation","src":"2073:62:10","text":"@dev Returns whether a nonce has been used for an account."},"functionSelector":"cab7e8eb","id":1570,"implemented":false,"kind":"function","modifiers":[],"name":"isNonceUsed","nameLocation":"2149:11:10","nodeType":"FunctionDefinition","parameters":{"id":1566,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1563,"mutability":"mutable","name":"_address","nameLocation":"2169:8:10","nodeType":"VariableDeclaration","scope":1570,"src":"2161:16:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1562,"name":"address","nodeType":"ElementaryTypeName","src":"2161:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1565,"mutability":"mutable","name":"_nonce","nameLocation":"2187:6:10","nodeType":"VariableDeclaration","scope":1570,"src":"2179:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1564,"name":"uint256","nodeType":"ElementaryTypeName","src":"2179:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2160:34:10"},"returnParameters":{"id":1569,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1568,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1570,"src":"2218:4:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1567,"name":"bool","nodeType":"ElementaryTypeName","src":"2218:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2217:6:10"},"scope":1571,"src":"2140:84:10","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":1572,"src":"497:1729:10","usedErrors":[]}],"src":"33:2194:10"}},"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymaster.sol":{"id":11,"ast":{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymaster.sol","exportedSymbols":{"ADDRESS_MASK":[2520],"Address":[5645],"BOOTLOADER_FORMAL_ADDRESS":[958],"CALLFLAGS_CALL_ADDRESS":[3261],"CODE_ADDRESS_CALL_ADDRESS":[3096],"CalldataForwardingMode":[3405],"EIP_1559_TX_TYPE":[3710],"EIP_2930_TX_TYPE":[3706],"EIP_712_TX_TYPE":[3698],"ETH_TOKEN_SYSTEM_CONTRACT":[1051],"EVENT_INITIALIZE_ADDRESS":[3283],"EVENT_WRITE_ADDRESS":[3294],"EfficientCall":[2170],"ExecutionResult":[1577],"GET_EXTRA_ABI_DATA_ADDRESS":[3371],"Global":[2539],"IContractDeployer":[1327],"IERC20":[4998],"IERC20Permit":[5034],"INCREMENT_TX_COUNTER_CALL_ADDRESS":[3239],"IPaymaster":[1616],"IPaymasterFlow":[1634],"ISystemContract":[3068],"KECCAK256_SYSTEM_CONTRACT":[1059],"LEGACY_TX_TYPE":[3702],"LOAD_CALLDATA_INTO_ACTIVE_PTR_CALL_ADDRESS":[3305],"LOAD_LATEST_RETURNDATA_INTO_ACTIVE_PTR_CALL_ADDRESS":[3316],"MAX_SYSTEM_CONTRACT_ADDRESS":[925],"META_AUX_HEAP_SIZE_OFFSET":[3386],"META_CALLER_SHARD_ID_OFFSET":[3396],"META_CALL_ADDRESS":[3118],"META_CODE_SHARD_ID_OFFSET":[3401],"META_GAS_PER_PUBDATA_BYTE_OFFSET":[3376],"META_HEAP_SIZE_OFFSET":[3381],"META_SHARD_ID_OFFSET":[3391],"MIMIC_CALL_BY_REF_CALL_ADDRESS":[3151],"MIMIC_CALL_CALL_ADDRESS":[3129],"MSG_VALUE_SIMULATOR_IS_SYSTEM_BIT":[1107],"MSG_VALUE_SYSTEM_CONTRACT":[1040],"MULTIPLICATION_HIGH_ADDRESS":[3360],"PAYMASTER_VALIDATION_SUCCESS_MAGIC":[1582],"PRECOMPILE_CALL_ADDRESS":[3107],"PTR_ADD_INTO_ACTIVE_CALL_ADDRESS":[3327],"PTR_CALLDATA_CALL_ADDRESS":[3250],"PTR_PACK_INTO_ACTIVE_CALL_ADDRESS":[3349],"PTR_RETURNDATA_CALL_ADDRESS":[3272],"PTR_SHRINK_INTO_ACTIVE_CALL_ADDRESS":[3338],"RAW_FAR_CALL_BY_REF_CALL_ADDRESS":[3184],"RAW_FAR_CALL_CALL_ADDRESS":[3173],"RLPEncoder":[2503],"SET_CONTEXT_VALUE_CALL_ADDRESS":[3217],"SET_PUBDATA_PRICE_CALL_ADDRESS":[3228],"SHA256_SYSTEM_CONTRACT":[937],"SYSTEM_CALL_BY_REF_CALL_ADDRESS":[3206],"SYSTEM_CALL_CALL_ADDRESS":[3195],"SYSTEM_MIMIC_CALL_BY_REF_CALL_ADDRESS":[3162],"SYSTEM_MIMIC_CALL_CALL_ADDRESS":[3140],"SafeERC20":[5315],"SystemContractHelper":[3048],"SystemContractsCaller":[3683],"TO_L1_CALL_ADDRESS":[3085],"Transaction":[3746],"TransactionHelper":[4646],"UINT128_MASK":[2516],"UINT32_MASK":[2513],"Utils":[4920],"ZkSyncMeta":[2533]},"id":1617,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1573,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"33:23:11"},{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/libraries/TransactionHelper.sol","file":"../libraries/TransactionHelper.sol","id":1574,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1617,"sourceUnit":4647,"src":"58:44:11","symbolAliases":[],"unitAlias":""},{"canonicalName":"ExecutionResult","id":1577,"members":[{"id":1575,"name":"Revert","nameLocation":"131:6:11","nodeType":"EnumValue","src":"131:6:11"},{"id":1576,"name":"Success","nameLocation":"143:7:11","nodeType":"EnumValue","src":"143:7:11"}],"name":"ExecutionResult","nameLocation":"109:15:11","nodeType":"EnumDefinition","src":"104:48:11"},{"constant":true,"id":1582,"mutability":"constant","name":"PAYMASTER_VALIDATION_SUCCESS_MAGIC","nameLocation":"170:34:11","nodeType":"VariableDeclaration","scope":1617,"src":"154:110:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":1578,"name":"bytes4","nodeType":"ElementaryTypeName","src":"154:6:11","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"value":{"expression":{"expression":{"id":1579,"name":"IPaymaster","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1616,"src":"207:10:11","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPaymaster_$1616_$","typeString":"type(contract IPaymaster)"}},"id":1580,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"218:37:11","memberName":"validateAndPayForPaymasterTransaction","nodeType":"MemberAccess","referencedDeclaration":1597,"src":"207:48:11","typeDescriptions":{"typeIdentifier":"t_function_declaration_payable$_t_bytes32_$_t_bytes32_$_t_struct$_Transaction_$3746_calldata_ptr_$returns$_t_bytes4_$_t_bytes_memory_ptr_$","typeString":"function IPaymaster.validateAndPayForPaymasterTransaction(bytes32,bytes32,struct Transaction calldata) payable returns (bytes4,bytes memory)"}},"id":1581,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"256:8:11","memberName":"selector","nodeType":"MemberAccess","src":"207:57:11","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"abstract":false,"baseContracts":[],"canonicalName":"IPaymaster","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":1616,"linearizedBaseContracts":[1616],"name":"IPaymaster","nameLocation":"277:10:11","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":1583,"nodeType":"StructuredDocumentation","src":"294:1020:11","text":"@dev Called by the bootloader to verify that the paymaster agrees to pay for the\n fee for the transaction. This transaction should also send the necessary amount of funds onto the bootloader\n address.\n @param _txHash The hash of the transaction\n @param _suggestedSignedHash The hash of the transaction that is signed by an EOA\n @param _transaction The transaction itself.\n @return magic The value that should be equal to the signature of the validateAndPayForPaymasterTransaction\n if the paymaster agrees to pay for the transaction.\n @return context The \"context\" of the transaction: an array of bytes of length at most 1024 bytes, which will be\n passed to the `postTransaction` method of the account.\n @dev The developer should strive to preserve as many steps as possible both for valid\n and invalid transactions as this very method is also used during the gas fee estimation\n (without some of the necessary data, e.g. signature)."},"functionSelector":"038a24bc","id":1597,"implemented":false,"kind":"function","modifiers":[],"name":"validateAndPayForPaymasterTransaction","nameLocation":"1328:37:11","nodeType":"FunctionDefinition","parameters":{"id":1591,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1585,"mutability":"mutable","name":"_txHash","nameLocation":"1383:7:11","nodeType":"VariableDeclaration","scope":1597,"src":"1375:15:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1584,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1375:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1587,"mutability":"mutable","name":"_suggestedSignedHash","nameLocation":"1408:20:11","nodeType":"VariableDeclaration","scope":1597,"src":"1400:28:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1586,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1400:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1590,"mutability":"mutable","name":"_transaction","nameLocation":"1459:12:11","nodeType":"VariableDeclaration","scope":1597,"src":"1438:33:11","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction"},"typeName":{"id":1589,"nodeType":"UserDefinedTypeName","pathNode":{"id":1588,"name":"Transaction","nameLocations":["1438:11:11"],"nodeType":"IdentifierPath","referencedDeclaration":3746,"src":"1438:11:11"},"referencedDeclaration":3746,"src":"1438:11:11","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_storage_ptr","typeString":"struct Transaction"}},"visibility":"internal"}],"src":"1365:112:11"},"returnParameters":{"id":1596,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1593,"mutability":"mutable","name":"magic","nameLocation":"1511:5:11","nodeType":"VariableDeclaration","scope":1597,"src":"1504:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":1592,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1504:6:11","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":1595,"mutability":"mutable","name":"context","nameLocation":"1531:7:11","nodeType":"VariableDeclaration","scope":1597,"src":"1518:20:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1594,"name":"bytes","nodeType":"ElementaryTypeName","src":"1518:5:11","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1503:36:11"},"scope":1616,"src":"1319:221:11","stateMutability":"payable","virtual":false,"visibility":"external"},{"documentation":{"id":1598,"nodeType":"StructuredDocumentation","src":"1546:795:11","text":"@dev Called by the bootloader after the execution of the transaction. Please note that\n there is no guarantee that this method will be called at all. Unlike the original EIP4337,\n this method won't be called if the transaction execution results in out-of-gas.\n @param _context, the context of the execution, returned by the \"validateAndPayForPaymasterTransaction\" method.\n @param _transaction, the users' transaction.\n @param _txResult, the result of the transaction execution (success or failure).\n @param _maxRefundedGas, the upper bound on the amout of gas that could be refunded to the paymaster.\n @dev The exact amount refunded depends on the gas spent by the \"postOp\" itself and so the developers should\n take that into account."},"functionSelector":"817b17f0","id":1615,"implemented":false,"kind":"function","modifiers":[],"name":"postTransaction","nameLocation":"2355:15:11","nodeType":"FunctionDefinition","parameters":{"id":1613,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1600,"mutability":"mutable","name":"_context","nameLocation":"2395:8:11","nodeType":"VariableDeclaration","scope":1615,"src":"2380:23:11","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1599,"name":"bytes","nodeType":"ElementaryTypeName","src":"2380:5:11","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1603,"mutability":"mutable","name":"_transaction","nameLocation":"2434:12:11","nodeType":"VariableDeclaration","scope":1615,"src":"2413:33:11","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction"},"typeName":{"id":1602,"nodeType":"UserDefinedTypeName","pathNode":{"id":1601,"name":"Transaction","nameLocations":["2413:11:11"],"nodeType":"IdentifierPath","referencedDeclaration":3746,"src":"2413:11:11"},"referencedDeclaration":3746,"src":"2413:11:11","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_storage_ptr","typeString":"struct Transaction"}},"visibility":"internal"},{"constant":false,"id":1605,"mutability":"mutable","name":"_txHash","nameLocation":"2464:7:11","nodeType":"VariableDeclaration","scope":1615,"src":"2456:15:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1604,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2456:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1607,"mutability":"mutable","name":"_suggestedSignedHash","nameLocation":"2489:20:11","nodeType":"VariableDeclaration","scope":1615,"src":"2481:28:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1606,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2481:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1610,"mutability":"mutable","name":"_txResult","nameLocation":"2535:9:11","nodeType":"VariableDeclaration","scope":1615,"src":"2519:25:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ExecutionResult_$1577","typeString":"enum ExecutionResult"},"typeName":{"id":1609,"nodeType":"UserDefinedTypeName","pathNode":{"id":1608,"name":"ExecutionResult","nameLocations":["2519:15:11"],"nodeType":"IdentifierPath","referencedDeclaration":1577,"src":"2519:15:11"},"referencedDeclaration":1577,"src":"2519:15:11","typeDescriptions":{"typeIdentifier":"t_enum$_ExecutionResult_$1577","typeString":"enum ExecutionResult"}},"visibility":"internal"},{"constant":false,"id":1612,"mutability":"mutable","name":"_maxRefundedGas","nameLocation":"2562:15:11","nodeType":"VariableDeclaration","scope":1615,"src":"2554:23:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1611,"name":"uint256","nodeType":"ElementaryTypeName","src":"2554:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2370:213:11"},"returnParameters":{"id":1614,"nodeType":"ParameterList","parameters":[],"src":"2600:0:11"},"scope":1616,"src":"2346:255:11","stateMutability":"payable","virtual":false,"visibility":"external"}],"scope":1617,"src":"267:2336:11","usedErrors":[]}],"src":"33:2571:11"}},"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymasterFlow.sol":{"id":12,"ast":{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymasterFlow.sol","exportedSymbols":{"IPaymasterFlow":[1634]},"id":1635,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1618,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"33:23:12"},{"abstract":false,"baseContracts":[],"canonicalName":"IPaymasterFlow","contractDependencies":[],"contractKind":"interface","documentation":{"id":1619,"nodeType":"StructuredDocumentation","src":"58:232:12","text":" @author Matter Labs\n @dev The interface that is used for encoding/decoding of\n different types of paymaster flows.\n @notice This is NOT an interface to be implementated\n by contracts. It is just used for encoding."},"fullyImplemented":false,"id":1634,"linearizedBaseContracts":[1634],"name":"IPaymasterFlow","nameLocation":"301:14:12","nodeType":"ContractDefinition","nodes":[{"functionSelector":"8c5a3445","id":1624,"implemented":false,"kind":"function","modifiers":[],"name":"general","nameLocation":"331:7:12","nodeType":"FunctionDefinition","parameters":{"id":1622,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1621,"mutability":"mutable","name":"input","nameLocation":"354:5:12","nodeType":"VariableDeclaration","scope":1624,"src":"339:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1620,"name":"bytes","nodeType":"ElementaryTypeName","src":"339:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"338:22:12"},"returnParameters":{"id":1623,"nodeType":"ParameterList","parameters":[],"src":"369:0:12"},"scope":1634,"src":"322:48:12","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"949431dc","id":1633,"implemented":false,"kind":"function","modifiers":[],"name":"approvalBased","nameLocation":"385:13:12","nodeType":"FunctionDefinition","parameters":{"id":1631,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1626,"mutability":"mutable","name":"_token","nameLocation":"407:6:12","nodeType":"VariableDeclaration","scope":1633,"src":"399:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1625,"name":"address","nodeType":"ElementaryTypeName","src":"399:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1628,"mutability":"mutable","name":"_minAllowance","nameLocation":"423:13:12","nodeType":"VariableDeclaration","scope":1633,"src":"415:21:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1627,"name":"uint256","nodeType":"ElementaryTypeName","src":"415:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1630,"mutability":"mutable","name":"_innerInput","nameLocation":"453:11:12","nodeType":"VariableDeclaration","scope":1633,"src":"438:26:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1629,"name":"bytes","nodeType":"ElementaryTypeName","src":"438:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"398:67:12"},"returnParameters":{"id":1632,"nodeType":"ParameterList","parameters":[],"src":"474:0:12"},"scope":1634,"src":"376:99:12","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":1635,"src":"291:186:12","usedErrors":[]}],"src":"33:445:12"}},"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/ISystemContext.sol":{"id":13,"ast":{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/ISystemContext.sol","exportedSymbols":{"ISystemContext":[1704]},"id":1705,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1636,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"33:23:13"},{"abstract":false,"baseContracts":[],"canonicalName":"ISystemContext","contractDependencies":[],"contractKind":"interface","documentation":{"id":1637,"nodeType":"StructuredDocumentation","src":"58:155:13","text":" @author Matter Labs\n @notice Contract that stores some of the context variables, that may be either\n block-scoped, tx-scoped or system-wide."},"fullyImplemented":false,"id":1704,"linearizedBaseContracts":[1704],"name":"ISystemContext","nameLocation":"224:14:13","nodeType":"ContractDefinition","nodes":[{"functionSelector":"9a8a0592","id":1642,"implemented":false,"kind":"function","modifiers":[],"name":"chainId","nameLocation":"254:7:13","nodeType":"FunctionDefinition","parameters":{"id":1638,"nodeType":"ParameterList","parameters":[],"src":"261:2:13"},"returnParameters":{"id":1641,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1640,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1642,"src":"287:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1639,"name":"uint256","nodeType":"ElementaryTypeName","src":"287:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"286:9:13"},"scope":1704,"src":"245:51:13","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"938b5f32","id":1647,"implemented":false,"kind":"function","modifiers":[],"name":"origin","nameLocation":"311:6:13","nodeType":"FunctionDefinition","parameters":{"id":1643,"nodeType":"ParameterList","parameters":[],"src":"317:2:13"},"returnParameters":{"id":1646,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1645,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1647,"src":"343:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1644,"name":"address","nodeType":"ElementaryTypeName","src":"343:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"342:9:13"},"scope":1704,"src":"302:50:13","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"fe173b97","id":1652,"implemented":false,"kind":"function","modifiers":[],"name":"gasPrice","nameLocation":"367:8:13","nodeType":"FunctionDefinition","parameters":{"id":1648,"nodeType":"ParameterList","parameters":[],"src":"375:2:13"},"returnParameters":{"id":1651,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1650,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1652,"src":"401:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1649,"name":"uint256","nodeType":"ElementaryTypeName","src":"401:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"400:9:13"},"scope":1704,"src":"358:52:13","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"7877a797","id":1657,"implemented":false,"kind":"function","modifiers":[],"name":"blockGasLimit","nameLocation":"425:13:13","nodeType":"FunctionDefinition","parameters":{"id":1653,"nodeType":"ParameterList","parameters":[],"src":"438:2:13"},"returnParameters":{"id":1656,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1655,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1657,"src":"464:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1654,"name":"uint256","nodeType":"ElementaryTypeName","src":"464:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"463:9:13"},"scope":1704,"src":"416:57:13","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"a6ae0aac","id":1662,"implemented":false,"kind":"function","modifiers":[],"name":"coinbase","nameLocation":"488:8:13","nodeType":"FunctionDefinition","parameters":{"id":1658,"nodeType":"ParameterList","parameters":[],"src":"496:2:13"},"returnParameters":{"id":1661,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1660,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1662,"src":"522:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1659,"name":"address","nodeType":"ElementaryTypeName","src":"522:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"521:9:13"},"scope":1704,"src":"479:52:13","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"19cae462","id":1667,"implemented":false,"kind":"function","modifiers":[],"name":"difficulty","nameLocation":"546:10:13","nodeType":"FunctionDefinition","parameters":{"id":1663,"nodeType":"ParameterList","parameters":[],"src":"556:2:13"},"returnParameters":{"id":1666,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1665,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1667,"src":"582:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1664,"name":"uint256","nodeType":"ElementaryTypeName","src":"582:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"581:9:13"},"scope":1704,"src":"537:54:13","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"6ef25c3a","id":1672,"implemented":false,"kind":"function","modifiers":[],"name":"baseFee","nameLocation":"606:7:13","nodeType":"FunctionDefinition","parameters":{"id":1668,"nodeType":"ParameterList","parameters":[],"src":"613:2:13"},"returnParameters":{"id":1671,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1670,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1672,"src":"639:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1669,"name":"uint256","nodeType":"ElementaryTypeName","src":"639:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"638:9:13"},"scope":1704,"src":"597:51:13","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"85df51fd","id":1679,"implemented":false,"kind":"function","modifiers":[],"name":"blockHash","nameLocation":"663:9:13","nodeType":"FunctionDefinition","parameters":{"id":1675,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1674,"mutability":"mutable","name":"_block","nameLocation":"681:6:13","nodeType":"VariableDeclaration","scope":1679,"src":"673:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1673,"name":"uint256","nodeType":"ElementaryTypeName","src":"673:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"672:16:13"},"returnParameters":{"id":1678,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1677,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1679,"src":"712:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1676,"name":"bytes32","nodeType":"ElementaryTypeName","src":"712:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"711:9:13"},"scope":1704,"src":"654:67:13","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"80b41246","id":1686,"implemented":false,"kind":"function","modifiers":[],"name":"getBlockHashEVM","nameLocation":"736:15:13","nodeType":"FunctionDefinition","parameters":{"id":1682,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1681,"mutability":"mutable","name":"_block","nameLocation":"760:6:13","nodeType":"VariableDeclaration","scope":1686,"src":"752:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1680,"name":"uint256","nodeType":"ElementaryTypeName","src":"752:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"751:16:13"},"returnParameters":{"id":1685,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1684,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1686,"src":"791:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1683,"name":"bytes32","nodeType":"ElementaryTypeName","src":"791:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"790:9:13"},"scope":1704,"src":"727:73:13","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"d4a4ca0d","id":1693,"implemented":false,"kind":"function","modifiers":[],"name":"getBlockNumberAndTimestamp","nameLocation":"815:26:13","nodeType":"FunctionDefinition","parameters":{"id":1687,"nodeType":"ParameterList","parameters":[],"src":"841:2:13"},"returnParameters":{"id":1692,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1689,"mutability":"mutable","name":"blockNumber","nameLocation":"875:11:13","nodeType":"VariableDeclaration","scope":1693,"src":"867:19:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1688,"name":"uint256","nodeType":"ElementaryTypeName","src":"867:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1691,"mutability":"mutable","name":"blockTimestamp","nameLocation":"896:14:13","nodeType":"VariableDeclaration","scope":1693,"src":"888:22:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1690,"name":"uint256","nodeType":"ElementaryTypeName","src":"888:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"866:45:13"},"scope":1704,"src":"806:106:13","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"42cbb15c","id":1698,"implemented":false,"kind":"function","modifiers":[],"name":"getBlockNumber","nameLocation":"1109:14:13","nodeType":"FunctionDefinition","parameters":{"id":1694,"nodeType":"ParameterList","parameters":[],"src":"1123:2:13"},"returnParameters":{"id":1697,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1696,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1698,"src":"1149:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1695,"name":"uint256","nodeType":"ElementaryTypeName","src":"1149:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1148:9:13"},"scope":1704,"src":"1100:58:13","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"796b89b9","id":1703,"implemented":false,"kind":"function","modifiers":[],"name":"getBlockTimestamp","nameLocation":"1173:17:13","nodeType":"FunctionDefinition","parameters":{"id":1699,"nodeType":"ParameterList","parameters":[],"src":"1190:2:13"},"returnParameters":{"id":1702,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1701,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1703,"src":"1216:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1700,"name":"uint256","nodeType":"ElementaryTypeName","src":"1216:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1215:9:13"},"scope":1704,"src":"1164:61:13","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":1705,"src":"214:1013:13","usedErrors":[]}],"src":"33:1195:13"}},"@matterlabs/zksync-contracts/l2/system-contracts/libraries/EfficientCall.sol":{"id":14,"ast":{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/libraries/EfficientCall.sol","exportedSymbols":{"ADDRESS_MASK":[2520],"CALLFLAGS_CALL_ADDRESS":[3261],"CODE_ADDRESS_CALL_ADDRESS":[3096],"CalldataForwardingMode":[3405],"EVENT_INITIALIZE_ADDRESS":[3283],"EVENT_WRITE_ADDRESS":[3294],"EfficientCall":[2170],"GET_EXTRA_ABI_DATA_ADDRESS":[3371],"Global":[2539],"INCREMENT_TX_COUNTER_CALL_ADDRESS":[3239],"ISystemContract":[3068],"KECCAK256_SYSTEM_CONTRACT":[1059],"LOAD_CALLDATA_INTO_ACTIVE_PTR_CALL_ADDRESS":[3305],"LOAD_LATEST_RETURNDATA_INTO_ACTIVE_PTR_CALL_ADDRESS":[3316],"MAX_SYSTEM_CONTRACT_ADDRESS":[925],"META_AUX_HEAP_SIZE_OFFSET":[3386],"META_CALLER_SHARD_ID_OFFSET":[3396],"META_CALL_ADDRESS":[3118],"META_CODE_SHARD_ID_OFFSET":[3401],"META_GAS_PER_PUBDATA_BYTE_OFFSET":[3376],"META_HEAP_SIZE_OFFSET":[3381],"META_SHARD_ID_OFFSET":[3391],"MIMIC_CALL_BY_REF_CALL_ADDRESS":[3151],"MIMIC_CALL_CALL_ADDRESS":[3129],"MSG_VALUE_SIMULATOR_IS_SYSTEM_BIT":[1107],"MSG_VALUE_SYSTEM_CONTRACT":[1040],"MULTIPLICATION_HIGH_ADDRESS":[3360],"PRECOMPILE_CALL_ADDRESS":[3107],"PTR_ADD_INTO_ACTIVE_CALL_ADDRESS":[3327],"PTR_CALLDATA_CALL_ADDRESS":[3250],"PTR_PACK_INTO_ACTIVE_CALL_ADDRESS":[3349],"PTR_RETURNDATA_CALL_ADDRESS":[3272],"PTR_SHRINK_INTO_ACTIVE_CALL_ADDRESS":[3338],"RAW_FAR_CALL_BY_REF_CALL_ADDRESS":[3184],"RAW_FAR_CALL_CALL_ADDRESS":[3173],"SET_CONTEXT_VALUE_CALL_ADDRESS":[3217],"SET_PUBDATA_PRICE_CALL_ADDRESS":[3228],"SHA256_SYSTEM_CONTRACT":[937],"SYSTEM_CALL_BY_REF_CALL_ADDRESS":[3206],"SYSTEM_CALL_CALL_ADDRESS":[3195],"SYSTEM_MIMIC_CALL_BY_REF_CALL_ADDRESS":[3162],"SYSTEM_MIMIC_CALL_CALL_ADDRESS":[3140],"SystemContractHelper":[3048],"SystemContractsCaller":[3683],"TO_L1_CALL_ADDRESS":[3085],"UINT128_MASK":[2516],"UINT32_MASK":[2513],"Utils":[4920],"ZkSyncMeta":[2533]},"id":2171,"license":"MIT OR Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":1706,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"47:23:14"},{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractHelper.sol","file":"./SystemContractHelper.sol","id":1707,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2171,"sourceUnit":3069,"src":"72:36:14","symbolAliases":[],"unitAlias":""},{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/libraries/Utils.sol","file":"./Utils.sol","id":1708,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2171,"sourceUnit":4921,"src":"109:21:14","symbolAliases":[],"unitAlias":""},{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/Constants.sol","file":"../Constants.sol","id":1711,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2171,"sourceUnit":1124,"src":"131:83:14","symbolAliases":[{"foreign":{"id":1709,"name":"SHA256_SYSTEM_CONTRACT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":937,"src":"139:22:14","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":1710,"name":"KECCAK256_SYSTEM_CONTRACT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1059,"src":"163:25:14","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"EfficientCall","contractDependencies":[],"contractKind":"library","documentation":{"id":1712,"nodeType":"StructuredDocumentation","src":"216:1831:14","text":" @author Matter Labs\n @notice This library is used to perform ultra-efficient calls using zkEVM-specific features.\n @dev EVM calls always accept a memory slice as input and return a memory slice as output.\n Therefore, even if the user has a ready-made calldata slice, they still need to copy it to memory\n before calling. This is especially inefficient for large inputs (proxies, multi-calls, etc.).\n In turn, zkEVM operates over a fat pointer, which is a set of (memory page, offset, start, length) in the memory/calldata/returndata.\n This allows forwarding the calldata slice as is, without copying it to memory.\n @dev Fat pointer is not just an integer, it is an extended data type supported on the VM level.\n zkEVM creates the wellformed fat pointers for all the calldata/returndata regions, later\n the contract may manipulate the already created fat pointers to forward a slice of the data, but not\n to create new fat pointers!\n @dev The allowed operation on fat pointers are:\n 1. `ptr.add` - Transforms `ptr.offset` into `ptr.offset + u32(_value)`. If overflow happens then it panics.\n 2. `ptr.sub` - Transforms `ptr.offset` into `ptr.offset - u32(_value)`. If underflow happens then it panics.\n 3. `ptr.pack` - Do the concatenation between the lowest 128 bits of the pointer itself and the highest 128 bits of `_value`. It is typically used to prepare the ABI for external calls.\n 4. `ptr.shrink` - Transforms `ptr.length` into `ptr.length - u32(_shrink)`. If underflow happens then it panics.\n @dev The call opcodes accept the fat pointer and change it to its canonical form before passing it to the child call\n 1. `ptr.start` is transformed into `ptr.offset + ptr.start`\n 2. `ptr.length` is transformed into `ptr.length - ptr.offset`\n 3. `ptr.offset` is transformed into `0`"},"fullyImplemented":true,"id":2170,"linearizedBaseContracts":[2170],"name":"EfficientCall","nameLocation":"2056:13:14","nodeType":"ContractDefinition","nodes":[{"body":{"id":1742,"nodeType":"Block","src":"2297:211:14","statements":[{"assignments":[1721],"declarations":[{"constant":false,"id":1721,"mutability":"mutable","name":"returnData","nameLocation":"2320:10:14","nodeType":"VariableDeclaration","scope":1742,"src":"2307:23:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1720,"name":"bytes","nodeType":"ElementaryTypeName","src":"2307:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":1728,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":1723,"name":"gasleft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-7,"src":"2344:7:14","typeDescriptions":{"typeIdentifier":"t_function_gasleft_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":1724,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2344:9:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1725,"name":"KECCAK256_SYSTEM_CONTRACT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1059,"src":"2355:25:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1726,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1715,"src":"2382:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":1722,"name":"staticCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1834,"src":"2333:10:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_address_$_t_bytes_calldata_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256,address,bytes calldata) view returns (bytes memory)"}},"id":1727,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2333:55:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"2307:81:14"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1730,"name":"returnData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1721,"src":"2406:10:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2417:6:14","memberName":"length","nodeType":"MemberAccess","src":"2406:17:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"3332","id":1732,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2427:2:14","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"2406:23:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6b656363616b3235362072657475726e656420696e76616c69642064617461","id":1734,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2431:33:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_74fb2364e538dd0a4f135a7d171d2caf440b5d946ce57a68a1728804c1e895e0","typeString":"literal_string \"keccak256 returned invalid data\""},"value":"keccak256 returned invalid data"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_74fb2364e538dd0a4f135a7d171d2caf440b5d946ce57a68a1728804c1e895e0","typeString":"literal_string \"keccak256 returned invalid data\""}],"id":1729,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2398:7:14","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1735,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2398:67:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1736,"nodeType":"ExpressionStatement","src":"2398:67:14"},{"expression":{"arguments":[{"id":1739,"name":"returnData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1721,"src":"2490:10:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1738,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2482:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":1737,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2482:7:14","typeDescriptions":{}}},"id":1740,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2482:19:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":1719,"id":1741,"nodeType":"Return","src":"2475:26:14"}]},"documentation":{"id":1713,"nodeType":"StructuredDocumentation","src":"2076:146:14","text":"@notice Call the `keccak256` without copying calldata to memory.\n @param _data The preimage data.\n @return The `keccak256` hash."},"id":1743,"implemented":true,"kind":"function","modifiers":[],"name":"keccak","nameLocation":"2236:6:14","nodeType":"FunctionDefinition","parameters":{"id":1716,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1715,"mutability":"mutable","name":"_data","nameLocation":"2258:5:14","nodeType":"VariableDeclaration","scope":1743,"src":"2243:20:14","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1714,"name":"bytes","nodeType":"ElementaryTypeName","src":"2243:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2242:22:14"},"returnParameters":{"id":1719,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1718,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1743,"src":"2288:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1717,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2288:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2287:9:14"},"scope":2170,"src":"2227:281:14","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":1773,"nodeType":"Block","src":"2737:202:14","statements":[{"assignments":[1752],"declarations":[{"constant":false,"id":1752,"mutability":"mutable","name":"returnData","nameLocation":"2760:10:14","nodeType":"VariableDeclaration","scope":1773,"src":"2747:23:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1751,"name":"bytes","nodeType":"ElementaryTypeName","src":"2747:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":1759,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":1754,"name":"gasleft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-7,"src":"2784:7:14","typeDescriptions":{"typeIdentifier":"t_function_gasleft_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":1755,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2784:9:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1756,"name":"SHA256_SYSTEM_CONTRACT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":937,"src":"2795:22:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1757,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1746,"src":"2819:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":1753,"name":"staticCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1834,"src":"2773:10:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_address_$_t_bytes_calldata_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256,address,bytes calldata) view returns (bytes memory)"}},"id":1758,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2773:52:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"2747:78:14"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1761,"name":"returnData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1752,"src":"2843:10:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1762,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2854:6:14","memberName":"length","nodeType":"MemberAccess","src":"2843:17:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"3332","id":1763,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2864:2:14","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"2843:23:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"7368612072657475726e656420696e76616c69642064617461","id":1765,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2868:27:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_388dc6bb8999c3ed3619369d12a4e716fe6564345a82e94feb45dedada332dd3","typeString":"literal_string \"sha returned invalid data\""},"value":"sha returned invalid data"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_388dc6bb8999c3ed3619369d12a4e716fe6564345a82e94feb45dedada332dd3","typeString":"literal_string \"sha returned invalid data\""}],"id":1760,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2835:7:14","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1766,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2835:61:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1767,"nodeType":"ExpressionStatement","src":"2835:61:14"},{"expression":{"arguments":[{"id":1770,"name":"returnData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1752,"src":"2921:10:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1769,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2913:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":1768,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2913:7:14","typeDescriptions":{}}},"id":1771,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2913:19:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":1750,"id":1772,"nodeType":"Return","src":"2906:26:14"}]},"documentation":{"id":1744,"nodeType":"StructuredDocumentation","src":"2514:151:14","text":"@notice Call the `sha256` precompile without copying calldata to memory.\n @param _data The preimage data.\n @return The `sha256` hash."},"id":1774,"implemented":true,"kind":"function","modifiers":[],"name":"sha","nameLocation":"2679:3:14","nodeType":"FunctionDefinition","parameters":{"id":1747,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1746,"mutability":"mutable","name":"_data","nameLocation":"2698:5:14","nodeType":"VariableDeclaration","scope":1774,"src":"2683:20:14","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1745,"name":"bytes","nodeType":"ElementaryTypeName","src":"2683:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2682:22:14"},"returnParameters":{"id":1750,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1749,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1774,"src":"2728:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1748,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2728:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2727:9:14"},"scope":2170,"src":"2670:269:14","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":1806,"nodeType":"Block","src":"3538:130:14","statements":[{"assignments":[1791],"declarations":[{"constant":false,"id":1791,"mutability":"mutable","name":"success","nameLocation":"3553:7:14","nodeType":"VariableDeclaration","scope":1806,"src":"3548:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1790,"name":"bool","nodeType":"ElementaryTypeName","src":"3548:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":1799,"initialValue":{"arguments":[{"id":1793,"name":"_gas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1777,"src":"3571:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1794,"name":"_address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1779,"src":"3577:8:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1795,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1781,"src":"3587:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1796,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1783,"src":"3595:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":1797,"name":"_isSystem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1785,"src":"3602:9:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1792,"name":"rawCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1955,"src":"3563:7:14","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$_t_bool_$returns$_t_bool_$","typeString":"function (uint256,address,uint256,bytes calldata,bool) returns (bool)"}},"id":1798,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3563:49:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"3548:64:14"},{"expression":{"id":1804,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1800,"name":"returnData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1788,"src":"3622:10:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":1802,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1791,"src":"3653:7:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1801,"name":"_verifyCallResult","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2068,"src":"3635:17:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_bytes_memory_ptr_$","typeString":"function (bool) pure returns (bytes memory)"}},"id":1803,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3635:26:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"3622:39:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1805,"nodeType":"ExpressionStatement","src":"3622:39:14"}]},"documentation":{"id":1775,"nodeType":"StructuredDocumentation","src":"2945:399:14","text":"@notice Perform a `call` without copying calldata to memory.\n @param _gas The gas to use for the call.\n @param _address The address to call.\n @param _value The `msg.value` to send.\n @param _data The calldata to use for the call.\n @param _isSystem Whether the call should contain the `isSystem` flag.\n @return returnData The copied to memory return data."},"id":1807,"implemented":true,"kind":"function","modifiers":[],"name":"call","nameLocation":"3358:4:14","nodeType":"FunctionDefinition","parameters":{"id":1786,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1777,"mutability":"mutable","name":"_gas","nameLocation":"3380:4:14","nodeType":"VariableDeclaration","scope":1807,"src":"3372:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1776,"name":"uint256","nodeType":"ElementaryTypeName","src":"3372:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1779,"mutability":"mutable","name":"_address","nameLocation":"3402:8:14","nodeType":"VariableDeclaration","scope":1807,"src":"3394:16:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1778,"name":"address","nodeType":"ElementaryTypeName","src":"3394:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1781,"mutability":"mutable","name":"_value","nameLocation":"3428:6:14","nodeType":"VariableDeclaration","scope":1807,"src":"3420:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1780,"name":"uint256","nodeType":"ElementaryTypeName","src":"3420:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1783,"mutability":"mutable","name":"_data","nameLocation":"3459:5:14","nodeType":"VariableDeclaration","scope":1807,"src":"3444:20:14","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1782,"name":"bytes","nodeType":"ElementaryTypeName","src":"3444:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1785,"mutability":"mutable","name":"_isSystem","nameLocation":"3479:9:14","nodeType":"VariableDeclaration","scope":1807,"src":"3474:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1784,"name":"bool","nodeType":"ElementaryTypeName","src":"3474:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3362:132:14"},"returnParameters":{"id":1789,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1788,"mutability":"mutable","name":"returnData","nameLocation":"3526:10:14","nodeType":"VariableDeclaration","scope":1807,"src":"3513:23:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1787,"name":"bytes","nodeType":"ElementaryTypeName","src":"3513:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3512:25:14"},"scope":2170,"src":"3349:319:14","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":1833,"nodeType":"Block","src":"4111:117:14","statements":[{"assignments":[1820],"declarations":[{"constant":false,"id":1820,"mutability":"mutable","name":"success","nameLocation":"4126:7:14","nodeType":"VariableDeclaration","scope":1833,"src":"4121:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1819,"name":"bool","nodeType":"ElementaryTypeName","src":"4121:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":1826,"initialValue":{"arguments":[{"id":1822,"name":"_gas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1810,"src":"4150:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1823,"name":"_address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1812,"src":"4156:8:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1824,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1814,"src":"4166:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":1821,"name":"rawStaticCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1980,"src":"4136:13:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_address_$_t_bytes_calldata_ptr_$returns$_t_bool_$","typeString":"function (uint256,address,bytes calldata) view returns (bool)"}},"id":1825,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4136:36:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"4121:51:14"},{"expression":{"id":1831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1827,"name":"returnData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1817,"src":"4182:10:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":1829,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1820,"src":"4213:7:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1828,"name":"_verifyCallResult","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2068,"src":"4195:17:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_bytes_memory_ptr_$","typeString":"function (bool) pure returns (bytes memory)"}},"id":1830,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4195:26:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"4182:39:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1832,"nodeType":"ExpressionStatement","src":"4182:39:14"}]},"documentation":{"id":1808,"nodeType":"StructuredDocumentation","src":"3674:280:14","text":"@notice Perform a `staticCall` without copying calldata to memory.\n @param _gas The gas to use for the call.\n @param _address The address to call.\n @param _data The calldata to use for the call.\n @return returnData The copied to memory return data."},"id":1834,"implemented":true,"kind":"function","modifiers":[],"name":"staticCall","nameLocation":"3968:10:14","nodeType":"FunctionDefinition","parameters":{"id":1815,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1810,"mutability":"mutable","name":"_gas","nameLocation":"3996:4:14","nodeType":"VariableDeclaration","scope":1834,"src":"3988:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1809,"name":"uint256","nodeType":"ElementaryTypeName","src":"3988:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1812,"mutability":"mutable","name":"_address","nameLocation":"4018:8:14","nodeType":"VariableDeclaration","scope":1834,"src":"4010:16:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1811,"name":"address","nodeType":"ElementaryTypeName","src":"4010:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1814,"mutability":"mutable","name":"_data","nameLocation":"4051:5:14","nodeType":"VariableDeclaration","scope":1834,"src":"4036:20:14","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1813,"name":"bytes","nodeType":"ElementaryTypeName","src":"4036:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3978:84:14"},"returnParameters":{"id":1818,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1817,"mutability":"mutable","name":"returnData","nameLocation":"4099:10:14","nodeType":"VariableDeclaration","scope":1834,"src":"4086:23:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1816,"name":"bytes","nodeType":"ElementaryTypeName","src":"4086:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4085:25:14"},"scope":2170,"src":"3959:269:14","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":1860,"nodeType":"Block","src":"4670:119:14","statements":[{"assignments":[1847],"declarations":[{"constant":false,"id":1847,"mutability":"mutable","name":"success","nameLocation":"4685:7:14","nodeType":"VariableDeclaration","scope":1860,"src":"4680:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1846,"name":"bool","nodeType":"ElementaryTypeName","src":"4680:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":1853,"initialValue":{"arguments":[{"id":1849,"name":"_gas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1837,"src":"4711:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1850,"name":"_address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1839,"src":"4717:8:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1851,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1841,"src":"4727:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":1848,"name":"rawDelegateCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2005,"src":"4695:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_bytes_calldata_ptr_$returns$_t_bool_$","typeString":"function (uint256,address,bytes calldata) returns (bool)"}},"id":1852,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4695:38:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"4680:53:14"},{"expression":{"id":1858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1854,"name":"returnData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1844,"src":"4743:10:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":1856,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1847,"src":"4774:7:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1855,"name":"_verifyCallResult","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2068,"src":"4756:17:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_bytes_memory_ptr_$","typeString":"function (bool) pure returns (bytes memory)"}},"id":1857,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4756:26:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"4743:39:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1859,"nodeType":"ExpressionStatement","src":"4743:39:14"}]},"documentation":{"id":1835,"nodeType":"StructuredDocumentation","src":"4234:282:14","text":"@notice Perform a `delegateCall` without copying calldata to memory.\n @param _gas The gas to use for the call.\n @param _address The address to call.\n @param _data The calldata to use for the call.\n @return returnData The copied to memory return data."},"id":1861,"implemented":true,"kind":"function","modifiers":[],"name":"delegateCall","nameLocation":"4530:12:14","nodeType":"FunctionDefinition","parameters":{"id":1842,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1837,"mutability":"mutable","name":"_gas","nameLocation":"4560:4:14","nodeType":"VariableDeclaration","scope":1861,"src":"4552:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1836,"name":"uint256","nodeType":"ElementaryTypeName","src":"4552:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1839,"mutability":"mutable","name":"_address","nameLocation":"4582:8:14","nodeType":"VariableDeclaration","scope":1861,"src":"4574:16:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1838,"name":"address","nodeType":"ElementaryTypeName","src":"4574:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1841,"mutability":"mutable","name":"_data","nameLocation":"4615:5:14","nodeType":"VariableDeclaration","scope":1861,"src":"4600:20:14","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1840,"name":"bytes","nodeType":"ElementaryTypeName","src":"4600:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4542:84:14"},"returnParameters":{"id":1845,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1844,"mutability":"mutable","name":"returnData","nameLocation":"4658:10:14","nodeType":"VariableDeclaration","scope":1861,"src":"4645:23:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1843,"name":"bytes","nodeType":"ElementaryTypeName","src":"4645:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4644:25:14"},"scope":2170,"src":"4521:268:14","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":1896,"nodeType":"Block","src":"5568:156:14","statements":[{"assignments":[1880],"declarations":[{"constant":false,"id":1880,"mutability":"mutable","name":"success","nameLocation":"5583:7:14","nodeType":"VariableDeclaration","scope":1896,"src":"5578:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1879,"name":"bool","nodeType":"ElementaryTypeName","src":"5578:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":1889,"initialValue":{"arguments":[{"id":1882,"name":"_gas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1864,"src":"5606:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1883,"name":"_address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1866,"src":"5612:8:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1884,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1868,"src":"5622:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":1885,"name":"_whoToMimic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1870,"src":"5629:11:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1886,"name":"_isConstructor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1872,"src":"5642:14:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":1887,"name":"_isSystem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1874,"src":"5658:9:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1881,"name":"rawMimicCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2040,"src":"5593:12:14","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_bytes_calldata_ptr_$_t_address_$_t_bool_$_t_bool_$returns$_t_bool_$","typeString":"function (uint256,address,bytes calldata,address,bool,bool) returns (bool)"}},"id":1888,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5593:75:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"5578:90:14"},{"expression":{"id":1894,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1890,"name":"returnData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1877,"src":"5678:10:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":1892,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1880,"src":"5709:7:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1891,"name":"_verifyCallResult","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2068,"src":"5691:17:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_bytes_memory_ptr_$","typeString":"function (bool) pure returns (bytes memory)"}},"id":1893,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5691:26:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"5678:39:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1895,"nodeType":"ExpressionStatement","src":"5678:39:14"}]},"documentation":{"id":1862,"nodeType":"StructuredDocumentation","src":"4795:540:14","text":"@notice Perform a `mimicCall` (a call with custom msg.sender) without copying calldata to memory.\n @param _gas The gas to use for the call.\n @param _address The address to call.\n @param _data The calldata to use for the call.\n @param _whoToMimic The `msg.sender` for the next call.\n @param _isConstructor Whether the call should contain the `isConstructor` flag.\n @param _isSystem Whether the call should contain the `isSystem` flag.\n @return returnData The copied to memory return data."},"id":1897,"implemented":true,"kind":"function","modifiers":[],"name":"mimicCall","nameLocation":"5349:9:14","nodeType":"FunctionDefinition","parameters":{"id":1875,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1864,"mutability":"mutable","name":"_gas","nameLocation":"5376:4:14","nodeType":"VariableDeclaration","scope":1897,"src":"5368:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1863,"name":"uint256","nodeType":"ElementaryTypeName","src":"5368:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1866,"mutability":"mutable","name":"_address","nameLocation":"5398:8:14","nodeType":"VariableDeclaration","scope":1897,"src":"5390:16:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1865,"name":"address","nodeType":"ElementaryTypeName","src":"5390:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1868,"mutability":"mutable","name":"_data","nameLocation":"5431:5:14","nodeType":"VariableDeclaration","scope":1897,"src":"5416:20:14","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1867,"name":"bytes","nodeType":"ElementaryTypeName","src":"5416:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1870,"mutability":"mutable","name":"_whoToMimic","nameLocation":"5454:11:14","nodeType":"VariableDeclaration","scope":1897,"src":"5446:19:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1869,"name":"address","nodeType":"ElementaryTypeName","src":"5446:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1872,"mutability":"mutable","name":"_isConstructor","nameLocation":"5480:14:14","nodeType":"VariableDeclaration","scope":1897,"src":"5475:19:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1871,"name":"bool","nodeType":"ElementaryTypeName","src":"5475:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":1874,"mutability":"mutable","name":"_isSystem","nameLocation":"5509:9:14","nodeType":"VariableDeclaration","scope":1897,"src":"5504:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1873,"name":"bool","nodeType":"ElementaryTypeName","src":"5504:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5358:166:14"},"returnParameters":{"id":1878,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1877,"mutability":"mutable","name":"returnData","nameLocation":"5556:10:14","nodeType":"VariableDeclaration","scope":1897,"src":"5543:23:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1876,"name":"bytes","nodeType":"ElementaryTypeName","src":"5543:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5542:25:14"},"scope":2170,"src":"5340:384:14","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":1954,"nodeType":"Block","src":"6311:960:14","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1915,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1913,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1904,"src":"6325:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":1914,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6335:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6325:11:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1952,"nodeType":"Block","src":"6603:662:14","statements":[{"expression":{"arguments":[{"id":1930,"name":"_gas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1900,"src":"6646:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1931,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1906,"src":"6652:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"hexValue":"66616c7365","id":1932,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6659:5:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"74727565","id":1933,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6666:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1929,"name":"_loadFarCallABIIntoActivePtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2169,"src":"6617:28:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_bytes_calldata_ptr_$_t_bool_$_t_bool_$returns$__$","typeString":"function (uint256,bytes calldata,bool,bool) view"}},"id":1934,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6617:54:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1935,"nodeType":"ExpressionStatement","src":"6617:54:14"},{"assignments":[1937],"declarations":[{"constant":false,"id":1937,"mutability":"mutable","name":"msgValueSimulator","nameLocation":"6789:17:14","nodeType":"VariableDeclaration","scope":1952,"src":"6781:25:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1936,"name":"address","nodeType":"ElementaryTypeName","src":"6781:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":1939,"initialValue":{"id":1938,"name":"MSG_VALUE_SYSTEM_CONTRACT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1040,"src":"6809:25:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6781:53:14"},{"assignments":[1941],"declarations":[{"constant":false,"id":1941,"mutability":"mutable","name":"callAddr","nameLocation":"6856:8:14","nodeType":"VariableDeclaration","scope":1952,"src":"6848:16:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1940,"name":"address","nodeType":"ElementaryTypeName","src":"6848:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":1943,"initialValue":{"id":1942,"name":"SYSTEM_CALL_BY_REF_CALL_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3206,"src":"6867:31:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6848:50:14"},{"assignments":[1945],"declarations":[{"constant":false,"id":1945,"mutability":"mutable","name":"forwardMask","nameLocation":"7050:11:14","nodeType":"VariableDeclaration","scope":1952,"src":"7042:19:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1944,"name":"uint256","nodeType":"ElementaryTypeName","src":"7042:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1950,"initialValue":{"condition":{"id":1946,"name":"_isSystem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1908,"src":"7064:9:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":1948,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7112:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":1949,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"7064:49:14","trueExpression":{"id":1947,"name":"MSG_VALUE_SIMULATOR_IS_SYSTEM_BIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1107,"src":"7076:33:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7042:71:14"},{"AST":{"nodeType":"YulBlock","src":"7137:118:14","statements":[{"nodeType":"YulAssignment","src":"7155:86:14","value":{"arguments":[{"name":"msgValueSimulator","nodeType":"YulIdentifier","src":"7171:17:14"},{"name":"callAddr","nodeType":"YulIdentifier","src":"7190:8:14"},{"name":"_value","nodeType":"YulIdentifier","src":"7200:6:14"},{"name":"_address","nodeType":"YulIdentifier","src":"7208:8:14"},{"kind":"number","nodeType":"YulLiteral","src":"7218:6:14","type":"","value":"0xFFFF"},{"name":"forwardMask","nodeType":"YulIdentifier","src":"7226:11:14"},{"kind":"number","nodeType":"YulLiteral","src":"7239:1:14","type":"","value":"0"}],"functionName":{"name":"call","nodeType":"YulIdentifier","src":"7166:4:14"},"nodeType":"YulFunctionCall","src":"7166:75:14"},"variableNames":[{"name":"success","nodeType":"YulIdentifier","src":"7155:7:14"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":1902,"isOffset":false,"isSlot":false,"src":"7208:8:14","valueSize":1},{"declaration":1904,"isOffset":false,"isSlot":false,"src":"7200:6:14","valueSize":1},{"declaration":1941,"isOffset":false,"isSlot":false,"src":"7190:8:14","valueSize":1},{"declaration":1945,"isOffset":false,"isSlot":false,"src":"7226:11:14","valueSize":1},{"declaration":1937,"isOffset":false,"isSlot":false,"src":"7171:17:14","valueSize":1},{"declaration":1911,"isOffset":false,"isSlot":false,"src":"7155:7:14","valueSize":1}],"id":1951,"nodeType":"InlineAssembly","src":"7128:127:14"}]},"id":1953,"nodeType":"IfStatement","src":"6321:944:14","trueBody":{"id":1928,"nodeType":"Block","src":"6338:259:14","statements":[{"expression":{"arguments":[{"id":1917,"name":"_gas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1900,"src":"6381:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1918,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1906,"src":"6387:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"hexValue":"66616c7365","id":1919,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6394:5:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"id":1920,"name":"_isSystem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1908,"src":"6401:9:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1916,"name":"_loadFarCallABIIntoActivePtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2169,"src":"6352:28:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_bytes_calldata_ptr_$_t_bool_$_t_bool_$returns$__$","typeString":"function (uint256,bytes calldata,bool,bool) view"}},"id":1921,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6352:59:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1922,"nodeType":"ExpressionStatement","src":"6352:59:14"},{"assignments":[1924],"declarations":[{"constant":false,"id":1924,"mutability":"mutable","name":"callAddr","nameLocation":"6434:8:14","nodeType":"VariableDeclaration","scope":1928,"src":"6426:16:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1923,"name":"address","nodeType":"ElementaryTypeName","src":"6426:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":1926,"initialValue":{"id":1925,"name":"RAW_FAR_CALL_BY_REF_CALL_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3184,"src":"6445:32:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6426:51:14"},{"AST":{"nodeType":"YulBlock","src":"6500:87:14","statements":[{"nodeType":"YulAssignment","src":"6518:55:14","value":{"arguments":[{"name":"_address","nodeType":"YulIdentifier","src":"6534:8:14"},{"name":"callAddr","nodeType":"YulIdentifier","src":"6544:8:14"},{"kind":"number","nodeType":"YulLiteral","src":"6554:1:14","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6557:1:14","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6560:6:14","type":"","value":"0xFFFF"},{"kind":"number","nodeType":"YulLiteral","src":"6568:1:14","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6571:1:14","type":"","value":"0"}],"functionName":{"name":"call","nodeType":"YulIdentifier","src":"6529:4:14"},"nodeType":"YulFunctionCall","src":"6529:44:14"},"variableNames":[{"name":"success","nodeType":"YulIdentifier","src":"6518:7:14"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":1902,"isOffset":false,"isSlot":false,"src":"6534:8:14","valueSize":1},{"declaration":1924,"isOffset":false,"isSlot":false,"src":"6544:8:14","valueSize":1},{"declaration":1911,"isOffset":false,"isSlot":false,"src":"6518:7:14","valueSize":1}],"id":1927,"nodeType":"InlineAssembly","src":"6491:96:14"}]}}]},"documentation":{"id":1898,"nodeType":"StructuredDocumentation","src":"5730:395:14","text":"@notice Perform a `call` without copying calldata to memory.\n @param _gas The gas to use for the call.\n @param _address The address to call.\n @param _value The `msg.value` to send.\n @param _data The calldata to use for the call.\n @param _isSystem Whether the call should contain the `isSystem` flag.\n @return success whether the call was successful."},"id":1955,"implemented":true,"kind":"function","modifiers":[],"name":"rawCall","nameLocation":"6139:7:14","nodeType":"FunctionDefinition","parameters":{"id":1909,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1900,"mutability":"mutable","name":"_gas","nameLocation":"6164:4:14","nodeType":"VariableDeclaration","scope":1955,"src":"6156:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1899,"name":"uint256","nodeType":"ElementaryTypeName","src":"6156:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1902,"mutability":"mutable","name":"_address","nameLocation":"6186:8:14","nodeType":"VariableDeclaration","scope":1955,"src":"6178:16:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1901,"name":"address","nodeType":"ElementaryTypeName","src":"6178:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1904,"mutability":"mutable","name":"_value","nameLocation":"6212:6:14","nodeType":"VariableDeclaration","scope":1955,"src":"6204:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1903,"name":"uint256","nodeType":"ElementaryTypeName","src":"6204:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1906,"mutability":"mutable","name":"_data","nameLocation":"6243:5:14","nodeType":"VariableDeclaration","scope":1955,"src":"6228:20:14","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1905,"name":"bytes","nodeType":"ElementaryTypeName","src":"6228:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1908,"mutability":"mutable","name":"_isSystem","nameLocation":"6263:9:14","nodeType":"VariableDeclaration","scope":1955,"src":"6258:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1907,"name":"bool","nodeType":"ElementaryTypeName","src":"6258:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6146:132:14"},"returnParameters":{"id":1912,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1911,"mutability":"mutable","name":"success","nameLocation":"6302:7:14","nodeType":"VariableDeclaration","scope":1955,"src":"6297:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1910,"name":"bool","nodeType":"ElementaryTypeName","src":"6297:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6296:14:14"},"scope":2170,"src":"6130:1141:14","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":1979,"nodeType":"Block","src":"7672:234:14","statements":[{"expression":{"arguments":[{"id":1968,"name":"_gas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1958,"src":"7711:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1969,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1962,"src":"7717:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"hexValue":"66616c7365","id":1970,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7724:5:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"66616c7365","id":1971,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7731:5:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1967,"name":"_loadFarCallABIIntoActivePtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2169,"src":"7682:28:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_bytes_calldata_ptr_$_t_bool_$_t_bool_$returns$__$","typeString":"function (uint256,bytes calldata,bool,bool) view"}},"id":1972,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7682:55:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1973,"nodeType":"ExpressionStatement","src":"7682:55:14"},{"assignments":[1975],"declarations":[{"constant":false,"id":1975,"mutability":"mutable","name":"callAddr","nameLocation":"7756:8:14","nodeType":"VariableDeclaration","scope":1979,"src":"7748:16:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1974,"name":"address","nodeType":"ElementaryTypeName","src":"7748:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":1977,"initialValue":{"id":1976,"name":"RAW_FAR_CALL_BY_REF_CALL_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3184,"src":"7767:32:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"7748:51:14"},{"AST":{"nodeType":"YulBlock","src":"7818:82:14","statements":[{"nodeType":"YulAssignment","src":"7832:58:14","value":{"arguments":[{"name":"_address","nodeType":"YulIdentifier","src":"7854:8:14"},{"name":"callAddr","nodeType":"YulIdentifier","src":"7864:8:14"},{"kind":"number","nodeType":"YulLiteral","src":"7874:1:14","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7877:6:14","type":"","value":"0xFFFF"},{"kind":"number","nodeType":"YulLiteral","src":"7885:1:14","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7888:1:14","type":"","value":"0"}],"functionName":{"name":"staticcall","nodeType":"YulIdentifier","src":"7843:10:14"},"nodeType":"YulFunctionCall","src":"7843:47:14"},"variableNames":[{"name":"success","nodeType":"YulIdentifier","src":"7832:7:14"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":1960,"isOffset":false,"isSlot":false,"src":"7854:8:14","valueSize":1},{"declaration":1975,"isOffset":false,"isSlot":false,"src":"7864:8:14","valueSize":1},{"declaration":1965,"isOffset":false,"isSlot":false,"src":"7832:7:14","valueSize":1}],"id":1978,"nodeType":"InlineAssembly","src":"7809:91:14"}]},"documentation":{"id":1956,"nodeType":"StructuredDocumentation","src":"7277:276:14","text":"@notice Perform a `staticCall` without copying calldata to memory.\n @param _gas The gas to use for the call.\n @param _address The address to call.\n @param _data The calldata to use for the call.\n @return success whether the call was successful."},"id":1980,"implemented":true,"kind":"function","modifiers":[],"name":"rawStaticCall","nameLocation":"7567:13:14","nodeType":"FunctionDefinition","parameters":{"id":1963,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1958,"mutability":"mutable","name":"_gas","nameLocation":"7589:4:14","nodeType":"VariableDeclaration","scope":1980,"src":"7581:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1957,"name":"uint256","nodeType":"ElementaryTypeName","src":"7581:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1960,"mutability":"mutable","name":"_address","nameLocation":"7603:8:14","nodeType":"VariableDeclaration","scope":1980,"src":"7595:16:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1959,"name":"address","nodeType":"ElementaryTypeName","src":"7595:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1962,"mutability":"mutable","name":"_data","nameLocation":"7628:5:14","nodeType":"VariableDeclaration","scope":1980,"src":"7613:20:14","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1961,"name":"bytes","nodeType":"ElementaryTypeName","src":"7613:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7580:54:14"},"returnParameters":{"id":1966,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1965,"mutability":"mutable","name":"success","nameLocation":"7663:7:14","nodeType":"VariableDeclaration","scope":1980,"src":"7658:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1964,"name":"bool","nodeType":"ElementaryTypeName","src":"7658:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7657:14:14"},"scope":2170,"src":"7558:348:14","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":2004,"nodeType":"Block","src":"8306:236:14","statements":[{"expression":{"arguments":[{"id":1993,"name":"_gas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1983,"src":"8345:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1994,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1987,"src":"8351:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"hexValue":"66616c7365","id":1995,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8358:5:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"66616c7365","id":1996,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8365:5:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1992,"name":"_loadFarCallABIIntoActivePtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2169,"src":"8316:28:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_bytes_calldata_ptr_$_t_bool_$_t_bool_$returns$__$","typeString":"function (uint256,bytes calldata,bool,bool) view"}},"id":1997,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8316:55:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1998,"nodeType":"ExpressionStatement","src":"8316:55:14"},{"assignments":[2000],"declarations":[{"constant":false,"id":2000,"mutability":"mutable","name":"callAddr","nameLocation":"8390:8:14","nodeType":"VariableDeclaration","scope":2004,"src":"8382:16:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1999,"name":"address","nodeType":"ElementaryTypeName","src":"8382:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":2002,"initialValue":{"id":2001,"name":"RAW_FAR_CALL_BY_REF_CALL_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3184,"src":"8401:32:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"8382:51:14"},{"AST":{"nodeType":"YulBlock","src":"8452:84:14","statements":[{"nodeType":"YulAssignment","src":"8466:60:14","value":{"arguments":[{"name":"_address","nodeType":"YulIdentifier","src":"8490:8:14"},{"name":"callAddr","nodeType":"YulIdentifier","src":"8500:8:14"},{"kind":"number","nodeType":"YulLiteral","src":"8510:1:14","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8513:6:14","type":"","value":"0xFFFF"},{"kind":"number","nodeType":"YulLiteral","src":"8521:1:14","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8524:1:14","type":"","value":"0"}],"functionName":{"name":"delegatecall","nodeType":"YulIdentifier","src":"8477:12:14"},"nodeType":"YulFunctionCall","src":"8477:49:14"},"variableNames":[{"name":"success","nodeType":"YulIdentifier","src":"8466:7:14"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":1985,"isOffset":false,"isSlot":false,"src":"8490:8:14","valueSize":1},{"declaration":2000,"isOffset":false,"isSlot":false,"src":"8500:8:14","valueSize":1},{"declaration":1990,"isOffset":false,"isSlot":false,"src":"8466:7:14","valueSize":1}],"id":2003,"nodeType":"InlineAssembly","src":"8443:93:14"}]},"documentation":{"id":1981,"nodeType":"StructuredDocumentation","src":"7912:278:14","text":"@notice Perform a `delegatecall` without copying calldata to memory.\n @param _gas The gas to use for the call.\n @param _address The address to call.\n @param _data The calldata to use for the call.\n @return success whether the call was successful."},"id":2005,"implemented":true,"kind":"function","modifiers":[],"name":"rawDelegateCall","nameLocation":"8204:15:14","nodeType":"FunctionDefinition","parameters":{"id":1988,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1983,"mutability":"mutable","name":"_gas","nameLocation":"8228:4:14","nodeType":"VariableDeclaration","scope":2005,"src":"8220:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1982,"name":"uint256","nodeType":"ElementaryTypeName","src":"8220:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1985,"mutability":"mutable","name":"_address","nameLocation":"8242:8:14","nodeType":"VariableDeclaration","scope":2005,"src":"8234:16:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1984,"name":"address","nodeType":"ElementaryTypeName","src":"8234:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1987,"mutability":"mutable","name":"_data","nameLocation":"8267:5:14","nodeType":"VariableDeclaration","scope":2005,"src":"8252:20:14","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1986,"name":"bytes","nodeType":"ElementaryTypeName","src":"8252:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8219:54:14"},"returnParameters":{"id":1991,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1990,"mutability":"mutable","name":"success","nameLocation":"8297:7:14","nodeType":"VariableDeclaration","scope":2005,"src":"8292:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1989,"name":"bool","nodeType":"ElementaryTypeName","src":"8292:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8291:14:14"},"scope":2170,"src":"8195:347:14","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2039,"nodeType":"Block","src":"9398:461:14","statements":[{"expression":{"arguments":[{"id":2024,"name":"_gas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2008,"src":"9437:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2025,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2012,"src":"9443:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":2026,"name":"_isConstructor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2016,"src":"9450:14:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":2027,"name":"_isSystem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2018,"src":"9466:9:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":2023,"name":"_loadFarCallABIIntoActivePtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2169,"src":"9408:28:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_bytes_calldata_ptr_$_t_bool_$_t_bool_$returns$__$","typeString":"function (uint256,bytes calldata,bool,bool) view"}},"id":2028,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9408:68:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2029,"nodeType":"ExpressionStatement","src":"9408:68:14"},{"assignments":[2031],"declarations":[{"constant":false,"id":2031,"mutability":"mutable","name":"callAddr","nameLocation":"9495:8:14","nodeType":"VariableDeclaration","scope":2039,"src":"9487:16:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2030,"name":"address","nodeType":"ElementaryTypeName","src":"9487:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":2033,"initialValue":{"id":2032,"name":"MIMIC_CALL_BY_REF_CALL_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3151,"src":"9506:30:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"9487:49:14"},{"assignments":[2035],"declarations":[{"constant":false,"id":2035,"mutability":"mutable","name":"cleanupMask","nameLocation":"9554:11:14","nodeType":"VariableDeclaration","scope":2039,"src":"9546:19:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2034,"name":"uint256","nodeType":"ElementaryTypeName","src":"9546:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2037,"initialValue":{"id":2036,"name":"ADDRESS_MASK","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2520,"src":"9568:12:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9546:34:14"},{"AST":{"nodeType":"YulBlock","src":"9599:254:14","statements":[{"nodeType":"YulAssignment","src":"9725:44:14","value":{"arguments":[{"name":"_whoToMimic","nodeType":"YulIdentifier","src":"9744:11:14"},{"name":"cleanupMask","nodeType":"YulIdentifier","src":"9757:11:14"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9740:3:14"},"nodeType":"YulFunctionCall","src":"9740:29:14"},"variableNames":[{"name":"_whoToMimic","nodeType":"YulIdentifier","src":"9725:11:14"}]},{"nodeType":"YulAssignment","src":"9783:60:14","value":{"arguments":[{"name":"_address","nodeType":"YulIdentifier","src":"9799:8:14"},{"name":"callAddr","nodeType":"YulIdentifier","src":"9809:8:14"},{"kind":"number","nodeType":"YulLiteral","src":"9819:1:14","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9822:1:14","type":"","value":"0"},{"name":"_whoToMimic","nodeType":"YulIdentifier","src":"9825:11:14"},{"kind":"number","nodeType":"YulLiteral","src":"9838:1:14","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9841:1:14","type":"","value":"0"}],"functionName":{"name":"call","nodeType":"YulIdentifier","src":"9794:4:14"},"nodeType":"YulFunctionCall","src":"9794:49:14"},"variableNames":[{"name":"success","nodeType":"YulIdentifier","src":"9783:7:14"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":2010,"isOffset":false,"isSlot":false,"src":"9799:8:14","valueSize":1},{"declaration":2014,"isOffset":false,"isSlot":false,"src":"9725:11:14","valueSize":1},{"declaration":2014,"isOffset":false,"isSlot":false,"src":"9744:11:14","valueSize":1},{"declaration":2014,"isOffset":false,"isSlot":false,"src":"9825:11:14","valueSize":1},{"declaration":2031,"isOffset":false,"isSlot":false,"src":"9809:8:14","valueSize":1},{"declaration":2035,"isOffset":false,"isSlot":false,"src":"9757:11:14","valueSize":1},{"declaration":2021,"isOffset":false,"isSlot":false,"src":"9783:7:14","valueSize":1}],"id":2038,"nodeType":"InlineAssembly","src":"9590:263:14"}]},"documentation":{"id":2006,"nodeType":"StructuredDocumentation","src":"8548:625:14","text":"@notice Perform a `mimicCall` (call with custom msg.sender) without copying calldata to memory.\n @param _gas The gas to use for the call.\n @param _address The address to call.\n @param _data The calldata to use for the call.\n @param _whoToMimic The `msg.sender` for the next call.\n @param _isConstructor Whether the call should contain the `isConstructor` flag.\n @param _isSystem Whether the call should contain the `isSystem` flag.\n @return success whether the call was successful.\n @dev If called not in kernel mode, it will result in a revert (enforced by the VM)"},"id":2040,"implemented":true,"kind":"function","modifiers":[],"name":"rawMimicCall","nameLocation":"9187:12:14","nodeType":"FunctionDefinition","parameters":{"id":2019,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2008,"mutability":"mutable","name":"_gas","nameLocation":"9217:4:14","nodeType":"VariableDeclaration","scope":2040,"src":"9209:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2007,"name":"uint256","nodeType":"ElementaryTypeName","src":"9209:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2010,"mutability":"mutable","name":"_address","nameLocation":"9239:8:14","nodeType":"VariableDeclaration","scope":2040,"src":"9231:16:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2009,"name":"address","nodeType":"ElementaryTypeName","src":"9231:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2012,"mutability":"mutable","name":"_data","nameLocation":"9272:5:14","nodeType":"VariableDeclaration","scope":2040,"src":"9257:20:14","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":2011,"name":"bytes","nodeType":"ElementaryTypeName","src":"9257:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2014,"mutability":"mutable","name":"_whoToMimic","nameLocation":"9295:11:14","nodeType":"VariableDeclaration","scope":2040,"src":"9287:19:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2013,"name":"address","nodeType":"ElementaryTypeName","src":"9287:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2016,"mutability":"mutable","name":"_isConstructor","nameLocation":"9321:14:14","nodeType":"VariableDeclaration","scope":2040,"src":"9316:19:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2015,"name":"bool","nodeType":"ElementaryTypeName","src":"9316:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":2018,"mutability":"mutable","name":"_isSystem","nameLocation":"9350:9:14","nodeType":"VariableDeclaration","scope":2040,"src":"9345:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2017,"name":"bool","nodeType":"ElementaryTypeName","src":"9345:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"9199:166:14"},"returnParameters":{"id":2022,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2021,"mutability":"mutable","name":"success","nameLocation":"9389:7:14","nodeType":"VariableDeclaration","scope":2040,"src":"9384:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2020,"name":"bool","nodeType":"ElementaryTypeName","src":"9384:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"9383:14:14"},"scope":2170,"src":"9178:681:14","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2067,"nodeType":"Block","src":"10186:336:14","statements":[{"condition":{"id":2048,"name":"_success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2043,"src":"10200:8:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":2065,"nodeType":"Block","src":"10474:42:14","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":2062,"name":"propagateRevert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2074,"src":"10488:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$__$","typeString":"function () pure"}},"id":2063,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10488:17:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2064,"nodeType":"ExpressionStatement","src":"10488:17:14"}]},"id":2066,"nodeType":"IfStatement","src":"10196:320:14","trueBody":{"id":2061,"nodeType":"Block","src":"10210:258:14","statements":[{"assignments":[2050],"declarations":[{"constant":false,"id":2050,"mutability":"mutable","name":"size","nameLocation":"10232:4:14","nodeType":"VariableDeclaration","scope":2061,"src":"10224:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2049,"name":"uint256","nodeType":"ElementaryTypeName","src":"10224:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2051,"nodeType":"VariableDeclarationStatement","src":"10224:12:14"},{"AST":{"nodeType":"YulBlock","src":"10259:56:14","statements":[{"nodeType":"YulAssignment","src":"10277:24:14","value":{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"10285:14:14"},"nodeType":"YulFunctionCall","src":"10285:16:14"},"variableNames":[{"name":"size","nodeType":"YulIdentifier","src":"10277:4:14"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":2050,"isOffset":false,"isSlot":false,"src":"10277:4:14","valueSize":1}],"id":2052,"nodeType":"InlineAssembly","src":"10250:65:14"},{"expression":{"id":2058,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2053,"name":"returnData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2046,"src":"10329:10:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":2056,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2050,"src":"10352:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2055,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"10342:9:14","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":2054,"name":"bytes","nodeType":"ElementaryTypeName","src":"10346:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":2057,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10342:15:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"10329:28:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2059,"nodeType":"ExpressionStatement","src":"10329:28:14"},{"AST":{"nodeType":"YulBlock","src":"10380:78:14","statements":[{"expression":{"arguments":[{"arguments":[{"name":"returnData","nodeType":"YulIdentifier","src":"10417:10:14"},{"kind":"number","nodeType":"YulLiteral","src":"10429:4:14","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10413:3:14"},"nodeType":"YulFunctionCall","src":"10413:21:14"},{"kind":"number","nodeType":"YulLiteral","src":"10436:1:14","type":"","value":"0"},{"name":"size","nodeType":"YulIdentifier","src":"10439:4:14"}],"functionName":{"name":"returndatacopy","nodeType":"YulIdentifier","src":"10398:14:14"},"nodeType":"YulFunctionCall","src":"10398:46:14"},"nodeType":"YulExpressionStatement","src":"10398:46:14"}]},"evmVersion":"paris","externalReferences":[{"declaration":2046,"isOffset":false,"isSlot":false,"src":"10417:10:14","valueSize":1},{"declaration":2050,"isOffset":false,"isSlot":false,"src":"10439:4:14","valueSize":1}],"id":2060,"nodeType":"InlineAssembly","src":"10371:87:14"}]}}]},"documentation":{"id":2041,"nodeType":"StructuredDocumentation","src":"9865:227:14","text":"@dev Verify that a low-level call was successful, and revert if it wasn't, by bubbling the revert reason.\n @param _success Whether the call was successful.\n @return returnData The copied to memory return data."},"id":2068,"implemented":true,"kind":"function","modifiers":[],"name":"_verifyCallResult","nameLocation":"10106:17:14","nodeType":"FunctionDefinition","parameters":{"id":2044,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2043,"mutability":"mutable","name":"_success","nameLocation":"10129:8:14","nodeType":"VariableDeclaration","scope":2068,"src":"10124:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2042,"name":"bool","nodeType":"ElementaryTypeName","src":"10124:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"10123:15:14"},"returnParameters":{"id":2047,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2046,"mutability":"mutable","name":"returnData","nameLocation":"10174:10:14","nodeType":"VariableDeclaration","scope":2068,"src":"10161:23:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2045,"name":"bytes","nodeType":"ElementaryTypeName","src":"10161:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"10160:25:14"},"scope":2170,"src":"10097:425:14","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":2073,"nodeType":"Block","src":"10647:144:14","statements":[{"AST":{"nodeType":"YulBlock","src":"10666:119:14","statements":[{"nodeType":"YulVariableDeclaration","src":"10680:28:14","value":{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"10692:14:14"},"nodeType":"YulFunctionCall","src":"10692:16:14"},"variables":[{"name":"size","nodeType":"YulTypedName","src":"10684:4:14","type":""}]},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10736:1:14","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10739:1:14","type":"","value":"0"},{"name":"size","nodeType":"YulIdentifier","src":"10742:4:14"}],"functionName":{"name":"returndatacopy","nodeType":"YulIdentifier","src":"10721:14:14"},"nodeType":"YulFunctionCall","src":"10721:26:14"},"nodeType":"YulExpressionStatement","src":"10721:26:14"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10767:1:14","type":"","value":"0"},{"name":"size","nodeType":"YulIdentifier","src":"10770:4:14"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10760:6:14"},"nodeType":"YulFunctionCall","src":"10760:15:14"},"nodeType":"YulExpressionStatement","src":"10760:15:14"}]},"evmVersion":"paris","externalReferences":[],"id":2072,"nodeType":"InlineAssembly","src":"10657:128:14"}]},"documentation":{"id":2069,"nodeType":"StructuredDocumentation","src":"10528:73:14","text":"@dev Propagate the revert reason from the current call to the caller."},"id":2074,"implemented":true,"kind":"function","modifiers":[],"name":"propagateRevert","nameLocation":"10615:15:14","nodeType":"FunctionDefinition","parameters":{"id":2070,"nodeType":"ParameterList","parameters":[],"src":"10630:2:14"},"returnParameters":{"id":2071,"nodeType":"ParameterList","parameters":[],"src":"10647:0:14"},"scope":2170,"src":"10606:185:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2168,"nodeType":"Block","src":"11305:1428:14","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":2086,"name":"SystemContractHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3048,"src":"11315:20:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SystemContractHelper_$3048_$","typeString":"type(library SystemContractHelper)"}},"id":2088,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11336:25:14","memberName":"loadCalldataIntoActivePtr","nodeType":"MemberAccess","referencedDeclaration":2578,"src":"11315:46:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":2089,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11315:48:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2090,"nodeType":"ExpressionStatement","src":"11315:48:14"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2091,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2079,"src":"11641:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":2092,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11647:6:14","memberName":"length","nodeType":"MemberAccess","src":"11641:12:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2093,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11657:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11641:17:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":2141,"nodeType":"Block","src":"11832:503:14","statements":[{"assignments":[2108],"declarations":[{"constant":false,"id":2108,"mutability":"mutable","name":"dataOffset","nameLocation":"11854:10:14","nodeType":"VariableDeclaration","scope":2141,"src":"11846:18:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2107,"name":"uint256","nodeType":"ElementaryTypeName","src":"11846:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2109,"nodeType":"VariableDeclarationStatement","src":"11846:18:14"},{"AST":{"nodeType":"YulBlock","src":"11887:58:14","statements":[{"nodeType":"YulAssignment","src":"11905:26:14","value":{"name":"_data.offset","nodeType":"YulIdentifier","src":"11919:12:14"},"variableNames":[{"name":"dataOffset","nodeType":"YulIdentifier","src":"11905:10:14"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":2079,"isOffset":true,"isSlot":false,"src":"11919:12:14","suffix":"offset","valueSize":1},{"declaration":2108,"isOffset":false,"isSlot":false,"src":"11905:10:14","valueSize":1}],"id":2110,"nodeType":"InlineAssembly","src":"11878:67:14"},{"expression":{"arguments":[{"arguments":[{"id":2116,"name":"dataOffset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2108,"src":"12080:10:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2115,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12073:6:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"},"typeName":{"id":2114,"name":"uint32","nodeType":"ElementaryTypeName","src":"12073:6:14","typeDescriptions":{}}},"id":2117,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12073:18:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"}],"expression":{"id":2111,"name":"SystemContractHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3048,"src":"12035:20:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SystemContractHelper_$3048_$","typeString":"type(library SystemContractHelper)"}},"id":2113,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12056:16:14","memberName":"ptrAddIntoActive","nodeType":"MemberAccess","referencedDeclaration":2606,"src":"12035:37:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint32_$returns$__$","typeString":"function (uint32) view"}},"id":2118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12035:57:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2119,"nodeType":"ExpressionStatement","src":"12035:57:14"},{"assignments":[2121],"declarations":[{"constant":false,"id":2121,"mutability":"mutable","name":"shrinkTo","nameLocation":"12196:8:14","nodeType":"VariableDeclaration","scope":2141,"src":"12189:15:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2120,"name":"uint32","nodeType":"ElementaryTypeName","src":"12189:6:14","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"id":2134,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2132,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":2124,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12214:3:14","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12218:4:14","memberName":"data","nodeType":"MemberAccess","src":"12214:8:14","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":2126,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12223:6:14","memberName":"length","nodeType":"MemberAccess","src":"12214:15:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2130,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2127,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2079,"src":"12233:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":2128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12239:6:14","memberName":"length","nodeType":"MemberAccess","src":"12233:12:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":2129,"name":"dataOffset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2108,"src":"12248:10:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12233:25:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2131,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12232:27:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12214:45:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2123,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12207:6:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"},"typeName":{"id":2122,"name":"uint32","nodeType":"ElementaryTypeName","src":"12207:6:14","typeDescriptions":{}}},"id":2133,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12207:53:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"VariableDeclarationStatement","src":"12189:71:14"},{"expression":{"arguments":[{"id":2138,"name":"shrinkTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2121,"src":"12315:8:14","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"}],"expression":{"id":2135,"name":"SystemContractHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3048,"src":"12274:20:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SystemContractHelper_$3048_$","typeString":"type(library SystemContractHelper)"}},"id":2137,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12295:19:14","memberName":"ptrShrinkIntoActive","nodeType":"MemberAccess","referencedDeclaration":2622,"src":"12274:40:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint32_$returns$__$","typeString":"function (uint32) view"}},"id":2139,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12274:50:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2140,"nodeType":"ExpressionStatement","src":"12274:50:14"}]},"id":2142,"nodeType":"IfStatement","src":"11637:698:14","trueBody":{"id":2106,"nodeType":"Block","src":"11660:166:14","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"expression":{"id":2100,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"11798:3:14","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11802:4:14","memberName":"data","nodeType":"MemberAccess","src":"11798:8:14","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":2102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11807:6:14","memberName":"length","nodeType":"MemberAccess","src":"11798:15:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2099,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11791:6:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"},"typeName":{"id":2098,"name":"uint32","nodeType":"ElementaryTypeName","src":"11791:6:14","typeDescriptions":{}}},"id":2103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11791:23:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"}],"expression":{"id":2095,"name":"SystemContractHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3048,"src":"11750:20:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SystemContractHelper_$3048_$","typeString":"type(library SystemContractHelper)"}},"id":2097,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11771:19:14","memberName":"ptrShrinkIntoActive","nodeType":"MemberAccess","referencedDeclaration":2622,"src":"11750:40:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint32_$returns$__$","typeString":"function (uint32) view"}},"id":2104,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11750:65:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2105,"nodeType":"ExpressionStatement","src":"11750:65:14"}]}},{"assignments":[2144],"declarations":[{"constant":false,"id":2144,"mutability":"mutable","name":"gas","nameLocation":"12352:3:14","nodeType":"VariableDeclaration","scope":2168,"src":"12345:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2143,"name":"uint32","nodeType":"ElementaryTypeName","src":"12345:6:14","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"id":2149,"initialValue":{"arguments":[{"id":2147,"name":"_gas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2077,"src":"12378:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2145,"name":"Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4920,"src":"12358:5:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Utils_$4920_$","typeString":"type(library Utils)"}},"id":2146,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12364:13:14","memberName":"safeCastToU32","nodeType":"MemberAccess","referencedDeclaration":4706,"src":"12358:19:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint32_$","typeString":"function (uint256) pure returns (uint32)"}},"id":2148,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12358:25:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"VariableDeclarationStatement","src":"12345:38:14"},{"assignments":[2151],"declarations":[{"constant":false,"id":2151,"mutability":"mutable","name":"farCallAbi","nameLocation":"12401:10:14","nodeType":"VariableDeclaration","scope":2168,"src":"12393:18:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2150,"name":"uint256","nodeType":"ElementaryTypeName","src":"12393:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2161,"initialValue":{"arguments":[{"id":2154,"name":"gas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2144,"src":"12482:3:14","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"hexValue":"30","id":2155,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12547:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"expression":{"id":2156,"name":"CalldataForwardingMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3405,"src":"12562:22:14","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CalldataForwardingMode_$3405_$","typeString":"type(enum CalldataForwardingMode)"}},"id":2157,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12585:17:14","memberName":"ForwardFatPointer","nodeType":"MemberAccess","referencedDeclaration":3403,"src":"12562:40:14","typeDescriptions":{"typeIdentifier":"t_enum$_CalldataForwardingMode_$3405","typeString":"enum CalldataForwardingMode"}},{"id":2158,"name":"_isConstructor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2081,"src":"12616:14:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":2159,"name":"_isSystem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2083,"src":"12644:9:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_enum$_CalldataForwardingMode_$3405","typeString":"enum CalldataForwardingMode"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":2152,"name":"SystemContractsCaller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3683,"src":"12414:21:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SystemContractsCaller_$3683_$","typeString":"type(library SystemContractsCaller)"}},"id":2153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12436:32:14","memberName":"getFarCallABIWithEmptyFatPointer","nodeType":"MemberAccess","referencedDeclaration":3682,"src":"12414:54:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint32_$_t_uint8_$_t_enum$_CalldataForwardingMode_$3405_$_t_bool_$_t_bool_$returns$_t_uint256_$","typeString":"function (uint32,uint8,enum CalldataForwardingMode,bool,bool) pure returns (uint256)"}},"id":2160,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12414:249:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"12393:270:14"},{"expression":{"arguments":[{"id":2165,"name":"farCallAbi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2151,"src":"12715:10:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2162,"name":"SystemContractHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3048,"src":"12673:20:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SystemContractHelper_$3048_$","typeString":"type(library SystemContractHelper)"}},"id":2164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12694:20:14","memberName":"ptrPackIntoActivePtr","nodeType":"MemberAccess","referencedDeclaration":2590,"src":"12673:41:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$__$","typeString":"function (uint256) view"}},"id":2166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12673:53:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2167,"nodeType":"ExpressionStatement","src":"12673:53:14"}]},"documentation":{"id":2075,"nodeType":"StructuredDocumentation","src":"10797:341:14","text":"@dev Load the far call ABI into active ptr, that will be used for the next call by reference.\n @param _gas The gas to be passed to the call.\n @param _data The calldata to be passed to the call.\n @param _isConstructor Whether the call is a constructor call.\n @param _isSystem Whether the call is a system call."},"id":2169,"implemented":true,"kind":"function","modifiers":[],"name":"_loadFarCallABIIntoActivePtr","nameLocation":"11152:28:14","nodeType":"FunctionDefinition","parameters":{"id":2084,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2077,"mutability":"mutable","name":"_gas","nameLocation":"11198:4:14","nodeType":"VariableDeclaration","scope":2169,"src":"11190:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2076,"name":"uint256","nodeType":"ElementaryTypeName","src":"11190:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2079,"mutability":"mutable","name":"_data","nameLocation":"11227:5:14","nodeType":"VariableDeclaration","scope":2169,"src":"11212:20:14","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":2078,"name":"bytes","nodeType":"ElementaryTypeName","src":"11212:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2081,"mutability":"mutable","name":"_isConstructor","nameLocation":"11247:14:14","nodeType":"VariableDeclaration","scope":2169,"src":"11242:19:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2080,"name":"bool","nodeType":"ElementaryTypeName","src":"11242:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":2083,"mutability":"mutable","name":"_isSystem","nameLocation":"11276:9:14","nodeType":"VariableDeclaration","scope":2169,"src":"11271:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2082,"name":"bool","nodeType":"ElementaryTypeName","src":"11271:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"11180:111:14"},"returnParameters":{"id":2085,"nodeType":"ParameterList","parameters":[],"src":"11305:0:14"},"scope":2170,"src":"11143:1590:14","stateMutability":"view","virtual":false,"visibility":"private"}],"scope":2171,"src":"2048:10687:14","usedErrors":[]}],"src":"47:12689:14"}},"@matterlabs/zksync-contracts/l2/system-contracts/libraries/RLPEncoder.sol":{"id":15,"ast":{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/libraries/RLPEncoder.sol","exportedSymbols":{"RLPEncoder":[2503]},"id":2504,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2172,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"33:23:15"},{"abstract":false,"baseContracts":[],"canonicalName":"RLPEncoder","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"id":2503,"linearizedBaseContracts":[2503],"name":"RLPEncoder","nameLocation":"66:10:15","nodeType":"ContractDefinition","nodes":[{"body":{"id":2194,"nodeType":"Block","src":"165:519:15","statements":[{"expression":{"id":2184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2179,"name":"encoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2177,"src":"276:7:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30783135","id":2182,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"296:4:15","typeDescriptions":{"typeIdentifier":"t_rational_21_by_1","typeString":"int_const 21"},"value":"0x15"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_21_by_1","typeString":"int_const 21"}],"id":2181,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"286:9:15","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":2180,"name":"bytes","nodeType":"ElementaryTypeName","src":"290:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":2183,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"286:15:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"276:25:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2185,"nodeType":"ExpressionStatement","src":"276:25:15"},{"assignments":[2187],"declarations":[{"constant":false,"id":2187,"mutability":"mutable","name":"shiftedVal","nameLocation":"320:10:15","nodeType":"VariableDeclaration","scope":2194,"src":"312:18:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"},"typeName":{"id":2186,"name":"bytes20","nodeType":"ElementaryTypeName","src":"312:7:15","typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"}},"visibility":"internal"}],"id":2192,"initialValue":{"arguments":[{"id":2190,"name":"_val","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2174,"src":"341:4:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2189,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"333:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes20_$","typeString":"type(bytes20)"},"typeName":{"id":2188,"name":"bytes20","nodeType":"ElementaryTypeName","src":"333:7:15","typeDescriptions":{}}},"id":2191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"333:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"}},"nodeType":"VariableDeclarationStatement","src":"312:34:15"},{"AST":{"nodeType":"YulBlock","src":"365:313:15","statements":[{"expression":{"arguments":[{"arguments":[{"name":"encoded","nodeType":"YulIdentifier","src":"475:7:15"},{"kind":"number","nodeType":"YulLiteral","src":"484:4:15","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"471:3:15"},"nodeType":"YulFunctionCall","src":"471:18:15"},{"kind":"number","nodeType":"YulLiteral","src":"491:66:15","type":"","value":"0x9400000000000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"464:6:15"},"nodeType":"YulFunctionCall","src":"464:94:15"},"nodeType":"YulExpressionStatement","src":"464:94:15"},{"expression":{"arguments":[{"arguments":[{"name":"encoded","nodeType":"YulIdentifier","src":"641:7:15"},{"kind":"number","nodeType":"YulLiteral","src":"650:4:15","type":"","value":"0x21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"637:3:15"},"nodeType":"YulFunctionCall","src":"637:18:15"},{"name":"shiftedVal","nodeType":"YulIdentifier","src":"657:10:15"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"630:6:15"},"nodeType":"YulFunctionCall","src":"630:38:15"},"nodeType":"YulExpressionStatement","src":"630:38:15"}]},"evmVersion":"paris","externalReferences":[{"declaration":2177,"isOffset":false,"isSlot":false,"src":"475:7:15","valueSize":1},{"declaration":2177,"isOffset":false,"isSlot":false,"src":"641:7:15","valueSize":1},{"declaration":2187,"isOffset":false,"isSlot":false,"src":"657:10:15","valueSize":1}],"id":2193,"nodeType":"InlineAssembly","src":"356:322:15"}]},"id":2195,"implemented":true,"kind":"function","modifiers":[],"name":"encodeAddress","nameLocation":"92:13:15","nodeType":"FunctionDefinition","parameters":{"id":2175,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2174,"mutability":"mutable","name":"_val","nameLocation":"114:4:15","nodeType":"VariableDeclaration","scope":2195,"src":"106:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2173,"name":"address","nodeType":"ElementaryTypeName","src":"106:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"105:14:15"},"returnParameters":{"id":2178,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2177,"mutability":"mutable","name":"encoded","nameLocation":"156:7:15","nodeType":"VariableDeclaration","scope":2195,"src":"143:20:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2176,"name":"bytes","nodeType":"ElementaryTypeName","src":"143:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"142:22:15"},"scope":2503,"src":"83:601:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2285,"nodeType":"Block","src":"772:686:15","statements":[{"id":2284,"nodeType":"UncheckedBlock","src":"782:670:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2202,"name":"_val","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2197,"src":"810:4:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"313238","id":2203,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"817:3:15","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"810:10:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":2282,"nodeType":"Block","src":"1069:373:15","statements":[{"assignments":[2238],"declarations":[{"constant":false,"id":2238,"mutability":"mutable","name":"hbs","nameLocation":"1095:3:15","nodeType":"VariableDeclaration","scope":2282,"src":"1087:11:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2237,"name":"uint256","nodeType":"ElementaryTypeName","src":"1087:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2242,"initialValue":{"arguments":[{"id":2240,"name":"_val","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2197,"src":"1117:4:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2239,"name":"_highestByteSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2502,"src":"1101:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":2241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1101:21:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1087:35:15"},{"expression":{"id":2250,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2243,"name":"encoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2200,"src":"1141:7:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2246,"name":"hbs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2238,"src":"1161:3:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"32","id":2247,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1167:1:15","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"1161:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2245,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1151:9:15","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":2244,"name":"bytes","nodeType":"ElementaryTypeName","src":"1155:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":2249,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1151:18:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"1141:28:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2251,"nodeType":"ExpressionStatement","src":"1141:28:15"},{"expression":{"id":2264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":2252,"name":"encoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2200,"src":"1187:7:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2254,"indexExpression":{"hexValue":"30","id":2253,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1195:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1187:10:15","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2259,"name":"hbs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2238,"src":"1213:3:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"30783831","id":2260,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1219:4:15","typeDescriptions":{"typeIdentifier":"t_rational_129_by_1","typeString":"int_const 129"},"value":"0x81"},"src":"1213:10:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2258,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1207:5:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":2257,"name":"uint8","nodeType":"ElementaryTypeName","src":"1207:5:15","typeDescriptions":{}}},"id":2262,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1207:17:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":2256,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1200:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes1_$","typeString":"type(bytes1)"},"typeName":{"id":2255,"name":"bytes1","nodeType":"ElementaryTypeName","src":"1200:6:15","typeDescriptions":{}}},"id":2263,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1200:25:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"1187:38:15","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":2265,"nodeType":"ExpressionStatement","src":"1187:38:15"},{"assignments":[2267],"declarations":[{"constant":false,"id":2267,"mutability":"mutable","name":"lbs","nameLocation":"1252:3:15","nodeType":"VariableDeclaration","scope":2282,"src":"1244:11:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2266,"name":"uint256","nodeType":"ElementaryTypeName","src":"1244:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2271,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3331","id":2268,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1258:2:15","typeDescriptions":{"typeIdentifier":"t_rational_31_by_1","typeString":"int_const 31"},"value":"31"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":2269,"name":"hbs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2238,"src":"1263:3:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1258:8:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1244:22:15"},{"assignments":[2273],"declarations":[{"constant":false,"id":2273,"mutability":"mutable","name":"shiftedVal","nameLocation":"1292:10:15","nodeType":"VariableDeclaration","scope":2282,"src":"1284:18:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2272,"name":"uint256","nodeType":"ElementaryTypeName","src":"1284:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2280,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2279,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2274,"name":"_val","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2197,"src":"1305:4:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2275,"name":"lbs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2267,"src":"1314:3:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"38","id":2276,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1320:1:15","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"1314:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2278,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1313:9:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1305:17:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1284:38:15"},{"AST":{"nodeType":"YulBlock","src":"1350:78:15","statements":[{"expression":{"arguments":[{"arguments":[{"name":"encoded","nodeType":"YulIdentifier","src":"1383:7:15"},{"kind":"number","nodeType":"YulLiteral","src":"1392:4:15","type":"","value":"0x21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1379:3:15"},"nodeType":"YulFunctionCall","src":"1379:18:15"},{"name":"shiftedVal","nodeType":"YulIdentifier","src":"1399:10:15"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1372:6:15"},"nodeType":"YulFunctionCall","src":"1372:38:15"},"nodeType":"YulExpressionStatement","src":"1372:38:15"}]},"evmVersion":"paris","externalReferences":[{"declaration":2200,"isOffset":false,"isSlot":false,"src":"1383:7:15","valueSize":1},{"declaration":2273,"isOffset":false,"isSlot":false,"src":"1399:10:15","valueSize":1}],"id":2281,"nodeType":"InlineAssembly","src":"1341:87:15"}]},"id":2283,"nodeType":"IfStatement","src":"806:636:15","trueBody":{"id":2236,"nodeType":"Block","src":"822:241:15","statements":[{"expression":{"id":2210,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2205,"name":"encoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2200,"src":"840:7:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"31","id":2208,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"860:1:15","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":2207,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"850:9:15","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":2206,"name":"bytes","nodeType":"ElementaryTypeName","src":"854:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":2209,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"850:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"840:22:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2211,"nodeType":"ExpressionStatement","src":"840:22:15"},{"expression":{"id":2234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":2212,"name":"encoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2200,"src":"981:7:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2214,"indexExpression":{"hexValue":"30","id":2213,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"989:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"981:10:15","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"condition":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2215,"name":"_val","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2197,"src":"995:4:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2216,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1003:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"995:9:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":2218,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"994:11:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[{"arguments":[{"id":2230,"name":"_val","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2197,"src":"1042:4:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2229,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1036:5:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":2228,"name":"uint8","nodeType":"ElementaryTypeName","src":"1036:5:15","typeDescriptions":{}}},"id":2231,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1036:11:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":2227,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1029:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes1_$","typeString":"type(bytes1)"},"typeName":{"id":2226,"name":"bytes1","nodeType":"ElementaryTypeName","src":"1029:6:15","typeDescriptions":{}}},"id":2232,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1029:19:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":2233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"994:54:15","trueExpression":{"arguments":[{"arguments":[{"hexValue":"313238","id":2223,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1021:3:15","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"}],"id":2222,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1015:5:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":2221,"name":"uint8","nodeType":"ElementaryTypeName","src":"1015:5:15","typeDescriptions":{}}},"id":2224,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1015:10:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":2220,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1008:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes1_$","typeString":"type(bytes1)"},"typeName":{"id":2219,"name":"bytes1","nodeType":"ElementaryTypeName","src":"1008:6:15","typeDescriptions":{}}},"id":2225,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1008:18:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"981:67:15","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":2235,"nodeType":"ExpressionStatement","src":"981:67:15"}]}}]}]},"id":2286,"implemented":true,"kind":"function","modifiers":[],"name":"encodeUint256","nameLocation":"699:13:15","nodeType":"FunctionDefinition","parameters":{"id":2198,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2197,"mutability":"mutable","name":"_val","nameLocation":"721:4:15","nodeType":"VariableDeclaration","scope":2286,"src":"713:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2196,"name":"uint256","nodeType":"ElementaryTypeName","src":"713:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"712:14:15"},"returnParameters":{"id":2201,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2200,"mutability":"mutable","name":"encoded","nameLocation":"763:7:15","nodeType":"VariableDeclaration","scope":2286,"src":"750:20:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2199,"name":"bytes","nodeType":"ElementaryTypeName","src":"750:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"749:22:15"},"scope":2503,"src":"690:768:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2305,"nodeType":"Block","src":"1817:76:15","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":2297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2295,"name":"_len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2289,"src":"1834:4:15","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"31","id":2296,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1842:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1834:9:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":2294,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-3,"src":"1827:6:15","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":2298,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1827:17:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2299,"nodeType":"ExpressionStatement","src":"1827:17:15"},{"expression":{"arguments":[{"id":2301,"name":"_len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2289,"src":"1875:4:15","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"hexValue":"30783830","id":2302,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1881:4:15","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"0x80"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"}],"id":2300,"name":"_encodeLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2411,"src":"1861:13:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint64_$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint64,uint256) pure returns (bytes memory)"}},"id":2303,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1861:25:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":2293,"id":2304,"nodeType":"Return","src":"1854:32:15"}]},"documentation":{"id":2287,"nodeType":"StructuredDocumentation","src":"1464:265:15","text":"@notice Encodes the size of bytes in RLP format.\n @param _len The length of the bytes to encode. It has a `uint64` type since as larger values are not supported.\n NOTE: panics if the length is 1 since the length encoding is ambiguous in this case."},"id":2306,"implemented":true,"kind":"function","modifiers":[],"name":"encodeNonSingleBytesLen","nameLocation":"1743:23:15","nodeType":"FunctionDefinition","parameters":{"id":2290,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2289,"mutability":"mutable","name":"_len","nameLocation":"1774:4:15","nodeType":"VariableDeclaration","scope":2306,"src":"1767:11:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":2288,"name":"uint64","nodeType":"ElementaryTypeName","src":"1767:6:15","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"1766:13:15"},"returnParameters":{"id":2293,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2292,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2306,"src":"1803:12:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2291,"name":"bytes","nodeType":"ElementaryTypeName","src":"1803:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1802:14:15"},"scope":2503,"src":"1734:159:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2319,"nodeType":"Block","src":"2154:49:15","statements":[{"expression":{"arguments":[{"id":2315,"name":"_len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2309,"src":"2185:4:15","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"hexValue":"30786330","id":2316,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2191:4:15","typeDescriptions":{"typeIdentifier":"t_rational_192_by_1","typeString":"int_const 192"},"value":"0xc0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_rational_192_by_1","typeString":"int_const 192"}],"id":2314,"name":"_encodeLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2411,"src":"2171:13:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint64_$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint64,uint256) pure returns (bytes memory)"}},"id":2317,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2171:25:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":2313,"id":2318,"nodeType":"Return","src":"2164:32:15"}]},"documentation":{"id":2307,"nodeType":"StructuredDocumentation","src":"1899:177:15","text":"@notice Encodes the size of list items in RLP format.\n @param _len The length of the bytes to encode. It has a `uint64` type since as larger values are not supported."},"id":2320,"implemented":true,"kind":"function","modifiers":[],"name":"encodeListLen","nameLocation":"2090:13:15","nodeType":"FunctionDefinition","parameters":{"id":2310,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2309,"mutability":"mutable","name":"_len","nameLocation":"2111:4:15","nodeType":"VariableDeclaration","scope":2320,"src":"2104:11:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":2308,"name":"uint64","nodeType":"ElementaryTypeName","src":"2104:6:15","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"2103:13:15"},"returnParameters":{"id":2313,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2312,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2320,"src":"2140:12:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2311,"name":"bytes","nodeType":"ElementaryTypeName","src":"2140:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2139:14:15"},"scope":2503,"src":"2081:122:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2410,"nodeType":"Block","src":"2306:585:15","statements":[{"id":2409,"nodeType":"UncheckedBlock","src":"2316:569:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":2331,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2329,"name":"_len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2322,"src":"2344:4:15","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"3536","id":2330,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2351:2:15","typeDescriptions":{"typeIdentifier":"t_rational_56_by_1","typeString":"int_const 56"},"value":"56"},"src":"2344:9:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":2407,"nodeType":"Block","src":"2476:399:15","statements":[{"assignments":[2355],"declarations":[{"constant":false,"id":2355,"mutability":"mutable","name":"hbs","nameLocation":"2502:3:15","nodeType":"VariableDeclaration","scope":2407,"src":"2494:11:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2354,"name":"uint256","nodeType":"ElementaryTypeName","src":"2494:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2362,"initialValue":{"arguments":[{"arguments":[{"id":2359,"name":"_len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2322,"src":"2532:4:15","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":2358,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2524:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":2357,"name":"uint256","nodeType":"ElementaryTypeName","src":"2524:7:15","typeDescriptions":{}}},"id":2360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2524:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2356,"name":"_highestByteSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2502,"src":"2508:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":2361,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2508:30:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2494:44:15"},{"expression":{"id":2370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2363,"name":"encoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2327,"src":"2557:7:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2368,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2366,"name":"hbs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2355,"src":"2577:3:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"32","id":2367,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2583:1:15","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"2577:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2365,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2567:9:15","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":2364,"name":"bytes","nodeType":"ElementaryTypeName","src":"2571:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":2369,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2567:18:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"2557:28:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2371,"nodeType":"ExpressionStatement","src":"2557:28:15"},{"expression":{"id":2386,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":2372,"name":"encoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2327,"src":"2603:7:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2374,"indexExpression":{"hexValue":"30","id":2373,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2611:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2603:10:15","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2381,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2379,"name":"_offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2324,"src":"2629:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":2380,"name":"hbs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2355,"src":"2639:3:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2629:13:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3536","id":2382,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2645:2:15","typeDescriptions":{"typeIdentifier":"t_rational_56_by_1","typeString":"int_const 56"},"value":"56"},"src":"2629:18:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2378,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2623:5:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":2377,"name":"uint8","nodeType":"ElementaryTypeName","src":"2623:5:15","typeDescriptions":{}}},"id":2384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2623:25:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":2376,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2616:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes1_$","typeString":"type(bytes1)"},"typeName":{"id":2375,"name":"bytes1","nodeType":"ElementaryTypeName","src":"2616:6:15","typeDescriptions":{}}},"id":2385,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2616:33:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"2603:46:15","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":2387,"nodeType":"ExpressionStatement","src":"2603:46:15"},{"assignments":[2389],"declarations":[{"constant":false,"id":2389,"mutability":"mutable","name":"lbs","nameLocation":"2676:3:15","nodeType":"VariableDeclaration","scope":2407,"src":"2668:11:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2388,"name":"uint256","nodeType":"ElementaryTypeName","src":"2668:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2393,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3331","id":2390,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2682:2:15","typeDescriptions":{"typeIdentifier":"t_rational_31_by_1","typeString":"int_const 31"},"value":"31"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":2391,"name":"hbs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2355,"src":"2687:3:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2682:8:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2668:22:15"},{"assignments":[2395],"declarations":[{"constant":false,"id":2395,"mutability":"mutable","name":"shiftedVal","nameLocation":"2716:10:15","nodeType":"VariableDeclaration","scope":2407,"src":"2708:18:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2394,"name":"uint256","nodeType":"ElementaryTypeName","src":"2708:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2405,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":2398,"name":"_len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2322,"src":"2737:4:15","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":2397,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2729:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":2396,"name":"uint256","nodeType":"ElementaryTypeName","src":"2729:7:15","typeDescriptions":{}}},"id":2399,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2729:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2400,"name":"lbs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2389,"src":"2747:3:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"38","id":2401,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2753:1:15","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"2747:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2403,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2746:9:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2729:26:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2708:47:15"},{"AST":{"nodeType":"YulBlock","src":"2783:78:15","statements":[{"expression":{"arguments":[{"arguments":[{"name":"encoded","nodeType":"YulIdentifier","src":"2816:7:15"},{"kind":"number","nodeType":"YulLiteral","src":"2825:4:15","type":"","value":"0x21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2812:3:15"},"nodeType":"YulFunctionCall","src":"2812:18:15"},{"name":"shiftedVal","nodeType":"YulIdentifier","src":"2832:10:15"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2805:6:15"},"nodeType":"YulFunctionCall","src":"2805:38:15"},"nodeType":"YulExpressionStatement","src":"2805:38:15"}]},"evmVersion":"paris","externalReferences":[{"declaration":2327,"isOffset":false,"isSlot":false,"src":"2816:7:15","valueSize":1},{"declaration":2395,"isOffset":false,"isSlot":false,"src":"2832:10:15","valueSize":1}],"id":2406,"nodeType":"InlineAssembly","src":"2774:87:15"}]},"id":2408,"nodeType":"IfStatement","src":"2340:535:15","trueBody":{"id":2353,"nodeType":"Block","src":"2355:115:15","statements":[{"expression":{"id":2337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2332,"name":"encoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2327,"src":"2373:7:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"31","id":2335,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2393:1:15","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":2334,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2383:9:15","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":2333,"name":"bytes","nodeType":"ElementaryTypeName","src":"2387:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":2336,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2383:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"2373:22:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2338,"nodeType":"ExpressionStatement","src":"2373:22:15"},{"expression":{"id":2351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":2339,"name":"encoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2327,"src":"2413:7:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2341,"indexExpression":{"hexValue":"30","id":2340,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2421:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2413:10:15","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2346,"name":"_len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2322,"src":"2439:4:15","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":2347,"name":"_offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2324,"src":"2446:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2439:14:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2345,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2433:5:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":2344,"name":"uint8","nodeType":"ElementaryTypeName","src":"2433:5:15","typeDescriptions":{}}},"id":2349,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2433:21:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":2343,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2426:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes1_$","typeString":"type(bytes1)"},"typeName":{"id":2342,"name":"bytes1","nodeType":"ElementaryTypeName","src":"2426:6:15","typeDescriptions":{}}},"id":2350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2426:29:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"2413:42:15","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":2352,"nodeType":"ExpressionStatement","src":"2413:42:15"}]}}]}]},"id":2411,"implemented":true,"kind":"function","modifiers":[],"name":"_encodeLength","nameLocation":"2218:13:15","nodeType":"FunctionDefinition","parameters":{"id":2325,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2322,"mutability":"mutable","name":"_len","nameLocation":"2239:4:15","nodeType":"VariableDeclaration","scope":2411,"src":"2232:11:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":2321,"name":"uint64","nodeType":"ElementaryTypeName","src":"2232:6:15","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":2324,"mutability":"mutable","name":"_offset","nameLocation":"2253:7:15","nodeType":"VariableDeclaration","scope":2411,"src":"2245:15:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2323,"name":"uint256","nodeType":"ElementaryTypeName","src":"2245:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2231:30:15"},"returnParameters":{"id":2328,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2327,"mutability":"mutable","name":"encoded","nameLocation":"2297:7:15","nodeType":"VariableDeclaration","scope":2411,"src":"2284:20:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2326,"name":"bytes","nodeType":"ElementaryTypeName","src":"2284:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2283:22:15"},"scope":2503,"src":"2209:682:15","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":2501,"nodeType":"Block","src":"3166:597:15","statements":[{"id":2500,"nodeType":"UncheckedBlock","src":"3176:581:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2425,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2419,"name":"_number","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2414,"src":"3204:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":2422,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3219:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":2421,"name":"uint128","nodeType":"ElementaryTypeName","src":"3219:7:15","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"}],"id":2420,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"3214:4:15","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":2423,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3214:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint128","typeString":"type(uint128)"}},"id":2424,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3228:3:15","memberName":"max","nodeType":"MemberAccess","src":"3214:17:15","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"3204:27:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2435,"nodeType":"IfStatement","src":"3200:108:15","trueBody":{"id":2434,"nodeType":"Block","src":"3233:75:15","statements":[{"expression":{"id":2428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2426,"name":"_number","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2414,"src":"3251:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"313238","id":2427,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3263:3:15","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"3251:15:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2429,"nodeType":"ExpressionStatement","src":"3251:15:15"},{"expression":{"id":2432,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2430,"name":"hbs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2417,"src":"3284:3:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3136","id":2431,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3291:2:15","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"3284:9:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2433,"nodeType":"ExpressionStatement","src":"3284:9:15"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2442,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2436,"name":"_number","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2414,"src":"3325:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":2439,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3340:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":2438,"name":"uint64","nodeType":"ElementaryTypeName","src":"3340:6:15","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"}],"id":2437,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"3335:4:15","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":2440,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3335:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint64","typeString":"type(uint64)"}},"id":2441,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3348:3:15","memberName":"max","nodeType":"MemberAccess","src":"3335:16:15","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3325:26:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2452,"nodeType":"IfStatement","src":"3321:105:15","trueBody":{"id":2451,"nodeType":"Block","src":"3353:73:15","statements":[{"expression":{"id":2445,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2443,"name":"_number","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2414,"src":"3371:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3634","id":2444,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3383:2:15","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"3371:14:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2446,"nodeType":"ExpressionStatement","src":"3371:14:15"},{"expression":{"id":2449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2447,"name":"hbs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2417,"src":"3403:3:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"38","id":2448,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3410:1:15","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"3403:8:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2450,"nodeType":"ExpressionStatement","src":"3403:8:15"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2453,"name":"_number","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2414,"src":"3443:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":2456,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3458:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"},"typeName":{"id":2455,"name":"uint32","nodeType":"ElementaryTypeName","src":"3458:6:15","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"}],"id":2454,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"3453:4:15","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":2457,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3453:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint32","typeString":"type(uint32)"}},"id":2458,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3466:3:15","memberName":"max","nodeType":"MemberAccess","src":"3453:16:15","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"3443:26:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2469,"nodeType":"IfStatement","src":"3439:105:15","trueBody":{"id":2468,"nodeType":"Block","src":"3471:73:15","statements":[{"expression":{"id":2462,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2460,"name":"_number","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2414,"src":"3489:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3332","id":2461,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3501:2:15","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"3489:14:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2463,"nodeType":"ExpressionStatement","src":"3489:14:15"},{"expression":{"id":2466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2464,"name":"hbs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2417,"src":"3521:3:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"34","id":2465,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3528:1:15","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"3521:8:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2467,"nodeType":"ExpressionStatement","src":"3521:8:15"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2476,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2470,"name":"_number","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2414,"src":"3561:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":2473,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3576:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"},"typeName":{"id":2472,"name":"uint16","nodeType":"ElementaryTypeName","src":"3576:6:15","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"}],"id":2471,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"3571:4:15","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":2474,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3571:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint16","typeString":"type(uint16)"}},"id":2475,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3584:3:15","memberName":"max","nodeType":"MemberAccess","src":"3571:16:15","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"3561:26:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2486,"nodeType":"IfStatement","src":"3557:105:15","trueBody":{"id":2485,"nodeType":"Block","src":"3589:73:15","statements":[{"expression":{"id":2479,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2477,"name":"_number","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2414,"src":"3607:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3136","id":2478,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3619:2:15","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"3607:14:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2480,"nodeType":"ExpressionStatement","src":"3607:14:15"},{"expression":{"id":2483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2481,"name":"hbs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2417,"src":"3639:3:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":2482,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3646:1:15","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"3639:8:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2484,"nodeType":"ExpressionStatement","src":"3639:8:15"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2493,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2487,"name":"_number","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2414,"src":"3679:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":2490,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3694:5:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":2489,"name":"uint8","nodeType":"ElementaryTypeName","src":"3694:5:15","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"}],"id":2488,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"3689:4:15","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":2491,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3689:11:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint8","typeString":"type(uint8)"}},"id":2492,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3701:3:15","memberName":"max","nodeType":"MemberAccess","src":"3689:15:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"3679:25:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2499,"nodeType":"IfStatement","src":"3675:72:15","trueBody":{"id":2498,"nodeType":"Block","src":"3706:41:15","statements":[{"expression":{"id":2496,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2494,"name":"hbs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2417,"src":"3724:3:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":2495,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3731:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3724:8:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2497,"nodeType":"ExpressionStatement","src":"3724:8:15"}]}}]}]},"documentation":{"id":2412,"nodeType":"StructuredDocumentation","src":"2897:187:15","text":"@notice Computes the index of the highest byte set in number.\n @notice Uses little endian ordering (The least significant byte has index `0`).\n NOTE: returns `0` for `0`"},"id":2502,"implemented":true,"kind":"function","modifiers":[],"name":"_highestByteSet","nameLocation":"3098:15:15","nodeType":"FunctionDefinition","parameters":{"id":2415,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2414,"mutability":"mutable","name":"_number","nameLocation":"3122:7:15","nodeType":"VariableDeclaration","scope":2502,"src":"3114:15:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2413,"name":"uint256","nodeType":"ElementaryTypeName","src":"3114:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3113:17:15"},"returnParameters":{"id":2418,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2417,"mutability":"mutable","name":"hbs","nameLocation":"3161:3:15","nodeType":"VariableDeclaration","scope":2502,"src":"3153:11:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2416,"name":"uint256","nodeType":"ElementaryTypeName","src":"3153:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3152:13:15"},"scope":2503,"src":"3089:674:15","stateMutability":"pure","virtual":false,"visibility":"private"}],"scope":2504,"src":"58:3707:15","usedErrors":[]}],"src":"33:3733:15"}},"@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractHelper.sol":{"id":16,"ast":{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractHelper.sol","exportedSymbols":{"ADDRESS_MASK":[2520],"CALLFLAGS_CALL_ADDRESS":[3261],"CODE_ADDRESS_CALL_ADDRESS":[3096],"CalldataForwardingMode":[3405],"EVENT_INITIALIZE_ADDRESS":[3283],"EVENT_WRITE_ADDRESS":[3294],"EfficientCall":[2170],"GET_EXTRA_ABI_DATA_ADDRESS":[3371],"Global":[2539],"INCREMENT_TX_COUNTER_CALL_ADDRESS":[3239],"ISystemContract":[3068],"LOAD_CALLDATA_INTO_ACTIVE_PTR_CALL_ADDRESS":[3305],"LOAD_LATEST_RETURNDATA_INTO_ACTIVE_PTR_CALL_ADDRESS":[3316],"MAX_SYSTEM_CONTRACT_ADDRESS":[925],"META_AUX_HEAP_SIZE_OFFSET":[3386],"META_CALLER_SHARD_ID_OFFSET":[3396],"META_CALL_ADDRESS":[3118],"META_CODE_SHARD_ID_OFFSET":[3401],"META_GAS_PER_PUBDATA_BYTE_OFFSET":[3376],"META_HEAP_SIZE_OFFSET":[3381],"META_SHARD_ID_OFFSET":[3391],"MIMIC_CALL_BY_REF_CALL_ADDRESS":[3151],"MIMIC_CALL_CALL_ADDRESS":[3129],"MSG_VALUE_SIMULATOR_IS_SYSTEM_BIT":[1107],"MSG_VALUE_SYSTEM_CONTRACT":[1040],"MULTIPLICATION_HIGH_ADDRESS":[3360],"PRECOMPILE_CALL_ADDRESS":[3107],"PTR_ADD_INTO_ACTIVE_CALL_ADDRESS":[3327],"PTR_CALLDATA_CALL_ADDRESS":[3250],"PTR_PACK_INTO_ACTIVE_CALL_ADDRESS":[3349],"PTR_RETURNDATA_CALL_ADDRESS":[3272],"PTR_SHRINK_INTO_ACTIVE_CALL_ADDRESS":[3338],"RAW_FAR_CALL_BY_REF_CALL_ADDRESS":[3184],"RAW_FAR_CALL_CALL_ADDRESS":[3173],"SET_CONTEXT_VALUE_CALL_ADDRESS":[3217],"SET_PUBDATA_PRICE_CALL_ADDRESS":[3228],"SYSTEM_CALL_BY_REF_CALL_ADDRESS":[3206],"SYSTEM_CALL_CALL_ADDRESS":[3195],"SYSTEM_MIMIC_CALL_BY_REF_CALL_ADDRESS":[3162],"SYSTEM_MIMIC_CALL_CALL_ADDRESS":[3140],"SystemContractHelper":[3048],"SystemContractsCaller":[3683],"TO_L1_CALL_ADDRESS":[3085],"UINT128_MASK":[2516],"UINT32_MASK":[2513],"Utils":[4920],"ZkSyncMeta":[2533]},"id":3069,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2505,"literals":["solidity","^","0.8"],"nodeType":"PragmaDirective","src":"33:21:16"},{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/Constants.sol","file":"../Constants.sol","id":2508,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3069,"sourceUnit":1124,"src":"56:88:16","symbolAliases":[{"foreign":{"id":2506,"name":"MAX_SYSTEM_CONTRACT_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":925,"src":"64:27:16","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":2507,"name":"MSG_VALUE_SYSTEM_CONTRACT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1040,"src":"93:25:16","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractsCaller.sol","file":"./SystemContractsCaller.sol","id":2509,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3069,"sourceUnit":3684,"src":"146:37:16","symbolAliases":[],"unitAlias":""},{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/libraries/Utils.sol","file":"./Utils.sol","id":2510,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3069,"sourceUnit":4921,"src":"184:21:16","symbolAliases":[],"unitAlias":""},{"constant":true,"id":2513,"mutability":"constant","name":"UINT32_MASK","nameLocation":"224:11:16","nodeType":"VariableDeclaration","scope":3069,"src":"207:41:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2511,"name":"uint256","nodeType":"ElementaryTypeName","src":"207:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30786666666666666666","id":2512,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"238:10:16","typeDescriptions":{"typeIdentifier":"t_rational_4294967295_by_1","typeString":"int_const 4294967295"},"value":"0xffffffff"},"visibility":"internal"},{"constant":true,"id":2516,"mutability":"constant","name":"UINT128_MASK","nameLocation":"267:12:16","nodeType":"VariableDeclaration","scope":3069,"src":"250:66:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2514,"name":"uint256","nodeType":"ElementaryTypeName","src":"250:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30786666666666666666666666666666666666666666666666666666666666666666","id":2515,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"282:34:16","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211455_by_1","typeString":"int_const 3402...(31 digits omitted)...1455"},"value":"0xffffffffffffffffffffffffffffffff"},"visibility":"internal"},{"constant":true,"id":2520,"mutability":"constant","name":"ADDRESS_MASK","nameLocation":"483:12:16","nodeType":"VariableDeclaration","scope":3069,"src":"466:76:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2518,"name":"uint256","nodeType":"ElementaryTypeName","src":"466:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3078303066666666666666666666666666666666666666666666666666666666666666666666666666666666","id":2519,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"498:44:16","typeDescriptions":{"typeIdentifier":"t_rational_1461501637330902918203684832716283019655932542975_by_1","typeString":"int_const 1461...(41 digits omitted)...2975"},"value":"0x00ffffffffffffffffffffffffffffffffffffffff"},"visibility":"internal"},{"canonicalName":"ZkSyncMeta","id":2533,"members":[{"constant":false,"id":2522,"mutability":"mutable","name":"gasPerPubdataByte","nameLocation":"576:17:16","nodeType":"VariableDeclaration","scope":2533,"src":"569:24:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2521,"name":"uint32","nodeType":"ElementaryTypeName","src":"569:6:16","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":2524,"mutability":"mutable","name":"heapSize","nameLocation":"606:8:16","nodeType":"VariableDeclaration","scope":2533,"src":"599:15:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2523,"name":"uint32","nodeType":"ElementaryTypeName","src":"599:6:16","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":2526,"mutability":"mutable","name":"auxHeapSize","nameLocation":"627:11:16","nodeType":"VariableDeclaration","scope":2533,"src":"620:18:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2525,"name":"uint32","nodeType":"ElementaryTypeName","src":"620:6:16","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":2528,"mutability":"mutable","name":"shardId","nameLocation":"650:7:16","nodeType":"VariableDeclaration","scope":2533,"src":"644:13:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":2527,"name":"uint8","nodeType":"ElementaryTypeName","src":"644:5:16","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":2530,"mutability":"mutable","name":"callerShardId","nameLocation":"669:13:16","nodeType":"VariableDeclaration","scope":2533,"src":"663:19:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":2529,"name":"uint8","nodeType":"ElementaryTypeName","src":"663:5:16","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":2532,"mutability":"mutable","name":"codeShardId","nameLocation":"694:11:16","nodeType":"VariableDeclaration","scope":2533,"src":"688:17:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":2531,"name":"uint8","nodeType":"ElementaryTypeName","src":"688:5:16","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"name":"ZkSyncMeta","nameLocation":"552:10:16","nodeType":"StructDefinition","scope":3069,"src":"545:163:16","visibility":"public"},{"canonicalName":"Global","id":2539,"members":[{"id":2534,"name":"CalldataPtr","nameLocation":"728:11:16","nodeType":"EnumValue","src":"728:11:16"},{"id":2535,"name":"CallFlags","nameLocation":"745:9:16","nodeType":"EnumValue","src":"745:9:16"},{"id":2536,"name":"ExtraABIData1","nameLocation":"760:13:16","nodeType":"EnumValue","src":"760:13:16"},{"id":2537,"name":"ExtraABIData2","nameLocation":"779:13:16","nodeType":"EnumValue","src":"779:13:16"},{"id":2538,"name":"ReturndataPtr","nameLocation":"798:13:16","nodeType":"EnumValue","src":"798:13:16"}],"name":"Global","nameLocation":"715:6:16","nodeType":"EnumDefinition","src":"710:103:16"},{"abstract":false,"baseContracts":[],"canonicalName":"SystemContractHelper","contractDependencies":[],"contractKind":"library","documentation":{"id":2540,"nodeType":"StructuredDocumentation","src":"815:335:16","text":" @author Matter Labs\n @notice Library used for accessing zkEVM-specific opcodes, needed for the development\n of system contracts.\n @dev While this library will be eventually available to public, some of the provided\n methods won't work for non-system contracts. We will not recommend this library\n for external use."},"fullyImplemented":true,"id":3048,"linearizedBaseContracts":[3048],"name":"SystemContractHelper","nameLocation":"1159:20:16","nodeType":"ContractDefinition","nodes":[{"body":{"id":2555,"nodeType":"Block","src":"1565:397:16","statements":[{"assignments":[2551],"declarations":[{"constant":false,"id":2551,"mutability":"mutable","name":"callAddr","nameLocation":"1583:8:16","nodeType":"VariableDeclaration","scope":2555,"src":"1575:16:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2550,"name":"address","nodeType":"ElementaryTypeName","src":"1575:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":2553,"initialValue":{"id":2552,"name":"TO_L1_CALL_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3085,"src":"1594:18:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"1575:37:16"},{"AST":{"nodeType":"YulBlock","src":"1631:325:16","statements":[{"nodeType":"YulAssignment","src":"1691:32:16","value":{"arguments":[{"name":"_isService","nodeType":"YulIdentifier","src":"1709:10:16"},{"kind":"number","nodeType":"YulLiteral","src":"1721:1:16","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1705:3:16"},"nodeType":"YulFunctionCall","src":"1705:18:16"},"variableNames":[{"name":"_isService","nodeType":"YulIdentifier","src":"1691:10:16"}]},{"nodeType":"YulVariableDeclaration","src":"1877:69:16","value":{"arguments":[{"name":"_isService","nodeType":"YulIdentifier","src":"1897:10:16"},{"name":"callAddr","nodeType":"YulIdentifier","src":"1909:8:16"},{"name":"_key","nodeType":"YulIdentifier","src":"1919:4:16"},{"name":"_value","nodeType":"YulIdentifier","src":"1925:6:16"},{"kind":"number","nodeType":"YulLiteral","src":"1933:6:16","type":"","value":"0xFFFF"},{"kind":"number","nodeType":"YulLiteral","src":"1941:1:16","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1944:1:16","type":"","value":"0"}],"functionName":{"name":"call","nodeType":"YulIdentifier","src":"1892:4:16"},"nodeType":"YulFunctionCall","src":"1892:54:16"},"variables":[{"name":"success","nodeType":"YulTypedName","src":"1881:7:16","type":""}]}]},"evmVersion":"paris","externalReferences":[{"declaration":2543,"isOffset":false,"isSlot":false,"src":"1691:10:16","valueSize":1},{"declaration":2543,"isOffset":false,"isSlot":false,"src":"1709:10:16","valueSize":1},{"declaration":2543,"isOffset":false,"isSlot":false,"src":"1897:10:16","valueSize":1},{"declaration":2545,"isOffset":false,"isSlot":false,"src":"1919:4:16","valueSize":1},{"declaration":2547,"isOffset":false,"isSlot":false,"src":"1925:6:16","valueSize":1},{"declaration":2551,"isOffset":false,"isSlot":false,"src":"1909:8:16","valueSize":1}],"id":2554,"nodeType":"InlineAssembly","src":"1622:334:16"}]},"documentation":{"id":2541,"nodeType":"StructuredDocumentation","src":"1186:304:16","text":"@notice Send an L2Log to L1.\n @param _isService The `isService` flag.\n @param _key The `key` part of the L2Log.\n @param _value The `value` part of the L2Log.\n @dev The meaning of all these parameters is context-dependent, but they\n have no intrinsic meaning per se."},"id":2556,"implemented":true,"kind":"function","modifiers":[],"name":"toL1","nameLocation":"1504:4:16","nodeType":"FunctionDefinition","parameters":{"id":2548,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2543,"mutability":"mutable","name":"_isService","nameLocation":"1514:10:16","nodeType":"VariableDeclaration","scope":2556,"src":"1509:15:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2542,"name":"bool","nodeType":"ElementaryTypeName","src":"1509:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":2545,"mutability":"mutable","name":"_key","nameLocation":"1534:4:16","nodeType":"VariableDeclaration","scope":2556,"src":"1526:12:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2544,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1526:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2547,"mutability":"mutable","name":"_value","nameLocation":"1548:6:16","nodeType":"VariableDeclaration","scope":2556,"src":"1540:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2546,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1540:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1508:47:16"},"returnParameters":{"id":2549,"nodeType":"ParameterList","parameters":[],"src":"1565:0:16"},"scope":3048,"src":"1495:467:16","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2567,"nodeType":"Block","src":"2278:151:16","statements":[{"assignments":[2563],"declarations":[{"constant":false,"id":2563,"mutability":"mutable","name":"callAddr","nameLocation":"2296:8:16","nodeType":"VariableDeclaration","scope":2567,"src":"2288:16:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2562,"name":"address","nodeType":"ElementaryTypeName","src":"2288:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":2565,"initialValue":{"id":2564,"name":"CODE_ADDRESS_CALL_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3096,"src":"2307:25:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2288:44:16"},{"AST":{"nodeType":"YulBlock","src":"2351:72:16","statements":[{"nodeType":"YulAssignment","src":"2365:48:16","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2384:1:16","type":"","value":"0"},{"name":"callAddr","nodeType":"YulIdentifier","src":"2387:8:16"},{"kind":"number","nodeType":"YulLiteral","src":"2397:1:16","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2400:6:16","type":"","value":"0xFFFF"},{"kind":"number","nodeType":"YulLiteral","src":"2408:1:16","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2411:1:16","type":"","value":"0"}],"functionName":{"name":"staticcall","nodeType":"YulIdentifier","src":"2373:10:16"},"nodeType":"YulFunctionCall","src":"2373:40:16"},"variableNames":[{"name":"addr","nodeType":"YulIdentifier","src":"2365:4:16"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":2560,"isOffset":false,"isSlot":false,"src":"2365:4:16","valueSize":1},{"declaration":2563,"isOffset":false,"isSlot":false,"src":"2387:8:16","valueSize":1}],"id":2566,"nodeType":"InlineAssembly","src":"2342:81:16"}]},"documentation":{"id":2557,"nodeType":"StructuredDocumentation","src":"1968:242:16","text":"@notice Get address of the currently executed code.\n @dev This allows differentiating between `call` and `delegatecall`.\n During the former `this` and `codeAddress` are the same, while\n during the latter they are not."},"id":2568,"implemented":true,"kind":"function","modifiers":[],"name":"getCodeAddress","nameLocation":"2224:14:16","nodeType":"FunctionDefinition","parameters":{"id":2558,"nodeType":"ParameterList","parameters":[],"src":"2238:2:16"},"returnParameters":{"id":2561,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2560,"mutability":"mutable","name":"addr","nameLocation":"2272:4:16","nodeType":"VariableDeclaration","scope":2568,"src":"2264:12:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2559,"name":"address","nodeType":"ElementaryTypeName","src":"2264:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2263:14:16"},"scope":3048,"src":"2215:214:16","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":2577,"nodeType":"Block","src":"2855:165:16","statements":[{"assignments":[2573],"declarations":[{"constant":false,"id":2573,"mutability":"mutable","name":"callAddr","nameLocation":"2873:8:16","nodeType":"VariableDeclaration","scope":2577,"src":"2865:16:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2572,"name":"address","nodeType":"ElementaryTypeName","src":"2865:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":2575,"initialValue":{"id":2574,"name":"LOAD_CALLDATA_INTO_ACTIVE_PTR_CALL_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3305,"src":"2884:42:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2865:61:16"},{"AST":{"nodeType":"YulBlock","src":"2945:69:16","statements":[{"expression":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2974:1:16","type":"","value":"0"},{"name":"callAddr","nodeType":"YulIdentifier","src":"2977:8:16"},{"kind":"number","nodeType":"YulLiteral","src":"2987:1:16","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2990:6:16","type":"","value":"0xFFFF"},{"kind":"number","nodeType":"YulLiteral","src":"2998:1:16","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3001:1:16","type":"","value":"0"}],"functionName":{"name":"staticcall","nodeType":"YulIdentifier","src":"2963:10:16"},"nodeType":"YulFunctionCall","src":"2963:40:16"}],"functionName":{"name":"pop","nodeType":"YulIdentifier","src":"2959:3:16"},"nodeType":"YulFunctionCall","src":"2959:45:16"},"nodeType":"YulExpressionStatement","src":"2959:45:16"}]},"evmVersion":"paris","externalReferences":[{"declaration":2573,"isOffset":false,"isSlot":false,"src":"2977:8:16","valueSize":1}],"id":2576,"nodeType":"InlineAssembly","src":"2936:78:16"}]},"documentation":{"id":2569,"nodeType":"StructuredDocumentation","src":"2435:364:16","text":"@notice Provide a compiler hint, by placing calldata fat pointer into virtual `ACTIVE_PTR`,\n that can be manipulated by `ptr.add`/`ptr.sub`/`ptr.pack`/`ptr.shrink` later.\n @dev This allows making a call by forwarding calldata pointer to the child call.\n It is a much more efficient way to forward calldata, than standard EVM bytes copying."},"id":2578,"implemented":true,"kind":"function","modifiers":[],"name":"loadCalldataIntoActivePtr","nameLocation":"2813:25:16","nodeType":"FunctionDefinition","parameters":{"id":2570,"nodeType":"ParameterList","parameters":[],"src":"2838:2:16"},"returnParameters":{"id":2571,"nodeType":"ParameterList","parameters":[],"src":"2855:0:16"},"scope":3048,"src":"2804:216:16","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":2589,"nodeType":"Block","src":"3448:166:16","statements":[{"assignments":[2585],"declarations":[{"constant":false,"id":2585,"mutability":"mutable","name":"callAddr","nameLocation":"3466:8:16","nodeType":"VariableDeclaration","scope":2589,"src":"3458:16:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2584,"name":"address","nodeType":"ElementaryTypeName","src":"3458:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":2587,"initialValue":{"id":2586,"name":"PTR_PACK_INTO_ACTIVE_CALL_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3349,"src":"3477:33:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3458:52:16"},{"AST":{"nodeType":"YulBlock","src":"3529:79:16","statements":[{"expression":{"arguments":[{"arguments":[{"name":"_farCallAbi","nodeType":"YulIdentifier","src":"3558:11:16"},{"name":"callAddr","nodeType":"YulIdentifier","src":"3571:8:16"},{"kind":"number","nodeType":"YulLiteral","src":"3581:1:16","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3584:6:16","type":"","value":"0xFFFF"},{"kind":"number","nodeType":"YulLiteral","src":"3592:1:16","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3595:1:16","type":"","value":"0"}],"functionName":{"name":"staticcall","nodeType":"YulIdentifier","src":"3547:10:16"},"nodeType":"YulFunctionCall","src":"3547:50:16"}],"functionName":{"name":"pop","nodeType":"YulIdentifier","src":"3543:3:16"},"nodeType":"YulFunctionCall","src":"3543:55:16"},"nodeType":"YulExpressionStatement","src":"3543:55:16"}]},"evmVersion":"paris","externalReferences":[{"declaration":2581,"isOffset":false,"isSlot":false,"src":"3558:11:16","valueSize":1},{"declaration":2585,"isOffset":false,"isSlot":false,"src":"3571:8:16","valueSize":1}],"id":2588,"nodeType":"InlineAssembly","src":"3520:88:16"}]},"documentation":{"id":2579,"nodeType":"StructuredDocumentation","src":"3026:352:16","text":"@notice Compiler simulation of the `ptr.pack` opcode for the virtual `ACTIVE_PTR` pointer.\n @dev Do the concatenation between lowest part of `ACTIVE_PTR` and highest part of `_farCallAbi`\n forming packed fat pointer for a far call or ret ABI when necessary.\n Note: Panics if the lowest 128 bits of `_farCallAbi` are not zeroes."},"id":2590,"implemented":true,"kind":"function","modifiers":[],"name":"ptrPackIntoActivePtr","nameLocation":"3392:20:16","nodeType":"FunctionDefinition","parameters":{"id":2582,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2581,"mutability":"mutable","name":"_farCallAbi","nameLocation":"3421:11:16","nodeType":"VariableDeclaration","scope":2590,"src":"3413:19:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2580,"name":"uint256","nodeType":"ElementaryTypeName","src":"3413:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3412:21:16"},"returnParameters":{"id":2583,"nodeType":"ParameterList","parameters":[],"src":"3448:0:16"},"scope":3048,"src":"3383:231:16","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":2605,"nodeType":"Block","src":"3893:334:16","statements":[{"assignments":[2597],"declarations":[{"constant":false,"id":2597,"mutability":"mutable","name":"callAddr","nameLocation":"3911:8:16","nodeType":"VariableDeclaration","scope":2605,"src":"3903:16:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2596,"name":"address","nodeType":"ElementaryTypeName","src":"3903:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":2599,"initialValue":{"id":2598,"name":"PTR_ADD_INTO_ACTIVE_CALL_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3327,"src":"3922:32:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3903:51:16"},{"assignments":[2601],"declarations":[{"constant":false,"id":2601,"mutability":"mutable","name":"cleanupMask","nameLocation":"3972:11:16","nodeType":"VariableDeclaration","scope":2605,"src":"3964:19:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2600,"name":"uint256","nodeType":"ElementaryTypeName","src":"3964:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2603,"initialValue":{"id":2602,"name":"UINT32_MASK","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2513,"src":"3986:11:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3964:33:16"},{"AST":{"nodeType":"YulBlock","src":"4016:205:16","statements":[{"nodeType":"YulAssignment","src":"4114:34:16","value":{"arguments":[{"name":"_value","nodeType":"YulIdentifier","src":"4128:6:16"},{"name":"cleanupMask","nodeType":"YulIdentifier","src":"4136:11:16"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4124:3:16"},"nodeType":"YulFunctionCall","src":"4124:24:16"},"variableNames":[{"name":"_value","nodeType":"YulIdentifier","src":"4114:6:16"}]},{"expression":{"arguments":[{"arguments":[{"name":"_value","nodeType":"YulIdentifier","src":"4176:6:16"},{"name":"callAddr","nodeType":"YulIdentifier","src":"4184:8:16"},{"kind":"number","nodeType":"YulLiteral","src":"4194:1:16","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4197:6:16","type":"","value":"0xFFFF"},{"kind":"number","nodeType":"YulLiteral","src":"4205:1:16","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4208:1:16","type":"","value":"0"}],"functionName":{"name":"staticcall","nodeType":"YulIdentifier","src":"4165:10:16"},"nodeType":"YulFunctionCall","src":"4165:45:16"}],"functionName":{"name":"pop","nodeType":"YulIdentifier","src":"4161:3:16"},"nodeType":"YulFunctionCall","src":"4161:50:16"},"nodeType":"YulExpressionStatement","src":"4161:50:16"}]},"evmVersion":"paris","externalReferences":[{"declaration":2593,"isOffset":false,"isSlot":false,"src":"4114:6:16","valueSize":1},{"declaration":2593,"isOffset":false,"isSlot":false,"src":"4128:6:16","valueSize":1},{"declaration":2593,"isOffset":false,"isSlot":false,"src":"4176:6:16","valueSize":1},{"declaration":2597,"isOffset":false,"isSlot":false,"src":"4184:8:16","valueSize":1},{"declaration":2601,"isOffset":false,"isSlot":false,"src":"4136:11:16","valueSize":1}],"id":2604,"nodeType":"InlineAssembly","src":"4007:214:16"}]},"documentation":{"id":2591,"nodeType":"StructuredDocumentation","src":"3620:213:16","text":"@notice Compiler simulation of the `ptr.add` opcode for the virtual `ACTIVE_PTR` pointer.\n @dev Transforms `ACTIVE_PTR.offset` into `ACTIVE_PTR.offset + u32(_value)`. If overflow happens then it panics."},"id":2606,"implemented":true,"kind":"function","modifiers":[],"name":"ptrAddIntoActive","nameLocation":"3847:16:16","nodeType":"FunctionDefinition","parameters":{"id":2594,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2593,"mutability":"mutable","name":"_value","nameLocation":"3871:6:16","nodeType":"VariableDeclaration","scope":2606,"src":"3864:13:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2592,"name":"uint32","nodeType":"ElementaryTypeName","src":"3864:6:16","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"3863:15:16"},"returnParameters":{"id":2595,"nodeType":"ParameterList","parameters":[],"src":"3893:0:16"},"scope":3048,"src":"3838:389:16","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":2621,"nodeType":"Block","src":"4515:340:16","statements":[{"assignments":[2613],"declarations":[{"constant":false,"id":2613,"mutability":"mutable","name":"callAddr","nameLocation":"4533:8:16","nodeType":"VariableDeclaration","scope":2621,"src":"4525:16:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2612,"name":"address","nodeType":"ElementaryTypeName","src":"4525:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":2615,"initialValue":{"id":2614,"name":"PTR_SHRINK_INTO_ACTIVE_CALL_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3338,"src":"4544:35:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4525:54:16"},{"assignments":[2617],"declarations":[{"constant":false,"id":2617,"mutability":"mutable","name":"cleanupMask","nameLocation":"4597:11:16","nodeType":"VariableDeclaration","scope":2621,"src":"4589:19:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2616,"name":"uint256","nodeType":"ElementaryTypeName","src":"4589:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2619,"initialValue":{"id":2618,"name":"UINT32_MASK","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2513,"src":"4611:11:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4589:33:16"},{"AST":{"nodeType":"YulBlock","src":"4641:208:16","statements":[{"nodeType":"YulAssignment","src":"4739:36:16","value":{"arguments":[{"name":"_shrink","nodeType":"YulIdentifier","src":"4754:7:16"},{"name":"cleanupMask","nodeType":"YulIdentifier","src":"4763:11:16"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4750:3:16"},"nodeType":"YulFunctionCall","src":"4750:25:16"},"variableNames":[{"name":"_shrink","nodeType":"YulIdentifier","src":"4739:7:16"}]},{"expression":{"arguments":[{"arguments":[{"name":"_shrink","nodeType":"YulIdentifier","src":"4803:7:16"},{"name":"callAddr","nodeType":"YulIdentifier","src":"4812:8:16"},{"kind":"number","nodeType":"YulLiteral","src":"4822:1:16","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4825:6:16","type":"","value":"0xFFFF"},{"kind":"number","nodeType":"YulLiteral","src":"4833:1:16","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4836:1:16","type":"","value":"0"}],"functionName":{"name":"staticcall","nodeType":"YulIdentifier","src":"4792:10:16"},"nodeType":"YulFunctionCall","src":"4792:46:16"}],"functionName":{"name":"pop","nodeType":"YulIdentifier","src":"4788:3:16"},"nodeType":"YulFunctionCall","src":"4788:51:16"},"nodeType":"YulExpressionStatement","src":"4788:51:16"}]},"evmVersion":"paris","externalReferences":[{"declaration":2609,"isOffset":false,"isSlot":false,"src":"4739:7:16","valueSize":1},{"declaration":2609,"isOffset":false,"isSlot":false,"src":"4754:7:16","valueSize":1},{"declaration":2609,"isOffset":false,"isSlot":false,"src":"4803:7:16","valueSize":1},{"declaration":2613,"isOffset":false,"isSlot":false,"src":"4812:8:16","valueSize":1},{"declaration":2617,"isOffset":false,"isSlot":false,"src":"4763:11:16","valueSize":1}],"id":2620,"nodeType":"InlineAssembly","src":"4632:217:16"}]},"documentation":{"id":2607,"nodeType":"StructuredDocumentation","src":"4233:218:16","text":"@notice Compiler simulation of the `ptr.shrink` opcode for the virtual `ACTIVE_PTR` pointer.\n @dev Transforms `ACTIVE_PTR.length` into `ACTIVE_PTR.length - u32(_shrink)`. If underflow happens then it panics."},"id":2622,"implemented":true,"kind":"function","modifiers":[],"name":"ptrShrinkIntoActive","nameLocation":"4465:19:16","nodeType":"FunctionDefinition","parameters":{"id":2610,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2609,"mutability":"mutable","name":"_shrink","nameLocation":"4492:7:16","nodeType":"VariableDeclaration","scope":2622,"src":"4485:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2608,"name":"uint32","nodeType":"ElementaryTypeName","src":"4485:6:16","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"4484:16:16"},"returnParameters":{"id":2611,"nodeType":"ParameterList","parameters":[],"src":"4515:0:16"},"scope":3048,"src":"4456:399:16","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":2678,"nodeType":"Block","src":"5755:281:16","statements":[{"expression":{"id":2640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2638,"name":"rawParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2636,"src":"5765:9:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2639,"name":"_inputMemoryOffset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2625,"src":"5777:18:16","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"5765:30:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2641,"nodeType":"ExpressionStatement","src":"5765:30:16"},{"expression":{"id":2649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2642,"name":"rawParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2636,"src":"5805:9:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"|=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":2645,"name":"_inputMemoryLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2627,"src":"5826:18:16","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"}],"id":2644,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5818:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":2643,"name":"uint256","nodeType":"ElementaryTypeName","src":"5818:7:16","typeDescriptions":{}}},"id":2646,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5818:27:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3332","id":2647,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5849:2:16","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"5818:33:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5805:46:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2650,"nodeType":"ExpressionStatement","src":"5805:46:16"},{"expression":{"id":2658,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2651,"name":"rawParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2636,"src":"5861:9:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"|=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2657,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":2654,"name":"_outputMemoryOffset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2629,"src":"5882:19:16","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"}],"id":2653,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5874:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":2652,"name":"uint256","nodeType":"ElementaryTypeName","src":"5874:7:16","typeDescriptions":{}}},"id":2655,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5874:28:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3634","id":2656,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5906:2:16","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"5874:34:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5861:47:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2659,"nodeType":"ExpressionStatement","src":"5861:47:16"},{"expression":{"id":2667,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2660,"name":"rawParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2636,"src":"5918:9:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"|=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2666,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":2663,"name":"_outputMemoryLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2631,"src":"5939:19:16","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"}],"id":2662,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5931:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":2661,"name":"uint256","nodeType":"ElementaryTypeName","src":"5931:7:16","typeDescriptions":{}}},"id":2664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5931:28:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3936","id":2665,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5963:2:16","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"96"},"src":"5931:34:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5918:47:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2668,"nodeType":"ExpressionStatement","src":"5918:47:16"},{"expression":{"id":2676,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2669,"name":"rawParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2636,"src":"5975:9:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"|=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":2672,"name":"_perPrecompileInterpreted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2633,"src":"5996:25:16","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":2671,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5988:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":2670,"name":"uint256","nodeType":"ElementaryTypeName","src":"5988:7:16","typeDescriptions":{}}},"id":2673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5988:34:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313932","id":2674,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6026:3:16","typeDescriptions":{"typeIdentifier":"t_rational_192_by_1","typeString":"int_const 192"},"value":"192"},"src":"5988:41:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5975:54:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2677,"nodeType":"ExpressionStatement","src":"5975:54:16"}]},"documentation":{"id":2623,"nodeType":"StructuredDocumentation","src":"4861:627:16","text":"@notice packs precompile parameters into one word\n @param _inputMemoryOffset The memory offset in 32-byte words for the input data for calling the precompile.\n @param _inputMemoryLength The length of the input data in words.\n @param _outputMemoryOffset The memory offset in 32-byte words for the output data.\n @param _outputMemoryLength The length of the output data in words.\n @param _perPrecompileInterpreted The constant, the meaning of which is defined separately for\n each precompile. For information, please read the documentation of the precompilecall log in\n the VM."},"id":2679,"implemented":true,"kind":"function","modifiers":[],"name":"packPrecompileParams","nameLocation":"5502:20:16","nodeType":"FunctionDefinition","parameters":{"id":2634,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2625,"mutability":"mutable","name":"_inputMemoryOffset","nameLocation":"5539:18:16","nodeType":"VariableDeclaration","scope":2679,"src":"5532:25:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2624,"name":"uint32","nodeType":"ElementaryTypeName","src":"5532:6:16","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":2627,"mutability":"mutable","name":"_inputMemoryLength","nameLocation":"5574:18:16","nodeType":"VariableDeclaration","scope":2679,"src":"5567:25:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2626,"name":"uint32","nodeType":"ElementaryTypeName","src":"5567:6:16","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":2629,"mutability":"mutable","name":"_outputMemoryOffset","nameLocation":"5609:19:16","nodeType":"VariableDeclaration","scope":2679,"src":"5602:26:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2628,"name":"uint32","nodeType":"ElementaryTypeName","src":"5602:6:16","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":2631,"mutability":"mutable","name":"_outputMemoryLength","nameLocation":"5645:19:16","nodeType":"VariableDeclaration","scope":2679,"src":"5638:26:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2630,"name":"uint32","nodeType":"ElementaryTypeName","src":"5638:6:16","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":2633,"mutability":"mutable","name":"_perPrecompileInterpreted","nameLocation":"5681:25:16","nodeType":"VariableDeclaration","scope":2679,"src":"5674:32:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":2632,"name":"uint64","nodeType":"ElementaryTypeName","src":"5674:6:16","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"5522:190:16"},"returnParameters":{"id":2637,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2636,"mutability":"mutable","name":"rawParams","nameLocation":"5744:9:16","nodeType":"VariableDeclaration","scope":2679,"src":"5736:17:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2635,"name":"uint256","nodeType":"ElementaryTypeName","src":"5736:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5735:19:16"},"scope":3048,"src":"5493:543:16","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2705,"nodeType":"Block","src":"6846:550:16","statements":[{"assignments":[2690],"declarations":[{"constant":false,"id":2690,"mutability":"mutable","name":"callAddr","nameLocation":"6864:8:16","nodeType":"VariableDeclaration","scope":2705,"src":"6856:16:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2689,"name":"address","nodeType":"ElementaryTypeName","src":"6856:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":2692,"initialValue":{"id":2691,"name":"PRECOMPILE_CALL_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3107,"src":"6875:23:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6856:42:16"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2697,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":2694,"name":"gasleft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-7,"src":"7072:7:16","typeDescriptions":{"typeIdentifier":"t_function_gasleft_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":2695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7072:9:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":2696,"name":"_gasToBurn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2684,"src":"7085:10:16","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"7072:23:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":2693,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7064:7:16","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":2698,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7064:32:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2699,"nodeType":"ExpressionStatement","src":"7064:32:16"},{"assignments":[2701],"declarations":[{"constant":false,"id":2701,"mutability":"mutable","name":"cleanupMask","nameLocation":"7114:11:16","nodeType":"VariableDeclaration","scope":2705,"src":"7106:19:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2700,"name":"uint256","nodeType":"ElementaryTypeName","src":"7106:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2703,"initialValue":{"id":2702,"name":"UINT32_MASK","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2513,"src":"7128:11:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7106:33:16"},{"AST":{"nodeType":"YulBlock","src":"7158:232:16","statements":[{"nodeType":"YulAssignment","src":"7256:42:16","value":{"arguments":[{"name":"_gasToBurn","nodeType":"YulIdentifier","src":"7274:10:16"},{"name":"cleanupMask","nodeType":"YulIdentifier","src":"7286:11:16"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7270:3:16"},"nodeType":"YulFunctionCall","src":"7270:28:16"},"variableNames":[{"name":"_gasToBurn","nodeType":"YulIdentifier","src":"7256:10:16"}]},{"nodeType":"YulAssignment","src":"7311:69:16","value":{"arguments":[{"name":"_rawParams","nodeType":"YulIdentifier","src":"7333:10:16"},{"name":"callAddr","nodeType":"YulIdentifier","src":"7345:8:16"},{"name":"_gasToBurn","nodeType":"YulIdentifier","src":"7355:10:16"},{"kind":"number","nodeType":"YulLiteral","src":"7367:6:16","type":"","value":"0xFFFF"},{"kind":"number","nodeType":"YulLiteral","src":"7375:1:16","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7378:1:16","type":"","value":"0"}],"functionName":{"name":"staticcall","nodeType":"YulIdentifier","src":"7322:10:16"},"nodeType":"YulFunctionCall","src":"7322:58:16"},"variableNames":[{"name":"success","nodeType":"YulIdentifier","src":"7311:7:16"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":2684,"isOffset":false,"isSlot":false,"src":"7256:10:16","valueSize":1},{"declaration":2684,"isOffset":false,"isSlot":false,"src":"7274:10:16","valueSize":1},{"declaration":2684,"isOffset":false,"isSlot":false,"src":"7355:10:16","valueSize":1},{"declaration":2682,"isOffset":false,"isSlot":false,"src":"7333:10:16","valueSize":1},{"declaration":2690,"isOffset":false,"isSlot":false,"src":"7345:8:16","valueSize":1},{"declaration":2701,"isOffset":false,"isSlot":false,"src":"7286:11:16","valueSize":1},{"declaration":2687,"isOffset":false,"isSlot":false,"src":"7311:7:16","valueSize":1}],"id":2704,"nodeType":"InlineAssembly","src":"7149:241:16"}]},"documentation":{"id":2680,"nodeType":"StructuredDocumentation","src":"6042:699:16","text":"@notice Call precompile with given parameters.\n @param _rawParams The packed precompile params. They can be retrieved by\n the `packPrecompileParams` method.\n @param _gasToBurn The number of gas to burn during this call.\n @return success Whether the call was successful.\n @dev The list of currently available precompiles sha256, keccak256, ecrecover.\n NOTE: The precompile type depends on `this` which calls precompile, which means that only\n system contracts corresponding to the list of precompiles above can do `precompileCall`.\n @dev If used not in the `sha256`, `keccak256` or `ecrecover` contracts, it will just burn the gas provided."},"id":2706,"implemented":true,"kind":"function","modifiers":[],"name":"precompileCall","nameLocation":"6755:14:16","nodeType":"FunctionDefinition","parameters":{"id":2685,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2682,"mutability":"mutable","name":"_rawParams","nameLocation":"6778:10:16","nodeType":"VariableDeclaration","scope":2706,"src":"6770:18:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2681,"name":"uint256","nodeType":"ElementaryTypeName","src":"6770:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2684,"mutability":"mutable","name":"_gasToBurn","nameLocation":"6797:10:16","nodeType":"VariableDeclaration","scope":2706,"src":"6790:17:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2683,"name":"uint32","nodeType":"ElementaryTypeName","src":"6790:6:16","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"6769:39:16"},"returnParameters":{"id":2688,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2687,"mutability":"mutable","name":"success","nameLocation":"6837:7:16","nodeType":"VariableDeclaration","scope":2706,"src":"6832:12:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2686,"name":"bool","nodeType":"ElementaryTypeName","src":"6832:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6831:14:16"},"scope":3048,"src":"6746:650:16","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":2723,"nodeType":"Block","src":"7698:336:16","statements":[{"assignments":[2715],"declarations":[{"constant":false,"id":2715,"mutability":"mutable","name":"cleanupMask","nameLocation":"7716:11:16","nodeType":"VariableDeclaration","scope":2723,"src":"7708:19:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2714,"name":"uint256","nodeType":"ElementaryTypeName","src":"7708:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2717,"initialValue":{"id":2716,"name":"UINT128_MASK","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2516,"src":"7730:12:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7708:34:16"},{"assignments":[2719],"declarations":[{"constant":false,"id":2719,"mutability":"mutable","name":"callAddr","nameLocation":"7760:8:16","nodeType":"VariableDeclaration","scope":2723,"src":"7752:16:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2718,"name":"address","nodeType":"ElementaryTypeName","src":"7752:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":2721,"initialValue":{"id":2720,"name":"SET_CONTEXT_VALUE_CALL_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3217,"src":"7771:30:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"7752:49:16"},{"AST":{"nodeType":"YulBlock","src":"7820:208:16","statements":[{"nodeType":"YulAssignment","src":"7918:34:16","value":{"arguments":[{"name":"_value","nodeType":"YulIdentifier","src":"7932:6:16"},{"name":"cleanupMask","nodeType":"YulIdentifier","src":"7940:11:16"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7928:3:16"},"nodeType":"YulFunctionCall","src":"7928:24:16"},"variableNames":[{"name":"_value","nodeType":"YulIdentifier","src":"7918:6:16"}]},{"nodeType":"YulAssignment","src":"7965:53:16","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7981:1:16","type":"","value":"0"},{"name":"callAddr","nodeType":"YulIdentifier","src":"7984:8:16"},{"name":"_value","nodeType":"YulIdentifier","src":"7994:6:16"},{"kind":"number","nodeType":"YulLiteral","src":"8002:1:16","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8005:6:16","type":"","value":"0xFFFF"},{"kind":"number","nodeType":"YulLiteral","src":"8013:1:16","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8016:1:16","type":"","value":"0"}],"functionName":{"name":"call","nodeType":"YulIdentifier","src":"7976:4:16"},"nodeType":"YulFunctionCall","src":"7976:42:16"},"variableNames":[{"name":"success","nodeType":"YulIdentifier","src":"7965:7:16"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":2709,"isOffset":false,"isSlot":false,"src":"7918:6:16","valueSize":1},{"declaration":2709,"isOffset":false,"isSlot":false,"src":"7932:6:16","valueSize":1},{"declaration":2709,"isOffset":false,"isSlot":false,"src":"7994:6:16","valueSize":1},{"declaration":2719,"isOffset":false,"isSlot":false,"src":"7984:8:16","valueSize":1},{"declaration":2715,"isOffset":false,"isSlot":false,"src":"7940:11:16","valueSize":1},{"declaration":2712,"isOffset":false,"isSlot":false,"src":"7965:7:16","valueSize":1}],"id":2722,"nodeType":"InlineAssembly","src":"7811:217:16"}]},"documentation":{"id":2707,"nodeType":"StructuredDocumentation","src":"7402:211:16","text":"@notice Set `msg.value` to next far call.\n @param _value The msg.value that will be used for the *next* call.\n @dev If called not in kernel mode, it will result in a revert (enforced by the VM)"},"id":2724,"implemented":true,"kind":"function","modifiers":[],"name":"setValueForNextFarCall","nameLocation":"7627:22:16","nodeType":"FunctionDefinition","parameters":{"id":2710,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2709,"mutability":"mutable","name":"_value","nameLocation":"7658:6:16","nodeType":"VariableDeclaration","scope":2724,"src":"7650:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":2708,"name":"uint128","nodeType":"ElementaryTypeName","src":"7650:7:16","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"7649:16:16"},"returnParameters":{"id":2713,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2712,"mutability":"mutable","name":"success","nameLocation":"7689:7:16","nodeType":"VariableDeclaration","scope":2724,"src":"7684:12:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2711,"name":"bool","nodeType":"ElementaryTypeName","src":"7684:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7683:14:16"},"scope":3048,"src":"7618:416:16","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2737,"nodeType":"Block","src":"8261:159:16","statements":[{"assignments":[2733],"declarations":[{"constant":false,"id":2733,"mutability":"mutable","name":"callAddr","nameLocation":"8279:8:16","nodeType":"VariableDeclaration","scope":2737,"src":"8271:16:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2732,"name":"address","nodeType":"ElementaryTypeName","src":"8271:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":2735,"initialValue":{"id":2734,"name":"EVENT_INITIALIZE_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3283,"src":"8290:24:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"8271:43:16"},{"AST":{"nodeType":"YulBlock","src":"8333:81:16","statements":[{"expression":{"arguments":[{"arguments":[{"name":"initializer","nodeType":"YulIdentifier","src":"8356:11:16"},{"name":"callAddr","nodeType":"YulIdentifier","src":"8369:8:16"},{"name":"value1","nodeType":"YulIdentifier","src":"8379:6:16"},{"kind":"number","nodeType":"YulLiteral","src":"8387:1:16","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8390:6:16","type":"","value":"0xFFFF"},{"kind":"number","nodeType":"YulLiteral","src":"8398:1:16","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8401:1:16","type":"","value":"0"}],"functionName":{"name":"call","nodeType":"YulIdentifier","src":"8351:4:16"},"nodeType":"YulFunctionCall","src":"8351:52:16"}],"functionName":{"name":"pop","nodeType":"YulIdentifier","src":"8347:3:16"},"nodeType":"YulFunctionCall","src":"8347:57:16"},"nodeType":"YulExpressionStatement","src":"8347:57:16"}]},"evmVersion":"paris","externalReferences":[{"declaration":2733,"isOffset":false,"isSlot":false,"src":"8369:8:16","valueSize":1},{"declaration":2727,"isOffset":false,"isSlot":false,"src":"8356:11:16","valueSize":1},{"declaration":2729,"isOffset":false,"isSlot":false,"src":"8379:6:16","valueSize":1}],"id":2736,"nodeType":"InlineAssembly","src":"8324:90:16"}]},"documentation":{"id":2725,"nodeType":"StructuredDocumentation","src":"8040:145:16","text":"@notice Initialize a new event.\n @param initializer The event initializing value.\n @param value1 The first topic or data chunk."},"id":2738,"implemented":true,"kind":"function","modifiers":[],"name":"eventInitialize","nameLocation":"8199:15:16","nodeType":"FunctionDefinition","parameters":{"id":2730,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2727,"mutability":"mutable","name":"initializer","nameLocation":"8223:11:16","nodeType":"VariableDeclaration","scope":2738,"src":"8215:19:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2726,"name":"uint256","nodeType":"ElementaryTypeName","src":"8215:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2729,"mutability":"mutable","name":"value1","nameLocation":"8244:6:16","nodeType":"VariableDeclaration","scope":2738,"src":"8236:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2728,"name":"uint256","nodeType":"ElementaryTypeName","src":"8236:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8214:37:16"},"returnParameters":{"id":2731,"nodeType":"ParameterList","parameters":[],"src":"8261:0:16"},"scope":3048,"src":"8190:230:16","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2751,"nodeType":"Block","src":"8661:149:16","statements":[{"assignments":[2747],"declarations":[{"constant":false,"id":2747,"mutability":"mutable","name":"callAddr","nameLocation":"8679:8:16","nodeType":"VariableDeclaration","scope":2751,"src":"8671:16:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2746,"name":"address","nodeType":"ElementaryTypeName","src":"8671:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":2749,"initialValue":{"id":2748,"name":"EVENT_WRITE_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3294,"src":"8690:19:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"8671:38:16"},{"AST":{"nodeType":"YulBlock","src":"8728:76:16","statements":[{"expression":{"arguments":[{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"8751:6:16"},{"name":"callAddr","nodeType":"YulIdentifier","src":"8759:8:16"},{"name":"value2","nodeType":"YulIdentifier","src":"8769:6:16"},{"kind":"number","nodeType":"YulLiteral","src":"8777:1:16","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8780:6:16","type":"","value":"0xFFFF"},{"kind":"number","nodeType":"YulLiteral","src":"8788:1:16","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8791:1:16","type":"","value":"0"}],"functionName":{"name":"call","nodeType":"YulIdentifier","src":"8746:4:16"},"nodeType":"YulFunctionCall","src":"8746:47:16"}],"functionName":{"name":"pop","nodeType":"YulIdentifier","src":"8742:3:16"},"nodeType":"YulFunctionCall","src":"8742:52:16"},"nodeType":"YulExpressionStatement","src":"8742:52:16"}]},"evmVersion":"paris","externalReferences":[{"declaration":2747,"isOffset":false,"isSlot":false,"src":"8759:8:16","valueSize":1},{"declaration":2741,"isOffset":false,"isSlot":false,"src":"8751:6:16","valueSize":1},{"declaration":2743,"isOffset":false,"isSlot":false,"src":"8769:6:16","valueSize":1}],"id":2750,"nodeType":"InlineAssembly","src":"8719:85:16"}]},"documentation":{"id":2739,"nodeType":"StructuredDocumentation","src":"8426:169:16","text":"@notice Continue writing the previously initialized event.\n @param value1 The first topic or data chunk.\n @param value2 The second topic or data chunk."},"id":2752,"implemented":true,"kind":"function","modifiers":[],"name":"eventWrite","nameLocation":"8609:10:16","nodeType":"FunctionDefinition","parameters":{"id":2744,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2741,"mutability":"mutable","name":"value1","nameLocation":"8628:6:16","nodeType":"VariableDeclaration","scope":2752,"src":"8620:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2740,"name":"uint256","nodeType":"ElementaryTypeName","src":"8620:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2743,"mutability":"mutable","name":"value2","nameLocation":"8644:6:16","nodeType":"VariableDeclaration","scope":2752,"src":"8636:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2742,"name":"uint256","nodeType":"ElementaryTypeName","src":"8636:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8619:32:16"},"returnParameters":{"id":2745,"nodeType":"ParameterList","parameters":[],"src":"8661:0:16"},"scope":3048,"src":"8600:210:16","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2763,"nodeType":"Block","src":"9231:143:16","statements":[{"assignments":[2759],"declarations":[{"constant":false,"id":2759,"mutability":"mutable","name":"callAddr","nameLocation":"9249:8:16","nodeType":"VariableDeclaration","scope":2763,"src":"9241:16:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2758,"name":"address","nodeType":"ElementaryTypeName","src":"9241:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":2761,"initialValue":{"id":2760,"name":"META_CALL_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3118,"src":"9260:17:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"9241:36:16"},{"AST":{"nodeType":"YulBlock","src":"9296:72:16","statements":[{"nodeType":"YulAssignment","src":"9310:48:16","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9329:1:16","type":"","value":"0"},{"name":"callAddr","nodeType":"YulIdentifier","src":"9332:8:16"},{"kind":"number","nodeType":"YulLiteral","src":"9342:1:16","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9345:6:16","type":"","value":"0xFFFF"},{"kind":"number","nodeType":"YulLiteral","src":"9353:1:16","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9356:1:16","type":"","value":"0"}],"functionName":{"name":"staticcall","nodeType":"YulIdentifier","src":"9318:10:16"},"nodeType":"YulFunctionCall","src":"9318:40:16"},"variableNames":[{"name":"meta","nodeType":"YulIdentifier","src":"9310:4:16"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":2759,"isOffset":false,"isSlot":false,"src":"9332:8:16","valueSize":1},{"declaration":2756,"isOffset":false,"isSlot":false,"src":"9310:4:16","valueSize":1}],"id":2762,"nodeType":"InlineAssembly","src":"9287:81:16"}]},"documentation":{"id":2753,"nodeType":"StructuredDocumentation","src":"8816:343:16","text":"@notice Get the packed representation of the `ZkSyncMeta` from the current context.\n @return meta The packed representation of the ZkSyncMeta.\n @dev The fields in ZkSyncMeta are NOT tightly packed, i.e. there is a special rule on how\n they are packed. For more information, please read the documentation on ZkSyncMeta."},"id":2764,"implemented":true,"kind":"function","modifiers":[],"name":"getZkSyncMetaBytes","nameLocation":"9173:18:16","nodeType":"FunctionDefinition","parameters":{"id":2754,"nodeType":"ParameterList","parameters":[],"src":"9191:2:16"},"returnParameters":{"id":2757,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2756,"mutability":"mutable","name":"meta","nameLocation":"9225:4:16","nodeType":"VariableDeclaration","scope":2764,"src":"9217:12:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2755,"name":"uint256","nodeType":"ElementaryTypeName","src":"9217:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9216:14:16"},"scope":3048,"src":"9164:210:16","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":2798,"nodeType":"Block","src":"9778:210:16","statements":[{"assignments":[2777],"declarations":[{"constant":false,"id":2777,"mutability":"mutable","name":"shifted","nameLocation":"9855:7:16","nodeType":"VariableDeclaration","scope":2798,"src":"9847:15:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2776,"name":"uint256","nodeType":"ElementaryTypeName","src":"9847:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2787,"initialValue":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2778,"name":"meta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2767,"src":"9866:4:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2783,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2781,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"323536","id":2779,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9875:3:16","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"value":"256"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":2780,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2771,"src":"9881:4:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9875:10:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":2782,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2769,"src":"9888:6:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9875:19:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2784,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9874:21:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9866:29:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2786,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9865:31:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9847:49:16"},{"expression":{"id":2796,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2788,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2774,"src":"9947:6:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2794,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2789,"name":"shifted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2777,"src":"9957:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2792,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"323536","id":2790,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9969:3:16","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"value":"256"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":2791,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2771,"src":"9975:4:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9969:10:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2793,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9968:12:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9957:23:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2795,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9956:25:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9947:34:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2797,"nodeType":"ExpressionStatement","src":"9947:34:16"}]},"documentation":{"id":2765,"nodeType":"StructuredDocumentation","src":"9380:279:16","text":"@notice Returns the bits [offset..offset+size-1] of the meta.\n @param meta Packed representation of the ZkSyncMeta.\n @param offset The offset of the bits.\n @param size The size of the extracted number in bits.\n @return result The extracted number."},"id":2799,"implemented":true,"kind":"function","modifiers":[],"name":"extractNumberFromMeta","nameLocation":"9673:21:16","nodeType":"FunctionDefinition","parameters":{"id":2772,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2767,"mutability":"mutable","name":"meta","nameLocation":"9703:4:16","nodeType":"VariableDeclaration","scope":2799,"src":"9695:12:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2766,"name":"uint256","nodeType":"ElementaryTypeName","src":"9695:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2769,"mutability":"mutable","name":"offset","nameLocation":"9717:6:16","nodeType":"VariableDeclaration","scope":2799,"src":"9709:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2768,"name":"uint256","nodeType":"ElementaryTypeName","src":"9709:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2771,"mutability":"mutable","name":"size","nameLocation":"9733:4:16","nodeType":"VariableDeclaration","scope":2799,"src":"9725:12:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2770,"name":"uint256","nodeType":"ElementaryTypeName","src":"9725:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9694:44:16"},"returnParameters":{"id":2775,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2774,"mutability":"mutable","name":"result","nameLocation":"9770:6:16","nodeType":"VariableDeclaration","scope":2799,"src":"9762:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2773,"name":"uint256","nodeType":"ElementaryTypeName","src":"9762:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9761:16:16"},"scope":3048,"src":"9664:324:16","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2818,"nodeType":"Block","src":"10382:110:16","statements":[{"expression":{"id":2816,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2807,"name":"gasPerPubdataByte","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2805,"src":"10392:17:16","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":2811,"name":"meta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2802,"src":"10441:4:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2812,"name":"META_GAS_PER_PUBDATA_BYTE_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3376,"src":"10447:32:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"3332","id":2813,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10481:2:16","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"}],"id":2810,"name":"extractNumberFromMeta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2799,"src":"10419:21:16","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":2814,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10419:65:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2809,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10412:6:16","typeDescriptions":{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"},"typeName":{"id":2808,"name":"uint32","nodeType":"ElementaryTypeName","src":"10412:6:16","typeDescriptions":{}}},"id":2815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10412:73:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"10392:93:16","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"id":2817,"nodeType":"ExpressionStatement","src":"10392:93:16"}]},"documentation":{"id":2800,"nodeType":"StructuredDocumentation","src":"9994:282:16","text":"@notice Given the packed representation of `ZkSyncMeta`, retrieves the number of gas\n that a single byte sent to L1 as pubdata costs.\n @param meta Packed representation of the ZkSyncMeta.\n @return gasPerPubdataByte The current price in gas per pubdata byte."},"id":2819,"implemented":true,"kind":"function","modifiers":[],"name":"getGasPerPubdataByteFromMeta","nameLocation":"10290:28:16","nodeType":"FunctionDefinition","parameters":{"id":2803,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2802,"mutability":"mutable","name":"meta","nameLocation":"10327:4:16","nodeType":"VariableDeclaration","scope":2819,"src":"10319:12:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2801,"name":"uint256","nodeType":"ElementaryTypeName","src":"10319:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10318:14:16"},"returnParameters":{"id":2806,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2805,"mutability":"mutable","name":"gasPerPubdataByte","nameLocation":"10363:17:16","nodeType":"VariableDeclaration","scope":2819,"src":"10356:24:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2804,"name":"uint32","nodeType":"ElementaryTypeName","src":"10356:6:16","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"10355:26:16"},"scope":3048,"src":"10281:211:16","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2838,"nodeType":"Block","src":"10970:90:16","statements":[{"expression":{"id":2836,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2827,"name":"heapSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2825,"src":"10980:8:16","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":2831,"name":"meta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2822,"src":"11020:4:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2832,"name":"META_HEAP_SIZE_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3381,"src":"11026:21:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"3332","id":2833,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11049:2:16","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"}],"id":2830,"name":"extractNumberFromMeta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2799,"src":"10998:21:16","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":2834,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10998:54:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2829,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10991:6:16","typeDescriptions":{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"},"typeName":{"id":2828,"name":"uint32","nodeType":"ElementaryTypeName","src":"10991:6:16","typeDescriptions":{}}},"id":2835,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10991:62:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"10980:73:16","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"id":2837,"nodeType":"ExpressionStatement","src":"10980:73:16"}]},"documentation":{"id":2820,"nodeType":"StructuredDocumentation","src":"10498:384:16","text":"@notice Given the packed representation of `ZkSyncMeta`, retrieves the number of the current size\n of the heap in bytes.\n @param meta Packed representation of the ZkSyncMeta.\n @return heapSize The size of the memory in bytes byte.\n @dev The following expression: getHeapSizeFromMeta(getZkSyncMetaBytes()) is\n equivalent to the MSIZE in Solidity."},"id":2839,"implemented":true,"kind":"function","modifiers":[],"name":"getHeapSizeFromMeta","nameLocation":"10896:19:16","nodeType":"FunctionDefinition","parameters":{"id":2823,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2822,"mutability":"mutable","name":"meta","nameLocation":"10924:4:16","nodeType":"VariableDeclaration","scope":2839,"src":"10916:12:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2821,"name":"uint256","nodeType":"ElementaryTypeName","src":"10916:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10915:14:16"},"returnParameters":{"id":2826,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2825,"mutability":"mutable","name":"heapSize","nameLocation":"10960:8:16","nodeType":"VariableDeclaration","scope":2839,"src":"10953:15:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2824,"name":"uint32","nodeType":"ElementaryTypeName","src":"10953:6:16","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"10952:17:16"},"scope":3048,"src":"10887:173:16","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2858,"nodeType":"Block","src":"11514:97:16","statements":[{"expression":{"id":2856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2847,"name":"auxHeapSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2845,"src":"11524:11:16","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":2851,"name":"meta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2842,"src":"11567:4:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2852,"name":"META_AUX_HEAP_SIZE_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3386,"src":"11573:25:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"3332","id":2853,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11600:2:16","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"}],"id":2850,"name":"extractNumberFromMeta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2799,"src":"11545:21:16","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":2854,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11545:58:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2849,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11538:6:16","typeDescriptions":{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"},"typeName":{"id":2848,"name":"uint32","nodeType":"ElementaryTypeName","src":"11538:6:16","typeDescriptions":{}}},"id":2855,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11538:66:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"11524:80:16","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"id":2857,"nodeType":"ExpressionStatement","src":"11524:80:16"}]},"documentation":{"id":2840,"nodeType":"StructuredDocumentation","src":"11066:354:16","text":"@notice Given the packed representation of `ZkSyncMeta`, retrieves the number of the current size\n of the auxilary heap in bytes.\n @param meta Packed representation of the ZkSyncMeta.\n @return auxHeapSize The size of the auxilary memory in bytes byte.\n @dev You can read more on auxilary memory in the VM1.2 documentation."},"id":2859,"implemented":true,"kind":"function","modifiers":[],"name":"getAuxHeapSizeFromMeta","nameLocation":"11434:22:16","nodeType":"FunctionDefinition","parameters":{"id":2843,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2842,"mutability":"mutable","name":"meta","nameLocation":"11465:4:16","nodeType":"VariableDeclaration","scope":2859,"src":"11457:12:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2841,"name":"uint256","nodeType":"ElementaryTypeName","src":"11457:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11456:14:16"},"returnParameters":{"id":2846,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2845,"mutability":"mutable","name":"auxHeapSize","nameLocation":"11501:11:16","nodeType":"VariableDeclaration","scope":2859,"src":"11494:18:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2844,"name":"uint32","nodeType":"ElementaryTypeName","src":"11494:6:16","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"11493:20:16"},"scope":3048,"src":"11425:186:16","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2878,"nodeType":"Block","src":"11964:86:16","statements":[{"expression":{"id":2876,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2867,"name":"shardId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2865,"src":"11974:7:16","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":2871,"name":"meta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2862,"src":"12012:4:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2872,"name":"META_SHARD_ID_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3391,"src":"12018:20:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"38","id":2873,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12040:1:16","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"}],"id":2870,"name":"extractNumberFromMeta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2799,"src":"11990:21:16","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":2874,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11990:52:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2869,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11984:5:16","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":2868,"name":"uint8","nodeType":"ElementaryTypeName","src":"11984:5:16","typeDescriptions":{}}},"id":2875,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11984:59:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"11974:69:16","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":2877,"nodeType":"ExpressionStatement","src":"11974:69:16"}]},"documentation":{"id":2860,"nodeType":"StructuredDocumentation","src":"11617:262:16","text":"@notice Given the packed representation of `ZkSyncMeta`, retrieves the shardId of `this`.\n @param meta Packed representation of the ZkSyncMeta.\n @return shardId The shardId of `this`.\n @dev Currently only shard 0 (zkRollup) is supported."},"id":2879,"implemented":true,"kind":"function","modifiers":[],"name":"getShardIdFromMeta","nameLocation":"11893:18:16","nodeType":"FunctionDefinition","parameters":{"id":2863,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2862,"mutability":"mutable","name":"meta","nameLocation":"11920:4:16","nodeType":"VariableDeclaration","scope":2879,"src":"11912:12:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2861,"name":"uint256","nodeType":"ElementaryTypeName","src":"11912:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11911:14:16"},"returnParameters":{"id":2866,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2865,"mutability":"mutable","name":"shardId","nameLocation":"11955:7:16","nodeType":"VariableDeclaration","scope":2879,"src":"11949:13:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":2864,"name":"uint8","nodeType":"ElementaryTypeName","src":"11949:5:16","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"11948:15:16"},"scope":3048,"src":"11884:166:16","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2898,"nodeType":"Block","src":"12445:99:16","statements":[{"expression":{"id":2896,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2887,"name":"callerShardId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2885,"src":"12455:13:16","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":2891,"name":"meta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2882,"src":"12499:4:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2892,"name":"META_CALLER_SHARD_ID_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3396,"src":"12505:27:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"38","id":2893,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12534:1:16","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"}],"id":2890,"name":"extractNumberFromMeta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2799,"src":"12477:21:16","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":2894,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12477:59:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2889,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12471:5:16","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":2888,"name":"uint8","nodeType":"ElementaryTypeName","src":"12471:5:16","typeDescriptions":{}}},"id":2895,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12471:66:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"12455:82:16","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":2897,"nodeType":"ExpressionStatement","src":"12455:82:16"}]},"documentation":{"id":2880,"nodeType":"StructuredDocumentation","src":"12056:292:16","text":"@notice Given the packed representation of `ZkSyncMeta`, retrieves the shardId of\n the msg.sender.\n @param meta Packed representation of the ZkSyncMeta.\n @return callerShardId The shardId of the msg.sender.\n @dev Currently only shard 0 (zkRollup) is supported."},"id":2899,"implemented":true,"kind":"function","modifiers":[],"name":"getCallerShardIdFromMeta","nameLocation":"12362:24:16","nodeType":"FunctionDefinition","parameters":{"id":2883,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2882,"mutability":"mutable","name":"meta","nameLocation":"12395:4:16","nodeType":"VariableDeclaration","scope":2899,"src":"12387:12:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2881,"name":"uint256","nodeType":"ElementaryTypeName","src":"12387:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12386:14:16"},"returnParameters":{"id":2886,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2885,"mutability":"mutable","name":"callerShardId","nameLocation":"12430:13:16","nodeType":"VariableDeclaration","scope":2899,"src":"12424:19:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":2884,"name":"uint8","nodeType":"ElementaryTypeName","src":"12424:5:16","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"12423:21:16"},"scope":3048,"src":"12353:191:16","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2918,"nodeType":"Block","src":"12959:95:16","statements":[{"expression":{"id":2916,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2907,"name":"codeShardId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2905,"src":"12969:11:16","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":2911,"name":"meta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2902,"src":"13011:4:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2912,"name":"META_CODE_SHARD_ID_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3401,"src":"13017:25:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"38","id":2913,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13044:1:16","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"}],"id":2910,"name":"extractNumberFromMeta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2799,"src":"12989:21:16","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":2914,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12989:57:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2909,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12983:5:16","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":2908,"name":"uint8","nodeType":"ElementaryTypeName","src":"12983:5:16","typeDescriptions":{}}},"id":2915,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12983:64:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"12969:78:16","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":2917,"nodeType":"ExpressionStatement","src":"12969:78:16"}]},"documentation":{"id":2900,"nodeType":"StructuredDocumentation","src":"12550:316:16","text":"@notice Given the packed representation of `ZkSyncMeta`, retrieves the shardId of\n the currently executed code.\n @param meta Packed representation of the ZkSyncMeta.\n @return codeShardId The shardId of the currently executed code.\n @dev Currently only shard 0 (zkRollup) is supported."},"id":2919,"implemented":true,"kind":"function","modifiers":[],"name":"getCodeShardIdFromMeta","nameLocation":"12880:22:16","nodeType":"FunctionDefinition","parameters":{"id":2903,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2902,"mutability":"mutable","name":"meta","nameLocation":"12911:4:16","nodeType":"VariableDeclaration","scope":2919,"src":"12903:12:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2901,"name":"uint256","nodeType":"ElementaryTypeName","src":"12903:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12902:14:16"},"returnParameters":{"id":2906,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2905,"mutability":"mutable","name":"codeShardId","nameLocation":"12946:11:16","nodeType":"VariableDeclaration","scope":2919,"src":"12940:17:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":2904,"name":"uint8","nodeType":"ElementaryTypeName","src":"12940:5:16","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"12939:19:16"},"scope":3048,"src":"12871:183:16","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2963,"nodeType":"Block","src":"13250:318:16","statements":[{"assignments":[2927],"declarations":[{"constant":false,"id":2927,"mutability":"mutable","name":"metaPacked","nameLocation":"13268:10:16","nodeType":"VariableDeclaration","scope":2963,"src":"13260:18:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2926,"name":"uint256","nodeType":"ElementaryTypeName","src":"13260:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2930,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":2928,"name":"getZkSyncMetaBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2764,"src":"13281:18:16","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":2929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13281:20:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13260:41:16"},{"expression":{"id":2937,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":2931,"name":"meta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2924,"src":"13311:4:16","typeDescriptions":{"typeIdentifier":"t_struct$_ZkSyncMeta_$2533_memory_ptr","typeString":"struct ZkSyncMeta memory"}},"id":2933,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"13316:17:16","memberName":"gasPerPubdataByte","nodeType":"MemberAccess","referencedDeclaration":2522,"src":"13311:22:16","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":2935,"name":"metaPacked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2927,"src":"13365:10:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2934,"name":"getGasPerPubdataByteFromMeta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2819,"src":"13336:28:16","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint32_$","typeString":"function (uint256) pure returns (uint32)"}},"id":2936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13336:40:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"13311:65:16","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"id":2938,"nodeType":"ExpressionStatement","src":"13311:65:16"},{"expression":{"id":2945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":2939,"name":"meta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2924,"src":"13386:4:16","typeDescriptions":{"typeIdentifier":"t_struct$_ZkSyncMeta_$2533_memory_ptr","typeString":"struct ZkSyncMeta memory"}},"id":2941,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"13391:7:16","memberName":"shardId","nodeType":"MemberAccess","referencedDeclaration":2528,"src":"13386:12:16","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":2943,"name":"metaPacked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2927,"src":"13420:10:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2942,"name":"getShardIdFromMeta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2879,"src":"13401:18:16","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint8_$","typeString":"function (uint256) pure returns (uint8)"}},"id":2944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13401:30:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"13386:45:16","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":2946,"nodeType":"ExpressionStatement","src":"13386:45:16"},{"expression":{"id":2953,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":2947,"name":"meta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2924,"src":"13441:4:16","typeDescriptions":{"typeIdentifier":"t_struct$_ZkSyncMeta_$2533_memory_ptr","typeString":"struct ZkSyncMeta memory"}},"id":2949,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"13446:13:16","memberName":"callerShardId","nodeType":"MemberAccess","referencedDeclaration":2530,"src":"13441:18:16","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":2951,"name":"metaPacked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2927,"src":"13487:10:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2950,"name":"getCallerShardIdFromMeta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2899,"src":"13462:24:16","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint8_$","typeString":"function (uint256) pure returns (uint8)"}},"id":2952,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13462:36:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"13441:57:16","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":2954,"nodeType":"ExpressionStatement","src":"13441:57:16"},{"expression":{"id":2961,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":2955,"name":"meta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2924,"src":"13508:4:16","typeDescriptions":{"typeIdentifier":"t_struct$_ZkSyncMeta_$2533_memory_ptr","typeString":"struct ZkSyncMeta memory"}},"id":2957,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"13513:11:16","memberName":"codeShardId","nodeType":"MemberAccess","referencedDeclaration":2532,"src":"13508:16:16","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":2959,"name":"metaPacked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2927,"src":"13550:10:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2958,"name":"getCodeShardIdFromMeta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2919,"src":"13527:22:16","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint8_$","typeString":"function (uint256) pure returns (uint8)"}},"id":2960,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13527:34:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"13508:53:16","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":2962,"nodeType":"ExpressionStatement","src":"13508:53:16"}]},"documentation":{"id":2920,"nodeType":"StructuredDocumentation","src":"13060:113:16","text":"@notice Retrieves the ZkSyncMeta structure.\n @return meta The ZkSyncMeta execution context parameters."},"id":2964,"implemented":true,"kind":"function","modifiers":[],"name":"getZkSyncMeta","nameLocation":"13187:13:16","nodeType":"FunctionDefinition","parameters":{"id":2921,"nodeType":"ParameterList","parameters":[],"src":"13200:2:16"},"returnParameters":{"id":2925,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2924,"mutability":"mutable","name":"meta","nameLocation":"13244:4:16","nodeType":"VariableDeclaration","scope":2964,"src":"13226:22:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ZkSyncMeta_$2533_memory_ptr","typeString":"struct ZkSyncMeta"},"typeName":{"id":2923,"nodeType":"UserDefinedTypeName","pathNode":{"id":2922,"name":"ZkSyncMeta","nameLocations":["13226:10:16"],"nodeType":"IdentifierPath","referencedDeclaration":2533,"src":"13226:10:16"},"referencedDeclaration":2533,"src":"13226:10:16","typeDescriptions":{"typeIdentifier":"t_struct$_ZkSyncMeta_$2533_storage_ptr","typeString":"struct ZkSyncMeta"}},"visibility":"internal"}],"src":"13225:24:16"},"scope":3048,"src":"13178:390:16","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":2975,"nodeType":"Block","src":"14034:153:16","statements":[{"assignments":[2971],"declarations":[{"constant":false,"id":2971,"mutability":"mutable","name":"callAddr","nameLocation":"14052:8:16","nodeType":"VariableDeclaration","scope":2975,"src":"14044:16:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2970,"name":"address","nodeType":"ElementaryTypeName","src":"14044:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":2973,"initialValue":{"id":2972,"name":"CALLFLAGS_CALL_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3261,"src":"14063:22:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"14044:41:16"},{"AST":{"nodeType":"YulBlock","src":"14104:77:16","statements":[{"nodeType":"YulAssignment","src":"14118:53:16","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14142:1:16","type":"","value":"0"},{"name":"callAddr","nodeType":"YulIdentifier","src":"14145:8:16"},{"kind":"number","nodeType":"YulLiteral","src":"14155:1:16","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14158:6:16","type":"","value":"0xFFFF"},{"kind":"number","nodeType":"YulLiteral","src":"14166:1:16","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14169:1:16","type":"","value":"0"}],"functionName":{"name":"staticcall","nodeType":"YulIdentifier","src":"14131:10:16"},"nodeType":"YulFunctionCall","src":"14131:40:16"},"variableNames":[{"name":"callFlags","nodeType":"YulIdentifier","src":"14118:9:16"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":2971,"isOffset":false,"isSlot":false,"src":"14145:8:16","valueSize":1},{"declaration":2968,"isOffset":false,"isSlot":false,"src":"14118:9:16","valueSize":1}],"id":2974,"nodeType":"InlineAssembly","src":"14095:86:16"}]},"documentation":{"id":2965,"nodeType":"StructuredDocumentation","src":"13574:389:16","text":"@notice Returns the call flags for the current call.\n @return callFlags The bitmask of the callflags.\n @dev Call flags is the value of the first register\n at the start of the call.\n @dev The zero bit of the callFlags indicates whether the call is\n a constructor call. The first bit of the callFlags indicates whether\n the call is a system one."},"id":2976,"implemented":true,"kind":"function","modifiers":[],"name":"getCallFlags","nameLocation":"13977:12:16","nodeType":"FunctionDefinition","parameters":{"id":2966,"nodeType":"ParameterList","parameters":[],"src":"13989:2:16"},"returnParameters":{"id":2969,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2968,"mutability":"mutable","name":"callFlags","nameLocation":"14023:9:16","nodeType":"VariableDeclaration","scope":2976,"src":"14015:17:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2967,"name":"uint256","nodeType":"ElementaryTypeName","src":"14015:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14014:19:16"},"scope":3048,"src":"13968:219:16","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":2987,"nodeType":"Block","src":"14492:150:16","statements":[{"assignments":[2983],"declarations":[{"constant":false,"id":2983,"mutability":"mutable","name":"callAddr","nameLocation":"14510:8:16","nodeType":"VariableDeclaration","scope":2987,"src":"14502:16:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2982,"name":"address","nodeType":"ElementaryTypeName","src":"14502:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":2985,"initialValue":{"id":2984,"name":"PTR_CALLDATA_CALL_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3250,"src":"14521:25:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"14502:44:16"},{"AST":{"nodeType":"YulBlock","src":"14565:71:16","statements":[{"nodeType":"YulAssignment","src":"14579:47:16","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14597:1:16","type":"","value":"0"},{"name":"callAddr","nodeType":"YulIdentifier","src":"14600:8:16"},{"kind":"number","nodeType":"YulLiteral","src":"14610:1:16","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14613:6:16","type":"","value":"0xFFFF"},{"kind":"number","nodeType":"YulLiteral","src":"14621:1:16","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14624:1:16","type":"","value":"0"}],"functionName":{"name":"staticcall","nodeType":"YulIdentifier","src":"14586:10:16"},"nodeType":"YulFunctionCall","src":"14586:40:16"},"variableNames":[{"name":"ptr","nodeType":"YulIdentifier","src":"14579:3:16"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":2983,"isOffset":false,"isSlot":false,"src":"14600:8:16","valueSize":1},{"declaration":2980,"isOffset":false,"isSlot":false,"src":"14579:3:16","valueSize":1}],"id":2986,"nodeType":"InlineAssembly","src":"14556:80:16"}]},"documentation":{"id":2977,"nodeType":"StructuredDocumentation","src":"14193:232:16","text":"@notice Returns the current calldata pointer.\n @return ptr The current calldata pointer.\n @dev NOTE: This file is just an integer and it can not be used\n to forward the calldata to the next calls in any way."},"id":2988,"implemented":true,"kind":"function","modifiers":[],"name":"getCalldataPtr","nameLocation":"14439:14:16","nodeType":"FunctionDefinition","parameters":{"id":2978,"nodeType":"ParameterList","parameters":[],"src":"14453:2:16"},"returnParameters":{"id":2981,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2980,"mutability":"mutable","name":"ptr","nameLocation":"14487:3:16","nodeType":"VariableDeclaration","scope":2988,"src":"14479:11:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2979,"name":"uint256","nodeType":"ElementaryTypeName","src":"14479:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14478:13:16"},"scope":3048,"src":"14430:212:16","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":3008,"nodeType":"Block","src":"14979:236:16","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2999,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2997,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2991,"src":"14997:5:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"3130","id":2998,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15005:2:16","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"14997:10:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"546865726520617265206f6e6c792031302061636365737369626c6520726567697374657273","id":3000,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15009:40:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_9ce0a11610c1b82d8853e9e07b10bee60ebd69e07053f481653c1f5aa7a7e705","typeString":"literal_string \"There are only 10 accessible registers\""},"value":"There are only 10 accessible registers"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9ce0a11610c1b82d8853e9e07b10bee60ebd69e07053f481653c1f5aa7a7e705","typeString":"literal_string \"There are only 10 accessible registers\""}],"id":2996,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"14989:7:16","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3001,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14989:61:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3002,"nodeType":"ExpressionStatement","src":"14989:61:16"},{"assignments":[3004],"declarations":[{"constant":false,"id":3004,"mutability":"mutable","name":"callAddr","nameLocation":"15069:8:16","nodeType":"VariableDeclaration","scope":3008,"src":"15061:16:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3003,"name":"address","nodeType":"ElementaryTypeName","src":"15061:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":3006,"initialValue":{"id":3005,"name":"GET_EXTRA_ABI_DATA_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3371,"src":"15080:26:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"15061:45:16"},{"AST":{"nodeType":"YulBlock","src":"15125:84:16","statements":[{"nodeType":"YulAssignment","src":"15139:60:16","value":{"arguments":[{"name":"index","nodeType":"YulIdentifier","src":"15166:5:16"},{"name":"callAddr","nodeType":"YulIdentifier","src":"15173:8:16"},{"kind":"number","nodeType":"YulLiteral","src":"15183:1:16","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"15186:6:16","type":"","value":"0xFFFF"},{"kind":"number","nodeType":"YulLiteral","src":"15194:1:16","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"15197:1:16","type":"","value":"0"}],"functionName":{"name":"staticcall","nodeType":"YulIdentifier","src":"15155:10:16"},"nodeType":"YulFunctionCall","src":"15155:44:16"},"variableNames":[{"name":"extraAbiData","nodeType":"YulIdentifier","src":"15139:12:16"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":3004,"isOffset":false,"isSlot":false,"src":"15173:8:16","valueSize":1},{"declaration":2994,"isOffset":false,"isSlot":false,"src":"15139:12:16","valueSize":1},{"declaration":2991,"isOffset":false,"isSlot":false,"src":"15166:5:16","valueSize":1}],"id":3007,"nodeType":"InlineAssembly","src":"15116:93:16"}]},"documentation":{"id":2989,"nodeType":"StructuredDocumentation","src":"14648:241:16","text":"@notice Returns the N-th extraAbiParam for the current call.\n @return extraAbiData The value of the N-th extraAbiParam for this call.\n @dev It is equal to the value of the (N+2)-th register\n at the start of the call."},"id":3009,"implemented":true,"kind":"function","modifiers":[],"name":"getExtraAbiData","nameLocation":"14903:15:16","nodeType":"FunctionDefinition","parameters":{"id":2992,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2991,"mutability":"mutable","name":"index","nameLocation":"14927:5:16","nodeType":"VariableDeclaration","scope":3009,"src":"14919:13:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2990,"name":"uint256","nodeType":"ElementaryTypeName","src":"14919:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14918:15:16"},"returnParameters":{"id":2995,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2994,"mutability":"mutable","name":"extraAbiData","nameLocation":"14965:12:16","nodeType":"VariableDeclaration","scope":3009,"src":"14957:20:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2993,"name":"uint256","nodeType":"ElementaryTypeName","src":"14957:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14956:22:16"},"scope":3048,"src":"14894:321:16","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":3027,"nodeType":"Block","src":"15426:153:16","statements":[{"assignments":[3016],"declarations":[{"constant":false,"id":3016,"mutability":"mutable","name":"callFlags","nameLocation":"15444:9:16","nodeType":"VariableDeclaration","scope":3027,"src":"15436:17:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3015,"name":"uint256","nodeType":"ElementaryTypeName","src":"15436:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3019,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":3017,"name":"getCallFlags","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2976,"src":"15456:12:16","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":3018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15456:14:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15436:34:16"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3025,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3022,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3020,"name":"callFlags","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3016,"src":"15553:9:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"32","id":3021,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15565:1:16","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"15553:13:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3023,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15552:15:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":3024,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15571:1:16","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"15552:20:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":3014,"id":3026,"nodeType":"Return","src":"15545:27:16"}]},"documentation":{"id":3010,"nodeType":"StructuredDocumentation","src":"15221:147:16","text":"@notice Retuns whether the current call is a system call.\n @return `true` or `false` based on whether the current call is a system call."},"id":3028,"implemented":true,"kind":"function","modifiers":[],"name":"isSystemCall","nameLocation":"15382:12:16","nodeType":"FunctionDefinition","parameters":{"id":3011,"nodeType":"ParameterList","parameters":[],"src":"15394:2:16"},"returnParameters":{"id":3014,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3013,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3028,"src":"15420:4:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3012,"name":"bool","nodeType":"ElementaryTypeName","src":"15420:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"15419:6:16"},"scope":3048,"src":"15373:206:16","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":3046,"nodeType":"Block","src":"15856:81:16","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint160","typeString":"uint160"},"id":3044,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":3038,"name":"_address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3031,"src":"15881:8:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3037,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15873:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":3036,"name":"uint160","nodeType":"ElementaryTypeName","src":"15873:7:16","typeDescriptions":{}}},"id":3039,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15873:17:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"arguments":[{"id":3042,"name":"MAX_SYSTEM_CONTRACT_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":925,"src":"15902:27:16","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":3041,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15894:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":3040,"name":"uint160","nodeType":"ElementaryTypeName","src":"15894:7:16","typeDescriptions":{}}},"id":3043,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15894:36:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"src":"15873:57:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":3035,"id":3045,"nodeType":"Return","src":"15866:64:16"}]},"documentation":{"id":3029,"nodeType":"StructuredDocumentation","src":"15585:193:16","text":"@notice Returns whether the address is a system contract.\n @param _address The address to test\n @return `true` or `false` based on whether the `_address` is a system contract."},"id":3047,"implemented":true,"kind":"function","modifiers":[],"name":"isSystemContract","nameLocation":"15792:16:16","nodeType":"FunctionDefinition","parameters":{"id":3032,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3031,"mutability":"mutable","name":"_address","nameLocation":"15817:8:16","nodeType":"VariableDeclaration","scope":3047,"src":"15809:16:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3030,"name":"address","nodeType":"ElementaryTypeName","src":"15809:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"15808:18:16"},"returnParameters":{"id":3035,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3034,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3047,"src":"15850:4:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3033,"name":"bool","nodeType":"ElementaryTypeName","src":"15850:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"15849:6:16"},"scope":3048,"src":"15783:154:16","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":3069,"src":"1151:14788:16","usedErrors":[]},{"abstract":true,"baseContracts":[],"canonicalName":"ISystemContract","contractDependencies":[],"contractKind":"contract","documentation":{"id":3049,"nodeType":"StructuredDocumentation","src":"15941:137:16","text":"@dev Solidity does not allow exporting modifiers via libraries, so\n the only way to do reuse modifiers is to have a base contract"},"fullyImplemented":true,"id":3068,"linearizedBaseContracts":[3068],"name":"ISystemContract","nameLocation":"16096:15:16","nodeType":"ContractDefinition","nodes":[{"body":{"id":3066,"nodeType":"Block","src":"16247:199:16","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":3053,"name":"SystemContractHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3048,"src":"16278:20:16","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SystemContractHelper_$3048_$","typeString":"type(library SystemContractHelper)"}},"id":3054,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16299:12:16","memberName":"isSystemCall","nodeType":"MemberAccess","referencedDeclaration":3028,"src":"16278:33:16","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":3055,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16278:35:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"expression":{"id":3058,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"16355:3:16","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3059,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16359:6:16","memberName":"sender","nodeType":"MemberAccess","src":"16355:10:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":3056,"name":"SystemContractHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3048,"src":"16317:20:16","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SystemContractHelper_$3048_$","typeString":"type(library SystemContractHelper)"}},"id":3057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16338:16:16","memberName":"isSystemContract","nodeType":"MemberAccess","referencedDeclaration":3047,"src":"16317:37:16","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_bool_$","typeString":"function (address) pure returns (bool)"}},"id":3060,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16317:49:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"16278:88:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"54686973206d6574686f6420726571756972652073797374656d2063616c6c20666c6167","id":3062,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16380:38:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_6589f00cea854905d3b068f28c775a962c96c7700753afba09e3a0789b4f751e","typeString":"literal_string \"This method require system call flag\""},"value":"This method require system call flag"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6589f00cea854905d3b068f28c775a962c96c7700753afba09e3a0789b4f751e","typeString":"literal_string \"This method require system call flag\""}],"id":3052,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"16257:7:16","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3063,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16257:171:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3064,"nodeType":"ExpressionStatement","src":"16257:171:16"},{"id":3065,"nodeType":"PlaceholderStatement","src":"16438:1:16"}]},"documentation":{"id":3050,"nodeType":"StructuredDocumentation","src":"16118:98:16","text":"@notice Modifier that makes sure that the method\n can only be called via a system call."},"id":3067,"name":"onlySystemCall","nameLocation":"16230:14:16","nodeType":"ModifierDefinition","parameters":{"id":3051,"nodeType":"ParameterList","parameters":[],"src":"16244:2:16"},"src":"16221:225:16","virtual":false,"visibility":"internal"}],"scope":3069,"src":"16078:370:16","usedErrors":[]}],"src":"33:16416:16"}},"@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractsCaller.sol":{"id":17,"ast":{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractsCaller.sol","exportedSymbols":{"CALLFLAGS_CALL_ADDRESS":[3261],"CODE_ADDRESS_CALL_ADDRESS":[3096],"CalldataForwardingMode":[3405],"EVENT_INITIALIZE_ADDRESS":[3283],"EVENT_WRITE_ADDRESS":[3294],"EfficientCall":[2170],"GET_EXTRA_ABI_DATA_ADDRESS":[3371],"INCREMENT_TX_COUNTER_CALL_ADDRESS":[3239],"LOAD_CALLDATA_INTO_ACTIVE_PTR_CALL_ADDRESS":[3305],"LOAD_LATEST_RETURNDATA_INTO_ACTIVE_PTR_CALL_ADDRESS":[3316],"META_AUX_HEAP_SIZE_OFFSET":[3386],"META_CALLER_SHARD_ID_OFFSET":[3396],"META_CALL_ADDRESS":[3118],"META_CODE_SHARD_ID_OFFSET":[3401],"META_GAS_PER_PUBDATA_BYTE_OFFSET":[3376],"META_HEAP_SIZE_OFFSET":[3381],"META_SHARD_ID_OFFSET":[3391],"MIMIC_CALL_BY_REF_CALL_ADDRESS":[3151],"MIMIC_CALL_CALL_ADDRESS":[3129],"MSG_VALUE_SIMULATOR_IS_SYSTEM_BIT":[1107],"MSG_VALUE_SYSTEM_CONTRACT":[1040],"MULTIPLICATION_HIGH_ADDRESS":[3360],"PRECOMPILE_CALL_ADDRESS":[3107],"PTR_ADD_INTO_ACTIVE_CALL_ADDRESS":[3327],"PTR_CALLDATA_CALL_ADDRESS":[3250],"PTR_PACK_INTO_ACTIVE_CALL_ADDRESS":[3349],"PTR_RETURNDATA_CALL_ADDRESS":[3272],"PTR_SHRINK_INTO_ACTIVE_CALL_ADDRESS":[3338],"RAW_FAR_CALL_BY_REF_CALL_ADDRESS":[3184],"RAW_FAR_CALL_CALL_ADDRESS":[3173],"SET_CONTEXT_VALUE_CALL_ADDRESS":[3217],"SET_PUBDATA_PRICE_CALL_ADDRESS":[3228],"SYSTEM_CALL_BY_REF_CALL_ADDRESS":[3206],"SYSTEM_CALL_CALL_ADDRESS":[3195],"SYSTEM_MIMIC_CALL_BY_REF_CALL_ADDRESS":[3162],"SYSTEM_MIMIC_CALL_CALL_ADDRESS":[3140],"SystemContractsCaller":[3683],"TO_L1_CALL_ADDRESS":[3085],"Utils":[4920]},"id":3684,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3070,"literals":["solidity","^","0.8"],"nodeType":"PragmaDirective","src":"33:21:17"},{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/Constants.sol","file":"../Constants.sol","id":3073,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3684,"sourceUnit":1124,"src":"56:94:17","symbolAliases":[{"foreign":{"id":3071,"name":"MSG_VALUE_SYSTEM_CONTRACT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1040,"src":"64:25:17","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":3072,"name":"MSG_VALUE_SIMULATOR_IS_SYSTEM_BIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1107,"src":"91:33:17","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/libraries/Utils.sol","file":"./Utils.sol","id":3074,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3684,"sourceUnit":4921,"src":"151:21:17","symbolAliases":[],"unitAlias":""},{"constant":true,"id":3085,"mutability":"constant","name":"TO_L1_CALL_ADDRESS","nameLocation":"409:18:17","nodeType":"VariableDeclaration","scope":3684,"src":"392:60:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3075,"name":"address","nodeType":"ElementaryTypeName","src":"392:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"commonType":{"typeIdentifier":"t_rational_65535_by_1","typeString":"int_const 65535"},"id":3083,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"},"id":3080,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3078,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"439:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3136","id":3079,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"444:2:17","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"439:7:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}}],"id":3081,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"438:9:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":3082,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"450:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"438:13:17","typeDescriptions":{"typeIdentifier":"t_rational_65535_by_1","typeString":"int_const 65535"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_65535_by_1","typeString":"int_const 65535"}],"id":3077,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"430:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3076,"name":"address","nodeType":"ElementaryTypeName","src":"430:7:17","typeDescriptions":{}}},"id":3084,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"430:22:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":true,"id":3096,"mutability":"constant","name":"CODE_ADDRESS_CALL_ADDRESS","nameLocation":"471:25:17","nodeType":"VariableDeclaration","scope":3684,"src":"454:67:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3086,"name":"address","nodeType":"ElementaryTypeName","src":"454:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"commonType":{"typeIdentifier":"t_rational_65534_by_1","typeString":"int_const 65534"},"id":3094,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"},"id":3091,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3089,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"508:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3136","id":3090,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"513:2:17","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"508:7:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}}],"id":3092,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"507:9:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"32","id":3093,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"519:1:17","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"507:13:17","typeDescriptions":{"typeIdentifier":"t_rational_65534_by_1","typeString":"int_const 65534"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_65534_by_1","typeString":"int_const 65534"}],"id":3088,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"499:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3087,"name":"address","nodeType":"ElementaryTypeName","src":"499:7:17","typeDescriptions":{}}},"id":3095,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"499:22:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":true,"id":3107,"mutability":"constant","name":"PRECOMPILE_CALL_ADDRESS","nameLocation":"540:23:17","nodeType":"VariableDeclaration","scope":3684,"src":"523:65:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3097,"name":"address","nodeType":"ElementaryTypeName","src":"523:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"commonType":{"typeIdentifier":"t_rational_65533_by_1","typeString":"int_const 65533"},"id":3105,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"},"id":3102,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3100,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"575:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3136","id":3101,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"580:2:17","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"575:7:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}}],"id":3103,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"574:9:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"33","id":3104,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"586:1:17","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"574:13:17","typeDescriptions":{"typeIdentifier":"t_rational_65533_by_1","typeString":"int_const 65533"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_65533_by_1","typeString":"int_const 65533"}],"id":3099,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"566:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3098,"name":"address","nodeType":"ElementaryTypeName","src":"566:7:17","typeDescriptions":{}}},"id":3106,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"566:22:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":true,"id":3118,"mutability":"constant","name":"META_CALL_ADDRESS","nameLocation":"607:17:17","nodeType":"VariableDeclaration","scope":3684,"src":"590:59:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3108,"name":"address","nodeType":"ElementaryTypeName","src":"590:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"commonType":{"typeIdentifier":"t_rational_65532_by_1","typeString":"int_const 65532"},"id":3116,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"},"id":3113,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3111,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"636:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3136","id":3112,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"641:2:17","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"636:7:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}}],"id":3114,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"635:9:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"34","id":3115,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"647:1:17","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"635:13:17","typeDescriptions":{"typeIdentifier":"t_rational_65532_by_1","typeString":"int_const 65532"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_65532_by_1","typeString":"int_const 65532"}],"id":3110,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"627:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3109,"name":"address","nodeType":"ElementaryTypeName","src":"627:7:17","typeDescriptions":{}}},"id":3117,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"627:22:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":true,"id":3129,"mutability":"constant","name":"MIMIC_CALL_CALL_ADDRESS","nameLocation":"668:23:17","nodeType":"VariableDeclaration","scope":3684,"src":"651:65:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3119,"name":"address","nodeType":"ElementaryTypeName","src":"651:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"commonType":{"typeIdentifier":"t_rational_65531_by_1","typeString":"int_const 65531"},"id":3127,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"},"id":3124,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3122,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"703:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3136","id":3123,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"708:2:17","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"703:7:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}}],"id":3125,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"702:9:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"35","id":3126,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"714:1:17","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"src":"702:13:17","typeDescriptions":{"typeIdentifier":"t_rational_65531_by_1","typeString":"int_const 65531"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_65531_by_1","typeString":"int_const 65531"}],"id":3121,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"694:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3120,"name":"address","nodeType":"ElementaryTypeName","src":"694:7:17","typeDescriptions":{}}},"id":3128,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"694:22:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":true,"id":3140,"mutability":"constant","name":"SYSTEM_MIMIC_CALL_CALL_ADDRESS","nameLocation":"735:30:17","nodeType":"VariableDeclaration","scope":3684,"src":"718:72:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3130,"name":"address","nodeType":"ElementaryTypeName","src":"718:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"commonType":{"typeIdentifier":"t_rational_65530_by_1","typeString":"int_const 65530"},"id":3138,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"},"id":3135,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3133,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"777:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3136","id":3134,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"782:2:17","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"777:7:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}}],"id":3136,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"776:9:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"36","id":3137,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"788:1:17","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"},"src":"776:13:17","typeDescriptions":{"typeIdentifier":"t_rational_65530_by_1","typeString":"int_const 65530"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_65530_by_1","typeString":"int_const 65530"}],"id":3132,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"768:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3131,"name":"address","nodeType":"ElementaryTypeName","src":"768:7:17","typeDescriptions":{}}},"id":3139,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"768:22:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":true,"id":3151,"mutability":"constant","name":"MIMIC_CALL_BY_REF_CALL_ADDRESS","nameLocation":"809:30:17","nodeType":"VariableDeclaration","scope":3684,"src":"792:72:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3141,"name":"address","nodeType":"ElementaryTypeName","src":"792:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"commonType":{"typeIdentifier":"t_rational_65529_by_1","typeString":"int_const 65529"},"id":3149,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"},"id":3146,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3144,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"851:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3136","id":3145,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"856:2:17","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"851:7:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}}],"id":3147,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"850:9:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"37","id":3148,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"862:1:17","typeDescriptions":{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"},"value":"7"},"src":"850:13:17","typeDescriptions":{"typeIdentifier":"t_rational_65529_by_1","typeString":"int_const 65529"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_65529_by_1","typeString":"int_const 65529"}],"id":3143,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"842:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3142,"name":"address","nodeType":"ElementaryTypeName","src":"842:7:17","typeDescriptions":{}}},"id":3150,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"842:22:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":true,"id":3162,"mutability":"constant","name":"SYSTEM_MIMIC_CALL_BY_REF_CALL_ADDRESS","nameLocation":"883:37:17","nodeType":"VariableDeclaration","scope":3684,"src":"866:79:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3152,"name":"address","nodeType":"ElementaryTypeName","src":"866:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"commonType":{"typeIdentifier":"t_rational_65528_by_1","typeString":"int_const 65528"},"id":3160,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"},"id":3157,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3155,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"932:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3136","id":3156,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"937:2:17","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"932:7:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}}],"id":3158,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"931:9:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"38","id":3159,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"943:1:17","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"931:13:17","typeDescriptions":{"typeIdentifier":"t_rational_65528_by_1","typeString":"int_const 65528"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_65528_by_1","typeString":"int_const 65528"}],"id":3154,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"923:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3153,"name":"address","nodeType":"ElementaryTypeName","src":"923:7:17","typeDescriptions":{}}},"id":3161,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"923:22:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":true,"id":3173,"mutability":"constant","name":"RAW_FAR_CALL_CALL_ADDRESS","nameLocation":"964:25:17","nodeType":"VariableDeclaration","scope":3684,"src":"947:67:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3163,"name":"address","nodeType":"ElementaryTypeName","src":"947:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"commonType":{"typeIdentifier":"t_rational_65527_by_1","typeString":"int_const 65527"},"id":3171,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"},"id":3168,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3166,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1001:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3136","id":3167,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1006:2:17","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"1001:7:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}}],"id":3169,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1000:9:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"39","id":3170,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1012:1:17","typeDescriptions":{"typeIdentifier":"t_rational_9_by_1","typeString":"int_const 9"},"value":"9"},"src":"1000:13:17","typeDescriptions":{"typeIdentifier":"t_rational_65527_by_1","typeString":"int_const 65527"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_65527_by_1","typeString":"int_const 65527"}],"id":3165,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"992:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3164,"name":"address","nodeType":"ElementaryTypeName","src":"992:7:17","typeDescriptions":{}}},"id":3172,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"992:22:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":true,"id":3184,"mutability":"constant","name":"RAW_FAR_CALL_BY_REF_CALL_ADDRESS","nameLocation":"1033:32:17","nodeType":"VariableDeclaration","scope":3684,"src":"1016:75:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3174,"name":"address","nodeType":"ElementaryTypeName","src":"1016:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"commonType":{"typeIdentifier":"t_rational_65526_by_1","typeString":"int_const 65526"},"id":3182,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"},"id":3179,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3177,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1077:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3136","id":3178,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1082:2:17","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"1077:7:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}}],"id":3180,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1076:9:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"3130","id":3181,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1088:2:17","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"1076:14:17","typeDescriptions":{"typeIdentifier":"t_rational_65526_by_1","typeString":"int_const 65526"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_65526_by_1","typeString":"int_const 65526"}],"id":3176,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1068:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3175,"name":"address","nodeType":"ElementaryTypeName","src":"1068:7:17","typeDescriptions":{}}},"id":3183,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1068:23:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":true,"id":3195,"mutability":"constant","name":"SYSTEM_CALL_CALL_ADDRESS","nameLocation":"1110:24:17","nodeType":"VariableDeclaration","scope":3684,"src":"1093:67:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3185,"name":"address","nodeType":"ElementaryTypeName","src":"1093:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"commonType":{"typeIdentifier":"t_rational_65525_by_1","typeString":"int_const 65525"},"id":3193,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"},"id":3190,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3188,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1146:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3136","id":3189,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1151:2:17","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"1146:7:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}}],"id":3191,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1145:9:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"3131","id":3192,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1157:2:17","typeDescriptions":{"typeIdentifier":"t_rational_11_by_1","typeString":"int_const 11"},"value":"11"},"src":"1145:14:17","typeDescriptions":{"typeIdentifier":"t_rational_65525_by_1","typeString":"int_const 65525"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_65525_by_1","typeString":"int_const 65525"}],"id":3187,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1137:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3186,"name":"address","nodeType":"ElementaryTypeName","src":"1137:7:17","typeDescriptions":{}}},"id":3194,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1137:23:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":true,"id":3206,"mutability":"constant","name":"SYSTEM_CALL_BY_REF_CALL_ADDRESS","nameLocation":"1179:31:17","nodeType":"VariableDeclaration","scope":3684,"src":"1162:74:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3196,"name":"address","nodeType":"ElementaryTypeName","src":"1162:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"commonType":{"typeIdentifier":"t_rational_65524_by_1","typeString":"int_const 65524"},"id":3204,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"},"id":3201,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3199,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1222:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3136","id":3200,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1227:2:17","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"1222:7:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}}],"id":3202,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1221:9:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"3132","id":3203,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1233:2:17","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},"src":"1221:14:17","typeDescriptions":{"typeIdentifier":"t_rational_65524_by_1","typeString":"int_const 65524"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_65524_by_1","typeString":"int_const 65524"}],"id":3198,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1213:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3197,"name":"address","nodeType":"ElementaryTypeName","src":"1213:7:17","typeDescriptions":{}}},"id":3205,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1213:23:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":true,"id":3217,"mutability":"constant","name":"SET_CONTEXT_VALUE_CALL_ADDRESS","nameLocation":"1255:30:17","nodeType":"VariableDeclaration","scope":3684,"src":"1238:73:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3207,"name":"address","nodeType":"ElementaryTypeName","src":"1238:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"commonType":{"typeIdentifier":"t_rational_65523_by_1","typeString":"int_const 65523"},"id":3215,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"},"id":3212,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3210,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1297:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3136","id":3211,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1302:2:17","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"1297:7:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}}],"id":3213,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1296:9:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"3133","id":3214,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1308:2:17","typeDescriptions":{"typeIdentifier":"t_rational_13_by_1","typeString":"int_const 13"},"value":"13"},"src":"1296:14:17","typeDescriptions":{"typeIdentifier":"t_rational_65523_by_1","typeString":"int_const 65523"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_65523_by_1","typeString":"int_const 65523"}],"id":3209,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1288:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3208,"name":"address","nodeType":"ElementaryTypeName","src":"1288:7:17","typeDescriptions":{}}},"id":3216,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1288:23:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":true,"id":3228,"mutability":"constant","name":"SET_PUBDATA_PRICE_CALL_ADDRESS","nameLocation":"1330:30:17","nodeType":"VariableDeclaration","scope":3684,"src":"1313:73:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3218,"name":"address","nodeType":"ElementaryTypeName","src":"1313:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"commonType":{"typeIdentifier":"t_rational_65522_by_1","typeString":"int_const 65522"},"id":3226,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"},"id":3223,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3221,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1372:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3136","id":3222,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1377:2:17","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"1372:7:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}}],"id":3224,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1371:9:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"3134","id":3225,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1383:2:17","typeDescriptions":{"typeIdentifier":"t_rational_14_by_1","typeString":"int_const 14"},"value":"14"},"src":"1371:14:17","typeDescriptions":{"typeIdentifier":"t_rational_65522_by_1","typeString":"int_const 65522"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_65522_by_1","typeString":"int_const 65522"}],"id":3220,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1363:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3219,"name":"address","nodeType":"ElementaryTypeName","src":"1363:7:17","typeDescriptions":{}}},"id":3227,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1363:23:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":true,"id":3239,"mutability":"constant","name":"INCREMENT_TX_COUNTER_CALL_ADDRESS","nameLocation":"1405:33:17","nodeType":"VariableDeclaration","scope":3684,"src":"1388:76:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3229,"name":"address","nodeType":"ElementaryTypeName","src":"1388:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"commonType":{"typeIdentifier":"t_rational_65521_by_1","typeString":"int_const 65521"},"id":3237,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"},"id":3234,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3232,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1450:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3136","id":3233,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1455:2:17","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"1450:7:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}}],"id":3235,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1449:9:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"3135","id":3236,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1461:2:17","typeDescriptions":{"typeIdentifier":"t_rational_15_by_1","typeString":"int_const 15"},"value":"15"},"src":"1449:14:17","typeDescriptions":{"typeIdentifier":"t_rational_65521_by_1","typeString":"int_const 65521"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_65521_by_1","typeString":"int_const 65521"}],"id":3231,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1441:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3230,"name":"address","nodeType":"ElementaryTypeName","src":"1441:7:17","typeDescriptions":{}}},"id":3238,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1441:23:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":true,"id":3250,"mutability":"constant","name":"PTR_CALLDATA_CALL_ADDRESS","nameLocation":"1483:25:17","nodeType":"VariableDeclaration","scope":3684,"src":"1466:68:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3240,"name":"address","nodeType":"ElementaryTypeName","src":"1466:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"commonType":{"typeIdentifier":"t_rational_65520_by_1","typeString":"int_const 65520"},"id":3248,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"},"id":3245,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3243,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1520:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3136","id":3244,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1525:2:17","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"1520:7:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}}],"id":3246,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1519:9:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"3136","id":3247,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1531:2:17","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"1519:14:17","typeDescriptions":{"typeIdentifier":"t_rational_65520_by_1","typeString":"int_const 65520"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_65520_by_1","typeString":"int_const 65520"}],"id":3242,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1511:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3241,"name":"address","nodeType":"ElementaryTypeName","src":"1511:7:17","typeDescriptions":{}}},"id":3249,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1511:23:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":true,"id":3261,"mutability":"constant","name":"CALLFLAGS_CALL_ADDRESS","nameLocation":"1553:22:17","nodeType":"VariableDeclaration","scope":3684,"src":"1536:65:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3251,"name":"address","nodeType":"ElementaryTypeName","src":"1536:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"commonType":{"typeIdentifier":"t_rational_65519_by_1","typeString":"int_const 65519"},"id":3259,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"},"id":3256,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3254,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1587:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3136","id":3255,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1592:2:17","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"1587:7:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}}],"id":3257,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1586:9:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"3137","id":3258,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1598:2:17","typeDescriptions":{"typeIdentifier":"t_rational_17_by_1","typeString":"int_const 17"},"value":"17"},"src":"1586:14:17","typeDescriptions":{"typeIdentifier":"t_rational_65519_by_1","typeString":"int_const 65519"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_65519_by_1","typeString":"int_const 65519"}],"id":3253,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1578:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3252,"name":"address","nodeType":"ElementaryTypeName","src":"1578:7:17","typeDescriptions":{}}},"id":3260,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1578:23:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":true,"id":3272,"mutability":"constant","name":"PTR_RETURNDATA_CALL_ADDRESS","nameLocation":"1620:27:17","nodeType":"VariableDeclaration","scope":3684,"src":"1603:70:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3262,"name":"address","nodeType":"ElementaryTypeName","src":"1603:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"commonType":{"typeIdentifier":"t_rational_65518_by_1","typeString":"int_const 65518"},"id":3270,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"},"id":3267,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3265,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1659:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3136","id":3266,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1664:2:17","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"1659:7:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}}],"id":3268,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1658:9:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"3138","id":3269,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1670:2:17","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"src":"1658:14:17","typeDescriptions":{"typeIdentifier":"t_rational_65518_by_1","typeString":"int_const 65518"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_65518_by_1","typeString":"int_const 65518"}],"id":3264,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1650:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3263,"name":"address","nodeType":"ElementaryTypeName","src":"1650:7:17","typeDescriptions":{}}},"id":3271,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1650:23:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":true,"id":3283,"mutability":"constant","name":"EVENT_INITIALIZE_ADDRESS","nameLocation":"1692:24:17","nodeType":"VariableDeclaration","scope":3684,"src":"1675:67:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3273,"name":"address","nodeType":"ElementaryTypeName","src":"1675:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"commonType":{"typeIdentifier":"t_rational_65517_by_1","typeString":"int_const 65517"},"id":3281,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"},"id":3278,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3276,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1728:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3136","id":3277,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1733:2:17","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"1728:7:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}}],"id":3279,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1727:9:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"3139","id":3280,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1739:2:17","typeDescriptions":{"typeIdentifier":"t_rational_19_by_1","typeString":"int_const 19"},"value":"19"},"src":"1727:14:17","typeDescriptions":{"typeIdentifier":"t_rational_65517_by_1","typeString":"int_const 65517"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_65517_by_1","typeString":"int_const 65517"}],"id":3275,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1719:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3274,"name":"address","nodeType":"ElementaryTypeName","src":"1719:7:17","typeDescriptions":{}}},"id":3282,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1719:23:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":true,"id":3294,"mutability":"constant","name":"EVENT_WRITE_ADDRESS","nameLocation":"1761:19:17","nodeType":"VariableDeclaration","scope":3684,"src":"1744:62:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3284,"name":"address","nodeType":"ElementaryTypeName","src":"1744:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"commonType":{"typeIdentifier":"t_rational_65516_by_1","typeString":"int_const 65516"},"id":3292,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"},"id":3289,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3287,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1792:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3136","id":3288,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1797:2:17","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"1792:7:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}}],"id":3290,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1791:9:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"3230","id":3291,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1803:2:17","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"src":"1791:14:17","typeDescriptions":{"typeIdentifier":"t_rational_65516_by_1","typeString":"int_const 65516"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_65516_by_1","typeString":"int_const 65516"}],"id":3286,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1783:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3285,"name":"address","nodeType":"ElementaryTypeName","src":"1783:7:17","typeDescriptions":{}}},"id":3293,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1783:23:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":true,"id":3305,"mutability":"constant","name":"LOAD_CALLDATA_INTO_ACTIVE_PTR_CALL_ADDRESS","nameLocation":"1825:42:17","nodeType":"VariableDeclaration","scope":3684,"src":"1808:85:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3295,"name":"address","nodeType":"ElementaryTypeName","src":"1808:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"commonType":{"typeIdentifier":"t_rational_65515_by_1","typeString":"int_const 65515"},"id":3303,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"},"id":3300,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3298,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1879:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3136","id":3299,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1884:2:17","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"1879:7:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}}],"id":3301,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1878:9:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"3231","id":3302,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1890:2:17","typeDescriptions":{"typeIdentifier":"t_rational_21_by_1","typeString":"int_const 21"},"value":"21"},"src":"1878:14:17","typeDescriptions":{"typeIdentifier":"t_rational_65515_by_1","typeString":"int_const 65515"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_65515_by_1","typeString":"int_const 65515"}],"id":3297,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1870:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3296,"name":"address","nodeType":"ElementaryTypeName","src":"1870:7:17","typeDescriptions":{}}},"id":3304,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1870:23:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":true,"id":3316,"mutability":"constant","name":"LOAD_LATEST_RETURNDATA_INTO_ACTIVE_PTR_CALL_ADDRESS","nameLocation":"1912:51:17","nodeType":"VariableDeclaration","scope":3684,"src":"1895:94:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3306,"name":"address","nodeType":"ElementaryTypeName","src":"1895:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"commonType":{"typeIdentifier":"t_rational_65514_by_1","typeString":"int_const 65514"},"id":3314,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"},"id":3311,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3309,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1975:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3136","id":3310,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1980:2:17","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"1975:7:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}}],"id":3312,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1974:9:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"3232","id":3313,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1986:2:17","typeDescriptions":{"typeIdentifier":"t_rational_22_by_1","typeString":"int_const 22"},"value":"22"},"src":"1974:14:17","typeDescriptions":{"typeIdentifier":"t_rational_65514_by_1","typeString":"int_const 65514"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_65514_by_1","typeString":"int_const 65514"}],"id":3308,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1966:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3307,"name":"address","nodeType":"ElementaryTypeName","src":"1966:7:17","typeDescriptions":{}}},"id":3315,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1966:23:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":true,"id":3327,"mutability":"constant","name":"PTR_ADD_INTO_ACTIVE_CALL_ADDRESS","nameLocation":"2008:32:17","nodeType":"VariableDeclaration","scope":3684,"src":"1991:75:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3317,"name":"address","nodeType":"ElementaryTypeName","src":"1991:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"commonType":{"typeIdentifier":"t_rational_65513_by_1","typeString":"int_const 65513"},"id":3325,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"},"id":3322,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3320,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2052:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3136","id":3321,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2057:2:17","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"2052:7:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}}],"id":3323,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2051:9:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"3233","id":3324,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2063:2:17","typeDescriptions":{"typeIdentifier":"t_rational_23_by_1","typeString":"int_const 23"},"value":"23"},"src":"2051:14:17","typeDescriptions":{"typeIdentifier":"t_rational_65513_by_1","typeString":"int_const 65513"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_65513_by_1","typeString":"int_const 65513"}],"id":3319,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2043:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3318,"name":"address","nodeType":"ElementaryTypeName","src":"2043:7:17","typeDescriptions":{}}},"id":3326,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2043:23:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":true,"id":3338,"mutability":"constant","name":"PTR_SHRINK_INTO_ACTIVE_CALL_ADDRESS","nameLocation":"2085:35:17","nodeType":"VariableDeclaration","scope":3684,"src":"2068:78:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3328,"name":"address","nodeType":"ElementaryTypeName","src":"2068:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"commonType":{"typeIdentifier":"t_rational_65512_by_1","typeString":"int_const 65512"},"id":3336,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"},"id":3333,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3331,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2132:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3136","id":3332,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2137:2:17","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"2132:7:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}}],"id":3334,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2131:9:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"3234","id":3335,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2143:2:17","typeDescriptions":{"typeIdentifier":"t_rational_24_by_1","typeString":"int_const 24"},"value":"24"},"src":"2131:14:17","typeDescriptions":{"typeIdentifier":"t_rational_65512_by_1","typeString":"int_const 65512"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_65512_by_1","typeString":"int_const 65512"}],"id":3330,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2123:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3329,"name":"address","nodeType":"ElementaryTypeName","src":"2123:7:17","typeDescriptions":{}}},"id":3337,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2123:23:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":true,"id":3349,"mutability":"constant","name":"PTR_PACK_INTO_ACTIVE_CALL_ADDRESS","nameLocation":"2165:33:17","nodeType":"VariableDeclaration","scope":3684,"src":"2148:76:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3339,"name":"address","nodeType":"ElementaryTypeName","src":"2148:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"commonType":{"typeIdentifier":"t_rational_65511_by_1","typeString":"int_const 65511"},"id":3347,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"},"id":3344,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3342,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2210:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3136","id":3343,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2215:2:17","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"2210:7:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}}],"id":3345,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2209:9:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"3235","id":3346,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2221:2:17","typeDescriptions":{"typeIdentifier":"t_rational_25_by_1","typeString":"int_const 25"},"value":"25"},"src":"2209:14:17","typeDescriptions":{"typeIdentifier":"t_rational_65511_by_1","typeString":"int_const 65511"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_65511_by_1","typeString":"int_const 65511"}],"id":3341,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2201:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3340,"name":"address","nodeType":"ElementaryTypeName","src":"2201:7:17","typeDescriptions":{}}},"id":3348,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2201:23:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":true,"id":3360,"mutability":"constant","name":"MULTIPLICATION_HIGH_ADDRESS","nameLocation":"2243:27:17","nodeType":"VariableDeclaration","scope":3684,"src":"2226:70:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3350,"name":"address","nodeType":"ElementaryTypeName","src":"2226:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"commonType":{"typeIdentifier":"t_rational_65510_by_1","typeString":"int_const 65510"},"id":3358,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"},"id":3355,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3353,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2282:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3136","id":3354,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2287:2:17","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"2282:7:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}}],"id":3356,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2281:9:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"3236","id":3357,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2293:2:17","typeDescriptions":{"typeIdentifier":"t_rational_26_by_1","typeString":"int_const 26"},"value":"26"},"src":"2281:14:17","typeDescriptions":{"typeIdentifier":"t_rational_65510_by_1","typeString":"int_const 65510"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_65510_by_1","typeString":"int_const 65510"}],"id":3352,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2273:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3351,"name":"address","nodeType":"ElementaryTypeName","src":"2273:7:17","typeDescriptions":{}}},"id":3359,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2273:23:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":true,"id":3371,"mutability":"constant","name":"GET_EXTRA_ABI_DATA_ADDRESS","nameLocation":"2315:26:17","nodeType":"VariableDeclaration","scope":3684,"src":"2298:69:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3361,"name":"address","nodeType":"ElementaryTypeName","src":"2298:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"commonType":{"typeIdentifier":"t_rational_65509_by_1","typeString":"int_const 65509"},"id":3369,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"},"id":3366,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3364,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2353:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3136","id":3365,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2358:2:17","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"2353:7:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}}],"id":3367,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2352:9:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"3237","id":3368,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2364:2:17","typeDescriptions":{"typeIdentifier":"t_rational_27_by_1","typeString":"int_const 27"},"value":"27"},"src":"2352:14:17","typeDescriptions":{"typeIdentifier":"t_rational_65509_by_1","typeString":"int_const 65509"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_65509_by_1","typeString":"int_const 65509"}],"id":3363,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2344:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3362,"name":"address","nodeType":"ElementaryTypeName","src":"2344:7:17","typeDescriptions":{}}},"id":3370,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2344:23:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":true,"id":3376,"mutability":"constant","name":"META_GAS_PER_PUBDATA_BYTE_OFFSET","nameLocation":"2418:32:17","nodeType":"VariableDeclaration","scope":3684,"src":"2401:57:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3372,"name":"uint256","nodeType":"ElementaryTypeName","src":"2401:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"id":3375,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"30","id":3373,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2453:1:17","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"38","id":3374,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2457:1:17","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"2453:5:17","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}},"visibility":"internal"},{"constant":true,"id":3381,"mutability":"constant","name":"META_HEAP_SIZE_OFFSET","nameLocation":"2477:21:17","nodeType":"VariableDeclaration","scope":3684,"src":"2460:46:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3377,"name":"uint256","nodeType":"ElementaryTypeName","src":"2460:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"id":3380,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"38","id":3378,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2501:1:17","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"38","id":3379,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2505:1:17","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"2501:5:17","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"}},"visibility":"internal"},{"constant":true,"id":3386,"mutability":"constant","name":"META_AUX_HEAP_SIZE_OFFSET","nameLocation":"2525:25:17","nodeType":"VariableDeclaration","scope":3684,"src":"2508:51:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3382,"name":"uint256","nodeType":"ElementaryTypeName","src":"2508:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"id":3385,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3132","id":3383,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2553:2:17","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"38","id":3384,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2558:1:17","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"2553:6:17","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"}},"visibility":"internal"},{"constant":true,"id":3391,"mutability":"constant","name":"META_SHARD_ID_OFFSET","nameLocation":"2578:20:17","nodeType":"VariableDeclaration","scope":3684,"src":"2561:46:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3387,"name":"uint256","nodeType":"ElementaryTypeName","src":"2561:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_224_by_1","typeString":"int_const 224"},"id":3390,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3238","id":3388,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2601:2:17","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"28"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"38","id":3389,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2606:1:17","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"2601:6:17","typeDescriptions":{"typeIdentifier":"t_rational_224_by_1","typeString":"int_const 224"}},"visibility":"internal"},{"constant":true,"id":3396,"mutability":"constant","name":"META_CALLER_SHARD_ID_OFFSET","nameLocation":"2626:27:17","nodeType":"VariableDeclaration","scope":3684,"src":"2609:53:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3392,"name":"uint256","nodeType":"ElementaryTypeName","src":"2609:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_232_by_1","typeString":"int_const 232"},"id":3395,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3239","id":3393,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2656:2:17","typeDescriptions":{"typeIdentifier":"t_rational_29_by_1","typeString":"int_const 29"},"value":"29"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"38","id":3394,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2661:1:17","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"2656:6:17","typeDescriptions":{"typeIdentifier":"t_rational_232_by_1","typeString":"int_const 232"}},"visibility":"internal"},{"constant":true,"id":3401,"mutability":"constant","name":"META_CODE_SHARD_ID_OFFSET","nameLocation":"2681:25:17","nodeType":"VariableDeclaration","scope":3684,"src":"2664:51:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3397,"name":"uint256","nodeType":"ElementaryTypeName","src":"2664:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_240_by_1","typeString":"int_const 240"},"id":3400,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3330","id":3398,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2709:2:17","typeDescriptions":{"typeIdentifier":"t_rational_30_by_1","typeString":"int_const 30"},"value":"30"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"38","id":3399,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2714:1:17","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"2709:6:17","typeDescriptions":{"typeIdentifier":"t_rational_240_by_1","typeString":"int_const 240"}},"visibility":"internal"},{"canonicalName":"CalldataForwardingMode","id":3405,"members":[{"id":3402,"name":"UseHeap","nameLocation":"3164:7:17","nodeType":"EnumValue","src":"3164:7:17"},{"id":3403,"name":"ForwardFatPointer","nameLocation":"3177:17:17","nodeType":"EnumValue","src":"3177:17:17"},{"id":3404,"name":"UseAuxHeap","nameLocation":"3200:10:17","nodeType":"EnumValue","src":"3200:10:17"}],"name":"CalldataForwardingMode","nameLocation":"3135:22:17","nodeType":"EnumDefinition","src":"3130:82:17"},{"abstract":false,"baseContracts":[],"canonicalName":"SystemContractsCaller","contractDependencies":[],"contractKind":"library","documentation":{"id":3406,"nodeType":"StructuredDocumentation","src":"3214:170:17","text":" @author Matter Labs\n @notice A library that allows calling contracts with the `isSystem` flag.\n @dev It is needed to call ContractDeployer and NonceHolder."},"fullyImplemented":true,"id":3683,"linearizedBaseContracts":[3683],"name":"SystemContractsCaller","nameLocation":"3393:21:17","nodeType":"ContractDefinition","nodes":[{"body":{"id":3471,"nodeType":"Block","src":"3937:1158:17","statements":[{"assignments":[3421],"declarations":[{"constant":false,"id":3421,"mutability":"mutable","name":"callAddr","nameLocation":"3955:8:17","nodeType":"VariableDeclaration","scope":3471,"src":"3947:16:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3420,"name":"address","nodeType":"ElementaryTypeName","src":"3947:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":3423,"initialValue":{"id":3422,"name":"SYSTEM_CALL_CALL_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3195,"src":"3966:24:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3947:43:17"},{"assignments":[3425],"declarations":[{"constant":false,"id":3425,"mutability":"mutable","name":"dataStart","nameLocation":"4008:9:17","nodeType":"VariableDeclaration","scope":3471,"src":"4001:16:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":3424,"name":"uint32","nodeType":"ElementaryTypeName","src":"4001:6:17","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"id":3426,"nodeType":"VariableDeclarationStatement","src":"4001:16:17"},{"AST":{"nodeType":"YulBlock","src":"4036:52:17","statements":[{"nodeType":"YulAssignment","src":"4050:28:17","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"4067:4:17"},{"kind":"number","nodeType":"YulLiteral","src":"4073:4:17","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4063:3:17"},"nodeType":"YulFunctionCall","src":"4063:15:17"},"variableNames":[{"name":"dataStart","nodeType":"YulIdentifier","src":"4050:9:17"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":3415,"isOffset":false,"isSlot":false,"src":"4067:4:17","valueSize":1},{"declaration":3425,"isOffset":false,"isSlot":false,"src":"4050:9:17","valueSize":1}],"id":3427,"nodeType":"InlineAssembly","src":"4027:61:17"},{"assignments":[3429],"declarations":[{"constant":false,"id":3429,"mutability":"mutable","name":"dataLength","nameLocation":"4104:10:17","nodeType":"VariableDeclaration","scope":3471,"src":"4097:17:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":3428,"name":"uint32","nodeType":"ElementaryTypeName","src":"4097:6:17","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"id":3438,"initialValue":{"arguments":[{"arguments":[{"expression":{"id":3434,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3415,"src":"4144:4:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3435,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4149:6:17","memberName":"length","nodeType":"MemberAccess","src":"4144:11:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3432,"name":"Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4920,"src":"4124:5:17","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Utils_$4920_$","typeString":"type(library Utils)"}},"id":3433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4130:13:17","memberName":"safeCastToU32","nodeType":"MemberAccess","referencedDeclaration":4706,"src":"4124:19:17","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint32_$","typeString":"function (uint256) pure returns (uint32)"}},"id":3436,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4124:32:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"}],"id":3431,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4117:6:17","typeDescriptions":{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"},"typeName":{"id":3430,"name":"uint32","nodeType":"ElementaryTypeName","src":"4117:6:17","typeDescriptions":{}}},"id":3437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4117:40:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"VariableDeclarationStatement","src":"4097:60:17"},{"assignments":[3440],"declarations":[{"constant":false,"id":3440,"mutability":"mutable","name":"farCallAbi","nameLocation":"4176:10:17","nodeType":"VariableDeclaration","scope":3471,"src":"4168:18:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3439,"name":"uint256","nodeType":"ElementaryTypeName","src":"4168:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3454,"initialValue":{"arguments":[{"hexValue":"30","id":3443,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4238:1:17","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":3444,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4253:1:17","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":3445,"name":"dataStart","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3425,"src":"4268:9:17","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"id":3446,"name":"dataLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3429,"src":"4291:10:17","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"id":3447,"name":"gasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3409,"src":"4315:8:17","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"hexValue":"30","id":3448,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4385:1:17","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"expression":{"id":3449,"name":"CalldataForwardingMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3405,"src":"4400:22:17","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CalldataForwardingMode_$3405_$","typeString":"type(enum CalldataForwardingMode)"}},"id":3450,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4423:7:17","memberName":"UseHeap","nodeType":"MemberAccess","referencedDeclaration":3402,"src":"4400:30:17","typeDescriptions":{"typeIdentifier":"t_enum$_CalldataForwardingMode_$3405","typeString":"enum CalldataForwardingMode"}},{"hexValue":"66616c7365","id":3451,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4444:5:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"74727565","id":3452,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4463:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_enum$_CalldataForwardingMode_$3405","typeString":"enum CalldataForwardingMode"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":3441,"name":"SystemContractsCaller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3683,"src":"4189:21:17","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SystemContractsCaller_$3683_$","typeString":"type(library SystemContractsCaller)"}},"id":3442,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4211:13:17","memberName":"getFarCallABI","nodeType":"MemberAccess","referencedDeclaration":3614,"src":"4189:35:17","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint32_$_t_uint32_$_t_uint32_$_t_uint32_$_t_uint32_$_t_uint8_$_t_enum$_CalldataForwardingMode_$3405_$_t_bool_$_t_bool_$returns$_t_uint256_$","typeString":"function (uint32,uint32,uint32,uint32,uint32,uint8,enum CalldataForwardingMode,bool,bool) pure returns (uint256)"}},"id":3453,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4189:288:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4168:309:17"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3455,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3413,"src":"4492:5:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":3456,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4501:1:17","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4492:10:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":3469,"nodeType":"Block","src":"4674:415:17","statements":[{"assignments":[3461],"declarations":[{"constant":false,"id":3461,"mutability":"mutable","name":"msgValueSimulator","nameLocation":"4696:17:17","nodeType":"VariableDeclaration","scope":3469,"src":"4688:25:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3460,"name":"address","nodeType":"ElementaryTypeName","src":"4688:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":3463,"initialValue":{"id":3462,"name":"MSG_VALUE_SYSTEM_CONTRACT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1040,"src":"4716:25:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4688:53:17"},{"assignments":[3465],"declarations":[{"constant":false,"id":3465,"mutability":"mutable","name":"forwardMask","nameLocation":"4893:11:17","nodeType":"VariableDeclaration","scope":3469,"src":"4885:19:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3464,"name":"uint256","nodeType":"ElementaryTypeName","src":"4885:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3467,"initialValue":{"id":3466,"name":"MSG_VALUE_SIMULATOR_IS_SYSTEM_BIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1107,"src":"4907:33:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4885:55:17"},{"AST":{"nodeType":"YulBlock","src":"4964:115:17","statements":[{"nodeType":"YulAssignment","src":"4982:83:17","value":{"arguments":[{"name":"msgValueSimulator","nodeType":"YulIdentifier","src":"4998:17:17"},{"name":"callAddr","nodeType":"YulIdentifier","src":"5017:8:17"},{"name":"value","nodeType":"YulIdentifier","src":"5027:5:17"},{"name":"to","nodeType":"YulIdentifier","src":"5034:2:17"},{"name":"farCallAbi","nodeType":"YulIdentifier","src":"5038:10:17"},{"name":"forwardMask","nodeType":"YulIdentifier","src":"5050:11:17"},{"kind":"number","nodeType":"YulLiteral","src":"5063:1:17","type":"","value":"0"}],"functionName":{"name":"call","nodeType":"YulIdentifier","src":"4993:4:17"},"nodeType":"YulFunctionCall","src":"4993:72:17"},"variableNames":[{"name":"success","nodeType":"YulIdentifier","src":"4982:7:17"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":3421,"isOffset":false,"isSlot":false,"src":"5017:8:17","valueSize":1},{"declaration":3440,"isOffset":false,"isSlot":false,"src":"5038:10:17","valueSize":1},{"declaration":3465,"isOffset":false,"isSlot":false,"src":"5050:11:17","valueSize":1},{"declaration":3461,"isOffset":false,"isSlot":false,"src":"4998:17:17","valueSize":1},{"declaration":3418,"isOffset":false,"isSlot":false,"src":"4982:7:17","valueSize":1},{"declaration":3411,"isOffset":false,"isSlot":false,"src":"5034:2:17","valueSize":1},{"declaration":3413,"isOffset":false,"isSlot":false,"src":"5027:5:17","valueSize":1}],"id":3468,"nodeType":"InlineAssembly","src":"4955:124:17"}]},"id":3470,"nodeType":"IfStatement","src":"4488:601:17","trueBody":{"id":3459,"nodeType":"Block","src":"4504:164:17","statements":[{"AST":{"nodeType":"YulBlock","src":"4573:85:17","statements":[{"nodeType":"YulAssignment","src":"4591:53:17","value":{"arguments":[{"name":"to","nodeType":"YulIdentifier","src":"4607:2:17"},{"name":"callAddr","nodeType":"YulIdentifier","src":"4611:8:17"},{"kind":"number","nodeType":"YulLiteral","src":"4621:1:17","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4624:1:17","type":"","value":"0"},{"name":"farCallAbi","nodeType":"YulIdentifier","src":"4627:10:17"},{"kind":"number","nodeType":"YulLiteral","src":"4639:1:17","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4642:1:17","type":"","value":"0"}],"functionName":{"name":"call","nodeType":"YulIdentifier","src":"4602:4:17"},"nodeType":"YulFunctionCall","src":"4602:42:17"},"variableNames":[{"name":"success","nodeType":"YulIdentifier","src":"4591:7:17"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":3421,"isOffset":false,"isSlot":false,"src":"4611:8:17","valueSize":1},{"declaration":3440,"isOffset":false,"isSlot":false,"src":"4627:10:17","valueSize":1},{"declaration":3418,"isOffset":false,"isSlot":false,"src":"4591:7:17","valueSize":1},{"declaration":3411,"isOffset":false,"isSlot":false,"src":"4607:2:17","valueSize":1}],"id":3458,"nodeType":"InlineAssembly","src":"4564:94:17"}]}}]},"documentation":{"id":3407,"nodeType":"StructuredDocumentation","src":"3421:396:17","text":"@notice Makes a call with the `isSystem` flag.\n @param gasLimit The gas limit for the call.\n @param to The address to call.\n @param value The value to pass with the transaction.\n @param data The calldata.\n @return success Whether the transaction has been successful.\n @dev Note, that the `isSystem` flag can only be set when calling system contracts."},"id":3472,"implemented":true,"kind":"function","modifiers":[],"name":"systemCall","nameLocation":"3831:10:17","nodeType":"FunctionDefinition","parameters":{"id":3416,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3409,"mutability":"mutable","name":"gasLimit","nameLocation":"3849:8:17","nodeType":"VariableDeclaration","scope":3472,"src":"3842:15:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":3408,"name":"uint32","nodeType":"ElementaryTypeName","src":"3842:6:17","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":3411,"mutability":"mutable","name":"to","nameLocation":"3867:2:17","nodeType":"VariableDeclaration","scope":3472,"src":"3859:10:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3410,"name":"address","nodeType":"ElementaryTypeName","src":"3859:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3413,"mutability":"mutable","name":"value","nameLocation":"3879:5:17","nodeType":"VariableDeclaration","scope":3472,"src":"3871:13:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3412,"name":"uint256","nodeType":"ElementaryTypeName","src":"3871:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3415,"mutability":"mutable","name":"data","nameLocation":"3899:4:17","nodeType":"VariableDeclaration","scope":3472,"src":"3886:17:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3414,"name":"bytes","nodeType":"ElementaryTypeName","src":"3886:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3841:63:17"},"returnParameters":{"id":3419,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3418,"mutability":"mutable","name":"success","nameLocation":"3928:7:17","nodeType":"VariableDeclaration","scope":3472,"src":"3923:12:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3417,"name":"bool","nodeType":"ElementaryTypeName","src":"3923:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3922:14:17"},"scope":3683,"src":"3822:1273:17","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3509,"nodeType":"Block","src":"5807:280:17","statements":[{"expression":{"id":3495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3488,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3484,"src":"5817:7:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":3490,"name":"gasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3475,"src":"5838:8:17","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"id":3491,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3477,"src":"5848:2:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3492,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3479,"src":"5852:5:17","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":3493,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3481,"src":"5859:4:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3489,"name":"systemCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3472,"src":"5827:10:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint32_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$","typeString":"function (uint32,address,uint256,bytes memory) returns (bool)"}},"id":3494,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5827:37:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5817:47:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3496,"nodeType":"ExpressionStatement","src":"5817:47:17"},{"assignments":[3498],"declarations":[{"constant":false,"id":3498,"mutability":"mutable","name":"size","nameLocation":"5883:4:17","nodeType":"VariableDeclaration","scope":3509,"src":"5875:12:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3497,"name":"uint256","nodeType":"ElementaryTypeName","src":"5875:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3499,"nodeType":"VariableDeclarationStatement","src":"5875:12:17"},{"AST":{"nodeType":"YulBlock","src":"5906:48:17","statements":[{"nodeType":"YulAssignment","src":"5920:24:17","value":{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"5928:14:17"},"nodeType":"YulFunctionCall","src":"5928:16:17"},"variableNames":[{"name":"size","nodeType":"YulIdentifier","src":"5920:4:17"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":3498,"isOffset":false,"isSlot":false,"src":"5920:4:17","valueSize":1}],"id":3500,"nodeType":"InlineAssembly","src":"5897:57:17"},{"expression":{"id":3506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3501,"name":"returnData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3486,"src":"5964:10:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":3504,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3498,"src":"5987:4:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3503,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"5977:9:17","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":3502,"name":"bytes","nodeType":"ElementaryTypeName","src":"5981:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":3505,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5977:15:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"5964:28:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3507,"nodeType":"ExpressionStatement","src":"5964:28:17"},{"AST":{"nodeType":"YulBlock","src":"6011:70:17","statements":[{"expression":{"arguments":[{"arguments":[{"name":"returnData","nodeType":"YulIdentifier","src":"6044:10:17"},{"kind":"number","nodeType":"YulLiteral","src":"6056:4:17","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6040:3:17"},"nodeType":"YulFunctionCall","src":"6040:21:17"},{"kind":"number","nodeType":"YulLiteral","src":"6063:1:17","type":"","value":"0"},{"name":"size","nodeType":"YulIdentifier","src":"6066:4:17"}],"functionName":{"name":"returndatacopy","nodeType":"YulIdentifier","src":"6025:14:17"},"nodeType":"YulFunctionCall","src":"6025:46:17"},"nodeType":"YulExpressionStatement","src":"6025:46:17"}]},"evmVersion":"paris","externalReferences":[{"declaration":3486,"isOffset":false,"isSlot":false,"src":"6044:10:17","valueSize":1},{"declaration":3498,"isOffset":false,"isSlot":false,"src":"6066:4:17","valueSize":1}],"id":3508,"nodeType":"InlineAssembly","src":"6002:79:17"}]},"documentation":{"id":3473,"nodeType":"StructuredDocumentation","src":"5101:509:17","text":"@notice Makes a call with the `isSystem` flag.\n @param gasLimit The gas limit for the call.\n @param to The address to call.\n @param value The value to pass with the transaction.\n @param data The calldata.\n @return success Whether the transaction has been successful.\n @return returnData The returndata of the transaction (revert reason in case the transaction has failed).\n @dev Note, that the `isSystem` flag can only be set when calling system contracts."},"id":3510,"implemented":true,"kind":"function","modifiers":[],"name":"systemCallWithReturndata","nameLocation":"5624:24:17","nodeType":"FunctionDefinition","parameters":{"id":3482,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3475,"mutability":"mutable","name":"gasLimit","nameLocation":"5665:8:17","nodeType":"VariableDeclaration","scope":3510,"src":"5658:15:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":3474,"name":"uint32","nodeType":"ElementaryTypeName","src":"5658:6:17","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":3477,"mutability":"mutable","name":"to","nameLocation":"5691:2:17","nodeType":"VariableDeclaration","scope":3510,"src":"5683:10:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3476,"name":"address","nodeType":"ElementaryTypeName","src":"5683:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3479,"mutability":"mutable","name":"value","nameLocation":"5711:5:17","nodeType":"VariableDeclaration","scope":3510,"src":"5703:13:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":3478,"name":"uint128","nodeType":"ElementaryTypeName","src":"5703:7:17","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":3481,"mutability":"mutable","name":"data","nameLocation":"5739:4:17","nodeType":"VariableDeclaration","scope":3510,"src":"5726:17:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3480,"name":"bytes","nodeType":"ElementaryTypeName","src":"5726:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5648:101:17"},"returnParameters":{"id":3487,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3484,"mutability":"mutable","name":"success","nameLocation":"5773:7:17","nodeType":"VariableDeclaration","scope":3510,"src":"5768:12:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3483,"name":"bool","nodeType":"ElementaryTypeName","src":"5768:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3486,"mutability":"mutable","name":"returnData","nameLocation":"5795:10:17","nodeType":"VariableDeclaration","scope":3510,"src":"5782:23:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3485,"name":"bytes","nodeType":"ElementaryTypeName","src":"5782:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5767:39:17"},"scope":3683,"src":"5615:472:17","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3543,"nodeType":"Block","src":"6754:284:17","statements":[{"assignments":[3525],"declarations":[{"constant":false,"id":3525,"mutability":"mutable","name":"success","nameLocation":"6769:7:17","nodeType":"VariableDeclaration","scope":3543,"src":"6764:12:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3524,"name":"bool","nodeType":"ElementaryTypeName","src":"6764:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":3526,"nodeType":"VariableDeclarationStatement","src":"6764:12:17"},{"expression":{"id":3536,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":3527,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3525,"src":"6787:7:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":3528,"name":"returnData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3522,"src":"6796:10:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":3529,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"6786:21:17","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":3531,"name":"gasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3513,"src":"6835:8:17","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"id":3532,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3515,"src":"6845:2:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3533,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3517,"src":"6849:5:17","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":3534,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3519,"src":"6856:4:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3530,"name":"systemCallWithReturndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3510,"src":"6810:24:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint32_$_t_address_$_t_uint128_$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (uint32,address,uint128,bytes memory) returns (bool,bytes memory)"}},"id":3535,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6810:51:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"src":"6786:75:17","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3537,"nodeType":"ExpressionStatement","src":"6786:75:17"},{"condition":{"id":3539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"6876:8:17","subExpression":{"id":3538,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3525,"src":"6877:7:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3542,"nodeType":"IfStatement","src":"6872:160:17","trueBody":{"id":3541,"nodeType":"Block","src":"6886:146:17","statements":[{"AST":{"nodeType":"YulBlock","src":"6909:113:17","statements":[{"nodeType":"YulVariableDeclaration","src":"6927:29:17","value":{"arguments":[{"name":"returnData","nodeType":"YulIdentifier","src":"6945:10:17"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6939:5:17"},"nodeType":"YulFunctionCall","src":"6939:17:17"},"variables":[{"name":"size","nodeType":"YulTypedName","src":"6931:4:17","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"returnData","nodeType":"YulIdentifier","src":"6984:10:17"},{"kind":"number","nodeType":"YulLiteral","src":"6996:4:17","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6980:3:17"},"nodeType":"YulFunctionCall","src":"6980:21:17"},{"name":"size","nodeType":"YulIdentifier","src":"7003:4:17"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6973:6:17"},"nodeType":"YulFunctionCall","src":"6973:35:17"},"nodeType":"YulExpressionStatement","src":"6973:35:17"}]},"evmVersion":"paris","externalReferences":[{"declaration":3522,"isOffset":false,"isSlot":false,"src":"6945:10:17","valueSize":1},{"declaration":3522,"isOffset":false,"isSlot":false,"src":"6984:10:17","valueSize":1}],"id":3540,"nodeType":"InlineAssembly","src":"6900:122:17"}]}}]},"documentation":{"id":3511,"nodeType":"StructuredDocumentation","src":"6093:472:17","text":"@notice Makes a call with the `isSystem` flag.\n @param gasLimit The gas limit for the call.\n @param to The address to call.\n @param value The value to pass with the transaction.\n @param data The calldata.\n @return returnData The returndata of the transaction. In case the transaction reverts, the error\n bubbles up to the parent frame.\n @dev Note, that the `isSystem` flag can only be set when calling system contracts."},"id":3544,"implemented":true,"kind":"function","modifiers":[],"name":"systemCallWithPropagatedRevert","nameLocation":"6579:30:17","nodeType":"FunctionDefinition","parameters":{"id":3520,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3513,"mutability":"mutable","name":"gasLimit","nameLocation":"6626:8:17","nodeType":"VariableDeclaration","scope":3544,"src":"6619:15:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":3512,"name":"uint32","nodeType":"ElementaryTypeName","src":"6619:6:17","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":3515,"mutability":"mutable","name":"to","nameLocation":"6652:2:17","nodeType":"VariableDeclaration","scope":3544,"src":"6644:10:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3514,"name":"address","nodeType":"ElementaryTypeName","src":"6644:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3517,"mutability":"mutable","name":"value","nameLocation":"6672:5:17","nodeType":"VariableDeclaration","scope":3544,"src":"6664:13:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":3516,"name":"uint128","nodeType":"ElementaryTypeName","src":"6664:7:17","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":3519,"mutability":"mutable","name":"data","nameLocation":"6700:4:17","nodeType":"VariableDeclaration","scope":3544,"src":"6687:17:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3518,"name":"bytes","nodeType":"ElementaryTypeName","src":"6687:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6609:101:17"},"returnParameters":{"id":3523,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3522,"mutability":"mutable","name":"returnData","nameLocation":"6742:10:17","nodeType":"VariableDeclaration","scope":3544,"src":"6729:23:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3521,"name":"bytes","nodeType":"ElementaryTypeName","src":"6729:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6728:25:17"},"scope":3683,"src":"6570:468:17","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3613,"nodeType":"Block","src":"9748:474:17","statements":[{"expression":{"id":3577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3569,"name":"farCallAbi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3567,"src":"9803:10:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":3571,"name":"gasPassed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3555,"src":"9862:9:17","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"id":3572,"name":"shardId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3557,"src":"9885:7:17","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":3573,"name":"forwardingMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3560,"src":"9906:14:17","typeDescriptions":{"typeIdentifier":"t_enum$_CalldataForwardingMode_$3405","typeString":"enum CalldataForwardingMode"}},{"id":3574,"name":"isConstructorCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3562,"src":"9934:17:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":3575,"name":"isSystemCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3564,"src":"9965:12:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_enum$_CalldataForwardingMode_$3405","typeString":"enum CalldataForwardingMode"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":3570,"name":"getFarCallABIWithEmptyFatPointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3682,"src":"9816:32:17","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint32_$_t_uint8_$_t_enum$_CalldataForwardingMode_$3405_$_t_bool_$_t_bool_$returns$_t_uint256_$","typeString":"function (uint32,uint8,enum CalldataForwardingMode,bool,bool) pure returns (uint256)"}},"id":3576,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9816:171:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9803:184:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3578,"nodeType":"ExpressionStatement","src":"9803:184:17"},{"expression":{"id":3581,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3579,"name":"farCallAbi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3567,"src":"10039:10:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"|=","rightHandSide":{"id":3580,"name":"dataOffset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3547,"src":"10053:10:17","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"10039:24:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3582,"nodeType":"ExpressionStatement","src":"10039:24:17"},{"expression":{"id":3591,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3583,"name":"farCallAbi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3567,"src":"10073:10:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"|=","rightHandSide":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":3586,"name":"memoryPage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3549,"src":"10096:10:17","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"}],"id":3585,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10088:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3584,"name":"uint256","nodeType":"ElementaryTypeName","src":"10088:7:17","typeDescriptions":{}}},"id":3587,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10088:19:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3332","id":3588,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10111:2:17","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"10088:25:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3590,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10087:27:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10073:41:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3592,"nodeType":"ExpressionStatement","src":"10073:41:17"},{"expression":{"id":3601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3593,"name":"farCallAbi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3567,"src":"10124:10:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"|=","rightHandSide":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3599,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":3596,"name":"dataStart","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3551,"src":"10147:9:17","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"}],"id":3595,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10139:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3594,"name":"uint256","nodeType":"ElementaryTypeName","src":"10139:7:17","typeDescriptions":{}}},"id":3597,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10139:18:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3634","id":3598,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10161:2:17","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"10139:24:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3600,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10138:26:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10124:40:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3602,"nodeType":"ExpressionStatement","src":"10124:40:17"},{"expression":{"id":3611,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3603,"name":"farCallAbi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3567,"src":"10174:10:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"|=","rightHandSide":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3609,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":3606,"name":"dataLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3553,"src":"10197:10:17","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"}],"id":3605,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10189:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3604,"name":"uint256","nodeType":"ElementaryTypeName","src":"10189:7:17","typeDescriptions":{}}},"id":3607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10189:19:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3936","id":3608,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10212:2:17","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"96"},"src":"10189:25:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3610,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10188:27:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10174:41:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3612,"nodeType":"ExpressionStatement","src":"10174:41:17"}]},"documentation":{"id":3545,"nodeType":"StructuredDocumentation","src":"7044:2365:17","text":"@notice Calculates the packed representation of the FarCallABI.\n @param dataOffset Calldata offset in memory. Provide 0 unless using custom pointer.\n @param memoryPage Memory page to use. Provide 0 unless using custom pointer.\n @param dataStart The start of the calldata slice. Provide the offset in memory\n if not using custom pointer.\n @param dataLength The calldata length. Provide the length of the calldata in bytes\n unless using custom pointer.\n @param gasPassed The gas to pass with the call.\n @param shardId Of the account to call. Currently only 0 is supported.\n @param forwardingMode The forwarding mode to use:\n - provide CalldataForwardingMode.UseHeap when using your current memory\n - provide CalldataForwardingMode.ForwardFatPointer when using custom pointer.\n @param isConstructorCall Whether the call will be a call to the constructor\n (ignored when the caller is not a system contract).\n @param isSystemCall Whether the call will have the `isSystem` flag.\n @return farCallAbi The far call ABI.\n @dev The `FarCallABI` has the following structure:\n pub struct FarCallABI {\n pub memory_quasi_fat_pointer: FatPointer,\n pub gas_passed: u32,\n pub shard_id: u8,\n pub forwarding_mode: FarCallForwardPageType,\n pub constructor_call: bool,\n pub to_system: bool,\n }\n The FatPointer struct:\n pub struct FatPointer {\n pub offset: u32, // offset relative to `start`\n pub memory_page: u32, // memory page where slice is located\n pub start: u32, // absolute start of the slice\n pub length: u32, // length of the slice\n }\n @dev Note, that the actual layout is the following:\n [0..32) bits -- the calldata offset\n [32..64) bits -- the memory page to use. Can be left blank in most of the cases.\n [64..96) bits -- the absolute start of the slice\n [96..128) bits -- the length of the slice.\n [128..192) bits -- empty bits.\n [192..224) bits -- gasPassed.\n [224..232) bits -- forwarding_mode\n [232..240) bits -- shard id.\n [240..248) bits -- constructor call flag\n [248..256] bits -- system call flag"},"id":3614,"implemented":true,"kind":"function","modifiers":[],"name":"getFarCallABI","nameLocation":"9423:13:17","nodeType":"FunctionDefinition","parameters":{"id":3565,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3547,"mutability":"mutable","name":"dataOffset","nameLocation":"9453:10:17","nodeType":"VariableDeclaration","scope":3614,"src":"9446:17:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":3546,"name":"uint32","nodeType":"ElementaryTypeName","src":"9446:6:17","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":3549,"mutability":"mutable","name":"memoryPage","nameLocation":"9480:10:17","nodeType":"VariableDeclaration","scope":3614,"src":"9473:17:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":3548,"name":"uint32","nodeType":"ElementaryTypeName","src":"9473:6:17","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":3551,"mutability":"mutable","name":"dataStart","nameLocation":"9507:9:17","nodeType":"VariableDeclaration","scope":3614,"src":"9500:16:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":3550,"name":"uint32","nodeType":"ElementaryTypeName","src":"9500:6:17","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":3553,"mutability":"mutable","name":"dataLength","nameLocation":"9533:10:17","nodeType":"VariableDeclaration","scope":3614,"src":"9526:17:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":3552,"name":"uint32","nodeType":"ElementaryTypeName","src":"9526:6:17","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":3555,"mutability":"mutable","name":"gasPassed","nameLocation":"9560:9:17","nodeType":"VariableDeclaration","scope":3614,"src":"9553:16:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":3554,"name":"uint32","nodeType":"ElementaryTypeName","src":"9553:6:17","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":3557,"mutability":"mutable","name":"shardId","nameLocation":"9585:7:17","nodeType":"VariableDeclaration","scope":3614,"src":"9579:13:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3556,"name":"uint8","nodeType":"ElementaryTypeName","src":"9579:5:17","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":3560,"mutability":"mutable","name":"forwardingMode","nameLocation":"9625:14:17","nodeType":"VariableDeclaration","scope":3614,"src":"9602:37:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_CalldataForwardingMode_$3405","typeString":"enum CalldataForwardingMode"},"typeName":{"id":3559,"nodeType":"UserDefinedTypeName","pathNode":{"id":3558,"name":"CalldataForwardingMode","nameLocations":["9602:22:17"],"nodeType":"IdentifierPath","referencedDeclaration":3405,"src":"9602:22:17"},"referencedDeclaration":3405,"src":"9602:22:17","typeDescriptions":{"typeIdentifier":"t_enum$_CalldataForwardingMode_$3405","typeString":"enum CalldataForwardingMode"}},"visibility":"internal"},{"constant":false,"id":3562,"mutability":"mutable","name":"isConstructorCall","nameLocation":"9654:17:17","nodeType":"VariableDeclaration","scope":3614,"src":"9649:22:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3561,"name":"bool","nodeType":"ElementaryTypeName","src":"9649:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3564,"mutability":"mutable","name":"isSystemCall","nameLocation":"9686:12:17","nodeType":"VariableDeclaration","scope":3614,"src":"9681:17:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3563,"name":"bool","nodeType":"ElementaryTypeName","src":"9681:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"9436:268:17"},"returnParameters":{"id":3568,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3567,"mutability":"mutable","name":"farCallAbi","nameLocation":"9736:10:17","nodeType":"VariableDeclaration","scope":3614,"src":"9728:18:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3566,"name":"uint256","nodeType":"ElementaryTypeName","src":"9728:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9727:20:17"},"scope":3683,"src":"9414:808:17","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3681,"nodeType":"Block","src":"11257:395:17","statements":[{"expression":{"id":3639,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3631,"name":"farCallAbiWithEmptyFatPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3629,"src":"11267:25:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"|=","rightHandSide":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":3634,"name":"gasPassed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3617,"src":"11305:9:17","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"}],"id":3633,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11297:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3632,"name":"uint256","nodeType":"ElementaryTypeName","src":"11297:7:17","typeDescriptions":{}}},"id":3635,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11297:18:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313932","id":3636,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11319:3:17","typeDescriptions":{"typeIdentifier":"t_rational_192_by_1","typeString":"int_const 192"},"value":"192"},"src":"11297:25:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3638,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11296:27:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11267:56:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3640,"nodeType":"ExpressionStatement","src":"11267:56:17"},{"expression":{"id":3649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3641,"name":"farCallAbiWithEmptyFatPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3629,"src":"11333:25:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"|=","rightHandSide":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":3644,"name":"forwardingMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3622,"src":"11371:14:17","typeDescriptions":{"typeIdentifier":"t_enum$_CalldataForwardingMode_$3405","typeString":"enum CalldataForwardingMode"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_CalldataForwardingMode_$3405","typeString":"enum CalldataForwardingMode"}],"id":3643,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11363:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3642,"name":"uint256","nodeType":"ElementaryTypeName","src":"11363:7:17","typeDescriptions":{}}},"id":3645,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11363:23:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323234","id":3646,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11390:3:17","typeDescriptions":{"typeIdentifier":"t_rational_224_by_1","typeString":"int_const 224"},"value":"224"},"src":"11363:30:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3648,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11362:32:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11333:61:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3650,"nodeType":"ExpressionStatement","src":"11333:61:17"},{"expression":{"id":3659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3651,"name":"farCallAbiWithEmptyFatPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3629,"src":"11404:25:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"|=","rightHandSide":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3657,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":3654,"name":"shardId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3619,"src":"11442:7:17","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":3653,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11434:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3652,"name":"uint256","nodeType":"ElementaryTypeName","src":"11434:7:17","typeDescriptions":{}}},"id":3655,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11434:16:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323332","id":3656,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11454:3:17","typeDescriptions":{"typeIdentifier":"t_rational_232_by_1","typeString":"int_const 232"},"value":"232"},"src":"11434:23:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3658,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11433:25:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11404:54:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3660,"nodeType":"ExpressionStatement","src":"11404:54:17"},{"condition":{"id":3661,"name":"isConstructorCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3624,"src":"11472:17:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3670,"nodeType":"IfStatement","src":"11468:87:17","trueBody":{"id":3669,"nodeType":"Block","src":"11491:64:17","statements":[{"expression":{"id":3667,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3662,"name":"farCallAbiWithEmptyFatPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3629,"src":"11505:25:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"|=","rightHandSide":{"components":[{"commonType":{"typeIdentifier":"t_rational_1766847064778384329583297500742918515827483896875618958121606201292619776_by_1","typeString":"int_const 1766...(65 digits omitted)...9776"},"id":3665,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3663,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11535:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323430","id":3664,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11540:3:17","typeDescriptions":{"typeIdentifier":"t_rational_240_by_1","typeString":"int_const 240"},"value":"240"},"src":"11535:8:17","typeDescriptions":{"typeIdentifier":"t_rational_1766847064778384329583297500742918515827483896875618958121606201292619776_by_1","typeString":"int_const 1766...(65 digits omitted)...9776"}}],"id":3666,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"11534:10:17","typeDescriptions":{"typeIdentifier":"t_rational_1766847064778384329583297500742918515827483896875618958121606201292619776_by_1","typeString":"int_const 1766...(65 digits omitted)...9776"}},"src":"11505:39:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3668,"nodeType":"ExpressionStatement","src":"11505:39:17"}]}},{"condition":{"id":3671,"name":"isSystemCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3626,"src":"11568:12:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3680,"nodeType":"IfStatement","src":"11564:82:17","trueBody":{"id":3679,"nodeType":"Block","src":"11582:64:17","statements":[{"expression":{"id":3677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3672,"name":"farCallAbiWithEmptyFatPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3629,"src":"11596:25:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"|=","rightHandSide":{"components":[{"commonType":{"typeIdentifier":"t_rational_452312848583266388373324160190187140051835877600158453279131187530910662656_by_1","typeString":"int_const 4523...(67 digits omitted)...2656"},"id":3675,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3673,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11626:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323438","id":3674,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11631:3:17","typeDescriptions":{"typeIdentifier":"t_rational_248_by_1","typeString":"int_const 248"},"value":"248"},"src":"11626:8:17","typeDescriptions":{"typeIdentifier":"t_rational_452312848583266388373324160190187140051835877600158453279131187530910662656_by_1","typeString":"int_const 4523...(67 digits omitted)...2656"}}],"id":3676,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"11625:10:17","typeDescriptions":{"typeIdentifier":"t_rational_452312848583266388373324160190187140051835877600158453279131187530910662656_by_1","typeString":"int_const 4523...(67 digits omitted)...2656"}},"src":"11596:39:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3678,"nodeType":"ExpressionStatement","src":"11596:39:17"}]}}]},"documentation":{"id":3615,"nodeType":"StructuredDocumentation","src":"10228:763:17","text":"@notice Calculates the packed representation of the FarCallABI with zero fat pointer fields.\n @param gasPassed The gas to pass with the call.\n @param shardId Of the account to call. Currently only 0 is supported.\n @param forwardingMode The forwarding mode to use:\n - provide CalldataForwardingMode.UseHeap when using your current memory\n - provide CalldataForwardingMode.ForwardFatPointer when using custom pointer.\n @param isConstructorCall Whether the call will be a call to the constructor\n (ignored when the caller is not a system contract).\n @param isSystemCall Whether the call will have the `isSystem` flag.\n @return farCallAbiWithEmptyFatPtr The far call ABI with zero fat pointer fields."},"id":3682,"implemented":true,"kind":"function","modifiers":[],"name":"getFarCallABIWithEmptyFatPointer","nameLocation":"11005:32:17","nodeType":"FunctionDefinition","parameters":{"id":3627,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3617,"mutability":"mutable","name":"gasPassed","nameLocation":"11054:9:17","nodeType":"VariableDeclaration","scope":3682,"src":"11047:16:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":3616,"name":"uint32","nodeType":"ElementaryTypeName","src":"11047:6:17","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":3619,"mutability":"mutable","name":"shardId","nameLocation":"11079:7:17","nodeType":"VariableDeclaration","scope":3682,"src":"11073:13:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3618,"name":"uint8","nodeType":"ElementaryTypeName","src":"11073:5:17","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":3622,"mutability":"mutable","name":"forwardingMode","nameLocation":"11119:14:17","nodeType":"VariableDeclaration","scope":3682,"src":"11096:37:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_CalldataForwardingMode_$3405","typeString":"enum CalldataForwardingMode"},"typeName":{"id":3621,"nodeType":"UserDefinedTypeName","pathNode":{"id":3620,"name":"CalldataForwardingMode","nameLocations":["11096:22:17"],"nodeType":"IdentifierPath","referencedDeclaration":3405,"src":"11096:22:17"},"referencedDeclaration":3405,"src":"11096:22:17","typeDescriptions":{"typeIdentifier":"t_enum$_CalldataForwardingMode_$3405","typeString":"enum CalldataForwardingMode"}},"visibility":"internal"},{"constant":false,"id":3624,"mutability":"mutable","name":"isConstructorCall","nameLocation":"11148:17:17","nodeType":"VariableDeclaration","scope":3682,"src":"11143:22:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3623,"name":"bool","nodeType":"ElementaryTypeName","src":"11143:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3626,"mutability":"mutable","name":"isSystemCall","nameLocation":"11180:12:17","nodeType":"VariableDeclaration","scope":3682,"src":"11175:17:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3625,"name":"bool","nodeType":"ElementaryTypeName","src":"11175:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"11037:161:17"},"returnParameters":{"id":3630,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3629,"mutability":"mutable","name":"farCallAbiWithEmptyFatPtr","nameLocation":"11230:25:17","nodeType":"VariableDeclaration","scope":3682,"src":"11222:33:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3628,"name":"uint256","nodeType":"ElementaryTypeName","src":"11222:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11221:35:17"},"scope":3683,"src":"10996:656:17","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":3684,"src":"3385:8269:17","usedErrors":[]}],"src":"33:11622:17"}},"@matterlabs/zksync-contracts/l2/system-contracts/libraries/TransactionHelper.sol":{"id":18,"ast":{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/libraries/TransactionHelper.sol","exportedSymbols":{"ADDRESS_MASK":[2520],"Address":[5645],"BOOTLOADER_FORMAL_ADDRESS":[958],"CALLFLAGS_CALL_ADDRESS":[3261],"CODE_ADDRESS_CALL_ADDRESS":[3096],"CalldataForwardingMode":[3405],"EIP_1559_TX_TYPE":[3710],"EIP_2930_TX_TYPE":[3706],"EIP_712_TX_TYPE":[3698],"ETH_TOKEN_SYSTEM_CONTRACT":[1051],"EVENT_INITIALIZE_ADDRESS":[3283],"EVENT_WRITE_ADDRESS":[3294],"EfficientCall":[2170],"GET_EXTRA_ABI_DATA_ADDRESS":[3371],"Global":[2539],"IContractDeployer":[1327],"IERC20":[4998],"IERC20Permit":[5034],"INCREMENT_TX_COUNTER_CALL_ADDRESS":[3239],"IPaymasterFlow":[1634],"ISystemContract":[3068],"KECCAK256_SYSTEM_CONTRACT":[1059],"LEGACY_TX_TYPE":[3702],"LOAD_CALLDATA_INTO_ACTIVE_PTR_CALL_ADDRESS":[3305],"LOAD_LATEST_RETURNDATA_INTO_ACTIVE_PTR_CALL_ADDRESS":[3316],"MAX_SYSTEM_CONTRACT_ADDRESS":[925],"META_AUX_HEAP_SIZE_OFFSET":[3386],"META_CALLER_SHARD_ID_OFFSET":[3396],"META_CALL_ADDRESS":[3118],"META_CODE_SHARD_ID_OFFSET":[3401],"META_GAS_PER_PUBDATA_BYTE_OFFSET":[3376],"META_HEAP_SIZE_OFFSET":[3381],"META_SHARD_ID_OFFSET":[3391],"MIMIC_CALL_BY_REF_CALL_ADDRESS":[3151],"MIMIC_CALL_CALL_ADDRESS":[3129],"MSG_VALUE_SIMULATOR_IS_SYSTEM_BIT":[1107],"MSG_VALUE_SYSTEM_CONTRACT":[1040],"MULTIPLICATION_HIGH_ADDRESS":[3360],"PRECOMPILE_CALL_ADDRESS":[3107],"PTR_ADD_INTO_ACTIVE_CALL_ADDRESS":[3327],"PTR_CALLDATA_CALL_ADDRESS":[3250],"PTR_PACK_INTO_ACTIVE_CALL_ADDRESS":[3349],"PTR_RETURNDATA_CALL_ADDRESS":[3272],"PTR_SHRINK_INTO_ACTIVE_CALL_ADDRESS":[3338],"RAW_FAR_CALL_BY_REF_CALL_ADDRESS":[3184],"RAW_FAR_CALL_CALL_ADDRESS":[3173],"RLPEncoder":[2503],"SET_CONTEXT_VALUE_CALL_ADDRESS":[3217],"SET_PUBDATA_PRICE_CALL_ADDRESS":[3228],"SHA256_SYSTEM_CONTRACT":[937],"SYSTEM_CALL_BY_REF_CALL_ADDRESS":[3206],"SYSTEM_CALL_CALL_ADDRESS":[3195],"SYSTEM_MIMIC_CALL_BY_REF_CALL_ADDRESS":[3162],"SYSTEM_MIMIC_CALL_CALL_ADDRESS":[3140],"SafeERC20":[5315],"SystemContractHelper":[3048],"SystemContractsCaller":[3683],"TO_L1_CALL_ADDRESS":[3085],"Transaction":[3746],"TransactionHelper":[4646],"UINT128_MASK":[2516],"UINT32_MASK":[2513],"Utils":[4920],"ZkSyncMeta":[2533]},"id":4647,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3685,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"33:23:18"},{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/IERC20.sol","file":"../openzeppelin/token/ERC20/IERC20.sol","id":3686,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4647,"sourceUnit":4999,"src":"58:48:18","symbolAliases":[],"unitAlias":""},{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/utils/SafeERC20.sol","file":"../openzeppelin/token/ERC20/utils/SafeERC20.sol","id":3687,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4647,"sourceUnit":5316,"src":"107:57:18","symbolAliases":[],"unitAlias":""},{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymasterFlow.sol","file":"../interfaces/IPaymasterFlow.sol","id":3688,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4647,"sourceUnit":1635,"src":"166:42:18","symbolAliases":[],"unitAlias":""},{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IContractDeployer.sol","file":"../interfaces/IContractDeployer.sol","id":3689,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4647,"sourceUnit":1328,"src":"209:45:18","symbolAliases":[],"unitAlias":""},{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/Constants.sol","file":"../Constants.sol","id":3692,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4647,"sourceUnit":1124,"src":"255:86:18","symbolAliases":[{"foreign":{"id":3690,"name":"ETH_TOKEN_SYSTEM_CONTRACT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1051,"src":"263:25:18","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":3691,"name":"BOOTLOADER_FORMAL_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":958,"src":"290:25:18","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/libraries/RLPEncoder.sol","file":"./RLPEncoder.sol","id":3693,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4647,"sourceUnit":2504,"src":"342:26:18","symbolAliases":[],"unitAlias":""},{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/libraries/EfficientCall.sol","file":"./EfficientCall.sol","id":3694,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4647,"sourceUnit":2171,"src":"369:29:18","symbolAliases":[],"unitAlias":""},{"constant":true,"id":3698,"mutability":"constant","name":"EIP_712_TX_TYPE","nameLocation":"476:15:18","nodeType":"VariableDeclaration","scope":4647,"src":"461:37:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3696,"name":"uint8","nodeType":"ElementaryTypeName","src":"461:5:18","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"30783731","id":3697,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"494:4:18","typeDescriptions":{"typeIdentifier":"t_rational_113_by_1","typeString":"int_const 113"},"value":"0x71"},"visibility":"internal"},{"constant":true,"id":3702,"mutability":"constant","name":"LEGACY_TX_TYPE","nameLocation":"561:14:18","nodeType":"VariableDeclaration","scope":4647,"src":"546:35:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3700,"name":"uint8","nodeType":"ElementaryTypeName","src":"546:5:18","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"307830","id":3701,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"578:3:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x0"},"visibility":"internal"},{"constant":true,"id":3706,"mutability":"constant","name":"EIP_2930_TX_TYPE","nameLocation":"643:16:18","nodeType":"VariableDeclaration","scope":4647,"src":"628:38:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3704,"name":"uint8","nodeType":"ElementaryTypeName","src":"628:5:18","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"30783031","id":3705,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"662:4:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"0x01"},"visibility":"internal"},{"constant":true,"id":3710,"mutability":"constant","name":"EIP_1559_TX_TYPE","nameLocation":"729:16:18","nodeType":"VariableDeclaration","scope":4647,"src":"714:38:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3708,"name":"uint8","nodeType":"ElementaryTypeName","src":"714:5:18","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"30783032","id":3709,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"748:4:18","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"0x02"},"visibility":"internal"},{"canonicalName":"Transaction","id":3746,"members":[{"constant":false,"id":3712,"mutability":"mutable","name":"txType","nameLocation":"884:6:18","nodeType":"VariableDeclaration","scope":3746,"src":"876:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3711,"name":"uint256","nodeType":"ElementaryTypeName","src":"876:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3714,"mutability":"mutable","name":"from","nameLocation":"923:4:18","nodeType":"VariableDeclaration","scope":3746,"src":"915:12:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3713,"name":"uint256","nodeType":"ElementaryTypeName","src":"915:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3716,"mutability":"mutable","name":"to","nameLocation":"960:2:18","nodeType":"VariableDeclaration","scope":3746,"src":"952:10:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3715,"name":"uint256","nodeType":"ElementaryTypeName","src":"952:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3718,"mutability":"mutable","name":"gasLimit","nameLocation":"1081:8:18","nodeType":"VariableDeclaration","scope":3746,"src":"1073:16:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3717,"name":"uint256","nodeType":"ElementaryTypeName","src":"1073:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3720,"mutability":"mutable","name":"gasPerPubdataByteLimit","nameLocation":"1186:22:18","nodeType":"VariableDeclaration","scope":3746,"src":"1178:30:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3719,"name":"uint256","nodeType":"ElementaryTypeName","src":"1178:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3722,"mutability":"mutable","name":"maxFeePerGas","nameLocation":"1331:12:18","nodeType":"VariableDeclaration","scope":3746,"src":"1323:20:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3721,"name":"uint256","nodeType":"ElementaryTypeName","src":"1323:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3724,"mutability":"mutable","name":"maxPriorityFeePerGas","nameLocation":"1483:20:18","nodeType":"VariableDeclaration","scope":3746,"src":"1475:28:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3723,"name":"uint256","nodeType":"ElementaryTypeName","src":"1475:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3726,"mutability":"mutable","name":"paymaster","nameLocation":"1597:9:18","nodeType":"VariableDeclaration","scope":3746,"src":"1589:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3725,"name":"uint256","nodeType":"ElementaryTypeName","src":"1589:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3728,"mutability":"mutable","name":"nonce","nameLocation":"1657:5:18","nodeType":"VariableDeclaration","scope":3746,"src":"1649:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3727,"name":"uint256","nodeType":"ElementaryTypeName","src":"1649:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3730,"mutability":"mutable","name":"value","nameLocation":"1723:5:18","nodeType":"VariableDeclaration","scope":3746,"src":"1715:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3729,"name":"uint256","nodeType":"ElementaryTypeName","src":"1715:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3734,"mutability":"mutable","name":"reserved","nameLocation":"2237:8:18","nodeType":"VariableDeclaration","scope":3746,"src":"2226:19:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$4_storage_ptr","typeString":"uint256[4]"},"typeName":{"baseType":{"id":3731,"name":"uint256","nodeType":"ElementaryTypeName","src":"2226:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3733,"length":{"hexValue":"34","id":3732,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2234:1:18","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"nodeType":"ArrayTypeName","src":"2226:10:18","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$4_storage_ptr","typeString":"uint256[4]"}},"visibility":"internal"},{"constant":false,"id":3736,"mutability":"mutable","name":"data","nameLocation":"2292:4:18","nodeType":"VariableDeclaration","scope":3746,"src":"2286:10:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3735,"name":"bytes","nodeType":"ElementaryTypeName","src":"2286:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3738,"mutability":"mutable","name":"signature","nameLocation":"2349:9:18","nodeType":"VariableDeclaration","scope":3746,"src":"2343:15:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3737,"name":"bytes","nodeType":"ElementaryTypeName","src":"2343:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3741,"mutability":"mutable","name":"factoryDeps","nameLocation":"2602:11:18","nodeType":"VariableDeclaration","scope":3746,"src":"2592:21:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":3739,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2592:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3740,"nodeType":"ArrayTypeName","src":"2592:9:18","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":3743,"mutability":"mutable","name":"paymasterInput","nameLocation":"2660:14:18","nodeType":"VariableDeclaration","scope":3746,"src":"2654:20:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3742,"name":"bytes","nodeType":"ElementaryTypeName","src":"2654:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3745,"mutability":"mutable","name":"reservedDynamic","nameLocation":"2859:15:18","nodeType":"VariableDeclaration","scope":3746,"src":"2853:21:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3744,"name":"bytes","nodeType":"ElementaryTypeName","src":"2853:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"Transaction","nameLocation":"822:11:18","nodeType":"StructDefinition","scope":4647,"src":"815:2062:18","visibility":"public"},{"abstract":false,"baseContracts":[],"canonicalName":"TransactionHelper","contractDependencies":[],"contractKind":"library","documentation":{"id":3747,"nodeType":"StructuredDocumentation","src":"2879:135:18","text":" @author Matter Labs\n @notice Library is used to help custom accounts to work with common methods for the Transaction type."},"fullyImplemented":true,"id":4646,"linearizedBaseContracts":[4646],"name":"TransactionHelper","nameLocation":"3023:17:18","nodeType":"ContractDefinition","nodes":[{"global":false,"id":3751,"libraryName":{"id":3748,"name":"SafeERC20","nameLocations":["3053:9:18"],"nodeType":"IdentifierPath","referencedDeclaration":5315,"src":"3053:9:18"},"nodeType":"UsingForDirective","src":"3047:27:18","typeName":{"id":3750,"nodeType":"UserDefinedTypeName","pathNode":{"id":3749,"name":"IERC20","nameLocations":["3067:6:18"],"nodeType":"IdentifierPath","referencedDeclaration":4998,"src":"3067:6:18"},"referencedDeclaration":4998,"src":"3067:6:18","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4998","typeString":"contract IERC20"}}},{"constant":true,"documentation":{"id":3752,"nodeType":"StructuredDocumentation","src":"3080:58:18","text":"@notice The EIP-712 typehash for the contract's domain"},"id":3757,"mutability":"constant","name":"EIP712_DOMAIN_TYPEHASH","nameLocation":"3160:22:18","nodeType":"VariableDeclaration","scope":4646,"src":"3143:111:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3753,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3143:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e496429","id":3755,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3195:58:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_c2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6e","typeString":"literal_string \"EIP712Domain(string name,string version,uint256 chainId)\""},"value":"EIP712Domain(string name,string version,uint256 chainId)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6e","typeString":"literal_string \"EIP712Domain(string name,string version,uint256 chainId)\""}],"id":3754,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3185:9:18","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":3756,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3185:69:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":true,"id":3762,"mutability":"constant","name":"EIP712_TRANSACTION_TYPE_HASH","nameLocation":"3278:28:18","nodeType":"VariableDeclaration","scope":4646,"src":"3261:340:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3758,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3261:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"5472616e73616374696f6e2875696e74323536207478547970652c75696e743235362066726f6d2c75696e7432353620746f2c75696e74323536206761734c696d69742c75696e743235362067617350657250756264617461427974654c696d69742c75696e74323536206d61784665655065724761732c75696e74323536206d61785072696f726974794665655065724761732c75696e74323536207061796d61737465722c75696e74323536206e6f6e63652c75696e743235362076616c75652c627974657320646174612c627974657333325b5d20666163746f7279446570732c6279746573207061796d6173746572496e70757429","id":3760,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3340:251:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_848e1bfa1ac4e3576b728bda6721b215c70a7799a5b4866282a71bab954baac8","typeString":"literal_string \"Transaction(uint256 txType,uint256 from,uint256 to,uint256 gasLimit,uint256 gasPerPubdataByteLimit,uint256 maxFeePerGas,uint256 maxPriorityFeePerGas,uint256 paymaster,uint256 nonce,uint256 value,bytes data,bytes32[] factoryDeps,bytes paymasterInput)\""},"value":"Transaction(uint256 txType,uint256 from,uint256 to,uint256 gasLimit,uint256 gasPerPubdataByteLimit,uint256 maxFeePerGas,uint256 maxPriorityFeePerGas,uint256 paymaster,uint256 nonce,uint256 value,bytes data,bytes32[] factoryDeps,bytes paymasterInput)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_848e1bfa1ac4e3576b728bda6721b215c70a7799a5b4866282a71bab954baac8","typeString":"literal_string \"Transaction(uint256 txType,uint256 from,uint256 to,uint256 gasLimit,uint256 gasPerPubdataByteLimit,uint256 maxFeePerGas,uint256 maxPriorityFeePerGas,uint256 paymaster,uint256 nonce,uint256 value,bytes data,bytes32[] factoryDeps,bytes paymasterInput)\""}],"id":3759,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3317:9:18","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":3761,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3317:284:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"body":{"id":3787,"nodeType":"Block","src":"4012:99:18","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3781,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3770,"name":"_addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3765,"src":"4029:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"arguments":[{"id":3777,"name":"ETH_TOKEN_SYSTEM_CONTRACT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1051,"src":"4062:25:18","typeDescriptions":{"typeIdentifier":"t_contract$_IEthToken_$1400","typeString":"contract IEthToken"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IEthToken_$1400","typeString":"contract IEthToken"}],"id":3776,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4054:7:18","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3775,"name":"address","nodeType":"ElementaryTypeName","src":"4054:7:18","typeDescriptions":{}}},"id":3778,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4054:34:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3774,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4046:7:18","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":3773,"name":"uint160","nodeType":"ElementaryTypeName","src":"4046:7:18","typeDescriptions":{}}},"id":3779,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4046:43:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":3772,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4038:7:18","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3771,"name":"uint256","nodeType":"ElementaryTypeName","src":"4038:7:18","typeDescriptions":{}}},"id":3780,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4038:52:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4029:61:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3782,"name":"_addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3765,"src":"4094:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":3783,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4103:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4094:10:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4029:75:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":3769,"id":3786,"nodeType":"Return","src":"4022:82:18"}]},"documentation":{"id":3763,"nodeType":"StructuredDocumentation","src":"3608:335:18","text":"@notice Whether the token is Ethereum.\n @param _addr The address of the token\n @return `true` or `false` based on whether the token is Ether.\n @dev This method assumes that address is Ether either if the address is 0 (for convenience)\n or if the address is the address of the L2EthToken system contract."},"id":3788,"implemented":true,"kind":"function","modifiers":[],"name":"isEthToken","nameLocation":"3957:10:18","nodeType":"FunctionDefinition","parameters":{"id":3766,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3765,"mutability":"mutable","name":"_addr","nameLocation":"3976:5:18","nodeType":"VariableDeclaration","scope":3788,"src":"3968:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3764,"name":"uint256","nodeType":"ElementaryTypeName","src":"3968:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3967:15:18"},"returnParameters":{"id":3769,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3768,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3788,"src":"4006:4:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3767,"name":"bool","nodeType":"ElementaryTypeName","src":"4006:4:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4005:6:18"},"scope":4646,"src":"3948:163:18","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3850,"nodeType":"Block","src":"4383:744:18","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3800,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":3797,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3792,"src":"4397:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":3798,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4410:6:18","memberName":"txType","nodeType":"MemberAccess","referencedDeclaration":3712,"src":"4397:19:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":3799,"name":"LEGACY_TX_TYPE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3702,"src":"4420:14:18","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"4397:37:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":3808,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3792,"src":"4526:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":3809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4539:6:18","memberName":"txType","nodeType":"MemberAccess","referencedDeclaration":3712,"src":"4526:19:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":3810,"name":"EIP_712_TX_TYPE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3698,"src":"4549:15:18","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"4526:38:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3822,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":3819,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3792,"src":"4656:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":3820,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4669:6:18","memberName":"txType","nodeType":"MemberAccess","referencedDeclaration":3712,"src":"4656:19:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":3821,"name":"EIP_1559_TX_TYPE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3710,"src":"4679:16:18","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"4656:39:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":3830,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3792,"src":"4788:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":3831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4801:6:18","memberName":"txType","nodeType":"MemberAccess","referencedDeclaration":3712,"src":"4788:19:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":3832,"name":"EIP_2930_TX_TYPE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3706,"src":"4811:16:18","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"4788:39:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":3845,"nodeType":"Block","src":"4916:205:18","statements":[{"expression":{"arguments":[{"hexValue":"456e636f64696e6720756e737570706f72746564207478","id":3842,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5084:25:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_d28dc2dfcee97a0c91de8344d21372431c52845dce967b6ce9950778c78073de","typeString":"literal_string \"Encoding unsupported tx\""},"value":"Encoding unsupported tx"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d28dc2dfcee97a0c91de8344d21372431c52845dce967b6ce9950778c78073de","typeString":"literal_string \"Encoding unsupported tx\""}],"id":3841,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5077:6:18","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":3843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5077:33:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3844,"nodeType":"ExpressionStatement","src":"5077:33:18"}]},"id":3846,"nodeType":"IfStatement","src":"4784:337:18","trueBody":{"id":3840,"nodeType":"Block","src":"4829:81:18","statements":[{"expression":{"id":3838,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3834,"name":"resultHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3795,"src":"4843:10:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":3836,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3792,"src":"4886:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}],"id":3835,"name":"_encodeHashEIP2930Transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4285,"src":"4856:29:18","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Transaction_$3746_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct Transaction calldata) view returns (bytes32)"}},"id":3837,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4856:43:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"4843:56:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3839,"nodeType":"ExpressionStatement","src":"4843:56:18"}]}},"id":3847,"nodeType":"IfStatement","src":"4652:469:18","trueBody":{"id":3829,"nodeType":"Block","src":"4697:81:18","statements":[{"expression":{"id":3827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3823,"name":"resultHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3795,"src":"4711:10:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":3825,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3792,"src":"4754:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}],"id":3824,"name":"_encodeHashEIP1559Transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4462,"src":"4724:29:18","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Transaction_$3746_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct Transaction calldata) view returns (bytes32)"}},"id":3826,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4724:43:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"4711:56:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3828,"nodeType":"ExpressionStatement","src":"4711:56:18"}]}},"id":3848,"nodeType":"IfStatement","src":"4522:599:18","trueBody":{"id":3818,"nodeType":"Block","src":"4566:80:18","statements":[{"expression":{"id":3816,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3812,"name":"resultHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3795,"src":"4580:10:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":3814,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3792,"src":"4622:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}],"id":3813,"name":"_encodeHashEIP712Transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3933,"src":"4593:28:18","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Transaction_$3746_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct Transaction calldata) view returns (bytes32)"}},"id":3815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4593:42:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"4580:55:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3817,"nodeType":"ExpressionStatement","src":"4580:55:18"}]}},"id":3849,"nodeType":"IfStatement","src":"4393:728:18","trueBody":{"id":3807,"nodeType":"Block","src":"4436:80:18","statements":[{"expression":{"id":3805,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3801,"name":"resultHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3795,"src":"4450:10:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":3803,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3792,"src":"4492:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}],"id":3802,"name":"_encodeHashLegacyTransaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4117,"src":"4463:28:18","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Transaction_$3746_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct Transaction calldata) view returns (bytes32)"}},"id":3804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4463:42:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"4450:55:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3806,"nodeType":"ExpressionStatement","src":"4450:55:18"}]}}]},"documentation":{"id":3789,"nodeType":"StructuredDocumentation","src":"4117:163:18","text":"@notice Calculate the suggested signed hash of the transaction,\n i.e. the hash that is signed by EOAs and is recommended to be signed by other accounts."},"id":3851,"implemented":true,"kind":"function","modifiers":[],"name":"encodeHash","nameLocation":"4294:10:18","nodeType":"FunctionDefinition","parameters":{"id":3793,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3792,"mutability":"mutable","name":"_transaction","nameLocation":"4326:12:18","nodeType":"VariableDeclaration","scope":3851,"src":"4305:33:18","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction"},"typeName":{"id":3791,"nodeType":"UserDefinedTypeName","pathNode":{"id":3790,"name":"Transaction","nameLocations":["4305:11:18"],"nodeType":"IdentifierPath","referencedDeclaration":3746,"src":"4305:11:18"},"referencedDeclaration":3746,"src":"4305:11:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_storage_ptr","typeString":"struct Transaction"}},"visibility":"internal"}],"src":"4304:35:18"},"returnParameters":{"id":3796,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3795,"mutability":"mutable","name":"resultHash","nameLocation":"4371:10:18","nodeType":"VariableDeclaration","scope":3851,"src":"4363:18:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3794,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4363:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4362:20:18"},"scope":4646,"src":"4285:842:18","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":3932,"nodeType":"Block","src":"5388:981:18","statements":[{"assignments":[3861],"declarations":[{"constant":false,"id":3861,"mutability":"mutable","name":"structHash","nameLocation":"5406:10:18","nodeType":"VariableDeclaration","scope":3932,"src":"5398:18:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3860,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5398:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":3905,"initialValue":{"arguments":[{"arguments":[{"id":3865,"name":"EIP712_TRANSACTION_TYPE_HASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3762,"src":"5470:28:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":3866,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3855,"src":"5516:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":3867,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5529:6:18","memberName":"txType","nodeType":"MemberAccess","referencedDeclaration":3712,"src":"5516:19:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":3868,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3855,"src":"5553:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":3869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5566:4:18","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":3714,"src":"5553:17:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":3870,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3855,"src":"5588:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":3871,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5601:2:18","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":3716,"src":"5588:15:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":3872,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3855,"src":"5621:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":3873,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5634:8:18","memberName":"gasLimit","nodeType":"MemberAccess","referencedDeclaration":3718,"src":"5621:21:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":3874,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3855,"src":"5660:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":3875,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5673:22:18","memberName":"gasPerPubdataByteLimit","nodeType":"MemberAccess","referencedDeclaration":3720,"src":"5660:35:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":3876,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3855,"src":"5713:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":3877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5726:12:18","memberName":"maxFeePerGas","nodeType":"MemberAccess","referencedDeclaration":3722,"src":"5713:25:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":3878,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3855,"src":"5756:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":3879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5769:20:18","memberName":"maxPriorityFeePerGas","nodeType":"MemberAccess","referencedDeclaration":3724,"src":"5756:33:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":3880,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3855,"src":"5807:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":3881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5820:9:18","memberName":"paymaster","nodeType":"MemberAccess","referencedDeclaration":3726,"src":"5807:22:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":3882,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3855,"src":"5847:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":3883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5860:5:18","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":3728,"src":"5847:18:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":3884,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3855,"src":"5883:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":3885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5896:5:18","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":3730,"src":"5883:18:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"expression":{"id":3888,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3855,"src":"5940:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":3889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5953:4:18","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":3736,"src":"5940:17:18","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":3886,"name":"EfficientCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2170,"src":"5919:13:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EfficientCall_$2170_$","typeString":"type(library EfficientCall)"}},"id":3887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5933:6:18","memberName":"keccak","nodeType":"MemberAccess","referencedDeclaration":1743,"src":"5919:20:18","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (bytes calldata) view returns (bytes32)"}},"id":3890,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5919:39:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"arguments":[{"expression":{"id":3894,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3855,"src":"6003:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":3895,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6016:11:18","memberName":"factoryDeps","nodeType":"MemberAccess","referencedDeclaration":3741,"src":"6003:24:18","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}],"expression":{"id":3892,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5986:3:18","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":3893,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5990:12:18","memberName":"encodePacked","nodeType":"MemberAccess","src":"5986:16:18","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":3896,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5986:42:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3891,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5976:9:18","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":3897,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5976:53:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"expression":{"id":3900,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3855,"src":"6068:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":3901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6081:14:18","memberName":"paymasterInput","nodeType":"MemberAccess","referencedDeclaration":3743,"src":"6068:27:18","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":3898,"name":"EfficientCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2170,"src":"6047:13:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EfficientCall_$2170_$","typeString":"type(library EfficientCall)"}},"id":3899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6061:6:18","memberName":"keccak","nodeType":"MemberAccess","referencedDeclaration":1743,"src":"6047:20:18","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (bytes calldata) view returns (bytes32)"}},"id":3902,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6047:49:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":3863,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5442:3:18","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":3864,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5446:6:18","memberName":"encode","nodeType":"MemberAccess","src":"5442:10:18","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":3903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5442:668:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3862,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5419:9:18","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":3904,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5419:701:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"5398:722:18"},{"assignments":[3907],"declarations":[{"constant":false,"id":3907,"mutability":"mutable","name":"domainSeparator","nameLocation":"6139:15:18","nodeType":"VariableDeclaration","scope":3932,"src":"6131:23:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3906,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6131:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":3922,"initialValue":{"arguments":[{"arguments":[{"id":3911,"name":"EIP712_DOMAIN_TYPEHASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3757,"src":"6191:22:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"hexValue":"7a6b53796e63","id":3913,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6225:8:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_19b453ce45aaaaf3a300f5a9ec95869b4f28ab10430b572ee218c3a6a5e07d6f","typeString":"literal_string \"zkSync\""},"value":"zkSync"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_19b453ce45aaaaf3a300f5a9ec95869b4f28ab10430b572ee218c3a6a5e07d6f","typeString":"literal_string \"zkSync\""}],"id":3912,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6215:9:18","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":3914,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6215:19:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"hexValue":"32","id":3916,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6246:3:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_ad7c5bef027816a800da1736444fb58a807ef4c9603b7848673f7e3a68eb14a5","typeString":"literal_string \"2\""},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ad7c5bef027816a800da1736444fb58a807ef4c9603b7848673f7e3a68eb14a5","typeString":"literal_string \"2\""}],"id":3915,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6236:9:18","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":3917,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6236:14:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":3918,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"6252:5:18","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":3919,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6258:7:18","memberName":"chainid","nodeType":"MemberAccess","src":"6252:13:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3909,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6180:3:18","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":3910,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6184:6:18","memberName":"encode","nodeType":"MemberAccess","src":"6180:10:18","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":3920,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6180:86:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3908,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6157:9:18","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":3921,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6157:119:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"6131:145:18"},{"expression":{"arguments":[{"arguments":[{"hexValue":"1901","id":3926,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6321:10:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541","typeString":"literal_string hex\"1901\""},"value":"\u0019\u0001"},{"id":3927,"name":"domainSeparator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3907,"src":"6333:15:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3928,"name":"structHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3861,"src":"6350:10:18","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":3924,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6304:3:18","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":3925,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6308:12:18","memberName":"encodePacked","nodeType":"MemberAccess","src":"6304:16:18","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":3929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6304:57:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3923,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6294:9:18","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":3930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6294:68:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":3859,"id":3931,"nodeType":"Return","src":"6287:75:18"}]},"documentation":{"id":3852,"nodeType":"StructuredDocumentation","src":"5133:146:18","text":"@notice Encode hash of the zkSync native transaction type.\n @return keccak256 hash of the EIP-712 encoded representation of transaction"},"id":3933,"implemented":true,"kind":"function","modifiers":[],"name":"_encodeHashEIP712Transaction","nameLocation":"5293:28:18","nodeType":"FunctionDefinition","parameters":{"id":3856,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3855,"mutability":"mutable","name":"_transaction","nameLocation":"5343:12:18","nodeType":"VariableDeclaration","scope":3933,"src":"5322:33:18","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction"},"typeName":{"id":3854,"nodeType":"UserDefinedTypeName","pathNode":{"id":3853,"name":"Transaction","nameLocations":["5322:11:18"],"nodeType":"IdentifierPath","referencedDeclaration":3746,"src":"5322:11:18"},"referencedDeclaration":3746,"src":"5322:11:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_storage_ptr","typeString":"struct Transaction"}},"visibility":"internal"}],"src":"5321:35:18"},"returnParameters":{"id":3859,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3858,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3933,"src":"5379:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3857,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5379:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5378:9:18"},"scope":4646,"src":"5284:1085:18","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":4116,"nodeType":"Block","src":"6625:3173:18","statements":[{"assignments":[3943],"declarations":[{"constant":false,"id":3943,"mutability":"mutable","name":"encodedNonce","nameLocation":"7043:12:18","nodeType":"VariableDeclaration","scope":4116,"src":"7030:25:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3942,"name":"bytes","nodeType":"ElementaryTypeName","src":"7030:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":3949,"initialValue":{"arguments":[{"expression":{"id":3946,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3937,"src":"7083:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":3947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7096:5:18","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":3728,"src":"7083:18:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3944,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"7058:10:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":3945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7069:13:18","memberName":"encodeUint256","nodeType":"MemberAccess","referencedDeclaration":2286,"src":"7058:24:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":3948,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7058:44:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"7030:72:18"},{"assignments":[3951],"declarations":[{"constant":false,"id":3951,"mutability":"mutable","name":"encodedGasParam","nameLocation":"7213:15:18","nodeType":"VariableDeclaration","scope":4116,"src":"7200:28:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3950,"name":"bytes","nodeType":"ElementaryTypeName","src":"7200:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":3952,"nodeType":"VariableDeclarationStatement","src":"7200:28:18"},{"id":3978,"nodeType":"Block","src":"7238:277:18","statements":[{"assignments":[3954],"declarations":[{"constant":false,"id":3954,"mutability":"mutable","name":"encodedGasPrice","nameLocation":"7265:15:18","nodeType":"VariableDeclaration","scope":3978,"src":"7252:28:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3953,"name":"bytes","nodeType":"ElementaryTypeName","src":"7252:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":3960,"initialValue":{"arguments":[{"expression":{"id":3957,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3937,"src":"7308:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":3958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7321:12:18","memberName":"maxFeePerGas","nodeType":"MemberAccess","referencedDeclaration":3722,"src":"7308:25:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3955,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"7283:10:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":3956,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7294:13:18","memberName":"encodeUint256","nodeType":"MemberAccess","referencedDeclaration":2286,"src":"7283:24:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":3959,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7283:51:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"7252:82:18"},{"assignments":[3962],"declarations":[{"constant":false,"id":3962,"mutability":"mutable","name":"encodedGasLimit","nameLocation":"7361:15:18","nodeType":"VariableDeclaration","scope":3978,"src":"7348:28:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3961,"name":"bytes","nodeType":"ElementaryTypeName","src":"7348:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":3968,"initialValue":{"arguments":[{"expression":{"id":3965,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3937,"src":"7404:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":3966,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7417:8:18","memberName":"gasLimit","nodeType":"MemberAccess","referencedDeclaration":3718,"src":"7404:21:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3963,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"7379:10:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":3964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7390:13:18","memberName":"encodeUint256","nodeType":"MemberAccess","referencedDeclaration":2286,"src":"7379:24:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":3967,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7379:47:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"7348:78:18"},{"expression":{"id":3976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3969,"name":"encodedGasParam","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3951,"src":"7440:15:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":3973,"name":"encodedGasPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3954,"src":"7471:15:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":3974,"name":"encodedGasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3962,"src":"7488:15:18","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":3971,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7458:5:18","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":3970,"name":"bytes","nodeType":"ElementaryTypeName","src":"7458:5:18","typeDescriptions":{}}},"id":3972,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7464:6:18","memberName":"concat","nodeType":"MemberAccess","src":"7458:12:18","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":3975,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7458:46:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"7440:64:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3977,"nodeType":"ExpressionStatement","src":"7440:64:18"}]},{"assignments":[3980],"declarations":[{"constant":false,"id":3980,"mutability":"mutable","name":"encodedTo","nameLocation":"7538:9:18","nodeType":"VariableDeclaration","scope":4116,"src":"7525:22:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3979,"name":"bytes","nodeType":"ElementaryTypeName","src":"7525:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":3992,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"expression":{"id":3987,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3937,"src":"7591:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":3988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7604:2:18","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":3716,"src":"7591:15:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3986,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7583:7:18","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":3985,"name":"uint160","nodeType":"ElementaryTypeName","src":"7583:7:18","typeDescriptions":{}}},"id":3989,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7583:24:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":3984,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7575:7:18","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3983,"name":"address","nodeType":"ElementaryTypeName","src":"7575:7:18","typeDescriptions":{}}},"id":3990,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7575:33:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":3981,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"7550:10:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":3982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7561:13:18","memberName":"encodeAddress","nodeType":"MemberAccess","referencedDeclaration":2195,"src":"7550:24:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_bytes_memory_ptr_$","typeString":"function (address) pure returns (bytes memory)"}},"id":3991,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7550:59:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"7525:84:18"},{"assignments":[3994],"declarations":[{"constant":false,"id":3994,"mutability":"mutable","name":"encodedValue","nameLocation":"7632:12:18","nodeType":"VariableDeclaration","scope":4116,"src":"7619:25:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3993,"name":"bytes","nodeType":"ElementaryTypeName","src":"7619:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4000,"initialValue":{"arguments":[{"expression":{"id":3997,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3937,"src":"7672:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":3998,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7685:5:18","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":3730,"src":"7672:18:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3995,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"7647:10:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":3996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7658:13:18","memberName":"encodeUint256","nodeType":"MemberAccess","referencedDeclaration":2286,"src":"7647:24:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":3999,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7647:44:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"7619:72:18"},{"assignments":[4002],"declarations":[{"constant":false,"id":4002,"mutability":"mutable","name":"encodedDataLength","nameLocation":"7880:17:18","nodeType":"VariableDeclaration","scope":4116,"src":"7867:30:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4001,"name":"bytes","nodeType":"ElementaryTypeName","src":"7867:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4003,"nodeType":"VariableDeclarationStatement","src":"7867:30:18"},{"id":4037,"nodeType":"Block","src":"7907:677:18","statements":[{"assignments":[4005],"declarations":[{"constant":false,"id":4005,"mutability":"mutable","name":"txDataLen","nameLocation":"8016:9:18","nodeType":"VariableDeclaration","scope":4037,"src":"8009:16:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":4004,"name":"uint64","nodeType":"ElementaryTypeName","src":"8009:6:18","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":4012,"initialValue":{"arguments":[{"expression":{"expression":{"id":4008,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3937,"src":"8035:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":4009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8048:4:18","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":3736,"src":"8035:17:18","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":4010,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8053:6:18","memberName":"length","nodeType":"MemberAccess","src":"8035:24:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4007,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8028:6:18","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":4006,"name":"uint64","nodeType":"ElementaryTypeName","src":"8028:6:18","typeDescriptions":{}}},"id":4011,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8028:32:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"8009:51:18"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":4015,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4013,"name":"txDataLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4005,"src":"8078:9:18","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"31","id":4014,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8091:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"8078:14:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"id":4029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":4024,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3937,"src":"8313:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":4025,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8326:4:18","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":3736,"src":"8313:17:18","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":4027,"indexExpression":{"hexValue":"30","id":4026,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8331:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8313:20:18","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30783830","id":4028,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8337:4:18","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"0x80"},"src":"8313:28:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4035,"nodeType":"IfStatement","src":"8309:206:18","trueBody":{"id":4034,"nodeType":"Block","src":"8343:172:18","statements":[{"expression":{"id":4032,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4030,"name":"encodedDataLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4002,"src":"8473:17:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"81","id":4031,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"8493:7:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_1fed454f35701d8970ad2ac06907e973314989ab6eb948eda79c00e416c4bdeb","typeString":"literal_string hex\"81\""}},"src":"8473:27:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4033,"nodeType":"ExpressionStatement","src":"8473:27:18"}]}},"id":4036,"nodeType":"IfStatement","src":"8074:441:18","trueBody":{"id":4023,"nodeType":"Block","src":"8094:209:18","statements":[{"expression":{"id":4021,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4016,"name":"encodedDataLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4002,"src":"8223:17:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":4019,"name":"txDataLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4005,"src":"8278:9:18","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":4017,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"8243:10:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":4018,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8254:23:18","memberName":"encodeNonSingleBytesLen","nodeType":"MemberAccess","referencedDeclaration":2306,"src":"8243:34:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint64_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint64) pure returns (bytes memory)"}},"id":4020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8243:45:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"8223:65:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4022,"nodeType":"ExpressionStatement","src":"8223:65:18"}]}}]},{"assignments":[4039],"declarations":[{"constant":false,"id":4039,"mutability":"mutable","name":"encodedChainId","nameLocation":"8716:14:18","nodeType":"VariableDeclaration","scope":4116,"src":"8703:27:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4038,"name":"bytes","nodeType":"ElementaryTypeName","src":"8703:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4040,"nodeType":"VariableDeclarationStatement","src":"8703:27:18"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4046,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":4041,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3937,"src":"8744:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":4042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8757:8:18","memberName":"reserved","nodeType":"MemberAccess","referencedDeclaration":3734,"src":"8744:21:18","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$4_calldata_ptr","typeString":"uint256[4] calldata"}},"id":4044,"indexExpression":{"hexValue":"30","id":4043,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8766:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8744:24:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":4045,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8772:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8744:29:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4061,"nodeType":"IfStatement","src":"8740:142:18","trueBody":{"id":4060,"nodeType":"Block","src":"8775:107:18","statements":[{"expression":{"id":4058,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4047,"name":"encodedChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4039,"src":"8789:14:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"expression":{"id":4053,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"8844:5:18","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":4054,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8850:7:18","memberName":"chainid","nodeType":"MemberAccess","src":"8844:13:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4051,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"8819:10:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":4052,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8830:13:18","memberName":"encodeUint256","nodeType":"MemberAccess","referencedDeclaration":2286,"src":"8819:24:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":4055,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8819:39:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"8080","id":4056,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"8860:10:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_d32902a0df687b23c64b53e23b62fa0543c928c0a897a1e408a1d5871a4de0c8","typeString":"literal_string hex\"8080\""}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_stringliteral_d32902a0df687b23c64b53e23b62fa0543c928c0a897a1e408a1d5871a4de0c8","typeString":"literal_string hex\"8080\""}],"expression":{"id":4049,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8806:5:18","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":4048,"name":"bytes","nodeType":"ElementaryTypeName","src":"8806:5:18","typeDescriptions":{}}},"id":4050,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8812:6:18","memberName":"concat","nodeType":"MemberAccess","src":"8806:12:18","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":4057,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8806:65:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"8789:82:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4059,"nodeType":"ExpressionStatement","src":"8789:82:18"}]}},{"assignments":[4063],"declarations":[{"constant":false,"id":4063,"mutability":"mutable","name":"encodedListLength","nameLocation":"8905:17:18","nodeType":"VariableDeclaration","scope":4116,"src":"8892:30:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4062,"name":"bytes","nodeType":"ElementaryTypeName","src":"8892:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4064,"nodeType":"VariableDeclarationStatement","src":"8892:30:18"},{"id":4099,"nodeType":"UncheckedBlock","src":"8932:470:18","statements":[{"assignments":[4066],"declarations":[{"constant":false,"id":4066,"mutability":"mutable","name":"listLength","nameLocation":"8964:10:18","nodeType":"VariableDeclaration","scope":4099,"src":"8956:18:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4065,"name":"uint256","nodeType":"ElementaryTypeName","src":"8956:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4088,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4087,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4080,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4077,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4071,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":4067,"name":"encodedNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3943,"src":"8977:12:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4068,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8990:6:18","memberName":"length","nodeType":"MemberAccess","src":"8977:19:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":4069,"name":"encodedGasParam","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3951,"src":"9015:15:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9031:6:18","memberName":"length","nodeType":"MemberAccess","src":"9015:22:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8977:60:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":4072,"name":"encodedTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3980,"src":"9056:9:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4073,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9066:6:18","memberName":"length","nodeType":"MemberAccess","src":"9056:16:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8977:95:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":4075,"name":"encodedValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3994,"src":"9091:12:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9104:6:18","memberName":"length","nodeType":"MemberAccess","src":"9091:19:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8977:133:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":4078,"name":"encodedDataLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4002,"src":"9129:17:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4079,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9147:6:18","memberName":"length","nodeType":"MemberAccess","src":"9129:24:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8977:176:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"expression":{"id":4081,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3937,"src":"9172:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":4082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9185:4:18","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":3736,"src":"9172:17:18","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":4083,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9190:6:18","memberName":"length","nodeType":"MemberAccess","src":"9172:24:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8977:219:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":4085,"name":"encodedChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4039,"src":"9215:14:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4086,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9230:6:18","memberName":"length","nodeType":"MemberAccess","src":"9215:21:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8977:259:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8956:280:18"},{"expression":{"id":4097,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4089,"name":"encodedListLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4063,"src":"9327:17:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":4094,"name":"listLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4066,"src":"9379:10:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4093,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9372:6:18","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":4092,"name":"uint64","nodeType":"ElementaryTypeName","src":"9372:6:18","typeDescriptions":{}}},"id":4095,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9372:18:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":4090,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"9347:10:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":4091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9358:13:18","memberName":"encodeListLen","nodeType":"MemberAccess","referencedDeclaration":2320,"src":"9347:24:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint64_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint64) pure returns (bytes memory)"}},"id":4096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9347:44:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"9327:64:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4098,"nodeType":"ExpressionStatement","src":"9327:64:18"}]},{"expression":{"arguments":[{"arguments":[{"id":4104,"name":"encodedListLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4063,"src":"9492:17:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4105,"name":"encodedNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3943,"src":"9531:12:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4106,"name":"encodedGasParam","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3951,"src":"9565:15:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4107,"name":"encodedTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3980,"src":"9602:9:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4108,"name":"encodedValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3994,"src":"9633:12:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4109,"name":"encodedDataLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4002,"src":"9667:17:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"id":4110,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3937,"src":"9706:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":4111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9719:4:18","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":3736,"src":"9706:17:18","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":4112,"name":"encodedChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4039,"src":"9745:14:18","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"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":4102,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9458:5:18","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":4101,"name":"bytes","nodeType":"ElementaryTypeName","src":"9458:5:18","typeDescriptions":{}}},"id":4103,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9464:6:18","memberName":"concat","nodeType":"MemberAccess","src":"9458:12:18","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":4113,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9458:319:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4100,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"9431:9:18","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":4114,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9431:360:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":3941,"id":4115,"nodeType":"Return","src":"9412:379:18"}]},"documentation":{"id":3934,"nodeType":"StructuredDocumentation","src":"6375:141:18","text":"@notice Encode hash of the legacy transaction type.\n @return keccak256 of the serialized RLP encoded representation of transaction"},"id":4117,"implemented":true,"kind":"function","modifiers":[],"name":"_encodeHashLegacyTransaction","nameLocation":"6530:28:18","nodeType":"FunctionDefinition","parameters":{"id":3938,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3937,"mutability":"mutable","name":"_transaction","nameLocation":"6580:12:18","nodeType":"VariableDeclaration","scope":4117,"src":"6559:33:18","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction"},"typeName":{"id":3936,"nodeType":"UserDefinedTypeName","pathNode":{"id":3935,"name":"Transaction","nameLocations":["6559:11:18"],"nodeType":"IdentifierPath","referencedDeclaration":3746,"src":"6559:11:18"},"referencedDeclaration":3746,"src":"6559:11:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_storage_ptr","typeString":"struct Transaction"}},"visibility":"internal"}],"src":"6558:35:18"},"returnParameters":{"id":3941,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3940,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4117,"src":"6616:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3939,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6616:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6615:9:18"},"scope":4646,"src":"6521:3277:18","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":4284,"nodeType":"Block","src":"10056:3031:18","statements":[{"assignments":[4127],"declarations":[{"constant":false,"id":4127,"mutability":"mutable","name":"encodedFixedLengthParams","nameLocation":"10431:24:18","nodeType":"VariableDeclaration","scope":4284,"src":"10418:37:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4126,"name":"bytes","nodeType":"ElementaryTypeName","src":"10418:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4128,"nodeType":"VariableDeclarationStatement","src":"10418:37:18"},{"id":4196,"nodeType":"Block","src":"10465:804:18","statements":[{"assignments":[4130],"declarations":[{"constant":false,"id":4130,"mutability":"mutable","name":"encodedChainId","nameLocation":"10492:14:18","nodeType":"VariableDeclaration","scope":4196,"src":"10479:27:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4129,"name":"bytes","nodeType":"ElementaryTypeName","src":"10479:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4136,"initialValue":{"arguments":[{"expression":{"id":4133,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"10534:5:18","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":4134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10540:7:18","memberName":"chainid","nodeType":"MemberAccess","src":"10534:13:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4131,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"10509:10:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":4132,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10520:13:18","memberName":"encodeUint256","nodeType":"MemberAccess","referencedDeclaration":2286,"src":"10509:24:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":4135,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10509:39:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"10479:69:18"},{"assignments":[4138],"declarations":[{"constant":false,"id":4138,"mutability":"mutable","name":"encodedNonce","nameLocation":"10575:12:18","nodeType":"VariableDeclaration","scope":4196,"src":"10562:25:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4137,"name":"bytes","nodeType":"ElementaryTypeName","src":"10562:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4144,"initialValue":{"arguments":[{"expression":{"id":4141,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4121,"src":"10615:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":4142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10628:5:18","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":3728,"src":"10615:18:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4139,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"10590:10:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":4140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10601:13:18","memberName":"encodeUint256","nodeType":"MemberAccess","referencedDeclaration":2286,"src":"10590:24:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":4143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10590:44:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"10562:72:18"},{"assignments":[4146],"declarations":[{"constant":false,"id":4146,"mutability":"mutable","name":"encodedGasPrice","nameLocation":"10661:15:18","nodeType":"VariableDeclaration","scope":4196,"src":"10648:28:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4145,"name":"bytes","nodeType":"ElementaryTypeName","src":"10648:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4152,"initialValue":{"arguments":[{"expression":{"id":4149,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4121,"src":"10704:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":4150,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10717:12:18","memberName":"maxFeePerGas","nodeType":"MemberAccess","referencedDeclaration":3722,"src":"10704:25:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4147,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"10679:10:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":4148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10690:13:18","memberName":"encodeUint256","nodeType":"MemberAccess","referencedDeclaration":2286,"src":"10679:24:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":4151,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10679:51:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"10648:82:18"},{"assignments":[4154],"declarations":[{"constant":false,"id":4154,"mutability":"mutable","name":"encodedGasLimit","nameLocation":"10757:15:18","nodeType":"VariableDeclaration","scope":4196,"src":"10744:28:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4153,"name":"bytes","nodeType":"ElementaryTypeName","src":"10744:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4160,"initialValue":{"arguments":[{"expression":{"id":4157,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4121,"src":"10800:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":4158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10813:8:18","memberName":"gasLimit","nodeType":"MemberAccess","referencedDeclaration":3718,"src":"10800:21:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4155,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"10775:10:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":4156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10786:13:18","memberName":"encodeUint256","nodeType":"MemberAccess","referencedDeclaration":2286,"src":"10775:24:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":4159,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10775:47:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"10744:78:18"},{"assignments":[4162],"declarations":[{"constant":false,"id":4162,"mutability":"mutable","name":"encodedTo","nameLocation":"10849:9:18","nodeType":"VariableDeclaration","scope":4196,"src":"10836:22:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4161,"name":"bytes","nodeType":"ElementaryTypeName","src":"10836:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4174,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"expression":{"id":4169,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4121,"src":"10902:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":4170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10915:2:18","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":3716,"src":"10902:15:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4168,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10894:7:18","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":4167,"name":"uint160","nodeType":"ElementaryTypeName","src":"10894:7:18","typeDescriptions":{}}},"id":4171,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10894:24:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":4166,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10886:7:18","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4165,"name":"address","nodeType":"ElementaryTypeName","src":"10886:7:18","typeDescriptions":{}}},"id":4172,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10886:33:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":4163,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"10861:10:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":4164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10872:13:18","memberName":"encodeAddress","nodeType":"MemberAccess","referencedDeclaration":2195,"src":"10861:24:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_bytes_memory_ptr_$","typeString":"function (address) pure returns (bytes memory)"}},"id":4173,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10861:59:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"10836:84:18"},{"assignments":[4176],"declarations":[{"constant":false,"id":4176,"mutability":"mutable","name":"encodedValue","nameLocation":"10947:12:18","nodeType":"VariableDeclaration","scope":4196,"src":"10934:25:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4175,"name":"bytes","nodeType":"ElementaryTypeName","src":"10934:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4182,"initialValue":{"arguments":[{"expression":{"id":4179,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4121,"src":"10987:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":4180,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11000:5:18","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":3730,"src":"10987:18:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4177,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"10962:10:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":4178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10973:13:18","memberName":"encodeUint256","nodeType":"MemberAccess","referencedDeclaration":2286,"src":"10962:24:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":4181,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10962:44:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"10934:72:18"},{"expression":{"id":4194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4183,"name":"encodedFixedLengthParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4127,"src":"11020:24:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":4187,"name":"encodedChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4130,"src":"11077:14:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4188,"name":"encodedNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4138,"src":"11109:12:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4189,"name":"encodedGasPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4146,"src":"11139:15:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4190,"name":"encodedGasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4154,"src":"11172:15:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4191,"name":"encodedTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4162,"src":"11205:9:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4192,"name":"encodedValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4176,"src":"11232:12:18","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"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":4185,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11047:5:18","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":4184,"name":"bytes","nodeType":"ElementaryTypeName","src":"11047:5:18","typeDescriptions":{}}},"id":4186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11053:6:18","memberName":"concat","nodeType":"MemberAccess","src":"11047:12:18","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":4193,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11047:211:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"11020:238:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4195,"nodeType":"ExpressionStatement","src":"11020:238:18"}]},{"assignments":[4198],"declarations":[{"constant":false,"id":4198,"mutability":"mutable","name":"encodedDataLength","nameLocation":"11458:17:18","nodeType":"VariableDeclaration","scope":4284,"src":"11445:30:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4197,"name":"bytes","nodeType":"ElementaryTypeName","src":"11445:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4199,"nodeType":"VariableDeclarationStatement","src":"11445:30:18"},{"id":4233,"nodeType":"Block","src":"11485:677:18","statements":[{"assignments":[4201],"declarations":[{"constant":false,"id":4201,"mutability":"mutable","name":"txDataLen","nameLocation":"11594:9:18","nodeType":"VariableDeclaration","scope":4233,"src":"11587:16:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":4200,"name":"uint64","nodeType":"ElementaryTypeName","src":"11587:6:18","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":4208,"initialValue":{"arguments":[{"expression":{"expression":{"id":4204,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4121,"src":"11613:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":4205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11626:4:18","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":3736,"src":"11613:17:18","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":4206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11631:6:18","memberName":"length","nodeType":"MemberAccess","src":"11613:24:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4203,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11606:6:18","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":4202,"name":"uint64","nodeType":"ElementaryTypeName","src":"11606:6:18","typeDescriptions":{}}},"id":4207,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11606:32:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"11587:51:18"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":4211,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4209,"name":"txDataLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4201,"src":"11656:9:18","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"31","id":4210,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11669:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"11656:14:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"id":4225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":4220,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4121,"src":"11891:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":4221,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11904:4:18","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":3736,"src":"11891:17:18","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":4223,"indexExpression":{"hexValue":"30","id":4222,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11909:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11891:20:18","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30783830","id":4224,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11915:4:18","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"0x80"},"src":"11891:28:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4231,"nodeType":"IfStatement","src":"11887:206:18","trueBody":{"id":4230,"nodeType":"Block","src":"11921:172:18","statements":[{"expression":{"id":4228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4226,"name":"encodedDataLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4198,"src":"12051:17:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"81","id":4227,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"12071:7:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_1fed454f35701d8970ad2ac06907e973314989ab6eb948eda79c00e416c4bdeb","typeString":"literal_string hex\"81\""}},"src":"12051:27:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4229,"nodeType":"ExpressionStatement","src":"12051:27:18"}]}},"id":4232,"nodeType":"IfStatement","src":"11652:441:18","trueBody":{"id":4219,"nodeType":"Block","src":"11672:209:18","statements":[{"expression":{"id":4217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4212,"name":"encodedDataLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4198,"src":"11801:17:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":4215,"name":"txDataLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4201,"src":"11856:9:18","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":4213,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"11821:10:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":4214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11832:23:18","memberName":"encodeNonSingleBytesLen","nodeType":"MemberAccess","referencedDeclaration":2306,"src":"11821:34:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint64_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint64) pure returns (bytes memory)"}},"id":4216,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11821:45:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"11801:65:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4218,"nodeType":"ExpressionStatement","src":"11801:65:18"}]}}]},{"assignments":[4235],"declarations":[{"constant":false,"id":4235,"mutability":"mutable","name":"encodedAccessListLength","nameLocation":"12263:23:18","nodeType":"VariableDeclaration","scope":4284,"src":"12250:36:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4234,"name":"bytes","nodeType":"ElementaryTypeName","src":"12250:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4240,"initialValue":{"arguments":[{"hexValue":"30","id":4238,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12314:1:18","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"}],"expression":{"id":4236,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"12289:10:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":4237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12300:13:18","memberName":"encodeListLen","nodeType":"MemberAccess","referencedDeclaration":2320,"src":"12289:24:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint64_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint64) pure returns (bytes memory)"}},"id":4239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12289:27:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"12250:66:18"},{"assignments":[4242],"declarations":[{"constant":false,"id":4242,"mutability":"mutable","name":"encodedListLength","nameLocation":"12340:17:18","nodeType":"VariableDeclaration","scope":4284,"src":"12327:30:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4241,"name":"bytes","nodeType":"ElementaryTypeName","src":"12327:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4243,"nodeType":"VariableDeclarationStatement","src":"12327:30:18"},{"id":4269,"nodeType":"UncheckedBlock","src":"12367:377:18","statements":[{"assignments":[4245],"declarations":[{"constant":false,"id":4245,"mutability":"mutable","name":"listLength","nameLocation":"12399:10:18","nodeType":"VariableDeclaration","scope":4269,"src":"12391:18:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4244,"name":"uint256","nodeType":"ElementaryTypeName","src":"12391:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4258,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4257,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4250,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":4246,"name":"encodedFixedLengthParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4127,"src":"12412:24:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4247,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12437:6:18","memberName":"length","nodeType":"MemberAccess","src":"12412:31:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":4248,"name":"encodedDataLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4198,"src":"12462:17:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4249,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12480:6:18","memberName":"length","nodeType":"MemberAccess","src":"12462:24:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12412:74:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"expression":{"id":4251,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4121,"src":"12505:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":4252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12518:4:18","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":3736,"src":"12505:17:18","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":4253,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12523:6:18","memberName":"length","nodeType":"MemberAccess","src":"12505:24:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12412:117:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":4255,"name":"encodedAccessListLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4235,"src":"12548:23:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12572:6:18","memberName":"length","nodeType":"MemberAccess","src":"12548:30:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12412:166:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"12391:187:18"},{"expression":{"id":4267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4259,"name":"encodedListLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4242,"src":"12669:17:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":4264,"name":"listLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4245,"src":"12721:10:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4263,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12714:6:18","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":4262,"name":"uint64","nodeType":"ElementaryTypeName","src":"12714:6:18","typeDescriptions":{}}},"id":4265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12714:18:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":4260,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"12689:10:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":4261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12700:13:18","memberName":"encodeListLen","nodeType":"MemberAccess","referencedDeclaration":2320,"src":"12689:24:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint64_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint64) pure returns (bytes memory)"}},"id":4266,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12689:44:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"12669:64:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4268,"nodeType":"ExpressionStatement","src":"12669:64:18"}]},{"expression":{"arguments":[{"arguments":[{"hexValue":"01","id":4274,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12834:6:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_5fe7f977e71dba2ea1a68e21057beebb9be2ac30c6410aa38d4f3fbe41dcffd2","typeString":"literal_string hex\"01\""},"value":"\u0001"},{"id":4275,"name":"encodedListLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4242,"src":"12862:17:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4276,"name":"encodedFixedLengthParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4127,"src":"12901:24:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4277,"name":"encodedDataLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4198,"src":"12947:17:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"id":4278,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4121,"src":"12986:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":4279,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12999:4:18","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":3736,"src":"12986:17:18","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":4280,"name":"encodedAccessListLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4235,"src":"13025:23:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5fe7f977e71dba2ea1a68e21057beebb9be2ac30c6410aa38d4f3fbe41dcffd2","typeString":"literal_string hex\"01\""},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":4272,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12800:5:18","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":4271,"name":"bytes","nodeType":"ElementaryTypeName","src":"12800:5:18","typeDescriptions":{}}},"id":4273,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12806:6:18","memberName":"concat","nodeType":"MemberAccess","src":"12800:12:18","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":4281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12800:266:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4270,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"12773:9:18","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":4282,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12773:307:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":4125,"id":4283,"nodeType":"Return","src":"12754:326:18"}]},"documentation":{"id":4118,"nodeType":"StructuredDocumentation","src":"9804:142:18","text":"@notice Encode hash of the EIP2930 transaction type.\n @return keccak256 of the serialized RLP encoded representation of transaction"},"id":4285,"implemented":true,"kind":"function","modifiers":[],"name":"_encodeHashEIP2930Transaction","nameLocation":"9960:29:18","nodeType":"FunctionDefinition","parameters":{"id":4122,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4121,"mutability":"mutable","name":"_transaction","nameLocation":"10011:12:18","nodeType":"VariableDeclaration","scope":4285,"src":"9990:33:18","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction"},"typeName":{"id":4120,"nodeType":"UserDefinedTypeName","pathNode":{"id":4119,"name":"Transaction","nameLocations":["9990:11:18"],"nodeType":"IdentifierPath","referencedDeclaration":3746,"src":"9990:11:18"},"referencedDeclaration":3746,"src":"9990:11:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_storage_ptr","typeString":"struct Transaction"}},"visibility":"internal"}],"src":"9989:35:18"},"returnParameters":{"id":4125,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4124,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4285,"src":"10047:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4123,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10047:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"10046:9:18"},"scope":4646,"src":"9951:3136:18","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":4461,"nodeType":"Block","src":"13345:3232:18","statements":[{"assignments":[4295],"declarations":[{"constant":false,"id":4295,"mutability":"mutable","name":"encodedFixedLengthParams","nameLocation":"13752:24:18","nodeType":"VariableDeclaration","scope":4461,"src":"13739:37:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4294,"name":"bytes","nodeType":"ElementaryTypeName","src":"13739:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4296,"nodeType":"VariableDeclarationStatement","src":"13739:37:18"},{"id":4373,"nodeType":"Block","src":"13786:973:18","statements":[{"assignments":[4298],"declarations":[{"constant":false,"id":4298,"mutability":"mutable","name":"encodedChainId","nameLocation":"13813:14:18","nodeType":"VariableDeclaration","scope":4373,"src":"13800:27:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4297,"name":"bytes","nodeType":"ElementaryTypeName","src":"13800:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4304,"initialValue":{"arguments":[{"expression":{"id":4301,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"13855:5:18","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":4302,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13861:7:18","memberName":"chainid","nodeType":"MemberAccess","src":"13855:13:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4299,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"13830:10:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":4300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13841:13:18","memberName":"encodeUint256","nodeType":"MemberAccess","referencedDeclaration":2286,"src":"13830:24:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":4303,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13830:39:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"13800:69:18"},{"assignments":[4306],"declarations":[{"constant":false,"id":4306,"mutability":"mutable","name":"encodedNonce","nameLocation":"13896:12:18","nodeType":"VariableDeclaration","scope":4373,"src":"13883:25:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4305,"name":"bytes","nodeType":"ElementaryTypeName","src":"13883:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4312,"initialValue":{"arguments":[{"expression":{"id":4309,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4289,"src":"13936:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":4310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13949:5:18","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":3728,"src":"13936:18:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4307,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"13911:10:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":4308,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13922:13:18","memberName":"encodeUint256","nodeType":"MemberAccess","referencedDeclaration":2286,"src":"13911:24:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":4311,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13911:44:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"13883:72:18"},{"assignments":[4314],"declarations":[{"constant":false,"id":4314,"mutability":"mutable","name":"encodedMaxPriorityFeePerGas","nameLocation":"13982:27:18","nodeType":"VariableDeclaration","scope":4373,"src":"13969:40:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4313,"name":"bytes","nodeType":"ElementaryTypeName","src":"13969:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4320,"initialValue":{"arguments":[{"expression":{"id":4317,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4289,"src":"14037:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":4318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14050:20:18","memberName":"maxPriorityFeePerGas","nodeType":"MemberAccess","referencedDeclaration":3724,"src":"14037:33:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4315,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"14012:10:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":4316,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14023:13:18","memberName":"encodeUint256","nodeType":"MemberAccess","referencedDeclaration":2286,"src":"14012:24:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":4319,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14012:59:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"13969:102:18"},{"assignments":[4322],"declarations":[{"constant":false,"id":4322,"mutability":"mutable","name":"encodedMaxFeePerGas","nameLocation":"14098:19:18","nodeType":"VariableDeclaration","scope":4373,"src":"14085:32:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4321,"name":"bytes","nodeType":"ElementaryTypeName","src":"14085:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4328,"initialValue":{"arguments":[{"expression":{"id":4325,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4289,"src":"14145:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":4326,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14158:12:18","memberName":"maxFeePerGas","nodeType":"MemberAccess","referencedDeclaration":3722,"src":"14145:25:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4323,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"14120:10:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":4324,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14131:13:18","memberName":"encodeUint256","nodeType":"MemberAccess","referencedDeclaration":2286,"src":"14120:24:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":4327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14120:51:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"14085:86:18"},{"assignments":[4330],"declarations":[{"constant":false,"id":4330,"mutability":"mutable","name":"encodedGasLimit","nameLocation":"14198:15:18","nodeType":"VariableDeclaration","scope":4373,"src":"14185:28:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4329,"name":"bytes","nodeType":"ElementaryTypeName","src":"14185:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4336,"initialValue":{"arguments":[{"expression":{"id":4333,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4289,"src":"14241:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":4334,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14254:8:18","memberName":"gasLimit","nodeType":"MemberAccess","referencedDeclaration":3718,"src":"14241:21:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4331,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"14216:10:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":4332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14227:13:18","memberName":"encodeUint256","nodeType":"MemberAccess","referencedDeclaration":2286,"src":"14216:24:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":4335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14216:47:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"14185:78:18"},{"assignments":[4338],"declarations":[{"constant":false,"id":4338,"mutability":"mutable","name":"encodedTo","nameLocation":"14290:9:18","nodeType":"VariableDeclaration","scope":4373,"src":"14277:22:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4337,"name":"bytes","nodeType":"ElementaryTypeName","src":"14277:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4350,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"expression":{"id":4345,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4289,"src":"14343:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":4346,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14356:2:18","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":3716,"src":"14343:15:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4344,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14335:7:18","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":4343,"name":"uint160","nodeType":"ElementaryTypeName","src":"14335:7:18","typeDescriptions":{}}},"id":4347,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14335:24:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":4342,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14327:7:18","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4341,"name":"address","nodeType":"ElementaryTypeName","src":"14327:7:18","typeDescriptions":{}}},"id":4348,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14327:33:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":4339,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"14302:10:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":4340,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14313:13:18","memberName":"encodeAddress","nodeType":"MemberAccess","referencedDeclaration":2195,"src":"14302:24:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_bytes_memory_ptr_$","typeString":"function (address) pure returns (bytes memory)"}},"id":4349,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14302:59:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"14277:84:18"},{"assignments":[4352],"declarations":[{"constant":false,"id":4352,"mutability":"mutable","name":"encodedValue","nameLocation":"14388:12:18","nodeType":"VariableDeclaration","scope":4373,"src":"14375:25:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4351,"name":"bytes","nodeType":"ElementaryTypeName","src":"14375:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4358,"initialValue":{"arguments":[{"expression":{"id":4355,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4289,"src":"14428:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":4356,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14441:5:18","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":3730,"src":"14428:18:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4353,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"14403:10:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":4354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14414:13:18","memberName":"encodeUint256","nodeType":"MemberAccess","referencedDeclaration":2286,"src":"14403:24:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":4357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14403:44:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"14375:72:18"},{"expression":{"id":4371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4359,"name":"encodedFixedLengthParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4295,"src":"14461:24:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":4363,"name":"encodedChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4298,"src":"14518:14:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4364,"name":"encodedNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4306,"src":"14550:12:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4365,"name":"encodedMaxPriorityFeePerGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4314,"src":"14580:27:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4366,"name":"encodedMaxFeePerGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4322,"src":"14625:19:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4367,"name":"encodedGasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4330,"src":"14662:15:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4368,"name":"encodedTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4338,"src":"14695:9:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4369,"name":"encodedValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4352,"src":"14722:12:18","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"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":4361,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14488:5:18","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":4360,"name":"bytes","nodeType":"ElementaryTypeName","src":"14488:5:18","typeDescriptions":{}}},"id":4362,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14494:6:18","memberName":"concat","nodeType":"MemberAccess","src":"14488:12:18","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":4370,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14488:260:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"14461:287:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4372,"nodeType":"ExpressionStatement","src":"14461:287:18"}]},{"assignments":[4375],"declarations":[{"constant":false,"id":4375,"mutability":"mutable","name":"encodedDataLength","nameLocation":"14948:17:18","nodeType":"VariableDeclaration","scope":4461,"src":"14935:30:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4374,"name":"bytes","nodeType":"ElementaryTypeName","src":"14935:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4376,"nodeType":"VariableDeclarationStatement","src":"14935:30:18"},{"id":4410,"nodeType":"Block","src":"14975:677:18","statements":[{"assignments":[4378],"declarations":[{"constant":false,"id":4378,"mutability":"mutable","name":"txDataLen","nameLocation":"15084:9:18","nodeType":"VariableDeclaration","scope":4410,"src":"15077:16:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":4377,"name":"uint64","nodeType":"ElementaryTypeName","src":"15077:6:18","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":4385,"initialValue":{"arguments":[{"expression":{"expression":{"id":4381,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4289,"src":"15103:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":4382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15116:4:18","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":3736,"src":"15103:17:18","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":4383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15121:6:18","memberName":"length","nodeType":"MemberAccess","src":"15103:24:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4380,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15096:6:18","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":4379,"name":"uint64","nodeType":"ElementaryTypeName","src":"15096:6:18","typeDescriptions":{}}},"id":4384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15096:32:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"15077:51:18"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":4388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4386,"name":"txDataLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4378,"src":"15146:9:18","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"31","id":4387,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15159:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"15146:14:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"id":4402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":4397,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4289,"src":"15381:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":4398,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15394:4:18","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":3736,"src":"15381:17:18","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":4400,"indexExpression":{"hexValue":"30","id":4399,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15399:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15381:20:18","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30783830","id":4401,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15405:4:18","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"0x80"},"src":"15381:28:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4408,"nodeType":"IfStatement","src":"15377:206:18","trueBody":{"id":4407,"nodeType":"Block","src":"15411:172:18","statements":[{"expression":{"id":4405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4403,"name":"encodedDataLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4375,"src":"15541:17:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"81","id":4404,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"15561:7:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_1fed454f35701d8970ad2ac06907e973314989ab6eb948eda79c00e416c4bdeb","typeString":"literal_string hex\"81\""}},"src":"15541:27:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4406,"nodeType":"ExpressionStatement","src":"15541:27:18"}]}},"id":4409,"nodeType":"IfStatement","src":"15142:441:18","trueBody":{"id":4396,"nodeType":"Block","src":"15162:209:18","statements":[{"expression":{"id":4394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4389,"name":"encodedDataLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4375,"src":"15291:17:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":4392,"name":"txDataLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4378,"src":"15346:9:18","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":4390,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"15311:10:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":4391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15322:23:18","memberName":"encodeNonSingleBytesLen","nodeType":"MemberAccess","referencedDeclaration":2306,"src":"15311:34:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint64_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint64) pure returns (bytes memory)"}},"id":4393,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15311:45:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"15291:65:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4395,"nodeType":"ExpressionStatement","src":"15291:65:18"}]}}]},{"assignments":[4412],"declarations":[{"constant":false,"id":4412,"mutability":"mutable","name":"encodedAccessListLength","nameLocation":"15753:23:18","nodeType":"VariableDeclaration","scope":4461,"src":"15740:36:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4411,"name":"bytes","nodeType":"ElementaryTypeName","src":"15740:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4417,"initialValue":{"arguments":[{"hexValue":"30","id":4415,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15804:1:18","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"}],"expression":{"id":4413,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"15779:10:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":4414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15790:13:18","memberName":"encodeListLen","nodeType":"MemberAccess","referencedDeclaration":2320,"src":"15779:24:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint64_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint64) pure returns (bytes memory)"}},"id":4416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15779:27:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"15740:66:18"},{"assignments":[4419],"declarations":[{"constant":false,"id":4419,"mutability":"mutable","name":"encodedListLength","nameLocation":"15830:17:18","nodeType":"VariableDeclaration","scope":4461,"src":"15817:30:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4418,"name":"bytes","nodeType":"ElementaryTypeName","src":"15817:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4420,"nodeType":"VariableDeclarationStatement","src":"15817:30:18"},{"id":4446,"nodeType":"UncheckedBlock","src":"15857:377:18","statements":[{"assignments":[4422],"declarations":[{"constant":false,"id":4422,"mutability":"mutable","name":"listLength","nameLocation":"15889:10:18","nodeType":"VariableDeclaration","scope":4446,"src":"15881:18:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4421,"name":"uint256","nodeType":"ElementaryTypeName","src":"15881:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4435,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":4423,"name":"encodedFixedLengthParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4295,"src":"15902:24:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15927:6:18","memberName":"length","nodeType":"MemberAccess","src":"15902:31:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":4425,"name":"encodedDataLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4375,"src":"15952:17:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15970:6:18","memberName":"length","nodeType":"MemberAccess","src":"15952:24:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15902:74:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"expression":{"id":4428,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4289,"src":"15995:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":4429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16008:4:18","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":3736,"src":"15995:17:18","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":4430,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16013:6:18","memberName":"length","nodeType":"MemberAccess","src":"15995:24:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15902:117:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":4432,"name":"encodedAccessListLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4412,"src":"16038:23:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16062:6:18","memberName":"length","nodeType":"MemberAccess","src":"16038:30:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15902:166:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15881:187:18"},{"expression":{"id":4444,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4436,"name":"encodedListLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4419,"src":"16159:17:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":4441,"name":"listLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4422,"src":"16211:10:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4440,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16204:6:18","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":4439,"name":"uint64","nodeType":"ElementaryTypeName","src":"16204:6:18","typeDescriptions":{}}},"id":4442,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16204:18:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":4437,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"16179:10:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":4438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16190:13:18","memberName":"encodeListLen","nodeType":"MemberAccess","referencedDeclaration":2320,"src":"16179:24:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint64_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint64) pure returns (bytes memory)"}},"id":4443,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16179:44:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"16159:64:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4445,"nodeType":"ExpressionStatement","src":"16159:64:18"}]},{"expression":{"arguments":[{"arguments":[{"hexValue":"02","id":4451,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16324:6:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_f2ee15ea639b73fa3db9b34a245bdfa015c260c598b211bf05a1ecc4b3e3b4f2","typeString":"literal_string hex\"02\""},"value":"\u0002"},{"id":4452,"name":"encodedListLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4419,"src":"16352:17:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4453,"name":"encodedFixedLengthParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4295,"src":"16391:24:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4454,"name":"encodedDataLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4375,"src":"16437:17:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"id":4455,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4289,"src":"16476:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":4456,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16489:4:18","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":3736,"src":"16476:17:18","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":4457,"name":"encodedAccessListLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4412,"src":"16515:23:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f2ee15ea639b73fa3db9b34a245bdfa015c260c598b211bf05a1ecc4b3e3b4f2","typeString":"literal_string hex\"02\""},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":4449,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16290:5:18","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":4448,"name":"bytes","nodeType":"ElementaryTypeName","src":"16290:5:18","typeDescriptions":{}}},"id":4450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16296:6:18","memberName":"concat","nodeType":"MemberAccess","src":"16290:12:18","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":4458,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16290:266:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4447,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"16263:9:18","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":4459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16263:307:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":4293,"id":4460,"nodeType":"Return","src":"16244:326:18"}]},"documentation":{"id":4286,"nodeType":"StructuredDocumentation","src":"13093:142:18","text":"@notice Encode hash of the EIP1559 transaction type.\n @return keccak256 of the serialized RLP encoded representation of transaction"},"id":4462,"implemented":true,"kind":"function","modifiers":[],"name":"_encodeHashEIP1559Transaction","nameLocation":"13249:29:18","nodeType":"FunctionDefinition","parameters":{"id":4290,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4289,"mutability":"mutable","name":"_transaction","nameLocation":"13300:12:18","nodeType":"VariableDeclaration","scope":4462,"src":"13279:33:18","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction"},"typeName":{"id":4288,"nodeType":"UserDefinedTypeName","pathNode":{"id":4287,"name":"Transaction","nameLocations":["13279:11:18"],"nodeType":"IdentifierPath","referencedDeclaration":3746,"src":"13279:11:18"},"referencedDeclaration":3746,"src":"13279:11:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_storage_ptr","typeString":"struct Transaction"}},"visibility":"internal"}],"src":"13278:35:18"},"returnParameters":{"id":4293,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4292,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4462,"src":"13336:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4291,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13336:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"13335:9:18"},"scope":4646,"src":"13240:3337:18","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":4580,"nodeType":"Block","src":"16884:1560:18","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4474,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":4470,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4466,"src":"16902:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":4471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16915:14:18","memberName":"paymasterInput","nodeType":"MemberAccess","referencedDeclaration":3743,"src":"16902:27:18","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":4472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16930:6:18","memberName":"length","nodeType":"MemberAccess","src":"16902:34:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"34","id":4473,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16940:1:18","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"16902:39:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"546865207374616e64617264207061796d617374657220696e707574206d757374206265206174206c656173742034206279746573206c6f6e67","id":4475,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16943:60:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_c1e1bc8cb13cedbdf3fcc3a0b7371b00ed04219012114fb30a8e180e2b185afb","typeString":"literal_string \"The standard paymaster input must be at least 4 bytes long\""},"value":"The standard paymaster input must be at least 4 bytes long"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c1e1bc8cb13cedbdf3fcc3a0b7371b00ed04219012114fb30a8e180e2b185afb","typeString":"literal_string \"The standard paymaster input must be at least 4 bytes long\""}],"id":4469,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"16894:7:18","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4476,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16894:110:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4477,"nodeType":"ExpressionStatement","src":"16894:110:18"},{"assignments":[4479],"declarations":[{"constant":false,"id":4479,"mutability":"mutable","name":"paymasterInputSelector","nameLocation":"17022:22:18","nodeType":"VariableDeclaration","scope":4580,"src":"17015:29:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":4478,"name":"bytes4","nodeType":"ElementaryTypeName","src":"17015:6:18","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"id":4488,"initialValue":{"arguments":[{"baseExpression":{"expression":{"id":4482,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4466,"src":"17054:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":4483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17067:14:18","memberName":"paymasterInput","nodeType":"MemberAccess","referencedDeclaration":3743,"src":"17054:27:18","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"endExpression":{"hexValue":"34","id":4485,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17084:1:18","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"id":4486,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"17054:32:18","startExpression":{"hexValue":"30","id":4484,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17082:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}],"id":4481,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17047:6:18","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":4480,"name":"bytes4","nodeType":"ElementaryTypeName","src":"17047:6:18","typeDescriptions":{}}},"id":4487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17047:40:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"VariableDeclarationStatement","src":"17015:72:18"},{"condition":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":4493,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4489,"name":"paymasterInputSelector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4479,"src":"17101:22:18","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":4490,"name":"IPaymasterFlow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1634,"src":"17127:14:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPaymasterFlow_$1634_$","typeString":"type(contract IPaymasterFlow)"}},"id":4491,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17142:13:18","memberName":"approvalBased","nodeType":"MemberAccess","referencedDeclaration":1633,"src":"17127:28:18","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$returns$__$","typeString":"function IPaymasterFlow.approvalBased(address,uint256,bytes calldata)"}},"id":4492,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17156:8:18","memberName":"selector","nodeType":"MemberAccess","src":"17127:37:18","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"17101:63:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":4571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4567,"name":"paymasterInputSelector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4479,"src":"18180:22:18","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":4568,"name":"IPaymasterFlow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1634,"src":"18206:14:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPaymasterFlow_$1634_$","typeString":"type(contract IPaymasterFlow)"}},"id":4569,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18221:7:18","memberName":"general","nodeType":"MemberAccess","referencedDeclaration":1624,"src":"18206:22:18","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_bytes_calldata_ptr_$returns$__$","typeString":"function IPaymasterFlow.general(bytes calldata)"}},"id":4570,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18229:8:18","memberName":"selector","nodeType":"MemberAccess","src":"18206:31:18","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"18180:57:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":4577,"nodeType":"Block","src":"18377:61:18","statements":[{"expression":{"arguments":[{"hexValue":"556e737570706f72746564207061796d617374657220666c6f77","id":4574,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18398:28:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_f918f24cd770c456edf65ef5fed4f48b9bf4355278a3ecfd4f0ce05531705de0","typeString":"literal_string \"Unsupported paymaster flow\""},"value":"Unsupported paymaster flow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f918f24cd770c456edf65ef5fed4f48b9bf4355278a3ecfd4f0ce05531705de0","typeString":"literal_string \"Unsupported paymaster flow\""}],"id":4573,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"18391:6:18","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":4575,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18391:36:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4576,"nodeType":"ExpressionStatement","src":"18391:36:18"}]},"id":4578,"nodeType":"IfStatement","src":"18176:262:18","trueBody":{"id":4572,"nodeType":"Block","src":"18239:132:18","statements":[]}},"id":4579,"nodeType":"IfStatement","src":"17097:1341:18","trueBody":{"id":4566,"nodeType":"Block","src":"17166:1004:18","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4499,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":4495,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4466,"src":"17205:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":4496,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17218:14:18","memberName":"paymasterInput","nodeType":"MemberAccess","referencedDeclaration":3743,"src":"17205:27:18","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":4497,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17233:6:18","memberName":"length","nodeType":"MemberAccess","src":"17205:34:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"3638","id":4498,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17243:2:18","typeDescriptions":{"typeIdentifier":"t_rational_68_by_1","typeString":"int_const 68"},"value":"68"},"src":"17205:40:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"54686520617070726f76616c4261736564207061796d617374657220696e707574206d757374206265206174206c65617374203638206279746573206c6f6e67","id":4500,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17263:66:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_d10d20387bc3567ed43f5f2ed47ca31311a7ce5706b96fc50131cde22679ec14","typeString":"literal_string \"The approvalBased paymaster input must be at least 68 bytes long\""},"value":"The approvalBased paymaster input must be at least 68 bytes long"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d10d20387bc3567ed43f5f2ed47ca31311a7ce5706b96fc50131cde22679ec14","typeString":"literal_string \"The approvalBased paymaster input must be at least 68 bytes long\""}],"id":4494,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"17180:7:18","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17180:163:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4502,"nodeType":"ExpressionStatement","src":"17180:163:18"},{"assignments":[4504,4506],"declarations":[{"constant":false,"id":4504,"mutability":"mutable","name":"token","nameLocation":"17557:5:18","nodeType":"VariableDeclaration","scope":4566,"src":"17549:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4503,"name":"address","nodeType":"ElementaryTypeName","src":"17549:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4506,"mutability":"mutable","name":"minAllowance","nameLocation":"17572:12:18","nodeType":"VariableDeclaration","scope":4566,"src":"17564:20:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4505,"name":"uint256","nodeType":"ElementaryTypeName","src":"17564:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4520,"initialValue":{"arguments":[{"baseExpression":{"expression":{"id":4509,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4466,"src":"17599:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":4510,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17612:14:18","memberName":"paymasterInput","nodeType":"MemberAccess","referencedDeclaration":3743,"src":"17599:27:18","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"endExpression":{"hexValue":"3638","id":4512,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17629:2:18","typeDescriptions":{"typeIdentifier":"t_rational_68_by_1","typeString":"int_const 68"},"value":"68"},"id":4513,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"17599:33:18","startExpression":{"hexValue":"34","id":4511,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17627:1:18","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}},{"components":[{"id":4515,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17635:7:18","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4514,"name":"address","nodeType":"ElementaryTypeName","src":"17635:7:18","typeDescriptions":{}}},{"id":4517,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17644:7:18","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":4516,"name":"uint256","nodeType":"ElementaryTypeName","src":"17644:7:18","typeDescriptions":{}}}],"id":4518,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"17634:18:18","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_address_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(address),type(uint256))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"},{"typeIdentifier":"t_tuple$_t_type$_t_address_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(address),type(uint256))"}],"expression":{"id":4507,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17588:3:18","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4508,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17592:6:18","memberName":"decode","nodeType":"MemberAccess","src":"17588:10:18","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":4519,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17588:65:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_payable_$_t_uint256_$","typeString":"tuple(address payable,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"17548:105:18"},{"assignments":[4522],"declarations":[{"constant":false,"id":4522,"mutability":"mutable","name":"paymaster","nameLocation":"17675:9:18","nodeType":"VariableDeclaration","scope":4566,"src":"17667:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4521,"name":"address","nodeType":"ElementaryTypeName","src":"17667:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":4531,"initialValue":{"arguments":[{"arguments":[{"expression":{"id":4527,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4466,"src":"17703:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":4528,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17716:9:18","memberName":"paymaster","nodeType":"MemberAccess","referencedDeclaration":3726,"src":"17703:22:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4526,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17695:7:18","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":4525,"name":"uint160","nodeType":"ElementaryTypeName","src":"17695:7:18","typeDescriptions":{}}},"id":4529,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17695:31:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":4524,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17687:7:18","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4523,"name":"address","nodeType":"ElementaryTypeName","src":"17687:7:18","typeDescriptions":{}}},"id":4530,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17687:40:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"17667:60:18"},{"assignments":[4533],"declarations":[{"constant":false,"id":4533,"mutability":"mutable","name":"currentAllowance","nameLocation":"17750:16:18","nodeType":"VariableDeclaration","scope":4566,"src":"17742:24:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4532,"name":"uint256","nodeType":"ElementaryTypeName","src":"17742:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4544,"initialValue":{"arguments":[{"arguments":[{"id":4540,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"17801:4:18","typeDescriptions":{"typeIdentifier":"t_contract$_TransactionHelper_$4646","typeString":"library TransactionHelper"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TransactionHelper_$4646","typeString":"library TransactionHelper"}],"id":4539,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17793:7:18","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4538,"name":"address","nodeType":"ElementaryTypeName","src":"17793:7:18","typeDescriptions":{}}},"id":4541,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17793:13:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4542,"name":"paymaster","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4522,"src":"17808:9:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":4535,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4504,"src":"17776:5:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4534,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4998,"src":"17769:6:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$4998_$","typeString":"type(contract IERC20)"}},"id":4536,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17769:13:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4998","typeString":"contract IERC20"}},"id":4537,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17783:9:18","memberName":"allowance","nodeType":"MemberAccess","referencedDeclaration":4975,"src":"17769:23:18","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":4543,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17769:49:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"17742:76:18"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4547,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4545,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4533,"src":"17836:16:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":4546,"name":"minAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4506,"src":"17855:12:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17836:31:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4565,"nodeType":"IfStatement","src":"17832:328:18","trueBody":{"id":4564,"nodeType":"Block","src":"17869:291:18","statements":[{"expression":{"arguments":[{"id":4552,"name":"paymaster","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4522,"src":"18064:9:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"30","id":4553,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18075:1:18","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":{"arguments":[{"id":4549,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4504,"src":"18045:5:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4548,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4998,"src":"18038:6:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$4998_$","typeString":"type(contract IERC20)"}},"id":4550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18038:13:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4998","typeString":"contract IERC20"}},"id":4551,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18052:11:18","memberName":"safeApprove","nodeType":"MemberAccess","referencedDeclaration":5136,"src":"18038:25:18","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$4998_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$4998_$","typeString":"function (contract IERC20,address,uint256)"}},"id":4554,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18038:39:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4555,"nodeType":"ExpressionStatement","src":"18038:39:18"},{"expression":{"arguments":[{"id":4560,"name":"paymaster","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4522,"src":"18121:9:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4561,"name":"minAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4506,"src":"18132:12:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":4557,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4504,"src":"18102:5:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4556,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4998,"src":"18095:6:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$4998_$","typeString":"type(contract IERC20)"}},"id":4558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18095:13:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4998","typeString":"contract IERC20"}},"id":4559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18109:11:18","memberName":"safeApprove","nodeType":"MemberAccess","referencedDeclaration":5136,"src":"18095:25:18","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$4998_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$4998_$","typeString":"function (contract IERC20,address,uint256)"}},"id":4562,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18095:50:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4563,"nodeType":"ExpressionStatement","src":"18095:50:18"}]}}]}}]},"documentation":{"id":4463,"nodeType":"StructuredDocumentation","src":"16583:221:18","text":"@notice Processes the common paymaster flows, e.g. setting proper allowance\n for tokens, etc. For more information on the expected behavior, check out\n the \"Paymaster flows\" section in the documentation."},"id":4581,"implemented":true,"kind":"function","modifiers":[],"name":"processPaymasterInput","nameLocation":"16818:21:18","nodeType":"FunctionDefinition","parameters":{"id":4467,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4466,"mutability":"mutable","name":"_transaction","nameLocation":"16861:12:18","nodeType":"VariableDeclaration","scope":4581,"src":"16840:33:18","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction"},"typeName":{"id":4465,"nodeType":"UserDefinedTypeName","pathNode":{"id":4464,"name":"Transaction","nameLocations":["16840:11:18"],"nodeType":"IdentifierPath","referencedDeclaration":3746,"src":"16840:11:18"},"referencedDeclaration":3746,"src":"16840:11:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_storage_ptr","typeString":"struct Transaction"}},"visibility":"internal"}],"src":"16839:35:18"},"returnParameters":{"id":4468,"nodeType":"ParameterList","parameters":[],"src":"16884:0:18"},"scope":4646,"src":"16809:1635:18","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":4603,"nodeType":"Block","src":"18763:244:18","statements":[{"assignments":[4591],"declarations":[{"constant":false,"id":4591,"mutability":"mutable","name":"bootloaderAddr","nameLocation":"18781:14:18","nodeType":"VariableDeclaration","scope":4603,"src":"18773:22:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4590,"name":"address","nodeType":"ElementaryTypeName","src":"18773:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":4593,"initialValue":{"id":4592,"name":"BOOTLOADER_FORMAL_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":958,"src":"18798:25:18","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"VariableDeclarationStatement","src":"18773:50:18"},{"assignments":[4595],"declarations":[{"constant":false,"id":4595,"mutability":"mutable","name":"amount","nameLocation":"18841:6:18","nodeType":"VariableDeclaration","scope":4603,"src":"18833:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4594,"name":"uint256","nodeType":"ElementaryTypeName","src":"18833:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4601,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":4596,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4585,"src":"18850:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":4597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18863:12:18","memberName":"maxFeePerGas","nodeType":"MemberAccess","referencedDeclaration":3722,"src":"18850:25:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":4598,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4585,"src":"18878:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":4599,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18891:8:18","memberName":"gasLimit","nodeType":"MemberAccess","referencedDeclaration":3718,"src":"18878:21:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18850:49:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"18833:66:18"},{"AST":{"nodeType":"YulBlock","src":"18919:82:18","statements":[{"nodeType":"YulAssignment","src":"18933:58:18","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nodeType":"YulIdentifier","src":"18949:3:18"},"nodeType":"YulFunctionCall","src":"18949:5:18"},{"name":"bootloaderAddr","nodeType":"YulIdentifier","src":"18956:14:18"},{"name":"amount","nodeType":"YulIdentifier","src":"18972:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"18980:1:18","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"18983:1:18","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"18986:1:18","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"18989:1:18","type":"","value":"0"}],"functionName":{"name":"call","nodeType":"YulIdentifier","src":"18944:4:18"},"nodeType":"YulFunctionCall","src":"18944:47:18"},"variableNames":[{"name":"success","nodeType":"YulIdentifier","src":"18933:7:18"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":4595,"isOffset":false,"isSlot":false,"src":"18972:6:18","valueSize":1},{"declaration":4591,"isOffset":false,"isSlot":false,"src":"18956:14:18","valueSize":1},{"declaration":4588,"isOffset":false,"isSlot":false,"src":"18933:7:18","valueSize":1}],"id":4602,"nodeType":"InlineAssembly","src":"18910:91:18"}]},"documentation":{"id":4582,"nodeType":"StructuredDocumentation","src":"18450:213:18","text":"@notice Pays the required fee for the transaction to the bootloader.\n @dev Currently it pays the maximum amount \"_transaction.maxFeePerGas * _transaction.gasLimit\",\n it will change in the future."},"id":4604,"implemented":true,"kind":"function","modifiers":[],"name":"payToTheBootloader","nameLocation":"18677:18:18","nodeType":"FunctionDefinition","parameters":{"id":4586,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4585,"mutability":"mutable","name":"_transaction","nameLocation":"18717:12:18","nodeType":"VariableDeclaration","scope":4604,"src":"18696:33:18","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction"},"typeName":{"id":4584,"nodeType":"UserDefinedTypeName","pathNode":{"id":4583,"name":"Transaction","nameLocations":["18696:11:18"],"nodeType":"IdentifierPath","referencedDeclaration":3746,"src":"18696:11:18"},"referencedDeclaration":3746,"src":"18696:11:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_storage_ptr","typeString":"struct Transaction"}},"visibility":"internal"}],"src":"18695:35:18"},"returnParameters":{"id":4589,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4588,"mutability":"mutable","name":"success","nameLocation":"18754:7:18","nodeType":"VariableDeclaration","scope":4604,"src":"18749:12:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4587,"name":"bool","nodeType":"ElementaryTypeName","src":"18749:4:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"18748:14:18"},"scope":4646,"src":"18668:339:18","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":4644,"nodeType":"Block","src":"19190:399:18","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"expression":{"id":4616,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4607,"src":"19220:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":4617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19233:9:18","memberName":"paymaster","nodeType":"MemberAccess","referencedDeclaration":3726,"src":"19220:22:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4615,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19212:7:18","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":4614,"name":"uint160","nodeType":"ElementaryTypeName","src":"19212:7:18","typeDescriptions":{}}},"id":4618,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19212:31:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":4613,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19204:7:18","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4612,"name":"address","nodeType":"ElementaryTypeName","src":"19204:7:18","typeDescriptions":{}}},"id":4619,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19204:40:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":4622,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19256:1:18","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":4621,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19248:7:18","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4620,"name":"address","nodeType":"ElementaryTypeName","src":"19248:7:18","typeDescriptions":{}}},"id":4623,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19248:10:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"19204:54:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":4642,"nodeType":"Block","src":"19369:214:18","statements":[{"expression":{"id":4640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4631,"name":"requiredBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4610,"src":"19484:15:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4639,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4636,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":4632,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4607,"src":"19502:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":4633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19515:12:18","memberName":"maxFeePerGas","nodeType":"MemberAccess","referencedDeclaration":3722,"src":"19502:25:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":4634,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4607,"src":"19530:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":4635,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19543:8:18","memberName":"gasLimit","nodeType":"MemberAccess","referencedDeclaration":3718,"src":"19530:21:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19502:49:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":4637,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4607,"src":"19554:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":4638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19567:5:18","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":3730,"src":"19554:18:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19502:70:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19484:88:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4641,"nodeType":"ExpressionStatement","src":"19484:88:18"}]},"id":4643,"nodeType":"IfStatement","src":"19200:383:18","trueBody":{"id":4630,"nodeType":"Block","src":"19260:103:18","statements":[{"expression":{"id":4628,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4625,"name":"requiredBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4610,"src":"19316:15:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":4626,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4607,"src":"19334:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":4627,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19347:5:18","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":3730,"src":"19334:18:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19316:36:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4629,"nodeType":"ExpressionStatement","src":"19316:36:18"}]}}]},"id":4645,"implemented":true,"kind":"function","modifiers":[],"name":"totalRequiredBalance","nameLocation":"19086:20:18","nodeType":"FunctionDefinition","parameters":{"id":4608,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4607,"mutability":"mutable","name":"_transaction","nameLocation":"19128:12:18","nodeType":"VariableDeclaration","scope":4645,"src":"19107:33:18","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction"},"typeName":{"id":4606,"nodeType":"UserDefinedTypeName","pathNode":{"id":4605,"name":"Transaction","nameLocations":["19107:11:18"],"nodeType":"IdentifierPath","referencedDeclaration":3746,"src":"19107:11:18"},"referencedDeclaration":3746,"src":"19107:11:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_storage_ptr","typeString":"struct Transaction"}},"visibility":"internal"}],"src":"19106:35:18"},"returnParameters":{"id":4611,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4610,"mutability":"mutable","name":"requiredBalance","nameLocation":"19173:15:18","nodeType":"VariableDeclaration","scope":4645,"src":"19165:23:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4609,"name":"uint256","nodeType":"ElementaryTypeName","src":"19165:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19164:25:18"},"scope":4646,"src":"19077:512:18","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":4647,"src":"3015:16576:18","usedErrors":[]}],"src":"33:19559:18"}},"@matterlabs/zksync-contracts/l2/system-contracts/libraries/Utils.sol":{"id":19,"ast":{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/libraries/Utils.sol","exportedSymbols":{"EfficientCall":[2170],"Utils":[4920]},"id":4921,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":4648,"literals":["solidity",">=","0.8",".0"],"nodeType":"PragmaDirective","src":"32:24:19"},{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/libraries/EfficientCall.sol","file":"./EfficientCall.sol","id":4649,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4921,"sourceUnit":2171,"src":"58:29:19","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"Utils","contractDependencies":[],"contractKind":"library","documentation":{"id":4650,"nodeType":"StructuredDocumentation","src":"89:87:19","text":" @author Matter Labs\n @dev Common utilities used in zkSync system contracts"},"fullyImplemented":true,"id":4920,"linearizedBaseContracts":[4920],"name":"Utils","nameLocation":"185:5:19","nodeType":"ContractDefinition","nodes":[{"constant":true,"documentation":{"id":4651,"nodeType":"StructuredDocumentation","src":"197:57:19","text":"@dev Bit mask of bytecode hash \"isConstructor\" marker"},"id":4654,"mutability":"constant","name":"IS_CONSTRUCTOR_BYTECODE_HASH_BIT_MASK","nameLocation":"276:37:19","nodeType":"VariableDeclaration","scope":4920,"src":"259:131:19","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4652,"name":"bytes32","nodeType":"ElementaryTypeName","src":"259:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307830306666303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030","id":4653,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"324:66:19","typeDescriptions":{"typeIdentifier":"t_rational_450546001518488004043740862689444221536008393703282834321009581329618042880_by_1","typeString":"int_const 4505...(67 digits omitted)...2880"},"value":"0x00ff000000000000000000000000000000000000000000000000000000000000"},"visibility":"internal"},{"constant":true,"documentation":{"id":4655,"nodeType":"StructuredDocumentation","src":"397:72:19","text":"@dev Bit mask to set the \"isConstructor\" marker in the bytecode hash"},"id":4658,"mutability":"constant","name":"SET_IS_CONSTRUCTOR_MARKER_BIT_MASK","nameLocation":"491:34:19","nodeType":"VariableDeclaration","scope":4920,"src":"474:128:19","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4656,"name":"bytes32","nodeType":"ElementaryTypeName","src":"474:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307830303031303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030","id":4657,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"536:66:19","typeDescriptions":{"typeIdentifier":"t_rational_1766847064778384329583297500742918515827483896875618958121606201292619776_by_1","typeString":"int_const 1766...(65 digits omitted)...9776"},"value":"0x0001000000000000000000000000000000000000000000000000000000000000"},"visibility":"internal"},{"body":{"id":4681,"nodeType":"Block","src":"677:90:19","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4666,"name":"_x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4660,"src":"695:2:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":4669,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"706:7:19","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":4668,"name":"uint128","nodeType":"ElementaryTypeName","src":"706:7:19","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"}],"id":4667,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"701:4:19","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":4670,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"701:13:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint128","typeString":"type(uint128)"}},"id":4671,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"715:3:19","memberName":"max","nodeType":"MemberAccess","src":"701:17:19","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"695:23:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f766572666c6f77","id":4673,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"720:10:19","typeDescriptions":{"typeIdentifier":"t_stringliteral_100a4a079679ed9d4cede1ac0e8eea56a5c6d7a224d4b46deaa121e0487edea0","typeString":"literal_string \"Overflow\""},"value":"Overflow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_100a4a079679ed9d4cede1ac0e8eea56a5c6d7a224d4b46deaa121e0487edea0","typeString":"literal_string \"Overflow\""}],"id":4665,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"687:7:19","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4674,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"687:44:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4675,"nodeType":"ExpressionStatement","src":"687:44:19"},{"expression":{"arguments":[{"id":4678,"name":"_x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4660,"src":"757:2:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4677,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"749:7:19","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":4676,"name":"uint128","nodeType":"ElementaryTypeName","src":"749:7:19","typeDescriptions":{}}},"id":4679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"749:11:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"functionReturnParameters":4664,"id":4680,"nodeType":"Return","src":"742:18:19"}]},"id":4682,"implemented":true,"kind":"function","modifiers":[],"name":"safeCastToU128","nameLocation":"618:14:19","nodeType":"FunctionDefinition","parameters":{"id":4661,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4660,"mutability":"mutable","name":"_x","nameLocation":"641:2:19","nodeType":"VariableDeclaration","scope":4682,"src":"633:10:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4659,"name":"uint256","nodeType":"ElementaryTypeName","src":"633:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"632:12:19"},"returnParameters":{"id":4664,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4663,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4682,"src":"668:7:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":4662,"name":"uint128","nodeType":"ElementaryTypeName","src":"668:7:19","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"667:9:19"},"scope":4920,"src":"609:158:19","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4705,"nodeType":"Block","src":"839:88:19","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4690,"name":"_x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4684,"src":"857:2:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":4693,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"868:6:19","typeDescriptions":{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"},"typeName":{"id":4692,"name":"uint32","nodeType":"ElementaryTypeName","src":"868:6:19","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"}],"id":4691,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"863:4:19","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":4694,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"863:12:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint32","typeString":"type(uint32)"}},"id":4695,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"876:3:19","memberName":"max","nodeType":"MemberAccess","src":"863:16:19","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"857:22:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f766572666c6f77","id":4697,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"881:10:19","typeDescriptions":{"typeIdentifier":"t_stringliteral_100a4a079679ed9d4cede1ac0e8eea56a5c6d7a224d4b46deaa121e0487edea0","typeString":"literal_string \"Overflow\""},"value":"Overflow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_100a4a079679ed9d4cede1ac0e8eea56a5c6d7a224d4b46deaa121e0487edea0","typeString":"literal_string \"Overflow\""}],"id":4689,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"849:7:19","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4698,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"849:43:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4699,"nodeType":"ExpressionStatement","src":"849:43:19"},{"expression":{"arguments":[{"id":4702,"name":"_x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4684,"src":"917:2:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4701,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"910:6:19","typeDescriptions":{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"},"typeName":{"id":4700,"name":"uint32","nodeType":"ElementaryTypeName","src":"910:6:19","typeDescriptions":{}}},"id":4703,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"910:10:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"functionReturnParameters":4688,"id":4704,"nodeType":"Return","src":"903:17:19"}]},"id":4706,"implemented":true,"kind":"function","modifiers":[],"name":"safeCastToU32","nameLocation":"782:13:19","nodeType":"FunctionDefinition","parameters":{"id":4685,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4684,"mutability":"mutable","name":"_x","nameLocation":"804:2:19","nodeType":"VariableDeclaration","scope":4706,"src":"796:10:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4683,"name":"uint256","nodeType":"ElementaryTypeName","src":"796:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"795:12:19"},"returnParameters":{"id":4688,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4687,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4706,"src":"831:6:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":4686,"name":"uint32","nodeType":"ElementaryTypeName","src":"831:6:19","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"830:8:19"},"scope":4920,"src":"773:154:19","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4729,"nodeType":"Block","src":"999:88:19","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4720,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4714,"name":"_x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4708,"src":"1017:2:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":4717,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1028:6:19","typeDescriptions":{"typeIdentifier":"t_type$_t_uint24_$","typeString":"type(uint24)"},"typeName":{"id":4716,"name":"uint24","nodeType":"ElementaryTypeName","src":"1028:6:19","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint24_$","typeString":"type(uint24)"}],"id":4715,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1023:4:19","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":4718,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1023:12:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint24","typeString":"type(uint24)"}},"id":4719,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1036:3:19","memberName":"max","nodeType":"MemberAccess","src":"1023:16:19","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"src":"1017:22:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f766572666c6f77","id":4721,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1041:10:19","typeDescriptions":{"typeIdentifier":"t_stringliteral_100a4a079679ed9d4cede1ac0e8eea56a5c6d7a224d4b46deaa121e0487edea0","typeString":"literal_string \"Overflow\""},"value":"Overflow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_100a4a079679ed9d4cede1ac0e8eea56a5c6d7a224d4b46deaa121e0487edea0","typeString":"literal_string \"Overflow\""}],"id":4713,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1009:7:19","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4722,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1009:43:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4723,"nodeType":"ExpressionStatement","src":"1009:43:19"},{"expression":{"arguments":[{"id":4726,"name":"_x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4708,"src":"1077:2:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4725,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1070:6:19","typeDescriptions":{"typeIdentifier":"t_type$_t_uint24_$","typeString":"type(uint24)"},"typeName":{"id":4724,"name":"uint24","nodeType":"ElementaryTypeName","src":"1070:6:19","typeDescriptions":{}}},"id":4727,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1070:10:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"functionReturnParameters":4712,"id":4728,"nodeType":"Return","src":"1063:17:19"}]},"id":4730,"implemented":true,"kind":"function","modifiers":[],"name":"safeCastToU24","nameLocation":"942:13:19","nodeType":"FunctionDefinition","parameters":{"id":4709,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4708,"mutability":"mutable","name":"_x","nameLocation":"964:2:19","nodeType":"VariableDeclaration","scope":4730,"src":"956:10:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4707,"name":"uint256","nodeType":"ElementaryTypeName","src":"956:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"955:12:19"},"returnParameters":{"id":4712,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4711,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4730,"src":"991:6:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"},"typeName":{"id":4710,"name":"uint24","nodeType":"ElementaryTypeName","src":"991:6:19","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"visibility":"internal"}],"src":"990:8:19"},"scope":4920,"src":"933:154:19","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4746,"nodeType":"Block","src":"1243:90:19","statements":[{"expression":{"id":4744,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4738,"name":"codeLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4736,"src":"1253:10:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":4740,"name":"_bytecodeHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4733,"src":"1285:13:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":4739,"name":"bytecodeLenInWords","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4781,"src":"1266:18:19","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32) pure returns (uint256)"}},"id":4741,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1266:33:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"35","id":4742,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1303:1:19","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"src":"1266:38:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1253:51:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4745,"nodeType":"ExpressionStatement","src":"1253:51:19"}]},"documentation":{"id":4731,"nodeType":"StructuredDocumentation","src":"1093:51:19","text":"@return codeLength The bytecode length in bytes"},"id":4747,"implemented":true,"kind":"function","modifiers":[],"name":"bytecodeLenInBytes","nameLocation":"1158:18:19","nodeType":"FunctionDefinition","parameters":{"id":4734,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4733,"mutability":"mutable","name":"_bytecodeHash","nameLocation":"1185:13:19","nodeType":"VariableDeclaration","scope":4747,"src":"1177:21:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4732,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1177:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1176:23:19"},"returnParameters":{"id":4737,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4736,"mutability":"mutable","name":"codeLength","nameLocation":"1231:10:19","nodeType":"VariableDeclaration","scope":4747,"src":"1223:18:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4735,"name":"uint256","nodeType":"ElementaryTypeName","src":"1223:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1222:20:19"},"scope":4920,"src":"1149:184:19","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4780,"nodeType":"Block","src":"1511:144:19","statements":[{"id":4779,"nodeType":"UncheckedBlock","src":"1521:128:19","statements":[{"expression":{"id":4777,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4755,"name":"codeLengthInWords","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4753,"src":"1545:17:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"baseExpression":{"id":4760,"name":"_bytecodeHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4750,"src":"1579:13:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":4762,"indexExpression":{"hexValue":"32","id":4761,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1593:1:19","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1579:16:19","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"id":4759,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1573:5:19","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":4758,"name":"uint8","nodeType":"ElementaryTypeName","src":"1573:5:19","typeDescriptions":{}}},"id":4763,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1573:23:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":4757,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1565:7:19","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":4756,"name":"uint256","nodeType":"ElementaryTypeName","src":"1565:7:19","typeDescriptions":{}}},"id":4764,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1565:32:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"323536","id":4765,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1600:3:19","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"value":"256"},"src":"1565:38:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"arguments":[{"baseExpression":{"id":4771,"name":"_bytecodeHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4750,"src":"1620:13:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":4773,"indexExpression":{"hexValue":"33","id":4772,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1634:1:19","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1620:16:19","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"id":4770,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1614:5:19","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":4769,"name":"uint8","nodeType":"ElementaryTypeName","src":"1614:5:19","typeDescriptions":{}}},"id":4774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1614:23:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":4768,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1606:7:19","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":4767,"name":"uint256","nodeType":"ElementaryTypeName","src":"1606:7:19","typeDescriptions":{}}},"id":4775,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1606:32:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1565:73:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1545:93:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4778,"nodeType":"ExpressionStatement","src":"1545:93:19"}]}]},"documentation":{"id":4748,"nodeType":"StructuredDocumentation","src":"1339:66:19","text":"@return codeLengthInWords The bytecode length in machine words"},"id":4781,"implemented":true,"kind":"function","modifiers":[],"name":"bytecodeLenInWords","nameLocation":"1419:18:19","nodeType":"FunctionDefinition","parameters":{"id":4751,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4750,"mutability":"mutable","name":"_bytecodeHash","nameLocation":"1446:13:19","nodeType":"VariableDeclaration","scope":4781,"src":"1438:21:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4749,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1438:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1437:23:19"},"returnParameters":{"id":4754,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4753,"mutability":"mutable","name":"codeLengthInWords","nameLocation":"1492:17:19","nodeType":"VariableDeclaration","scope":4781,"src":"1484:25:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4752,"name":"uint256","nodeType":"ElementaryTypeName","src":"1484:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1483:27:19"},"scope":4920,"src":"1410:245:19","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4795,"nodeType":"Block","src":"1841:48:19","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"id":4793,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":4789,"name":"_bytecodeHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4784,"src":"1858:13:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":4791,"indexExpression":{"hexValue":"31","id":4790,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1872:1:19","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1858:16:19","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30783030","id":4792,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1878:4:19","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x00"},"src":"1858:24:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":4788,"id":4794,"nodeType":"Return","src":"1851:31:19"}]},"documentation":{"id":4782,"nodeType":"StructuredDocumentation","src":"1661:92:19","text":"@notice Denotes whether bytecode hash corresponds to a contract that already constructed"},"id":4796,"implemented":true,"kind":"function","modifiers":[],"name":"isContractConstructed","nameLocation":"1767:21:19","nodeType":"FunctionDefinition","parameters":{"id":4785,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4784,"mutability":"mutable","name":"_bytecodeHash","nameLocation":"1797:13:19","nodeType":"VariableDeclaration","scope":4796,"src":"1789:21:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4783,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1789:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1788:23:19"},"returnParameters":{"id":4788,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4787,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4796,"src":"1835:4:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4786,"name":"bool","nodeType":"ElementaryTypeName","src":"1835:4:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1834:6:19"},"scope":4920,"src":"1758:131:19","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4810,"nodeType":"Block","src":"2106:48:19","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"id":4808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":4804,"name":"_bytecodeHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4799,"src":"2123:13:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":4806,"indexExpression":{"hexValue":"31","id":4805,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2137:1:19","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2123:16:19","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30783031","id":4807,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2143:4:19","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"0x01"},"src":"2123:24:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":4803,"id":4809,"nodeType":"Return","src":"2116:31:19"}]},"documentation":{"id":4797,"nodeType":"StructuredDocumentation","src":"1895:122:19","text":"@notice Denotes whether bytecode hash corresponds to a contract that is on constructor or has already been constructed"},"id":4811,"implemented":true,"kind":"function","modifiers":[],"name":"isContractConstructing","nameLocation":"2031:22:19","nodeType":"FunctionDefinition","parameters":{"id":4800,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4799,"mutability":"mutable","name":"_bytecodeHash","nameLocation":"2062:13:19","nodeType":"VariableDeclaration","scope":4811,"src":"2054:21:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4798,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2054:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2053:23:19"},"returnParameters":{"id":4803,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4802,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4811,"src":"2100:4:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4801,"name":"bool","nodeType":"ElementaryTypeName","src":"2100:4:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2099:6:19"},"scope":4920,"src":"2022:132:19","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4825,"nodeType":"Block","src":"2492:163:19","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":4823,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":4820,"name":"_bytecodeHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4814,"src":"2597:13:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":4819,"name":"constructedBytecodeHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4840,"src":"2573:23:19","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) pure returns (bytes32)"}},"id":4821,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2573:38:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"|","rightExpression":{"id":4822,"name":"SET_IS_CONSTRUCTOR_MARKER_BIT_MASK","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4658,"src":"2614:34:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2573:75:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":4818,"id":4824,"nodeType":"Return","src":"2566:82:19"}]},"documentation":{"id":4812,"nodeType":"StructuredDocumentation","src":"2160:238:19","text":"@notice Sets \"isConstructor\" flag to TRUE for the bytecode hash\n @param _bytecodeHash The bytecode hash for which it is needed to set the constructing flag\n @return The bytecode hash with \"isConstructor\" flag set to TRUE"},"id":4826,"implemented":true,"kind":"function","modifiers":[],"name":"constructingBytecodeHash","nameLocation":"2412:24:19","nodeType":"FunctionDefinition","parameters":{"id":4815,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4814,"mutability":"mutable","name":"_bytecodeHash","nameLocation":"2445:13:19","nodeType":"VariableDeclaration","scope":4826,"src":"2437:21:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4813,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2437:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2436:23:19"},"returnParameters":{"id":4818,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4817,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4826,"src":"2483:7:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4816,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2483:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2482:9:19"},"scope":4920,"src":"2403:252:19","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4839,"nodeType":"Block","src":"2994:78:19","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":4837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4834,"name":"_bytecodeHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4829,"src":"3011:13:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":4836,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"~","prefix":true,"src":"3027:38:19","subExpression":{"id":4835,"name":"IS_CONSTRUCTOR_BYTECODE_HASH_BIT_MASK","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4654,"src":"3028:37:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3011:54:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":4833,"id":4838,"nodeType":"Return","src":"3004:61:19"}]},"documentation":{"id":4827,"nodeType":"StructuredDocumentation","src":"2661:240:19","text":"@notice Sets \"isConstructor\" flag to FALSE for the bytecode hash\n @param _bytecodeHash The bytecode hash for which it is needed to set the constructing flag\n @return The bytecode hash with \"isConstructor\" flag set to FALSE"},"id":4840,"implemented":true,"kind":"function","modifiers":[],"name":"constructedBytecodeHash","nameLocation":"2915:23:19","nodeType":"FunctionDefinition","parameters":{"id":4830,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4829,"mutability":"mutable","name":"_bytecodeHash","nameLocation":"2947:13:19","nodeType":"VariableDeclaration","scope":4840,"src":"2939:21:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4828,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2939:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2938:23:19"},"returnParameters":{"id":4833,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4832,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4840,"src":"2985:7:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4831,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2985:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2984:9:19"},"scope":4920,"src":"2906:166:19","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4918,"nodeType":"Block","src":"3618:766:19","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4854,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4852,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":4849,"name":"_bytecode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4843,"src":"3719:9:19","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":4850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3729:6:19","memberName":"length","nodeType":"MemberAccess","src":"3719:16:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"hexValue":"3332","id":4851,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3738:2:19","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"3719:21:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":4853,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3744:1:19","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3719:26:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"706f","id":4855,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3747:4:19","typeDescriptions":{"typeIdentifier":"t_stringliteral_3139610280e78e87350d483dc3a116242f7cb8d02f4e33775805df8e4fbb5c60","typeString":"literal_string \"po\""},"value":"po"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3139610280e78e87350d483dc3a116242f7cb8d02f4e33775805df8e4fbb5c60","typeString":"literal_string \"po\""}],"id":4848,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3711:7:19","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3711:41:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4857,"nodeType":"ExpressionStatement","src":"3711:41:19"},{"assignments":[4859],"declarations":[{"constant":false,"id":4859,"mutability":"mutable","name":"bytecodeLenInWords","nameLocation":"3771:18:19","nodeType":"VariableDeclaration","scope":4918,"src":"3763:26:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4858,"name":"uint256","nodeType":"ElementaryTypeName","src":"3763:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4864,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":4860,"name":"_bytecode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4843,"src":"3792:9:19","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":4861,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3802:6:19","memberName":"length","nodeType":"MemberAccess","src":"3792:16:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"3332","id":4862,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3811:2:19","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"3792:21:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3763:50:19"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4866,"name":"bytecodeLenInWords","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4859,"src":"3831:18:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"},"id":4869,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":4867,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3852:1:19","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3136","id":4868,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3857:2:19","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"3852:7:19","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}},"src":"3831:28:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"7070","id":4871,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3861:4:19","typeDescriptions":{"typeIdentifier":"t_stringliteral_031d893578c7508e824ef3fed9fe58eb1338724b0459ae1e532b7d98d7568c02","typeString":"literal_string \"pp\""},"value":"pp"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_031d893578c7508e824ef3fed9fe58eb1338724b0459ae1e532b7d98d7568c02","typeString":"literal_string \"pp\""}],"id":4865,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3823:7:19","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4872,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3823:43:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4873,"nodeType":"ExpressionStatement","src":"3823:43:19"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4875,"name":"bytecodeLenInWords","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4859,"src":"3932:18:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"hexValue":"32","id":4876,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3953:1:19","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"3932:22:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":4878,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3958:1:19","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3932:27:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"7072","id":4880,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3961:4:19","typeDescriptions":{"typeIdentifier":"t_stringliteral_41e173379aed3dc573a2a3b793e5f871059199655953f97fd71cc93606ca6b4a","typeString":"literal_string \"pr\""},"value":"pr"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_41e173379aed3dc573a2a3b793e5f871059199655953f97fd71cc93606ca6b4a","typeString":"literal_string \"pr\""}],"id":4874,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3924:7:19","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4881,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3924:42:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4882,"nodeType":"ExpressionStatement","src":"3924:42:19"},{"expression":{"id":4890,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4883,"name":"hashedBytecode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4846,"src":"4016:14:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":4889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":4886,"name":"_bytecode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4843,"src":"4063:9:19","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":4884,"name":"EfficientCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2170,"src":"4045:13:19","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EfficientCall_$2170_$","typeString":"type(library EfficientCall)"}},"id":4885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4059:3:19","memberName":"sha","nodeType":"MemberAccess","referencedDeclaration":1774,"src":"4045:17:19","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (bytes calldata) view returns (bytes32)"}},"id":4887,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4045:28:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"307830303030303030304646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646","id":4888,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4088:66:19","typeDescriptions":{"typeIdentifier":"t_rational_26959946667150639794667015087019630673637144422540572481103610249215_by_1","typeString":"int_const 2695...(60 digits omitted)...9215"},"value":"0x00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"},"src":"4045:109:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"4016:138:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":4891,"nodeType":"ExpressionStatement","src":"4016:138:19"},{"expression":{"id":4905,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4892,"name":"hashedBytecode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4846,"src":"4207:14:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":4903,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4893,"name":"hashedBytecode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4846,"src":"4225:14:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"|","rightExpression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_rational_452312848583266388373324160190187140051835877600158453279131187530910662656_by_1","typeString":"int_const 4523...(67 digits omitted)...2656"},"id":4900,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":4898,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4258:1:19","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323438","id":4899,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4263:3:19","typeDescriptions":{"typeIdentifier":"t_rational_248_by_1","typeString":"int_const 248"},"value":"248"},"src":"4258:8:19","typeDescriptions":{"typeIdentifier":"t_rational_452312848583266388373324160190187140051835877600158453279131187530910662656_by_1","typeString":"int_const 4523...(67 digits omitted)...2656"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_452312848583266388373324160190187140051835877600158453279131187530910662656_by_1","typeString":"int_const 4523...(67 digits omitted)...2656"}],"id":4897,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4250:7:19","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":4896,"name":"uint256","nodeType":"ElementaryTypeName","src":"4250:7:19","typeDescriptions":{}}},"id":4901,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4250:17:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4895,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4242:7:19","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":4894,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4242:7:19","typeDescriptions":{}}},"id":4902,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4242:26:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"4225:43:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":4904,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4224:45:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"4207:62:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":4906,"nodeType":"ExpressionStatement","src":"4207:62:19"},{"expression":{"id":4916,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4907,"name":"hashedBytecode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4846,"src":"4309:14:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":4915,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4908,"name":"hashedBytecode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4846,"src":"4326:14:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"|","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4911,"name":"bytecodeLenInWords","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4859,"src":"4351:18:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323234","id":4912,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4373:3:19","typeDescriptions":{"typeIdentifier":"t_rational_224_by_1","typeString":"int_const 224"},"value":"224"},"src":"4351:25:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4910,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4343:7:19","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":4909,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4343:7:19","typeDescriptions":{}}},"id":4914,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4343:34:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"4326:51:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"4309:68:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":4917,"nodeType":"ExpressionStatement","src":"4309:68:19"}]},"documentation":{"id":4841,"nodeType":"StructuredDocumentation","src":"3078:438:19","text":"@notice Validate the bytecode format and calculate its hash.\n @param _bytecode The bytecode to hash.\n @return hashedBytecode The 32-byte hash of the bytecode.\n Note: The function reverts the execution if the bytecode has non expected format:\n - Bytecode bytes length is not a multiple of 32\n - Bytecode bytes length is not less than 2^21 bytes (2^16 words)\n - Bytecode words length is not odd"},"id":4919,"implemented":true,"kind":"function","modifiers":[],"name":"hashL2Bytecode","nameLocation":"3530:14:19","nodeType":"FunctionDefinition","parameters":{"id":4844,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4843,"mutability":"mutable","name":"_bytecode","nameLocation":"3560:9:19","nodeType":"VariableDeclaration","scope":4919,"src":"3545:24:19","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":4842,"name":"bytes","nodeType":"ElementaryTypeName","src":"3545:5:19","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3544:26:19"},"returnParameters":{"id":4847,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4846,"mutability":"mutable","name":"hashedBytecode","nameLocation":"3602:14:19","nodeType":"VariableDeclaration","scope":4919,"src":"3594:22:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4845,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3594:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3593:24:19"},"scope":4920,"src":"3521:863:19","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":4921,"src":"177:4209:19","usedErrors":[]}],"src":"32:4355:19"}},"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/IERC20.sol":{"id":20,"ast":{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/IERC20.sol","exportedSymbols":{"IERC20":[4998]},"id":4999,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":4922,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"106:23:20"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC20","contractDependencies":[],"contractKind":"interface","documentation":{"id":4923,"nodeType":"StructuredDocumentation","src":"131:70:20","text":" @dev Interface of the ERC20 standard as defined in the EIP."},"fullyImplemented":false,"id":4998,"linearizedBaseContracts":[4998],"name":"IERC20","nameLocation":"212:6:20","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":4924,"nodeType":"StructuredDocumentation","src":"225:158:20","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","id":4932,"name":"Transfer","nameLocation":"394:8:20","nodeType":"EventDefinition","parameters":{"id":4931,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4926,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"419:4:20","nodeType":"VariableDeclaration","scope":4932,"src":"403:20:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4925,"name":"address","nodeType":"ElementaryTypeName","src":"403:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4928,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"441:2:20","nodeType":"VariableDeclaration","scope":4932,"src":"425:18:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4927,"name":"address","nodeType":"ElementaryTypeName","src":"425:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4930,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"453:5:20","nodeType":"VariableDeclaration","scope":4932,"src":"445:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4929,"name":"uint256","nodeType":"ElementaryTypeName","src":"445:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"402:57:20"},"src":"388:72:20"},{"anonymous":false,"documentation":{"id":4933,"nodeType":"StructuredDocumentation","src":"466:148:20","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","id":4941,"name":"Approval","nameLocation":"625:8:20","nodeType":"EventDefinition","parameters":{"id":4940,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4935,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"650:5:20","nodeType":"VariableDeclaration","scope":4941,"src":"634:21:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4934,"name":"address","nodeType":"ElementaryTypeName","src":"634:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4937,"indexed":true,"mutability":"mutable","name":"spender","nameLocation":"673:7:20","nodeType":"VariableDeclaration","scope":4941,"src":"657:23:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4936,"name":"address","nodeType":"ElementaryTypeName","src":"657:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4939,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"690:5:20","nodeType":"VariableDeclaration","scope":4941,"src":"682:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4938,"name":"uint256","nodeType":"ElementaryTypeName","src":"682:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"633:63:20"},"src":"619:78:20"},{"documentation":{"id":4942,"nodeType":"StructuredDocumentation","src":"703:66:20","text":" @dev Returns the amount of tokens in existence."},"functionSelector":"18160ddd","id":4947,"implemented":false,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"783:11:20","nodeType":"FunctionDefinition","parameters":{"id":4943,"nodeType":"ParameterList","parameters":[],"src":"794:2:20"},"returnParameters":{"id":4946,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4945,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4947,"src":"820:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4944,"name":"uint256","nodeType":"ElementaryTypeName","src":"820:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"819:9:20"},"scope":4998,"src":"774:55:20","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":4948,"nodeType":"StructuredDocumentation","src":"835:72:20","text":" @dev Returns the amount of tokens owned by `account`."},"functionSelector":"70a08231","id":4955,"implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"921:9:20","nodeType":"FunctionDefinition","parameters":{"id":4951,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4950,"mutability":"mutable","name":"account","nameLocation":"939:7:20","nodeType":"VariableDeclaration","scope":4955,"src":"931:15:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4949,"name":"address","nodeType":"ElementaryTypeName","src":"931:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"930:17:20"},"returnParameters":{"id":4954,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4953,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4955,"src":"971:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4952,"name":"uint256","nodeType":"ElementaryTypeName","src":"971:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"970:9:20"},"scope":4998,"src":"912:68:20","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":4956,"nodeType":"StructuredDocumentation","src":"986:202:20","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","id":4965,"implemented":false,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"1202:8:20","nodeType":"FunctionDefinition","parameters":{"id":4961,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4958,"mutability":"mutable","name":"to","nameLocation":"1219:2:20","nodeType":"VariableDeclaration","scope":4965,"src":"1211:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4957,"name":"address","nodeType":"ElementaryTypeName","src":"1211:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4960,"mutability":"mutable","name":"amount","nameLocation":"1231:6:20","nodeType":"VariableDeclaration","scope":4965,"src":"1223:14:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4959,"name":"uint256","nodeType":"ElementaryTypeName","src":"1223:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1210:28:20"},"returnParameters":{"id":4964,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4963,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4965,"src":"1257:4:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4962,"name":"bool","nodeType":"ElementaryTypeName","src":"1257:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1256:6:20"},"scope":4998,"src":"1193:70:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":4966,"nodeType":"StructuredDocumentation","src":"1269:264:20","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","id":4975,"implemented":false,"kind":"function","modifiers":[],"name":"allowance","nameLocation":"1547:9:20","nodeType":"FunctionDefinition","parameters":{"id":4971,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4968,"mutability":"mutable","name":"owner","nameLocation":"1565:5:20","nodeType":"VariableDeclaration","scope":4975,"src":"1557:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4967,"name":"address","nodeType":"ElementaryTypeName","src":"1557:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4970,"mutability":"mutable","name":"spender","nameLocation":"1580:7:20","nodeType":"VariableDeclaration","scope":4975,"src":"1572:15:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4969,"name":"address","nodeType":"ElementaryTypeName","src":"1572:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1556:32:20"},"returnParameters":{"id":4974,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4973,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4975,"src":"1612:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4972,"name":"uint256","nodeType":"ElementaryTypeName","src":"1612:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1611:9:20"},"scope":4998,"src":"1538:83:20","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":4976,"nodeType":"StructuredDocumentation","src":"1627:642:20","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","id":4985,"implemented":false,"kind":"function","modifiers":[],"name":"approve","nameLocation":"2283:7:20","nodeType":"FunctionDefinition","parameters":{"id":4981,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4978,"mutability":"mutable","name":"spender","nameLocation":"2299:7:20","nodeType":"VariableDeclaration","scope":4985,"src":"2291:15:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4977,"name":"address","nodeType":"ElementaryTypeName","src":"2291:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4980,"mutability":"mutable","name":"amount","nameLocation":"2316:6:20","nodeType":"VariableDeclaration","scope":4985,"src":"2308:14:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4979,"name":"uint256","nodeType":"ElementaryTypeName","src":"2308:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2290:33:20"},"returnParameters":{"id":4984,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4983,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4985,"src":"2342:4:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4982,"name":"bool","nodeType":"ElementaryTypeName","src":"2342:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2341:6:20"},"scope":4998,"src":"2274:74:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":4986,"nodeType":"StructuredDocumentation","src":"2354:287:20","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","id":4997,"implemented":false,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"2655:12:20","nodeType":"FunctionDefinition","parameters":{"id":4993,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4988,"mutability":"mutable","name":"from","nameLocation":"2685:4:20","nodeType":"VariableDeclaration","scope":4997,"src":"2677:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4987,"name":"address","nodeType":"ElementaryTypeName","src":"2677:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4990,"mutability":"mutable","name":"to","nameLocation":"2707:2:20","nodeType":"VariableDeclaration","scope":4997,"src":"2699:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4989,"name":"address","nodeType":"ElementaryTypeName","src":"2699:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4992,"mutability":"mutable","name":"amount","nameLocation":"2727:6:20","nodeType":"VariableDeclaration","scope":4997,"src":"2719:14:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4991,"name":"uint256","nodeType":"ElementaryTypeName","src":"2719:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2667:72:20"},"returnParameters":{"id":4996,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4995,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4997,"src":"2758:4:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4994,"name":"bool","nodeType":"ElementaryTypeName","src":"2758:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2757:6:20"},"scope":4998,"src":"2646:118:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":4999,"src":"202:2564:20","usedErrors":[]}],"src":"106:2661:20"}},"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/extensions/IERC20Permit.sol":{"id":21,"ast":{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/extensions/IERC20Permit.sol","exportedSymbols":{"IERC20Permit":[5034]},"id":5035,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":5000,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"108:23:21"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC20Permit","contractDependencies":[],"contractKind":"interface","documentation":{"id":5001,"nodeType":"StructuredDocumentation","src":"133:480:21","text":" @dev Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in\n https://eips.ethereum.org/EIPS/eip-2612[EIP-2612].\n Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by\n presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't\n need to send a transaction, and thus is not required to hold Ether at all."},"fullyImplemented":false,"id":5034,"linearizedBaseContracts":[5034],"name":"IERC20Permit","nameLocation":"624:12:21","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":5002,"nodeType":"StructuredDocumentation","src":"643:792:21","text":" @dev Sets `value` as the allowance of `spender` over ``owner``'s tokens,\n given ``owner``'s signed approval.\n IMPORTANT: The same issues {IERC20-approve} has related to transaction\n ordering also apply here.\n Emits an {Approval} event.\n Requirements:\n - `spender` cannot be the zero address.\n - `deadline` must be a timestamp in the future.\n - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner`\n over the EIP712-formatted function arguments.\n - the signature must use ``owner``'s current nonce (see {nonces}).\n For more information on the signature format, see the\n https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP\n section]."},"functionSelector":"d505accf","id":5019,"implemented":false,"kind":"function","modifiers":[],"name":"permit","nameLocation":"1449:6:21","nodeType":"FunctionDefinition","parameters":{"id":5017,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5004,"mutability":"mutable","name":"owner","nameLocation":"1473:5:21","nodeType":"VariableDeclaration","scope":5019,"src":"1465:13:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5003,"name":"address","nodeType":"ElementaryTypeName","src":"1465:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5006,"mutability":"mutable","name":"spender","nameLocation":"1496:7:21","nodeType":"VariableDeclaration","scope":5019,"src":"1488:15:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5005,"name":"address","nodeType":"ElementaryTypeName","src":"1488:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5008,"mutability":"mutable","name":"value","nameLocation":"1521:5:21","nodeType":"VariableDeclaration","scope":5019,"src":"1513:13:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5007,"name":"uint256","nodeType":"ElementaryTypeName","src":"1513:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5010,"mutability":"mutable","name":"deadline","nameLocation":"1544:8:21","nodeType":"VariableDeclaration","scope":5019,"src":"1536:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5009,"name":"uint256","nodeType":"ElementaryTypeName","src":"1536:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5012,"mutability":"mutable","name":"v","nameLocation":"1568:1:21","nodeType":"VariableDeclaration","scope":5019,"src":"1562:7:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":5011,"name":"uint8","nodeType":"ElementaryTypeName","src":"1562:5:21","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":5014,"mutability":"mutable","name":"r","nameLocation":"1587:1:21","nodeType":"VariableDeclaration","scope":5019,"src":"1579:9:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5013,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1579:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5016,"mutability":"mutable","name":"s","nameLocation":"1606:1:21","nodeType":"VariableDeclaration","scope":5019,"src":"1598:9:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5015,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1598:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1455:158:21"},"returnParameters":{"id":5018,"nodeType":"ParameterList","parameters":[],"src":"1622:0:21"},"scope":5034,"src":"1440:183:21","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":5020,"nodeType":"StructuredDocumentation","src":"1629:294:21","text":" @dev Returns the current nonce for `owner`. This value must be\n included whenever a signature is generated for {permit}.\n Every successful call to {permit} increases ``owner``'s nonce by one. This\n prevents a signature from being used multiple times."},"functionSelector":"7ecebe00","id":5027,"implemented":false,"kind":"function","modifiers":[],"name":"nonces","nameLocation":"1937:6:21","nodeType":"FunctionDefinition","parameters":{"id":5023,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5022,"mutability":"mutable","name":"owner","nameLocation":"1952:5:21","nodeType":"VariableDeclaration","scope":5027,"src":"1944:13:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5021,"name":"address","nodeType":"ElementaryTypeName","src":"1944:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1943:15:21"},"returnParameters":{"id":5026,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5025,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5027,"src":"1982:7:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5024,"name":"uint256","nodeType":"ElementaryTypeName","src":"1982:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1981:9:21"},"scope":5034,"src":"1928:63:21","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":5028,"nodeType":"StructuredDocumentation","src":"1997:128:21","text":" @dev Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}."},"functionSelector":"3644e515","id":5033,"implemented":false,"kind":"function","modifiers":[],"name":"DOMAIN_SEPARATOR","nameLocation":"2192:16:21","nodeType":"FunctionDefinition","parameters":{"id":5029,"nodeType":"ParameterList","parameters":[],"src":"2208:2:21"},"returnParameters":{"id":5032,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5031,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5033,"src":"2234:7:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5030,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2234:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2233:9:21"},"scope":5034,"src":"2183:60:21","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":5035,"src":"614:1631:21","usedErrors":[]}],"src":"108:2138:21"}},"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/utils/SafeERC20.sol":{"id":22,"ast":{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/utils/SafeERC20.sol","exportedSymbols":{"Address":[5645],"IERC20":[4998],"IERC20Permit":[5034],"SafeERC20":[5315]},"id":5316,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":5036,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"115:23:22"},{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/IERC20.sol","file":"../IERC20.sol","id":5037,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5316,"sourceUnit":4999,"src":"140:23:22","symbolAliases":[],"unitAlias":""},{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/extensions/IERC20Permit.sol","file":"../extensions/IERC20Permit.sol","id":5038,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5316,"sourceUnit":5035,"src":"164:40:22","symbolAliases":[],"unitAlias":""},{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/utils/Address.sol","file":"../../../utils/Address.sol","id":5039,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5316,"sourceUnit":5646,"src":"205:36:22","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"SafeERC20","contractDependencies":[],"contractKind":"library","documentation":{"id":5040,"nodeType":"StructuredDocumentation","src":"243:457:22","text":" @title SafeERC20\n @dev Wrappers around ERC20 operations that throw on failure (when the token\n contract returns false). Tokens that return no value (and instead revert or\n throw on failure) are also supported, non-reverting calls are assumed to be\n successful.\n To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,\n which allows you to call the safe operations as `token.safeTransfer(...)`, etc."},"fullyImplemented":true,"id":5315,"linearizedBaseContracts":[5315],"name":"SafeERC20","nameLocation":"709:9:22","nodeType":"ContractDefinition","nodes":[{"global":false,"id":5043,"libraryName":{"id":5041,"name":"Address","nameLocations":["731:7:22"],"nodeType":"IdentifierPath","referencedDeclaration":5645,"src":"731:7:22"},"nodeType":"UsingForDirective","src":"725:26:22","typeName":{"id":5042,"name":"address","nodeType":"ElementaryTypeName","src":"743:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"body":{"id":5065,"nodeType":"Block","src":"859:137:22","statements":[{"expression":{"arguments":[{"id":5054,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5046,"src":"902:5:22","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4998","typeString":"contract IERC20"}},{"arguments":[{"expression":{"expression":{"id":5057,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5046,"src":"944:5:22","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4998","typeString":"contract IERC20"}},"id":5058,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"950:8:22","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":4965,"src":"944:14:22","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":5059,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"959:8:22","memberName":"selector","nodeType":"MemberAccess","src":"944:23:22","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":5060,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5048,"src":"969:2:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5061,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5050,"src":"973:5:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5055,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"921:3:22","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5056,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"925:18:22","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"921:22:22","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":5062,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"921:58:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$4998","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5053,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5314,"src":"869:19:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$4998_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":5063,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"869:120:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5064,"nodeType":"ExpressionStatement","src":"869:120:22"}]},"id":5066,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransfer","nameLocation":"766:12:22","nodeType":"FunctionDefinition","parameters":{"id":5051,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5046,"mutability":"mutable","name":"token","nameLocation":"795:5:22","nodeType":"VariableDeclaration","scope":5066,"src":"788:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4998","typeString":"contract IERC20"},"typeName":{"id":5045,"nodeType":"UserDefinedTypeName","pathNode":{"id":5044,"name":"IERC20","nameLocations":["788:6:22"],"nodeType":"IdentifierPath","referencedDeclaration":4998,"src":"788:6:22"},"referencedDeclaration":4998,"src":"788:6:22","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4998","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":5048,"mutability":"mutable","name":"to","nameLocation":"818:2:22","nodeType":"VariableDeclaration","scope":5066,"src":"810:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5047,"name":"address","nodeType":"ElementaryTypeName","src":"810:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5050,"mutability":"mutable","name":"value","nameLocation":"838:5:22","nodeType":"VariableDeclaration","scope":5066,"src":"830:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5049,"name":"uint256","nodeType":"ElementaryTypeName","src":"830:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"778:71:22"},"returnParameters":{"id":5052,"nodeType":"ParameterList","parameters":[],"src":"859:0:22"},"scope":5315,"src":"757:239:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":5091,"nodeType":"Block","src":"1130:147:22","statements":[{"expression":{"arguments":[{"id":5079,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5069,"src":"1173:5:22","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4998","typeString":"contract IERC20"}},{"arguments":[{"expression":{"expression":{"id":5082,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5069,"src":"1215:5:22","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4998","typeString":"contract IERC20"}},"id":5083,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1221:12:22","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":4997,"src":"1215:18:22","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":5084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1234:8:22","memberName":"selector","nodeType":"MemberAccess","src":"1215:27:22","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":5085,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5071,"src":"1244:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5086,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5073,"src":"1250:2:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5087,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5075,"src":"1254:5:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5080,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1192:3:22","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5081,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1196:18:22","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"1192:22:22","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":5088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1192:68:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$4998","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5078,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5314,"src":"1140:19:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$4998_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":5089,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1140:130:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5090,"nodeType":"ExpressionStatement","src":"1140:130:22"}]},"id":5092,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"1011:16:22","nodeType":"FunctionDefinition","parameters":{"id":5076,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5069,"mutability":"mutable","name":"token","nameLocation":"1044:5:22","nodeType":"VariableDeclaration","scope":5092,"src":"1037:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4998","typeString":"contract IERC20"},"typeName":{"id":5068,"nodeType":"UserDefinedTypeName","pathNode":{"id":5067,"name":"IERC20","nameLocations":["1037:6:22"],"nodeType":"IdentifierPath","referencedDeclaration":4998,"src":"1037:6:22"},"referencedDeclaration":4998,"src":"1037:6:22","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4998","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":5071,"mutability":"mutable","name":"from","nameLocation":"1067:4:22","nodeType":"VariableDeclaration","scope":5092,"src":"1059:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5070,"name":"address","nodeType":"ElementaryTypeName","src":"1059:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5073,"mutability":"mutable","name":"to","nameLocation":"1089:2:22","nodeType":"VariableDeclaration","scope":5092,"src":"1081:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5072,"name":"address","nodeType":"ElementaryTypeName","src":"1081:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5075,"mutability":"mutable","name":"value","nameLocation":"1109:5:22","nodeType":"VariableDeclaration","scope":5092,"src":"1101:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5074,"name":"uint256","nodeType":"ElementaryTypeName","src":"1101:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1027:93:22"},"returnParameters":{"id":5077,"nodeType":"ParameterList","parameters":[],"src":"1130:0:22"},"scope":5315,"src":"1002:275:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":5135,"nodeType":"Block","src":"1643:531:22","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":5119,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5106,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5104,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5100,"src":"1892:5:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":5105,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1901:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1892:10:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":5107,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1891:12:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":5112,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1932:4:22","typeDescriptions":{"typeIdentifier":"t_contract$_SafeERC20_$5315","typeString":"library SafeERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SafeERC20_$5315","typeString":"library SafeERC20"}],"id":5111,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1924:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5110,"name":"address","nodeType":"ElementaryTypeName","src":"1924:7:22","typeDescriptions":{}}},"id":5113,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1924:13:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5114,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5098,"src":"1939:7:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5108,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5096,"src":"1908:5:22","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4998","typeString":"contract IERC20"}},"id":5109,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1914:9:22","memberName":"allowance","nodeType":"MemberAccess","referencedDeclaration":4975,"src":"1908:15:22","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":5115,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1908:39:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":5116,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1951:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1908:44:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":5118,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1907:46:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1891:62:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f20746f206e6f6e2d7a65726f20616c6c6f77616e6365","id":5120,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1967:56:22","typeDescriptions":{"typeIdentifier":"t_stringliteral_ef945ddb1bfdc0da870feb4560d868b047642b4ac7f2fb7f8b7c51cb4a411e25","typeString":"literal_string \"SafeERC20: approve from non-zero to non-zero allowance\""},"value":"SafeERC20: approve from non-zero to non-zero allowance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ef945ddb1bfdc0da870feb4560d868b047642b4ac7f2fb7f8b7c51cb4a411e25","typeString":"literal_string \"SafeERC20: approve from non-zero to non-zero allowance\""}],"id":5103,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1870:7:22","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1870:163:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5122,"nodeType":"ExpressionStatement","src":"1870:163:22"},{"expression":{"arguments":[{"id":5124,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5096,"src":"2076:5:22","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4998","typeString":"contract IERC20"}},{"arguments":[{"expression":{"expression":{"id":5127,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5096,"src":"2118:5:22","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4998","typeString":"contract IERC20"}},"id":5128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2124:7:22","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":4985,"src":"2118:13:22","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":5129,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2132:8:22","memberName":"selector","nodeType":"MemberAccess","src":"2118:22:22","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":5130,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5098,"src":"2142:7:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5131,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5100,"src":"2151:5:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5125,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2095:3:22","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5126,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2099:18:22","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"2095:22:22","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":5132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2095:62:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$4998","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5123,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5314,"src":"2043:19:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$4998_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":5133,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2043:124:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5134,"nodeType":"ExpressionStatement","src":"2043:124:22"}]},"documentation":{"id":5093,"nodeType":"StructuredDocumentation","src":"1283:249:22","text":" @dev Deprecated. This function has issues similar to the ones found in\n {IERC20-approve}, and its usage is discouraged.\n Whenever possible, use {safeIncreaseAllowance} and\n {safeDecreaseAllowance} instead."},"id":5136,"implemented":true,"kind":"function","modifiers":[],"name":"safeApprove","nameLocation":"1546:11:22","nodeType":"FunctionDefinition","parameters":{"id":5101,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5096,"mutability":"mutable","name":"token","nameLocation":"1574:5:22","nodeType":"VariableDeclaration","scope":5136,"src":"1567:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4998","typeString":"contract IERC20"},"typeName":{"id":5095,"nodeType":"UserDefinedTypeName","pathNode":{"id":5094,"name":"IERC20","nameLocations":["1567:6:22"],"nodeType":"IdentifierPath","referencedDeclaration":4998,"src":"1567:6:22"},"referencedDeclaration":4998,"src":"1567:6:22","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4998","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":5098,"mutability":"mutable","name":"spender","nameLocation":"1597:7:22","nodeType":"VariableDeclaration","scope":5136,"src":"1589:15:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5097,"name":"address","nodeType":"ElementaryTypeName","src":"1589:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5100,"mutability":"mutable","name":"value","nameLocation":"1622:5:22","nodeType":"VariableDeclaration","scope":5136,"src":"1614:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5099,"name":"uint256","nodeType":"ElementaryTypeName","src":"1614:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1557:76:22"},"returnParameters":{"id":5102,"nodeType":"ParameterList","parameters":[],"src":"1643:0:22"},"scope":5315,"src":"1537:637:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":5171,"nodeType":"Block","src":"2296:290:22","statements":[{"assignments":[5147],"declarations":[{"constant":false,"id":5147,"mutability":"mutable","name":"newAllowance","nameLocation":"2314:12:22","nodeType":"VariableDeclaration","scope":5171,"src":"2306:20:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5146,"name":"uint256","nodeType":"ElementaryTypeName","src":"2306:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5158,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":5152,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2353:4:22","typeDescriptions":{"typeIdentifier":"t_contract$_SafeERC20_$5315","typeString":"library SafeERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SafeERC20_$5315","typeString":"library SafeERC20"}],"id":5151,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2345:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5150,"name":"address","nodeType":"ElementaryTypeName","src":"2345:7:22","typeDescriptions":{}}},"id":5153,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2345:13:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5154,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5141,"src":"2360:7:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5148,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5139,"src":"2329:5:22","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4998","typeString":"contract IERC20"}},"id":5149,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2335:9:22","memberName":"allowance","nodeType":"MemberAccess","referencedDeclaration":4975,"src":"2329:15:22","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":5155,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2329:39:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":5156,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5143,"src":"2371:5:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2329:47:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2306:70:22"},{"expression":{"arguments":[{"id":5160,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5139,"src":"2419:5:22","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4998","typeString":"contract IERC20"}},{"arguments":[{"expression":{"expression":{"id":5163,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5139,"src":"2478:5:22","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4998","typeString":"contract IERC20"}},"id":5164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2484:7:22","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":4985,"src":"2478:13:22","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":5165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2492:8:22","memberName":"selector","nodeType":"MemberAccess","src":"2478:22:22","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":5166,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5141,"src":"2518:7:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5167,"name":"newAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5147,"src":"2543:12:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5161,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2438:3:22","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5162,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2442:18:22","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"2438:22:22","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":5168,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2438:131:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$4998","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5159,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5314,"src":"2386:19:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$4998_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":5169,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2386:193:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5170,"nodeType":"ExpressionStatement","src":"2386:193:22"}]},"id":5172,"implemented":true,"kind":"function","modifiers":[],"name":"safeIncreaseAllowance","nameLocation":"2189:21:22","nodeType":"FunctionDefinition","parameters":{"id":5144,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5139,"mutability":"mutable","name":"token","nameLocation":"2227:5:22","nodeType":"VariableDeclaration","scope":5172,"src":"2220:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4998","typeString":"contract IERC20"},"typeName":{"id":5138,"nodeType":"UserDefinedTypeName","pathNode":{"id":5137,"name":"IERC20","nameLocations":["2220:6:22"],"nodeType":"IdentifierPath","referencedDeclaration":4998,"src":"2220:6:22"},"referencedDeclaration":4998,"src":"2220:6:22","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4998","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":5141,"mutability":"mutable","name":"spender","nameLocation":"2250:7:22","nodeType":"VariableDeclaration","scope":5172,"src":"2242:15:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5140,"name":"address","nodeType":"ElementaryTypeName","src":"2242:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5143,"mutability":"mutable","name":"value","nameLocation":"2275:5:22","nodeType":"VariableDeclaration","scope":5172,"src":"2267:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5142,"name":"uint256","nodeType":"ElementaryTypeName","src":"2267:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2210:76:22"},"returnParameters":{"id":5145,"nodeType":"ParameterList","parameters":[],"src":"2296:0:22"},"scope":5315,"src":"2180:406:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":5219,"nodeType":"Block","src":"2708:540:22","statements":[{"id":5218,"nodeType":"UncheckedBlock","src":"2718:524:22","statements":[{"assignments":[5183],"declarations":[{"constant":false,"id":5183,"mutability":"mutable","name":"oldAllowance","nameLocation":"2750:12:22","nodeType":"VariableDeclaration","scope":5218,"src":"2742:20:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5182,"name":"uint256","nodeType":"ElementaryTypeName","src":"2742:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5192,"initialValue":{"arguments":[{"arguments":[{"id":5188,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2789:4:22","typeDescriptions":{"typeIdentifier":"t_contract$_SafeERC20_$5315","typeString":"library SafeERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SafeERC20_$5315","typeString":"library SafeERC20"}],"id":5187,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2781:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5186,"name":"address","nodeType":"ElementaryTypeName","src":"2781:7:22","typeDescriptions":{}}},"id":5189,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2781:13:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5190,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5177,"src":"2796:7:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5184,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5175,"src":"2765:5:22","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4998","typeString":"contract IERC20"}},"id":5185,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2771:9:22","memberName":"allowance","nodeType":"MemberAccess","referencedDeclaration":4975,"src":"2765:15:22","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":5191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2765:39:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2742:62:22"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5194,"name":"oldAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5183,"src":"2843:12:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":5195,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5179,"src":"2859:5:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2843:21:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5361666545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f","id":5197,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2882:43:22","typeDescriptions":{"typeIdentifier":"t_stringliteral_2c3af60974a758b7e72e108c9bf0943ecc9e4f2e8af4695da5f52fbf57a63d3a","typeString":"literal_string \"SafeERC20: decreased allowance below zero\""},"value":"SafeERC20: decreased allowance below zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2c3af60974a758b7e72e108c9bf0943ecc9e4f2e8af4695da5f52fbf57a63d3a","typeString":"literal_string \"SafeERC20: decreased allowance below zero\""}],"id":5193,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2818:7:22","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5198,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2818:121:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5199,"nodeType":"ExpressionStatement","src":"2818:121:22"},{"assignments":[5201],"declarations":[{"constant":false,"id":5201,"mutability":"mutable","name":"newAllowance","nameLocation":"2961:12:22","nodeType":"VariableDeclaration","scope":5218,"src":"2953:20:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5200,"name":"uint256","nodeType":"ElementaryTypeName","src":"2953:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5205,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5202,"name":"oldAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5183,"src":"2976:12:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":5203,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5179,"src":"2991:5:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2976:20:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2953:43:22"},{"expression":{"arguments":[{"id":5207,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5175,"src":"3047:5:22","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4998","typeString":"contract IERC20"}},{"arguments":[{"expression":{"expression":{"id":5210,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5175,"src":"3114:5:22","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4998","typeString":"contract IERC20"}},"id":5211,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3120:7:22","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":4985,"src":"3114:13:22","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":5212,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3128:8:22","memberName":"selector","nodeType":"MemberAccess","src":"3114:22:22","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":5213,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5177,"src":"3158:7:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5214,"name":"newAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5201,"src":"3187:12:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5208,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3070:3:22","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5209,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3074:18:22","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"3070:22:22","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":5215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3070:147:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$4998","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5206,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5314,"src":"3010:19:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$4998_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":5216,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3010:221:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5217,"nodeType":"ExpressionStatement","src":"3010:221:22"}]}]},"id":5220,"implemented":true,"kind":"function","modifiers":[],"name":"safeDecreaseAllowance","nameLocation":"2601:21:22","nodeType":"FunctionDefinition","parameters":{"id":5180,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5175,"mutability":"mutable","name":"token","nameLocation":"2639:5:22","nodeType":"VariableDeclaration","scope":5220,"src":"2632:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4998","typeString":"contract IERC20"},"typeName":{"id":5174,"nodeType":"UserDefinedTypeName","pathNode":{"id":5173,"name":"IERC20","nameLocations":["2632:6:22"],"nodeType":"IdentifierPath","referencedDeclaration":4998,"src":"2632:6:22"},"referencedDeclaration":4998,"src":"2632:6:22","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4998","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":5177,"mutability":"mutable","name":"spender","nameLocation":"2662:7:22","nodeType":"VariableDeclaration","scope":5220,"src":"2654:15:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5176,"name":"address","nodeType":"ElementaryTypeName","src":"2654:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5179,"mutability":"mutable","name":"value","nameLocation":"2687:5:22","nodeType":"VariableDeclaration","scope":5220,"src":"2679:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5178,"name":"uint256","nodeType":"ElementaryTypeName","src":"2679:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2622:76:22"},"returnParameters":{"id":5181,"nodeType":"ParameterList","parameters":[],"src":"2708:0:22"},"scope":5315,"src":"2592:656:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":5275,"nodeType":"Block","src":"3469:291:22","statements":[{"assignments":[5241],"declarations":[{"constant":false,"id":5241,"mutability":"mutable","name":"nonceBefore","nameLocation":"3487:11:22","nodeType":"VariableDeclaration","scope":5275,"src":"3479:19:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5240,"name":"uint256","nodeType":"ElementaryTypeName","src":"3479:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5246,"initialValue":{"arguments":[{"id":5244,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5225,"src":"3514:5:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5242,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5223,"src":"3501:5:22","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Permit_$5034","typeString":"contract IERC20Permit"}},"id":5243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3507:6:22","memberName":"nonces","nodeType":"MemberAccess","referencedDeclaration":5027,"src":"3501:12:22","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":5245,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3501:19:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3479:41:22"},{"expression":{"arguments":[{"id":5250,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5225,"src":"3543:5:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5251,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5227,"src":"3550:7:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5252,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5229,"src":"3559:5:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5253,"name":"deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5231,"src":"3566:8:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5254,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5233,"src":"3576:1:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":5255,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5235,"src":"3579:1:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":5256,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5237,"src":"3582:1:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":5247,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5223,"src":"3530:5:22","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Permit_$5034","typeString":"contract IERC20Permit"}},"id":5249,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3536:6:22","memberName":"permit","nodeType":"MemberAccess","referencedDeclaration":5019,"src":"3530:12:22","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (address,address,uint256,uint256,uint8,bytes32,bytes32) external"}},"id":5257,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3530:54:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5258,"nodeType":"ExpressionStatement","src":"3530:54:22"},{"assignments":[5260],"declarations":[{"constant":false,"id":5260,"mutability":"mutable","name":"nonceAfter","nameLocation":"3602:10:22","nodeType":"VariableDeclaration","scope":5275,"src":"3594:18:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5259,"name":"uint256","nodeType":"ElementaryTypeName","src":"3594:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5265,"initialValue":{"arguments":[{"id":5263,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5225,"src":"3628:5:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5261,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5223,"src":"3615:5:22","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Permit_$5034","typeString":"contract IERC20Permit"}},"id":5262,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3621:6:22","memberName":"nonces","nodeType":"MemberAccess","referencedDeclaration":5027,"src":"3615:12:22","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":5264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3615:19:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3594:40:22"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5271,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5267,"name":"nonceAfter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5260,"src":"3665:10:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5268,"name":"nonceBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5241,"src":"3679:11:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":5269,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3693:1:22","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3679:15:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3665:29:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5361666545524332303a207065726d697420646964206e6f742073756363656564","id":5272,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3708:35:22","typeDescriptions":{"typeIdentifier":"t_stringliteral_cde8e927812a7a656f8f04e89ac4f4113d47940dd2125d11fcb8e0bd36bfc59d","typeString":"literal_string \"SafeERC20: permit did not succeed\""},"value":"SafeERC20: permit did not succeed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cde8e927812a7a656f8f04e89ac4f4113d47940dd2125d11fcb8e0bd36bfc59d","typeString":"literal_string \"SafeERC20: permit did not succeed\""}],"id":5266,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3644:7:22","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5273,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3644:109:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5274,"nodeType":"ExpressionStatement","src":"3644:109:22"}]},"id":5276,"implemented":true,"kind":"function","modifiers":[],"name":"safePermit","nameLocation":"3263:10:22","nodeType":"FunctionDefinition","parameters":{"id":5238,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5223,"mutability":"mutable","name":"token","nameLocation":"3296:5:22","nodeType":"VariableDeclaration","scope":5276,"src":"3283:18:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Permit_$5034","typeString":"contract IERC20Permit"},"typeName":{"id":5222,"nodeType":"UserDefinedTypeName","pathNode":{"id":5221,"name":"IERC20Permit","nameLocations":["3283:12:22"],"nodeType":"IdentifierPath","referencedDeclaration":5034,"src":"3283:12:22"},"referencedDeclaration":5034,"src":"3283:12:22","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Permit_$5034","typeString":"contract IERC20Permit"}},"visibility":"internal"},{"constant":false,"id":5225,"mutability":"mutable","name":"owner","nameLocation":"3319:5:22","nodeType":"VariableDeclaration","scope":5276,"src":"3311:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5224,"name":"address","nodeType":"ElementaryTypeName","src":"3311:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5227,"mutability":"mutable","name":"spender","nameLocation":"3342:7:22","nodeType":"VariableDeclaration","scope":5276,"src":"3334:15:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5226,"name":"address","nodeType":"ElementaryTypeName","src":"3334:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5229,"mutability":"mutable","name":"value","nameLocation":"3367:5:22","nodeType":"VariableDeclaration","scope":5276,"src":"3359:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5228,"name":"uint256","nodeType":"ElementaryTypeName","src":"3359:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5231,"mutability":"mutable","name":"deadline","nameLocation":"3390:8:22","nodeType":"VariableDeclaration","scope":5276,"src":"3382:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5230,"name":"uint256","nodeType":"ElementaryTypeName","src":"3382:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5233,"mutability":"mutable","name":"v","nameLocation":"3414:1:22","nodeType":"VariableDeclaration","scope":5276,"src":"3408:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":5232,"name":"uint8","nodeType":"ElementaryTypeName","src":"3408:5:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":5235,"mutability":"mutable","name":"r","nameLocation":"3433:1:22","nodeType":"VariableDeclaration","scope":5276,"src":"3425:9:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5234,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3425:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5237,"mutability":"mutable","name":"s","nameLocation":"3452:1:22","nodeType":"VariableDeclaration","scope":5276,"src":"3444:9:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5236,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3444:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3273:186:22"},"returnParameters":{"id":5239,"nodeType":"ParameterList","parameters":[],"src":"3469:0:22"},"scope":5315,"src":"3254:506:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":5313,"nodeType":"Block","src":"4213:716:22","statements":[{"assignments":[5286],"declarations":[{"constant":false,"id":5286,"mutability":"mutable","name":"returndata","nameLocation":"4575:10:22","nodeType":"VariableDeclaration","scope":5313,"src":"4562:23:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5285,"name":"bytes","nodeType":"ElementaryTypeName","src":"4562:5:22","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":5295,"initialValue":{"arguments":[{"id":5292,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5282,"src":"4629:4:22","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564","id":5293,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4647:34:22","typeDescriptions":{"typeIdentifier":"t_stringliteral_47fb62c2c272651d2f0f342bac006756b8ba07f21cc5cb87e0fbb9d50c0c585b","typeString":"literal_string \"SafeERC20: low-level call failed\""},"value":"SafeERC20: low-level call failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_stringliteral_47fb62c2c272651d2f0f342bac006756b8ba07f21cc5cb87e0fbb9d50c0c585b","typeString":"literal_string \"SafeERC20: low-level call failed\""}],"expression":{"arguments":[{"id":5289,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5280,"src":"4596:5:22","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4998","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$4998","typeString":"contract IERC20"}],"id":5288,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4588:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5287,"name":"address","nodeType":"ElementaryTypeName","src":"4588:7:22","typeDescriptions":{}}},"id":5290,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4588:14:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5291,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4603:12:22","memberName":"functionCall","nodeType":"MemberAccess","referencedDeclaration":5405,"src":"4588:27:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$attached_to$_t_address_$","typeString":"function (address,bytes memory,string memory) returns (bytes memory)"}},"id":5294,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4588:103:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"4562:129:22"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5299,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":5296,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5286,"src":"4705:10:22","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":5297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4716:6:22","memberName":"length","nodeType":"MemberAccess","src":"4705:17:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":5298,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4725:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4705:21:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5312,"nodeType":"IfStatement","src":"4701:222:22","trueBody":{"id":5311,"nodeType":"Block","src":"4728:195:22","statements":[{"expression":{"arguments":[{"arguments":[{"id":5303,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5286,"src":"4817:10:22","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":5305,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4830:4:22","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"},"typeName":{"id":5304,"name":"bool","nodeType":"ElementaryTypeName","src":"4830:4:22","typeDescriptions":{}}}],"id":5306,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"4829:6:22","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":5301,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4806:3:22","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5302,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4810:6:22","memberName":"decode","nodeType":"MemberAccess","src":"4806:10:22","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":5307,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4806:30:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564","id":5308,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4854:44:22","typeDescriptions":{"typeIdentifier":"t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd","typeString":"literal_string \"SafeERC20: ERC20 operation did not succeed\""},"value":"SafeERC20: ERC20 operation did not succeed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd","typeString":"literal_string \"SafeERC20: ERC20 operation did not succeed\""}],"id":5300,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4781:7:22","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5309,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4781:131:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5310,"nodeType":"ExpressionStatement","src":"4781:131:22"}]}}]},"documentation":{"id":5277,"nodeType":"StructuredDocumentation","src":"3766:372:22","text":" @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\n on the return value: the return value is optional (but if data is returned, it must not be false).\n @param token The token targeted by the call.\n @param data The call data (encoded using abi.encode or one of its variants)."},"id":5314,"implemented":true,"kind":"function","modifiers":[],"name":"_callOptionalReturn","nameLocation":"4152:19:22","nodeType":"FunctionDefinition","parameters":{"id":5283,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5280,"mutability":"mutable","name":"token","nameLocation":"4179:5:22","nodeType":"VariableDeclaration","scope":5314,"src":"4172:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4998","typeString":"contract IERC20"},"typeName":{"id":5279,"nodeType":"UserDefinedTypeName","pathNode":{"id":5278,"name":"IERC20","nameLocations":["4172:6:22"],"nodeType":"IdentifierPath","referencedDeclaration":4998,"src":"4172:6:22"},"referencedDeclaration":4998,"src":"4172:6:22","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4998","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":5282,"mutability":"mutable","name":"data","nameLocation":"4199:4:22","nodeType":"VariableDeclaration","scope":5314,"src":"4186:17:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5281,"name":"bytes","nodeType":"ElementaryTypeName","src":"4186:5:22","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4171:33:22"},"returnParameters":{"id":5284,"nodeType":"ParameterList","parameters":[],"src":"4213:0:22"},"scope":5315,"src":"4143:786:22","stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"scope":5316,"src":"701:4230:22","usedErrors":[]}],"src":"115:4817:22"}},"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/utils/Address.sol":{"id":23,"ast":{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/utils/Address.sol","exportedSymbols":{"Address":[5645]},"id":5646,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":5317,"literals":["solidity","^","0.8",".1"],"nodeType":"PragmaDirective","src":"101:23:23"},{"abstract":false,"baseContracts":[],"canonicalName":"Address","contractDependencies":[],"contractKind":"library","documentation":{"id":5318,"nodeType":"StructuredDocumentation","src":"126:67:23","text":" @dev Collection of functions related to the address type"},"fullyImplemented":true,"id":5645,"linearizedBaseContracts":[5645],"name":"Address","nameLocation":"202:7:23","nodeType":"ContractDefinition","nodes":[{"body":{"id":5332,"nodeType":"Block","src":"1241:254:23","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":5326,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5321,"src":"1465:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1473:4:23","memberName":"code","nodeType":"MemberAccess","src":"1465:12:23","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":5328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1478:6:23","memberName":"length","nodeType":"MemberAccess","src":"1465:19:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":5329,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1487:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1465:23:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":5325,"id":5331,"nodeType":"Return","src":"1458:30:23"}]},"documentation":{"id":5319,"nodeType":"StructuredDocumentation","src":"216:954:23","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 ===="},"id":5333,"implemented":true,"kind":"function","modifiers":[],"name":"isContract","nameLocation":"1184:10:23","nodeType":"FunctionDefinition","parameters":{"id":5322,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5321,"mutability":"mutable","name":"account","nameLocation":"1203:7:23","nodeType":"VariableDeclaration","scope":5333,"src":"1195:15:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5320,"name":"address","nodeType":"ElementaryTypeName","src":"1195:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1194:17:23"},"returnParameters":{"id":5325,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5324,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5333,"src":"1235:4:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5323,"name":"bool","nodeType":"ElementaryTypeName","src":"1235:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1234:6:23"},"scope":5645,"src":"1175:320:23","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":5366,"nodeType":"Block","src":"2482:309:23","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":5344,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2521:4:23","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$5645","typeString":"library Address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Address_$5645","typeString":"library Address"}],"id":5343,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2513:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5342,"name":"address","nodeType":"ElementaryTypeName","src":"2513:7:23","typeDescriptions":{}}},"id":5345,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2513:13:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5346,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2527:7:23","memberName":"balance","nodeType":"MemberAccess","src":"2513:21:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":5347,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5338,"src":"2538:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2513:31:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20696e73756666696369656e742062616c616e6365","id":5349,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2558:31:23","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":5341,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2492:7:23","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2492:107:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5351,"nodeType":"ExpressionStatement","src":"2492:107:23"},{"assignments":[5353,null],"declarations":[{"constant":false,"id":5353,"mutability":"mutable","name":"success","nameLocation":"2616:7:23","nodeType":"VariableDeclaration","scope":5366,"src":"2611:12:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5352,"name":"bool","nodeType":"ElementaryTypeName","src":"2611:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":5360,"initialValue":{"arguments":[{"hexValue":"","id":5358,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2659:2:23","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":5354,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5336,"src":"2629:9:23","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":5355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2639:4:23","memberName":"call","nodeType":"MemberAccess","src":"2629:14:23","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":5357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":5356,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5338,"src":"2651:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"2629:29:23","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":5359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2629:33:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"2610:52:23"},{"expression":{"arguments":[{"id":5362,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5353,"src":"2693:7:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564","id":5363,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2714:60:23","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":5361,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2672:7:23","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5364,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2672:112:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5365,"nodeType":"ExpressionStatement","src":"2672:112:23"}]},"documentation":{"id":5334,"nodeType":"StructuredDocumentation","src":"1501:905:23","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.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]."},"id":5367,"implemented":true,"kind":"function","modifiers":[],"name":"sendValue","nameLocation":"2420:9:23","nodeType":"FunctionDefinition","parameters":{"id":5339,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5336,"mutability":"mutable","name":"recipient","nameLocation":"2446:9:23","nodeType":"VariableDeclaration","scope":5367,"src":"2430:25:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":5335,"name":"address","nodeType":"ElementaryTypeName","src":"2430:15:23","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":5338,"mutability":"mutable","name":"amount","nameLocation":"2465:6:23","nodeType":"VariableDeclaration","scope":5367,"src":"2457:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5337,"name":"uint256","nodeType":"ElementaryTypeName","src":"2457:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2429:43:23"},"returnParameters":{"id":5340,"nodeType":"ParameterList","parameters":[],"src":"2482:0:23"},"scope":5645,"src":"2411:380:23","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":5384,"nodeType":"Block","src":"3642:186:23","statements":[{"expression":{"arguments":[{"id":5378,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5370,"src":"3710:6:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5379,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5372,"src":"3734:4:23","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"30","id":5380,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3756:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"416464726573733a206c6f772d6c6576656c2063616c6c206661696c6564","id":5381,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3775:32:23","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":5377,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[5425,5469],"referencedDeclaration":5469,"src":"3671:21:23","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":5382,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3671:150:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":5376,"id":5383,"nodeType":"Return","src":"3652:169:23"}]},"documentation":{"id":5368,"nodeType":"StructuredDocumentation","src":"2797:731:23","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._"},"id":5385,"implemented":true,"kind":"function","modifiers":[],"name":"functionCall","nameLocation":"3542:12:23","nodeType":"FunctionDefinition","parameters":{"id":5373,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5370,"mutability":"mutable","name":"target","nameLocation":"3563:6:23","nodeType":"VariableDeclaration","scope":5385,"src":"3555:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5369,"name":"address","nodeType":"ElementaryTypeName","src":"3555:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5372,"mutability":"mutable","name":"data","nameLocation":"3584:4:23","nodeType":"VariableDeclaration","scope":5385,"src":"3571:17:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5371,"name":"bytes","nodeType":"ElementaryTypeName","src":"3571:5:23","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3554:35:23"},"returnParameters":{"id":5376,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5375,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5385,"src":"3624:12:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5374,"name":"bytes","nodeType":"ElementaryTypeName","src":"3624:5:23","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3623:14:23"},"scope":5645,"src":"3533:295:23","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":5404,"nodeType":"Block","src":"4197:76:23","statements":[{"expression":{"arguments":[{"id":5398,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5388,"src":"4236:6:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5399,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5390,"src":"4244:4:23","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"30","id":5400,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4250:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":5401,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5392,"src":"4253:12:23","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":5397,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[5425,5469],"referencedDeclaration":5469,"src":"4214:21:23","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":5402,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4214:52:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":5396,"id":5403,"nodeType":"Return","src":"4207:59:23"}]},"documentation":{"id":5386,"nodeType":"StructuredDocumentation","src":"3834:211:23","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._"},"id":5405,"implemented":true,"kind":"function","modifiers":[],"name":"functionCall","nameLocation":"4059:12:23","nodeType":"FunctionDefinition","parameters":{"id":5393,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5388,"mutability":"mutable","name":"target","nameLocation":"4089:6:23","nodeType":"VariableDeclaration","scope":5405,"src":"4081:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5387,"name":"address","nodeType":"ElementaryTypeName","src":"4081:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5390,"mutability":"mutable","name":"data","nameLocation":"4118:4:23","nodeType":"VariableDeclaration","scope":5405,"src":"4105:17:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5389,"name":"bytes","nodeType":"ElementaryTypeName","src":"4105:5:23","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":5392,"mutability":"mutable","name":"errorMessage","nameLocation":"4146:12:23","nodeType":"VariableDeclaration","scope":5405,"src":"4132:26:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5391,"name":"string","nodeType":"ElementaryTypeName","src":"4132:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4071:93:23"},"returnParameters":{"id":5396,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5395,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5405,"src":"4183:12:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5394,"name":"bytes","nodeType":"ElementaryTypeName","src":"4183:5:23","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4182:14:23"},"scope":5645,"src":"4050:223:23","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":5424,"nodeType":"Block","src":"4778:201:23","statements":[{"expression":{"arguments":[{"id":5418,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5408,"src":"4846:6:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5419,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5410,"src":"4870:4:23","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":5420,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5412,"src":"4892:5:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564","id":5421,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4915:43:23","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":5417,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[5425,5469],"referencedDeclaration":5469,"src":"4807:21:23","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":5422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4807:165:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":5416,"id":5423,"nodeType":"Return","src":"4788:184:23"}]},"documentation":{"id":5406,"nodeType":"StructuredDocumentation","src":"4279:351:23","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._"},"id":5425,"implemented":true,"kind":"function","modifiers":[],"name":"functionCallWithValue","nameLocation":"4644:21:23","nodeType":"FunctionDefinition","parameters":{"id":5413,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5408,"mutability":"mutable","name":"target","nameLocation":"4683:6:23","nodeType":"VariableDeclaration","scope":5425,"src":"4675:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5407,"name":"address","nodeType":"ElementaryTypeName","src":"4675:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5410,"mutability":"mutable","name":"data","nameLocation":"4712:4:23","nodeType":"VariableDeclaration","scope":5425,"src":"4699:17:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5409,"name":"bytes","nodeType":"ElementaryTypeName","src":"4699:5:23","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":5412,"mutability":"mutable","name":"value","nameLocation":"4734:5:23","nodeType":"VariableDeclaration","scope":5425,"src":"4726:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5411,"name":"uint256","nodeType":"ElementaryTypeName","src":"4726:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4665:80:23"},"returnParameters":{"id":5416,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5415,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5425,"src":"4764:12:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5414,"name":"bytes","nodeType":"ElementaryTypeName","src":"4764:5:23","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4763:14:23"},"scope":5645,"src":"4635:344:23","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":5468,"nodeType":"Block","src":"5406:413:23","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":5442,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"5445:4:23","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$5645","typeString":"library Address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Address_$5645","typeString":"library Address"}],"id":5441,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5437:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5440,"name":"address","nodeType":"ElementaryTypeName","src":"5437:7:23","typeDescriptions":{}}},"id":5443,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5437:13:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5444,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5451:7:23","memberName":"balance","nodeType":"MemberAccess","src":"5437:21:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":5445,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5432,"src":"5462:5:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5437:30:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c","id":5447,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5481:40:23","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":5439,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5416:7:23","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5448,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5416:115:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5449,"nodeType":"ExpressionStatement","src":"5416:115:23"},{"assignments":[5451,5453],"declarations":[{"constant":false,"id":5451,"mutability":"mutable","name":"success","nameLocation":"5547:7:23","nodeType":"VariableDeclaration","scope":5468,"src":"5542:12:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5450,"name":"bool","nodeType":"ElementaryTypeName","src":"5542:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":5453,"mutability":"mutable","name":"returndata","nameLocation":"5569:10:23","nodeType":"VariableDeclaration","scope":5468,"src":"5556:23:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5452,"name":"bytes","nodeType":"ElementaryTypeName","src":"5556:5:23","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":5460,"initialValue":{"arguments":[{"id":5458,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5430,"src":"5622:4:23","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":5454,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5428,"src":"5583:6:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5590:4:23","memberName":"call","nodeType":"MemberAccess","src":"5583:11:23","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":5457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":5456,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5432,"src":"5602:5:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"5583:25:23","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":5459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5583:53:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"5541:95:23"},{"expression":{"arguments":[{"id":5462,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5428,"src":"5709:6:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5463,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5451,"src":"5733:7:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":5464,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5453,"src":"5758:10:23","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":5465,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5434,"src":"5786:12:23","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":5461,"name":"verifyCallResultFromTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5600,"src":"5665:26:23","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":5466,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5665:147:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":5438,"id":5467,"nodeType":"Return","src":"5646:166:23"}]},"documentation":{"id":5426,"nodeType":"StructuredDocumentation","src":"4985:237:23","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._"},"id":5469,"implemented":true,"kind":"function","modifiers":[],"name":"functionCallWithValue","nameLocation":"5236:21:23","nodeType":"FunctionDefinition","parameters":{"id":5435,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5428,"mutability":"mutable","name":"target","nameLocation":"5275:6:23","nodeType":"VariableDeclaration","scope":5469,"src":"5267:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5427,"name":"address","nodeType":"ElementaryTypeName","src":"5267:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5430,"mutability":"mutable","name":"data","nameLocation":"5304:4:23","nodeType":"VariableDeclaration","scope":5469,"src":"5291:17:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5429,"name":"bytes","nodeType":"ElementaryTypeName","src":"5291:5:23","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":5432,"mutability":"mutable","name":"value","nameLocation":"5326:5:23","nodeType":"VariableDeclaration","scope":5469,"src":"5318:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5431,"name":"uint256","nodeType":"ElementaryTypeName","src":"5318:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5434,"mutability":"mutable","name":"errorMessage","nameLocation":"5355:12:23","nodeType":"VariableDeclaration","scope":5469,"src":"5341:26:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5433,"name":"string","nodeType":"ElementaryTypeName","src":"5341:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5257:116:23"},"returnParameters":{"id":5438,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5437,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5469,"src":"5392:12:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5436,"name":"bytes","nodeType":"ElementaryTypeName","src":"5392:5:23","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5391:14:23"},"scope":5645,"src":"5227:592:23","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":5485,"nodeType":"Block","src":"6124:171:23","statements":[{"expression":{"arguments":[{"id":5480,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5472,"src":"6189:6:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5481,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5474,"src":"6213:4:23","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564","id":5482,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6235:39:23","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":5479,"name":"functionStaticCall","nodeType":"Identifier","overloadedDeclarations":[5486,5515],"referencedDeclaration":5515,"src":"6153:18:23","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":5483,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6153:135:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":5478,"id":5484,"nodeType":"Return","src":"6134:154:23"}]},"documentation":{"id":5470,"nodeType":"StructuredDocumentation","src":"5825:166:23","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._"},"id":5486,"implemented":true,"kind":"function","modifiers":[],"name":"functionStaticCall","nameLocation":"6005:18:23","nodeType":"FunctionDefinition","parameters":{"id":5475,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5472,"mutability":"mutable","name":"target","nameLocation":"6032:6:23","nodeType":"VariableDeclaration","scope":5486,"src":"6024:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5471,"name":"address","nodeType":"ElementaryTypeName","src":"6024:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5474,"mutability":"mutable","name":"data","nameLocation":"6053:4:23","nodeType":"VariableDeclaration","scope":5486,"src":"6040:17:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5473,"name":"bytes","nodeType":"ElementaryTypeName","src":"6040:5:23","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6023:35:23"},"returnParameters":{"id":5478,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5477,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5486,"src":"6106:12:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5476,"name":"bytes","nodeType":"ElementaryTypeName","src":"6106:5:23","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6105:14:23"},"scope":5645,"src":"5996:299:23","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":5514,"nodeType":"Block","src":"6637:258:23","statements":[{"assignments":[5499,5501],"declarations":[{"constant":false,"id":5499,"mutability":"mutable","name":"success","nameLocation":"6653:7:23","nodeType":"VariableDeclaration","scope":5514,"src":"6648:12:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5498,"name":"bool","nodeType":"ElementaryTypeName","src":"6648:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":5501,"mutability":"mutable","name":"returndata","nameLocation":"6675:10:23","nodeType":"VariableDeclaration","scope":5514,"src":"6662:23:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5500,"name":"bytes","nodeType":"ElementaryTypeName","src":"6662:5:23","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":5506,"initialValue":{"arguments":[{"id":5504,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5491,"src":"6707:4:23","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":5502,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5489,"src":"6689:6:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5503,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6696:10:23","memberName":"staticcall","nodeType":"MemberAccess","src":"6689:17:23","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":5505,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6689:23:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"6647:65:23"},{"expression":{"arguments":[{"id":5508,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5489,"src":"6785:6:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5509,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5499,"src":"6809:7:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":5510,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5501,"src":"6834:10:23","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":5511,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5493,"src":"6862:12:23","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":5507,"name":"verifyCallResultFromTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5600,"src":"6741:26:23","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":5512,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6741:147:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":5497,"id":5513,"nodeType":"Return","src":"6722:166:23"}]},"documentation":{"id":5487,"nodeType":"StructuredDocumentation","src":"6301:173:23","text":" @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._"},"id":5515,"implemented":true,"kind":"function","modifiers":[],"name":"functionStaticCall","nameLocation":"6488:18:23","nodeType":"FunctionDefinition","parameters":{"id":5494,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5489,"mutability":"mutable","name":"target","nameLocation":"6524:6:23","nodeType":"VariableDeclaration","scope":5515,"src":"6516:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5488,"name":"address","nodeType":"ElementaryTypeName","src":"6516:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5491,"mutability":"mutable","name":"data","nameLocation":"6553:4:23","nodeType":"VariableDeclaration","scope":5515,"src":"6540:17:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5490,"name":"bytes","nodeType":"ElementaryTypeName","src":"6540:5:23","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":5493,"mutability":"mutable","name":"errorMessage","nameLocation":"6581:12:23","nodeType":"VariableDeclaration","scope":5515,"src":"6567:26:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5492,"name":"string","nodeType":"ElementaryTypeName","src":"6567:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6506:93:23"},"returnParameters":{"id":5497,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5496,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5515,"src":"6623:12:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5495,"name":"bytes","nodeType":"ElementaryTypeName","src":"6623:5:23","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6622:14:23"},"scope":5645,"src":"6479:416:23","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":5531,"nodeType":"Block","src":"7191:175:23","statements":[{"expression":{"arguments":[{"id":5526,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5518,"src":"7258:6:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5527,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5520,"src":"7282:4:23","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564","id":5528,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7304:41:23","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":5525,"name":"functionDelegateCall","nodeType":"Identifier","overloadedDeclarations":[5532,5561],"referencedDeclaration":5561,"src":"7220:20:23","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":5529,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7220:139:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":5524,"id":5530,"nodeType":"Return","src":"7201:158:23"}]},"documentation":{"id":5516,"nodeType":"StructuredDocumentation","src":"6901:168:23","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._"},"id":5532,"implemented":true,"kind":"function","modifiers":[],"name":"functionDelegateCall","nameLocation":"7083:20:23","nodeType":"FunctionDefinition","parameters":{"id":5521,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5518,"mutability":"mutable","name":"target","nameLocation":"7112:6:23","nodeType":"VariableDeclaration","scope":5532,"src":"7104:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5517,"name":"address","nodeType":"ElementaryTypeName","src":"7104:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5520,"mutability":"mutable","name":"data","nameLocation":"7133:4:23","nodeType":"VariableDeclaration","scope":5532,"src":"7120:17:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5519,"name":"bytes","nodeType":"ElementaryTypeName","src":"7120:5:23","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7103:35:23"},"returnParameters":{"id":5524,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5523,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5532,"src":"7173:12:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5522,"name":"bytes","nodeType":"ElementaryTypeName","src":"7173:5:23","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7172:14:23"},"scope":5645,"src":"7074:292:23","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":5560,"nodeType":"Block","src":"7707:260:23","statements":[{"assignments":[5545,5547],"declarations":[{"constant":false,"id":5545,"mutability":"mutable","name":"success","nameLocation":"7723:7:23","nodeType":"VariableDeclaration","scope":5560,"src":"7718:12:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5544,"name":"bool","nodeType":"ElementaryTypeName","src":"7718:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":5547,"mutability":"mutable","name":"returndata","nameLocation":"7745:10:23","nodeType":"VariableDeclaration","scope":5560,"src":"7732:23:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5546,"name":"bytes","nodeType":"ElementaryTypeName","src":"7732:5:23","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":5552,"initialValue":{"arguments":[{"id":5550,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5537,"src":"7779:4:23","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":5548,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5535,"src":"7759:6:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7766:12:23","memberName":"delegatecall","nodeType":"MemberAccess","src":"7759:19:23","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":5551,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7759:25:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"7717:67:23"},{"expression":{"arguments":[{"id":5554,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5535,"src":"7857:6:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5555,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5545,"src":"7881:7:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":5556,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5547,"src":"7906:10:23","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":5557,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5539,"src":"7934:12:23","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":5553,"name":"verifyCallResultFromTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5600,"src":"7813:26:23","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":5558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7813:147:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":5543,"id":5559,"nodeType":"Return","src":"7794:166:23"}]},"documentation":{"id":5533,"nodeType":"StructuredDocumentation","src":"7372:175:23","text":" @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._"},"id":5561,"implemented":true,"kind":"function","modifiers":[],"name":"functionDelegateCall","nameLocation":"7561:20:23","nodeType":"FunctionDefinition","parameters":{"id":5540,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5535,"mutability":"mutable","name":"target","nameLocation":"7599:6:23","nodeType":"VariableDeclaration","scope":5561,"src":"7591:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5534,"name":"address","nodeType":"ElementaryTypeName","src":"7591:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5537,"mutability":"mutable","name":"data","nameLocation":"7628:4:23","nodeType":"VariableDeclaration","scope":5561,"src":"7615:17:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5536,"name":"bytes","nodeType":"ElementaryTypeName","src":"7615:5:23","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":5539,"mutability":"mutable","name":"errorMessage","nameLocation":"7656:12:23","nodeType":"VariableDeclaration","scope":5561,"src":"7642:26:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5538,"name":"string","nodeType":"ElementaryTypeName","src":"7642:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7581:93:23"},"returnParameters":{"id":5543,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5542,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5561,"src":"7693:12:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5541,"name":"bytes","nodeType":"ElementaryTypeName","src":"7693:5:23","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7692:14:23"},"scope":5645,"src":"7552:415:23","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":5599,"nodeType":"Block","src":"8449:434:23","statements":[{"condition":{"id":5575,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5566,"src":"8463:7:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":5597,"nodeType":"Block","src":"8819:58:23","statements":[{"expression":{"arguments":[{"id":5593,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5568,"src":"8841:10:23","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":5594,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5570,"src":"8853:12:23","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":5592,"name":"_revert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5644,"src":"8833:7:23","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (bytes memory,string memory) pure"}},"id":5595,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8833:33:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5596,"nodeType":"ExpressionStatement","src":"8833:33:23"}]},"id":5598,"nodeType":"IfStatement","src":"8459:418:23","trueBody":{"id":5591,"nodeType":"Block","src":"8472:341:23","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":5576,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5568,"src":"8490:10:23","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":5577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8501:6:23","memberName":"length","nodeType":"MemberAccess","src":"8490:17:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":5578,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8511:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8490:22:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5588,"nodeType":"IfStatement","src":"8486:286:23","trueBody":{"id":5587,"nodeType":"Block","src":"8514:258:23","statements":[{"expression":{"arguments":[{"arguments":[{"id":5582,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5564,"src":"8716:6:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5581,"name":"isContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5333,"src":"8705:10:23","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":5583,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8705:18:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374","id":5584,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8725:31:23","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":5580,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8697:7:23","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5585,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8697:60:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5586,"nodeType":"ExpressionStatement","src":"8697:60:23"}]}},{"expression":{"id":5589,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5568,"src":"8792:10:23","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":5574,"id":5590,"nodeType":"Return","src":"8785:17:23"}]}}]},"documentation":{"id":5562,"nodeType":"StructuredDocumentation","src":"7973:277:23","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._"},"id":5600,"implemented":true,"kind":"function","modifiers":[],"name":"verifyCallResultFromTarget","nameLocation":"8264:26:23","nodeType":"FunctionDefinition","parameters":{"id":5571,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5564,"mutability":"mutable","name":"target","nameLocation":"8308:6:23","nodeType":"VariableDeclaration","scope":5600,"src":"8300:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5563,"name":"address","nodeType":"ElementaryTypeName","src":"8300:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5566,"mutability":"mutable","name":"success","nameLocation":"8329:7:23","nodeType":"VariableDeclaration","scope":5600,"src":"8324:12:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5565,"name":"bool","nodeType":"ElementaryTypeName","src":"8324:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":5568,"mutability":"mutable","name":"returndata","nameLocation":"8359:10:23","nodeType":"VariableDeclaration","scope":5600,"src":"8346:23:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5567,"name":"bytes","nodeType":"ElementaryTypeName","src":"8346:5:23","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":5570,"mutability":"mutable","name":"errorMessage","nameLocation":"8393:12:23","nodeType":"VariableDeclaration","scope":5600,"src":"8379:26:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5569,"name":"string","nodeType":"ElementaryTypeName","src":"8379:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8290:121:23"},"returnParameters":{"id":5574,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5573,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5600,"src":"8435:12:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5572,"name":"bytes","nodeType":"ElementaryTypeName","src":"8435:5:23","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8434:14:23"},"scope":5645,"src":"8255:628:23","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":5623,"nodeType":"Block","src":"9264:135:23","statements":[{"condition":{"id":5612,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5603,"src":"9278:7:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":5621,"nodeType":"Block","src":"9335:58:23","statements":[{"expression":{"arguments":[{"id":5617,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5605,"src":"9357:10:23","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":5618,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5607,"src":"9369:12:23","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":5616,"name":"_revert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5644,"src":"9349:7:23","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (bytes memory,string memory) pure"}},"id":5619,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9349:33:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5620,"nodeType":"ExpressionStatement","src":"9349:33:23"}]},"id":5622,"nodeType":"IfStatement","src":"9274:119:23","trueBody":{"id":5615,"nodeType":"Block","src":"9287:42:23","statements":[{"expression":{"id":5613,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5605,"src":"9308:10:23","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":5611,"id":5614,"nodeType":"Return","src":"9301:17:23"}]}}]},"documentation":{"id":5601,"nodeType":"StructuredDocumentation","src":"8889:210:23","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._"},"id":5624,"implemented":true,"kind":"function","modifiers":[],"name":"verifyCallResult","nameLocation":"9113:16:23","nodeType":"FunctionDefinition","parameters":{"id":5608,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5603,"mutability":"mutable","name":"success","nameLocation":"9144:7:23","nodeType":"VariableDeclaration","scope":5624,"src":"9139:12:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5602,"name":"bool","nodeType":"ElementaryTypeName","src":"9139:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":5605,"mutability":"mutable","name":"returndata","nameLocation":"9174:10:23","nodeType":"VariableDeclaration","scope":5624,"src":"9161:23:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5604,"name":"bytes","nodeType":"ElementaryTypeName","src":"9161:5:23","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":5607,"mutability":"mutable","name":"errorMessage","nameLocation":"9208:12:23","nodeType":"VariableDeclaration","scope":5624,"src":"9194:26:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5606,"name":"string","nodeType":"ElementaryTypeName","src":"9194:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"9129:97:23"},"returnParameters":{"id":5611,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5610,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5624,"src":"9250:12:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5609,"name":"bytes","nodeType":"ElementaryTypeName","src":"9250:5:23","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"9249:14:23"},"scope":5645,"src":"9104:295:23","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5643,"nodeType":"Block","src":"9508:457:23","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5634,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":5631,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5626,"src":"9584:10:23","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":5632,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9595:6:23","memberName":"length","nodeType":"MemberAccess","src":"9584:17:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":5633,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9604:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9584:21:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":5641,"nodeType":"Block","src":"9914:45:23","statements":[{"expression":{"arguments":[{"id":5638,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5628,"src":"9935:12:23","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":5637,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"9928:6:23","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":5639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9928:20:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5640,"nodeType":"ExpressionStatement","src":"9928:20:23"}]},"id":5642,"nodeType":"IfStatement","src":"9580:379:23","trueBody":{"id":5636,"nodeType":"Block","src":"9607:301:23","statements":[{"AST":{"nodeType":"YulBlock","src":"9765:133:23","statements":[{"nodeType":"YulVariableDeclaration","src":"9783:40:23","value":{"arguments":[{"name":"returndata","nodeType":"YulIdentifier","src":"9812:10:23"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9806:5:23"},"nodeType":"YulFunctionCall","src":"9806:17:23"},"variables":[{"name":"returndata_size","nodeType":"YulTypedName","src":"9787:15:23","type":""}]},{"expression":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9851:2:23","type":"","value":"32"},{"name":"returndata","nodeType":"YulIdentifier","src":"9855:10:23"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9847:3:23"},"nodeType":"YulFunctionCall","src":"9847:19:23"},{"name":"returndata_size","nodeType":"YulIdentifier","src":"9868:15:23"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9840:6:23"},"nodeType":"YulFunctionCall","src":"9840:44:23"},"nodeType":"YulExpressionStatement","src":"9840:44:23"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":5626,"isOffset":false,"isSlot":false,"src":"9812:10:23","valueSize":1},{"declaration":5626,"isOffset":false,"isSlot":false,"src":"9855:10:23","valueSize":1}],"id":5635,"nodeType":"InlineAssembly","src":"9756:142:23"}]}}]},"id":5644,"implemented":true,"kind":"function","modifiers":[],"name":"_revert","nameLocation":"9414:7:23","nodeType":"FunctionDefinition","parameters":{"id":5629,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5626,"mutability":"mutable","name":"returndata","nameLocation":"9435:10:23","nodeType":"VariableDeclaration","scope":5644,"src":"9422:23:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5625,"name":"bytes","nodeType":"ElementaryTypeName","src":"9422:5:23","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":5628,"mutability":"mutable","name":"errorMessage","nameLocation":"9461:12:23","nodeType":"VariableDeclaration","scope":5644,"src":"9447:26:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5627,"name":"string","nodeType":"ElementaryTypeName","src":"9447:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"9421:53:23"},"returnParameters":{"id":5630,"nodeType":"ParameterList","parameters":[],"src":"9508:0:23"},"scope":5645,"src":"9405:560:23","stateMutability":"pure","virtual":false,"visibility":"private"}],"scope":5646,"src":"194:9773:23","usedErrors":[]}],"src":"101:9867:23"}},"@openzeppelin/contracts/access/Ownable.sol":{"id":24,"ast":{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","exportedSymbols":{"Context":[8135],"Ownable":[5750]},"id":5751,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":5647,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"87:23:24"},{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","file":"../utils/Context.sol","id":5648,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5751,"sourceUnit":8136,"src":"112:30:24","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":5650,"name":"Context","nameLocations":["668:7:24"],"nodeType":"IdentifierPath","referencedDeclaration":8135,"src":"668:7:24"},"id":5651,"nodeType":"InheritanceSpecifier","src":"668:7:24"}],"canonicalName":"Ownable","contractDependencies":[],"contractKind":"contract","documentation":{"id":5649,"nodeType":"StructuredDocumentation","src":"144:494:24","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,"id":5750,"linearizedBaseContracts":[5750,8135],"name":"Ownable","nameLocation":"657:7:24","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":5653,"mutability":"mutable","name":"_owner","nameLocation":"698:6:24","nodeType":"VariableDeclaration","scope":5750,"src":"682:22:24","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5652,"name":"address","nodeType":"ElementaryTypeName","src":"682:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"anonymous":false,"eventSelector":"8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","id":5659,"name":"OwnershipTransferred","nameLocation":"717:20:24","nodeType":"EventDefinition","parameters":{"id":5658,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5655,"indexed":true,"mutability":"mutable","name":"previousOwner","nameLocation":"754:13:24","nodeType":"VariableDeclaration","scope":5659,"src":"738:29:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5654,"name":"address","nodeType":"ElementaryTypeName","src":"738:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5657,"indexed":true,"mutability":"mutable","name":"newOwner","nameLocation":"785:8:24","nodeType":"VariableDeclaration","scope":5659,"src":"769:24:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5656,"name":"address","nodeType":"ElementaryTypeName","src":"769:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"737:57:24"},"src":"711:84:24"},{"body":{"id":5668,"nodeType":"Block","src":"911:49:24","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":5664,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8125,"src":"940:10:24","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":5665,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"940:12:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5663,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5749,"src":"921:18:24","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":5666,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"921:32:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5667,"nodeType":"ExpressionStatement","src":"921:32:24"}]},"documentation":{"id":5660,"nodeType":"StructuredDocumentation","src":"801:91:24","text":" @dev Initializes the contract setting the deployer as the initial owner."},"id":5669,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":5661,"nodeType":"ParameterList","parameters":[],"src":"908:2:24"},"returnParameters":{"id":5662,"nodeType":"ParameterList","parameters":[],"src":"911:0:24"},"scope":5750,"src":"897:63:24","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":5677,"nodeType":"Block","src":"1091:30:24","statements":[{"expression":{"id":5675,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5653,"src":"1108:6:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":5674,"id":5676,"nodeType":"Return","src":"1101:13:24"}]},"documentation":{"id":5670,"nodeType":"StructuredDocumentation","src":"966:65:24","text":" @dev Returns the address of the current owner."},"functionSelector":"8da5cb5b","id":5678,"implemented":true,"kind":"function","modifiers":[],"name":"owner","nameLocation":"1045:5:24","nodeType":"FunctionDefinition","parameters":{"id":5671,"nodeType":"ParameterList","parameters":[],"src":"1050:2:24"},"returnParameters":{"id":5674,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5673,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5678,"src":"1082:7:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5672,"name":"address","nodeType":"ElementaryTypeName","src":"1082:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1081:9:24"},"scope":5750,"src":"1036:85:24","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":5691,"nodeType":"Block","src":"1230:96:24","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5686,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":5682,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5678,"src":"1248:5:24","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":5683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1248:7:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":5684,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8125,"src":"1259:10:24","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":5685,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1259:12:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1248:23:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","id":5687,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1273:34:24","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":5681,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1240:7:24","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5688,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1240:68:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5689,"nodeType":"ExpressionStatement","src":"1240:68:24"},{"id":5690,"nodeType":"PlaceholderStatement","src":"1318:1:24"}]},"documentation":{"id":5679,"nodeType":"StructuredDocumentation","src":"1127:77:24","text":" @dev Throws if called by any account other than the owner."},"id":5692,"name":"onlyOwner","nameLocation":"1218:9:24","nodeType":"ModifierDefinition","parameters":{"id":5680,"nodeType":"ParameterList","parameters":[],"src":"1227:2:24"},"src":"1209:117:24","virtual":false,"visibility":"internal"},{"body":{"id":5705,"nodeType":"Block","src":"1722:47:24","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":5701,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1759:1:24","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":5700,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1751:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5699,"name":"address","nodeType":"ElementaryTypeName","src":"1751:7:24","typeDescriptions":{}}},"id":5702,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1751:10:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5698,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5749,"src":"1732:18:24","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":5703,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1732:30:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5704,"nodeType":"ExpressionStatement","src":"1732:30:24"}]},"documentation":{"id":5693,"nodeType":"StructuredDocumentation","src":"1332:331:24","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","id":5706,"implemented":true,"kind":"function","modifiers":[{"id":5696,"kind":"modifierInvocation","modifierName":{"id":5695,"name":"onlyOwner","nameLocations":["1712:9:24"],"nodeType":"IdentifierPath","referencedDeclaration":5692,"src":"1712:9:24"},"nodeType":"ModifierInvocation","src":"1712:9:24"}],"name":"renounceOwnership","nameLocation":"1677:17:24","nodeType":"FunctionDefinition","parameters":{"id":5694,"nodeType":"ParameterList","parameters":[],"src":"1694:2:24"},"returnParameters":{"id":5697,"nodeType":"ParameterList","parameters":[],"src":"1722:0:24"},"scope":5750,"src":"1668:101:24","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":5728,"nodeType":"Block","src":"1988:128:24","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5720,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5715,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5709,"src":"2006:8:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":5718,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2026:1:24","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":5717,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2018:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5716,"name":"address","nodeType":"ElementaryTypeName","src":"2018:7:24","typeDescriptions":{}}},"id":5719,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2018:10:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2006:22:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373","id":5721,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2030:40:24","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":5714,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1998:7:24","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5722,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1998:73:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5723,"nodeType":"ExpressionStatement","src":"1998:73:24"},{"expression":{"arguments":[{"id":5725,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5709,"src":"2100:8:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5724,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5749,"src":"2081:18:24","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":5726,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2081:28:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5727,"nodeType":"ExpressionStatement","src":"2081:28:24"}]},"documentation":{"id":5707,"nodeType":"StructuredDocumentation","src":"1775:138:24","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Can only be called by the current owner."},"functionSelector":"f2fde38b","id":5729,"implemented":true,"kind":"function","modifiers":[{"id":5712,"kind":"modifierInvocation","modifierName":{"id":5711,"name":"onlyOwner","nameLocations":["1978:9:24"],"nodeType":"IdentifierPath","referencedDeclaration":5692,"src":"1978:9:24"},"nodeType":"ModifierInvocation","src":"1978:9:24"}],"name":"transferOwnership","nameLocation":"1927:17:24","nodeType":"FunctionDefinition","parameters":{"id":5710,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5709,"mutability":"mutable","name":"newOwner","nameLocation":"1953:8:24","nodeType":"VariableDeclaration","scope":5729,"src":"1945:16:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5708,"name":"address","nodeType":"ElementaryTypeName","src":"1945:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1944:18:24"},"returnParameters":{"id":5713,"nodeType":"ParameterList","parameters":[],"src":"1988:0:24"},"scope":5750,"src":"1918:198:24","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":5748,"nodeType":"Block","src":"2333:124:24","statements":[{"assignments":[5736],"declarations":[{"constant":false,"id":5736,"mutability":"mutable","name":"oldOwner","nameLocation":"2351:8:24","nodeType":"VariableDeclaration","scope":5748,"src":"2343:16:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5735,"name":"address","nodeType":"ElementaryTypeName","src":"2343:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":5738,"initialValue":{"id":5737,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5653,"src":"2362:6:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2343:25:24"},{"expression":{"id":5741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5739,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5653,"src":"2378:6:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5740,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5732,"src":"2387:8:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2378:17:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5742,"nodeType":"ExpressionStatement","src":"2378:17:24"},{"eventCall":{"arguments":[{"id":5744,"name":"oldOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5736,"src":"2431:8:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5745,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5732,"src":"2441:8:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":5743,"name":"OwnershipTransferred","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5659,"src":"2410:20:24","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":5746,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2410:40:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5747,"nodeType":"EmitStatement","src":"2405:45:24"}]},"documentation":{"id":5730,"nodeType":"StructuredDocumentation","src":"2122:143:24","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Internal function without access restriction."},"id":5749,"implemented":true,"kind":"function","modifiers":[],"name":"_transferOwnership","nameLocation":"2279:18:24","nodeType":"FunctionDefinition","parameters":{"id":5733,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5732,"mutability":"mutable","name":"newOwner","nameLocation":"2306:8:24","nodeType":"VariableDeclaration","scope":5749,"src":"2298:16:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5731,"name":"address","nodeType":"ElementaryTypeName","src":"2298:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2297:18:24"},"returnParameters":{"id":5734,"nodeType":"ParameterList","parameters":[],"src":"2333:0:24"},"scope":5750,"src":"2270:187:24","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":5751,"src":"639:1820:24","usedErrors":[]}],"src":"87:2373:24"}},"@openzeppelin/contracts/token/ERC20/ERC20.sol":{"id":25,"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/ERC20.sol","exportedSymbols":{"Context":[8135],"ERC20":[6336],"IERC20":[6414],"IERC20Metadata":[6439]},"id":6337,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":5752,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"105:23:25"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"./IERC20.sol","id":5753,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6337,"sourceUnit":6415,"src":"130:22:25","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol","file":"./extensions/IERC20Metadata.sol","id":5754,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6337,"sourceUnit":6440,"src":"153:41:25","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","file":"../../utils/Context.sol","id":5755,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6337,"sourceUnit":8136,"src":"195:33:25","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":5757,"name":"Context","nameLocations":["1421:7:25"],"nodeType":"IdentifierPath","referencedDeclaration":8135,"src":"1421:7:25"},"id":5758,"nodeType":"InheritanceSpecifier","src":"1421:7:25"},{"baseName":{"id":5759,"name":"IERC20","nameLocations":["1430:6:25"],"nodeType":"IdentifierPath","referencedDeclaration":6414,"src":"1430:6:25"},"id":5760,"nodeType":"InheritanceSpecifier","src":"1430:6:25"},{"baseName":{"id":5761,"name":"IERC20Metadata","nameLocations":["1438:14:25"],"nodeType":"IdentifierPath","referencedDeclaration":6439,"src":"1438:14:25"},"id":5762,"nodeType":"InheritanceSpecifier","src":"1438:14:25"}],"canonicalName":"ERC20","contractDependencies":[],"contractKind":"contract","documentation":{"id":5756,"nodeType":"StructuredDocumentation","src":"230:1172:25","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,"id":6336,"linearizedBaseContracts":[6336,6439,6414,8135],"name":"ERC20","nameLocation":"1412:5:25","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":5766,"mutability":"mutable","name":"_balances","nameLocation":"1495:9:25","nodeType":"VariableDeclaration","scope":6336,"src":"1459:45:25","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":5765,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":5763,"name":"address","nodeType":"ElementaryTypeName","src":"1467:7:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1459:27:25","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":5764,"name":"uint256","nodeType":"ElementaryTypeName","src":"1478:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"constant":false,"id":5772,"mutability":"mutable","name":"_allowances","nameLocation":"1567:11:25","nodeType":"VariableDeclaration","scope":6336,"src":"1511:67:25","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"typeName":{"id":5771,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":5767,"name":"address","nodeType":"ElementaryTypeName","src":"1519:7:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1511:47:25","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":5770,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":5768,"name":"address","nodeType":"ElementaryTypeName","src":"1538:7:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1530:27:25","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":5769,"name":"uint256","nodeType":"ElementaryTypeName","src":"1549:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"private"},{"constant":false,"id":5774,"mutability":"mutable","name":"_totalSupply","nameLocation":"1601:12:25","nodeType":"VariableDeclaration","scope":6336,"src":"1585:28:25","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5773,"name":"uint256","nodeType":"ElementaryTypeName","src":"1585:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"constant":false,"id":5776,"mutability":"mutable","name":"_name","nameLocation":"1635:5:25","nodeType":"VariableDeclaration","scope":6336,"src":"1620:20:25","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":5775,"name":"string","nodeType":"ElementaryTypeName","src":"1620:6:25","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"constant":false,"id":5778,"mutability":"mutable","name":"_symbol","nameLocation":"1661:7:25","nodeType":"VariableDeclaration","scope":6336,"src":"1646:22:25","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":5777,"name":"string","nodeType":"ElementaryTypeName","src":"1646:6:25","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"body":{"id":5794,"nodeType":"Block","src":"2034:57:25","statements":[{"expression":{"id":5788,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5786,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5776,"src":"2044:5:25","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5787,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5781,"src":"2052:5:25","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"2044:13:25","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":5789,"nodeType":"ExpressionStatement","src":"2044:13:25"},{"expression":{"id":5792,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5790,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5778,"src":"2067:7:25","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5791,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5783,"src":"2077:7:25","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"2067:17:25","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":5793,"nodeType":"ExpressionStatement","src":"2067:17:25"}]},"documentation":{"id":5779,"nodeType":"StructuredDocumentation","src":"1675:298:25","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."},"id":5795,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":5784,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5781,"mutability":"mutable","name":"name_","nameLocation":"2004:5:25","nodeType":"VariableDeclaration","scope":5795,"src":"1990:19:25","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5780,"name":"string","nodeType":"ElementaryTypeName","src":"1990:6:25","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5783,"mutability":"mutable","name":"symbol_","nameLocation":"2025:7:25","nodeType":"VariableDeclaration","scope":5795,"src":"2011:21:25","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5782,"name":"string","nodeType":"ElementaryTypeName","src":"2011:6:25","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1989:44:25"},"returnParameters":{"id":5785,"nodeType":"ParameterList","parameters":[],"src":"2034:0:25"},"scope":6336,"src":"1978:113:25","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[6426],"body":{"id":5804,"nodeType":"Block","src":"2225:29:25","statements":[{"expression":{"id":5802,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5776,"src":"2242:5:25","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":5801,"id":5803,"nodeType":"Return","src":"2235:12:25"}]},"documentation":{"id":5796,"nodeType":"StructuredDocumentation","src":"2097:54:25","text":" @dev Returns the name of the token."},"functionSelector":"06fdde03","id":5805,"implemented":true,"kind":"function","modifiers":[],"name":"name","nameLocation":"2165:4:25","nodeType":"FunctionDefinition","overrides":{"id":5798,"nodeType":"OverrideSpecifier","overrides":[],"src":"2192:8:25"},"parameters":{"id":5797,"nodeType":"ParameterList","parameters":[],"src":"2169:2:25"},"returnParameters":{"id":5801,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5800,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5805,"src":"2210:13:25","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5799,"name":"string","nodeType":"ElementaryTypeName","src":"2210:6:25","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2209:15:25"},"scope":6336,"src":"2156:98:25","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[6432],"body":{"id":5814,"nodeType":"Block","src":"2438:31:25","statements":[{"expression":{"id":5812,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5778,"src":"2455:7:25","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":5811,"id":5813,"nodeType":"Return","src":"2448:14:25"}]},"documentation":{"id":5806,"nodeType":"StructuredDocumentation","src":"2260:102:25","text":" @dev Returns the symbol of the token, usually a shorter version of the\n name."},"functionSelector":"95d89b41","id":5815,"implemented":true,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"2376:6:25","nodeType":"FunctionDefinition","overrides":{"id":5808,"nodeType":"OverrideSpecifier","overrides":[],"src":"2405:8:25"},"parameters":{"id":5807,"nodeType":"ParameterList","parameters":[],"src":"2382:2:25"},"returnParameters":{"id":5811,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5810,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5815,"src":"2423:13:25","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5809,"name":"string","nodeType":"ElementaryTypeName","src":"2423:6:25","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2422:15:25"},"scope":6336,"src":"2367:102:25","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[6438],"body":{"id":5824,"nodeType":"Block","src":"3158:26:25","statements":[{"expression":{"hexValue":"3138","id":5822,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3175:2:25","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"functionReturnParameters":5821,"id":5823,"nodeType":"Return","src":"3168:9:25"}]},"documentation":{"id":5816,"nodeType":"StructuredDocumentation","src":"2475:613:25","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","id":5825,"implemented":true,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"3102:8:25","nodeType":"FunctionDefinition","overrides":{"id":5818,"nodeType":"OverrideSpecifier","overrides":[],"src":"3133:8:25"},"parameters":{"id":5817,"nodeType":"ParameterList","parameters":[],"src":"3110:2:25"},"returnParameters":{"id":5821,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5820,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5825,"src":"3151:5:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":5819,"name":"uint8","nodeType":"ElementaryTypeName","src":"3151:5:25","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"3150:7:25"},"scope":6336,"src":"3093:91:25","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[6363],"body":{"id":5834,"nodeType":"Block","src":"3314:36:25","statements":[{"expression":{"id":5832,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5774,"src":"3331:12:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5831,"id":5833,"nodeType":"Return","src":"3324:19:25"}]},"documentation":{"id":5826,"nodeType":"StructuredDocumentation","src":"3190:49:25","text":" @dev See {IERC20-totalSupply}."},"functionSelector":"18160ddd","id":5835,"implemented":true,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"3253:11:25","nodeType":"FunctionDefinition","overrides":{"id":5828,"nodeType":"OverrideSpecifier","overrides":[],"src":"3287:8:25"},"parameters":{"id":5827,"nodeType":"ParameterList","parameters":[],"src":"3264:2:25"},"returnParameters":{"id":5831,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5830,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5835,"src":"3305:7:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5829,"name":"uint256","nodeType":"ElementaryTypeName","src":"3305:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3304:9:25"},"scope":6336,"src":"3244:106:25","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[6371],"body":{"id":5848,"nodeType":"Block","src":"3491:42:25","statements":[{"expression":{"baseExpression":{"id":5844,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5766,"src":"3508:9:25","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":5846,"indexExpression":{"id":5845,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5838,"src":"3518:7:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3508:18:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5843,"id":5847,"nodeType":"Return","src":"3501:25:25"}]},"documentation":{"id":5836,"nodeType":"StructuredDocumentation","src":"3356:47:25","text":" @dev See {IERC20-balanceOf}."},"functionSelector":"70a08231","id":5849,"implemented":true,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"3417:9:25","nodeType":"FunctionDefinition","overrides":{"id":5840,"nodeType":"OverrideSpecifier","overrides":[],"src":"3464:8:25"},"parameters":{"id":5839,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5838,"mutability":"mutable","name":"account","nameLocation":"3435:7:25","nodeType":"VariableDeclaration","scope":5849,"src":"3427:15:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5837,"name":"address","nodeType":"ElementaryTypeName","src":"3427:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3426:17:25"},"returnParameters":{"id":5843,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5842,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5849,"src":"3482:7:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5841,"name":"uint256","nodeType":"ElementaryTypeName","src":"3482:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3481:9:25"},"scope":6336,"src":"3408:125:25","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[6381],"body":{"id":5873,"nodeType":"Block","src":"3814:104:25","statements":[{"assignments":[5861],"declarations":[{"constant":false,"id":5861,"mutability":"mutable","name":"owner","nameLocation":"3832:5:25","nodeType":"VariableDeclaration","scope":5873,"src":"3824:13:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5860,"name":"address","nodeType":"ElementaryTypeName","src":"3824:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":5864,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":5862,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8125,"src":"3840:10:25","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":5863,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3840:12:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3824:28:25"},{"expression":{"arguments":[{"id":5866,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5861,"src":"3872:5:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5867,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5852,"src":"3879:2:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5868,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5854,"src":"3883:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5865,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6097,"src":"3862:9:25","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":5869,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3862:28:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5870,"nodeType":"ExpressionStatement","src":"3862:28:25"},{"expression":{"hexValue":"74727565","id":5871,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3907:4:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":5859,"id":5872,"nodeType":"Return","src":"3900:11:25"}]},"documentation":{"id":5850,"nodeType":"StructuredDocumentation","src":"3539:185:25","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","id":5874,"implemented":true,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"3738:8:25","nodeType":"FunctionDefinition","overrides":{"id":5856,"nodeType":"OverrideSpecifier","overrides":[],"src":"3790:8:25"},"parameters":{"id":5855,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5852,"mutability":"mutable","name":"to","nameLocation":"3755:2:25","nodeType":"VariableDeclaration","scope":5874,"src":"3747:10:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5851,"name":"address","nodeType":"ElementaryTypeName","src":"3747:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5854,"mutability":"mutable","name":"amount","nameLocation":"3767:6:25","nodeType":"VariableDeclaration","scope":5874,"src":"3759:14:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5853,"name":"uint256","nodeType":"ElementaryTypeName","src":"3759:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3746:28:25"},"returnParameters":{"id":5859,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5858,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5874,"src":"3808:4:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5857,"name":"bool","nodeType":"ElementaryTypeName","src":"3808:4:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3807:6:25"},"scope":6336,"src":"3729:189:25","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[6391],"body":{"id":5891,"nodeType":"Block","src":"4074:51:25","statements":[{"expression":{"baseExpression":{"baseExpression":{"id":5885,"name":"_allowances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5772,"src":"4091:11:25","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":5887,"indexExpression":{"id":5886,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5877,"src":"4103:5:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4091:18:25","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":5889,"indexExpression":{"id":5888,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5879,"src":"4110:7:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4091:27:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5884,"id":5890,"nodeType":"Return","src":"4084:34:25"}]},"documentation":{"id":5875,"nodeType":"StructuredDocumentation","src":"3924:47:25","text":" @dev See {IERC20-allowance}."},"functionSelector":"dd62ed3e","id":5892,"implemented":true,"kind":"function","modifiers":[],"name":"allowance","nameLocation":"3985:9:25","nodeType":"FunctionDefinition","overrides":{"id":5881,"nodeType":"OverrideSpecifier","overrides":[],"src":"4047:8:25"},"parameters":{"id":5880,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5877,"mutability":"mutable","name":"owner","nameLocation":"4003:5:25","nodeType":"VariableDeclaration","scope":5892,"src":"3995:13:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5876,"name":"address","nodeType":"ElementaryTypeName","src":"3995:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5879,"mutability":"mutable","name":"spender","nameLocation":"4018:7:25","nodeType":"VariableDeclaration","scope":5892,"src":"4010:15:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5878,"name":"address","nodeType":"ElementaryTypeName","src":"4010:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3994:32:25"},"returnParameters":{"id":5884,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5883,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5892,"src":"4065:7:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5882,"name":"uint256","nodeType":"ElementaryTypeName","src":"4065:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4064:9:25"},"scope":6336,"src":"3976:149:25","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[6401],"body":{"id":5916,"nodeType":"Block","src":"4522:108:25","statements":[{"assignments":[5904],"declarations":[{"constant":false,"id":5904,"mutability":"mutable","name":"owner","nameLocation":"4540:5:25","nodeType":"VariableDeclaration","scope":5916,"src":"4532:13:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5903,"name":"address","nodeType":"ElementaryTypeName","src":"4532:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":5907,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":5905,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8125,"src":"4548:10:25","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":5906,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4548:12:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4532:28:25"},{"expression":{"arguments":[{"id":5909,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5904,"src":"4579:5:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5910,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5895,"src":"4586:7:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5911,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5897,"src":"4595:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5908,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6270,"src":"4570:8:25","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":5912,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4570:32:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5913,"nodeType":"ExpressionStatement","src":"4570:32:25"},{"expression":{"hexValue":"74727565","id":5914,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4619:4:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":5902,"id":5915,"nodeType":"Return","src":"4612:11:25"}]},"documentation":{"id":5893,"nodeType":"StructuredDocumentation","src":"4131:297:25","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","id":5917,"implemented":true,"kind":"function","modifiers":[],"name":"approve","nameLocation":"4442:7:25","nodeType":"FunctionDefinition","overrides":{"id":5899,"nodeType":"OverrideSpecifier","overrides":[],"src":"4498:8:25"},"parameters":{"id":5898,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5895,"mutability":"mutable","name":"spender","nameLocation":"4458:7:25","nodeType":"VariableDeclaration","scope":5917,"src":"4450:15:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5894,"name":"address","nodeType":"ElementaryTypeName","src":"4450:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5897,"mutability":"mutable","name":"amount","nameLocation":"4475:6:25","nodeType":"VariableDeclaration","scope":5917,"src":"4467:14:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5896,"name":"uint256","nodeType":"ElementaryTypeName","src":"4467:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4449:33:25"},"returnParameters":{"id":5902,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5901,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5917,"src":"4516:4:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5900,"name":"bool","nodeType":"ElementaryTypeName","src":"4516:4:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4515:6:25"},"scope":6336,"src":"4433:197:25","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[6413],"body":{"id":5949,"nodeType":"Block","src":"5325:153:25","statements":[{"assignments":[5931],"declarations":[{"constant":false,"id":5931,"mutability":"mutable","name":"spender","nameLocation":"5343:7:25","nodeType":"VariableDeclaration","scope":5949,"src":"5335:15:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5930,"name":"address","nodeType":"ElementaryTypeName","src":"5335:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":5934,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":5932,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8125,"src":"5353:10:25","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":5933,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5353:12:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5335:30:25"},{"expression":{"arguments":[{"id":5936,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5920,"src":"5391:4:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5937,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5931,"src":"5397:7:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5938,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5924,"src":"5406:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5935,"name":"_spendAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6313,"src":"5375:15:25","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":5939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5375:38:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5940,"nodeType":"ExpressionStatement","src":"5375:38:25"},{"expression":{"arguments":[{"id":5942,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5920,"src":"5433:4:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5943,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5922,"src":"5439:2:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5944,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5924,"src":"5443:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5941,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6097,"src":"5423:9:25","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":5945,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5423:27:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5946,"nodeType":"ExpressionStatement","src":"5423:27:25"},{"expression":{"hexValue":"74727565","id":5947,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5467:4:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":5929,"id":5948,"nodeType":"Return","src":"5460:11:25"}]},"documentation":{"id":5918,"nodeType":"StructuredDocumentation","src":"4636:551:25","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","id":5950,"implemented":true,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"5201:12:25","nodeType":"FunctionDefinition","overrides":{"id":5926,"nodeType":"OverrideSpecifier","overrides":[],"src":"5301:8:25"},"parameters":{"id":5925,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5920,"mutability":"mutable","name":"from","nameLocation":"5231:4:25","nodeType":"VariableDeclaration","scope":5950,"src":"5223:12:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5919,"name":"address","nodeType":"ElementaryTypeName","src":"5223:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5922,"mutability":"mutable","name":"to","nameLocation":"5253:2:25","nodeType":"VariableDeclaration","scope":5950,"src":"5245:10:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5921,"name":"address","nodeType":"ElementaryTypeName","src":"5245:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5924,"mutability":"mutable","name":"amount","nameLocation":"5273:6:25","nodeType":"VariableDeclaration","scope":5950,"src":"5265:14:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5923,"name":"uint256","nodeType":"ElementaryTypeName","src":"5265:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5213:72:25"},"returnParameters":{"id":5929,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5928,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5950,"src":"5319:4:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5927,"name":"bool","nodeType":"ElementaryTypeName","src":"5319:4:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5318:6:25"},"scope":6336,"src":"5192:286:25","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":5978,"nodeType":"Block","src":"5967:140:25","statements":[{"assignments":[5961],"declarations":[{"constant":false,"id":5961,"mutability":"mutable","name":"owner","nameLocation":"5985:5:25","nodeType":"VariableDeclaration","scope":5978,"src":"5977:13:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5960,"name":"address","nodeType":"ElementaryTypeName","src":"5977:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":5964,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":5962,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8125,"src":"5993:10:25","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":5963,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5993:12:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5977:28:25"},{"expression":{"arguments":[{"id":5966,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5961,"src":"6024:5:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5967,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5953,"src":"6031:7:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5973,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":5969,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5961,"src":"6050:5:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5970,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5953,"src":"6057:7:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":5968,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5892,"src":"6040:9:25","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":5971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6040:25:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":5972,"name":"addedValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5955,"src":"6068:10:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6040:38:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5965,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6270,"src":"6015:8:25","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":5974,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6015:64:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5975,"nodeType":"ExpressionStatement","src":"6015:64:25"},{"expression":{"hexValue":"74727565","id":5976,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6096:4:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":5959,"id":5977,"nodeType":"Return","src":"6089:11:25"}]},"documentation":{"id":5951,"nodeType":"StructuredDocumentation","src":"5484:384:25","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","id":5979,"implemented":true,"kind":"function","modifiers":[],"name":"increaseAllowance","nameLocation":"5882:17:25","nodeType":"FunctionDefinition","parameters":{"id":5956,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5953,"mutability":"mutable","name":"spender","nameLocation":"5908:7:25","nodeType":"VariableDeclaration","scope":5979,"src":"5900:15:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5952,"name":"address","nodeType":"ElementaryTypeName","src":"5900:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5955,"mutability":"mutable","name":"addedValue","nameLocation":"5925:10:25","nodeType":"VariableDeclaration","scope":5979,"src":"5917:18:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5954,"name":"uint256","nodeType":"ElementaryTypeName","src":"5917:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5899:37:25"},"returnParameters":{"id":5959,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5958,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5979,"src":"5961:4:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5957,"name":"bool","nodeType":"ElementaryTypeName","src":"5961:4:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5960:6:25"},"scope":6336,"src":"5873:234:25","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":6019,"nodeType":"Block","src":"6693:328:25","statements":[{"assignments":[5990],"declarations":[{"constant":false,"id":5990,"mutability":"mutable","name":"owner","nameLocation":"6711:5:25","nodeType":"VariableDeclaration","scope":6019,"src":"6703:13:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5989,"name":"address","nodeType":"ElementaryTypeName","src":"6703:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":5993,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":5991,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8125,"src":"6719:10:25","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":5992,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6719:12:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6703:28:25"},{"assignments":[5995],"declarations":[{"constant":false,"id":5995,"mutability":"mutable","name":"currentAllowance","nameLocation":"6749:16:25","nodeType":"VariableDeclaration","scope":6019,"src":"6741:24:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5994,"name":"uint256","nodeType":"ElementaryTypeName","src":"6741:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6000,"initialValue":{"arguments":[{"id":5997,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5990,"src":"6778:5:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5998,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5982,"src":"6785:7:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":5996,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5892,"src":"6768:9:25","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":5999,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6768:25:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6741:52:25"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6002,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5995,"src":"6811:16:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":6003,"name":"subtractedValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5984,"src":"6831:15:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6811:35:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f","id":6005,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6848:39:25","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":6001,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6803:7:25","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6803:85:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6007,"nodeType":"ExpressionStatement","src":"6803:85:25"},{"id":6016,"nodeType":"UncheckedBlock","src":"6898:95:25","statements":[{"expression":{"arguments":[{"id":6009,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5990,"src":"6931:5:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6010,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5982,"src":"6938:7:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6011,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5995,"src":"6947:16:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":6012,"name":"subtractedValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5984,"src":"6966:15:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6947:34:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6008,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6270,"src":"6922:8:25","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":6014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6922:60:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6015,"nodeType":"ExpressionStatement","src":"6922:60:25"}]},{"expression":{"hexValue":"74727565","id":6017,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7010:4:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":5988,"id":6018,"nodeType":"Return","src":"7003:11:25"}]},"documentation":{"id":5980,"nodeType":"StructuredDocumentation","src":"6113:476:25","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","id":6020,"implemented":true,"kind":"function","modifiers":[],"name":"decreaseAllowance","nameLocation":"6603:17:25","nodeType":"FunctionDefinition","parameters":{"id":5985,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5982,"mutability":"mutable","name":"spender","nameLocation":"6629:7:25","nodeType":"VariableDeclaration","scope":6020,"src":"6621:15:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5981,"name":"address","nodeType":"ElementaryTypeName","src":"6621:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5984,"mutability":"mutable","name":"subtractedValue","nameLocation":"6646:15:25","nodeType":"VariableDeclaration","scope":6020,"src":"6638:23:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5983,"name":"uint256","nodeType":"ElementaryTypeName","src":"6638:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6620:42:25"},"returnParameters":{"id":5988,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5987,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6020,"src":"6687:4:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5986,"name":"bool","nodeType":"ElementaryTypeName","src":"6687:4:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6686:6:25"},"scope":6336,"src":"6594:427:25","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":6096,"nodeType":"Block","src":"7592:543:25","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6036,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6031,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6023,"src":"7610:4:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":6034,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7626:1:25","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":6033,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7618:7:25","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6032,"name":"address","nodeType":"ElementaryTypeName","src":"7618:7:25","typeDescriptions":{}}},"id":6035,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7618:10:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7610:18:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a207472616e736665722066726f6d20746865207a65726f2061646472657373","id":6037,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7630:39:25","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":6030,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7602:7:25","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6038,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7602:68:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6039,"nodeType":"ExpressionStatement","src":"7602:68:25"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6046,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6041,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6025,"src":"7688:2:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":6044,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7702:1:25","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":6043,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7694:7:25","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6042,"name":"address","nodeType":"ElementaryTypeName","src":"7694:7:25","typeDescriptions":{}}},"id":6045,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7694:10:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7688:16:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a207472616e7366657220746f20746865207a65726f2061646472657373","id":6047,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7706:37:25","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":6040,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7680:7:25","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6048,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7680:64:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6049,"nodeType":"ExpressionStatement","src":"7680:64:25"},{"expression":{"arguments":[{"id":6051,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6023,"src":"7776:4:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6052,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6025,"src":"7782:2:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6053,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6027,"src":"7786:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6050,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6324,"src":"7755:20:25","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":6054,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7755:38:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6055,"nodeType":"ExpressionStatement","src":"7755:38:25"},{"assignments":[6057],"declarations":[{"constant":false,"id":6057,"mutability":"mutable","name":"fromBalance","nameLocation":"7812:11:25","nodeType":"VariableDeclaration","scope":6096,"src":"7804:19:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6056,"name":"uint256","nodeType":"ElementaryTypeName","src":"7804:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6061,"initialValue":{"baseExpression":{"id":6058,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5766,"src":"7826:9:25","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":6060,"indexExpression":{"id":6059,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6023,"src":"7836:4:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7826:15:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7804:37:25"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6065,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6063,"name":"fromBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6057,"src":"7859:11:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":6064,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6027,"src":"7874:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7859:21:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365","id":6066,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7882:40:25","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":6062,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7851:7:25","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6067,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7851:72:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6068,"nodeType":"ExpressionStatement","src":"7851:72:25"},{"id":6077,"nodeType":"UncheckedBlock","src":"7933:73:25","statements":[{"expression":{"id":6075,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":6069,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5766,"src":"7957:9:25","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":6071,"indexExpression":{"id":6070,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6023,"src":"7967:4:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7957:15:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6072,"name":"fromBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6057,"src":"7975:11:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":6073,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6027,"src":"7989:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7975:20:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7957:38:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6076,"nodeType":"ExpressionStatement","src":"7957:38:25"}]},{"expression":{"id":6082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":6078,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5766,"src":"8015:9:25","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":6080,"indexExpression":{"id":6079,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6025,"src":"8025:2:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8015:13:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":6081,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6027,"src":"8032:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8015:23:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6083,"nodeType":"ExpressionStatement","src":"8015:23:25"},{"eventCall":{"arguments":[{"id":6085,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6023,"src":"8063:4:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6086,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6025,"src":"8069:2:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6087,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6027,"src":"8073:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6084,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6348,"src":"8054:8:25","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":6088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8054:26:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6089,"nodeType":"EmitStatement","src":"8049:31:25"},{"expression":{"arguments":[{"id":6091,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6023,"src":"8111:4:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6092,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6025,"src":"8117:2:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6093,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6027,"src":"8121:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6090,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6335,"src":"8091:19:25","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":6094,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8091:37:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6095,"nodeType":"ExpressionStatement","src":"8091:37:25"}]},"documentation":{"id":6021,"nodeType":"StructuredDocumentation","src":"7027:452:25","text":" @dev Moves `amount` of tokens from `sender` to `recipient`.\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`."},"id":6097,"implemented":true,"kind":"function","modifiers":[],"name":"_transfer","nameLocation":"7493:9:25","nodeType":"FunctionDefinition","parameters":{"id":6028,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6023,"mutability":"mutable","name":"from","nameLocation":"7520:4:25","nodeType":"VariableDeclaration","scope":6097,"src":"7512:12:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6022,"name":"address","nodeType":"ElementaryTypeName","src":"7512:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6025,"mutability":"mutable","name":"to","nameLocation":"7542:2:25","nodeType":"VariableDeclaration","scope":6097,"src":"7534:10:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6024,"name":"address","nodeType":"ElementaryTypeName","src":"7534:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6027,"mutability":"mutable","name":"amount","nameLocation":"7562:6:25","nodeType":"VariableDeclaration","scope":6097,"src":"7554:14:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6026,"name":"uint256","nodeType":"ElementaryTypeName","src":"7554:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7502:72:25"},"returnParameters":{"id":6029,"nodeType":"ParameterList","parameters":[],"src":"7592:0:25"},"scope":6336,"src":"7484:651:25","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":6152,"nodeType":"Block","src":"8476:324:25","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6106,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6100,"src":"8494:7:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":6109,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8513:1:25","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":6108,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8505:7:25","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6107,"name":"address","nodeType":"ElementaryTypeName","src":"8505:7:25","typeDescriptions":{}}},"id":6110,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8505:10:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8494:21:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a206d696e7420746f20746865207a65726f2061646472657373","id":6112,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8517:33:25","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":6105,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8486:7:25","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6113,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8486:65:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6114,"nodeType":"ExpressionStatement","src":"8486:65:25"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":6118,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8591:1:25","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":6117,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8583:7:25","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6116,"name":"address","nodeType":"ElementaryTypeName","src":"8583:7:25","typeDescriptions":{}}},"id":6119,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8583:10:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6120,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6100,"src":"8595:7:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6121,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6102,"src":"8604:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6115,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6324,"src":"8562:20:25","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":6122,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8562:49:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6123,"nodeType":"ExpressionStatement","src":"8562:49:25"},{"expression":{"id":6126,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6124,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5774,"src":"8622:12:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":6125,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6102,"src":"8638:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8622:22:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6127,"nodeType":"ExpressionStatement","src":"8622:22:25"},{"expression":{"id":6132,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":6128,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5766,"src":"8654:9:25","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":6130,"indexExpression":{"id":6129,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6100,"src":"8664:7:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8654:18:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":6131,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6102,"src":"8676:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8654:28:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6133,"nodeType":"ExpressionStatement","src":"8654:28:25"},{"eventCall":{"arguments":[{"arguments":[{"hexValue":"30","id":6137,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8714:1:25","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":6136,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8706:7:25","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6135,"name":"address","nodeType":"ElementaryTypeName","src":"8706:7:25","typeDescriptions":{}}},"id":6138,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8706:10:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6139,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6100,"src":"8718:7:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6140,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6102,"src":"8727:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6134,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6348,"src":"8697:8:25","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":6141,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8697:37:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6142,"nodeType":"EmitStatement","src":"8692:42:25"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":6146,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8773:1:25","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":6145,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8765:7:25","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6144,"name":"address","nodeType":"ElementaryTypeName","src":"8765:7:25","typeDescriptions":{}}},"id":6147,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8765:10:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6148,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6100,"src":"8777:7:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6149,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6102,"src":"8786:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6143,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6335,"src":"8745:19:25","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":6150,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8745:48:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6151,"nodeType":"ExpressionStatement","src":"8745:48:25"}]},"documentation":{"id":6098,"nodeType":"StructuredDocumentation","src":"8141:265:25","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."},"id":6153,"implemented":true,"kind":"function","modifiers":[],"name":"_mint","nameLocation":"8420:5:25","nodeType":"FunctionDefinition","parameters":{"id":6103,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6100,"mutability":"mutable","name":"account","nameLocation":"8434:7:25","nodeType":"VariableDeclaration","scope":6153,"src":"8426:15:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6099,"name":"address","nodeType":"ElementaryTypeName","src":"8426:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6102,"mutability":"mutable","name":"amount","nameLocation":"8451:6:25","nodeType":"VariableDeclaration","scope":6153,"src":"8443:14:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6101,"name":"uint256","nodeType":"ElementaryTypeName","src":"8443:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8425:33:25"},"returnParameters":{"id":6104,"nodeType":"ParameterList","parameters":[],"src":"8476:0:25"},"scope":6336,"src":"8411:389:25","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":6224,"nodeType":"Block","src":"9185:511:25","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6162,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6156,"src":"9203:7:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":6165,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9222:1:25","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":6164,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9214:7:25","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6163,"name":"address","nodeType":"ElementaryTypeName","src":"9214:7:25","typeDescriptions":{}}},"id":6166,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9214:10:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9203:21:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a206275726e2066726f6d20746865207a65726f2061646472657373","id":6168,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9226:35:25","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":6161,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9195:7:25","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6169,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9195:67:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6170,"nodeType":"ExpressionStatement","src":"9195:67:25"},{"expression":{"arguments":[{"id":6172,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6156,"src":"9294:7:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":6175,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9311:1:25","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":6174,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9303:7:25","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6173,"name":"address","nodeType":"ElementaryTypeName","src":"9303:7:25","typeDescriptions":{}}},"id":6176,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9303:10:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6177,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6158,"src":"9315:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6171,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6324,"src":"9273:20:25","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":6178,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9273:49:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6179,"nodeType":"ExpressionStatement","src":"9273:49:25"},{"assignments":[6181],"declarations":[{"constant":false,"id":6181,"mutability":"mutable","name":"accountBalance","nameLocation":"9341:14:25","nodeType":"VariableDeclaration","scope":6224,"src":"9333:22:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6180,"name":"uint256","nodeType":"ElementaryTypeName","src":"9333:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6185,"initialValue":{"baseExpression":{"id":6182,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5766,"src":"9358:9:25","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":6184,"indexExpression":{"id":6183,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6156,"src":"9368:7:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9358:18:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9333:43:25"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6189,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6187,"name":"accountBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6181,"src":"9394:14:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":6188,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6158,"src":"9412:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9394:24:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a206275726e20616d6f756e7420657863656564732062616c616e6365","id":6190,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9420:36:25","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":6186,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9386:7:25","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9386:71:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6192,"nodeType":"ExpressionStatement","src":"9386:71:25"},{"id":6201,"nodeType":"UncheckedBlock","src":"9467:79:25","statements":[{"expression":{"id":6199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":6193,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5766,"src":"9491:9:25","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":6195,"indexExpression":{"id":6194,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6156,"src":"9501:7:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9491:18:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6196,"name":"accountBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6181,"src":"9512:14:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":6197,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6158,"src":"9529:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9512:23:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9491:44:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6200,"nodeType":"ExpressionStatement","src":"9491:44:25"}]},{"expression":{"id":6204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6202,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5774,"src":"9555:12:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":6203,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6158,"src":"9571:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9555:22:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6205,"nodeType":"ExpressionStatement","src":"9555:22:25"},{"eventCall":{"arguments":[{"id":6207,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6156,"src":"9602:7:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":6210,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9619:1:25","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":6209,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9611:7:25","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6208,"name":"address","nodeType":"ElementaryTypeName","src":"9611:7:25","typeDescriptions":{}}},"id":6211,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9611:10:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6212,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6158,"src":"9623:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6206,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6348,"src":"9593:8:25","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":6213,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9593:37:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6214,"nodeType":"EmitStatement","src":"9588:42:25"},{"expression":{"arguments":[{"id":6216,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6156,"src":"9661:7:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":6219,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9678:1:25","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":6218,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9670:7:25","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6217,"name":"address","nodeType":"ElementaryTypeName","src":"9670:7:25","typeDescriptions":{}}},"id":6220,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9670:10:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6221,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6158,"src":"9682:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6215,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6335,"src":"9641:19:25","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":6222,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9641:48:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6223,"nodeType":"ExpressionStatement","src":"9641:48:25"}]},"documentation":{"id":6154,"nodeType":"StructuredDocumentation","src":"8806:309:25","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."},"id":6225,"implemented":true,"kind":"function","modifiers":[],"name":"_burn","nameLocation":"9129:5:25","nodeType":"FunctionDefinition","parameters":{"id":6159,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6156,"mutability":"mutable","name":"account","nameLocation":"9143:7:25","nodeType":"VariableDeclaration","scope":6225,"src":"9135:15:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6155,"name":"address","nodeType":"ElementaryTypeName","src":"9135:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6158,"mutability":"mutable","name":"amount","nameLocation":"9160:6:25","nodeType":"VariableDeclaration","scope":6225,"src":"9152:14:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6157,"name":"uint256","nodeType":"ElementaryTypeName","src":"9152:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9134:33:25"},"returnParameters":{"id":6160,"nodeType":"ParameterList","parameters":[],"src":"9185:0:25"},"scope":6336,"src":"9120:576:25","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":6269,"nodeType":"Block","src":"10232:257:25","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6236,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6228,"src":"10250:5:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":6239,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10267:1:25","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":6238,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10259:7:25","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6237,"name":"address","nodeType":"ElementaryTypeName","src":"10259:7:25","typeDescriptions":{}}},"id":6240,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10259:10:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10250:19:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373","id":6242,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10271:38:25","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":6235,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"10242:7:25","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6243,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10242:68:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6244,"nodeType":"ExpressionStatement","src":"10242:68:25"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6251,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6246,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6230,"src":"10328:7:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":6249,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10347:1:25","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":6248,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10339:7:25","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6247,"name":"address","nodeType":"ElementaryTypeName","src":"10339:7:25","typeDescriptions":{}}},"id":6250,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10339:10:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10328:21:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a20617070726f766520746f20746865207a65726f2061646472657373","id":6252,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10351:36:25","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":6245,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"10320:7:25","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6253,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10320:68:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6254,"nodeType":"ExpressionStatement","src":"10320:68:25"},{"expression":{"id":6261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":6255,"name":"_allowances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5772,"src":"10399:11:25","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":6258,"indexExpression":{"id":6256,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6228,"src":"10411:5:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10399:18:25","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":6259,"indexExpression":{"id":6257,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6230,"src":"10418:7:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10399:27:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":6260,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6232,"src":"10429:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10399:36:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6262,"nodeType":"ExpressionStatement","src":"10399:36:25"},{"eventCall":{"arguments":[{"id":6264,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6228,"src":"10459:5:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6265,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6230,"src":"10466:7:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6266,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6232,"src":"10475:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6263,"name":"Approval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6357,"src":"10450:8:25","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":6267,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10450:32:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6268,"nodeType":"EmitStatement","src":"10445:37:25"}]},"documentation":{"id":6226,"nodeType":"StructuredDocumentation","src":"9702:412:25","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."},"id":6270,"implemented":true,"kind":"function","modifiers":[],"name":"_approve","nameLocation":"10128:8:25","nodeType":"FunctionDefinition","parameters":{"id":6233,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6228,"mutability":"mutable","name":"owner","nameLocation":"10154:5:25","nodeType":"VariableDeclaration","scope":6270,"src":"10146:13:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6227,"name":"address","nodeType":"ElementaryTypeName","src":"10146:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6230,"mutability":"mutable","name":"spender","nameLocation":"10177:7:25","nodeType":"VariableDeclaration","scope":6270,"src":"10169:15:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6229,"name":"address","nodeType":"ElementaryTypeName","src":"10169:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6232,"mutability":"mutable","name":"amount","nameLocation":"10202:6:25","nodeType":"VariableDeclaration","scope":6270,"src":"10194:14:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6231,"name":"uint256","nodeType":"ElementaryTypeName","src":"10194:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10136:78:25"},"returnParameters":{"id":6234,"nodeType":"ParameterList","parameters":[],"src":"10232:0:25"},"scope":6336,"src":"10119:370:25","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":6312,"nodeType":"Block","src":"10890:321:25","statements":[{"assignments":[6281],"declarations":[{"constant":false,"id":6281,"mutability":"mutable","name":"currentAllowance","nameLocation":"10908:16:25","nodeType":"VariableDeclaration","scope":6312,"src":"10900:24:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6280,"name":"uint256","nodeType":"ElementaryTypeName","src":"10900:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6286,"initialValue":{"arguments":[{"id":6283,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6273,"src":"10937:5:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6284,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6275,"src":"10944:7:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":6282,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5892,"src":"10927:9:25","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":6285,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10927:25:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10900:52:25"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6287,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6281,"src":"10966:16:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"arguments":[{"id":6290,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10991:7:25","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":6289,"name":"uint256","nodeType":"ElementaryTypeName","src":"10991:7:25","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":6288,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"10986:4:25","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":6291,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10986:13:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":6292,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11000:3:25","memberName":"max","nodeType":"MemberAccess","src":"10986:17:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10966:37:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6311,"nodeType":"IfStatement","src":"10962:243:25","trueBody":{"id":6310,"nodeType":"Block","src":"11005:200:25","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6295,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6281,"src":"11027:16:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":6296,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6277,"src":"11047:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11027:26:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a20696e73756666696369656e7420616c6c6f77616e6365","id":6298,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11055:31:25","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":6294,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"11019:7:25","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6299,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11019:68:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6300,"nodeType":"ExpressionStatement","src":"11019:68:25"},{"id":6309,"nodeType":"UncheckedBlock","src":"11101:94:25","statements":[{"expression":{"arguments":[{"id":6302,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6273,"src":"11138:5:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6303,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6275,"src":"11145:7:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6306,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6304,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6281,"src":"11154:16:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":6305,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6277,"src":"11173:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11154:25:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6301,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6270,"src":"11129:8:25","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":6307,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11129:51:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6308,"nodeType":"ExpressionStatement","src":"11129:51:25"}]}]}}]},"documentation":{"id":6271,"nodeType":"StructuredDocumentation","src":"10495:270:25","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."},"id":6313,"implemented":true,"kind":"function","modifiers":[],"name":"_spendAllowance","nameLocation":"10779:15:25","nodeType":"FunctionDefinition","parameters":{"id":6278,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6273,"mutability":"mutable","name":"owner","nameLocation":"10812:5:25","nodeType":"VariableDeclaration","scope":6313,"src":"10804:13:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6272,"name":"address","nodeType":"ElementaryTypeName","src":"10804:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6275,"mutability":"mutable","name":"spender","nameLocation":"10835:7:25","nodeType":"VariableDeclaration","scope":6313,"src":"10827:15:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6274,"name":"address","nodeType":"ElementaryTypeName","src":"10827:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6277,"mutability":"mutable","name":"amount","nameLocation":"10860:6:25","nodeType":"VariableDeclaration","scope":6313,"src":"10852:14:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6276,"name":"uint256","nodeType":"ElementaryTypeName","src":"10852:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10794:78:25"},"returnParameters":{"id":6279,"nodeType":"ParameterList","parameters":[],"src":"10890:0:25"},"scope":6336,"src":"10770:441:25","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":6323,"nodeType":"Block","src":"11914:2:25","statements":[]},"documentation":{"id":6314,"nodeType":"StructuredDocumentation","src":"11217:573:25","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]."},"id":6324,"implemented":true,"kind":"function","modifiers":[],"name":"_beforeTokenTransfer","nameLocation":"11804:20:25","nodeType":"FunctionDefinition","parameters":{"id":6321,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6316,"mutability":"mutable","name":"from","nameLocation":"11842:4:25","nodeType":"VariableDeclaration","scope":6324,"src":"11834:12:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6315,"name":"address","nodeType":"ElementaryTypeName","src":"11834:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6318,"mutability":"mutable","name":"to","nameLocation":"11864:2:25","nodeType":"VariableDeclaration","scope":6324,"src":"11856:10:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6317,"name":"address","nodeType":"ElementaryTypeName","src":"11856:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6320,"mutability":"mutable","name":"amount","nameLocation":"11884:6:25","nodeType":"VariableDeclaration","scope":6324,"src":"11876:14:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6319,"name":"uint256","nodeType":"ElementaryTypeName","src":"11876:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11824:72:25"},"returnParameters":{"id":6322,"nodeType":"ParameterList","parameters":[],"src":"11914:0:25"},"scope":6336,"src":"11795:121:25","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":6334,"nodeType":"Block","src":"12622:2:25","statements":[]},"documentation":{"id":6325,"nodeType":"StructuredDocumentation","src":"11922:577:25","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]."},"id":6335,"implemented":true,"kind":"function","modifiers":[],"name":"_afterTokenTransfer","nameLocation":"12513:19:25","nodeType":"FunctionDefinition","parameters":{"id":6332,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6327,"mutability":"mutable","name":"from","nameLocation":"12550:4:25","nodeType":"VariableDeclaration","scope":6335,"src":"12542:12:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6326,"name":"address","nodeType":"ElementaryTypeName","src":"12542:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6329,"mutability":"mutable","name":"to","nameLocation":"12572:2:25","nodeType":"VariableDeclaration","scope":6335,"src":"12564:10:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6328,"name":"address","nodeType":"ElementaryTypeName","src":"12564:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6331,"mutability":"mutable","name":"amount","nameLocation":"12592:6:25","nodeType":"VariableDeclaration","scope":6335,"src":"12584:14:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6330,"name":"uint256","nodeType":"ElementaryTypeName","src":"12584:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12532:72:25"},"returnParameters":{"id":6333,"nodeType":"ParameterList","parameters":[],"src":"12622:0:25"},"scope":6336,"src":"12504:120:25","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":6337,"src":"1403:11223:25","usedErrors":[]}],"src":"105:12522:25"}},"@openzeppelin/contracts/token/ERC20/IERC20.sol":{"id":26,"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","exportedSymbols":{"IERC20":[6414]},"id":6415,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":6338,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"106:23:26"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC20","contractDependencies":[],"contractKind":"interface","documentation":{"id":6339,"nodeType":"StructuredDocumentation","src":"131:70:26","text":" @dev Interface of the ERC20 standard as defined in the EIP."},"fullyImplemented":false,"id":6414,"linearizedBaseContracts":[6414],"name":"IERC20","nameLocation":"212:6:26","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":6340,"nodeType":"StructuredDocumentation","src":"225:158:26","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","id":6348,"name":"Transfer","nameLocation":"394:8:26","nodeType":"EventDefinition","parameters":{"id":6347,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6342,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"419:4:26","nodeType":"VariableDeclaration","scope":6348,"src":"403:20:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6341,"name":"address","nodeType":"ElementaryTypeName","src":"403:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6344,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"441:2:26","nodeType":"VariableDeclaration","scope":6348,"src":"425:18:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6343,"name":"address","nodeType":"ElementaryTypeName","src":"425:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6346,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"453:5:26","nodeType":"VariableDeclaration","scope":6348,"src":"445:13:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6345,"name":"uint256","nodeType":"ElementaryTypeName","src":"445:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"402:57:26"},"src":"388:72:26"},{"anonymous":false,"documentation":{"id":6349,"nodeType":"StructuredDocumentation","src":"466:148:26","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","id":6357,"name":"Approval","nameLocation":"625:8:26","nodeType":"EventDefinition","parameters":{"id":6356,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6351,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"650:5:26","nodeType":"VariableDeclaration","scope":6357,"src":"634:21:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6350,"name":"address","nodeType":"ElementaryTypeName","src":"634:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6353,"indexed":true,"mutability":"mutable","name":"spender","nameLocation":"673:7:26","nodeType":"VariableDeclaration","scope":6357,"src":"657:23:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6352,"name":"address","nodeType":"ElementaryTypeName","src":"657:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6355,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"690:5:26","nodeType":"VariableDeclaration","scope":6357,"src":"682:13:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6354,"name":"uint256","nodeType":"ElementaryTypeName","src":"682:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"633:63:26"},"src":"619:78:26"},{"documentation":{"id":6358,"nodeType":"StructuredDocumentation","src":"703:66:26","text":" @dev Returns the amount of tokens in existence."},"functionSelector":"18160ddd","id":6363,"implemented":false,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"783:11:26","nodeType":"FunctionDefinition","parameters":{"id":6359,"nodeType":"ParameterList","parameters":[],"src":"794:2:26"},"returnParameters":{"id":6362,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6361,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6363,"src":"820:7:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6360,"name":"uint256","nodeType":"ElementaryTypeName","src":"820:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"819:9:26"},"scope":6414,"src":"774:55:26","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":6364,"nodeType":"StructuredDocumentation","src":"835:72:26","text":" @dev Returns the amount of tokens owned by `account`."},"functionSelector":"70a08231","id":6371,"implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"921:9:26","nodeType":"FunctionDefinition","parameters":{"id":6367,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6366,"mutability":"mutable","name":"account","nameLocation":"939:7:26","nodeType":"VariableDeclaration","scope":6371,"src":"931:15:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6365,"name":"address","nodeType":"ElementaryTypeName","src":"931:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"930:17:26"},"returnParameters":{"id":6370,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6369,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6371,"src":"971:7:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6368,"name":"uint256","nodeType":"ElementaryTypeName","src":"971:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"970:9:26"},"scope":6414,"src":"912:68:26","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":6372,"nodeType":"StructuredDocumentation","src":"986:202:26","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","id":6381,"implemented":false,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"1202:8:26","nodeType":"FunctionDefinition","parameters":{"id":6377,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6374,"mutability":"mutable","name":"to","nameLocation":"1219:2:26","nodeType":"VariableDeclaration","scope":6381,"src":"1211:10:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6373,"name":"address","nodeType":"ElementaryTypeName","src":"1211:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6376,"mutability":"mutable","name":"amount","nameLocation":"1231:6:26","nodeType":"VariableDeclaration","scope":6381,"src":"1223:14:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6375,"name":"uint256","nodeType":"ElementaryTypeName","src":"1223:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1210:28:26"},"returnParameters":{"id":6380,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6379,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6381,"src":"1257:4:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6378,"name":"bool","nodeType":"ElementaryTypeName","src":"1257:4:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1256:6:26"},"scope":6414,"src":"1193:70:26","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":6382,"nodeType":"StructuredDocumentation","src":"1269:264:26","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","id":6391,"implemented":false,"kind":"function","modifiers":[],"name":"allowance","nameLocation":"1547:9:26","nodeType":"FunctionDefinition","parameters":{"id":6387,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6384,"mutability":"mutable","name":"owner","nameLocation":"1565:5:26","nodeType":"VariableDeclaration","scope":6391,"src":"1557:13:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6383,"name":"address","nodeType":"ElementaryTypeName","src":"1557:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6386,"mutability":"mutable","name":"spender","nameLocation":"1580:7:26","nodeType":"VariableDeclaration","scope":6391,"src":"1572:15:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6385,"name":"address","nodeType":"ElementaryTypeName","src":"1572:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1556:32:26"},"returnParameters":{"id":6390,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6389,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6391,"src":"1612:7:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6388,"name":"uint256","nodeType":"ElementaryTypeName","src":"1612:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1611:9:26"},"scope":6414,"src":"1538:83:26","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":6392,"nodeType":"StructuredDocumentation","src":"1627:642:26","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","id":6401,"implemented":false,"kind":"function","modifiers":[],"name":"approve","nameLocation":"2283:7:26","nodeType":"FunctionDefinition","parameters":{"id":6397,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6394,"mutability":"mutable","name":"spender","nameLocation":"2299:7:26","nodeType":"VariableDeclaration","scope":6401,"src":"2291:15:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6393,"name":"address","nodeType":"ElementaryTypeName","src":"2291:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6396,"mutability":"mutable","name":"amount","nameLocation":"2316:6:26","nodeType":"VariableDeclaration","scope":6401,"src":"2308:14:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6395,"name":"uint256","nodeType":"ElementaryTypeName","src":"2308:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2290:33:26"},"returnParameters":{"id":6400,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6399,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6401,"src":"2342:4:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6398,"name":"bool","nodeType":"ElementaryTypeName","src":"2342:4:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2341:6:26"},"scope":6414,"src":"2274:74:26","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":6402,"nodeType":"StructuredDocumentation","src":"2354:287:26","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","id":6413,"implemented":false,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"2655:12:26","nodeType":"FunctionDefinition","parameters":{"id":6409,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6404,"mutability":"mutable","name":"from","nameLocation":"2685:4:26","nodeType":"VariableDeclaration","scope":6413,"src":"2677:12:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6403,"name":"address","nodeType":"ElementaryTypeName","src":"2677:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6406,"mutability":"mutable","name":"to","nameLocation":"2707:2:26","nodeType":"VariableDeclaration","scope":6413,"src":"2699:10:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6405,"name":"address","nodeType":"ElementaryTypeName","src":"2699:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6408,"mutability":"mutable","name":"amount","nameLocation":"2727:6:26","nodeType":"VariableDeclaration","scope":6413,"src":"2719:14:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6407,"name":"uint256","nodeType":"ElementaryTypeName","src":"2719:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2667:72:26"},"returnParameters":{"id":6412,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6411,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6413,"src":"2758:4:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6410,"name":"bool","nodeType":"ElementaryTypeName","src":"2758:4:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2757:6:26"},"scope":6414,"src":"2646:118:26","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":6415,"src":"202:2564:26","usedErrors":[]}],"src":"106:2661:26"}},"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"id":27,"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol","exportedSymbols":{"IERC20":[6414],"IERC20Metadata":[6439]},"id":6440,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":6416,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"110:23:27"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"../IERC20.sol","id":6417,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6440,"sourceUnit":6415,"src":"135:23:27","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":6419,"name":"IERC20","nameLocations":["305:6:27"],"nodeType":"IdentifierPath","referencedDeclaration":6414,"src":"305:6:27"},"id":6420,"nodeType":"InheritanceSpecifier","src":"305:6:27"}],"canonicalName":"IERC20Metadata","contractDependencies":[],"contractKind":"interface","documentation":{"id":6418,"nodeType":"StructuredDocumentation","src":"160:116:27","text":" @dev Interface for the optional metadata functions from the ERC20 standard.\n _Available since v4.1._"},"fullyImplemented":false,"id":6439,"linearizedBaseContracts":[6439,6414],"name":"IERC20Metadata","nameLocation":"287:14:27","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":6421,"nodeType":"StructuredDocumentation","src":"318:54:27","text":" @dev Returns the name of the token."},"functionSelector":"06fdde03","id":6426,"implemented":false,"kind":"function","modifiers":[],"name":"name","nameLocation":"386:4:27","nodeType":"FunctionDefinition","parameters":{"id":6422,"nodeType":"ParameterList","parameters":[],"src":"390:2:27"},"returnParameters":{"id":6425,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6424,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6426,"src":"416:13:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6423,"name":"string","nodeType":"ElementaryTypeName","src":"416:6:27","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"415:15:27"},"scope":6439,"src":"377:54:27","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":6427,"nodeType":"StructuredDocumentation","src":"437:56:27","text":" @dev Returns the symbol of the token."},"functionSelector":"95d89b41","id":6432,"implemented":false,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"507:6:27","nodeType":"FunctionDefinition","parameters":{"id":6428,"nodeType":"ParameterList","parameters":[],"src":"513:2:27"},"returnParameters":{"id":6431,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6430,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6432,"src":"539:13:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6429,"name":"string","nodeType":"ElementaryTypeName","src":"539:6:27","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"538:15:27"},"scope":6439,"src":"498:56:27","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":6433,"nodeType":"StructuredDocumentation","src":"560:65:27","text":" @dev Returns the decimals places of the token."},"functionSelector":"313ce567","id":6438,"implemented":false,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"639:8:27","nodeType":"FunctionDefinition","parameters":{"id":6434,"nodeType":"ParameterList","parameters":[],"src":"647:2:27"},"returnParameters":{"id":6437,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6436,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6438,"src":"673:5:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":6435,"name":"uint8","nodeType":"ElementaryTypeName","src":"673:5:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"672:7:27"},"scope":6439,"src":"630:50:27","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":6440,"src":"277:405:27","usedErrors":[]}],"src":"110:573:27"}},"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"id":28,"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol","exportedSymbols":{"Address":[8113],"IERC20":[6414],"SafeERC20":[6663]},"id":6664,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":6441,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"100:23:28"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"../IERC20.sol","id":6442,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6664,"sourceUnit":6415,"src":"125:23:28","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Address.sol","file":"../../../utils/Address.sol","id":6443,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6664,"sourceUnit":8114,"src":"149:36:28","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"SafeERC20","contractDependencies":[],"contractKind":"library","documentation":{"id":6444,"nodeType":"StructuredDocumentation","src":"187:457:28","text":" @title SafeERC20\n @dev Wrappers around ERC20 operations that throw on failure (when the token\n contract returns false). Tokens that return no value (and instead revert or\n throw on failure) are also supported, non-reverting calls are assumed to be\n successful.\n To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,\n which allows you to call the safe operations as `token.safeTransfer(...)`, etc."},"fullyImplemented":true,"id":6663,"linearizedBaseContracts":[6663],"name":"SafeERC20","nameLocation":"653:9:28","nodeType":"ContractDefinition","nodes":[{"global":false,"id":6447,"libraryName":{"id":6445,"name":"Address","nameLocations":["675:7:28"],"nodeType":"IdentifierPath","referencedDeclaration":8113,"src":"675:7:28"},"nodeType":"UsingForDirective","src":"669:26:28","typeName":{"id":6446,"name":"address","nodeType":"ElementaryTypeName","src":"687:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"body":{"id":6469,"nodeType":"Block","src":"803:103:28","statements":[{"expression":{"arguments":[{"id":6458,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6450,"src":"833:5:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6414","typeString":"contract IERC20"}},{"arguments":[{"expression":{"expression":{"id":6461,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6450,"src":"863:5:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6414","typeString":"contract IERC20"}},"id":6462,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"869:8:28","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":6381,"src":"863:14:28","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":6463,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"878:8:28","memberName":"selector","nodeType":"MemberAccess","src":"863:23:28","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":6464,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6452,"src":"888:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6465,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6454,"src":"892:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6459,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"840:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6460,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"844:18:28","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"840:22:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":6466,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"840:58:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$6414","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6457,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6662,"src":"813:19:28","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$6414_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":6467,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"813:86:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6468,"nodeType":"ExpressionStatement","src":"813:86:28"}]},"id":6470,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransfer","nameLocation":"710:12:28","nodeType":"FunctionDefinition","parameters":{"id":6455,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6450,"mutability":"mutable","name":"token","nameLocation":"739:5:28","nodeType":"VariableDeclaration","scope":6470,"src":"732:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6414","typeString":"contract IERC20"},"typeName":{"id":6449,"nodeType":"UserDefinedTypeName","pathNode":{"id":6448,"name":"IERC20","nameLocations":["732:6:28"],"nodeType":"IdentifierPath","referencedDeclaration":6414,"src":"732:6:28"},"referencedDeclaration":6414,"src":"732:6:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6414","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":6452,"mutability":"mutable","name":"to","nameLocation":"762:2:28","nodeType":"VariableDeclaration","scope":6470,"src":"754:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6451,"name":"address","nodeType":"ElementaryTypeName","src":"754:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6454,"mutability":"mutable","name":"value","nameLocation":"782:5:28","nodeType":"VariableDeclaration","scope":6470,"src":"774:13:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6453,"name":"uint256","nodeType":"ElementaryTypeName","src":"774:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"722:71:28"},"returnParameters":{"id":6456,"nodeType":"ParameterList","parameters":[],"src":"803:0:28"},"scope":6663,"src":"701:205:28","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":6495,"nodeType":"Block","src":"1040:113:28","statements":[{"expression":{"arguments":[{"id":6483,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6473,"src":"1070:5:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6414","typeString":"contract IERC20"}},{"arguments":[{"expression":{"expression":{"id":6486,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6473,"src":"1100:5:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6414","typeString":"contract IERC20"}},"id":6487,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1106:12:28","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":6413,"src":"1100:18:28","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":6488,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1119:8:28","memberName":"selector","nodeType":"MemberAccess","src":"1100:27:28","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":6489,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6475,"src":"1129:4:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6490,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6477,"src":"1135:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6491,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6479,"src":"1139:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6484,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1077:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6485,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1081:18:28","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"1077:22:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":6492,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1077:68:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$6414","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6482,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6662,"src":"1050:19:28","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$6414_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":6493,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1050:96:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6494,"nodeType":"ExpressionStatement","src":"1050:96:28"}]},"id":6496,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"921:16:28","nodeType":"FunctionDefinition","parameters":{"id":6480,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6473,"mutability":"mutable","name":"token","nameLocation":"954:5:28","nodeType":"VariableDeclaration","scope":6496,"src":"947:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6414","typeString":"contract IERC20"},"typeName":{"id":6472,"nodeType":"UserDefinedTypeName","pathNode":{"id":6471,"name":"IERC20","nameLocations":["947:6:28"],"nodeType":"IdentifierPath","referencedDeclaration":6414,"src":"947:6:28"},"referencedDeclaration":6414,"src":"947:6:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6414","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":6475,"mutability":"mutable","name":"from","nameLocation":"977:4:28","nodeType":"VariableDeclaration","scope":6496,"src":"969:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6474,"name":"address","nodeType":"ElementaryTypeName","src":"969:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6477,"mutability":"mutable","name":"to","nameLocation":"999:2:28","nodeType":"VariableDeclaration","scope":6496,"src":"991:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6476,"name":"address","nodeType":"ElementaryTypeName","src":"991:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6479,"mutability":"mutable","name":"value","nameLocation":"1019:5:28","nodeType":"VariableDeclaration","scope":6496,"src":"1011:13:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6478,"name":"uint256","nodeType":"ElementaryTypeName","src":"1011:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"937:93:28"},"returnParameters":{"id":6481,"nodeType":"ParameterList","parameters":[],"src":"1040:0:28"},"scope":6663,"src":"912:241:28","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":6539,"nodeType":"Block","src":"1519:497:28","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6523,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6510,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6508,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6504,"src":"1768:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":6509,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1777:1:28","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1768:10:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":6511,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1767:12:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":6516,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1808:4:28","typeDescriptions":{"typeIdentifier":"t_contract$_SafeERC20_$6663","typeString":"library SafeERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SafeERC20_$6663","typeString":"library SafeERC20"}],"id":6515,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1800:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6514,"name":"address","nodeType":"ElementaryTypeName","src":"1800:7:28","typeDescriptions":{}}},"id":6517,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1800:13:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6518,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6502,"src":"1815:7:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6512,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6500,"src":"1784:5:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6414","typeString":"contract IERC20"}},"id":6513,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1790:9:28","memberName":"allowance","nodeType":"MemberAccess","referencedDeclaration":6391,"src":"1784:15:28","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":6519,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1784:39:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":6520,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1827:1:28","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1784:44:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":6522,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1783:46:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1767:62:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f20746f206e6f6e2d7a65726f20616c6c6f77616e6365","id":6524,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1843:56:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_ef945ddb1bfdc0da870feb4560d868b047642b4ac7f2fb7f8b7c51cb4a411e25","typeString":"literal_string \"SafeERC20: approve from non-zero to non-zero allowance\""},"value":"SafeERC20: approve from non-zero to non-zero allowance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ef945ddb1bfdc0da870feb4560d868b047642b4ac7f2fb7f8b7c51cb4a411e25","typeString":"literal_string \"SafeERC20: approve from non-zero to non-zero allowance\""}],"id":6507,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1746:7:28","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6525,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1746:163:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6526,"nodeType":"ExpressionStatement","src":"1746:163:28"},{"expression":{"arguments":[{"id":6528,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6500,"src":"1939:5:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6414","typeString":"contract IERC20"}},{"arguments":[{"expression":{"expression":{"id":6531,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6500,"src":"1969:5:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6414","typeString":"contract IERC20"}},"id":6532,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1975:7:28","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":6401,"src":"1969:13:28","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":6533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1983:8:28","memberName":"selector","nodeType":"MemberAccess","src":"1969:22:28","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":6534,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6502,"src":"1993:7:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6535,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6504,"src":"2002:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6529,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1946:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6530,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1950:18:28","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"1946:22:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":6536,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1946:62:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$6414","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6527,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6662,"src":"1919:19:28","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$6414_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":6537,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1919:90:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6538,"nodeType":"ExpressionStatement","src":"1919:90:28"}]},"documentation":{"id":6497,"nodeType":"StructuredDocumentation","src":"1159:249:28","text":" @dev Deprecated. This function has issues similar to the ones found in\n {IERC20-approve}, and its usage is discouraged.\n Whenever possible, use {safeIncreaseAllowance} and\n {safeDecreaseAllowance} instead."},"id":6540,"implemented":true,"kind":"function","modifiers":[],"name":"safeApprove","nameLocation":"1422:11:28","nodeType":"FunctionDefinition","parameters":{"id":6505,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6500,"mutability":"mutable","name":"token","nameLocation":"1450:5:28","nodeType":"VariableDeclaration","scope":6540,"src":"1443:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6414","typeString":"contract IERC20"},"typeName":{"id":6499,"nodeType":"UserDefinedTypeName","pathNode":{"id":6498,"name":"IERC20","nameLocations":["1443:6:28"],"nodeType":"IdentifierPath","referencedDeclaration":6414,"src":"1443:6:28"},"referencedDeclaration":6414,"src":"1443:6:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6414","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":6502,"mutability":"mutable","name":"spender","nameLocation":"1473:7:28","nodeType":"VariableDeclaration","scope":6540,"src":"1465:15:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6501,"name":"address","nodeType":"ElementaryTypeName","src":"1465:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6504,"mutability":"mutable","name":"value","nameLocation":"1498:5:28","nodeType":"VariableDeclaration","scope":6540,"src":"1490:13:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6503,"name":"uint256","nodeType":"ElementaryTypeName","src":"1490:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1433:76:28"},"returnParameters":{"id":6506,"nodeType":"ParameterList","parameters":[],"src":"1519:0:28"},"scope":6663,"src":"1413:603:28","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":6575,"nodeType":"Block","src":"2138:194:28","statements":[{"assignments":[6551],"declarations":[{"constant":false,"id":6551,"mutability":"mutable","name":"newAllowance","nameLocation":"2156:12:28","nodeType":"VariableDeclaration","scope":6575,"src":"2148:20:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6550,"name":"uint256","nodeType":"ElementaryTypeName","src":"2148:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6562,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":6556,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2195:4:28","typeDescriptions":{"typeIdentifier":"t_contract$_SafeERC20_$6663","typeString":"library SafeERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SafeERC20_$6663","typeString":"library SafeERC20"}],"id":6555,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2187:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6554,"name":"address","nodeType":"ElementaryTypeName","src":"2187:7:28","typeDescriptions":{}}},"id":6557,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2187:13:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6558,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6545,"src":"2202:7:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6552,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6543,"src":"2171:5:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6414","typeString":"contract IERC20"}},"id":6553,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2177:9:28","memberName":"allowance","nodeType":"MemberAccess","referencedDeclaration":6391,"src":"2171:15:28","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":6559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2171:39:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":6560,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6547,"src":"2213:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2171:47:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2148:70:28"},{"expression":{"arguments":[{"id":6564,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6543,"src":"2248:5:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6414","typeString":"contract IERC20"}},{"arguments":[{"expression":{"expression":{"id":6567,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6543,"src":"2278:5:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6414","typeString":"contract IERC20"}},"id":6568,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2284:7:28","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":6401,"src":"2278:13:28","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":6569,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2292:8:28","memberName":"selector","nodeType":"MemberAccess","src":"2278:22:28","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":6570,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6545,"src":"2302:7:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6571,"name":"newAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6551,"src":"2311:12:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6565,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2255:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6566,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2259:18:28","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"2255:22:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":6572,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2255:69:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$6414","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6563,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6662,"src":"2228:19:28","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$6414_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":6573,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2228:97:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6574,"nodeType":"ExpressionStatement","src":"2228:97:28"}]},"id":6576,"implemented":true,"kind":"function","modifiers":[],"name":"safeIncreaseAllowance","nameLocation":"2031:21:28","nodeType":"FunctionDefinition","parameters":{"id":6548,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6543,"mutability":"mutable","name":"token","nameLocation":"2069:5:28","nodeType":"VariableDeclaration","scope":6576,"src":"2062:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6414","typeString":"contract IERC20"},"typeName":{"id":6542,"nodeType":"UserDefinedTypeName","pathNode":{"id":6541,"name":"IERC20","nameLocations":["2062:6:28"],"nodeType":"IdentifierPath","referencedDeclaration":6414,"src":"2062:6:28"},"referencedDeclaration":6414,"src":"2062:6:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6414","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":6545,"mutability":"mutable","name":"spender","nameLocation":"2092:7:28","nodeType":"VariableDeclaration","scope":6576,"src":"2084:15:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6544,"name":"address","nodeType":"ElementaryTypeName","src":"2084:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6547,"mutability":"mutable","name":"value","nameLocation":"2117:5:28","nodeType":"VariableDeclaration","scope":6576,"src":"2109:13:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6546,"name":"uint256","nodeType":"ElementaryTypeName","src":"2109:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2052:76:28"},"returnParameters":{"id":6549,"nodeType":"ParameterList","parameters":[],"src":"2138:0:28"},"scope":6663,"src":"2022:310:28","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":6623,"nodeType":"Block","src":"2454:370:28","statements":[{"id":6622,"nodeType":"UncheckedBlock","src":"2464:354:28","statements":[{"assignments":[6587],"declarations":[{"constant":false,"id":6587,"mutability":"mutable","name":"oldAllowance","nameLocation":"2496:12:28","nodeType":"VariableDeclaration","scope":6622,"src":"2488:20:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6586,"name":"uint256","nodeType":"ElementaryTypeName","src":"2488:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6596,"initialValue":{"arguments":[{"arguments":[{"id":6592,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2535:4:28","typeDescriptions":{"typeIdentifier":"t_contract$_SafeERC20_$6663","typeString":"library SafeERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SafeERC20_$6663","typeString":"library SafeERC20"}],"id":6591,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2527:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6590,"name":"address","nodeType":"ElementaryTypeName","src":"2527:7:28","typeDescriptions":{}}},"id":6593,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2527:13:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6594,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6581,"src":"2542:7:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6588,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6579,"src":"2511:5:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6414","typeString":"contract IERC20"}},"id":6589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2517:9:28","memberName":"allowance","nodeType":"MemberAccess","referencedDeclaration":6391,"src":"2511:15:28","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":6595,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2511:39:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2488:62:28"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6598,"name":"oldAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6587,"src":"2572:12:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":6599,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6583,"src":"2588:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2572:21:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5361666545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f","id":6601,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2595:43:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_2c3af60974a758b7e72e108c9bf0943ecc9e4f2e8af4695da5f52fbf57a63d3a","typeString":"literal_string \"SafeERC20: decreased allowance below zero\""},"value":"SafeERC20: decreased allowance below zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2c3af60974a758b7e72e108c9bf0943ecc9e4f2e8af4695da5f52fbf57a63d3a","typeString":"literal_string \"SafeERC20: decreased allowance below zero\""}],"id":6597,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2564:7:28","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6602,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2564:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6603,"nodeType":"ExpressionStatement","src":"2564:75:28"},{"assignments":[6605],"declarations":[{"constant":false,"id":6605,"mutability":"mutable","name":"newAllowance","nameLocation":"2661:12:28","nodeType":"VariableDeclaration","scope":6622,"src":"2653:20:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6604,"name":"uint256","nodeType":"ElementaryTypeName","src":"2653:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6609,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6608,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6606,"name":"oldAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6587,"src":"2676:12:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":6607,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6583,"src":"2691:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2676:20:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2653:43:28"},{"expression":{"arguments":[{"id":6611,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6579,"src":"2730:5:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6414","typeString":"contract IERC20"}},{"arguments":[{"expression":{"expression":{"id":6614,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6579,"src":"2760:5:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6414","typeString":"contract IERC20"}},"id":6615,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2766:7:28","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":6401,"src":"2760:13:28","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":6616,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2774:8:28","memberName":"selector","nodeType":"MemberAccess","src":"2760:22:28","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":6617,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6581,"src":"2784:7:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6618,"name":"newAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6605,"src":"2793:12:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6612,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2737:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6613,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2741:18:28","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"2737:22:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":6619,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2737:69:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$6414","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6610,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6662,"src":"2710:19:28","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$6414_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":6620,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2710:97:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6621,"nodeType":"ExpressionStatement","src":"2710:97:28"}]}]},"id":6624,"implemented":true,"kind":"function","modifiers":[],"name":"safeDecreaseAllowance","nameLocation":"2347:21:28","nodeType":"FunctionDefinition","parameters":{"id":6584,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6579,"mutability":"mutable","name":"token","nameLocation":"2385:5:28","nodeType":"VariableDeclaration","scope":6624,"src":"2378:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6414","typeString":"contract IERC20"},"typeName":{"id":6578,"nodeType":"UserDefinedTypeName","pathNode":{"id":6577,"name":"IERC20","nameLocations":["2378:6:28"],"nodeType":"IdentifierPath","referencedDeclaration":6414,"src":"2378:6:28"},"referencedDeclaration":6414,"src":"2378:6:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6414","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":6581,"mutability":"mutable","name":"spender","nameLocation":"2408:7:28","nodeType":"VariableDeclaration","scope":6624,"src":"2400:15:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6580,"name":"address","nodeType":"ElementaryTypeName","src":"2400:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6583,"mutability":"mutable","name":"value","nameLocation":"2433:5:28","nodeType":"VariableDeclaration","scope":6624,"src":"2425:13:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6582,"name":"uint256","nodeType":"ElementaryTypeName","src":"2425:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2368:76:28"},"returnParameters":{"id":6585,"nodeType":"ParameterList","parameters":[],"src":"2454:0:28"},"scope":6663,"src":"2338:486:28","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":6661,"nodeType":"Block","src":"3277:636:28","statements":[{"assignments":[6634],"declarations":[{"constant":false,"id":6634,"mutability":"mutable","name":"returndata","nameLocation":"3639:10:28","nodeType":"VariableDeclaration","scope":6661,"src":"3626:23:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6633,"name":"bytes","nodeType":"ElementaryTypeName","src":"3626:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":6643,"initialValue":{"arguments":[{"id":6640,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6630,"src":"3680:4:28","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564","id":6641,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3686:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_47fb62c2c272651d2f0f342bac006756b8ba07f21cc5cb87e0fbb9d50c0c585b","typeString":"literal_string \"SafeERC20: low-level call failed\""},"value":"SafeERC20: low-level call failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_stringliteral_47fb62c2c272651d2f0f342bac006756b8ba07f21cc5cb87e0fbb9d50c0c585b","typeString":"literal_string \"SafeERC20: low-level call failed\""}],"expression":{"arguments":[{"id":6637,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6628,"src":"3660:5:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6414","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$6414","typeString":"contract IERC20"}],"id":6636,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3652:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6635,"name":"address","nodeType":"ElementaryTypeName","src":"3652:7:28","typeDescriptions":{}}},"id":6638,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3652:14:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6639,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3667:12:28","memberName":"functionCall","nodeType":"MemberAccess","referencedDeclaration":7907,"src":"3652:27:28","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$attached_to$_t_address_$","typeString":"function (address,bytes memory,string memory) returns (bytes memory)"}},"id":6642,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3652:69:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"3626:95:28"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":6644,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6634,"src":"3735:10:28","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":6645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3746:6:28","memberName":"length","nodeType":"MemberAccess","src":"3735:17:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":6646,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3755:1:28","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3735:21:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6660,"nodeType":"IfStatement","src":"3731:176:28","trueBody":{"id":6659,"nodeType":"Block","src":"3758:149:28","statements":[{"expression":{"arguments":[{"arguments":[{"id":6651,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6634,"src":"3830:10:28","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":6653,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3843:4:28","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"},"typeName":{"id":6652,"name":"bool","nodeType":"ElementaryTypeName","src":"3843:4:28","typeDescriptions":{}}}],"id":6654,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"3842:6:28","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":6649,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3819:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6650,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3823:6:28","memberName":"decode","nodeType":"MemberAccess","src":"3819:10:28","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":6655,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3819:30:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564","id":6656,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3851:44:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd","typeString":"literal_string \"SafeERC20: ERC20 operation did not succeed\""},"value":"SafeERC20: ERC20 operation did not succeed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd","typeString":"literal_string \"SafeERC20: ERC20 operation did not succeed\""}],"id":6648,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3811:7:28","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6657,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3811:85:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6658,"nodeType":"ExpressionStatement","src":"3811:85:28"}]}}]},"documentation":{"id":6625,"nodeType":"StructuredDocumentation","src":"2830:372:28","text":" @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\n on the return value: the return value is optional (but if data is returned, it must not be false).\n @param token The token targeted by the call.\n @param data The call data (encoded using abi.encode or one of its variants)."},"id":6662,"implemented":true,"kind":"function","modifiers":[],"name":"_callOptionalReturn","nameLocation":"3216:19:28","nodeType":"FunctionDefinition","parameters":{"id":6631,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6628,"mutability":"mutable","name":"token","nameLocation":"3243:5:28","nodeType":"VariableDeclaration","scope":6662,"src":"3236:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6414","typeString":"contract IERC20"},"typeName":{"id":6627,"nodeType":"UserDefinedTypeName","pathNode":{"id":6626,"name":"IERC20","nameLocations":["3236:6:28"],"nodeType":"IdentifierPath","referencedDeclaration":6414,"src":"3236:6:28"},"referencedDeclaration":6414,"src":"3236:6:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6414","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":6630,"mutability":"mutable","name":"data","nameLocation":"3263:4:28","nodeType":"VariableDeclaration","scope":6662,"src":"3250:17:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6629,"name":"bytes","nodeType":"ElementaryTypeName","src":"3250:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3235:33:28"},"returnParameters":{"id":6632,"nodeType":"ParameterList","parameters":[],"src":"3277:0:28"},"scope":6663,"src":"3207:706:28","stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"scope":6664,"src":"645:3270:28","usedErrors":[]}],"src":"100:3816:28"}},"@openzeppelin/contracts/token/ERC721/ERC721.sol":{"id":29,"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC721/ERC721.sol","exportedSymbols":{"Address":[8113],"Context":[8135],"ERC165":[8436],"ERC721":[7529],"IERC165":[8448],"IERC721":[7645],"IERC721Metadata":[7818],"IERC721Receiver":[7663],"Strings":[8412]},"id":7530,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":6665,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"107:23:29"},{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721.sol","file":"./IERC721.sol","id":6666,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7530,"sourceUnit":7646,"src":"132:23:29","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol","file":"./IERC721Receiver.sol","id":6667,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7530,"sourceUnit":7664,"src":"156:31:29","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol","file":"./extensions/IERC721Metadata.sol","id":6668,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7530,"sourceUnit":7819,"src":"188:42:29","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Address.sol","file":"../../utils/Address.sol","id":6669,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7530,"sourceUnit":8114,"src":"231:33:29","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","file":"../../utils/Context.sol","id":6670,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7530,"sourceUnit":8136,"src":"265:33:29","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Strings.sol","file":"../../utils/Strings.sol","id":6671,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7530,"sourceUnit":8413,"src":"299:33:29","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/introspection/ERC165.sol","file":"../../utils/introspection/ERC165.sol","id":6672,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7530,"sourceUnit":8437,"src":"333:46:29","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":6674,"name":"Context","nameLocations":["647:7:29"],"nodeType":"IdentifierPath","referencedDeclaration":8135,"src":"647:7:29"},"id":6675,"nodeType":"InheritanceSpecifier","src":"647:7:29"},{"baseName":{"id":6676,"name":"ERC165","nameLocations":["656:6:29"],"nodeType":"IdentifierPath","referencedDeclaration":8436,"src":"656:6:29"},"id":6677,"nodeType":"InheritanceSpecifier","src":"656:6:29"},{"baseName":{"id":6678,"name":"IERC721","nameLocations":["664:7:29"],"nodeType":"IdentifierPath","referencedDeclaration":7645,"src":"664:7:29"},"id":6679,"nodeType":"InheritanceSpecifier","src":"664:7:29"},{"baseName":{"id":6680,"name":"IERC721Metadata","nameLocations":["673:15:29"],"nodeType":"IdentifierPath","referencedDeclaration":7818,"src":"673:15:29"},"id":6681,"nodeType":"InheritanceSpecifier","src":"673:15:29"}],"canonicalName":"ERC721","contractDependencies":[],"contractKind":"contract","documentation":{"id":6673,"nodeType":"StructuredDocumentation","src":"381:246:29","text":" @dev Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including\n the Metadata extension, but not including the Enumerable extension, which is available separately as\n {ERC721Enumerable}."},"fullyImplemented":true,"id":7529,"linearizedBaseContracts":[7529,7818,7645,8436,8448,8135],"name":"ERC721","nameLocation":"637:6:29","nodeType":"ContractDefinition","nodes":[{"global":false,"id":6684,"libraryName":{"id":6682,"name":"Address","nameLocations":["701:7:29"],"nodeType":"IdentifierPath","referencedDeclaration":8113,"src":"701:7:29"},"nodeType":"UsingForDirective","src":"695:26:29","typeName":{"id":6683,"name":"address","nodeType":"ElementaryTypeName","src":"713:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"global":false,"id":6687,"libraryName":{"id":6685,"name":"Strings","nameLocations":["732:7:29"],"nodeType":"IdentifierPath","referencedDeclaration":8412,"src":"732:7:29"},"nodeType":"UsingForDirective","src":"726:26:29","typeName":{"id":6686,"name":"uint256","nodeType":"ElementaryTypeName","src":"744:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"constant":false,"id":6689,"mutability":"mutable","name":"_name","nameLocation":"791:5:29","nodeType":"VariableDeclaration","scope":7529,"src":"776:20:29","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":6688,"name":"string","nodeType":"ElementaryTypeName","src":"776:6:29","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"constant":false,"id":6691,"mutability":"mutable","name":"_symbol","nameLocation":"838:7:29","nodeType":"VariableDeclaration","scope":7529,"src":"823:22:29","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":6690,"name":"string","nodeType":"ElementaryTypeName","src":"823:6:29","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"constant":false,"id":6695,"mutability":"mutable","name":"_owners","nameLocation":"934:7:29","nodeType":"VariableDeclaration","scope":7529,"src":"898:43:29","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"typeName":{"id":6694,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":6692,"name":"uint256","nodeType":"ElementaryTypeName","src":"906:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"898:27:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":6693,"name":"address","nodeType":"ElementaryTypeName","src":"917:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"private"},{"constant":false,"id":6699,"mutability":"mutable","name":"_balances","nameLocation":"1028:9:29","nodeType":"VariableDeclaration","scope":7529,"src":"992:45:29","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":6698,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":6696,"name":"address","nodeType":"ElementaryTypeName","src":"1000:7:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"992:27:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":6697,"name":"uint256","nodeType":"ElementaryTypeName","src":"1011:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"constant":false,"id":6703,"mutability":"mutable","name":"_tokenApprovals","nameLocation":"1129:15:29","nodeType":"VariableDeclaration","scope":7529,"src":"1093:51:29","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"typeName":{"id":6702,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":6700,"name":"uint256","nodeType":"ElementaryTypeName","src":"1101:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1093:27:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":6701,"name":"address","nodeType":"ElementaryTypeName","src":"1112:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"private"},{"constant":false,"id":6709,"mutability":"mutable","name":"_operatorApprovals","nameLocation":"1252:18:29","nodeType":"VariableDeclaration","scope":7529,"src":"1199:71:29","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"},"typeName":{"id":6708,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":6704,"name":"address","nodeType":"ElementaryTypeName","src":"1207:7:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1199:44:29","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":6707,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":6705,"name":"address","nodeType":"ElementaryTypeName","src":"1226:7:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1218:24:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":6706,"name":"bool","nodeType":"ElementaryTypeName","src":"1237:4:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}}},"visibility":"private"},{"body":{"id":6725,"nodeType":"Block","src":"1446:57:29","statements":[{"expression":{"id":6719,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6717,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6689,"src":"1456:5:29","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":6718,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6712,"src":"1464:5:29","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"1456:13:29","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":6720,"nodeType":"ExpressionStatement","src":"1456:13:29"},{"expression":{"id":6723,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6721,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6691,"src":"1479:7:29","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":6722,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6714,"src":"1489:7:29","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"1479:17:29","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":6724,"nodeType":"ExpressionStatement","src":"1479:17:29"}]},"documentation":{"id":6710,"nodeType":"StructuredDocumentation","src":"1277:108:29","text":" @dev Initializes the contract by setting a `name` and a `symbol` to the token collection."},"id":6726,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":6715,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6712,"mutability":"mutable","name":"name_","nameLocation":"1416:5:29","nodeType":"VariableDeclaration","scope":6726,"src":"1402:19:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6711,"name":"string","nodeType":"ElementaryTypeName","src":"1402:6:29","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6714,"mutability":"mutable","name":"symbol_","nameLocation":"1437:7:29","nodeType":"VariableDeclaration","scope":6726,"src":"1423:21:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6713,"name":"string","nodeType":"ElementaryTypeName","src":"1423:6:29","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1401:44:29"},"returnParameters":{"id":6716,"nodeType":"ParameterList","parameters":[],"src":"1446:0:29"},"scope":7529,"src":"1390:113:29","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[8435,8447],"body":{"id":6756,"nodeType":"Block","src":"1678:192:29","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6754,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6749,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":6742,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6737,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6729,"src":"1707:11:29","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":6739,"name":"IERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7645,"src":"1727:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721_$7645_$","typeString":"type(contract IERC721)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC721_$7645_$","typeString":"type(contract IERC721)"}],"id":6738,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1722:4:29","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":6740,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1722:13:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC721_$7645","typeString":"type(contract IERC721)"}},"id":6741,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1736:11:29","memberName":"interfaceId","nodeType":"MemberAccess","src":"1722:25:29","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"1707:40:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":6748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6743,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6729,"src":"1763:11:29","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":6745,"name":"IERC721Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7818,"src":"1783:15:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721Metadata_$7818_$","typeString":"type(contract IERC721Metadata)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC721Metadata_$7818_$","typeString":"type(contract IERC721Metadata)"}],"id":6744,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1778:4:29","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":6746,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1778:21:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC721Metadata_$7818","typeString":"type(contract IERC721Metadata)"}},"id":6747,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1800:11:29","memberName":"interfaceId","nodeType":"MemberAccess","src":"1778:33:29","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"1763:48:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1707:104:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":6752,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6729,"src":"1851:11:29","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":6750,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1827:5:29","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_ERC721_$7529_$","typeString":"type(contract super ERC721)"}},"id":6751,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1833:17:29","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":8435,"src":"1827:23:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":6753,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1827:36:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1707:156:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":6736,"id":6755,"nodeType":"Return","src":"1688:175:29"}]},"documentation":{"id":6727,"nodeType":"StructuredDocumentation","src":"1509:56:29","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","id":6757,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"1579:17:29","nodeType":"FunctionDefinition","overrides":{"id":6733,"nodeType":"OverrideSpecifier","overrides":[{"id":6731,"name":"ERC165","nameLocations":["1646:6:29"],"nodeType":"IdentifierPath","referencedDeclaration":8436,"src":"1646:6:29"},{"id":6732,"name":"IERC165","nameLocations":["1654:7:29"],"nodeType":"IdentifierPath","referencedDeclaration":8448,"src":"1654:7:29"}],"src":"1637:25:29"},"parameters":{"id":6730,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6729,"mutability":"mutable","name":"interfaceId","nameLocation":"1604:11:29","nodeType":"VariableDeclaration","scope":6757,"src":"1597:18:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":6728,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1597:6:29","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1596:20:29"},"returnParameters":{"id":6736,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6735,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6757,"src":"1672:4:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6734,"name":"bool","nodeType":"ElementaryTypeName","src":"1672:4:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1671:6:29"},"scope":7529,"src":"1570:300:29","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[7570],"body":{"id":6780,"nodeType":"Block","src":"2010:124:29","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6772,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6767,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6760,"src":"2028:5:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":6770,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2045:1:29","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":6769,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2037:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6768,"name":"address","nodeType":"ElementaryTypeName","src":"2037:7:29","typeDescriptions":{}}},"id":6771,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2037:10:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2028:19:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a2062616c616e636520717565727920666f7220746865207a65726f2061646472657373","id":6773,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2049:44:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_7395d4d3901c50cdfcab223d072f9aa36241df5d883e62cbf147ee1b05a9e6ba","typeString":"literal_string \"ERC721: balance query for the zero address\""},"value":"ERC721: balance query for the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7395d4d3901c50cdfcab223d072f9aa36241df5d883e62cbf147ee1b05a9e6ba","typeString":"literal_string \"ERC721: balance query for the zero address\""}],"id":6766,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2020:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2020:74:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6775,"nodeType":"ExpressionStatement","src":"2020:74:29"},{"expression":{"baseExpression":{"id":6776,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6699,"src":"2111:9:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":6778,"indexExpression":{"id":6777,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6760,"src":"2121:5:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2111:16:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":6765,"id":6779,"nodeType":"Return","src":"2104:23:29"}]},"documentation":{"id":6758,"nodeType":"StructuredDocumentation","src":"1876:48:29","text":" @dev See {IERC721-balanceOf}."},"functionSelector":"70a08231","id":6781,"implemented":true,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"1938:9:29","nodeType":"FunctionDefinition","overrides":{"id":6762,"nodeType":"OverrideSpecifier","overrides":[],"src":"1983:8:29"},"parameters":{"id":6761,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6760,"mutability":"mutable","name":"owner","nameLocation":"1956:5:29","nodeType":"VariableDeclaration","scope":6781,"src":"1948:13:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6759,"name":"address","nodeType":"ElementaryTypeName","src":"1948:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1947:15:29"},"returnParameters":{"id":6765,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6764,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6781,"src":"2001:7:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6763,"name":"uint256","nodeType":"ElementaryTypeName","src":"2001:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2000:9:29"},"scope":7529,"src":"1929:205:29","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[7578],"body":{"id":6808,"nodeType":"Block","src":"2272:154:29","statements":[{"assignments":[6791],"declarations":[{"constant":false,"id":6791,"mutability":"mutable","name":"owner","nameLocation":"2290:5:29","nodeType":"VariableDeclaration","scope":6808,"src":"2282:13:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6790,"name":"address","nodeType":"ElementaryTypeName","src":"2282:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":6795,"initialValue":{"baseExpression":{"id":6792,"name":"_owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6695,"src":"2298:7:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":6794,"indexExpression":{"id":6793,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6784,"src":"2306:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2298:16:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2282:32:29"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6802,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6797,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6791,"src":"2332:5:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":6800,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2349:1:29","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":6799,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2341:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6798,"name":"address","nodeType":"ElementaryTypeName","src":"2341:7:29","typeDescriptions":{}}},"id":6801,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2341:10:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2332:19:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e","id":6803,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2353:43:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_7481f3df2a424c0755a1ad2356614e9a5a358d461ea2eae1f89cb21cbad00397","typeString":"literal_string \"ERC721: owner query for nonexistent token\""},"value":"ERC721: owner query for nonexistent token"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7481f3df2a424c0755a1ad2356614e9a5a358d461ea2eae1f89cb21cbad00397","typeString":"literal_string \"ERC721: owner query for nonexistent token\""}],"id":6796,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2324:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2324:73:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6805,"nodeType":"ExpressionStatement","src":"2324:73:29"},{"expression":{"id":6806,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6791,"src":"2414:5:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":6789,"id":6807,"nodeType":"Return","src":"2407:12:29"}]},"documentation":{"id":6782,"nodeType":"StructuredDocumentation","src":"2140:46:29","text":" @dev See {IERC721-ownerOf}."},"functionSelector":"6352211e","id":6809,"implemented":true,"kind":"function","modifiers":[],"name":"ownerOf","nameLocation":"2200:7:29","nodeType":"FunctionDefinition","overrides":{"id":6786,"nodeType":"OverrideSpecifier","overrides":[],"src":"2245:8:29"},"parameters":{"id":6785,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6784,"mutability":"mutable","name":"tokenId","nameLocation":"2216:7:29","nodeType":"VariableDeclaration","scope":6809,"src":"2208:15:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6783,"name":"uint256","nodeType":"ElementaryTypeName","src":"2208:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2207:17:29"},"returnParameters":{"id":6789,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6788,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6809,"src":"2263:7:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6787,"name":"address","nodeType":"ElementaryTypeName","src":"2263:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2262:9:29"},"scope":7529,"src":"2191:235:29","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[7803],"body":{"id":6818,"nodeType":"Block","src":"2557:29:29","statements":[{"expression":{"id":6816,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6689,"src":"2574:5:29","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":6815,"id":6817,"nodeType":"Return","src":"2567:12:29"}]},"documentation":{"id":6810,"nodeType":"StructuredDocumentation","src":"2432:51:29","text":" @dev See {IERC721Metadata-name}."},"functionSelector":"06fdde03","id":6819,"implemented":true,"kind":"function","modifiers":[],"name":"name","nameLocation":"2497:4:29","nodeType":"FunctionDefinition","overrides":{"id":6812,"nodeType":"OverrideSpecifier","overrides":[],"src":"2524:8:29"},"parameters":{"id":6811,"nodeType":"ParameterList","parameters":[],"src":"2501:2:29"},"returnParameters":{"id":6815,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6814,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6819,"src":"2542:13:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6813,"name":"string","nodeType":"ElementaryTypeName","src":"2542:6:29","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2541:15:29"},"scope":7529,"src":"2488:98:29","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[7809],"body":{"id":6828,"nodeType":"Block","src":"2721:31:29","statements":[{"expression":{"id":6826,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6691,"src":"2738:7:29","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":6825,"id":6827,"nodeType":"Return","src":"2731:14:29"}]},"documentation":{"id":6820,"nodeType":"StructuredDocumentation","src":"2592:53:29","text":" @dev See {IERC721Metadata-symbol}."},"functionSelector":"95d89b41","id":6829,"implemented":true,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"2659:6:29","nodeType":"FunctionDefinition","overrides":{"id":6822,"nodeType":"OverrideSpecifier","overrides":[],"src":"2688:8:29"},"parameters":{"id":6821,"nodeType":"ParameterList","parameters":[],"src":"2665:2:29"},"returnParameters":{"id":6825,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6824,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6829,"src":"2706:13:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6823,"name":"string","nodeType":"ElementaryTypeName","src":"2706:6:29","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2705:15:29"},"scope":7529,"src":"2650:102:29","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[7817],"body":{"id":6870,"nodeType":"Block","src":"2906:241:29","statements":[{"expression":{"arguments":[{"arguments":[{"id":6840,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6832,"src":"2932:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6839,"name":"_exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7102,"src":"2924:7:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":6841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2924:16:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e","id":6842,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2942:49:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_a2d45c0fba603d40d82d590051761ca952d1ab9d78cca6d0d464d7b6e961a9cb","typeString":"literal_string \"ERC721Metadata: URI query for nonexistent token\""},"value":"ERC721Metadata: URI query for nonexistent token"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a2d45c0fba603d40d82d590051761ca952d1ab9d78cca6d0d464d7b6e961a9cb","typeString":"literal_string \"ERC721Metadata: URI query for nonexistent token\""}],"id":6838,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2916:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2916:76:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6844,"nodeType":"ExpressionStatement","src":"2916:76:29"},{"assignments":[6846],"declarations":[{"constant":false,"id":6846,"mutability":"mutable","name":"baseURI","nameLocation":"3017:7:29","nodeType":"VariableDeclaration","scope":6870,"src":"3003:21:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6845,"name":"string","nodeType":"ElementaryTypeName","src":"3003:6:29","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":6849,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":6847,"name":"_baseURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6880,"src":"3027:8:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_string_memory_ptr_$","typeString":"function () view returns (string memory)"}},"id":6848,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3027:10:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"3003:34:29"},{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":6852,"name":"baseURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6846,"src":"3060:7:29","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":6851,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3054:5:29","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":6850,"name":"bytes","nodeType":"ElementaryTypeName","src":"3054:5:29","typeDescriptions":{}}},"id":6853,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3054:14:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":6854,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3069:6:29","memberName":"length","nodeType":"MemberAccess","src":"3054:21:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":6855,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3078:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3054:25:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"","id":6867,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3138:2:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},"id":6868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"3054:86:29","trueExpression":{"arguments":[{"arguments":[{"id":6861,"name":"baseURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6846,"src":"3106:7:29","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":6862,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6832,"src":"3115:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3123:8:29","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":8294,"src":"3115:16:29","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$attached_to$_t_uint256_$","typeString":"function (uint256) pure returns (string memory)"}},"id":6864,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3115:18:29","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":6859,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3089:3:29","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6860,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3093:12:29","memberName":"encodePacked","nodeType":"MemberAccess","src":"3089:16:29","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":6865,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3089:45:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6858,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3082:6:29","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":6857,"name":"string","nodeType":"ElementaryTypeName","src":"3082:6:29","typeDescriptions":{}}},"id":6866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3082:53:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":6837,"id":6869,"nodeType":"Return","src":"3047:93:29"}]},"documentation":{"id":6830,"nodeType":"StructuredDocumentation","src":"2758:55:29","text":" @dev See {IERC721Metadata-tokenURI}."},"functionSelector":"c87b56dd","id":6871,"implemented":true,"kind":"function","modifiers":[],"name":"tokenURI","nameLocation":"2827:8:29","nodeType":"FunctionDefinition","overrides":{"id":6834,"nodeType":"OverrideSpecifier","overrides":[],"src":"2873:8:29"},"parameters":{"id":6833,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6832,"mutability":"mutable","name":"tokenId","nameLocation":"2844:7:29","nodeType":"VariableDeclaration","scope":6871,"src":"2836:15:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6831,"name":"uint256","nodeType":"ElementaryTypeName","src":"2836:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2835:17:29"},"returnParameters":{"id":6837,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6836,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6871,"src":"2891:13:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6835,"name":"string","nodeType":"ElementaryTypeName","src":"2891:6:29","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2890:15:29"},"scope":7529,"src":"2818:329:29","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":6879,"nodeType":"Block","src":"3455:26:29","statements":[{"expression":{"hexValue":"","id":6877,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3472:2:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},"functionReturnParameters":6876,"id":6878,"nodeType":"Return","src":"3465:9:29"}]},"documentation":{"id":6872,"nodeType":"StructuredDocumentation","src":"3153:231:29","text":" @dev Base URI for computing {tokenURI}. If set, the resulting URI for each\n token will be the concatenation of the `baseURI` and the `tokenId`. Empty\n by default, can be overridden in child contracts."},"id":6880,"implemented":true,"kind":"function","modifiers":[],"name":"_baseURI","nameLocation":"3398:8:29","nodeType":"FunctionDefinition","parameters":{"id":6873,"nodeType":"ParameterList","parameters":[],"src":"3406:2:29"},"returnParameters":{"id":6876,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6875,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6880,"src":"3440:13:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6874,"name":"string","nodeType":"ElementaryTypeName","src":"3440:6:29","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3439:15:29"},"scope":7529,"src":"3389:92:29","stateMutability":"view","virtual":true,"visibility":"internal"},{"baseFunctions":[7618],"body":{"id":6922,"nodeType":"Block","src":"3608:331:29","statements":[{"assignments":[6890],"declarations":[{"constant":false,"id":6890,"mutability":"mutable","name":"owner","nameLocation":"3626:5:29","nodeType":"VariableDeclaration","scope":6922,"src":"3618:13:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6889,"name":"address","nodeType":"ElementaryTypeName","src":"3618:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":6895,"initialValue":{"arguments":[{"id":6893,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6885,"src":"3649:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6891,"name":"ERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7529,"src":"3634:6:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721_$7529_$","typeString":"type(contract ERC721)"}},"id":6892,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3641:7:29","memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":6809,"src":"3634:14:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":6894,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3634:23:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3618:39:29"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6897,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6883,"src":"3675:2:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":6898,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6890,"src":"3681:5:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3675:11:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a20617070726f76616c20746f2063757272656e74206f776e6572","id":6900,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3688:35:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942","typeString":"literal_string \"ERC721: approval to current owner\""},"value":"ERC721: approval to current owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942","typeString":"literal_string \"ERC721: approval to current owner\""}],"id":6896,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3667:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6901,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3667:57:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6902,"nodeType":"ExpressionStatement","src":"3667:57:29"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6907,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":6904,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8125,"src":"3756:10:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":6905,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3756:12:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":6906,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6890,"src":"3772:5:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3756:21:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":6909,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6890,"src":"3798:5:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":6910,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8125,"src":"3805:10:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":6911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3805:12:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":6908,"name":"isApprovedForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6979,"src":"3781:16:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view returns (bool)"}},"id":6912,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3781:37:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3756:62:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c","id":6914,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3832:58:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_6d83cef3e0cb19b8320a9c5feb26b56bbb08f152a8e61b12eca3302d8d68b23d","typeString":"literal_string \"ERC721: approve caller is not owner nor approved for all\""},"value":"ERC721: approve caller is not owner nor approved for all"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6d83cef3e0cb19b8320a9c5feb26b56bbb08f152a8e61b12eca3302d8d68b23d","typeString":"literal_string \"ERC721: approve caller is not owner nor approved for all\""}],"id":6903,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3735:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6915,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3735:165:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6916,"nodeType":"ExpressionStatement","src":"3735:165:29"},{"expression":{"arguments":[{"id":6918,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6883,"src":"3920:2:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6919,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6885,"src":"3924:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6917,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7412,"src":"3911:8:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":6920,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3911:21:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6921,"nodeType":"ExpressionStatement","src":"3911:21:29"}]},"documentation":{"id":6881,"nodeType":"StructuredDocumentation","src":"3487:46:29","text":" @dev See {IERC721-approve}."},"functionSelector":"095ea7b3","id":6923,"implemented":true,"kind":"function","modifiers":[],"name":"approve","nameLocation":"3547:7:29","nodeType":"FunctionDefinition","overrides":{"id":6887,"nodeType":"OverrideSpecifier","overrides":[],"src":"3599:8:29"},"parameters":{"id":6886,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6883,"mutability":"mutable","name":"to","nameLocation":"3563:2:29","nodeType":"VariableDeclaration","scope":6923,"src":"3555:10:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6882,"name":"address","nodeType":"ElementaryTypeName","src":"3555:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6885,"mutability":"mutable","name":"tokenId","nameLocation":"3575:7:29","nodeType":"VariableDeclaration","scope":6923,"src":"3567:15:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6884,"name":"uint256","nodeType":"ElementaryTypeName","src":"3567:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3554:29:29"},"returnParameters":{"id":6888,"nodeType":"ParameterList","parameters":[],"src":"3608:0:29"},"scope":7529,"src":"3538:401:29","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[7634],"body":{"id":6943,"nodeType":"Block","src":"4085:132:29","statements":[{"expression":{"arguments":[{"arguments":[{"id":6934,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6926,"src":"4111:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6933,"name":"_exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7102,"src":"4103:7:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":6935,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4103:16:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e","id":6936,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4121:46:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_9291e0f44949204f2e9b40e6be090924979d6047b2365868f4e9f027722eb89d","typeString":"literal_string \"ERC721: approved query for nonexistent token\""},"value":"ERC721: approved query for nonexistent token"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9291e0f44949204f2e9b40e6be090924979d6047b2365868f4e9f027722eb89d","typeString":"literal_string \"ERC721: approved query for nonexistent token\""}],"id":6932,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4095:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6937,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4095:73:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6938,"nodeType":"ExpressionStatement","src":"4095:73:29"},{"expression":{"baseExpression":{"id":6939,"name":"_tokenApprovals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6703,"src":"4186:15:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":6941,"indexExpression":{"id":6940,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6926,"src":"4202:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4186:24:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":6931,"id":6942,"nodeType":"Return","src":"4179:31:29"}]},"documentation":{"id":6924,"nodeType":"StructuredDocumentation","src":"3945:50:29","text":" @dev See {IERC721-getApproved}."},"functionSelector":"081812fc","id":6944,"implemented":true,"kind":"function","modifiers":[],"name":"getApproved","nameLocation":"4009:11:29","nodeType":"FunctionDefinition","overrides":{"id":6928,"nodeType":"OverrideSpecifier","overrides":[],"src":"4058:8:29"},"parameters":{"id":6927,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6926,"mutability":"mutable","name":"tokenId","nameLocation":"4029:7:29","nodeType":"VariableDeclaration","scope":6944,"src":"4021:15:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6925,"name":"uint256","nodeType":"ElementaryTypeName","src":"4021:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4020:17:29"},"returnParameters":{"id":6931,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6930,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6944,"src":"4076:7:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6929,"name":"address","nodeType":"ElementaryTypeName","src":"4076:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4075:9:29"},"scope":7529,"src":"4000:217:29","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[7626],"body":{"id":6960,"nodeType":"Block","src":"4368:69:29","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":6954,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8125,"src":"4397:10:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":6955,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4397:12:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6956,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6947,"src":"4411:8:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6957,"name":"approved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6949,"src":"4421:8:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":6953,"name":"_setApprovalForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7444,"src":"4378:18:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$","typeString":"function (address,address,bool)"}},"id":6958,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4378:52:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6959,"nodeType":"ExpressionStatement","src":"4378:52:29"}]},"documentation":{"id":6945,"nodeType":"StructuredDocumentation","src":"4223:56:29","text":" @dev See {IERC721-setApprovalForAll}."},"functionSelector":"a22cb465","id":6961,"implemented":true,"kind":"function","modifiers":[],"name":"setApprovalForAll","nameLocation":"4293:17:29","nodeType":"FunctionDefinition","overrides":{"id":6951,"nodeType":"OverrideSpecifier","overrides":[],"src":"4359:8:29"},"parameters":{"id":6950,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6947,"mutability":"mutable","name":"operator","nameLocation":"4319:8:29","nodeType":"VariableDeclaration","scope":6961,"src":"4311:16:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6946,"name":"address","nodeType":"ElementaryTypeName","src":"4311:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6949,"mutability":"mutable","name":"approved","nameLocation":"4334:8:29","nodeType":"VariableDeclaration","scope":6961,"src":"4329:13:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6948,"name":"bool","nodeType":"ElementaryTypeName","src":"4329:4:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4310:33:29"},"returnParameters":{"id":6952,"nodeType":"ParameterList","parameters":[],"src":"4368:0:29"},"scope":7529,"src":"4284:153:29","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[7644],"body":{"id":6978,"nodeType":"Block","src":"4606:59:29","statements":[{"expression":{"baseExpression":{"baseExpression":{"id":6972,"name":"_operatorApprovals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6709,"src":"4623:18:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":6974,"indexExpression":{"id":6973,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6964,"src":"4642:5:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4623:25:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":6976,"indexExpression":{"id":6975,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6966,"src":"4649:8:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4623:35:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":6971,"id":6977,"nodeType":"Return","src":"4616:42:29"}]},"documentation":{"id":6962,"nodeType":"StructuredDocumentation","src":"4443:55:29","text":" @dev See {IERC721-isApprovedForAll}."},"functionSelector":"e985e9c5","id":6979,"implemented":true,"kind":"function","modifiers":[],"name":"isApprovedForAll","nameLocation":"4512:16:29","nodeType":"FunctionDefinition","overrides":{"id":6968,"nodeType":"OverrideSpecifier","overrides":[],"src":"4582:8:29"},"parameters":{"id":6967,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6964,"mutability":"mutable","name":"owner","nameLocation":"4537:5:29","nodeType":"VariableDeclaration","scope":6979,"src":"4529:13:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6963,"name":"address","nodeType":"ElementaryTypeName","src":"4529:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6966,"mutability":"mutable","name":"operator","nameLocation":"4552:8:29","nodeType":"VariableDeclaration","scope":6979,"src":"4544:16:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6965,"name":"address","nodeType":"ElementaryTypeName","src":"4544:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4528:33:29"},"returnParameters":{"id":6971,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6970,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6979,"src":"4600:4:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6969,"name":"bool","nodeType":"ElementaryTypeName","src":"4600:4:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4599:6:29"},"scope":7529,"src":"4503:162:29","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[7610],"body":{"id":7005,"nodeType":"Block","src":"4846:211:29","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":6992,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8125,"src":"4935:10:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":6993,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4935:12:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6994,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6986,"src":"4949:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6991,"name":"_isApprovedOrOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7143,"src":"4916:18:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) view returns (bool)"}},"id":6995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4916:41:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564","id":6996,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4959:51:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2","typeString":"literal_string \"ERC721: transfer caller is not owner nor approved\""},"value":"ERC721: transfer caller is not owner nor approved"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2","typeString":"literal_string \"ERC721: transfer caller is not owner nor approved\""}],"id":6990,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4908:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6997,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4908:103:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6998,"nodeType":"ExpressionStatement","src":"4908:103:29"},{"expression":{"arguments":[{"id":7000,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6982,"src":"5032:4:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7001,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6984,"src":"5038:2:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7002,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6986,"src":"5042:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6999,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7388,"src":"5022:9:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":7003,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5022:28:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7004,"nodeType":"ExpressionStatement","src":"5022:28:29"}]},"documentation":{"id":6980,"nodeType":"StructuredDocumentation","src":"4671:51:29","text":" @dev See {IERC721-transferFrom}."},"functionSelector":"23b872dd","id":7006,"implemented":true,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"4736:12:29","nodeType":"FunctionDefinition","overrides":{"id":6988,"nodeType":"OverrideSpecifier","overrides":[],"src":"4837:8:29"},"parameters":{"id":6987,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6982,"mutability":"mutable","name":"from","nameLocation":"4766:4:29","nodeType":"VariableDeclaration","scope":7006,"src":"4758:12:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6981,"name":"address","nodeType":"ElementaryTypeName","src":"4758:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6984,"mutability":"mutable","name":"to","nameLocation":"4788:2:29","nodeType":"VariableDeclaration","scope":7006,"src":"4780:10:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6983,"name":"address","nodeType":"ElementaryTypeName","src":"4780:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6986,"mutability":"mutable","name":"tokenId","nameLocation":"4808:7:29","nodeType":"VariableDeclaration","scope":7006,"src":"4800:15:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6985,"name":"uint256","nodeType":"ElementaryTypeName","src":"4800:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4748:73:29"},"returnParameters":{"id":6989,"nodeType":"ParameterList","parameters":[],"src":"4846:0:29"},"scope":7529,"src":"4727:330:29","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[7600],"body":{"id":7024,"nodeType":"Block","src":"5246:56:29","statements":[{"expression":{"arguments":[{"id":7018,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7009,"src":"5273:4:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7019,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7011,"src":"5279:2:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7020,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7013,"src":"5283:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"","id":7021,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5292:2:29","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 \"\""}],"id":7017,"name":"safeTransferFrom","nodeType":"Identifier","overloadedDeclarations":[7025,7055],"referencedDeclaration":7055,"src":"5256:16:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256,bytes memory)"}},"id":7022,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5256:39:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7023,"nodeType":"ExpressionStatement","src":"5256:39:29"}]},"documentation":{"id":7007,"nodeType":"StructuredDocumentation","src":"5063:55:29","text":" @dev See {IERC721-safeTransferFrom}."},"functionSelector":"42842e0e","id":7025,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"5132:16:29","nodeType":"FunctionDefinition","overrides":{"id":7015,"nodeType":"OverrideSpecifier","overrides":[],"src":"5237:8:29"},"parameters":{"id":7014,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7009,"mutability":"mutable","name":"from","nameLocation":"5166:4:29","nodeType":"VariableDeclaration","scope":7025,"src":"5158:12:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7008,"name":"address","nodeType":"ElementaryTypeName","src":"5158:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7011,"mutability":"mutable","name":"to","nameLocation":"5188:2:29","nodeType":"VariableDeclaration","scope":7025,"src":"5180:10:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7010,"name":"address","nodeType":"ElementaryTypeName","src":"5180:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7013,"mutability":"mutable","name":"tokenId","nameLocation":"5208:7:29","nodeType":"VariableDeclaration","scope":7025,"src":"5200:15:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7012,"name":"uint256","nodeType":"ElementaryTypeName","src":"5200:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5148:73:29"},"returnParameters":{"id":7016,"nodeType":"ParameterList","parameters":[],"src":"5246:0:29"},"scope":7529,"src":"5123:179:29","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[7590],"body":{"id":7054,"nodeType":"Block","src":"5519:169:29","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":7040,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8125,"src":"5556:10:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":7041,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5556:12:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7042,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7032,"src":"5570:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7039,"name":"_isApprovedOrOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7143,"src":"5537:18:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) view returns (bool)"}},"id":7043,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5537:41:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564","id":7044,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5580:51:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2","typeString":"literal_string \"ERC721: transfer caller is not owner nor approved\""},"value":"ERC721: transfer caller is not owner nor approved"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2","typeString":"literal_string \"ERC721: transfer caller is not owner nor approved\""}],"id":7038,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5529:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7045,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5529:103:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7046,"nodeType":"ExpressionStatement","src":"5529:103:29"},{"expression":{"arguments":[{"id":7048,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7028,"src":"5656:4:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7049,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7030,"src":"5662:2:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7050,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7032,"src":"5666:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7051,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7034,"src":"5675:5:29","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"}],"id":7047,"name":"_safeTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7084,"src":"5642:13:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256,bytes memory)"}},"id":7052,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5642:39:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7053,"nodeType":"ExpressionStatement","src":"5642:39:29"}]},"documentation":{"id":7026,"nodeType":"StructuredDocumentation","src":"5308:55:29","text":" @dev See {IERC721-safeTransferFrom}."},"functionSelector":"b88d4fde","id":7055,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"5377:16:29","nodeType":"FunctionDefinition","overrides":{"id":7036,"nodeType":"OverrideSpecifier","overrides":[],"src":"5510:8:29"},"parameters":{"id":7035,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7028,"mutability":"mutable","name":"from","nameLocation":"5411:4:29","nodeType":"VariableDeclaration","scope":7055,"src":"5403:12:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7027,"name":"address","nodeType":"ElementaryTypeName","src":"5403:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7030,"mutability":"mutable","name":"to","nameLocation":"5433:2:29","nodeType":"VariableDeclaration","scope":7055,"src":"5425:10:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7029,"name":"address","nodeType":"ElementaryTypeName","src":"5425:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7032,"mutability":"mutable","name":"tokenId","nameLocation":"5453:7:29","nodeType":"VariableDeclaration","scope":7055,"src":"5445:15:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7031,"name":"uint256","nodeType":"ElementaryTypeName","src":"5445:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7034,"mutability":"mutable","name":"_data","nameLocation":"5483:5:29","nodeType":"VariableDeclaration","scope":7055,"src":"5470:18:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7033,"name":"bytes","nodeType":"ElementaryTypeName","src":"5470:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5393:101:29"},"returnParameters":{"id":7037,"nodeType":"ParameterList","parameters":[],"src":"5519:0:29"},"scope":7529,"src":"5368:320:29","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":7083,"nodeType":"Block","src":"6691:166:29","statements":[{"expression":{"arguments":[{"id":7068,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7058,"src":"6711:4:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7069,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7060,"src":"6717:2:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7070,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7062,"src":"6721:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7067,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7388,"src":"6701:9:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":7071,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6701:28:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7072,"nodeType":"ExpressionStatement","src":"6701:28:29"},{"expression":{"arguments":[{"arguments":[{"id":7075,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7058,"src":"6770:4:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7076,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7060,"src":"6776:2:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7077,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7062,"src":"6780:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7078,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7064,"src":"6789:5:29","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"}],"id":7074,"name":"_checkOnERC721Received","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7506,"src":"6747:22:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$","typeString":"function (address,address,uint256,bytes memory) returns (bool)"}},"id":7079,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6747:48:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572","id":7080,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6797:52:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e","typeString":"literal_string \"ERC721: transfer to non ERC721Receiver implementer\""},"value":"ERC721: transfer to non ERC721Receiver implementer"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e","typeString":"literal_string \"ERC721: transfer to non ERC721Receiver implementer\""}],"id":7073,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6739:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7081,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6739:111:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7082,"nodeType":"ExpressionStatement","src":"6739:111:29"}]},"documentation":{"id":7056,"nodeType":"StructuredDocumentation","src":"5694:851:29","text":" @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n `_data` is additional data, it has no specified format and it is sent in call to `to`.\n This internal function is equivalent to {safeTransferFrom}, and can be used to e.g.\n implement alternative mechanisms to perform token transfer, such as signature-based.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event."},"id":7084,"implemented":true,"kind":"function","modifiers":[],"name":"_safeTransfer","nameLocation":"6559:13:29","nodeType":"FunctionDefinition","parameters":{"id":7065,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7058,"mutability":"mutable","name":"from","nameLocation":"6590:4:29","nodeType":"VariableDeclaration","scope":7084,"src":"6582:12:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7057,"name":"address","nodeType":"ElementaryTypeName","src":"6582:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7060,"mutability":"mutable","name":"to","nameLocation":"6612:2:29","nodeType":"VariableDeclaration","scope":7084,"src":"6604:10:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7059,"name":"address","nodeType":"ElementaryTypeName","src":"6604:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7062,"mutability":"mutable","name":"tokenId","nameLocation":"6632:7:29","nodeType":"VariableDeclaration","scope":7084,"src":"6624:15:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7061,"name":"uint256","nodeType":"ElementaryTypeName","src":"6624:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7064,"mutability":"mutable","name":"_data","nameLocation":"6662:5:29","nodeType":"VariableDeclaration","scope":7084,"src":"6649:18:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7063,"name":"bytes","nodeType":"ElementaryTypeName","src":"6649:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6572:101:29"},"returnParameters":{"id":7066,"nodeType":"ParameterList","parameters":[],"src":"6691:0:29"},"scope":7529,"src":"6550:307:29","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":7101,"nodeType":"Block","src":"7231:54:29","statements":[{"expression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":7099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":7092,"name":"_owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6695,"src":"7248:7:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":7094,"indexExpression":{"id":7093,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7087,"src":"7256:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7248:16:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":7097,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7276:1:29","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":7096,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7268:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7095,"name":"address","nodeType":"ElementaryTypeName","src":"7268:7:29","typeDescriptions":{}}},"id":7098,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7268:10:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7248:30:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":7091,"id":7100,"nodeType":"Return","src":"7241:37:29"}]},"documentation":{"id":7085,"nodeType":"StructuredDocumentation","src":"6863:292:29","text":" @dev Returns whether `tokenId` exists.\n Tokens can be managed by their owner or approved accounts via {approve} or {setApprovalForAll}.\n Tokens start existing when they are minted (`_mint`),\n and stop existing when they are burned (`_burn`)."},"id":7102,"implemented":true,"kind":"function","modifiers":[],"name":"_exists","nameLocation":"7169:7:29","nodeType":"FunctionDefinition","parameters":{"id":7088,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7087,"mutability":"mutable","name":"tokenId","nameLocation":"7185:7:29","nodeType":"VariableDeclaration","scope":7102,"src":"7177:15:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7086,"name":"uint256","nodeType":"ElementaryTypeName","src":"7177:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7176:17:29"},"returnParameters":{"id":7091,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7090,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7102,"src":"7225:4:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7089,"name":"bool","nodeType":"ElementaryTypeName","src":"7225:4:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7224:6:29"},"scope":7529,"src":"7160:125:29","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":7142,"nodeType":"Block","src":"7542:245:29","statements":[{"expression":{"arguments":[{"arguments":[{"id":7114,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7107,"src":"7568:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7113,"name":"_exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7102,"src":"7560:7:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":7115,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7560:16:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e","id":7116,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7578:46:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_5797d1ccb08b83980dd0c07ea40d8f6a64d35fff736a19bdd17522954cb0899c","typeString":"literal_string \"ERC721: operator query for nonexistent token\""},"value":"ERC721: operator query for nonexistent token"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5797d1ccb08b83980dd0c07ea40d8f6a64d35fff736a19bdd17522954cb0899c","typeString":"literal_string \"ERC721: operator query for nonexistent token\""}],"id":7112,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7552:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7117,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7552:73:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7118,"nodeType":"ExpressionStatement","src":"7552:73:29"},{"assignments":[7120],"declarations":[{"constant":false,"id":7120,"mutability":"mutable","name":"owner","nameLocation":"7643:5:29","nodeType":"VariableDeclaration","scope":7142,"src":"7635:13:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7119,"name":"address","nodeType":"ElementaryTypeName","src":"7635:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":7125,"initialValue":{"arguments":[{"id":7123,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7107,"src":"7666:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7121,"name":"ERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7529,"src":"7651:6:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721_$7529_$","typeString":"type(contract ERC721)"}},"id":7122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7658:7:29","memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":6809,"src":"7651:14:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":7124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7651:23:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"7635:39:29"},{"expression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":7139,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":7133,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":7128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7126,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7105,"src":"7692:7:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":7127,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7120,"src":"7703:5:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7692:16:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":7130,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7120,"src":"7729:5:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7131,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7105,"src":"7736:7:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":7129,"name":"isApprovedForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6979,"src":"7712:16:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view returns (bool)"}},"id":7132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7712:32:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"7692:52:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":7138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":7135,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7107,"src":"7760:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7134,"name":"getApproved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6944,"src":"7748:11:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":7136,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7748:20:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":7137,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7105,"src":"7772:7:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7748:31:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"7692:87:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":7140,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7691:89:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":7111,"id":7141,"nodeType":"Return","src":"7684:96:29"}]},"documentation":{"id":7103,"nodeType":"StructuredDocumentation","src":"7291:147:29","text":" @dev Returns whether `spender` is allowed to manage `tokenId`.\n Requirements:\n - `tokenId` must exist."},"id":7143,"implemented":true,"kind":"function","modifiers":[],"name":"_isApprovedOrOwner","nameLocation":"7452:18:29","nodeType":"FunctionDefinition","parameters":{"id":7108,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7105,"mutability":"mutable","name":"spender","nameLocation":"7479:7:29","nodeType":"VariableDeclaration","scope":7143,"src":"7471:15:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7104,"name":"address","nodeType":"ElementaryTypeName","src":"7471:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7107,"mutability":"mutable","name":"tokenId","nameLocation":"7496:7:29","nodeType":"VariableDeclaration","scope":7143,"src":"7488:15:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7106,"name":"uint256","nodeType":"ElementaryTypeName","src":"7488:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7470:34:29"},"returnParameters":{"id":7111,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7110,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7143,"src":"7536:4:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7109,"name":"bool","nodeType":"ElementaryTypeName","src":"7536:4:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7535:6:29"},"scope":7529,"src":"7443:344:29","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":7157,"nodeType":"Block","src":"8182:43:29","statements":[{"expression":{"arguments":[{"id":7152,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7146,"src":"8202:2:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7153,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7148,"src":"8206:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"","id":7154,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8215:2:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":7151,"name":"_safeMint","nodeType":"Identifier","overloadedDeclarations":[7158,7187],"referencedDeclaration":7187,"src":"8192:9:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,uint256,bytes memory)"}},"id":7155,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8192:26:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7156,"nodeType":"ExpressionStatement","src":"8192:26:29"}]},"documentation":{"id":7144,"nodeType":"StructuredDocumentation","src":"7793:319:29","text":" @dev Safely mints `tokenId` and transfers it to `to`.\n Requirements:\n - `tokenId` must not exist.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event."},"id":7158,"implemented":true,"kind":"function","modifiers":[],"name":"_safeMint","nameLocation":"8126:9:29","nodeType":"FunctionDefinition","parameters":{"id":7149,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7146,"mutability":"mutable","name":"to","nameLocation":"8144:2:29","nodeType":"VariableDeclaration","scope":7158,"src":"8136:10:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7145,"name":"address","nodeType":"ElementaryTypeName","src":"8136:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7148,"mutability":"mutable","name":"tokenId","nameLocation":"8156:7:29","nodeType":"VariableDeclaration","scope":7158,"src":"8148:15:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7147,"name":"uint256","nodeType":"ElementaryTypeName","src":"8148:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8135:29:29"},"returnParameters":{"id":7150,"nodeType":"ParameterList","parameters":[],"src":"8182:0:29"},"scope":7529,"src":"8117:108:29","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":7186,"nodeType":"Block","src":"8561:196:29","statements":[{"expression":{"arguments":[{"id":7169,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7161,"src":"8577:2:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7170,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7163,"src":"8581:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7168,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7253,"src":"8571:5:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":7171,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8571:18:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7172,"nodeType":"ExpressionStatement","src":"8571:18:29"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"hexValue":"30","id":7177,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8651:1:29","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":7176,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8643:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7175,"name":"address","nodeType":"ElementaryTypeName","src":"8643:7:29","typeDescriptions":{}}},"id":7178,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8643:10:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7179,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7161,"src":"8655:2:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7180,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7163,"src":"8659:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7181,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7165,"src":"8668:5:29","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"}],"id":7174,"name":"_checkOnERC721Received","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7506,"src":"8620:22:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$","typeString":"function (address,address,uint256,bytes memory) returns (bool)"}},"id":7182,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8620:54:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572","id":7183,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8688:52:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e","typeString":"literal_string \"ERC721: transfer to non ERC721Receiver implementer\""},"value":"ERC721: transfer to non ERC721Receiver implementer"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e","typeString":"literal_string \"ERC721: transfer to non ERC721Receiver implementer\""}],"id":7173,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8599:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7184,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8599:151:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7185,"nodeType":"ExpressionStatement","src":"8599:151:29"}]},"documentation":{"id":7159,"nodeType":"StructuredDocumentation","src":"8231:210:29","text":" @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is\n forwarded in {IERC721Receiver-onERC721Received} to contract recipients."},"id":7187,"implemented":true,"kind":"function","modifiers":[],"name":"_safeMint","nameLocation":"8455:9:29","nodeType":"FunctionDefinition","parameters":{"id":7166,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7161,"mutability":"mutable","name":"to","nameLocation":"8482:2:29","nodeType":"VariableDeclaration","scope":7187,"src":"8474:10:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7160,"name":"address","nodeType":"ElementaryTypeName","src":"8474:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7163,"mutability":"mutable","name":"tokenId","nameLocation":"8502:7:29","nodeType":"VariableDeclaration","scope":7187,"src":"8494:15:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7162,"name":"uint256","nodeType":"ElementaryTypeName","src":"8494:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7165,"mutability":"mutable","name":"_data","nameLocation":"8532:5:29","nodeType":"VariableDeclaration","scope":7187,"src":"8519:18:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7164,"name":"bytes","nodeType":"ElementaryTypeName","src":"8519:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8464:79:29"},"returnParameters":{"id":7167,"nodeType":"ParameterList","parameters":[],"src":"8561:0:29"},"scope":7529,"src":"8446:311:29","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":7252,"nodeType":"Block","src":"9140:366:29","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":7201,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7196,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7190,"src":"9158:2:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":7199,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9172:1:29","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":7198,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9164:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7197,"name":"address","nodeType":"ElementaryTypeName","src":"9164:7:29","typeDescriptions":{}}},"id":7200,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9164:10:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9158:16:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a206d696e7420746f20746865207a65726f2061646472657373","id":7202,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9176:34:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6","typeString":"literal_string \"ERC721: mint to the zero address\""},"value":"ERC721: mint to the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6","typeString":"literal_string \"ERC721: mint to the zero address\""}],"id":7195,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9150:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7203,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9150:61:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7204,"nodeType":"ExpressionStatement","src":"9150:61:29"},{"expression":{"arguments":[{"id":7209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"9229:17:29","subExpression":{"arguments":[{"id":7207,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7192,"src":"9238:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7206,"name":"_exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7102,"src":"9230:7:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":7208,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9230:16:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a20746f6b656e20616c7265616479206d696e746564","id":7210,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9248:30:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57","typeString":"literal_string \"ERC721: token already minted\""},"value":"ERC721: token already minted"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57","typeString":"literal_string \"ERC721: token already minted\""}],"id":7205,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9221:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9221:58:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7212,"nodeType":"ExpressionStatement","src":"9221:58:29"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":7216,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9319:1:29","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":7215,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9311:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7214,"name":"address","nodeType":"ElementaryTypeName","src":"9311:7:29","typeDescriptions":{}}},"id":7217,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9311:10:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7218,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7190,"src":"9323:2:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7219,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7192,"src":"9327:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7213,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7517,"src":"9290:20:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":7220,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9290:45:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7221,"nodeType":"ExpressionStatement","src":"9290:45:29"},{"expression":{"id":7226,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":7222,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6699,"src":"9346:9:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":7224,"indexExpression":{"id":7223,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7190,"src":"9356:2:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9346:13:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":7225,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9363:1:29","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9346:18:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7227,"nodeType":"ExpressionStatement","src":"9346:18:29"},{"expression":{"id":7232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":7228,"name":"_owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6695,"src":"9374:7:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":7230,"indexExpression":{"id":7229,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7192,"src":"9382:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9374:16:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":7231,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7190,"src":"9393:2:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9374:21:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7233,"nodeType":"ExpressionStatement","src":"9374:21:29"},{"eventCall":{"arguments":[{"arguments":[{"hexValue":"30","id":7237,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9428:1:29","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":7236,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9420:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7235,"name":"address","nodeType":"ElementaryTypeName","src":"9420:7:29","typeDescriptions":{}}},"id":7238,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9420:10:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7239,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7190,"src":"9432:2:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7240,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7192,"src":"9436:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7234,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7544,"src":"9411:8:29","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":7241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9411:33:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7242,"nodeType":"EmitStatement","src":"9406:38:29"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":7246,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9483:1:29","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":7245,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9475:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7244,"name":"address","nodeType":"ElementaryTypeName","src":"9475:7:29","typeDescriptions":{}}},"id":7247,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9475:10:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7248,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7190,"src":"9487:2:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7249,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7192,"src":"9491:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7243,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7528,"src":"9455:19:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":7250,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9455:44:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7251,"nodeType":"ExpressionStatement","src":"9455:44:29"}]},"documentation":{"id":7188,"nodeType":"StructuredDocumentation","src":"8763:311:29","text":" @dev Mints `tokenId` and transfers it to `to`.\n WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\n Requirements:\n - `tokenId` must not exist.\n - `to` cannot be the zero address.\n Emits a {Transfer} event."},"id":7253,"implemented":true,"kind":"function","modifiers":[],"name":"_mint","nameLocation":"9088:5:29","nodeType":"FunctionDefinition","parameters":{"id":7193,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7190,"mutability":"mutable","name":"to","nameLocation":"9102:2:29","nodeType":"VariableDeclaration","scope":7253,"src":"9094:10:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7189,"name":"address","nodeType":"ElementaryTypeName","src":"9094:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7192,"mutability":"mutable","name":"tokenId","nameLocation":"9114:7:29","nodeType":"VariableDeclaration","scope":7253,"src":"9106:15:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7191,"name":"uint256","nodeType":"ElementaryTypeName","src":"9106:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9093:29:29"},"returnParameters":{"id":7194,"nodeType":"ParameterList","parameters":[],"src":"9140:0:29"},"scope":7529,"src":"9079:427:29","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":7312,"nodeType":"Block","src":"9772:357:29","statements":[{"assignments":[7260],"declarations":[{"constant":false,"id":7260,"mutability":"mutable","name":"owner","nameLocation":"9790:5:29","nodeType":"VariableDeclaration","scope":7312,"src":"9782:13:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7259,"name":"address","nodeType":"ElementaryTypeName","src":"9782:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":7265,"initialValue":{"arguments":[{"id":7263,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7256,"src":"9813:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7261,"name":"ERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7529,"src":"9798:6:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721_$7529_$","typeString":"type(contract ERC721)"}},"id":7262,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9805:7:29","memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":6809,"src":"9798:14:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":7264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9798:23:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"9782:39:29"},{"expression":{"arguments":[{"id":7267,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7260,"src":"9853:5:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":7270,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9868:1:29","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":7269,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9860:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7268,"name":"address","nodeType":"ElementaryTypeName","src":"9860:7:29","typeDescriptions":{}}},"id":7271,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9860:10:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7272,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7256,"src":"9872:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7266,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7517,"src":"9832:20:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":7273,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9832:48:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7274,"nodeType":"ExpressionStatement","src":"9832:48:29"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":7278,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9935:1:29","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":7277,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9927:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7276,"name":"address","nodeType":"ElementaryTypeName","src":"9927:7:29","typeDescriptions":{}}},"id":7279,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9927:10:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7280,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7256,"src":"9939:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7275,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7412,"src":"9918:8:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":7281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9918:29:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7282,"nodeType":"ExpressionStatement","src":"9918:29:29"},{"expression":{"id":7287,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":7283,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6699,"src":"9958:9:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":7285,"indexExpression":{"id":7284,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7260,"src":"9968:5:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9958:16:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"31","id":7286,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9978:1:29","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9958:21:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7288,"nodeType":"ExpressionStatement","src":"9958:21:29"},{"expression":{"id":7292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"9989:23:29","subExpression":{"baseExpression":{"id":7289,"name":"_owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6695,"src":"9996:7:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":7291,"indexExpression":{"id":7290,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7256,"src":"10004:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9996:16:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7293,"nodeType":"ExpressionStatement","src":"9989:23:29"},{"eventCall":{"arguments":[{"id":7295,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7260,"src":"10037:5:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":7298,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10052:1:29","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":7297,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10044:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7296,"name":"address","nodeType":"ElementaryTypeName","src":"10044:7:29","typeDescriptions":{}}},"id":7299,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10044:10:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7300,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7256,"src":"10056:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7294,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7544,"src":"10028:8:29","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":7301,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10028:36:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7302,"nodeType":"EmitStatement","src":"10023:41:29"},{"expression":{"arguments":[{"id":7304,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7260,"src":"10095:5:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":7307,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10110:1:29","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":7306,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10102:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7305,"name":"address","nodeType":"ElementaryTypeName","src":"10102:7:29","typeDescriptions":{}}},"id":7308,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10102:10:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7309,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7256,"src":"10114:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7303,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7528,"src":"10075:19:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":7310,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10075:47:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7311,"nodeType":"ExpressionStatement","src":"10075:47:29"}]},"documentation":{"id":7254,"nodeType":"StructuredDocumentation","src":"9512:206:29","text":" @dev Destroys `tokenId`.\n The approval is cleared when the token is burned.\n Requirements:\n - `tokenId` must exist.\n Emits a {Transfer} event."},"id":7313,"implemented":true,"kind":"function","modifiers":[],"name":"_burn","nameLocation":"9732:5:29","nodeType":"FunctionDefinition","parameters":{"id":7257,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7256,"mutability":"mutable","name":"tokenId","nameLocation":"9746:7:29","nodeType":"VariableDeclaration","scope":7313,"src":"9738:15:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7255,"name":"uint256","nodeType":"ElementaryTypeName","src":"9738:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9737:17:29"},"returnParameters":{"id":7258,"nodeType":"ParameterList","parameters":[],"src":"9772:0:29"},"scope":7529,"src":"9723:406:29","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":7387,"nodeType":"Block","src":"10562:496:29","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":7329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":7326,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7320,"src":"10595:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7324,"name":"ERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7529,"src":"10580:6:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721_$7529_$","typeString":"type(contract ERC721)"}},"id":7325,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10587:7:29","memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":6809,"src":"10580:14:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":7327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10580:23:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":7328,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7316,"src":"10607:4:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10580:31:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a207472616e736665722066726f6d20696e636f7272656374206f776e6572","id":7330,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10613:39:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48","typeString":"literal_string \"ERC721: transfer from incorrect owner\""},"value":"ERC721: transfer from incorrect owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48","typeString":"literal_string \"ERC721: transfer from incorrect owner\""}],"id":7323,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"10572:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10572:81:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7332,"nodeType":"ExpressionStatement","src":"10572:81:29"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":7339,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7334,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7318,"src":"10671:2:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":7337,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10685:1:29","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":7336,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10677:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7335,"name":"address","nodeType":"ElementaryTypeName","src":"10677:7:29","typeDescriptions":{}}},"id":7338,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10677:10:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10671:16:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a207472616e7366657220746f20746865207a65726f2061646472657373","id":7340,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10689:38:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4","typeString":"literal_string \"ERC721: transfer to the zero address\""},"value":"ERC721: transfer to the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4","typeString":"literal_string \"ERC721: transfer to the zero address\""}],"id":7333,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"10663:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7341,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10663:65:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7342,"nodeType":"ExpressionStatement","src":"10663:65:29"},{"expression":{"arguments":[{"id":7344,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7316,"src":"10760:4:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7345,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7318,"src":"10766:2:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7346,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7320,"src":"10770:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7343,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7517,"src":"10739:20:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":7347,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10739:39:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7348,"nodeType":"ExpressionStatement","src":"10739:39:29"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":7352,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10857:1:29","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":7351,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10849:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7350,"name":"address","nodeType":"ElementaryTypeName","src":"10849:7:29","typeDescriptions":{}}},"id":7353,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10849:10:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7354,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7320,"src":"10861:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7349,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7412,"src":"10840:8:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":7355,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10840:29:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7356,"nodeType":"ExpressionStatement","src":"10840:29:29"},{"expression":{"id":7361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":7357,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6699,"src":"10880:9:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":7359,"indexExpression":{"id":7358,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7316,"src":"10890:4:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10880:15:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"31","id":7360,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10899:1:29","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10880:20:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7362,"nodeType":"ExpressionStatement","src":"10880:20:29"},{"expression":{"id":7367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":7363,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6699,"src":"10910:9:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":7365,"indexExpression":{"id":7364,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7318,"src":"10920:2:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10910:13:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":7366,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10927:1:29","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10910:18:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7368,"nodeType":"ExpressionStatement","src":"10910:18:29"},{"expression":{"id":7373,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":7369,"name":"_owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6695,"src":"10938:7:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":7371,"indexExpression":{"id":7370,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7320,"src":"10946:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10938:16:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":7372,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7318,"src":"10957:2:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10938:21:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7374,"nodeType":"ExpressionStatement","src":"10938:21:29"},{"eventCall":{"arguments":[{"id":7376,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7316,"src":"10984:4:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7377,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7318,"src":"10990:2:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7378,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7320,"src":"10994:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7375,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7544,"src":"10975:8:29","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":7379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10975:27:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7380,"nodeType":"EmitStatement","src":"10970:32:29"},{"expression":{"arguments":[{"id":7382,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7316,"src":"11033:4:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7383,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7318,"src":"11039:2:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7384,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7320,"src":"11043:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7381,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7528,"src":"11013:19:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":7385,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11013:38:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7386,"nodeType":"ExpressionStatement","src":"11013:38:29"}]},"documentation":{"id":7314,"nodeType":"StructuredDocumentation","src":"10135:313:29","text":" @dev Transfers `tokenId` from `from` to `to`.\n As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\n Requirements:\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n Emits a {Transfer} event."},"id":7388,"implemented":true,"kind":"function","modifiers":[],"name":"_transfer","nameLocation":"10462:9:29","nodeType":"FunctionDefinition","parameters":{"id":7321,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7316,"mutability":"mutable","name":"from","nameLocation":"10489:4:29","nodeType":"VariableDeclaration","scope":7388,"src":"10481:12:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7315,"name":"address","nodeType":"ElementaryTypeName","src":"10481:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7318,"mutability":"mutable","name":"to","nameLocation":"10511:2:29","nodeType":"VariableDeclaration","scope":7388,"src":"10503:10:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7317,"name":"address","nodeType":"ElementaryTypeName","src":"10503:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7320,"mutability":"mutable","name":"tokenId","nameLocation":"10531:7:29","nodeType":"VariableDeclaration","scope":7388,"src":"10523:15:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7319,"name":"uint256","nodeType":"ElementaryTypeName","src":"10523:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10471:73:29"},"returnParameters":{"id":7322,"nodeType":"ParameterList","parameters":[],"src":"10562:0:29"},"scope":7529,"src":"10453:605:29","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":7411,"nodeType":"Block","src":"11233:107:29","statements":[{"expression":{"id":7400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":7396,"name":"_tokenApprovals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6703,"src":"11243:15:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":7398,"indexExpression":{"id":7397,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7393,"src":"11259:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11243:24:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":7399,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7391,"src":"11270:2:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11243:29:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7401,"nodeType":"ExpressionStatement","src":"11243:29:29"},{"eventCall":{"arguments":[{"arguments":[{"id":7405,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7393,"src":"11311:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7403,"name":"ERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7529,"src":"11296:6:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721_$7529_$","typeString":"type(contract ERC721)"}},"id":7404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11303:7:29","memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":6809,"src":"11296:14:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":7406,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11296:23:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7407,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7391,"src":"11321:2:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7408,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7393,"src":"11325:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7402,"name":"Approval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7553,"src":"11287:8:29","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":7409,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11287:46:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7410,"nodeType":"EmitStatement","src":"11282:51:29"}]},"documentation":{"id":7389,"nodeType":"StructuredDocumentation","src":"11064:100:29","text":" @dev Approve `to` to operate on `tokenId`\n Emits a {Approval} event."},"id":7412,"implemented":true,"kind":"function","modifiers":[],"name":"_approve","nameLocation":"11178:8:29","nodeType":"FunctionDefinition","parameters":{"id":7394,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7391,"mutability":"mutable","name":"to","nameLocation":"11195:2:29","nodeType":"VariableDeclaration","scope":7412,"src":"11187:10:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7390,"name":"address","nodeType":"ElementaryTypeName","src":"11187:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7393,"mutability":"mutable","name":"tokenId","nameLocation":"11207:7:29","nodeType":"VariableDeclaration","scope":7412,"src":"11199:15:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7392,"name":"uint256","nodeType":"ElementaryTypeName","src":"11199:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11186:29:29"},"returnParameters":{"id":7395,"nodeType":"ParameterList","parameters":[],"src":"11233:0:29"},"scope":7529,"src":"11169:171:29","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":7443,"nodeType":"Block","src":"11598:184:29","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":7425,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7423,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7415,"src":"11616:5:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":7424,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7417,"src":"11625:8:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11616:17:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a20617070726f766520746f2063616c6c6572","id":7426,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11635:27:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05","typeString":"literal_string \"ERC721: approve to caller\""},"value":"ERC721: approve to caller"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05","typeString":"literal_string \"ERC721: approve to caller\""}],"id":7422,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"11608:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7427,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11608:55:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7428,"nodeType":"ExpressionStatement","src":"11608:55:29"},{"expression":{"id":7435,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":7429,"name":"_operatorApprovals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6709,"src":"11673:18:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":7432,"indexExpression":{"id":7430,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7415,"src":"11692:5:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11673:25:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":7433,"indexExpression":{"id":7431,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7417,"src":"11699:8:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11673:35:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":7434,"name":"approved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7419,"src":"11711:8:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"11673:46:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7436,"nodeType":"ExpressionStatement","src":"11673:46:29"},{"eventCall":{"arguments":[{"id":7438,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7415,"src":"11749:5:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7439,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7417,"src":"11756:8:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7440,"name":"approved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7419,"src":"11766:8:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":7437,"name":"ApprovalForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7562,"src":"11734:14:29","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$","typeString":"function (address,address,bool)"}},"id":7441,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11734:41:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7442,"nodeType":"EmitStatement","src":"11729:46:29"}]},"documentation":{"id":7413,"nodeType":"StructuredDocumentation","src":"11346:124:29","text":" @dev Approve `operator` to operate on all of `owner` tokens\n Emits a {ApprovalForAll} event."},"id":7444,"implemented":true,"kind":"function","modifiers":[],"name":"_setApprovalForAll","nameLocation":"11484:18:29","nodeType":"FunctionDefinition","parameters":{"id":7420,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7415,"mutability":"mutable","name":"owner","nameLocation":"11520:5:29","nodeType":"VariableDeclaration","scope":7444,"src":"11512:13:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7414,"name":"address","nodeType":"ElementaryTypeName","src":"11512:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7417,"mutability":"mutable","name":"operator","nameLocation":"11543:8:29","nodeType":"VariableDeclaration","scope":7444,"src":"11535:16:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7416,"name":"address","nodeType":"ElementaryTypeName","src":"11535:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7419,"mutability":"mutable","name":"approved","nameLocation":"11566:8:29","nodeType":"VariableDeclaration","scope":7444,"src":"11561:13:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7418,"name":"bool","nodeType":"ElementaryTypeName","src":"11561:4:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"11502:78:29"},"returnParameters":{"id":7421,"nodeType":"ParameterList","parameters":[],"src":"11598:0:29"},"scope":7529,"src":"11475:307:29","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":7505,"nodeType":"Block","src":"12491:622:29","statements":[{"condition":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":7458,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7449,"src":"12505:2:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12508:10:29","memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":7836,"src":"12505:13:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$attached_to$_t_address_$","typeString":"function (address) view returns (bool)"}},"id":7460,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12505:15:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":7503,"nodeType":"Block","src":"13071:36:29","statements":[{"expression":{"hexValue":"74727565","id":7501,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"13092:4:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":7457,"id":7502,"nodeType":"Return","src":"13085:11:29"}]},"id":7504,"nodeType":"IfStatement","src":"12501:606:29","trueBody":{"id":7500,"nodeType":"Block","src":"12522:543:29","statements":[{"clauses":[{"block":{"id":7480,"nodeType":"Block","src":"12637:91:29","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":7478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7474,"name":"retval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7472,"src":"12662:6:29","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":7475,"name":"IERC721Receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7663,"src":"12672:15:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721Receiver_$7663_$","typeString":"type(contract IERC721Receiver)"}},"id":7476,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12688:16:29","memberName":"onERC721Received","nodeType":"MemberAccess","referencedDeclaration":7662,"src":"12672:32:29","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$returns$_t_bytes4_$","typeString":"function IERC721Receiver.onERC721Received(address,address,uint256,bytes calldata) returns (bytes4)"}},"id":7477,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12705:8:29","memberName":"selector","nodeType":"MemberAccess","src":"12672:41:29","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"12662:51:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":7457,"id":7479,"nodeType":"Return","src":"12655:58:29"}]},"errorName":"","id":7481,"nodeType":"TryCatchClause","parameters":{"id":7473,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7472,"mutability":"mutable","name":"retval","nameLocation":"12629:6:29","nodeType":"VariableDeclaration","scope":7481,"src":"12622:13:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":7471,"name":"bytes4","nodeType":"ElementaryTypeName","src":"12622:6:29","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"12621:15:29"},"src":"12613:115:29"},{"block":{"id":7497,"nodeType":"Block","src":"12757:298:29","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7488,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":7485,"name":"reason","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7483,"src":"12779:6:29","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":7486,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12786:6:29","memberName":"length","nodeType":"MemberAccess","src":"12779:13:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":7487,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12796:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12779:18:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":7495,"nodeType":"Block","src":"12906:135:29","statements":[{"AST":{"nodeType":"YulBlock","src":"12937:86:29","statements":[{"expression":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12974:2:29","type":"","value":"32"},{"name":"reason","nodeType":"YulIdentifier","src":"12978:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12970:3:29"},"nodeType":"YulFunctionCall","src":"12970:15:29"},{"arguments":[{"name":"reason","nodeType":"YulIdentifier","src":"12993:6:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"12987:5:29"},"nodeType":"YulFunctionCall","src":"12987:13:29"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"12963:6:29"},"nodeType":"YulFunctionCall","src":"12963:38:29"},"nodeType":"YulExpressionStatement","src":"12963:38:29"}]},"evmVersion":"paris","externalReferences":[{"declaration":7483,"isOffset":false,"isSlot":false,"src":"12978:6:29","valueSize":1},{"declaration":7483,"isOffset":false,"isSlot":false,"src":"12993:6:29","valueSize":1}],"id":7494,"nodeType":"InlineAssembly","src":"12928:95:29"}]},"id":7496,"nodeType":"IfStatement","src":"12775:266:29","trueBody":{"id":7493,"nodeType":"Block","src":"12799:101:29","statements":[{"expression":{"arguments":[{"hexValue":"4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572","id":7490,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12828:52:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e","typeString":"literal_string \"ERC721: transfer to non ERC721Receiver implementer\""},"value":"ERC721: transfer to non ERC721Receiver implementer"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e","typeString":"literal_string \"ERC721: transfer to non ERC721Receiver implementer\""}],"id":7489,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"12821:6:29","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":7491,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12821:60:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7492,"nodeType":"ExpressionStatement","src":"12821:60:29"}]}}]},"errorName":"","id":7498,"nodeType":"TryCatchClause","parameters":{"id":7484,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7483,"mutability":"mutable","name":"reason","nameLocation":"12749:6:29","nodeType":"VariableDeclaration","scope":7498,"src":"12736:19:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7482,"name":"bytes","nodeType":"ElementaryTypeName","src":"12736:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"12735:21:29"},"src":"12729:326:29"}],"externalCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":7465,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8125,"src":"12577:10:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":7466,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12577:12:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7467,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7447,"src":"12591:4:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7468,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7451,"src":"12597:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7469,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7453,"src":"12606:5:29","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":7462,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7449,"src":"12556:2:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7461,"name":"IERC721Receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7663,"src":"12540:15:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721Receiver_$7663_$","typeString":"type(contract IERC721Receiver)"}},"id":7463,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12540:19:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC721Receiver_$7663","typeString":"contract IERC721Receiver"}},"id":7464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12560:16:29","memberName":"onERC721Received","nodeType":"MemberAccess","referencedDeclaration":7662,"src":"12540:36:29","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":7470,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12540:72:29","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":7499,"nodeType":"TryStatement","src":"12536:519:29"}]}}]},"documentation":{"id":7445,"nodeType":"StructuredDocumentation","src":"11788:542:29","text":" @dev Internal function to invoke {IERC721Receiver-onERC721Received} on a target address.\n The call is not executed if the target address is not a contract.\n @param from address representing the previous owner of the given token ID\n @param to target address that will receive the tokens\n @param tokenId uint256 ID of the token to be transferred\n @param _data bytes optional data to send along with the call\n @return bool whether the call correctly returned the expected magic value"},"id":7506,"implemented":true,"kind":"function","modifiers":[],"name":"_checkOnERC721Received","nameLocation":"12344:22:29","nodeType":"FunctionDefinition","parameters":{"id":7454,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7447,"mutability":"mutable","name":"from","nameLocation":"12384:4:29","nodeType":"VariableDeclaration","scope":7506,"src":"12376:12:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7446,"name":"address","nodeType":"ElementaryTypeName","src":"12376:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7449,"mutability":"mutable","name":"to","nameLocation":"12406:2:29","nodeType":"VariableDeclaration","scope":7506,"src":"12398:10:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7448,"name":"address","nodeType":"ElementaryTypeName","src":"12398:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7451,"mutability":"mutable","name":"tokenId","nameLocation":"12426:7:29","nodeType":"VariableDeclaration","scope":7506,"src":"12418:15:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7450,"name":"uint256","nodeType":"ElementaryTypeName","src":"12418:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7453,"mutability":"mutable","name":"_data","nameLocation":"12456:5:29","nodeType":"VariableDeclaration","scope":7506,"src":"12443:18:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7452,"name":"bytes","nodeType":"ElementaryTypeName","src":"12443:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"12366:101:29"},"returnParameters":{"id":7457,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7456,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7506,"src":"12485:4:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7455,"name":"bool","nodeType":"ElementaryTypeName","src":"12485:4:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"12484:6:29"},"scope":7529,"src":"12335:778:29","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":7516,"nodeType":"Block","src":"13789:2:29","statements":[]},"documentation":{"id":7507,"nodeType":"StructuredDocumentation","src":"13119:545:29","text":" @dev Hook that is called before any token transfer. This includes minting\n and burning.\n Calling conditions:\n - When `from` and `to` are both non-zero, ``from``'s `tokenId` will be\n transferred to `to`.\n - When `from` is zero, `tokenId` will be minted for `to`.\n - When `to` is zero, ``from``'s `tokenId` 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]."},"id":7517,"implemented":true,"kind":"function","modifiers":[],"name":"_beforeTokenTransfer","nameLocation":"13678:20:29","nodeType":"FunctionDefinition","parameters":{"id":7514,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7509,"mutability":"mutable","name":"from","nameLocation":"13716:4:29","nodeType":"VariableDeclaration","scope":7517,"src":"13708:12:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7508,"name":"address","nodeType":"ElementaryTypeName","src":"13708:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7511,"mutability":"mutable","name":"to","nameLocation":"13738:2:29","nodeType":"VariableDeclaration","scope":7517,"src":"13730:10:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7510,"name":"address","nodeType":"ElementaryTypeName","src":"13730:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7513,"mutability":"mutable","name":"tokenId","nameLocation":"13758:7:29","nodeType":"VariableDeclaration","scope":7517,"src":"13750:15:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7512,"name":"uint256","nodeType":"ElementaryTypeName","src":"13750:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13698:73:29"},"returnParameters":{"id":7515,"nodeType":"ParameterList","parameters":[],"src":"13789:0:29"},"scope":7529,"src":"13669:122:29","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":7527,"nodeType":"Block","src":"14282:2:29","statements":[]},"documentation":{"id":7518,"nodeType":"StructuredDocumentation","src":"13797:361:29","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.\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]."},"id":7528,"implemented":true,"kind":"function","modifiers":[],"name":"_afterTokenTransfer","nameLocation":"14172:19:29","nodeType":"FunctionDefinition","parameters":{"id":7525,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7520,"mutability":"mutable","name":"from","nameLocation":"14209:4:29","nodeType":"VariableDeclaration","scope":7528,"src":"14201:12:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7519,"name":"address","nodeType":"ElementaryTypeName","src":"14201:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7522,"mutability":"mutable","name":"to","nameLocation":"14231:2:29","nodeType":"VariableDeclaration","scope":7528,"src":"14223:10:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7521,"name":"address","nodeType":"ElementaryTypeName","src":"14223:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7524,"mutability":"mutable","name":"tokenId","nameLocation":"14251:7:29","nodeType":"VariableDeclaration","scope":7528,"src":"14243:15:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7523,"name":"uint256","nodeType":"ElementaryTypeName","src":"14243:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14191:73:29"},"returnParameters":{"id":7526,"nodeType":"ParameterList","parameters":[],"src":"14282:0:29"},"scope":7529,"src":"14163:121:29","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":7530,"src":"628:13658:29","usedErrors":[]}],"src":"107:14180:29"}},"@openzeppelin/contracts/token/ERC721/IERC721.sol":{"id":30,"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721.sol","exportedSymbols":{"IERC165":[8448],"IERC721":[7645]},"id":7646,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":7531,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"108:23:30"},{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","file":"../../utils/introspection/IERC165.sol","id":7532,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7646,"sourceUnit":8449,"src":"133:47:30","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":7534,"name":"IERC165","nameLocations":["271:7:30"],"nodeType":"IdentifierPath","referencedDeclaration":8448,"src":"271:7:30"},"id":7535,"nodeType":"InheritanceSpecifier","src":"271:7:30"}],"canonicalName":"IERC721","contractDependencies":[],"contractKind":"interface","documentation":{"id":7533,"nodeType":"StructuredDocumentation","src":"182:67:30","text":" @dev Required interface of an ERC721 compliant contract."},"fullyImplemented":false,"id":7645,"linearizedBaseContracts":[7645,8448],"name":"IERC721","nameLocation":"260:7:30","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":7536,"nodeType":"StructuredDocumentation","src":"285:88:30","text":" @dev Emitted when `tokenId` token is transferred from `from` to `to`."},"eventSelector":"ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","id":7544,"name":"Transfer","nameLocation":"384:8:30","nodeType":"EventDefinition","parameters":{"id":7543,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7538,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"409:4:30","nodeType":"VariableDeclaration","scope":7544,"src":"393:20:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7537,"name":"address","nodeType":"ElementaryTypeName","src":"393:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7540,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"431:2:30","nodeType":"VariableDeclaration","scope":7544,"src":"415:18:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7539,"name":"address","nodeType":"ElementaryTypeName","src":"415:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7542,"indexed":true,"mutability":"mutable","name":"tokenId","nameLocation":"451:7:30","nodeType":"VariableDeclaration","scope":7544,"src":"435:23:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7541,"name":"uint256","nodeType":"ElementaryTypeName","src":"435:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"392:67:30"},"src":"378:82:30"},{"anonymous":false,"documentation":{"id":7545,"nodeType":"StructuredDocumentation","src":"466:94:30","text":" @dev Emitted when `owner` enables `approved` to manage the `tokenId` token."},"eventSelector":"8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","id":7553,"name":"Approval","nameLocation":"571:8:30","nodeType":"EventDefinition","parameters":{"id":7552,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7547,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"596:5:30","nodeType":"VariableDeclaration","scope":7553,"src":"580:21:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7546,"name":"address","nodeType":"ElementaryTypeName","src":"580:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7549,"indexed":true,"mutability":"mutable","name":"approved","nameLocation":"619:8:30","nodeType":"VariableDeclaration","scope":7553,"src":"603:24:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7548,"name":"address","nodeType":"ElementaryTypeName","src":"603:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7551,"indexed":true,"mutability":"mutable","name":"tokenId","nameLocation":"645:7:30","nodeType":"VariableDeclaration","scope":7553,"src":"629:23:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7550,"name":"uint256","nodeType":"ElementaryTypeName","src":"629:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"579:74:30"},"src":"565:89:30"},{"anonymous":false,"documentation":{"id":7554,"nodeType":"StructuredDocumentation","src":"660:117:30","text":" @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets."},"eventSelector":"17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31","id":7562,"name":"ApprovalForAll","nameLocation":"788:14:30","nodeType":"EventDefinition","parameters":{"id":7561,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7556,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"819:5:30","nodeType":"VariableDeclaration","scope":7562,"src":"803:21:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7555,"name":"address","nodeType":"ElementaryTypeName","src":"803:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7558,"indexed":true,"mutability":"mutable","name":"operator","nameLocation":"842:8:30","nodeType":"VariableDeclaration","scope":7562,"src":"826:24:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7557,"name":"address","nodeType":"ElementaryTypeName","src":"826:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7560,"indexed":false,"mutability":"mutable","name":"approved","nameLocation":"857:8:30","nodeType":"VariableDeclaration","scope":7562,"src":"852:13:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7559,"name":"bool","nodeType":"ElementaryTypeName","src":"852:4:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"802:64:30"},"src":"782:85:30"},{"documentation":{"id":7563,"nodeType":"StructuredDocumentation","src":"873:76:30","text":" @dev Returns the number of tokens in ``owner``'s account."},"functionSelector":"70a08231","id":7570,"implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"963:9:30","nodeType":"FunctionDefinition","parameters":{"id":7566,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7565,"mutability":"mutable","name":"owner","nameLocation":"981:5:30","nodeType":"VariableDeclaration","scope":7570,"src":"973:13:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7564,"name":"address","nodeType":"ElementaryTypeName","src":"973:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"972:15:30"},"returnParameters":{"id":7569,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7568,"mutability":"mutable","name":"balance","nameLocation":"1019:7:30","nodeType":"VariableDeclaration","scope":7570,"src":"1011:15:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7567,"name":"uint256","nodeType":"ElementaryTypeName","src":"1011:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1010:17:30"},"scope":7645,"src":"954:74:30","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":7571,"nodeType":"StructuredDocumentation","src":"1034:131:30","text":" @dev Returns the owner of the `tokenId` token.\n Requirements:\n - `tokenId` must exist."},"functionSelector":"6352211e","id":7578,"implemented":false,"kind":"function","modifiers":[],"name":"ownerOf","nameLocation":"1179:7:30","nodeType":"FunctionDefinition","parameters":{"id":7574,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7573,"mutability":"mutable","name":"tokenId","nameLocation":"1195:7:30","nodeType":"VariableDeclaration","scope":7578,"src":"1187:15:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7572,"name":"uint256","nodeType":"ElementaryTypeName","src":"1187:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1186:17:30"},"returnParameters":{"id":7577,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7576,"mutability":"mutable","name":"owner","nameLocation":"1235:5:30","nodeType":"VariableDeclaration","scope":7578,"src":"1227:13:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7575,"name":"address","nodeType":"ElementaryTypeName","src":"1227:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1226:15:30"},"scope":7645,"src":"1170:72:30","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":7579,"nodeType":"StructuredDocumentation","src":"1248:556:30","text":" @dev Safely transfers `tokenId` token from `from` to `to`.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event."},"functionSelector":"b88d4fde","id":7590,"implemented":false,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"1818:16:30","nodeType":"FunctionDefinition","parameters":{"id":7588,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7581,"mutability":"mutable","name":"from","nameLocation":"1852:4:30","nodeType":"VariableDeclaration","scope":7590,"src":"1844:12:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7580,"name":"address","nodeType":"ElementaryTypeName","src":"1844:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7583,"mutability":"mutable","name":"to","nameLocation":"1874:2:30","nodeType":"VariableDeclaration","scope":7590,"src":"1866:10:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7582,"name":"address","nodeType":"ElementaryTypeName","src":"1866:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7585,"mutability":"mutable","name":"tokenId","nameLocation":"1894:7:30","nodeType":"VariableDeclaration","scope":7590,"src":"1886:15:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7584,"name":"uint256","nodeType":"ElementaryTypeName","src":"1886:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7587,"mutability":"mutable","name":"data","nameLocation":"1926:4:30","nodeType":"VariableDeclaration","scope":7590,"src":"1911:19:30","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":7586,"name":"bytes","nodeType":"ElementaryTypeName","src":"1911:5:30","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1834:102:30"},"returnParameters":{"id":7589,"nodeType":"ParameterList","parameters":[],"src":"1945:0:30"},"scope":7645,"src":"1809:137:30","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":7591,"nodeType":"StructuredDocumentation","src":"1952:690:30","text":" @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event."},"functionSelector":"42842e0e","id":7600,"implemented":false,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"2656:16:30","nodeType":"FunctionDefinition","parameters":{"id":7598,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7593,"mutability":"mutable","name":"from","nameLocation":"2690:4:30","nodeType":"VariableDeclaration","scope":7600,"src":"2682:12:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7592,"name":"address","nodeType":"ElementaryTypeName","src":"2682:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7595,"mutability":"mutable","name":"to","nameLocation":"2712:2:30","nodeType":"VariableDeclaration","scope":7600,"src":"2704:10:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7594,"name":"address","nodeType":"ElementaryTypeName","src":"2704:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7597,"mutability":"mutable","name":"tokenId","nameLocation":"2732:7:30","nodeType":"VariableDeclaration","scope":7600,"src":"2724:15:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7596,"name":"uint256","nodeType":"ElementaryTypeName","src":"2724:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2672:73:30"},"returnParameters":{"id":7599,"nodeType":"ParameterList","parameters":[],"src":"2754:0:30"},"scope":7645,"src":"2647:108:30","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":7601,"nodeType":"StructuredDocumentation","src":"2761:504:30","text":" @dev Transfers `tokenId` token from `from` to `to`.\n WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n Emits a {Transfer} event."},"functionSelector":"23b872dd","id":7610,"implemented":false,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"3279:12:30","nodeType":"FunctionDefinition","parameters":{"id":7608,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7603,"mutability":"mutable","name":"from","nameLocation":"3309:4:30","nodeType":"VariableDeclaration","scope":7610,"src":"3301:12:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7602,"name":"address","nodeType":"ElementaryTypeName","src":"3301:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7605,"mutability":"mutable","name":"to","nameLocation":"3331:2:30","nodeType":"VariableDeclaration","scope":7610,"src":"3323:10:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7604,"name":"address","nodeType":"ElementaryTypeName","src":"3323:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7607,"mutability":"mutable","name":"tokenId","nameLocation":"3351:7:30","nodeType":"VariableDeclaration","scope":7610,"src":"3343:15:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7606,"name":"uint256","nodeType":"ElementaryTypeName","src":"3343:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3291:73:30"},"returnParameters":{"id":7609,"nodeType":"ParameterList","parameters":[],"src":"3373:0:30"},"scope":7645,"src":"3270:104:30","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":7611,"nodeType":"StructuredDocumentation","src":"3380:452:30","text":" @dev Gives permission to `to` to transfer `tokenId` token to another account.\n The approval is cleared when the token is transferred.\n Only a single account can be approved at a time, so approving the zero address clears previous approvals.\n Requirements:\n - The caller must own the token or be an approved operator.\n - `tokenId` must exist.\n Emits an {Approval} event."},"functionSelector":"095ea7b3","id":7618,"implemented":false,"kind":"function","modifiers":[],"name":"approve","nameLocation":"3846:7:30","nodeType":"FunctionDefinition","parameters":{"id":7616,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7613,"mutability":"mutable","name":"to","nameLocation":"3862:2:30","nodeType":"VariableDeclaration","scope":7618,"src":"3854:10:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7612,"name":"address","nodeType":"ElementaryTypeName","src":"3854:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7615,"mutability":"mutable","name":"tokenId","nameLocation":"3874:7:30","nodeType":"VariableDeclaration","scope":7618,"src":"3866:15:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7614,"name":"uint256","nodeType":"ElementaryTypeName","src":"3866:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3853:29:30"},"returnParameters":{"id":7617,"nodeType":"ParameterList","parameters":[],"src":"3891:0:30"},"scope":7645,"src":"3837:55:30","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":7619,"nodeType":"StructuredDocumentation","src":"3898:309:30","text":" @dev Approve or remove `operator` as an operator for the caller.\n Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\n Requirements:\n - The `operator` cannot be the caller.\n Emits an {ApprovalForAll} event."},"functionSelector":"a22cb465","id":7626,"implemented":false,"kind":"function","modifiers":[],"name":"setApprovalForAll","nameLocation":"4221:17:30","nodeType":"FunctionDefinition","parameters":{"id":7624,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7621,"mutability":"mutable","name":"operator","nameLocation":"4247:8:30","nodeType":"VariableDeclaration","scope":7626,"src":"4239:16:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7620,"name":"address","nodeType":"ElementaryTypeName","src":"4239:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7623,"mutability":"mutable","name":"_approved","nameLocation":"4262:9:30","nodeType":"VariableDeclaration","scope":7626,"src":"4257:14:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7622,"name":"bool","nodeType":"ElementaryTypeName","src":"4257:4:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4238:34:30"},"returnParameters":{"id":7625,"nodeType":"ParameterList","parameters":[],"src":"4281:0:30"},"scope":7645,"src":"4212:70:30","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":7627,"nodeType":"StructuredDocumentation","src":"4288:139:30","text":" @dev Returns the account approved for `tokenId` token.\n Requirements:\n - `tokenId` must exist."},"functionSelector":"081812fc","id":7634,"implemented":false,"kind":"function","modifiers":[],"name":"getApproved","nameLocation":"4441:11:30","nodeType":"FunctionDefinition","parameters":{"id":7630,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7629,"mutability":"mutable","name":"tokenId","nameLocation":"4461:7:30","nodeType":"VariableDeclaration","scope":7634,"src":"4453:15:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7628,"name":"uint256","nodeType":"ElementaryTypeName","src":"4453:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4452:17:30"},"returnParameters":{"id":7633,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7632,"mutability":"mutable","name":"operator","nameLocation":"4501:8:30","nodeType":"VariableDeclaration","scope":7634,"src":"4493:16:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7631,"name":"address","nodeType":"ElementaryTypeName","src":"4493:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4492:18:30"},"scope":7645,"src":"4432:79:30","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":7635,"nodeType":"StructuredDocumentation","src":"4517:138:30","text":" @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\n See {setApprovalForAll}"},"functionSelector":"e985e9c5","id":7644,"implemented":false,"kind":"function","modifiers":[],"name":"isApprovedForAll","nameLocation":"4669:16:30","nodeType":"FunctionDefinition","parameters":{"id":7640,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7637,"mutability":"mutable","name":"owner","nameLocation":"4694:5:30","nodeType":"VariableDeclaration","scope":7644,"src":"4686:13:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7636,"name":"address","nodeType":"ElementaryTypeName","src":"4686:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7639,"mutability":"mutable","name":"operator","nameLocation":"4709:8:30","nodeType":"VariableDeclaration","scope":7644,"src":"4701:16:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7638,"name":"address","nodeType":"ElementaryTypeName","src":"4701:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4685:33:30"},"returnParameters":{"id":7643,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7642,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7644,"src":"4742:4:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7641,"name":"bool","nodeType":"ElementaryTypeName","src":"4742:4:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4741:6:30"},"scope":7645,"src":"4660:88:30","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":7646,"src":"250:4500:30","usedErrors":[]}],"src":"108:4643:30"}},"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol":{"id":31,"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol","exportedSymbols":{"IERC721Receiver":[7663]},"id":7664,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":7647,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"116:23:31"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC721Receiver","contractDependencies":[],"contractKind":"interface","documentation":{"id":7648,"nodeType":"StructuredDocumentation","src":"141:152:31","text":" @title ERC721 token receiver interface\n @dev Interface for any contract that wants to support safeTransfers\n from ERC721 asset contracts."},"fullyImplemented":false,"id":7663,"linearizedBaseContracts":[7663],"name":"IERC721Receiver","nameLocation":"304:15:31","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":7649,"nodeType":"StructuredDocumentation","src":"326:493:31","text":" @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\n by `operator` from `from`, this function is called.\n It must return its Solidity selector to confirm the token transfer.\n If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted.\n The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`."},"functionSelector":"150b7a02","id":7662,"implemented":false,"kind":"function","modifiers":[],"name":"onERC721Received","nameLocation":"833:16:31","nodeType":"FunctionDefinition","parameters":{"id":7658,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7651,"mutability":"mutable","name":"operator","nameLocation":"867:8:31","nodeType":"VariableDeclaration","scope":7662,"src":"859:16:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7650,"name":"address","nodeType":"ElementaryTypeName","src":"859:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7653,"mutability":"mutable","name":"from","nameLocation":"893:4:31","nodeType":"VariableDeclaration","scope":7662,"src":"885:12:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7652,"name":"address","nodeType":"ElementaryTypeName","src":"885:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7655,"mutability":"mutable","name":"tokenId","nameLocation":"915:7:31","nodeType":"VariableDeclaration","scope":7662,"src":"907:15:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7654,"name":"uint256","nodeType":"ElementaryTypeName","src":"907:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7657,"mutability":"mutable","name":"data","nameLocation":"947:4:31","nodeType":"VariableDeclaration","scope":7662,"src":"932:19:31","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":7656,"name":"bytes","nodeType":"ElementaryTypeName","src":"932:5:31","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"849:108:31"},"returnParameters":{"id":7661,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7660,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7662,"src":"976:6:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":7659,"name":"bytes4","nodeType":"ElementaryTypeName","src":"976:6:31","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"975:8:31"},"scope":7663,"src":"824:160:31","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":7664,"src":"294:692:31","usedErrors":[]}],"src":"116:871:31"}},"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol":{"id":32,"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol","exportedSymbols":{"Address":[8113],"Context":[8135],"ERC165":[8436],"ERC721":[7529],"ERC721URIStorage":[7791],"IERC165":[8448],"IERC721":[7645],"IERC721Metadata":[7818],"IERC721Receiver":[7663],"Strings":[8412]},"id":7792,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":7665,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"113:23:32"},{"absolutePath":"@openzeppelin/contracts/token/ERC721/ERC721.sol","file":"../ERC721.sol","id":7666,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7792,"sourceUnit":7530,"src":"138:23:32","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":7668,"name":"ERC721","nameLocations":["271:6:32"],"nodeType":"IdentifierPath","referencedDeclaration":7529,"src":"271:6:32"},"id":7669,"nodeType":"InheritanceSpecifier","src":"271:6:32"}],"canonicalName":"ERC721URIStorage","contractDependencies":[],"contractKind":"contract","documentation":{"id":7667,"nodeType":"StructuredDocumentation","src":"163:69:32","text":" @dev ERC721 token with storage based token URI management."},"fullyImplemented":false,"id":7791,"linearizedBaseContracts":[7791,7529,7818,7645,8436,8448,8135],"name":"ERC721URIStorage","nameLocation":"251:16:32","nodeType":"ContractDefinition","nodes":[{"global":false,"id":7672,"libraryName":{"id":7670,"name":"Strings","nameLocations":["290:7:32"],"nodeType":"IdentifierPath","referencedDeclaration":8412,"src":"290:7:32"},"nodeType":"UsingForDirective","src":"284:26:32","typeName":{"id":7671,"name":"uint256","nodeType":"ElementaryTypeName","src":"302:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"constant":false,"id":7676,"mutability":"mutable","name":"_tokenURIs","nameLocation":"390:10:32","nodeType":"VariableDeclaration","scope":7791,"src":"355:45:32","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_string_storage_$","typeString":"mapping(uint256 => string)"},"typeName":{"id":7675,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":7673,"name":"uint256","nodeType":"ElementaryTypeName","src":"363:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"355:26:32","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_string_storage_$","typeString":"mapping(uint256 => string)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":7674,"name":"string","nodeType":"ElementaryTypeName","src":"374:6:32","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}}},"visibility":"private"},{"baseFunctions":[6871],"body":{"id":7737,"nodeType":"Block","src":"555:575:32","statements":[{"expression":{"arguments":[{"arguments":[{"id":7687,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7679,"src":"581:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7686,"name":"_exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7102,"src":"573:7:32","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":7688,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"573:16:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524337323155524953746f726167653a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e","id":7689,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"591:51:32","typeDescriptions":{"typeIdentifier":"t_stringliteral_8e9ed1638ba7e2d59e03d0957c9339381732ac84d73f65c86c45db1467eafa2a","typeString":"literal_string \"ERC721URIStorage: URI query for nonexistent token\""},"value":"ERC721URIStorage: URI query for nonexistent token"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8e9ed1638ba7e2d59e03d0957c9339381732ac84d73f65c86c45db1467eafa2a","typeString":"literal_string \"ERC721URIStorage: URI query for nonexistent token\""}],"id":7685,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"565:7:32","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7690,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"565:78:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7691,"nodeType":"ExpressionStatement","src":"565:78:32"},{"assignments":[7693],"declarations":[{"constant":false,"id":7693,"mutability":"mutable","name":"_tokenURI","nameLocation":"668:9:32","nodeType":"VariableDeclaration","scope":7737,"src":"654:23:32","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7692,"name":"string","nodeType":"ElementaryTypeName","src":"654:6:32","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":7697,"initialValue":{"baseExpression":{"id":7694,"name":"_tokenURIs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7676,"src":"680:10:32","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_string_storage_$","typeString":"mapping(uint256 => string storage ref)"}},"id":7696,"indexExpression":{"id":7695,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7679,"src":"691:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"680:19:32","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"VariableDeclarationStatement","src":"654:45:32"},{"assignments":[7699],"declarations":[{"constant":false,"id":7699,"mutability":"mutable","name":"base","nameLocation":"723:4:32","nodeType":"VariableDeclaration","scope":7737,"src":"709:18:32","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7698,"name":"string","nodeType":"ElementaryTypeName","src":"709:6:32","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":7702,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":7700,"name":"_baseURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6880,"src":"730:8:32","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_string_memory_ptr_$","typeString":"function () view returns (string memory)"}},"id":7701,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"730:10:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"709:31:32"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7709,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":7705,"name":"base","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7699,"src":"819:4:32","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":7704,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"813:5:32","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":7703,"name":"bytes","nodeType":"ElementaryTypeName","src":"813:5:32","typeDescriptions":{}}},"id":7706,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"813:11:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":7707,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"825:6:32","memberName":"length","nodeType":"MemberAccess","src":"813:18:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":7708,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"835:1:32","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"813:23:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7713,"nodeType":"IfStatement","src":"809:70:32","trueBody":{"id":7712,"nodeType":"Block","src":"838:41:32","statements":[{"expression":{"id":7710,"name":"_tokenURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7693,"src":"859:9:32","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":7684,"id":7711,"nodeType":"Return","src":"852:16:32"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7720,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":7716,"name":"_tokenURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7693,"src":"987:9:32","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":7715,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"981:5:32","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":7714,"name":"bytes","nodeType":"ElementaryTypeName","src":"981:5:32","typeDescriptions":{}}},"id":7717,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"981:16:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":7718,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"998:6:32","memberName":"length","nodeType":"MemberAccess","src":"981:23:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":7719,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1007:1:32","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"981:27:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7731,"nodeType":"IfStatement","src":"977:106:32","trueBody":{"id":7730,"nodeType":"Block","src":"1010:73:32","statements":[{"expression":{"arguments":[{"arguments":[{"id":7725,"name":"base","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7699,"src":"1055:4:32","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7726,"name":"_tokenURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7693,"src":"1061:9:32","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":7723,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1038:3:32","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7724,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1042:12:32","memberName":"encodePacked","nodeType":"MemberAccess","src":"1038:16:32","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":7727,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1038:33:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7722,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1031:6:32","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":7721,"name":"string","nodeType":"ElementaryTypeName","src":"1031:6:32","typeDescriptions":{}}},"id":7728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1031:41:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":7684,"id":7729,"nodeType":"Return","src":"1024:48:32"}]}},{"expression":{"arguments":[{"id":7734,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7679,"src":"1115:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7732,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1100:5:32","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_ERC721URIStorage_$7791_$","typeString":"type(contract super ERC721URIStorage)"}},"id":7733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1106:8:32","memberName":"tokenURI","nodeType":"MemberAccess","referencedDeclaration":6871,"src":"1100:14:32","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) view returns (string memory)"}},"id":7735,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1100:23:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":7684,"id":7736,"nodeType":"Return","src":"1093:30:32"}]},"documentation":{"id":7677,"nodeType":"StructuredDocumentation","src":"407:55:32","text":" @dev See {IERC721Metadata-tokenURI}."},"functionSelector":"c87b56dd","id":7738,"implemented":true,"kind":"function","modifiers":[],"name":"tokenURI","nameLocation":"476:8:32","nodeType":"FunctionDefinition","overrides":{"id":7681,"nodeType":"OverrideSpecifier","overrides":[],"src":"522:8:32"},"parameters":{"id":7680,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7679,"mutability":"mutable","name":"tokenId","nameLocation":"493:7:32","nodeType":"VariableDeclaration","scope":7738,"src":"485:15:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7678,"name":"uint256","nodeType":"ElementaryTypeName","src":"485:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"484:17:32"},"returnParameters":{"id":7684,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7683,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7738,"src":"540:13:32","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7682,"name":"string","nodeType":"ElementaryTypeName","src":"540:6:32","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"539:15:32"},"scope":7791,"src":"467:663:32","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":7759,"nodeType":"Block","src":"1358:133:32","statements":[{"expression":{"arguments":[{"arguments":[{"id":7748,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7741,"src":"1384:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7747,"name":"_exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7102,"src":"1376:7:32","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":7749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1376:16:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524337323155524953746f726167653a2055524920736574206f66206e6f6e6578697374656e7420746f6b656e","id":7750,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1394:48:32","typeDescriptions":{"typeIdentifier":"t_stringliteral_7521de1f20ce4d7bb86b61090bad73a87315a1f4baff36cc352901c7777280c4","typeString":"literal_string \"ERC721URIStorage: URI set of nonexistent token\""},"value":"ERC721URIStorage: URI set of nonexistent token"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7521de1f20ce4d7bb86b61090bad73a87315a1f4baff36cc352901c7777280c4","typeString":"literal_string \"ERC721URIStorage: URI set of nonexistent token\""}],"id":7746,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1368:7:32","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7751,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1368:75:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7752,"nodeType":"ExpressionStatement","src":"1368:75:32"},{"expression":{"id":7757,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":7753,"name":"_tokenURIs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7676,"src":"1453:10:32","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_string_storage_$","typeString":"mapping(uint256 => string storage ref)"}},"id":7755,"indexExpression":{"id":7754,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7741,"src":"1464:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1453:19:32","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":7756,"name":"_tokenURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7743,"src":"1475:9:32","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"1453:31:32","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":7758,"nodeType":"ExpressionStatement","src":"1453:31:32"}]},"documentation":{"id":7739,"nodeType":"StructuredDocumentation","src":"1136:136:32","text":" @dev Sets `_tokenURI` as the tokenURI of `tokenId`.\n Requirements:\n - `tokenId` must exist."},"id":7760,"implemented":true,"kind":"function","modifiers":[],"name":"_setTokenURI","nameLocation":"1286:12:32","nodeType":"FunctionDefinition","parameters":{"id":7744,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7741,"mutability":"mutable","name":"tokenId","nameLocation":"1307:7:32","nodeType":"VariableDeclaration","scope":7760,"src":"1299:15:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7740,"name":"uint256","nodeType":"ElementaryTypeName","src":"1299:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7743,"mutability":"mutable","name":"_tokenURI","nameLocation":"1330:9:32","nodeType":"VariableDeclaration","scope":7760,"src":"1316:23:32","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7742,"name":"string","nodeType":"ElementaryTypeName","src":"1316:6:32","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1298:42:32"},"returnParameters":{"id":7745,"nodeType":"ParameterList","parameters":[],"src":"1358:0:32"},"scope":7791,"src":"1277:214:32","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"baseFunctions":[7313],"body":{"id":7789,"nodeType":"Block","src":"1766:142:32","statements":[{"expression":{"arguments":[{"id":7770,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7763,"src":"1788:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7767,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1776:5:32","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_ERC721URIStorage_$7791_$","typeString":"type(contract super ERC721URIStorage)"}},"id":7769,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1782:5:32","memberName":"_burn","nodeType":"MemberAccess","referencedDeclaration":7313,"src":"1776:11:32","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":7771,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1776:20:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7772,"nodeType":"ExpressionStatement","src":"1776:20:32"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7781,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"baseExpression":{"id":7775,"name":"_tokenURIs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7676,"src":"1817:10:32","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_string_storage_$","typeString":"mapping(uint256 => string storage ref)"}},"id":7777,"indexExpression":{"id":7776,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7763,"src":"1828:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1817:19:32","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}],"id":7774,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1811:5:32","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":7773,"name":"bytes","nodeType":"ElementaryTypeName","src":"1811:5:32","typeDescriptions":{}}},"id":7778,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1811:26:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes storage pointer"}},"id":7779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1838:6:32","memberName":"length","nodeType":"MemberAccess","src":"1811:33:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":7780,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1848:1:32","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1811:38:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7788,"nodeType":"IfStatement","src":"1807:95:32","trueBody":{"id":7787,"nodeType":"Block","src":"1851:51:32","statements":[{"expression":{"id":7785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"1865:26:32","subExpression":{"baseExpression":{"id":7782,"name":"_tokenURIs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7676,"src":"1872:10:32","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_string_storage_$","typeString":"mapping(uint256 => string storage ref)"}},"id":7784,"indexExpression":{"id":7783,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7763,"src":"1883:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1872:19:32","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7786,"nodeType":"ExpressionStatement","src":"1865:26:32"}]}}]},"documentation":{"id":7761,"nodeType":"StructuredDocumentation","src":"1497:206:32","text":" @dev Destroys `tokenId`.\n The approval is cleared when the token is burned.\n Requirements:\n - `tokenId` must exist.\n Emits a {Transfer} event."},"id":7790,"implemented":true,"kind":"function","modifiers":[],"name":"_burn","nameLocation":"1717:5:32","nodeType":"FunctionDefinition","overrides":{"id":7765,"nodeType":"OverrideSpecifier","overrides":[],"src":"1757:8:32"},"parameters":{"id":7764,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7763,"mutability":"mutable","name":"tokenId","nameLocation":"1731:7:32","nodeType":"VariableDeclaration","scope":7790,"src":"1723:15:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7762,"name":"uint256","nodeType":"ElementaryTypeName","src":"1723:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1722:17:32"},"returnParameters":{"id":7766,"nodeType":"ParameterList","parameters":[],"src":"1766:0:32"},"scope":7791,"src":"1708:200:32","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":7792,"src":"233:1677:32","usedErrors":[]}],"src":"113:1798:32"}},"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"id":33,"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol","exportedSymbols":{"IERC165":[8448],"IERC721":[7645],"IERC721Metadata":[7818]},"id":7819,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":7793,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"112:23:33"},{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721.sol","file":"../IERC721.sol","id":7794,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7819,"sourceUnit":7646,"src":"137:24:33","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":7796,"name":"IERC721","nameLocations":["326:7:33"],"nodeType":"IdentifierPath","referencedDeclaration":7645,"src":"326:7:33"},"id":7797,"nodeType":"InheritanceSpecifier","src":"326:7:33"}],"canonicalName":"IERC721Metadata","contractDependencies":[],"contractKind":"interface","documentation":{"id":7795,"nodeType":"StructuredDocumentation","src":"163:133:33","text":" @title ERC-721 Non-Fungible Token Standard, optional metadata extension\n @dev See https://eips.ethereum.org/EIPS/eip-721"},"fullyImplemented":false,"id":7818,"linearizedBaseContracts":[7818,7645,8448],"name":"IERC721Metadata","nameLocation":"307:15:33","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":7798,"nodeType":"StructuredDocumentation","src":"340:58:33","text":" @dev Returns the token collection name."},"functionSelector":"06fdde03","id":7803,"implemented":false,"kind":"function","modifiers":[],"name":"name","nameLocation":"412:4:33","nodeType":"FunctionDefinition","parameters":{"id":7799,"nodeType":"ParameterList","parameters":[],"src":"416:2:33"},"returnParameters":{"id":7802,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7801,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7803,"src":"442:13:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7800,"name":"string","nodeType":"ElementaryTypeName","src":"442:6:33","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"441:15:33"},"scope":7818,"src":"403:54:33","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":7804,"nodeType":"StructuredDocumentation","src":"463:60:33","text":" @dev Returns the token collection symbol."},"functionSelector":"95d89b41","id":7809,"implemented":false,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"537:6:33","nodeType":"FunctionDefinition","parameters":{"id":7805,"nodeType":"ParameterList","parameters":[],"src":"543:2:33"},"returnParameters":{"id":7808,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7807,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7809,"src":"569:13:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7806,"name":"string","nodeType":"ElementaryTypeName","src":"569:6:33","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"568:15:33"},"scope":7818,"src":"528:56:33","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":7810,"nodeType":"StructuredDocumentation","src":"590:90:33","text":" @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token."},"functionSelector":"c87b56dd","id":7817,"implemented":false,"kind":"function","modifiers":[],"name":"tokenURI","nameLocation":"694:8:33","nodeType":"FunctionDefinition","parameters":{"id":7813,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7812,"mutability":"mutable","name":"tokenId","nameLocation":"711:7:33","nodeType":"VariableDeclaration","scope":7817,"src":"703:15:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7811,"name":"uint256","nodeType":"ElementaryTypeName","src":"703:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"702:17:33"},"returnParameters":{"id":7816,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7815,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7817,"src":"743:13:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7814,"name":"string","nodeType":"ElementaryTypeName","src":"743:6:33","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"742:15:33"},"scope":7818,"src":"685:73:33","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":7819,"src":"297:463:33","usedErrors":[]}],"src":"112:649:33"}},"@openzeppelin/contracts/utils/Address.sol":{"id":34,"ast":{"absolutePath":"@openzeppelin/contracts/utils/Address.sol","exportedSymbols":{"Address":[8113]},"id":8114,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":7820,"literals":["solidity","^","0.8",".1"],"nodeType":"PragmaDirective","src":"101:23:34"},{"abstract":false,"baseContracts":[],"canonicalName":"Address","contractDependencies":[],"contractKind":"library","documentation":{"id":7821,"nodeType":"StructuredDocumentation","src":"126:67:34","text":" @dev Collection of functions related to the address type"},"fullyImplemented":true,"id":8113,"linearizedBaseContracts":[8113],"name":"Address","nameLocation":"202:7:34","nodeType":"ContractDefinition","nodes":[{"body":{"id":7835,"nodeType":"Block","src":"1241:254:34","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":7829,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7824,"src":"1465:7:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1473:4:34","memberName":"code","nodeType":"MemberAccess","src":"1465:12:34","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":7831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1478:6:34","memberName":"length","nodeType":"MemberAccess","src":"1465:19:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":7832,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1487:1:34","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1465:23:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":7828,"id":7834,"nodeType":"Return","src":"1458:30:34"}]},"documentation":{"id":7822,"nodeType":"StructuredDocumentation","src":"216:954:34","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 ===="},"id":7836,"implemented":true,"kind":"function","modifiers":[],"name":"isContract","nameLocation":"1184:10:34","nodeType":"FunctionDefinition","parameters":{"id":7825,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7824,"mutability":"mutable","name":"account","nameLocation":"1203:7:34","nodeType":"VariableDeclaration","scope":7836,"src":"1195:15:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7823,"name":"address","nodeType":"ElementaryTypeName","src":"1195:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1194:17:34"},"returnParameters":{"id":7828,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7827,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7836,"src":"1235:4:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7826,"name":"bool","nodeType":"ElementaryTypeName","src":"1235:4:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1234:6:34"},"scope":8113,"src":"1175:320:34","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":7869,"nodeType":"Block","src":"2483:241:34","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":7847,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2509:4:34","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$8113","typeString":"library Address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Address_$8113","typeString":"library Address"}],"id":7846,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2501:7:34","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7845,"name":"address","nodeType":"ElementaryTypeName","src":"2501:7:34","typeDescriptions":{}}},"id":7848,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2501:13:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2515:7:34","memberName":"balance","nodeType":"MemberAccess","src":"2501:21:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":7850,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7841,"src":"2526:6:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2501:31:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20696e73756666696369656e742062616c616e6365","id":7852,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2534:31:34","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":7844,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2493:7:34","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7853,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2493:73:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7854,"nodeType":"ExpressionStatement","src":"2493:73:34"},{"assignments":[7856,null],"declarations":[{"constant":false,"id":7856,"mutability":"mutable","name":"success","nameLocation":"2583:7:34","nodeType":"VariableDeclaration","scope":7869,"src":"2578:12:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7855,"name":"bool","nodeType":"ElementaryTypeName","src":"2578:4:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":7863,"initialValue":{"arguments":[{"hexValue":"","id":7861,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2626:2:34","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":7857,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7839,"src":"2596:9:34","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":7858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2606:4:34","memberName":"call","nodeType":"MemberAccess","src":"2596:14:34","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":7860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":7859,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7841,"src":"2618:6:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"2596:29:34","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":7862,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2596:33:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"2577:52:34"},{"expression":{"arguments":[{"id":7865,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7856,"src":"2647:7:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564","id":7866,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2656:60:34","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":7864,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2639:7:34","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2639:78:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7868,"nodeType":"ExpressionStatement","src":"2639:78:34"}]},"documentation":{"id":7837,"nodeType":"StructuredDocumentation","src":"1501:906:34","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]."},"id":7870,"implemented":true,"kind":"function","modifiers":[],"name":"sendValue","nameLocation":"2421:9:34","nodeType":"FunctionDefinition","parameters":{"id":7842,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7839,"mutability":"mutable","name":"recipient","nameLocation":"2447:9:34","nodeType":"VariableDeclaration","scope":7870,"src":"2431:25:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":7838,"name":"address","nodeType":"ElementaryTypeName","src":"2431:15:34","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":7841,"mutability":"mutable","name":"amount","nameLocation":"2466:6:34","nodeType":"VariableDeclaration","scope":7870,"src":"2458:14:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7840,"name":"uint256","nodeType":"ElementaryTypeName","src":"2458:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2430:43:34"},"returnParameters":{"id":7843,"nodeType":"ParameterList","parameters":[],"src":"2483:0:34"},"scope":8113,"src":"2412:312:34","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":7886,"nodeType":"Block","src":"3555:84:34","statements":[{"expression":{"arguments":[{"id":7881,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7873,"src":"3585:6:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7882,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7875,"src":"3593:4:34","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"416464726573733a206c6f772d6c6576656c2063616c6c206661696c6564","id":7883,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3599:32:34","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":7880,"name":"functionCall","nodeType":"Identifier","overloadedDeclarations":[7887,7907],"referencedDeclaration":7907,"src":"3572:12:34","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":7884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3572:60:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":7879,"id":7885,"nodeType":"Return","src":"3565:67:34"}]},"documentation":{"id":7871,"nodeType":"StructuredDocumentation","src":"2730:731:34","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._"},"id":7887,"implemented":true,"kind":"function","modifiers":[],"name":"functionCall","nameLocation":"3475:12:34","nodeType":"FunctionDefinition","parameters":{"id":7876,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7873,"mutability":"mutable","name":"target","nameLocation":"3496:6:34","nodeType":"VariableDeclaration","scope":7887,"src":"3488:14:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7872,"name":"address","nodeType":"ElementaryTypeName","src":"3488:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7875,"mutability":"mutable","name":"data","nameLocation":"3517:4:34","nodeType":"VariableDeclaration","scope":7887,"src":"3504:17:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7874,"name":"bytes","nodeType":"ElementaryTypeName","src":"3504:5:34","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3487:35:34"},"returnParameters":{"id":7879,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7878,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7887,"src":"3541:12:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7877,"name":"bytes","nodeType":"ElementaryTypeName","src":"3541:5:34","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3540:14:34"},"scope":8113,"src":"3466:173:34","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":7906,"nodeType":"Block","src":"4008:76:34","statements":[{"expression":{"arguments":[{"id":7900,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7890,"src":"4047:6:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7901,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7892,"src":"4055:4:34","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"30","id":7902,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4061:1:34","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":7903,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7894,"src":"4064:12:34","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":7899,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[7927,7977],"referencedDeclaration":7977,"src":"4025:21:34","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":7904,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4025:52:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":7898,"id":7905,"nodeType":"Return","src":"4018:59:34"}]},"documentation":{"id":7888,"nodeType":"StructuredDocumentation","src":"3645:211:34","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._"},"id":7907,"implemented":true,"kind":"function","modifiers":[],"name":"functionCall","nameLocation":"3870:12:34","nodeType":"FunctionDefinition","parameters":{"id":7895,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7890,"mutability":"mutable","name":"target","nameLocation":"3900:6:34","nodeType":"VariableDeclaration","scope":7907,"src":"3892:14:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7889,"name":"address","nodeType":"ElementaryTypeName","src":"3892:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7892,"mutability":"mutable","name":"data","nameLocation":"3929:4:34","nodeType":"VariableDeclaration","scope":7907,"src":"3916:17:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7891,"name":"bytes","nodeType":"ElementaryTypeName","src":"3916:5:34","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":7894,"mutability":"mutable","name":"errorMessage","nameLocation":"3957:12:34","nodeType":"VariableDeclaration","scope":7907,"src":"3943:26:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7893,"name":"string","nodeType":"ElementaryTypeName","src":"3943:6:34","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3882:93:34"},"returnParameters":{"id":7898,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7897,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7907,"src":"3994:12:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7896,"name":"bytes","nodeType":"ElementaryTypeName","src":"3994:5:34","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3993:14:34"},"scope":8113,"src":"3861:223:34","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":7926,"nodeType":"Block","src":"4589:111:34","statements":[{"expression":{"arguments":[{"id":7920,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7910,"src":"4628:6:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7921,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7912,"src":"4636:4:34","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":7922,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7914,"src":"4642:5:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564","id":7923,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4649:43:34","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":7919,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[7927,7977],"referencedDeclaration":7977,"src":"4606:21:34","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":7924,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4606:87:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":7918,"id":7925,"nodeType":"Return","src":"4599:94:34"}]},"documentation":{"id":7908,"nodeType":"StructuredDocumentation","src":"4090:351:34","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._"},"id":7927,"implemented":true,"kind":"function","modifiers":[],"name":"functionCallWithValue","nameLocation":"4455:21:34","nodeType":"FunctionDefinition","parameters":{"id":7915,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7910,"mutability":"mutable","name":"target","nameLocation":"4494:6:34","nodeType":"VariableDeclaration","scope":7927,"src":"4486:14:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7909,"name":"address","nodeType":"ElementaryTypeName","src":"4486:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7912,"mutability":"mutable","name":"data","nameLocation":"4523:4:34","nodeType":"VariableDeclaration","scope":7927,"src":"4510:17:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7911,"name":"bytes","nodeType":"ElementaryTypeName","src":"4510:5:34","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":7914,"mutability":"mutable","name":"value","nameLocation":"4545:5:34","nodeType":"VariableDeclaration","scope":7927,"src":"4537:13:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7913,"name":"uint256","nodeType":"ElementaryTypeName","src":"4537:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4476:80:34"},"returnParameters":{"id":7918,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7917,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7927,"src":"4575:12:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7916,"name":"bytes","nodeType":"ElementaryTypeName","src":"4575:5:34","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4574:14:34"},"scope":8113,"src":"4446:254:34","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":7976,"nodeType":"Block","src":"5127:320:34","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":7944,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"5153:4:34","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$8113","typeString":"library Address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Address_$8113","typeString":"library Address"}],"id":7943,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5145:7:34","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7942,"name":"address","nodeType":"ElementaryTypeName","src":"5145:7:34","typeDescriptions":{}}},"id":7945,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5145:13:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7946,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5159:7:34","memberName":"balance","nodeType":"MemberAccess","src":"5145:21:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":7947,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7934,"src":"5170:5:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5145:30:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c","id":7949,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5177:40:34","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":7941,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5137:7:34","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7950,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5137:81:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7951,"nodeType":"ExpressionStatement","src":"5137:81:34"},{"expression":{"arguments":[{"arguments":[{"id":7954,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7930,"src":"5247:6:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7953,"name":"isContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7836,"src":"5236:10:34","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":7955,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5236:18:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374","id":7956,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5256:31:34","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":7952,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5228:7:34","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7957,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5228:60:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7958,"nodeType":"ExpressionStatement","src":"5228:60:34"},{"assignments":[7960,7962],"declarations":[{"constant":false,"id":7960,"mutability":"mutable","name":"success","nameLocation":"5305:7:34","nodeType":"VariableDeclaration","scope":7976,"src":"5300:12:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7959,"name":"bool","nodeType":"ElementaryTypeName","src":"5300:4:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7962,"mutability":"mutable","name":"returndata","nameLocation":"5327:10:34","nodeType":"VariableDeclaration","scope":7976,"src":"5314:23:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7961,"name":"bytes","nodeType":"ElementaryTypeName","src":"5314:5:34","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":7969,"initialValue":{"arguments":[{"id":7967,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7932,"src":"5367:4:34","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":7963,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7930,"src":"5341:6:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5348:4:34","memberName":"call","nodeType":"MemberAccess","src":"5341:11:34","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":7966,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":7965,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7934,"src":"5360:5:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"5341:25:34","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":7968,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5341:31:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"5299:73:34"},{"expression":{"arguments":[{"id":7971,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7960,"src":"5406:7:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":7972,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7962,"src":"5415:10:34","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":7973,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7936,"src":"5427:12:34","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":7970,"name":"verifyCallResult","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8112,"src":"5389:16:34","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":7974,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5389:51:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":7940,"id":7975,"nodeType":"Return","src":"5382:58:34"}]},"documentation":{"id":7928,"nodeType":"StructuredDocumentation","src":"4706:237:34","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._"},"id":7977,"implemented":true,"kind":"function","modifiers":[],"name":"functionCallWithValue","nameLocation":"4957:21:34","nodeType":"FunctionDefinition","parameters":{"id":7937,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7930,"mutability":"mutable","name":"target","nameLocation":"4996:6:34","nodeType":"VariableDeclaration","scope":7977,"src":"4988:14:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7929,"name":"address","nodeType":"ElementaryTypeName","src":"4988:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7932,"mutability":"mutable","name":"data","nameLocation":"5025:4:34","nodeType":"VariableDeclaration","scope":7977,"src":"5012:17:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7931,"name":"bytes","nodeType":"ElementaryTypeName","src":"5012:5:34","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":7934,"mutability":"mutable","name":"value","nameLocation":"5047:5:34","nodeType":"VariableDeclaration","scope":7977,"src":"5039:13:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7933,"name":"uint256","nodeType":"ElementaryTypeName","src":"5039:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7936,"mutability":"mutable","name":"errorMessage","nameLocation":"5076:12:34","nodeType":"VariableDeclaration","scope":7977,"src":"5062:26:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7935,"name":"string","nodeType":"ElementaryTypeName","src":"5062:6:34","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4978:116:34"},"returnParameters":{"id":7940,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7939,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7977,"src":"5113:12:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7938,"name":"bytes","nodeType":"ElementaryTypeName","src":"5113:5:34","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5112:14:34"},"scope":8113,"src":"4948:499:34","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":7993,"nodeType":"Block","src":"5724:97:34","statements":[{"expression":{"arguments":[{"id":7988,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7980,"src":"5760:6:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7989,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7982,"src":"5768:4:34","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564","id":7990,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5774:39:34","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":7987,"name":"functionStaticCall","nodeType":"Identifier","overloadedDeclarations":[7994,8029],"referencedDeclaration":8029,"src":"5741:18:34","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":7991,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5741:73:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":7986,"id":7992,"nodeType":"Return","src":"5734:80:34"}]},"documentation":{"id":7978,"nodeType":"StructuredDocumentation","src":"5453:166:34","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._"},"id":7994,"implemented":true,"kind":"function","modifiers":[],"name":"functionStaticCall","nameLocation":"5633:18:34","nodeType":"FunctionDefinition","parameters":{"id":7983,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7980,"mutability":"mutable","name":"target","nameLocation":"5660:6:34","nodeType":"VariableDeclaration","scope":7994,"src":"5652:14:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7979,"name":"address","nodeType":"ElementaryTypeName","src":"5652:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7982,"mutability":"mutable","name":"data","nameLocation":"5681:4:34","nodeType":"VariableDeclaration","scope":7994,"src":"5668:17:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7981,"name":"bytes","nodeType":"ElementaryTypeName","src":"5668:5:34","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5651:35:34"},"returnParameters":{"id":7986,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7985,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7994,"src":"5710:12:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7984,"name":"bytes","nodeType":"ElementaryTypeName","src":"5710:5:34","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5709:14:34"},"scope":8113,"src":"5624:197:34","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":8028,"nodeType":"Block","src":"6163:228:34","statements":[{"expression":{"arguments":[{"arguments":[{"id":8008,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7997,"src":"6192:6:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8007,"name":"isContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7836,"src":"6181:10:34","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":8009,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6181:18:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a207374617469632063616c6c20746f206e6f6e2d636f6e7472616374","id":8010,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6201:38:34","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":8006,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6173:7:34","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8011,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6173:67:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8012,"nodeType":"ExpressionStatement","src":"6173:67:34"},{"assignments":[8014,8016],"declarations":[{"constant":false,"id":8014,"mutability":"mutable","name":"success","nameLocation":"6257:7:34","nodeType":"VariableDeclaration","scope":8028,"src":"6252:12:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8013,"name":"bool","nodeType":"ElementaryTypeName","src":"6252:4:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":8016,"mutability":"mutable","name":"returndata","nameLocation":"6279:10:34","nodeType":"VariableDeclaration","scope":8028,"src":"6266:23:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8015,"name":"bytes","nodeType":"ElementaryTypeName","src":"6266:5:34","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":8021,"initialValue":{"arguments":[{"id":8019,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7999,"src":"6311:4:34","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":8017,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7997,"src":"6293:6:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":8018,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6300:10:34","memberName":"staticcall","nodeType":"MemberAccess","src":"6293:17:34","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":8020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6293:23:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"6251:65:34"},{"expression":{"arguments":[{"id":8023,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8014,"src":"6350:7:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":8024,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8016,"src":"6359:10:34","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":8025,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8001,"src":"6371:12:34","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":8022,"name":"verifyCallResult","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8112,"src":"6333:16:34","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":8026,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6333:51:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":8005,"id":8027,"nodeType":"Return","src":"6326:58:34"}]},"documentation":{"id":7995,"nodeType":"StructuredDocumentation","src":"5827:173:34","text":" @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._"},"id":8029,"implemented":true,"kind":"function","modifiers":[],"name":"functionStaticCall","nameLocation":"6014:18:34","nodeType":"FunctionDefinition","parameters":{"id":8002,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7997,"mutability":"mutable","name":"target","nameLocation":"6050:6:34","nodeType":"VariableDeclaration","scope":8029,"src":"6042:14:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7996,"name":"address","nodeType":"ElementaryTypeName","src":"6042:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7999,"mutability":"mutable","name":"data","nameLocation":"6079:4:34","nodeType":"VariableDeclaration","scope":8029,"src":"6066:17:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7998,"name":"bytes","nodeType":"ElementaryTypeName","src":"6066:5:34","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":8001,"mutability":"mutable","name":"errorMessage","nameLocation":"6107:12:34","nodeType":"VariableDeclaration","scope":8029,"src":"6093:26:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8000,"name":"string","nodeType":"ElementaryTypeName","src":"6093:6:34","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6032:93:34"},"returnParameters":{"id":8005,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8004,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8029,"src":"6149:12:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8003,"name":"bytes","nodeType":"ElementaryTypeName","src":"6149:5:34","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6148:14:34"},"scope":8113,"src":"6005:386:34","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":8045,"nodeType":"Block","src":"6667:101:34","statements":[{"expression":{"arguments":[{"id":8040,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8032,"src":"6705:6:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8041,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8034,"src":"6713:4:34","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564","id":8042,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6719:41:34","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":8039,"name":"functionDelegateCall","nodeType":"Identifier","overloadedDeclarations":[8046,8081],"referencedDeclaration":8081,"src":"6684:20:34","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":8043,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6684:77:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":8038,"id":8044,"nodeType":"Return","src":"6677:84:34"}]},"documentation":{"id":8030,"nodeType":"StructuredDocumentation","src":"6397:168:34","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._"},"id":8046,"implemented":true,"kind":"function","modifiers":[],"name":"functionDelegateCall","nameLocation":"6579:20:34","nodeType":"FunctionDefinition","parameters":{"id":8035,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8032,"mutability":"mutable","name":"target","nameLocation":"6608:6:34","nodeType":"VariableDeclaration","scope":8046,"src":"6600:14:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8031,"name":"address","nodeType":"ElementaryTypeName","src":"6600:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8034,"mutability":"mutable","name":"data","nameLocation":"6629:4:34","nodeType":"VariableDeclaration","scope":8046,"src":"6616:17:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8033,"name":"bytes","nodeType":"ElementaryTypeName","src":"6616:5:34","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6599:35:34"},"returnParameters":{"id":8038,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8037,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8046,"src":"6653:12:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8036,"name":"bytes","nodeType":"ElementaryTypeName","src":"6653:5:34","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6652:14:34"},"scope":8113,"src":"6570:198:34","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":8080,"nodeType":"Block","src":"7109:232:34","statements":[{"expression":{"arguments":[{"arguments":[{"id":8060,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8049,"src":"7138:6:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8059,"name":"isContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7836,"src":"7127:10:34","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":8061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7127:18:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6e7472616374","id":8062,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7147:40:34","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":8058,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7119:7:34","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8063,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7119:69:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8064,"nodeType":"ExpressionStatement","src":"7119:69:34"},{"assignments":[8066,8068],"declarations":[{"constant":false,"id":8066,"mutability":"mutable","name":"success","nameLocation":"7205:7:34","nodeType":"VariableDeclaration","scope":8080,"src":"7200:12:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8065,"name":"bool","nodeType":"ElementaryTypeName","src":"7200:4:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":8068,"mutability":"mutable","name":"returndata","nameLocation":"7227:10:34","nodeType":"VariableDeclaration","scope":8080,"src":"7214:23:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8067,"name":"bytes","nodeType":"ElementaryTypeName","src":"7214:5:34","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":8073,"initialValue":{"arguments":[{"id":8071,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8051,"src":"7261:4:34","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":8069,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8049,"src":"7241:6:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":8070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7248:12:34","memberName":"delegatecall","nodeType":"MemberAccess","src":"7241:19:34","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":8072,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7241:25:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"7199:67:34"},{"expression":{"arguments":[{"id":8075,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8066,"src":"7300:7:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":8076,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8068,"src":"7309:10:34","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":8077,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8053,"src":"7321:12:34","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":8074,"name":"verifyCallResult","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8112,"src":"7283:16:34","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":8078,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7283:51:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":8057,"id":8079,"nodeType":"Return","src":"7276:58:34"}]},"documentation":{"id":8047,"nodeType":"StructuredDocumentation","src":"6774:175:34","text":" @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._"},"id":8081,"implemented":true,"kind":"function","modifiers":[],"name":"functionDelegateCall","nameLocation":"6963:20:34","nodeType":"FunctionDefinition","parameters":{"id":8054,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8049,"mutability":"mutable","name":"target","nameLocation":"7001:6:34","nodeType":"VariableDeclaration","scope":8081,"src":"6993:14:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8048,"name":"address","nodeType":"ElementaryTypeName","src":"6993:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8051,"mutability":"mutable","name":"data","nameLocation":"7030:4:34","nodeType":"VariableDeclaration","scope":8081,"src":"7017:17:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8050,"name":"bytes","nodeType":"ElementaryTypeName","src":"7017:5:34","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":8053,"mutability":"mutable","name":"errorMessage","nameLocation":"7058:12:34","nodeType":"VariableDeclaration","scope":8081,"src":"7044:26:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8052,"name":"string","nodeType":"ElementaryTypeName","src":"7044:6:34","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6983:93:34"},"returnParameters":{"id":8057,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8056,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8081,"src":"7095:12:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8055,"name":"bytes","nodeType":"ElementaryTypeName","src":"7095:5:34","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7094:14:34"},"scope":8113,"src":"6954:387:34","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":8111,"nodeType":"Block","src":"7721:532:34","statements":[{"condition":{"id":8093,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8084,"src":"7735:7:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":8109,"nodeType":"Block","src":"7792:455:34","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8100,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":8097,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8086,"src":"7876:10:34","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":8098,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7887:6:34","memberName":"length","nodeType":"MemberAccess","src":"7876:17:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":8099,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7896:1:34","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7876:21:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":8107,"nodeType":"Block","src":"8184:53:34","statements":[{"expression":{"arguments":[{"id":8104,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8088,"src":"8209:12:34","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":8103,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"8202:6:34","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":8105,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8202:20:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8106,"nodeType":"ExpressionStatement","src":"8202:20:34"}]},"id":8108,"nodeType":"IfStatement","src":"7872:365:34","trueBody":{"id":8102,"nodeType":"Block","src":"7899:279:34","statements":[{"AST":{"nodeType":"YulBlock","src":"8019:145:34","statements":[{"nodeType":"YulVariableDeclaration","src":"8041:40:34","value":{"arguments":[{"name":"returndata","nodeType":"YulIdentifier","src":"8070:10:34"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8064:5:34"},"nodeType":"YulFunctionCall","src":"8064:17:34"},"variables":[{"name":"returndata_size","nodeType":"YulTypedName","src":"8045:15:34","type":""}]},{"expression":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8113:2:34","type":"","value":"32"},{"name":"returndata","nodeType":"YulIdentifier","src":"8117:10:34"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8109:3:34"},"nodeType":"YulFunctionCall","src":"8109:19:34"},{"name":"returndata_size","nodeType":"YulIdentifier","src":"8130:15:34"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8102:6:34"},"nodeType":"YulFunctionCall","src":"8102:44:34"},"nodeType":"YulExpressionStatement","src":"8102:44:34"}]},"evmVersion":"paris","externalReferences":[{"declaration":8086,"isOffset":false,"isSlot":false,"src":"8070:10:34","valueSize":1},{"declaration":8086,"isOffset":false,"isSlot":false,"src":"8117:10:34","valueSize":1}],"id":8101,"nodeType":"InlineAssembly","src":"8010:154:34"}]}}]},"id":8110,"nodeType":"IfStatement","src":"7731:516:34","trueBody":{"id":8096,"nodeType":"Block","src":"7744:42:34","statements":[{"expression":{"id":8094,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8086,"src":"7765:10:34","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":8092,"id":8095,"nodeType":"Return","src":"7758:17:34"}]}}]},"documentation":{"id":8082,"nodeType":"StructuredDocumentation","src":"7347:209:34","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._"},"id":8112,"implemented":true,"kind":"function","modifiers":[],"name":"verifyCallResult","nameLocation":"7570:16:34","nodeType":"FunctionDefinition","parameters":{"id":8089,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8084,"mutability":"mutable","name":"success","nameLocation":"7601:7:34","nodeType":"VariableDeclaration","scope":8112,"src":"7596:12:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8083,"name":"bool","nodeType":"ElementaryTypeName","src":"7596:4:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":8086,"mutability":"mutable","name":"returndata","nameLocation":"7631:10:34","nodeType":"VariableDeclaration","scope":8112,"src":"7618:23:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8085,"name":"bytes","nodeType":"ElementaryTypeName","src":"7618:5:34","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":8088,"mutability":"mutable","name":"errorMessage","nameLocation":"7665:12:34","nodeType":"VariableDeclaration","scope":8112,"src":"7651:26:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8087,"name":"string","nodeType":"ElementaryTypeName","src":"7651:6:34","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7586:97:34"},"returnParameters":{"id":8092,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8091,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8112,"src":"7707:12:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8090,"name":"bytes","nodeType":"ElementaryTypeName","src":"7707:5:34","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7706:14:34"},"scope":8113,"src":"7561:692:34","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":8114,"src":"194:8061:34","usedErrors":[]}],"src":"101:8155:34"}},"@openzeppelin/contracts/utils/Context.sol":{"id":35,"ast":{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","exportedSymbols":{"Context":[8135]},"id":8136,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":8115,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"86:23:35"},{"abstract":true,"baseContracts":[],"canonicalName":"Context","contractDependencies":[],"contractKind":"contract","documentation":{"id":8116,"nodeType":"StructuredDocumentation","src":"111:496:35","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,"id":8135,"linearizedBaseContracts":[8135],"name":"Context","nameLocation":"626:7:35","nodeType":"ContractDefinition","nodes":[{"body":{"id":8124,"nodeType":"Block","src":"702:34:35","statements":[{"expression":{"expression":{"id":8121,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"719:3:35","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"723:6:35","memberName":"sender","nodeType":"MemberAccess","src":"719:10:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":8120,"id":8123,"nodeType":"Return","src":"712:17:35"}]},"id":8125,"implemented":true,"kind":"function","modifiers":[],"name":"_msgSender","nameLocation":"649:10:35","nodeType":"FunctionDefinition","parameters":{"id":8117,"nodeType":"ParameterList","parameters":[],"src":"659:2:35"},"returnParameters":{"id":8120,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8119,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8125,"src":"693:7:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8118,"name":"address","nodeType":"ElementaryTypeName","src":"693:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"692:9:35"},"scope":8135,"src":"640:96:35","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":8133,"nodeType":"Block","src":"809:32:35","statements":[{"expression":{"expression":{"id":8130,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"826:3:35","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"830:4:35","memberName":"data","nodeType":"MemberAccess","src":"826:8:35","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"functionReturnParameters":8129,"id":8132,"nodeType":"Return","src":"819:15:35"}]},"id":8134,"implemented":true,"kind":"function","modifiers":[],"name":"_msgData","nameLocation":"751:8:35","nodeType":"FunctionDefinition","parameters":{"id":8126,"nodeType":"ParameterList","parameters":[],"src":"759:2:35"},"returnParameters":{"id":8129,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8128,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8134,"src":"793:14:35","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":8127,"name":"bytes","nodeType":"ElementaryTypeName","src":"793:5:35","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"792:16:35"},"scope":8135,"src":"742:99:35","stateMutability":"view","virtual":true,"visibility":"internal"}],"scope":8136,"src":"608:235:35","usedErrors":[]}],"src":"86:758:35"}},"@openzeppelin/contracts/utils/Counters.sol":{"id":36,"ast":{"absolutePath":"@openzeppelin/contracts/utils/Counters.sol","exportedSymbols":{"Counters":[8209]},"id":8210,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":8137,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"87:23:36"},{"abstract":false,"baseContracts":[],"canonicalName":"Counters","contractDependencies":[],"contractKind":"library","documentation":{"id":8138,"nodeType":"StructuredDocumentation","src":"112:311:36","text":" @title Counters\n @author Matt Condon (@shrugs)\n @dev Provides counters that can only be incremented, decremented or reset. This can be used e.g. to track the number\n of elements in a mapping, issuing ERC721 ids, or counting request ids.\n Include with `using Counters for Counters.Counter;`"},"fullyImplemented":true,"id":8209,"linearizedBaseContracts":[8209],"name":"Counters","nameLocation":"432:8:36","nodeType":"ContractDefinition","nodes":[{"canonicalName":"Counters.Counter","id":8141,"members":[{"constant":false,"id":8140,"mutability":"mutable","name":"_value","nameLocation":"794:6:36","nodeType":"VariableDeclaration","scope":8141,"src":"786:14:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8139,"name":"uint256","nodeType":"ElementaryTypeName","src":"786:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Counter","nameLocation":"454:7:36","nodeType":"StructDefinition","scope":8209,"src":"447:374:36","visibility":"public"},{"body":{"id":8152,"nodeType":"Block","src":"901:38:36","statements":[{"expression":{"expression":{"id":8149,"name":"counter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8144,"src":"918:7:36","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$8141_storage_ptr","typeString":"struct Counters.Counter storage pointer"}},"id":8150,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"926:6:36","memberName":"_value","nodeType":"MemberAccess","referencedDeclaration":8140,"src":"918:14:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8148,"id":8151,"nodeType":"Return","src":"911:21:36"}]},"id":8153,"implemented":true,"kind":"function","modifiers":[],"name":"current","nameLocation":"836:7:36","nodeType":"FunctionDefinition","parameters":{"id":8145,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8144,"mutability":"mutable","name":"counter","nameLocation":"860:7:36","nodeType":"VariableDeclaration","scope":8153,"src":"844:23:36","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$8141_storage_ptr","typeString":"struct Counters.Counter"},"typeName":{"id":8143,"nodeType":"UserDefinedTypeName","pathNode":{"id":8142,"name":"Counter","nameLocations":["844:7:36"],"nodeType":"IdentifierPath","referencedDeclaration":8141,"src":"844:7:36"},"referencedDeclaration":8141,"src":"844:7:36","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$8141_storage_ptr","typeString":"struct Counters.Counter"}},"visibility":"internal"}],"src":"843:25:36"},"returnParameters":{"id":8148,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8147,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8153,"src":"892:7:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8146,"name":"uint256","nodeType":"ElementaryTypeName","src":"892:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"891:9:36"},"scope":8209,"src":"827:112:36","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":8166,"nodeType":"Block","src":"998:70:36","statements":[{"id":8165,"nodeType":"UncheckedBlock","src":"1008:54:36","statements":[{"expression":{"id":8163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":8159,"name":"counter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8156,"src":"1032:7:36","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$8141_storage_ptr","typeString":"struct Counters.Counter storage pointer"}},"id":8161,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1040:6:36","memberName":"_value","nodeType":"MemberAccess","referencedDeclaration":8140,"src":"1032:14:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":8162,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1050:1:36","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1032:19:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8164,"nodeType":"ExpressionStatement","src":"1032:19:36"}]}]},"id":8167,"implemented":true,"kind":"function","modifiers":[],"name":"increment","nameLocation":"954:9:36","nodeType":"FunctionDefinition","parameters":{"id":8157,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8156,"mutability":"mutable","name":"counter","nameLocation":"980:7:36","nodeType":"VariableDeclaration","scope":8167,"src":"964:23:36","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$8141_storage_ptr","typeString":"struct Counters.Counter"},"typeName":{"id":8155,"nodeType":"UserDefinedTypeName","pathNode":{"id":8154,"name":"Counter","nameLocations":["964:7:36"],"nodeType":"IdentifierPath","referencedDeclaration":8141,"src":"964:7:36"},"referencedDeclaration":8141,"src":"964:7:36","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$8141_storage_ptr","typeString":"struct Counters.Counter"}},"visibility":"internal"}],"src":"963:25:36"},"returnParameters":{"id":8158,"nodeType":"ParameterList","parameters":[],"src":"998:0:36"},"scope":8209,"src":"945:123:36","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":8194,"nodeType":"Block","src":"1127:176:36","statements":[{"assignments":[8174],"declarations":[{"constant":false,"id":8174,"mutability":"mutable","name":"value","nameLocation":"1145:5:36","nodeType":"VariableDeclaration","scope":8194,"src":"1137:13:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8173,"name":"uint256","nodeType":"ElementaryTypeName","src":"1137:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8177,"initialValue":{"expression":{"id":8175,"name":"counter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8170,"src":"1153:7:36","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$8141_storage_ptr","typeString":"struct Counters.Counter storage pointer"}},"id":8176,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1161:6:36","memberName":"_value","nodeType":"MemberAccess","referencedDeclaration":8140,"src":"1153:14:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1137:30:36"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8179,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8174,"src":"1185:5:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":8180,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1193:1:36","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1185:9:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"436f756e7465723a2064656372656d656e74206f766572666c6f77","id":8182,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1196:29:36","typeDescriptions":{"typeIdentifier":"t_stringliteral_1dfd0d5389474d871b8e8929aab9d4def041f55f90f625754fb5f9a9ba08af6f","typeString":"literal_string \"Counter: decrement overflow\""},"value":"Counter: decrement overflow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1dfd0d5389474d871b8e8929aab9d4def041f55f90f625754fb5f9a9ba08af6f","typeString":"literal_string \"Counter: decrement overflow\""}],"id":8178,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1177:7:36","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8183,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1177:49:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8184,"nodeType":"ExpressionStatement","src":"1177:49:36"},{"id":8193,"nodeType":"UncheckedBlock","src":"1236:61:36","statements":[{"expression":{"id":8191,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":8185,"name":"counter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8170,"src":"1260:7:36","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$8141_storage_ptr","typeString":"struct Counters.Counter storage pointer"}},"id":8187,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1268:6:36","memberName":"_value","nodeType":"MemberAccess","referencedDeclaration":8140,"src":"1260:14:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8190,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8188,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8174,"src":"1277:5:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":8189,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1285:1:36","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1277:9:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1260:26:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8192,"nodeType":"ExpressionStatement","src":"1260:26:36"}]}]},"id":8195,"implemented":true,"kind":"function","modifiers":[],"name":"decrement","nameLocation":"1083:9:36","nodeType":"FunctionDefinition","parameters":{"id":8171,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8170,"mutability":"mutable","name":"counter","nameLocation":"1109:7:36","nodeType":"VariableDeclaration","scope":8195,"src":"1093:23:36","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$8141_storage_ptr","typeString":"struct Counters.Counter"},"typeName":{"id":8169,"nodeType":"UserDefinedTypeName","pathNode":{"id":8168,"name":"Counter","nameLocations":["1093:7:36"],"nodeType":"IdentifierPath","referencedDeclaration":8141,"src":"1093:7:36"},"referencedDeclaration":8141,"src":"1093:7:36","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$8141_storage_ptr","typeString":"struct Counters.Counter"}},"visibility":"internal"}],"src":"1092:25:36"},"returnParameters":{"id":8172,"nodeType":"ParameterList","parameters":[],"src":"1127:0:36"},"scope":8209,"src":"1074:229:36","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":8207,"nodeType":"Block","src":"1358:35:36","statements":[{"expression":{"id":8205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":8201,"name":"counter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8198,"src":"1368:7:36","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$8141_storage_ptr","typeString":"struct Counters.Counter storage pointer"}},"id":8203,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1376:6:36","memberName":"_value","nodeType":"MemberAccess","referencedDeclaration":8140,"src":"1368:14:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":8204,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1385:1:36","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1368:18:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8206,"nodeType":"ExpressionStatement","src":"1368:18:36"}]},"id":8208,"implemented":true,"kind":"function","modifiers":[],"name":"reset","nameLocation":"1318:5:36","nodeType":"FunctionDefinition","parameters":{"id":8199,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8198,"mutability":"mutable","name":"counter","nameLocation":"1340:7:36","nodeType":"VariableDeclaration","scope":8208,"src":"1324:23:36","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$8141_storage_ptr","typeString":"struct Counters.Counter"},"typeName":{"id":8197,"nodeType":"UserDefinedTypeName","pathNode":{"id":8196,"name":"Counter","nameLocations":["1324:7:36"],"nodeType":"IdentifierPath","referencedDeclaration":8141,"src":"1324:7:36"},"referencedDeclaration":8141,"src":"1324:7:36","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$8141_storage_ptr","typeString":"struct Counters.Counter"}},"visibility":"internal"}],"src":"1323:25:36"},"returnParameters":{"id":8200,"nodeType":"ParameterList","parameters":[],"src":"1358:0:36"},"scope":8209,"src":"1309:84:36","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":8210,"src":"424:971:36","usedErrors":[]}],"src":"87:1309:36"}},"@openzeppelin/contracts/utils/Strings.sol":{"id":37,"ast":{"absolutePath":"@openzeppelin/contracts/utils/Strings.sol","exportedSymbols":{"Strings":[8412]},"id":8413,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":8211,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"86:23:37"},{"abstract":false,"baseContracts":[],"canonicalName":"Strings","contractDependencies":[],"contractKind":"library","documentation":{"id":8212,"nodeType":"StructuredDocumentation","src":"111:34:37","text":" @dev String operations."},"fullyImplemented":true,"id":8412,"linearizedBaseContracts":[8412],"name":"Strings","nameLocation":"154:7:37","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":8215,"mutability":"constant","name":"_HEX_SYMBOLS","nameLocation":"193:12:37","nodeType":"VariableDeclaration","scope":8412,"src":"168:58:37","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":8213,"name":"bytes16","nodeType":"ElementaryTypeName","src":"168:7:37","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"value":{"hexValue":"30313233343536373839616263646566","id":8214,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"208:18:37","typeDescriptions":{"typeIdentifier":"t_stringliteral_cb29997ed99ead0db59ce4d12b7d3723198c827273e5796737c926d78019c39f","typeString":"literal_string \"0123456789abcdef\""},"value":"0123456789abcdef"},"visibility":"private"},{"body":{"id":8293,"nodeType":"Block","src":"399:632:37","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8223,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8218,"src":"601:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":8224,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"610:1:37","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"601:10:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8229,"nodeType":"IfStatement","src":"597:51:37","trueBody":{"id":8228,"nodeType":"Block","src":"613:35:37","statements":[{"expression":{"hexValue":"30","id":8226,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"634:3:37","typeDescriptions":{"typeIdentifier":"t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d","typeString":"literal_string \"0\""},"value":"0"},"functionReturnParameters":8222,"id":8227,"nodeType":"Return","src":"627:10:37"}]}},{"assignments":[8231],"declarations":[{"constant":false,"id":8231,"mutability":"mutable","name":"temp","nameLocation":"665:4:37","nodeType":"VariableDeclaration","scope":8293,"src":"657:12:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8230,"name":"uint256","nodeType":"ElementaryTypeName","src":"657:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8233,"initialValue":{"id":8232,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8218,"src":"672:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"657:20:37"},{"assignments":[8235],"declarations":[{"constant":false,"id":8235,"mutability":"mutable","name":"digits","nameLocation":"695:6:37","nodeType":"VariableDeclaration","scope":8293,"src":"687:14:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8234,"name":"uint256","nodeType":"ElementaryTypeName","src":"687:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8236,"nodeType":"VariableDeclarationStatement","src":"687:14:37"},{"body":{"id":8247,"nodeType":"Block","src":"729:57:37","statements":[{"expression":{"id":8241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"743:8:37","subExpression":{"id":8240,"name":"digits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8235,"src":"743:6:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8242,"nodeType":"ExpressionStatement","src":"743:8:37"},{"expression":{"id":8245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8243,"name":"temp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8231,"src":"765:4:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"hexValue":"3130","id":8244,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"773:2:37","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"765:10:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8246,"nodeType":"ExpressionStatement","src":"765:10:37"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8237,"name":"temp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8231,"src":"718:4:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":8238,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"726:1:37","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"718:9:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8248,"nodeType":"WhileStatement","src":"711:75:37"},{"assignments":[8250],"declarations":[{"constant":false,"id":8250,"mutability":"mutable","name":"buffer","nameLocation":"808:6:37","nodeType":"VariableDeclaration","scope":8293,"src":"795:19:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8249,"name":"bytes","nodeType":"ElementaryTypeName","src":"795:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":8255,"initialValue":{"arguments":[{"id":8253,"name":"digits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8235,"src":"827:6:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8252,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"817:9:37","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":8251,"name":"bytes","nodeType":"ElementaryTypeName","src":"821:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":8254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"817:17:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"795:39:37"},{"body":{"id":8286,"nodeType":"Block","src":"863:131:37","statements":[{"expression":{"id":8261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8259,"name":"digits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8235,"src":"877:6:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"31","id":8260,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"887:1:37","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"877:11:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8262,"nodeType":"ExpressionStatement","src":"877:11:37"},{"expression":{"id":8280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":8263,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8250,"src":"902:6:37","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":8265,"indexExpression":{"id":8264,"name":"digits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8235,"src":"909:6:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"902:14:37","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3438","id":8270,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"932:2:37","typeDescriptions":{"typeIdentifier":"t_rational_48_by_1","typeString":"int_const 48"},"value":"48"},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8273,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8218,"src":"945:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"hexValue":"3130","id":8274,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"953:2:37","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"945:10:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8272,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"937:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":8271,"name":"uint256","nodeType":"ElementaryTypeName","src":"937:7:37","typeDescriptions":{}}},"id":8276,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"937:19:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"932:24:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8269,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"926:5:37","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":8268,"name":"uint8","nodeType":"ElementaryTypeName","src":"926:5:37","typeDescriptions":{}}},"id":8278,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"926:31:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":8267,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"919:6:37","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes1_$","typeString":"type(bytes1)"},"typeName":{"id":8266,"name":"bytes1","nodeType":"ElementaryTypeName","src":"919:6:37","typeDescriptions":{}}},"id":8279,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"919:39:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"902:56:37","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":8281,"nodeType":"ExpressionStatement","src":"902:56:37"},{"expression":{"id":8284,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8282,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8218,"src":"972:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"hexValue":"3130","id":8283,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"981:2:37","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"972:11:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8285,"nodeType":"ExpressionStatement","src":"972:11:37"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8256,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8218,"src":"851:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":8257,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"860:1:37","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"851:10:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8287,"nodeType":"WhileStatement","src":"844:150:37"},{"expression":{"arguments":[{"id":8290,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8250,"src":"1017:6:37","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8289,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1010:6:37","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":8288,"name":"string","nodeType":"ElementaryTypeName","src":"1010:6:37","typeDescriptions":{}}},"id":8291,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1010:14:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":8222,"id":8292,"nodeType":"Return","src":"1003:21:37"}]},"documentation":{"id":8216,"nodeType":"StructuredDocumentation","src":"233:90:37","text":" @dev Converts a `uint256` to its ASCII `string` decimal representation."},"id":8294,"implemented":true,"kind":"function","modifiers":[],"name":"toString","nameLocation":"337:8:37","nodeType":"FunctionDefinition","parameters":{"id":8219,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8218,"mutability":"mutable","name":"value","nameLocation":"354:5:37","nodeType":"VariableDeclaration","scope":8294,"src":"346:13:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8217,"name":"uint256","nodeType":"ElementaryTypeName","src":"346:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"345:15:37"},"returnParameters":{"id":8222,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8221,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8294,"src":"384:13:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8220,"name":"string","nodeType":"ElementaryTypeName","src":"384:6:37","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"383:15:37"},"scope":8412,"src":"328:703:37","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8334,"nodeType":"Block","src":"1210:255:37","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8304,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8302,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8297,"src":"1224:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":8303,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1233:1:37","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1224:10:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8308,"nodeType":"IfStatement","src":"1220:54:37","trueBody":{"id":8307,"nodeType":"Block","src":"1236:38:37","statements":[{"expression":{"hexValue":"30783030","id":8305,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1257:6:37","typeDescriptions":{"typeIdentifier":"t_stringliteral_27489e20a0060b723a1748bdff5e44570ee9fae64141728105692eac6031e8a4","typeString":"literal_string \"0x00\""},"value":"0x00"},"functionReturnParameters":8301,"id":8306,"nodeType":"Return","src":"1250:13:37"}]}},{"assignments":[8310],"declarations":[{"constant":false,"id":8310,"mutability":"mutable","name":"temp","nameLocation":"1291:4:37","nodeType":"VariableDeclaration","scope":8334,"src":"1283:12:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8309,"name":"uint256","nodeType":"ElementaryTypeName","src":"1283:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8312,"initialValue":{"id":8311,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8297,"src":"1298:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1283:20:37"},{"assignments":[8314],"declarations":[{"constant":false,"id":8314,"mutability":"mutable","name":"length","nameLocation":"1321:6:37","nodeType":"VariableDeclaration","scope":8334,"src":"1313:14:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8313,"name":"uint256","nodeType":"ElementaryTypeName","src":"1313:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8316,"initialValue":{"hexValue":"30","id":8315,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1330:1:37","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"1313:18:37"},{"body":{"id":8327,"nodeType":"Block","src":"1359:57:37","statements":[{"expression":{"id":8321,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"1373:8:37","subExpression":{"id":8320,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8314,"src":"1373:6:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8322,"nodeType":"ExpressionStatement","src":"1373:8:37"},{"expression":{"id":8325,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8323,"name":"temp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8310,"src":"1395:4:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"38","id":8324,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1404:1:37","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"1395:10:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8326,"nodeType":"ExpressionStatement","src":"1395:10:37"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8319,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8317,"name":"temp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8310,"src":"1348:4:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":8318,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1356:1:37","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1348:9:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8328,"nodeType":"WhileStatement","src":"1341:75:37"},{"expression":{"arguments":[{"id":8330,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8297,"src":"1444:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8331,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8314,"src":"1451:6:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8329,"name":"toHexString","nodeType":"Identifier","overloadedDeclarations":[8335,8411],"referencedDeclaration":8411,"src":"1432:11:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":8332,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1432:26:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":8301,"id":8333,"nodeType":"Return","src":"1425:33:37"}]},"documentation":{"id":8295,"nodeType":"StructuredDocumentation","src":"1037:94:37","text":" @dev Converts a `uint256` to its ASCII `string` hexadecimal representation."},"id":8335,"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"1145:11:37","nodeType":"FunctionDefinition","parameters":{"id":8298,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8297,"mutability":"mutable","name":"value","nameLocation":"1165:5:37","nodeType":"VariableDeclaration","scope":8335,"src":"1157:13:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8296,"name":"uint256","nodeType":"ElementaryTypeName","src":"1157:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1156:15:37"},"returnParameters":{"id":8301,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8300,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8335,"src":"1195:13:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8299,"name":"string","nodeType":"ElementaryTypeName","src":"1195:6:37","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1194:15:37"},"scope":8412,"src":"1136:329:37","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8410,"nodeType":"Block","src":"1678:351:37","statements":[{"assignments":[8346],"declarations":[{"constant":false,"id":8346,"mutability":"mutable","name":"buffer","nameLocation":"1701:6:37","nodeType":"VariableDeclaration","scope":8410,"src":"1688:19:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8345,"name":"bytes","nodeType":"ElementaryTypeName","src":"1688:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":8355,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":8349,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1720:1:37","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":8350,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8340,"src":"1724:6:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1720:10:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"32","id":8352,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1733:1:37","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"1720:14:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8348,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1710:9:37","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":8347,"name":"bytes","nodeType":"ElementaryTypeName","src":"1714:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":8354,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1710:25:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"1688:47:37"},{"expression":{"id":8360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":8356,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8346,"src":"1745:6:37","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":8358,"indexExpression":{"hexValue":"30","id":8357,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1752:1:37","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1745:9:37","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":8359,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1757:3:37","typeDescriptions":{"typeIdentifier":"t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d","typeString":"literal_string \"0\""},"value":"0"},"src":"1745:15:37","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":8361,"nodeType":"ExpressionStatement","src":"1745:15:37"},{"expression":{"id":8366,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":8362,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8346,"src":"1770:6:37","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":8364,"indexExpression":{"hexValue":"31","id":8363,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1777:1:37","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1770:9:37","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"78","id":8365,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1782:3:37","typeDescriptions":{"typeIdentifier":"t_stringliteral_7521d1cadbcfa91eec65aa16715b94ffc1c9654ba57ea2ef1a2127bca1127a83","typeString":"literal_string \"x\""},"value":"x"},"src":"1770:15:37","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":8367,"nodeType":"ExpressionStatement","src":"1770:15:37"},{"body":{"id":8396,"nodeType":"Block","src":"1840:87:37","statements":[{"expression":{"id":8390,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":8382,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8346,"src":"1854:6:37","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":8384,"indexExpression":{"id":8383,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8369,"src":"1861:1:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1854:9:37","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":8385,"name":"_HEX_SYMBOLS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8215,"src":"1866:12:37","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"id":8389,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8386,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8338,"src":"1879:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"307866","id":8387,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1887:3:37","typeDescriptions":{"typeIdentifier":"t_rational_15_by_1","typeString":"int_const 15"},"value":"0xf"},"src":"1879:11:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1866:25:37","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"1854:37:37","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":8391,"nodeType":"ExpressionStatement","src":"1854:37:37"},{"expression":{"id":8394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8392,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8338,"src":"1905:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"34","id":8393,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1915:1:37","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"1905:11:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8395,"nodeType":"ExpressionStatement","src":"1905:11:37"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8376,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8369,"src":"1828:1:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":8377,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1832:1:37","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1828:5:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8397,"initializationExpression":{"assignments":[8369],"declarations":[{"constant":false,"id":8369,"mutability":"mutable","name":"i","nameLocation":"1808:1:37","nodeType":"VariableDeclaration","scope":8397,"src":"1800:9:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8368,"name":"uint256","nodeType":"ElementaryTypeName","src":"1800:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8375,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8374,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":8370,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1812:1:37","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":8371,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8340,"src":"1816:6:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1812:10:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":8373,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1825:1:37","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1812:14:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1800:26:37"},"loopExpression":{"expression":{"id":8380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":true,"src":"1835:3:37","subExpression":{"id":8379,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8369,"src":"1837:1:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8381,"nodeType":"ExpressionStatement","src":"1835:3:37"},"nodeType":"ForStatement","src":"1795:132:37"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8399,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8338,"src":"1944:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":8400,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1953:1:37","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1944:10:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"537472696e67733a20686578206c656e67746820696e73756666696369656e74","id":8402,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1956:34:37","typeDescriptions":{"typeIdentifier":"t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2","typeString":"literal_string \"Strings: hex length insufficient\""},"value":"Strings: hex length insufficient"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2","typeString":"literal_string \"Strings: hex length insufficient\""}],"id":8398,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1936:7:37","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1936:55:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8404,"nodeType":"ExpressionStatement","src":"1936:55:37"},{"expression":{"arguments":[{"id":8407,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8346,"src":"2015:6:37","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8406,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2008:6:37","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":8405,"name":"string","nodeType":"ElementaryTypeName","src":"2008:6:37","typeDescriptions":{}}},"id":8408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2008:14:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":8344,"id":8409,"nodeType":"Return","src":"2001:21:37"}]},"documentation":{"id":8336,"nodeType":"StructuredDocumentation","src":"1471:112:37","text":" @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length."},"id":8411,"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"1597:11:37","nodeType":"FunctionDefinition","parameters":{"id":8341,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8338,"mutability":"mutable","name":"value","nameLocation":"1617:5:37","nodeType":"VariableDeclaration","scope":8411,"src":"1609:13:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8337,"name":"uint256","nodeType":"ElementaryTypeName","src":"1609:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8340,"mutability":"mutable","name":"length","nameLocation":"1632:6:37","nodeType":"VariableDeclaration","scope":8411,"src":"1624:14:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8339,"name":"uint256","nodeType":"ElementaryTypeName","src":"1624:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1608:31:37"},"returnParameters":{"id":8344,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8343,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8411,"src":"1663:13:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8342,"name":"string","nodeType":"ElementaryTypeName","src":"1663:6:37","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1662:15:37"},"scope":8412,"src":"1588:441:37","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":8413,"src":"146:1885:37","usedErrors":[]}],"src":"86:1946:37"}},"@openzeppelin/contracts/utils/introspection/ERC165.sol":{"id":38,"ast":{"absolutePath":"@openzeppelin/contracts/utils/introspection/ERC165.sol","exportedSymbols":{"ERC165":[8436],"IERC165":[8448]},"id":8437,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":8414,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"99:23:38"},{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","file":"./IERC165.sol","id":8415,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8437,"sourceUnit":8449,"src":"124:23:38","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":8417,"name":"IERC165","nameLocations":["754:7:38"],"nodeType":"IdentifierPath","referencedDeclaration":8448,"src":"754:7:38"},"id":8418,"nodeType":"InheritanceSpecifier","src":"754:7:38"}],"canonicalName":"ERC165","contractDependencies":[],"contractKind":"contract","documentation":{"id":8416,"nodeType":"StructuredDocumentation","src":"149:576:38","text":" @dev Implementation of the {IERC165} interface.\n Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check\n for the additional interface id that will be supported. For example:\n ```solidity\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\n }\n ```\n Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation."},"fullyImplemented":true,"id":8436,"linearizedBaseContracts":[8436,8448],"name":"ERC165","nameLocation":"744:6:38","nodeType":"ContractDefinition","nodes":[{"baseFunctions":[8447],"body":{"id":8434,"nodeType":"Block","src":"920:64:38","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":8432,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8427,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8421,"src":"937:11:38","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":8429,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8448,"src":"957:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC165_$8448_$","typeString":"type(contract IERC165)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC165_$8448_$","typeString":"type(contract IERC165)"}],"id":8428,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"952:4:38","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":8430,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"952:13:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC165_$8448","typeString":"type(contract IERC165)"}},"id":8431,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"966:11:38","memberName":"interfaceId","nodeType":"MemberAccess","src":"952:25:38","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"937:40:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":8426,"id":8433,"nodeType":"Return","src":"930:47:38"}]},"documentation":{"id":8419,"nodeType":"StructuredDocumentation","src":"768:56:38","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","id":8435,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"838:17:38","nodeType":"FunctionDefinition","overrides":{"id":8423,"nodeType":"OverrideSpecifier","overrides":[],"src":"896:8:38"},"parameters":{"id":8422,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8421,"mutability":"mutable","name":"interfaceId","nameLocation":"863:11:38","nodeType":"VariableDeclaration","scope":8435,"src":"856:18:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":8420,"name":"bytes4","nodeType":"ElementaryTypeName","src":"856:6:38","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"855:20:38"},"returnParameters":{"id":8426,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8425,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8435,"src":"914:4:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8424,"name":"bool","nodeType":"ElementaryTypeName","src":"914:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"913:6:38"},"scope":8436,"src":"829:155:38","stateMutability":"view","virtual":true,"visibility":"public"}],"scope":8437,"src":"726:260:38","usedErrors":[]}],"src":"99:888:38"}},"@openzeppelin/contracts/utils/introspection/IERC165.sol":{"id":39,"ast":{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","exportedSymbols":{"IERC165":[8448]},"id":8449,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":8438,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"100:23:39"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC165","contractDependencies":[],"contractKind":"interface","documentation":{"id":8439,"nodeType":"StructuredDocumentation","src":"125:279:39","text":" @dev Interface of the ERC165 standard, as defined in the\n https://eips.ethereum.org/EIPS/eip-165[EIP].\n Implementers can declare support of contract interfaces, which can then be\n queried by others ({ERC165Checker}).\n For an implementation, see {ERC165}."},"fullyImplemented":false,"id":8448,"linearizedBaseContracts":[8448],"name":"IERC165","nameLocation":"415:7:39","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":8440,"nodeType":"StructuredDocumentation","src":"429:340:39","text":" @dev Returns true if this contract implements the interface defined by\n `interfaceId`. See the corresponding\n https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n to learn more about how these ids are created.\n This function call must use less than 30 000 gas."},"functionSelector":"01ffc9a7","id":8447,"implemented":false,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"783:17:39","nodeType":"FunctionDefinition","parameters":{"id":8443,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8442,"mutability":"mutable","name":"interfaceId","nameLocation":"808:11:39","nodeType":"VariableDeclaration","scope":8447,"src":"801:18:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":8441,"name":"bytes4","nodeType":"ElementaryTypeName","src":"801:6:39","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"800:20:39"},"returnParameters":{"id":8446,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8445,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8447,"src":"844:4:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8444,"name":"bool","nodeType":"ElementaryTypeName","src":"844:4:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"843:6:39"},"scope":8448,"src":"774:76:39","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":8449,"src":"405:447:39","usedErrors":[]}],"src":"100:753:39"}},"contracts/Caller.sol":{"id":40,"ast":{"absolutePath":"contracts/Caller.sol","exportedSymbols":{"GCaller":[8529],"IGreeter2":[8461]},"id":8530,"license":"Unlicense","nodeType":"SourceUnit","nodes":[{"id":8450,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"38:23:40"},{"abstract":false,"baseContracts":[],"canonicalName":"IGreeter2","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":8461,"linearizedBaseContracts":[8461],"name":"IGreeter2","nameLocation":"73:9:40","nodeType":"ContractDefinition","nodes":[{"functionSelector":"d7b4291c","id":8455,"implemented":false,"kind":"function","modifiers":[],"name":"callGreeter","nameLocation":"98:11:40","nodeType":"FunctionDefinition","parameters":{"id":8451,"nodeType":"ParameterList","parameters":[],"src":"109:2:40"},"returnParameters":{"id":8454,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8453,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8455,"src":"135:13:40","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8452,"name":"string","nodeType":"ElementaryTypeName","src":"135:6:40","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"134:15:40"},"scope":8461,"src":"89:61:40","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"9698086b","id":8460,"implemented":false,"kind":"function","modifiers":[],"name":"setGreet","nameLocation":"164:8:40","nodeType":"FunctionDefinition","parameters":{"id":8458,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8457,"mutability":"mutable","name":"greeting","nameLocation":"187:8:40","nodeType":"VariableDeclaration","scope":8460,"src":"173:22:40","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8456,"name":"string","nodeType":"ElementaryTypeName","src":"173:6:40","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"172:24:40"},"returnParameters":{"id":8459,"nodeType":"ParameterList","parameters":[],"src":"205:0:40"},"scope":8461,"src":"155:51:40","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":8530,"src":"63:145:40","usedErrors":[]},{"abstract":false,"baseContracts":[],"canonicalName":"GCaller","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":8529,"linearizedBaseContracts":[8529],"name":"GCaller","nameLocation":"219:7:40","nodeType":"ContractDefinition","nodes":[{"constant":false,"functionSelector":"26b85ee1","id":8463,"mutability":"mutable","name":"myAddress","nameLocation":"248:9:40","nodeType":"VariableDeclaration","scope":8529,"src":"233:24:40","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8462,"name":"address","nodeType":"ElementaryTypeName","src":"233:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"constant":false,"functionSelector":"3e23ee43","id":8465,"mutability":"mutable","name":"callAddress","nameLocation":"278:11:40","nodeType":"VariableDeclaration","scope":8529,"src":"263:26:40","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8464,"name":"address","nodeType":"ElementaryTypeName","src":"263:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"constant":false,"id":8468,"mutability":"mutable","name":"defaultGreeting","nameLocation":"310:15:40","nodeType":"VariableDeclaration","scope":8529,"src":"295:49:40","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":8466,"name":"string","nodeType":"ElementaryTypeName","src":"295:6:40","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"48692066726f6d2043616c6c6572","id":8467,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"328:16:40","typeDescriptions":{"typeIdentifier":"t_stringliteral_dd4bc8dd642e96221838d35f0dfe7f67420ad930c71b95a543ffac1ae9893926","typeString":"literal_string \"Hi from Caller\""},"value":"Hi from Caller"},"visibility":"private"},{"body":{"id":8484,"nodeType":"Block","src":"385:78:40","statements":[{"expression":{"id":8478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8473,"name":"myAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8463,"src":"395:9:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":8476,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"415:4:40","typeDescriptions":{"typeIdentifier":"t_contract$_GCaller_$8529","typeString":"contract GCaller"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GCaller_$8529","typeString":"contract GCaller"}],"id":8475,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"407:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8474,"name":"address","nodeType":"ElementaryTypeName","src":"407:7:40","typeDescriptions":{}}},"id":8477,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"407:13:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"395:25:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":8479,"nodeType":"ExpressionStatement","src":"395:25:40"},{"expression":{"id":8482,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8480,"name":"callAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8465,"src":"430:11:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8481,"name":"_callAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8470,"src":"444:12:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"430:26:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":8483,"nodeType":"ExpressionStatement","src":"430:26:40"}]},"id":8485,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":8471,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8470,"mutability":"mutable","name":"_callAddress","nameLocation":"371:12:40","nodeType":"VariableDeclaration","scope":8485,"src":"363:20:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8469,"name":"address","nodeType":"ElementaryTypeName","src":"363:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"362:22:40"},"returnParameters":{"id":8472,"nodeType":"ParameterList","parameters":[],"src":"385:0:40"},"scope":8529,"src":"351:112:40","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":8515,"nodeType":"Block","src":"524:204:40","statements":[{"assignments":[8491],"declarations":[{"constant":false,"id":8491,"mutability":"mutable","name":"greetingBytes","nameLocation":"547:13:40","nodeType":"VariableDeclaration","scope":8515,"src":"534:26:40","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8490,"name":"bytes","nodeType":"ElementaryTypeName","src":"534:5:40","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":8496,"initialValue":{"arguments":[{"id":8494,"name":"_greeting","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8487,"src":"569:9:40","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":8493,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"563:5:40","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":8492,"name":"bytes","nodeType":"ElementaryTypeName","src":"563:5:40","typeDescriptions":{}}},"id":8495,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"563:16:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"534:45:40"},{"assignments":[8498],"declarations":[{"constant":false,"id":8498,"mutability":"mutable","name":"greeting","nameLocation":"603:8:40","nodeType":"VariableDeclaration","scope":8515,"src":"589:22:40","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8497,"name":"string","nodeType":"ElementaryTypeName","src":"589:6:40","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":8507,"initialValue":{"condition":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":8499,"name":"greetingBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8491,"src":"615:13:40","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":8500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"629:6:40","memberName":"length","nodeType":"MemberAccess","src":"615:20:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":8501,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"638:1:40","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"615:24:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":8503,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"614:26:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":8505,"name":"defaultGreeting","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8468,"src":"655:15:40","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":8506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"614:56:40","trueExpression":{"id":8504,"name":"_greeting","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8487,"src":"643:9:40","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"589:81:40"},{"expression":{"arguments":[{"id":8512,"name":"greeting","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8498,"src":"712:8:40","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"arguments":[{"id":8509,"name":"callAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8465,"src":"690:11:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8508,"name":"IGreeter2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8461,"src":"680:9:40","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGreeter2_$8461_$","typeString":"type(contract IGreeter2)"}},"id":8510,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"680:22:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGreeter2_$8461","typeString":"contract IGreeter2"}},"id":8511,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"703:8:40","memberName":"setGreet","nodeType":"MemberAccess","referencedDeclaration":8460,"src":"680:31:40","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) external"}},"id":8513,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"680:41:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8514,"nodeType":"ExpressionStatement","src":"680:41:40"}]},"functionSelector":"49900eec","id":8516,"implemented":true,"kind":"function","modifiers":[],"name":"newSetGreet","nameLocation":"478:11:40","nodeType":"FunctionDefinition","parameters":{"id":8488,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8487,"mutability":"mutable","name":"_greeting","nameLocation":"504:9:40","nodeType":"VariableDeclaration","scope":8516,"src":"490:23:40","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8486,"name":"string","nodeType":"ElementaryTypeName","src":"490:6:40","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"489:25:40"},"returnParameters":{"id":8489,"nodeType":"ParameterList","parameters":[],"src":"524:0:40"},"scope":8529,"src":"469:259:40","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":8527,"nodeType":"Block","src":"798:60:40","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":8522,"name":"callAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8465,"src":"825:11:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8521,"name":"IGreeter2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8461,"src":"815:9:40","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGreeter2_$8461_$","typeString":"type(contract IGreeter2)"}},"id":8523,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"815:22:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGreeter2_$8461","typeString":"contract IGreeter2"}},"id":8524,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"838:11:40","memberName":"callGreeter","nodeType":"MemberAccess","referencedDeclaration":8455,"src":"815:34:40","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_string_memory_ptr_$","typeString":"function () view external returns (string memory)"}},"id":8525,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"815:36:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":8520,"id":8526,"nodeType":"Return","src":"808:43:40"}]},"functionSelector":"70225fc7","id":8528,"implemented":true,"kind":"function","modifiers":[],"name":"newCallGreeter","nameLocation":"743:14:40","nodeType":"FunctionDefinition","parameters":{"id":8517,"nodeType":"ParameterList","parameters":[],"src":"757:2:40"},"returnParameters":{"id":8520,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8519,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8528,"src":"783:13:40","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8518,"name":"string","nodeType":"ElementaryTypeName","src":"783:6:40","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"782:15:40"},"scope":8529,"src":"734:124:40","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":8530,"src":"210:650:40","usedErrors":[]}],"src":"38:822:40"}},"contracts/Greeter.sol":{"id":41,"ast":{"absolutePath":"contracts/Greeter.sol","exportedSymbols":{"Greeter":[8570]},"id":8571,"license":"Unlicense","nodeType":"SourceUnit","nodes":[{"id":8531,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"37:23:41"},{"abstract":false,"baseContracts":[],"canonicalName":"Greeter","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":8570,"linearizedBaseContracts":[8570],"name":"Greeter","nameLocation":"71:7:41","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":8533,"mutability":"mutable","name":"greeting","nameLocation":"100:8:41","nodeType":"VariableDeclaration","scope":8570,"src":"85:23:41","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":8532,"name":"string","nodeType":"ElementaryTypeName","src":"85:6:41","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"anonymous":false,"eventSelector":"4dabe8361a35a905ec9d530e301d2e5c6cf44c65cdd7768f522a77a373436da9","id":8537,"name":"SetGreeting","nameLocation":"121:11:41","nodeType":"EventDefinition","parameters":{"id":8536,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8535,"indexed":false,"mutability":"mutable","name":"greeting","nameLocation":"140:8:41","nodeType":"VariableDeclaration","scope":8537,"src":"133:15:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8534,"name":"string","nodeType":"ElementaryTypeName","src":"133:6:41","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"132:17:41"},"src":"115:35:41"},{"body":{"id":8546,"nodeType":"Block","src":"193:37:41","statements":[{"expression":{"id":8544,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8542,"name":"greeting","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8533,"src":"203:8:41","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8543,"name":"_greeting","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8539,"src":"214:9:41","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"203:20:41","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":8545,"nodeType":"ExpressionStatement","src":"203:20:41"}]},"id":8547,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":8540,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8539,"mutability":"mutable","name":"_greeting","nameLocation":"182:9:41","nodeType":"VariableDeclaration","scope":8547,"src":"168:23:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8538,"name":"string","nodeType":"ElementaryTypeName","src":"168:6:41","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"167:25:41"},"returnParameters":{"id":8541,"nodeType":"ParameterList","parameters":[],"src":"193:0:41"},"scope":8570,"src":"156:74:41","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":8554,"nodeType":"Block","src":"289:32:41","statements":[{"expression":{"id":8552,"name":"greeting","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8533,"src":"306:8:41","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":8551,"id":8553,"nodeType":"Return","src":"299:15:41"}]},"functionSelector":"cfae3217","id":8555,"implemented":true,"kind":"function","modifiers":[],"name":"greet","nameLocation":"245:5:41","nodeType":"FunctionDefinition","parameters":{"id":8548,"nodeType":"ParameterList","parameters":[],"src":"250:2:41"},"returnParameters":{"id":8551,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8550,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8555,"src":"274:13:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8549,"name":"string","nodeType":"ElementaryTypeName","src":"274:6:41","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"273:15:41"},"scope":8570,"src":"236:85:41","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":8568,"nodeType":"Block","src":"380:75:41","statements":[{"expression":{"id":8562,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8560,"name":"greeting","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8533,"src":"390:8:41","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8561,"name":"_greeting","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8557,"src":"401:9:41","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"390:20:41","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":8563,"nodeType":"ExpressionStatement","src":"390:20:41"},{"eventCall":{"arguments":[{"id":8565,"name":"_greeting","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8557,"src":"438:9:41","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":8564,"name":"SetGreeting","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8537,"src":"426:11:41","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":8566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"426:22:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8567,"nodeType":"EmitStatement","src":"421:27:41"}]},"functionSelector":"a4136862","id":8569,"implemented":true,"kind":"function","modifiers":[],"name":"setGreeting","nameLocation":"336:11:41","nodeType":"FunctionDefinition","parameters":{"id":8558,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8557,"mutability":"mutable","name":"_greeting","nameLocation":"362:9:41","nodeType":"VariableDeclaration","scope":8569,"src":"348:23:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8556,"name":"string","nodeType":"ElementaryTypeName","src":"348:6:41","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"347:25:41"},"returnParameters":{"id":8559,"nodeType":"ParameterList","parameters":[],"src":"380:0:41"},"scope":8570,"src":"327:128:41","stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"scope":8571,"src":"62:395:41","usedErrors":[]}],"src":"37:420:41"}},"contracts/L1.sol":{"id":42,"ast":{"absolutePath":"contracts/L1.sol","exportedSymbols":{"Context":[8135],"ERC20":[6336],"IERC20":[6414],"IERC20Metadata":[6439],"L1":[8599]},"id":8600,"license":"Unlicense","nodeType":"SourceUnit","nodes":[{"id":8572,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"37:23:42"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/ERC20.sol","file":"@openzeppelin/contracts/token/ERC20/ERC20.sol","id":8573,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8600,"sourceUnit":6337,"src":"62:55:42","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":8574,"name":"ERC20","nameLocations":["134:5:42"],"nodeType":"IdentifierPath","referencedDeclaration":6336,"src":"134:5:42"},"id":8575,"nodeType":"InheritanceSpecifier","src":"134:5:42"}],"canonicalName":"L1","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":8599,"linearizedBaseContracts":[8599,6336,6439,6414,8135],"name":"L1","nameLocation":"128:2:42","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":8583,"mutability":"constant","name":"_initial_supply","nameLocation":"163:15:42","nodeType":"VariableDeclaration","scope":8599,"src":"146:52:42","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8576,"name":"uint256","nodeType":"ElementaryTypeName","src":"146:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1000000000000000000000_by_1","typeString":"int_const 1000000000000000000000"},"id":8582,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31303030","id":8577,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"181:4:42","typeDescriptions":{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"},"value":"1000"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"id":8580,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":8578,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"189:2:42","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3138","id":8579,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"195:2:42","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"src":"189:8:42","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"}}],"id":8581,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"188:10:42","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"}},"src":"181:17:42","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000000_by_1","typeString":"int_const 1000000000000000000000"}},"visibility":"internal"},{"body":{"id":8597,"nodeType":"Block","src":"274:51:42","statements":[{"expression":{"arguments":[{"id":8593,"name":"_recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8585,"src":"290:10:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8594,"name":"_initial_supply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8583,"src":"302:15:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8592,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6153,"src":"284:5:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":8595,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"284:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8596,"nodeType":"ExpressionStatement","src":"284:34:42"}]},"id":8598,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"hexValue":"4c3120455243323020746f6b656e","id":8588,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"250:16:42","typeDescriptions":{"typeIdentifier":"t_stringliteral_df2a82d94c23001c85479c8587d7fc2027045acd81a75cb19edc829d78508191","typeString":"literal_string \"L1 ERC20 token\""},"value":"L1 ERC20 token"},{"hexValue":"4c31","id":8589,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"268:4:42","typeDescriptions":{"typeIdentifier":"t_stringliteral_8d5ddb982f42939b1ffc8518aca2cf7171ca205361facaa9f4a449525ff4c432","typeString":"literal_string \"L1\""},"value":"L1"}],"id":8590,"kind":"baseConstructorSpecifier","modifierName":{"id":8587,"name":"ERC20","nameLocations":["244:5:42"],"nodeType":"IdentifierPath","referencedDeclaration":6336,"src":"244:5:42"},"nodeType":"ModifierInvocation","src":"244:29:42"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":8586,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8585,"mutability":"mutable","name":"_recipient","nameLocation":"225:10:42","nodeType":"VariableDeclaration","scope":8598,"src":"217:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8584,"name":"address","nodeType":"ElementaryTypeName","src":"217:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"216:20:42"},"returnParameters":{"id":8591,"nodeType":"ParameterList","parameters":[],"src":"274:0:42"},"scope":8599,"src":"205:120:42","stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"scope":8600,"src":"119:208:42","usedErrors":[]}],"src":"37:290:42"}},"contracts/L2.sol":{"id":43,"ast":{"absolutePath":"contracts/L2.sol","exportedSymbols":{"Context":[8135],"ERC20":[6336],"IERC20":[6414],"IERC20Metadata":[6439],"L2":[8627]},"id":8628,"license":"Unlicense","nodeType":"SourceUnit","nodes":[{"id":8601,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"37:23:43"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/ERC20.sol","file":"@openzeppelin/contracts/token/ERC20/ERC20.sol","id":8602,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8628,"sourceUnit":6337,"src":"62:55:43","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":8603,"name":"ERC20","nameLocations":["134:5:43"],"nodeType":"IdentifierPath","referencedDeclaration":6336,"src":"134:5:43"},"id":8604,"nodeType":"InheritanceSpecifier","src":"134:5:43"}],"canonicalName":"L2","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":8627,"linearizedBaseContracts":[8627,6336,6439,6414,8135],"name":"L2","nameLocation":"128:2:43","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":8612,"mutability":"constant","name":"_initial_supply","nameLocation":"163:15:43","nodeType":"VariableDeclaration","scope":8627,"src":"146:52:43","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8605,"name":"uint256","nodeType":"ElementaryTypeName","src":"146:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1000000000000000000000_by_1","typeString":"int_const 1000000000000000000000"},"id":8611,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31303030","id":8606,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"181:4:43","typeDescriptions":{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"},"value":"1000"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"id":8609,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":8607,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"189:2:43","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3138","id":8608,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"195:2:43","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"src":"189:8:43","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"}}],"id":8610,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"188:10:43","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"}},"src":"181:17:43","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000000_by_1","typeString":"int_const 1000000000000000000000"}},"visibility":"internal"},{"body":{"id":8625,"nodeType":"Block","src":"249:51:43","statements":[{"expression":{"arguments":[{"expression":{"id":8620,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"265:3:43","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"269:6:43","memberName":"sender","nodeType":"MemberAccess","src":"265:10:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8622,"name":"_initial_supply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8612,"src":"277:15:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8619,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6153,"src":"259:5:43","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":8623,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"259:34:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8624,"nodeType":"ExpressionStatement","src":"259:34:43"}]},"id":8626,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"hexValue":"4c3220455243323020746f6b656e","id":8615,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"225:16:43","typeDescriptions":{"typeIdentifier":"t_stringliteral_ea48891da99e4f4c86218504eeaf64b8f7bc76705ce60cb4be90e9b4a6fdea11","typeString":"literal_string \"L2 ERC20 token\""},"value":"L2 ERC20 token"},{"hexValue":"4c32","id":8616,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"243:4:43","typeDescriptions":{"typeIdentifier":"t_stringliteral_d395944876b8278a9c3208f7817cf6503c3135a3a035392a707e054c5dbd54e4","typeString":"literal_string \"L2\""},"value":"L2"}],"id":8617,"kind":"baseConstructorSpecifier","modifierName":{"id":8614,"name":"ERC20","nameLocations":["219:5:43"],"nodeType":"IdentifierPath","referencedDeclaration":6336,"src":"219:5:43"},"nodeType":"ModifierInvocation","src":"219:29:43"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":8613,"nodeType":"ParameterList","parameters":[],"src":"216:2:43"},"returnParameters":{"id":8618,"nodeType":"ParameterList","parameters":[],"src":"249:0:43"},"scope":8627,"src":"205:95:43","stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"scope":8628,"src":"119:183:43","usedErrors":[]}],"src":"37:265:43"}},"contracts/Middle.sol":{"id":44,"ast":{"absolutePath":"contracts/Middle.sol","exportedSymbols":{"IGreeter":[8640],"Middle":[8678]},"id":8679,"license":"Unlicense","nodeType":"SourceUnit","nodes":[{"id":8629,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"38:23:44"},{"abstract":false,"baseContracts":[],"canonicalName":"IGreeter","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":8640,"linearizedBaseContracts":[8640],"name":"IGreeter","nameLocation":"73:8:44","nodeType":"ContractDefinition","nodes":[{"functionSelector":"cfae3217","id":8634,"implemented":false,"kind":"function","modifiers":[],"name":"greet","nameLocation":"97:5:44","nodeType":"FunctionDefinition","parameters":{"id":8630,"nodeType":"ParameterList","parameters":[],"src":"102:2:44"},"returnParameters":{"id":8633,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8632,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8634,"src":"128:13:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8631,"name":"string","nodeType":"ElementaryTypeName","src":"128:6:44","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"127:15:44"},"scope":8640,"src":"88:55:44","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"a4136862","id":8639,"implemented":false,"kind":"function","modifiers":[],"name":"setGreeting","nameLocation":"157:11:44","nodeType":"FunctionDefinition","parameters":{"id":8637,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8636,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8639,"src":"169:13:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8635,"name":"string","nodeType":"ElementaryTypeName","src":"169:6:44","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"168:15:44"},"returnParameters":{"id":8638,"nodeType":"ParameterList","parameters":[],"src":"192:0:44"},"scope":8640,"src":"148:45:44","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":8679,"src":"63:132:44","usedErrors":[]},{"abstract":false,"baseContracts":[],"canonicalName":"Middle","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":8678,"linearizedBaseContracts":[8678],"name":"Middle","nameLocation":"206:6:44","nodeType":"ContractDefinition","nodes":[{"constant":false,"functionSelector":"26b85ee1","id":8642,"mutability":"mutable","name":"myAddress","nameLocation":"234:9:44","nodeType":"VariableDeclaration","scope":8678,"src":"219:24:44","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8641,"name":"address","nodeType":"ElementaryTypeName","src":"219:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"body":{"id":8651,"nodeType":"Block","src":"282:39:44","statements":[{"expression":{"id":8649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8647,"name":"myAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8642,"src":"292:9:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8648,"name":"_myAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8644,"src":"304:10:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"292:22:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":8650,"nodeType":"ExpressionStatement","src":"292:22:44"}]},"id":8652,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":8645,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8644,"mutability":"mutable","name":"_myAddress","nameLocation":"270:10:44","nodeType":"VariableDeclaration","scope":8652,"src":"262:18:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8643,"name":"address","nodeType":"ElementaryTypeName","src":"262:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"261:20:44"},"returnParameters":{"id":8646,"nodeType":"ParameterList","parameters":[],"src":"282:0:44"},"scope":8678,"src":"250:71:44","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":8664,"nodeType":"Block","src":"381:61:44","statements":[{"expression":{"arguments":[{"id":8661,"name":"newGreeting","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8654,"src":"423:11:44","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"arguments":[{"id":8658,"name":"myAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8642,"src":"400:9:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8657,"name":"IGreeter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8640,"src":"391:8:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGreeter_$8640_$","typeString":"type(contract IGreeter)"}},"id":8659,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"391:19:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGreeter_$8640","typeString":"contract IGreeter"}},"id":8660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"411:11:44","memberName":"setGreeting","nodeType":"MemberAccess","referencedDeclaration":8639,"src":"391:31:44","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) external"}},"id":8662,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"391:44:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8663,"nodeType":"ExpressionStatement","src":"391:44:44"}]},"functionSelector":"9698086b","id":8665,"implemented":true,"kind":"function","modifiers":[],"name":"setGreet","nameLocation":"336:8:44","nodeType":"FunctionDefinition","parameters":{"id":8655,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8654,"mutability":"mutable","name":"newGreeting","nameLocation":"359:11:44","nodeType":"VariableDeclaration","scope":8665,"src":"345:25:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8653,"name":"string","nodeType":"ElementaryTypeName","src":"345:6:44","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"344:27:44"},"returnParameters":{"id":8656,"nodeType":"ParameterList","parameters":[],"src":"381:0:44"},"scope":8678,"src":"327:115:44","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":8676,"nodeType":"Block","src":"509:51:44","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":8671,"name":"myAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8642,"src":"535:9:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8670,"name":"IGreeter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8640,"src":"526:8:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGreeter_$8640_$","typeString":"type(contract IGreeter)"}},"id":8672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"526:19:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGreeter_$8640","typeString":"contract IGreeter"}},"id":8673,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"546:5:44","memberName":"greet","nodeType":"MemberAccess","referencedDeclaration":8634,"src":"526:25:44","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_string_memory_ptr_$","typeString":"function () view external returns (string memory)"}},"id":8674,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"526:27:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":8669,"id":8675,"nodeType":"Return","src":"519:34:44"}]},"functionSelector":"d7b4291c","id":8677,"implemented":true,"kind":"function","modifiers":[],"name":"callGreeter","nameLocation":"457:11:44","nodeType":"FunctionDefinition","parameters":{"id":8666,"nodeType":"ParameterList","parameters":[],"src":"468:2:44"},"returnParameters":{"id":8669,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8668,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8677,"src":"494:13:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8667,"name":"string","nodeType":"ElementaryTypeName","src":"494:6:44","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"493:15:44"},"scope":8678,"src":"448:112:44","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":8679,"src":"197:365:44","usedErrors":[]}],"src":"38:524:44"}},"contracts/MultiTransfer.sol":{"id":45,"ast":{"absolutePath":"contracts/MultiTransfer.sol","exportedSymbols":{"Address":[8113],"IERC20":[6414],"SafeERC20":[6663],"TokenF2L2":[8843]},"id":8844,"license":"MIT","nodeType":"SourceUnit","nodes":[{"absolutePath":"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol","file":"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol","id":8680,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8844,"sourceUnit":6664,"src":"63:65:45","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Address.sol","file":"@openzeppelin/contracts/utils/Address.sol","id":8681,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8844,"sourceUnit":8114,"src":"129:51:45","symbolAliases":[],"unitAlias":""},{"id":8682,"literals":["solidity","^","0.8",".16"],"nodeType":"PragmaDirective","src":"214:24:45"},{"abstract":false,"baseContracts":[],"canonicalName":"TokenF2L2","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":8843,"linearizedBaseContracts":[8843],"name":"TokenF2L2","nameLocation":"250:9:45","nodeType":"ContractDefinition","nodes":[{"global":false,"id":8686,"libraryName":{"id":8683,"name":"SafeERC20","nameLocations":["329:9:45"],"nodeType":"IdentifierPath","referencedDeclaration":6663,"src":"329:9:45"},"nodeType":"UsingForDirective","src":"323:27:45","typeName":{"id":8685,"nodeType":"UserDefinedTypeName","pathNode":{"id":8684,"name":"IERC20","nameLocations":["343:6:45"],"nodeType":"IdentifierPath","referencedDeclaration":6414,"src":"343:6:45"},"referencedDeclaration":6414,"src":"343:6:45","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6414","typeString":"contract IERC20"}}},{"global":false,"id":8689,"libraryName":{"id":8687,"name":"Address","nameLocations":["361:7:45"],"nodeType":"IdentifierPath","referencedDeclaration":8113,"src":"361:7:45"},"nodeType":"UsingForDirective","src":"355:34:45","typeName":{"id":8688,"name":"address","nodeType":"ElementaryTypeName","src":"373:15:45","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}},{"body":{"id":8695,"nodeType":"Block","src":"473:22:45","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":8692,"name":"pay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8709,"src":"483:3:45","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":8693,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"483:5:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8694,"nodeType":"ExpressionStatement","src":"483:5:45"}]},"id":8696,"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":8690,"nodeType":"ParameterList","parameters":[],"src":"453:2:45"},"returnParameters":{"id":8691,"nodeType":"ParameterList","parameters":[],"src":"473:0:45"},"scope":8843,"src":"446:49:45","stateMutability":"payable","virtual":false,"visibility":"external"},{"body":{"id":8708,"nodeType":"Block","src":"531:66:45","statements":[{"eventCall":{"arguments":[{"expression":{"id":8700,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"551:3:45","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8701,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"555:6:45","memberName":"sender","nodeType":"MemberAccess","src":"551:10:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":8702,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"563:3:45","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8703,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"567:5:45","memberName":"value","nodeType":"MemberAccess","src":"563:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":8704,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"574:5:45","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":8705,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"580:9:45","memberName":"timestamp","nodeType":"MemberAccess","src":"574:15:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8699,"name":"Paid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8741,"src":"546:4:45","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":8706,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"546:44:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8707,"nodeType":"EmitStatement","src":"541:49:45"}]},"functionSelector":"1b9265b8","id":8709,"implemented":true,"kind":"function","modifiers":[],"name":"pay","nameLocation":"510:3:45","nodeType":"FunctionDefinition","parameters":{"id":8697,"nodeType":"ParameterList","parameters":[],"src":"513:2:45"},"returnParameters":{"id":8698,"nodeType":"ParameterList","parameters":[],"src":"531:0:45"},"scope":8843,"src":"501:96:45","stateMutability":"payable","virtual":false,"visibility":"public"},{"body":{"id":8720,"nodeType":"Block","src":"652:45:45","statements":[{"expression":{"expression":{"arguments":[{"id":8716,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"677:4:45","typeDescriptions":{"typeIdentifier":"t_contract$_TokenF2L2_$8843","typeString":"contract TokenF2L2"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TokenF2L2_$8843","typeString":"contract TokenF2L2"}],"id":8715,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"669:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8714,"name":"address","nodeType":"ElementaryTypeName","src":"669:7:45","typeDescriptions":{}}},"id":8717,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"669:13:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":8718,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"683:7:45","memberName":"balance","nodeType":"MemberAccess","src":"669:21:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8713,"id":8719,"nodeType":"Return","src":"662:28:45"}]},"functionSelector":"12065fe0","id":8721,"implemented":true,"kind":"function","modifiers":[],"name":"getBalance","nameLocation":"612:10:45","nodeType":"FunctionDefinition","parameters":{"id":8710,"nodeType":"ParameterList","parameters":[],"src":"622:2:45"},"returnParameters":{"id":8713,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8712,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8721,"src":"646:4:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8711,"name":"uint","nodeType":"ElementaryTypeName","src":"646:4:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"645:6:45"},"scope":8843,"src":"603:94:45","stateMutability":"view","virtual":false,"visibility":"public"},{"constant":false,"functionSelector":"8da5cb5b","id":8723,"mutability":"mutable","name":"owner","nameLocation":"718:5:45","nodeType":"VariableDeclaration","scope":8843,"src":"703:20:45","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8722,"name":"address","nodeType":"ElementaryTypeName","src":"703:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"body":{"id":8732,"nodeType":"Block","src":"758:31:45","statements":[{"expression":{"id":8730,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8728,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8723,"src":"768:5:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8729,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8725,"src":"776:6:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"768:14:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":8731,"nodeType":"ExpressionStatement","src":"768:14:45"}]},"id":8733,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":8726,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8725,"mutability":"mutable","name":"_owner","nameLocation":"750:6:45","nodeType":"VariableDeclaration","scope":8733,"src":"742:14:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8724,"name":"address","nodeType":"ElementaryTypeName","src":"742:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"741:16:45"},"returnParameters":{"id":8727,"nodeType":"ParameterList","parameters":[],"src":"758:0:45"},"scope":8843,"src":"730:59:45","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"anonymous":false,"eventSelector":"df9a51129930649214df58f542322c245372c6f2fa6fc3c9b40d927c597cd230","id":8741,"name":"Paid","nameLocation":"801:4:45","nodeType":"EventDefinition","parameters":{"id":8740,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8735,"indexed":true,"mutability":"mutable","name":"_from","nameLocation":"822:5:45","nodeType":"VariableDeclaration","scope":8741,"src":"806:21:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8734,"name":"address","nodeType":"ElementaryTypeName","src":"806:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8737,"indexed":false,"mutability":"mutable","name":"_amount","nameLocation":"834:7:45","nodeType":"VariableDeclaration","scope":8741,"src":"829:12:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8736,"name":"uint","nodeType":"ElementaryTypeName","src":"829:4:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8739,"indexed":false,"mutability":"mutable","name":"_timestamp","nameLocation":"848:10:45","nodeType":"VariableDeclaration","scope":8741,"src":"843:15:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8738,"name":"uint","nodeType":"ElementaryTypeName","src":"843:4:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"805:54:45"},"src":"795:65:45"},{"body":{"id":8752,"nodeType":"Block","src":"887:93:45","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":8747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8744,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8723,"src":"905:5:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":8745,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"914:3:45","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8746,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"918:6:45","memberName":"sender","nodeType":"MemberAccess","src":"914:10:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"905:19:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"596f7520617265206e6f7420746865206f776e6572","id":8748,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"926:23:45","typeDescriptions":{"typeIdentifier":"t_stringliteral_54087df48532e530810543784e49c855ce792e1f48abc8afd291ecd3c5a906fc","typeString":"literal_string \"You are not the owner\""},"value":"You are not the owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_54087df48532e530810543784e49c855ce792e1f48abc8afd291ecd3c5a906fc","typeString":"literal_string \"You are not the owner\""}],"id":8743,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"897:7:45","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"897:53:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8750,"nodeType":"ExpressionStatement","src":"897:53:45"},{"id":8751,"nodeType":"PlaceholderStatement","src":"960:1:45"}]},"id":8753,"name":"onlyOwner","nameLocation":"875:9:45","nodeType":"ModifierDefinition","parameters":{"id":8742,"nodeType":"ParameterList","parameters":[],"src":"884:2:45"},"src":"866:114:45","virtual":false,"visibility":"internal"},{"body":{"id":8841,"nodeType":"Block","src":"1158:924:45","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8772,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":8768,"name":"_tokenAddresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8759,"src":"1286:15:45","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":8769,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1302:6:45","memberName":"length","nodeType":"MemberAccess","src":"1286:22:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":8770,"name":"_tokenAmounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8762,"src":"1312:13:45","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":8771,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1326:6:45","memberName":"length","nodeType":"MemberAccess","src":"1312:20:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1286:46:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"417272617973206d7573742068617665207468652073616d65206c656e677468","id":8773,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1334:34:45","typeDescriptions":{"typeIdentifier":"t_stringliteral_23c363817f9879f3888017ece213d7d3388c222537fa7decb7e0d1ac65953f19","typeString":"literal_string \"Arrays must have the same length\""},"value":"Arrays must have the same length"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_23c363817f9879f3888017ece213d7d3388c222537fa7decb7e0d1ac65953f19","typeString":"literal_string \"Arrays must have the same length\""}],"id":8767,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1278:7:45","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1278:91:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8775,"nodeType":"ExpressionStatement","src":"1278:91:45"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8781,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":8777,"name":"_tokenAddresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8759,"src":"1387:15:45","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":8778,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1403:6:45","memberName":"length","nodeType":"MemberAccess","src":"1387:22:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":8779,"name":"_recivers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8756,"src":"1413:9:45","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":8780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1423:6:45","memberName":"length","nodeType":"MemberAccess","src":"1413:16:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1387:42:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"417272617973206d7573742068617665207468652073616d65206c656e677468","id":8782,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1431:34:45","typeDescriptions":{"typeIdentifier":"t_stringliteral_23c363817f9879f3888017ece213d7d3388c222537fa7decb7e0d1ac65953f19","typeString":"literal_string \"Arrays must have the same length\""},"value":"Arrays must have the same length"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_23c363817f9879f3888017ece213d7d3388c222537fa7decb7e0d1ac65953f19","typeString":"literal_string \"Arrays must have the same length\""}],"id":8776,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1379:7:45","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8783,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1379:87:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8784,"nodeType":"ExpressionStatement","src":"1379:87:45"},{"body":{"id":8839,"nodeType":"Block","src":"1610:466:45","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":8803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":8796,"name":"_tokenAddresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8759,"src":"1628:15:45","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":8798,"indexExpression":{"id":8797,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8786,"src":"1644:1:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1628:18:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":8801,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1658:1:45","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":8800,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1650:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8799,"name":"address","nodeType":"ElementaryTypeName","src":"1650:7:45","typeDescriptions":{}}},"id":8802,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1650:10:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1628:32:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":8837,"nodeType":"Block","src":"1750:316:45","statements":[{"assignments":[8819],"declarations":[{"constant":false,"id":8819,"mutability":"mutable","name":"token","nameLocation":"1875:5:45","nodeType":"VariableDeclaration","scope":8837,"src":"1868:12:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6414","typeString":"contract IERC20"},"typeName":{"id":8818,"nodeType":"UserDefinedTypeName","pathNode":{"id":8817,"name":"IERC20","nameLocations":["1868:6:45"],"nodeType":"IdentifierPath","referencedDeclaration":6414,"src":"1868:6:45"},"referencedDeclaration":6414,"src":"1868:6:45","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6414","typeString":"contract IERC20"}},"visibility":"internal"}],"id":8825,"initialValue":{"arguments":[{"baseExpression":{"id":8821,"name":"_tokenAddresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8759,"src":"1890:15:45","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":8823,"indexExpression":{"id":8822,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8786,"src":"1906:1:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1890:18:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8820,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6414,"src":"1883:6:45","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$6414_$","typeString":"type(contract IERC20)"}},"id":8824,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1883:26:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6414","typeString":"contract IERC20"}},"nodeType":"VariableDeclarationStatement","src":"1868:41:45"},{"expression":{"arguments":[{"baseExpression":{"id":8829,"name":"_recivers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8756,"src":"2020:9:45","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":8831,"indexExpression":{"id":8830,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8786,"src":"2030:1:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2020:12:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":8832,"name":"_tokenAmounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8762,"src":"2034:13:45","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":8834,"indexExpression":{"id":8833,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8786,"src":"2048:1:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2034:16:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":8826,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8819,"src":"2001:5:45","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6414","typeString":"contract IERC20"}},"id":8828,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2007:12:45","memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":6470,"src":"2001:18:45","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$6414_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$6414_$","typeString":"function (contract IERC20,address,uint256)"}},"id":8835,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2001:50:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8836,"nodeType":"ExpressionStatement","src":"2001:50:45"}]},"id":8838,"nodeType":"IfStatement","src":"1624:442:45","trueBody":{"id":8816,"nodeType":"Block","src":"1662:82:45","statements":[{"expression":{"arguments":[{"baseExpression":{"id":8811,"name":"_tokenAmounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8762,"src":"1712:13:45","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":8813,"indexExpression":{"id":8812,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8786,"src":"1726:1:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1712:16:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"baseExpression":{"id":8806,"name":"_recivers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8756,"src":"1688:9:45","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":8808,"indexExpression":{"id":8807,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8786,"src":"1698:1:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1688:12:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8805,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1680:8:45","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":8804,"name":"address","nodeType":"ElementaryTypeName","src":"1680:8:45","stateMutability":"payable","typeDescriptions":{}}},"id":8809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1680:21:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":8810,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1702:9:45","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":7870,"src":"1680:31:45","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":8814,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1680:49:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8815,"nodeType":"ExpressionStatement","src":"1680:49:45"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8792,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8789,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8786,"src":"1577:1:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":8790,"name":"_tokenAddresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8759,"src":"1581:15:45","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":8791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1597:6:45","memberName":"length","nodeType":"MemberAccess","src":"1581:22:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1577:26:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8840,"initializationExpression":{"assignments":[8786],"declarations":[{"constant":false,"id":8786,"mutability":"mutable","name":"i","nameLocation":"1570:1:45","nodeType":"VariableDeclaration","scope":8840,"src":"1565:6:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8785,"name":"uint","nodeType":"ElementaryTypeName","src":"1565:4:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8788,"initialValue":{"hexValue":"30","id":8787,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1574:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"1565:10:45"},"loopExpression":{"expression":{"id":8794,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"1605:3:45","subExpression":{"id":8793,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8786,"src":"1605:1:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8795,"nodeType":"ExpressionStatement","src":"1605:3:45"},"nodeType":"ForStatement","src":"1560:516:45"}]},"functionSelector":"cd72250d","id":8842,"implemented":true,"kind":"function","modifiers":[{"id":8765,"kind":"modifierInvocation","modifierName":{"id":8764,"name":"onlyOwner","nameLocations":["1148:9:45"],"nodeType":"IdentifierPath","referencedDeclaration":8753,"src":"1148:9:45"},"nodeType":"ModifierInvocation","src":"1148:9:45"}],"name":"multiTransfer","nameLocation":"995:13:45","nodeType":"FunctionDefinition","parameters":{"id":8763,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8756,"mutability":"mutable","name":"_recivers","nameLocation":"1035:9:45","nodeType":"VariableDeclaration","scope":8842,"src":"1018:26:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":8754,"name":"address","nodeType":"ElementaryTypeName","src":"1018:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":8755,"nodeType":"ArrayTypeName","src":"1018:9:45","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":8759,"mutability":"mutable","name":"_tokenAddresses","nameLocation":"1071:15:45","nodeType":"VariableDeclaration","scope":8842,"src":"1054:32:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":8757,"name":"address","nodeType":"ElementaryTypeName","src":"1054:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":8758,"nodeType":"ArrayTypeName","src":"1054:9:45","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":8762,"mutability":"mutable","name":"_tokenAmounts","nameLocation":"1113:13:45","nodeType":"VariableDeclaration","scope":8842,"src":"1096:30:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":8760,"name":"uint256","nodeType":"ElementaryTypeName","src":"1096:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8761,"nodeType":"ArrayTypeName","src":"1096:9:45","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"1008:124:45"},"returnParameters":{"id":8766,"nodeType":"ParameterList","parameters":[],"src":"1158:0:45"},"scope":8843,"src":"986:1096:45","stateMutability":"payable","virtual":false,"visibility":"public"}],"scope":8844,"src":"241:1843:45","usedErrors":[]}],"src":"63:2022:45"}},"contracts/MyERC20.sol":{"id":46,"ast":{"absolutePath":"contracts/MyERC20.sol","exportedSymbols":{"Context":[8135],"ERC20":[6336],"IERC20":[6414],"IERC20Metadata":[6439],"MyERC20":[8895]},"id":8896,"license":"UNLICENSED","nodeType":"SourceUnit","nodes":[{"id":8845,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"40:23:46"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/ERC20.sol","file":"@openzeppelin/contracts/token/ERC20/ERC20.sol","id":8846,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8896,"sourceUnit":6337,"src":"65:55:46","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":8847,"name":"ERC20","nameLocations":["142:5:46"],"nodeType":"IdentifierPath","referencedDeclaration":6336,"src":"142:5:46"},"id":8848,"nodeType":"InheritanceSpecifier","src":"142:5:46"}],"canonicalName":"MyERC20","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":8895,"linearizedBaseContracts":[8895,6336,6439,6414,8135],"name":"MyERC20","nameLocation":"131:7:46","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":8850,"mutability":"mutable","name":"_decimals","nameLocation":"168:9:46","nodeType":"VariableDeclaration","scope":8895,"src":"154:23:46","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":8849,"name":"uint8","nodeType":"ElementaryTypeName","src":"154:5:46","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"private"},{"body":{"id":8867,"nodeType":"Block","src":"309:38:46","statements":[{"expression":{"id":8865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8863,"name":"_decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8850,"src":"319:9:46","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8864,"name":"decimals_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8856,"src":"331:9:46","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"319:21:46","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":8866,"nodeType":"ExpressionStatement","src":"319:21:46"}]},"id":8868,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":8859,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8852,"src":"293:5:46","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8860,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8854,"src":"300:7:46","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"id":8861,"kind":"baseConstructorSpecifier","modifierName":{"id":8858,"name":"ERC20","nameLocations":["287:5:46"],"nodeType":"IdentifierPath","referencedDeclaration":6336,"src":"287:5:46"},"nodeType":"ModifierInvocation","src":"287:21:46"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":8857,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8852,"mutability":"mutable","name":"name_","nameLocation":"219:5:46","nodeType":"VariableDeclaration","scope":8868,"src":"205:19:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8851,"name":"string","nodeType":"ElementaryTypeName","src":"205:6:46","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8854,"mutability":"mutable","name":"symbol_","nameLocation":"248:7:46","nodeType":"VariableDeclaration","scope":8868,"src":"234:21:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8853,"name":"string","nodeType":"ElementaryTypeName","src":"234:6:46","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8856,"mutability":"mutable","name":"decimals_","nameLocation":"271:9:46","nodeType":"VariableDeclaration","scope":8868,"src":"265:15:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":8855,"name":"uint8","nodeType":"ElementaryTypeName","src":"265:5:46","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"195:91:46"},"returnParameters":{"id":8862,"nodeType":"ParameterList","parameters":[],"src":"309:0:46"},"scope":8895,"src":"184:163:46","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":8884,"nodeType":"Block","src":"419:57:46","statements":[{"expression":{"arguments":[{"id":8878,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8870,"src":"435:3:46","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8879,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8872,"src":"440:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8877,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6153,"src":"429:5:46","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":8880,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"429:19:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8881,"nodeType":"ExpressionStatement","src":"429:19:46"},{"expression":{"hexValue":"74727565","id":8882,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"465:4:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":8876,"id":8883,"nodeType":"Return","src":"458:11:46"}]},"functionSelector":"40c10f19","id":8885,"implemented":true,"kind":"function","modifiers":[],"name":"mint","nameLocation":"362:4:46","nodeType":"FunctionDefinition","parameters":{"id":8873,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8870,"mutability":"mutable","name":"_to","nameLocation":"375:3:46","nodeType":"VariableDeclaration","scope":8885,"src":"367:11:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8869,"name":"address","nodeType":"ElementaryTypeName","src":"367:7:46","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8872,"mutability":"mutable","name":"_amount","nameLocation":"388:7:46","nodeType":"VariableDeclaration","scope":8885,"src":"380:15:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8871,"name":"uint256","nodeType":"ElementaryTypeName","src":"380:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"366:30:46"},"returnParameters":{"id":8876,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8875,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8885,"src":"413:4:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8874,"name":"bool","nodeType":"ElementaryTypeName","src":"413:4:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"412:6:46"},"scope":8895,"src":"353:123:46","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[5825],"body":{"id":8893,"nodeType":"Block","src":"539:33:46","statements":[{"expression":{"id":8891,"name":"_decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8850,"src":"556:9:46","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"functionReturnParameters":8890,"id":8892,"nodeType":"Return","src":"549:16:46"}]},"functionSelector":"313ce567","id":8894,"implemented":true,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"491:8:46","nodeType":"FunctionDefinition","overrides":{"id":8887,"nodeType":"OverrideSpecifier","overrides":[],"src":"514:8:46"},"parameters":{"id":8886,"nodeType":"ParameterList","parameters":[],"src":"499:2:46"},"returnParameters":{"id":8890,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8889,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8894,"src":"532:5:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":8888,"name":"uint8","nodeType":"ElementaryTypeName","src":"532:5:46","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"531:7:46"},"scope":8895,"src":"482:90:46","stateMutability":"view","virtual":false,"visibility":"public"}],"scope":8896,"src":"122:452:46","usedErrors":[]}],"src":"40:534:46"}},"contracts/MyNFT.sol":{"id":47,"ast":{"absolutePath":"contracts/MyNFT.sol","exportedSymbols":{"Address":[8113],"Context":[8135],"Counters":[8209],"ERC165":[8436],"ERC721":[7529],"ERC721URIStorage":[7791],"IERC165":[8448],"IERC721":[7645],"IERC721Metadata":[7818],"IERC721Receiver":[7663],"MyNFT":[8955],"Ownable":[5750],"Strings":[8412]},"id":8956,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":8897,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"33:23:47"},{"absolutePath":"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol","file":"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol","id":8898,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8956,"sourceUnit":7792,"src":"58:78:47","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Counters.sol","file":"@openzeppelin/contracts/utils/Counters.sol","id":8899,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8956,"sourceUnit":8210,"src":"137:52:47","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","file":"@openzeppelin/contracts/access/Ownable.sol","id":8900,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8956,"sourceUnit":5751,"src":"190:52:47","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":8901,"name":"ERC721URIStorage","nameLocations":["262:16:47"],"nodeType":"IdentifierPath","referencedDeclaration":7791,"src":"262:16:47"},"id":8902,"nodeType":"InheritanceSpecifier","src":"262:16:47"},{"baseName":{"id":8903,"name":"Ownable","nameLocations":["280:7:47"],"nodeType":"IdentifierPath","referencedDeclaration":5750,"src":"280:7:47"},"id":8904,"nodeType":"InheritanceSpecifier","src":"280:7:47"}],"canonicalName":"MyNFT","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":8955,"linearizedBaseContracts":[8955,5750,7791,7529,7818,7645,8436,8448,8135],"name":"MyNFT","nameLocation":"253:5:47","nodeType":"ContractDefinition","nodes":[{"global":false,"id":8908,"libraryName":{"id":8905,"name":"Counters","nameLocations":["298:8:47"],"nodeType":"IdentifierPath","referencedDeclaration":8209,"src":"298:8:47"},"nodeType":"UsingForDirective","src":"292:36:47","typeName":{"id":8907,"nodeType":"UserDefinedTypeName","pathNode":{"id":8906,"name":"Counters.Counter","nameLocations":["311:8:47","320:7:47"],"nodeType":"IdentifierPath","referencedDeclaration":8141,"src":"311:16:47"},"referencedDeclaration":8141,"src":"311:16:47","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$8141_storage_ptr","typeString":"struct Counters.Counter"}}},{"constant":false,"id":8911,"mutability":"mutable","name":"_tokenIds","nameLocation":"356:9:47","nodeType":"VariableDeclaration","scope":8955,"src":"331:34:47","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$8141_storage","typeString":"struct Counters.Counter"},"typeName":{"id":8910,"nodeType":"UserDefinedTypeName","pathNode":{"id":8909,"name":"Counters.Counter","nameLocations":["331:8:47","340:7:47"],"nodeType":"IdentifierPath","referencedDeclaration":8141,"src":"331:16:47"},"referencedDeclaration":8141,"src":"331:16:47","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$8141_storage_ptr","typeString":"struct Counters.Counter"}},"visibility":"private"},{"body":{"id":8918,"nodeType":"Block","src":"407:2:47","statements":[]},"id":8919,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"hexValue":"4d794e4654","id":8914,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"391:7:47","typeDescriptions":{"typeIdentifier":"t_stringliteral_468b3d6a0127f01800703f6eaab73eb44c5dc1ea91cbcbbd87cb1a42f1460bb9","typeString":"literal_string \"MyNFT\""},"value":"MyNFT"},{"hexValue":"4e4654","id":8915,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"400:5:47","typeDescriptions":{"typeIdentifier":"t_stringliteral_9c4138cd0a1311e4748f70d0fe3dc55f0f5f75e0f20db731225cbc3b8914016a","typeString":"literal_string \"NFT\""},"value":"NFT"}],"id":8916,"kind":"baseConstructorSpecifier","modifierName":{"id":8913,"name":"ERC721","nameLocations":["384:6:47"],"nodeType":"IdentifierPath","referencedDeclaration":7529,"src":"384:6:47"},"nodeType":"ModifierInvocation","src":"384:22:47"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":8912,"nodeType":"ParameterList","parameters":[],"src":"381:2:47"},"returnParameters":{"id":8917,"nodeType":"ParameterList","parameters":[],"src":"407:0:47"},"scope":8955,"src":"370:39:47","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":8953,"nodeType":"Block","src":"508:173:47","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":8930,"name":"_tokenIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8911,"src":"514:9:47","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$8141_storage","typeString":"struct Counters.Counter storage ref"}},"id":8932,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"524:9:47","memberName":"increment","nodeType":"MemberAccess","referencedDeclaration":8167,"src":"514:19:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Counter_$8141_storage_ptr_$returns$__$attached_to$_t_struct$_Counter_$8141_storage_ptr_$","typeString":"function (struct Counters.Counter storage pointer)"}},"id":8933,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"514:21:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8934,"nodeType":"ExpressionStatement","src":"514:21:47"},{"assignments":[8936],"declarations":[{"constant":false,"id":8936,"mutability":"mutable","name":"newItemId","nameLocation":"550:9:47","nodeType":"VariableDeclaration","scope":8953,"src":"542:17:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8935,"name":"uint256","nodeType":"ElementaryTypeName","src":"542:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8940,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":8937,"name":"_tokenIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8911,"src":"562:9:47","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$8141_storage","typeString":"struct Counters.Counter storage ref"}},"id":8938,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"572:7:47","memberName":"current","nodeType":"MemberAccess","referencedDeclaration":8153,"src":"562:17:47","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Counter_$8141_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_Counter_$8141_storage_ptr_$","typeString":"function (struct Counters.Counter storage pointer) view returns (uint256)"}},"id":8939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"562:19:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"542:39:47"},{"expression":{"arguments":[{"id":8942,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8921,"src":"593:9:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8943,"name":"newItemId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8936,"src":"604:9:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8941,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7253,"src":"587:5:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":8944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"587:27:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8945,"nodeType":"ExpressionStatement","src":"587:27:47"},{"expression":{"arguments":[{"id":8947,"name":"newItemId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8936,"src":"633:9:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8948,"name":"tokenURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8923,"src":"644:8:47","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":8946,"name":"_setTokenURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7760,"src":"620:12:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_string_memory_ptr_$returns$__$","typeString":"function (uint256,string memory)"}},"id":8949,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"620:33:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8950,"nodeType":"ExpressionStatement","src":"620:33:47"},{"expression":{"id":8951,"name":"newItemId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8936,"src":"667:9:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8929,"id":8952,"nodeType":"Return","src":"660:16:47"}]},"functionSelector":"eacabe14","id":8954,"implemented":true,"kind":"function","modifiers":[{"id":8926,"kind":"modifierInvocation","modifierName":{"id":8925,"name":"onlyOwner","nameLocations":["480:9:47"],"nodeType":"IdentifierPath","referencedDeclaration":5692,"src":"480:9:47"},"nodeType":"ModifierInvocation","src":"480:9:47"}],"name":"mintNFT","nameLocation":"422:7:47","nodeType":"FunctionDefinition","parameters":{"id":8924,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8921,"mutability":"mutable","name":"recipient","nameLocation":"438:9:47","nodeType":"VariableDeclaration","scope":8954,"src":"430:17:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8920,"name":"address","nodeType":"ElementaryTypeName","src":"430:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8923,"mutability":"mutable","name":"tokenURI","nameLocation":"463:8:47","nodeType":"VariableDeclaration","scope":8954,"src":"449:22:47","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8922,"name":"string","nodeType":"ElementaryTypeName","src":"449:6:47","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"429:43:47"},"returnParameters":{"id":8929,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8928,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8954,"src":"499:7:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8927,"name":"uint256","nodeType":"ElementaryTypeName","src":"499:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"498:9:47"},"scope":8955,"src":"413:268:47","stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"scope":8956,"src":"244:439:47","usedErrors":[]}],"src":"33:651:47"}},"contracts/MyPaymaster.sol":{"id":48,"ast":{"absolutePath":"contracts/MyPaymaster.sol","exportedSymbols":{"ACCOUNT_CODE_STORAGE_SYSTEM_CONTRACT":[969],"BOOTLOADER_FORMAL_ADDRESS":[958],"BOOTLOADER_UTILITIES":[1084],"BYTECODE_COMPRESSOR_CONTRACT":[1103],"BootloaderUtilities":[905],"CREATE2_PREFIX":[1119],"CREATE_PREFIX":[1123],"CURRENT_MAX_PRECOMPILE_ADDRESS":[947],"DEPLOYER_SYSTEM_CONTRACT":[1013],"ECRECOVER_SYSTEM_CONTRACT":[931],"ETH_TOKEN_SYSTEM_CONTRACT":[1051],"EVENT_WRITER_CONTRACT":[1092],"ExecutionResult":[1577],"FORCE_DEPLOYER":[1021],"IAccountCodeStorage":[1166],"IBytecodeCompressor":[1192],"IContractDeployer":[1327],"IERC20":[6414],"IEthToken":[1400],"IImmutableSimulator":[1426],"IKnownCodesStorage":[1459],"IL1Messenger":[1477],"IMMUTABLE_SIMULATOR_SYSTEM_CONTRACT":[1002],"INonceHolder":[1571],"IPaymaster":[1616],"IPaymasterFlow":[1634],"ISystemContext":[1704],"ImmutableData":[1407],"KECCAK256_SYSTEM_CONTRACT":[1059],"KNOWN_CODE_STORAGE_CONTRACT":[991],"L1_MESSENGER_CONTRACT":[1032],"MAX_MSG_VALUE":[1115],"MAX_SYSTEM_CONTRACT_ADDRESS":[925],"MSG_VALUE_SIMULATOR_IS_SYSTEM_BIT":[1107],"MSG_VALUE_SYSTEM_CONTRACT":[1040],"MyPaymaster":[9188],"NONCE_HOLDER_SYSTEM_CONTRACT":[980],"PAYMASTER_VALIDATION_SUCCESS_MAGIC":[1582],"SHA256_SYSTEM_CONTRACT":[937],"SYSTEM_CONTEXT_CONTRACT":[1073],"SYSTEM_CONTRACTS_OFFSET":[921],"Transaction":[3746],"TransactionHelper":[4646]},"id":9189,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":8957,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:48"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"@openzeppelin/contracts/token/ERC20/IERC20.sol","id":8958,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":9189,"sourceUnit":6415,"src":"57:56:48","symbolAliases":[],"unitAlias":""},{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymaster.sol","file":"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymaster.sol","id":8962,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":9189,"sourceUnit":1617,"src":"115:155:48","symbolAliases":[{"foreign":{"id":8959,"name":"IPaymaster","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1616,"src":"123:10:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":8960,"name":"ExecutionResult","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1577,"src":"135:15:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":8961,"name":"PAYMASTER_VALIDATION_SUCCESS_MAGIC","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1582,"src":"152:34:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymasterFlow.sol","file":"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymasterFlow.sol","id":8964,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":9189,"sourceUnit":1635,"src":"271:110:48","symbolAliases":[{"foreign":{"id":8963,"name":"IPaymasterFlow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1634,"src":"279:14:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/libraries/TransactionHelper.sol","file":"@matterlabs/zksync-contracts/l2/system-contracts/libraries/TransactionHelper.sol","id":8967,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":9189,"sourceUnit":4647,"src":"382:128:48","symbolAliases":[{"foreign":{"id":8965,"name":"TransactionHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4646,"src":"390:17:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":8966,"name":"Transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3746,"src":"409:11:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/Constants.sol","file":"@matterlabs/zksync-contracts/l2/system-contracts/Constants.sol","id":8968,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":9189,"sourceUnit":1124,"src":"512:72:48","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":8969,"name":"IPaymaster","nameLocations":["610:10:48"],"nodeType":"IdentifierPath","referencedDeclaration":1616,"src":"610:10:48"},"id":8970,"nodeType":"InheritanceSpecifier","src":"610:10:48"}],"canonicalName":"MyPaymaster","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":9188,"linearizedBaseContracts":[9188,1616],"name":"MyPaymaster","nameLocation":"595:11:48","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":8973,"mutability":"constant","name":"PRICE_FOR_PAYING_FEES","nameLocation":"644:21:48","nodeType":"VariableDeclaration","scope":9188,"src":"627:42:48","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8971,"name":"uint256","nodeType":"ElementaryTypeName","src":"627:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":8972,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"668:1:48","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"constant":false,"functionSelector":"85fa292f","id":8975,"mutability":"mutable","name":"allowedToken","nameLocation":"691:12:48","nodeType":"VariableDeclaration","scope":9188,"src":"676:27:48","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8974,"name":"address","nodeType":"ElementaryTypeName","src":"676:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"body":{"id":8986,"nodeType":"Block","src":"736:212:48","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":8981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":8978,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"767:3:48","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"771:6:48","memberName":"sender","nodeType":"MemberAccess","src":"767:10:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":8980,"name":"BOOTLOADER_FORMAL_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":958,"src":"781:25:48","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"767:39:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f6e6c7920626f6f746c6f616465722063616e2063616c6c2074686973206d6574686f64","id":8982,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"820:38:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_c8a488028c5a2264f0ed659fbdf638b00e0df9eb4efe8fd49a21a57ed77d92a4","typeString":"literal_string \"Only bootloader can call this method\""},"value":"Only bootloader can call this method"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c8a488028c5a2264f0ed659fbdf638b00e0df9eb4efe8fd49a21a57ed77d92a4","typeString":"literal_string \"Only bootloader can call this method\""}],"id":8977,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"746:7:48","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8983,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"746:122:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8984,"nodeType":"ExpressionStatement","src":"746:122:48"},{"id":8985,"nodeType":"PlaceholderStatement","src":"940:1:48"}]},"id":8987,"name":"onlyBootloader","nameLocation":"719:14:48","nodeType":"ModifierDefinition","parameters":{"id":8976,"nodeType":"ParameterList","parameters":[],"src":"733:2:48"},"src":"710:238:48","virtual":false,"visibility":"internal"},{"body":{"id":8996,"nodeType":"Block","src":"982:38:48","statements":[{"expression":{"id":8994,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8992,"name":"allowedToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8975,"src":"992:12:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8993,"name":"_erc20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8989,"src":"1007:6:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"992:21:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":8995,"nodeType":"ExpressionStatement","src":"992:21:48"}]},"id":8997,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":8990,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8989,"mutability":"mutable","name":"_erc20","nameLocation":"974:6:48","nodeType":"VariableDeclaration","scope":8997,"src":"966:14:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8988,"name":"address","nodeType":"ElementaryTypeName","src":"966:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"965:16:48"},"returnParameters":{"id":8991,"nodeType":"ParameterList","parameters":[],"src":"982:0:48"},"scope":9188,"src":"954:66:48","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[1597],"body":{"id":9163,"nodeType":"Block","src":"1218:2628:48","statements":[{"expression":{"id":9013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9011,"name":"magic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9007,"src":"1291:5:48","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":9012,"name":"PAYMASTER_VALIDATION_SUCCESS_MAGIC","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1582,"src":"1299:34:48","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"1291:42:48","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":9014,"nodeType":"ExpressionStatement","src":"1291:42:48"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9020,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":9016,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9004,"src":"1364:12:48","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":9017,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1377:14:48","memberName":"paymasterInput","nodeType":"MemberAccess","referencedDeclaration":3743,"src":"1364:27:48","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":9018,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1392:6:48","memberName":"length","nodeType":"MemberAccess","src":"1364:34:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"34","id":9019,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1402:1:48","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"1364:39:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"546865207374616e64617264207061796d617374657220696e707574206d757374206265206174206c656173742034206279746573206c6f6e67","id":9021,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1417:60:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_c1e1bc8cb13cedbdf3fcc3a0b7371b00ed04219012114fb30a8e180e2b185afb","typeString":"literal_string \"The standard paymaster input must be at least 4 bytes long\""},"value":"The standard paymaster input must be at least 4 bytes long"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c1e1bc8cb13cedbdf3fcc3a0b7371b00ed04219012114fb30a8e180e2b185afb","typeString":"literal_string \"The standard paymaster input must be at least 4 bytes long\""}],"id":9015,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1343:7:48","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9022,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1343:144:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9023,"nodeType":"ExpressionStatement","src":"1343:144:48"},{"assignments":[9025],"declarations":[{"constant":false,"id":9025,"mutability":"mutable","name":"paymasterInputSelector","nameLocation":"1505:22:48","nodeType":"VariableDeclaration","scope":9163,"src":"1498:29:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":9024,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1498:6:48","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"id":9034,"initialValue":{"arguments":[{"baseExpression":{"expression":{"id":9028,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9004,"src":"1550:12:48","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":9029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1563:14:48","memberName":"paymasterInput","nodeType":"MemberAccess","referencedDeclaration":3743,"src":"1550:27:48","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"endExpression":{"hexValue":"34","id":9031,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1580:1:48","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"id":9032,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"1550:32:48","startExpression":{"hexValue":"30","id":9030,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1578:1:48","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}],"id":9027,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1530:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":9026,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1530:6:48","typeDescriptions":{}}},"id":9033,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1530:62:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"VariableDeclarationStatement","src":"1498:94:48"},{"condition":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":9039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9035,"name":"paymasterInputSelector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9025,"src":"1606:22:48","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":9036,"name":"IPaymasterFlow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1634,"src":"1632:14:48","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPaymasterFlow_$1634_$","typeString":"type(contract IPaymasterFlow)"}},"id":9037,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1647:13:48","memberName":"approvalBased","nodeType":"MemberAccess","referencedDeclaration":1633,"src":"1632:28:48","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$returns$__$","typeString":"function IPaymasterFlow.approvalBased(address,uint256,bytes calldata)"}},"id":9038,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1661:8:48","memberName":"selector","nodeType":"MemberAccess","src":"1632:37:48","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"1606:63:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":9161,"nodeType":"Block","src":"3779:61:48","statements":[{"expression":{"arguments":[{"hexValue":"556e737570706f72746564207061796d617374657220666c6f77","id":9158,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3800:28:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_f918f24cd770c456edf65ef5fed4f48b9bf4355278a3ecfd4f0ce05531705de0","typeString":"literal_string \"Unsupported paymaster flow\""},"value":"Unsupported paymaster flow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f918f24cd770c456edf65ef5fed4f48b9bf4355278a3ecfd4f0ce05531705de0","typeString":"literal_string \"Unsupported paymaster flow\""}],"id":9157,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3793:6:48","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":9159,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3793:36:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9160,"nodeType":"ExpressionStatement","src":"3793:36:48"}]},"id":9162,"nodeType":"IfStatement","src":"1602:2238:48","trueBody":{"id":9156,"nodeType":"Block","src":"1671:2102:48","statements":[{"assignments":[9041,9043,9045],"declarations":[{"constant":false,"id":9041,"mutability":"mutable","name":"token","nameLocation":"1838:5:48","nodeType":"VariableDeclaration","scope":9156,"src":"1830:13:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9040,"name":"address","nodeType":"ElementaryTypeName","src":"1830:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9043,"mutability":"mutable","name":"amount","nameLocation":"1853:6:48","nodeType":"VariableDeclaration","scope":9156,"src":"1845:14:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9042,"name":"uint256","nodeType":"ElementaryTypeName","src":"1845:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9045,"mutability":"mutable","name":"data","nameLocation":"1874:4:48","nodeType":"VariableDeclaration","scope":9156,"src":"1861:17:48","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9044,"name":"bytes","nodeType":"ElementaryTypeName","src":"1861:5:48","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":9060,"initialValue":{"arguments":[{"baseExpression":{"expression":{"id":9048,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9004,"src":"1910:12:48","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":9049,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1923:14:48","memberName":"paymasterInput","nodeType":"MemberAccess","referencedDeclaration":3743,"src":"1910:27:48","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":9051,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"1910:31:48","startExpression":{"hexValue":"34","id":9050,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1938:1:48","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}},{"components":[{"id":9053,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1960:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9052,"name":"address","nodeType":"ElementaryTypeName","src":"1960:7:48","typeDescriptions":{}}},{"id":9055,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1969:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":9054,"name":"uint256","nodeType":"ElementaryTypeName","src":"1969:7:48","typeDescriptions":{}}},{"id":9057,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1978:5:48","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":9056,"name":"bytes","nodeType":"ElementaryTypeName","src":"1978:5:48","typeDescriptions":{}}}],"id":9058,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1959:25:48","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_address_$_$_t_type$_t_uint256_$_$_t_type$_t_bytes_storage_ptr_$_$","typeString":"tuple(type(address),type(uint256),type(bytes storage pointer))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"},{"typeIdentifier":"t_tuple$_t_type$_t_address_$_$_t_type$_t_uint256_$_$_t_type$_t_bytes_storage_ptr_$_$","typeString":"tuple(type(address),type(uint256),type(bytes storage pointer))"}],"expression":{"id":9046,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1882:3:48","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9047,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1886:6:48","memberName":"decode","nodeType":"MemberAccess","src":"1882:10:48","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":9059,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1882:116:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_payable_$_t_uint256_$_t_bytes_memory_ptr_$","typeString":"tuple(address payable,uint256,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"1829:169:48"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":9064,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9062,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9041,"src":"2071:5:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":9063,"name":"allowedToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8975,"src":"2080:12:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2071:21:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e76616c696420746f6b656e","id":9065,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2094:15:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_5e70ebd1d4072d337a7fabaa7bda70fa2633d6e3f89d5cb725a16b10d07e54c6","typeString":"literal_string \"Invalid token\""},"value":"Invalid token"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5e70ebd1d4072d337a7fabaa7bda70fa2633d6e3f89d5cb725a16b10d07e54c6","typeString":"literal_string \"Invalid token\""}],"id":9061,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2063:7:48","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9066,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2063:47:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9067,"nodeType":"ExpressionStatement","src":"2063:47:48"},{"assignments":[9069],"declarations":[{"constant":false,"id":9069,"mutability":"mutable","name":"userAddress","nameLocation":"2202:11:48","nodeType":"VariableDeclaration","scope":9156,"src":"2194:19:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9068,"name":"address","nodeType":"ElementaryTypeName","src":"2194:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":9078,"initialValue":{"arguments":[{"arguments":[{"expression":{"id":9074,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9004,"src":"2232:12:48","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":9075,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2245:4:48","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":3714,"src":"2232:17:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9073,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2224:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":9072,"name":"uint160","nodeType":"ElementaryTypeName","src":"2224:7:48","typeDescriptions":{}}},"id":9076,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2224:26:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":9071,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2216:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9070,"name":"address","nodeType":"ElementaryTypeName","src":"2216:7:48","typeDescriptions":{}}},"id":9077,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2216:35:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2194:57:48"},{"assignments":[9080],"declarations":[{"constant":false,"id":9080,"mutability":"mutable","name":"thisAddress","nameLocation":"2274:11:48","nodeType":"VariableDeclaration","scope":9156,"src":"2266:19:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9079,"name":"address","nodeType":"ElementaryTypeName","src":"2266:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":9085,"initialValue":{"arguments":[{"id":9083,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2296:4:48","typeDescriptions":{"typeIdentifier":"t_contract$_MyPaymaster_$9188","typeString":"contract MyPaymaster"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MyPaymaster_$9188","typeString":"contract MyPaymaster"}],"id":9082,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2288:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9081,"name":"address","nodeType":"ElementaryTypeName","src":"2288:7:48","typeDescriptions":{}}},"id":9084,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2288:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2266:35:48"},{"assignments":[9087],"declarations":[{"constant":false,"id":9087,"mutability":"mutable","name":"providedAllowance","nameLocation":"2324:17:48","nodeType":"VariableDeclaration","scope":9156,"src":"2316:25:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9086,"name":"uint256","nodeType":"ElementaryTypeName","src":"2316:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9095,"initialValue":{"arguments":[{"id":9092,"name":"userAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9069,"src":"2385:11:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9093,"name":"thisAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9080,"src":"2414:11:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":9089,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9041,"src":"2351:5:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":9088,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6414,"src":"2344:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$6414_$","typeString":"type(contract IERC20)"}},"id":9090,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2344:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6414","typeString":"contract IERC20"}},"id":9091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2358:9:48","memberName":"allowance","nodeType":"MemberAccess","referencedDeclaration":6391,"src":"2344:23:48","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":9094,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2344:95:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2316:123:48"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9097,"name":"providedAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9087,"src":"2478:17:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":9098,"name":"PRICE_FOR_PAYING_FEES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8973,"src":"2499:21:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2478:42:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4d696e20616c6c6f77616e636520746f6f206c6f77","id":9100,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2538:23:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_18cf27683ecb996d76402e357f7b67a3641c840bc93653bfb2bf490d58786b57","typeString":"literal_string \"Min allowance too low\""},"value":"Min allowance too low"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_18cf27683ecb996d76402e357f7b67a3641c840bc93653bfb2bf490d58786b57","typeString":"literal_string \"Min allowance too low\""}],"id":9096,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2453:7:48","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9101,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2453:122:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9102,"nodeType":"ExpressionStatement","src":"2453:122:48"},{"assignments":[9104],"declarations":[{"constant":false,"id":9104,"mutability":"mutable","name":"requiredETH","nameLocation":"2783:11:48","nodeType":"VariableDeclaration","scope":9156,"src":"2775:19:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9103,"name":"uint256","nodeType":"ElementaryTypeName","src":"2775:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9110,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9109,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":9105,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9004,"src":"2797:12:48","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":9106,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2810:8:48","memberName":"gasLimit","nodeType":"MemberAccess","referencedDeclaration":3718,"src":"2797:21:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":9107,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9004,"src":"2833:12:48","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":9108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2846:12:48","memberName":"maxFeePerGas","nodeType":"MemberAccess","referencedDeclaration":3722,"src":"2833:25:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2797:61:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2775:83:48"},{"clauses":[{"block":{"id":9119,"nodeType":"Block","src":"2962:2:48","statements":[]},"errorName":"","id":9120,"nodeType":"TryCatchClause","src":"2962:2:48"},{"block":{"id":9136,"nodeType":"Block","src":"2999:477:48","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":9124,"name":"revertReason","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9122,"src":"3188:12:48","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":9125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3201:6:48","memberName":"length","nodeType":"MemberAccess","src":"3188:19:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"34","id":9126,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3211:1:48","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"3188:24:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":9134,"nodeType":"Block","src":"3313:149:48","statements":[{"AST":{"nodeType":"YulBlock","src":"3344:100:48","statements":[{"expression":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3381:4:48","type":"","value":"0x20"},{"name":"revertReason","nodeType":"YulIdentifier","src":"3387:12:48"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3377:3:48"},"nodeType":"YulFunctionCall","src":"3377:23:48"},{"arguments":[{"name":"revertReason","nodeType":"YulIdentifier","src":"3408:12:48"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3402:5:48"},"nodeType":"YulFunctionCall","src":"3402:19:48"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3370:6:48"},"nodeType":"YulFunctionCall","src":"3370:52:48"},"nodeType":"YulExpressionStatement","src":"3370:52:48"}]},"evmVersion":"paris","externalReferences":[{"declaration":9122,"isOffset":false,"isSlot":false,"src":"3387:12:48","valueSize":1},{"declaration":9122,"isOffset":false,"isSlot":false,"src":"3408:12:48","valueSize":1}],"id":9133,"nodeType":"InlineAssembly","src":"3335:109:48"}]},"id":9135,"nodeType":"IfStatement","src":"3184:278:48","trueBody":{"id":9132,"nodeType":"Block","src":"3214:93:48","statements":[{"expression":{"arguments":[{"hexValue":"4661696c656420746f207472616e7366657246726f6d2066726f6d20757365727327206163636f756e74","id":9129,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3243:44:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_bebb17e752009a3cdaecc996c1c55cdfbd61c82bec239df96addc05467b9e622","typeString":"literal_string \"Failed to transferFrom from users' account\""},"value":"Failed to transferFrom from users' account"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_bebb17e752009a3cdaecc996c1c55cdfbd61c82bec239df96addc05467b9e622","typeString":"literal_string \"Failed to transferFrom from users' account\""}],"id":9128,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3236:6:48","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":9130,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3236:52:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9131,"nodeType":"ExpressionStatement","src":"3236:52:48"}]}}]},"errorName":"","id":9137,"nodeType":"TryCatchClause","parameters":{"id":9123,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9122,"mutability":"mutable","name":"revertReason","nameLocation":"2985:12:48","nodeType":"VariableDeclaration","scope":9137,"src":"2972:25:48","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9121,"name":"bytes","nodeType":"ElementaryTypeName","src":"2972:5:48","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2971:27:48"},"src":"2965:511:48"}],"externalCall":{"arguments":[{"id":9115,"name":"userAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9069,"src":"2916:11:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9116,"name":"thisAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9080,"src":"2929:11:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9117,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9043,"src":"2942:6:48","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":9112,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9041,"src":"2896:5:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":9111,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6414,"src":"2889:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$6414_$","typeString":"type(contract IERC20)"}},"id":9113,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2889:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6414","typeString":"contract IERC20"}},"id":9114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2903:12:48","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":6413,"src":"2889:26:48","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":9118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2889:60:48","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9138,"nodeType":"TryStatement","src":"2873:603:48"},{"assignments":[9140,null],"declarations":[{"constant":false,"id":9140,"mutability":"mutable","name":"success","nameLocation":"3584:7:48","nodeType":"VariableDeclaration","scope":9156,"src":"3579:12:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9139,"name":"bool","nodeType":"ElementaryTypeName","src":"3579:4:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":9150,"initialValue":{"arguments":[{"hexValue":"","id":9148,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3683:2:48","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":9143,"name":"BOOTLOADER_FORMAL_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":958,"src":"3605:25:48","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":9142,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3597:8:48","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":9141,"name":"address","nodeType":"ElementaryTypeName","src":"3597:8:48","stateMutability":"payable","typeDescriptions":{}}},"id":9144,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3597:34:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":9145,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3632:4:48","memberName":"call","nodeType":"MemberAccess","src":"3597:39:48","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":9147,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":9146,"name":"requiredETH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9104,"src":"3657:11:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"3597:85:48","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":9149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3597:89:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"3578:108:48"},{"expression":{"arguments":[{"id":9152,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9140,"src":"3708:7:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4661696c656420746f207472616e736665722066756e647320746f2074686520626f6f746c6f61646572","id":9153,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3717:44:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_8b798862e81489aa8329b6c024a1c61a468bff5770a4c169bdd1bb4195aa53e2","typeString":"literal_string \"Failed to transfer funds to the bootloader\""},"value":"Failed to transfer funds to the bootloader"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8b798862e81489aa8329b6c024a1c61a468bff5770a4c169bdd1bb4195aa53e2","typeString":"literal_string \"Failed to transfer funds to the bootloader\""}],"id":9151,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3700:7:48","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3700:62:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9155,"nodeType":"ExpressionStatement","src":"3700:62:48"}]}}]},"functionSelector":"038a24bc","id":9164,"implemented":true,"kind":"function","modifiers":[],"name":"validateAndPayForPaymasterTransaction","nameLocation":"1035:37:48","nodeType":"FunctionDefinition","parameters":{"id":9005,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8999,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9164,"src":"1082:7:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8998,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1082:7:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":9001,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9164,"src":"1099:7:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9000,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1099:7:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":9004,"mutability":"mutable","name":"_transaction","nameLocation":"1137:12:48","nodeType":"VariableDeclaration","scope":9164,"src":"1116:33:48","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction"},"typeName":{"id":9003,"nodeType":"UserDefinedTypeName","pathNode":{"id":9002,"name":"Transaction","nameLocations":["1116:11:48"],"nodeType":"IdentifierPath","referencedDeclaration":3746,"src":"1116:11:48"},"referencedDeclaration":3746,"src":"1116:11:48","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_storage_ptr","typeString":"struct Transaction"}},"visibility":"internal"}],"src":"1072:83:48"},"returnParameters":{"id":9010,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9007,"mutability":"mutable","name":"magic","nameLocation":"1189:5:48","nodeType":"VariableDeclaration","scope":9164,"src":"1182:12:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":9006,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1182:6:48","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":9009,"mutability":"mutable","name":"context","nameLocation":"1209:7:48","nodeType":"VariableDeclaration","scope":9164,"src":"1196:20:48","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9008,"name":"bytes","nodeType":"ElementaryTypeName","src":"1196:5:48","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1181:36:48"},"scope":9188,"src":"1026:2820:48","stateMutability":"payable","virtual":false,"visibility":"external"},{"baseFunctions":[1615],"body":{"id":9182,"nodeType":"Block","src":"4087:49:48","statements":[]},"functionSelector":"817b17f0","id":9183,"implemented":true,"kind":"function","modifiers":[],"name":"postTransaction","nameLocation":"3861:15:48","nodeType":"FunctionDefinition","overrides":{"id":9180,"nodeType":"OverrideSpecifier","overrides":[],"src":"4078:8:48"},"parameters":{"id":9179,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9166,"mutability":"mutable","name":"_context","nameLocation":"3901:8:48","nodeType":"VariableDeclaration","scope":9183,"src":"3886:23:48","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":9165,"name":"bytes","nodeType":"ElementaryTypeName","src":"3886:5:48","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":9169,"mutability":"mutable","name":"_transaction","nameLocation":"3940:12:48","nodeType":"VariableDeclaration","scope":9183,"src":"3919:33:48","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction"},"typeName":{"id":9168,"nodeType":"UserDefinedTypeName","pathNode":{"id":9167,"name":"Transaction","nameLocations":["3919:11:48"],"nodeType":"IdentifierPath","referencedDeclaration":3746,"src":"3919:11:48"},"referencedDeclaration":3746,"src":"3919:11:48","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_storage_ptr","typeString":"struct Transaction"}},"visibility":"internal"},{"constant":false,"id":9171,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9183,"src":"3962:7:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9170,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3962:7:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":9173,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9183,"src":"3979:7:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9172,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3979:7:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":9176,"mutability":"mutable","name":"_txResult","nameLocation":"4012:9:48","nodeType":"VariableDeclaration","scope":9183,"src":"3996:25:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ExecutionResult_$1577","typeString":"enum ExecutionResult"},"typeName":{"id":9175,"nodeType":"UserDefinedTypeName","pathNode":{"id":9174,"name":"ExecutionResult","nameLocations":["3996:15:48"],"nodeType":"IdentifierPath","referencedDeclaration":1577,"src":"3996:15:48"},"referencedDeclaration":1577,"src":"3996:15:48","typeDescriptions":{"typeIdentifier":"t_enum$_ExecutionResult_$1577","typeString":"enum ExecutionResult"}},"visibility":"internal"},{"constant":false,"id":9178,"mutability":"mutable","name":"_maxRefundedGas","nameLocation":"4039:15:48","nodeType":"VariableDeclaration","scope":9183,"src":"4031:23:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9177,"name":"uint256","nodeType":"ElementaryTypeName","src":"4031:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3876:184:48"},"returnParameters":{"id":9181,"nodeType":"ParameterList","parameters":[],"src":"4087:0:48"},"scope":9188,"src":"3852:284:48","stateMutability":"payable","virtual":false,"visibility":"external"},{"body":{"id":9186,"nodeType":"Block","src":"4169:2:48","statements":[]},"id":9187,"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":9184,"nodeType":"ParameterList","parameters":[],"src":"4149:2:48"},"returnParameters":{"id":9185,"nodeType":"ParameterList","parameters":[],"src":"4169:0:48"},"scope":9188,"src":"4142:29:48","stateMutability":"payable","virtual":false,"visibility":"external"}],"scope":9189,"src":"586:3587:48","usedErrors":[]}],"src":"32:4142:48"}},"contracts/Root.sol":{"id":49,"ast":{"absolutePath":"contracts/Root.sol","exportedSymbols":{"Root":[9230]},"id":9231,"license":"Unlicense","nodeType":"SourceUnit","nodes":[{"id":9190,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"37:23:49"},{"abstract":false,"baseContracts":[],"canonicalName":"Root","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":9230,"linearizedBaseContracts":[9230],"name":"Root","nameLocation":"71:4:49","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":9193,"mutability":"mutable","name":"greeting","nameLocation":"97:8:49","nodeType":"VariableDeclaration","scope":9230,"src":"82:40:49","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":9191,"name":"string","nodeType":"ElementaryTypeName","src":"82:6:49","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"48692066726f6d20526f6f74","id":9192,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"108:14:49","typeDescriptions":{"typeIdentifier":"t_stringliteral_3832f93bf52b8a9c37c023b5e5542e7e5465747acaac435e6a8fc7f72cbc4f23","typeString":"literal_string \"Hi from Root\""},"value":"Hi from Root"},"visibility":"private"},{"anonymous":false,"eventSelector":"4dabe8361a35a905ec9d530e301d2e5c6cf44c65cdd7768f522a77a373436da9","id":9197,"name":"SetGreeting","nameLocation":"135:11:49","nodeType":"EventDefinition","parameters":{"id":9196,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9195,"indexed":false,"mutability":"mutable","name":"greeting","nameLocation":"154:8:49","nodeType":"VariableDeclaration","scope":9197,"src":"147:15:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9194,"name":"string","nodeType":"ElementaryTypeName","src":"147:6:49","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"146:17:49"},"src":"129:35:49"},{"body":{"id":9206,"nodeType":"Block","src":"207:37:49","statements":[{"expression":{"id":9204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9202,"name":"greeting","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9193,"src":"217:8:49","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":9203,"name":"_greeting","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9199,"src":"228:9:49","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"217:20:49","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":9205,"nodeType":"ExpressionStatement","src":"217:20:49"}]},"id":9207,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":9200,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9199,"mutability":"mutable","name":"_greeting","nameLocation":"196:9:49","nodeType":"VariableDeclaration","scope":9207,"src":"182:23:49","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9198,"name":"string","nodeType":"ElementaryTypeName","src":"182:6:49","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"181:25:49"},"returnParameters":{"id":9201,"nodeType":"ParameterList","parameters":[],"src":"207:0:49"},"scope":9230,"src":"170:74:49","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":9214,"nodeType":"Block","src":"303:32:49","statements":[{"expression":{"id":9212,"name":"greeting","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9193,"src":"320:8:49","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":9211,"id":9213,"nodeType":"Return","src":"313:15:49"}]},"functionSelector":"cfae3217","id":9215,"implemented":true,"kind":"function","modifiers":[],"name":"greet","nameLocation":"259:5:49","nodeType":"FunctionDefinition","parameters":{"id":9208,"nodeType":"ParameterList","parameters":[],"src":"264:2:49"},"returnParameters":{"id":9211,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9210,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9215,"src":"288:13:49","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9209,"name":"string","nodeType":"ElementaryTypeName","src":"288:6:49","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"287:15:49"},"scope":9230,"src":"250:85:49","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":9228,"nodeType":"Block","src":"394:75:49","statements":[{"expression":{"id":9222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9220,"name":"greeting","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9193,"src":"404:8:49","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":9221,"name":"_greeting","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9217,"src":"415:9:49","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"404:20:49","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":9223,"nodeType":"ExpressionStatement","src":"404:20:49"},{"eventCall":{"arguments":[{"id":9225,"name":"_greeting","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9217,"src":"452:9:49","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":9224,"name":"SetGreeting","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9197,"src":"440:11:49","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":9226,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"440:22:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9227,"nodeType":"EmitStatement","src":"435:27:49"}]},"functionSelector":"a4136862","id":9229,"implemented":true,"kind":"function","modifiers":[],"name":"setGreeting","nameLocation":"350:11:49","nodeType":"FunctionDefinition","parameters":{"id":9218,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9217,"mutability":"mutable","name":"_greeting","nameLocation":"376:9:49","nodeType":"VariableDeclaration","scope":9229,"src":"362:23:49","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9216,"name":"string","nodeType":"ElementaryTypeName","src":"362:6:49","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"361:25:49"},"returnParameters":{"id":9219,"nodeType":"ParameterList","parameters":[],"src":"394:0:49"},"scope":9230,"src":"341:128:49","stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"scope":9231,"src":"62:409:49","usedErrors":[]}],"src":"37:434:49"}}},"contracts":{"@matterlabs/zksync-contracts/l2/system-contracts/BootloaderUtilities.sol":{"BootloaderUtilities":{"abi":[{"inputs":[{"components":[{"internalType":"uint256","name":"txType","type":"uint256"},{"internalType":"uint256","name":"from","type":"uint256"},{"internalType":"uint256","name":"to","type":"uint256"},{"internalType":"uint256","name":"gasLimit","type":"uint256"},{"internalType":"uint256","name":"gasPerPubdataByteLimit","type":"uint256"},{"internalType":"uint256","name":"maxFeePerGas","type":"uint256"},{"internalType":"uint256","name":"maxPriorityFeePerGas","type":"uint256"},{"internalType":"uint256","name":"paymaster","type":"uint256"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256[4]","name":"reserved","type":"uint256[4]"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"bytes32[]","name":"factoryDeps","type":"bytes32[]"},{"internalType":"bytes","name":"paymasterInput","type":"bytes"},{"internalType":"bytes","name":"reservedDynamic","type":"bytes"}],"internalType":"struct Transaction","name":"_transaction","type":"tuple"}],"name":"getTransactionHashes","outputs":[{"internalType":"bytes32","name":"txHash","type":"bytes32"},{"internalType":"bytes32","name":"signedTxHash","type":"bytes32"}],"stateMutability":"view","type":"function"}],"metadata":{"optimizer_settings":"M3B3","solc_metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"txType\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"from\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"to\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasPerPubdataByteLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPriorityFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymaster\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256[4]\",\"name\":\"reserved\",\"type\":\"uint256[4]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"factoryDeps\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes\",\"name\":\"paymasterInput\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"reservedDynamic\",\"type\":\"bytes\"}],\"internalType\":\"struct Transaction\",\"name\":\"_transaction\",\"type\":\"tuple\"}],\"name\":\"getTransactionHashes\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"signedTxHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Matter Labs\",\"kind\":\"dev\",\"methods\":{\"getTransactionHashes((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256[4],bytes,bytes,bytes32[],bytes,bytes))\":{\"details\":\"txHash must be unique for all transactions.\",\"params\":{\"_transaction\":\"The transaction.\"},\"returns\":{\"txHash\":\"and signedTxHash of the transaction, i.e. the transaction hash to be used in the explorer and commits to all the fields of the transaction and the recommended hash to be signed for this transaction.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getTransactionHashes((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256[4],bytes,bytes,bytes32[],bytes,bytes))\":{\"notice\":\"Calculates the canonical transaction hash and the recommended transaction hash.\"}},\"notice\":\"A contract that provides some utility methods for the bootloader that is very hard to write in Yul.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@matterlabs/zksync-contracts/l2/system-contracts/BootloaderUtilities.sol\":\"BootloaderUtilities\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@matterlabs/zksync-contracts/l2/system-contracts/BootloaderUtilities.sol\":{\"keccak256\":\"0xc41e925966405a28c4eb0e2469a29eadd62754859fe61166fda0ceac5610c8f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6781f926f24839f6d0f5bf5927de8a7ddcf36d7b5a047faa53d530022ecf5df\",\"dweb:/ipfs/QmRtScb3y57Ygy9xctaa448ZkRA7ouaJfxhBwdKLRN6a3z\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/Constants.sol\":{\"keccak256\":\"0x29a24f62d17d95b1f8d2d79505d056e1e99d64c1d5725a4b46fbe91a965b0c60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b56691f9a23d9b0f17ea5c6e1dcce28b780a461c34eb9340f74621dad25c5468\",\"dweb:/ipfs/QmXVJTkTBWfuiGhwvxP9Ldv7oDmAd66ruLhoQemE15F6KS\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IAccountCodeStorage.sol\":{\"keccak256\":\"0xc75d1bd8895832daeb7d59734cf0afcc47628c2c343b95cc5359d6975dc3ccaa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5be4ef8c557cd5216127b14b53b881a410707387fe9b7522a95e83f3b56b0368\",\"dweb:/ipfs/QmeAnw5BjgR4Vrz5eBkWdEMajevVaDyMbSXRPALfyHYnbe\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBootloaderUtilities.sol\":{\"keccak256\":\"0xeea7b6ea35e94ae1ee84697df2053ca660e750c90e8d9e340a515200e5de52f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9e55744cabfc9ae67d43b136c9f1be3e347dd6c9d9d2777bb699fed9bc630c5\",\"dweb:/ipfs/QmQcACmf7PfijgFjLbcNi8SRZh1bUvN4abpWUGWCRnszpS\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBytecodeCompressor.sol\":{\"keccak256\":\"0xfbe695ca62333019f21a12a1636736a1e3ffaba62059d35fe24a7694cf99a1ac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e6d6bece56e8be5391e77af4b4a1eaf18ceefb500b0fd15123878ecee1ec3f8d\",\"dweb:/ipfs/QmNfy59uBQAsyfG2Vfdy38M6TYj3nLnkbb1P2euQqQEteZ\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IContractDeployer.sol\":{\"keccak256\":\"0xcd0cb526a3c1b6c8689ca2b4ff4da2f8cb2b134dce1b983b2368e4b8ff585ad3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e853769ee9769d16a4398a4351e82214801592b711c3cc6789de36e4b84cfa71\",\"dweb:/ipfs/QmeXAc1mRQVhhaXjj15XWH2YS4tjpYqMwgdQ8xLAozcdmU\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IEthToken.sol\":{\"keccak256\":\"0x12d57fed82ecc9d955e592e65d36c0256da4f8f3ce46c59e9828664bb623be2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e95d99c4202b2fbe10706e358e09135cb9ec43563db7e72fe81913f2798f4b5\",\"dweb:/ipfs/QmbPcrDDHSQsKKXq5itMttMQnRXpYpGYMLYp9BDXoVwa7k\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IImmutableSimulator.sol\":{\"keccak256\":\"0xe71d8c877f89fb8f2e3cc83d31dea978de99c35d07354052388abb6af9e9dbcc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://47b7c0601463321723b2623873fd91365a451f7d2b26216ea48d0503c38f91e8\",\"dweb:/ipfs/QmbFjjH95ekfzeR94z3AEsak1dfmZ5R8aHsbDpGwBzjSzD\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IKnownCodesStorage.sol\":{\"keccak256\":\"0xbc460f4e40c05b0b958d94bdcc23cc64f1efe887ef722c7bd4afc66583d92846\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6956ef37fb2a64c065251fdd3dc3b8ab9abb56a23c64b4ed7a3f32dce3af2472\",\"dweb:/ipfs/QmcVUbnZ6AXbmWm8CbLWM6p2pGnpy5VmgsEjQrHqWheBM5\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IL1Messenger.sol\":{\"keccak256\":\"0x13b3d1e55c9a1752885d7101a8e6886ff04c70259dff6bb672f79ce0c63952d9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35600fe3cc1ccd2029b47e2740bfd3f100a5896acd13e9eeafd583727abc4922\",\"dweb:/ipfs/QmNWWpGGpZ9r46Cw8hNVJG3vobFwk6hHhsWjRiJUo4xB4h\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/INonceHolder.sol\":{\"keccak256\":\"0x4895f2828cac4b6c3891c59214d70d3cd31cee4324a6e70c87caf90a234776fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0b7cfe1caf4c91b44111eb2ff9ffd693ad4ec3f4f09ffd6a8c65645de1c4d23e\",\"dweb:/ipfs/QmNnzanCJq3JR6JYhGhZzUAa5VQznuBN6A8bg5nNwq9wSU\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymasterFlow.sol\":{\"keccak256\":\"0xbc73dbaf894a3fa41b52195227c73a855fdfcee713fa5ab3fba0773abe61a017\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e3fc1a2b1d3e2662a378ff3499457097e9ee1918faa830e741a38102ffa534f7\",\"dweb:/ipfs/QmatFh5y3B4XFnMZWjDuyUNCZAzh1dYF2uqEJvebxmzu6R\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/ISystemContext.sol\":{\"keccak256\":\"0xeb17460013b7bd75015f14c7aa296f7613dd331ffb2dccb4e725e708aa942ffb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7b4a3d7369d59deda677a7f2997151a146084d4d8487733ddec97924455c17d7\",\"dweb:/ipfs/QmQnCanKcV8UnBWHAV5BzDxnFd3sAQPQZbRAC44JCsgN4v\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/EfficientCall.sol\":{\"keccak256\":\"0x60a1780ada0ebad3ca24743399fb56c60bed23e1218371ec56855d214d152ea6\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2c7b490a8218a2d505b25d87c3aeb40e8867ed424e6eceb7ceb7bc557a32301a\",\"dweb:/ipfs/QmWRiRc11dHg2Vjbstxp1QCLqP23FsgtJS6R1jSfWiaBrC\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/RLPEncoder.sol\":{\"keccak256\":\"0x90e89a3db5d1d31cb60835b554c751c995339c7f7204314bc546683cad733439\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://234b0b0f64b3c984689f3c8d55ab2bf2e2a51c926aa8708aa72e365e884a4c28\",\"dweb:/ipfs/QmR2FLvaUCyBS6HnhZt5cp5nmjdefjdSVSymuYVG9qToBF\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractHelper.sol\":{\"keccak256\":\"0x5eb2c2a098cf0c4cd39be7842682a20ef575dccbb5d10713f98313788212411a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e1c1a52053dcf3b347a7161655f4e8a396be0c663d0d30b60953cf4e81e68848\",\"dweb:/ipfs/Qmat7quKhUTrjLDyPcAqMdpg4KP2jQhbuoCTGq7YENXHZ4\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractsCaller.sol\":{\"keccak256\":\"0x5033a1008942cb59413e47ea876f99bc5cd2b4b72308db003579ee1add07571f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11866ee670865a59e96ee25971d32abbe6a012a65ee0eca8a37aa11fe463e81f\",\"dweb:/ipfs/Qme3fnqFJgtnpRHf21Xj8qrE46P3nKwMZTywJytRbMjBZg\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/TransactionHelper.sol\":{\"keccak256\":\"0xb8ad21ccd87317971347a7a07388a1647944f62de02dbf2594632497e3dec330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://56369664918121fd8276ef09e35e1c5d64b8616ee38ad8d88fd45fbb0ddf381d\",\"dweb:/ipfs/QmPENE5H4Lg94MCpQ7gjah26Muqhc7QYAcyXQ9sFHxViGq\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/Utils.sol\":{\"keccak256\":\"0x323d26123de797a41955a05e68be86a6fe55aa62134ec59a8f89faa5bd04c416\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e0fd70642c2ded7d486bc5a3faac55d3357c20bb10d4243fef61962cf70e641\",\"dweb:/ipfs/QmWqQ3x27z2iCNNaAfXVAJ3FX2tHvUYu1t1Ze27pdbCRbK\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x35e258421ae206f3db37281cea70871b4c3553914734aa76139a41af60ac1abb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ef94b6bc4ee356db612a1849c615f7dd4b15542d6c8584c86bb9243a7913cf0\",\"dweb:/ipfs/QmaxFj5NFpAjjitZtHPNS9PPtCuBATaRz9ktDDRCQCQ83y\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x84d04bd9b87928b261736f90a86cbb15d8cf6f80560151366370fa79313f3cb5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7fd52b96d25ba9ca6ba26a591d2726c0256185b1c107b9a06834ca9ce0bae240\",\"dweb:/ipfs/QmYbgPqwwX1hUi6HfqcPM82bqgbjLYWDCXv83NxCvivL43\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/utils/Address.sol\":{\"keccak256\":\"0xef97d5bcb540814e1371a1e355a170919412e0d6754fdaa003b6a602e6a7ea4d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41a8f093a740cdcb224e48b2c4c2868f8e86dcdd3bc96ded6b10d29714b6f9a4\",\"dweb:/ipfs/QmSsgQmcY8n1a2bCFxdpWGS3YV63TZyZD77ycNHdpMDySL\"]}},\"version\":1}","zk_version":"1.3.9"},"evm":{"legacyAssembly":null,"assembly":"\t.text\n\t.file\t\"BootloaderUtilities.sol:BootloaderUtilities\"\n\t.globl\t__entry\n__entry:\n.func_begin0:\n\tnop\tstack+=[13]\n\tadd\tr1, r0, r3\n\tshr.s\t96, r3, r3\n\tand\t@CPI0_0[0], r3, r4\n\tptr.add\tr1, r4, stack[@ptr_return_data]\n\tptr.add\tr1, r0, stack[@ptr_calldata]\n\tand\t@CPI0_0[0], r3, stack[@calldatasize]\n\tadd\t0, r0, stack[@returndatasize]\n\tadd\t128, r0, r10\n\tst.1\t64, r10\n\tand!\t1, r2, r1\n\tjump.ne\t@.BB0_1\n\tadd\tstack[@calldatasize], r0, r1\n\tsub.s!\t4, r1, r1\n\tjump.lt\t@.BB0_2\n\tptr.add\tstack[@ptr_calldata], r0, r1\n\tld\tr1, r1\n\tand\t@CPI0_2[0], r1, r1\n\tsub.s!\t@CPI0_3[0], r1, r1\n\tjump.ne\t@.BB0_2\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tadd\tstack[@calldatasize], r0, r1\n\tsub.s\t4, r1, r3\n\tadd\t@CPI0_4[0], r0, r2\n\tsub.s!\t32, r3, r4\n\tadd\t0, r0, r4\n\tadd.lt\tr2, r0, r4\n\tand\t@CPI0_4[0], r3, r5\n\tsub.s!\t0, r5, r6\n\tadd.le\t0, r0, r2\n\tsub.s!\t@CPI0_4[0], r5, r5\n\tadd.ne\tr4, r0, r2\n\tsub.s!\t0, r2, r2\n\tjump.ne\t@.BB0_2\n\tptr.add\tstack[@ptr_calldata], r0, r2\n\tptr.add.s\t4, r2, r4\n\tld\tr4, r9\n\tsub.s!\t@CPI0_5[0], r9, r4\n\tjump.gt\t@.BB0_2\n\tsub\tr3, r9, r3\n\tadd\t@CPI0_4[0], r0, r4\n\tsub.s!\t608, r3, r5\n\tadd\t0, r0, r5\n\tadd.lt\tr4, r0, r5\n\tand\t@CPI0_4[0], r3, r3\n\tsub.s!\t0, r3, r6\n\tadd.le\t0, r0, r4\n\tsub.s!\t@CPI0_4[0], r3, r3\n\tadd\tr5, r0, r3\n\tadd.eq\tr4, r0, r3\n\tsub.s!\t0, r3, r3\n\tjump.ne\t@.BB0_2\n\tadd\t4, r9, r3\n\tadd\tr3, r0, stack-[13]\n\tptr.add\tr2, r3, r3\n\tld\tr3, r3\n\tsub.s!\t0, r3, r4\n\tjump.ne\t@.BB0_11\n\tadd\tr9, r0, stack-[12]\n\tadd\t260, r9, r1\n\tptr.add\tr2, r1, r1\n\tld\tr1, r1\n\tsub.s!\t128, r1, r2\n\tjump.lt\t@.BB0_417\n\tshr.s\t128, r1, r2\n\tsub.s!\t@CPI0_13[0], r1, r3\n\tadd.le\tr1, r0, r2\n\tsub.s!\t@CPI0_13[0], r1, r3\n\tadd\t0, r0, r3\n\tadd.gt\t16, r0, r3\n\tor\t8, r3, r4\n\tsub.s!\t@CPI0_5[0], r2, r5\n\tadd.gt\tr4, r0, r3\n\tshr.s\t64, r2, r4\n\tsub.s!\t@CPI0_5[0], r2, r5\n\tadd.gt\tr4, r0, r2\n\tor\t4, r3, r4\n\tsub.s!\t@CPI0_0[0], r2, r5\n\tadd.gt\tr4, r0, r3\n\tshr.s\t32, r2, r4\n\tsub.s!\t@CPI0_0[0], r2, r5\n\tadd.gt\tr4, r0, r2\n\tor\t2, r3, r4\n\tsub.s!\t65535, r2, r5\n\tadd.gt\tr4, r0, r3\n\tshr.s\t16, r2, r4\n\tadd.gt\tr4, r0, r2\n\tsub.s!\t255, r2, r2\n\tadd\t0, r0, r2\n\tadd.gt\t1, r0, r2\n\tadd\tr3, r2, r2\n\tsub.s\t32, r0, r3\n\tadd\t65, r2, r4\n\tand\tr4, r3, r3\n\tld.1\t64, r4\n\tadd\tr4, r3, r3\n\tadd\tr4, r0, stack-[11]\n\tsub!\tr3, r4, r4\n\tadd\t0, r0, r4\n\tadd.lt\t1, r0, r4\n\tsub.s!\t@CPI0_5[0], r3, r5\n\tjump.gt\t@.BB0_19\n\tand!\t1, r4, r4\n\tjump.ne\t@.BB0_19\n\tst.1\t64, r3\n\tadd\t2, r2, r3\n\tadd\tstack-[11], r0, r9\n\tst.1.inc\tr9, r3, r3\n\tadd\t33, r2, r4\n\tshr.s!\t5, r4, r4\n\tjump.eq\t@.BB0_793\n\tadd\tstack[@calldatasize], r0, r5\n\tptr.add\tstack[@ptr_calldata], r5, r5\n\tadd\tr0, r0, r6\n.BB0_413:\n\tshl.s\t5, r6, r7\n\tadd\tr3, r7, r8\n\tptr.add\tr5, r7, r7\n\tld\tr7, r7\n\tst.1\tr8, r7\n\tadd\t1, r6, r6\n\tsub!\tr6, r4, r7\n\tjump.lt\t@.BB0_413\n.BB0_793:\n\tsub.s!\t0, r0, r4\n\tjump.eq\t@.BB0_415\n.BB0_415:\n\tld.1\tr9, r4\n\tsub.s!\t0, r4, r4\n\tjump.eq\t@.BB0_25\n\tld.1\tr3, r4\n\tand\t@CPI0_12[0], r4, r4\n\tshl.s\t248, r2, r5\n\tor\tr5, r4, r4\n\tadd\t@CPI0_14[0], r4, r4\n\tst.1\tr3, r4\n\tshl.s\t3, r2, r2\n\tsub\t248, r2, r2\n\tshl\tr1, r2, r1\n\tsub.s!\t255, r2, r2\n\tadd.gt\t0, r0, r1\n\tadd\tstack-[11], r0, r2\n\tadd\t33, r2, r2\n\tst.1\tr2, r1\n\tjump\t@.BB0_422\n.BB0_1:\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tadd\t32, r0, r1\n\tst.2\t256, r1\n\tst.2\t288, r0\n\tadd\t@CPI0_1[0], r0, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_11:\n\tsub.s!\t113, r3, r4\n\tjump.ne\t@.BB0_12\n\tadd\t452, r9, r3\n\tptr.add\tr2, r3, r3\n\tsub.s\t35, r0, r4\n\tsub\tr4, r9, r4\n\tadd\tr4, r0, stack-[11]\n\tadd\tr4, r1, r4\n\tld\tr3, r3\n\tadd\t@CPI0_4[0], r0, r5\n\tsub!\tr3, r4, r6\n\tadd\t0, r0, r6\n\tadd.ge\tr5, r0, r6\n\tand\t@CPI0_4[0], r4, r4\n\tand\t@CPI0_4[0], r3, r7\n\tsub!\tr7, r4, r8\n\tadd.ge\t0, r0, r5\n\txor\tr7, r4, r4\n\tsub.s!\t@CPI0_4[0], r4, r4\n\tadd\tr6, r0, r4\n\tadd.eq\tr5, r0, r4\n\tsub.s!\t0, r4, r4\n\tjump.ne\t@.BB0_2\n\tadd\tstack-[13], r0, r4\n\tadd\tr3, r4, r3\n\tptr.add\tr2, r3, r2\n\tld\tr2, r2\n\tadd\tr2, r0, stack-[10]\n\tsub.s!\t@CPI0_5[0], r2, r2\n\tjump.gt\t@.BB0_2\n\tadd\tstack-[10], r0, r2\n\tsub\tr1, r2, r1\n\tadd\t32, r3, r4\n\tadd\t@CPI0_4[0], r0, r2\n\tsub!\tr4, r1, r3\n\tadd\t0, r0, r3\n\tadd.gt\tr2, r0, r3\n\tand\t@CPI0_4[0], r1, r1\n\tadd\tr4, r0, stack-[9]\n\tand\t@CPI0_4[0], r4, r4\n\tsub!\tr4, r1, r5\n\tadd.ge\t0, r0, r2\n\txor\tr4, r1, r1\n\tsub.s!\t@CPI0_4[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tadd\tr10, r0, stack-[7]\n\tadd\tr9, r0, stack-[12]\n\tcontext.gas_left\tr1\n\tadd\tr1, r0, stack-[8]\n\tadd\t@CPI0_21[0], r0, r1\n\tadd\t65515, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tadd\tr1, r0, r2\n\tshr.s\t96, r2, r2\n\tand\t@CPI0_0[0], r2, stack[@returndatasize]\n\tptr.add\tr1, r0, stack[@ptr_return_data]\n\tadd\tstack-[10], r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_339\n\tadd\tstack[@calldatasize], r0, r1\n.BB0_338:\n\tshl.s\t192, r1, r1\n\tand\t@CPI0_22[0], r1, r1\n\tor\t@CPI0_21[0], r1, r1\n\tadd\t65512, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tadd\tr1, r0, r2\n\tshr.s\t96, r2, r2\n\tand\t@CPI0_0[0], r2, stack[@returndatasize]\n\tptr.add\tr1, r0, stack[@ptr_return_data]\n\tadd\tstack-[8], r0, r1\n\tsub.s!\t@CPI0_0[0], r1, r1\n\tjump.le\t@.BB0_345\n.BB0_344:\n\tld.1\t64, r1\n\tadd\t68, r1, r2\n\tadd\t@CPI0_42[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t8, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI0_7[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI0_0[0], r0, r2\n\tsub.s!\t@CPI0_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI0_8[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB0_417:\n\tld.1\t64, r2\n\tadd\tr2, r0, stack-[11]\n\tsub.s!\t@CPI0_11[0], r2, r2\n\tjump.le\t@.BB0_418\n.BB0_19:\n\tadd\t@CPI0_37[0], r0, r1\n\tst.1\t0, r1\n\tadd\t65, r0, r1\n\tst.1\t4, r1\n\tadd\t@CPI0_38[0], r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB0_12:\n\tsub.s!\t2, r3, r1\n\tjump.ne\t@.BB0_13\n\tadd\t@CPI0_9[0], r0, r1\n\tst.2\t0, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI0_10[0], r1, r1\n\tadd\t32779, r0, r2\n\tadd\tr9, r0, stack-[12]\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_2\n\tld\tr1, r2\n\tsub.s!\t128, r2, r1\n\tjump.lt\t@.BB0_177\n\tshr.s\t128, r2, r1\n\tsub.s!\t@CPI0_13[0], r2, r3\n\tadd.le\tr2, r0, r1\n\tsub.s!\t@CPI0_13[0], r2, r3\n\tadd\t0, r0, r3\n\tadd.gt\t16, r0, r3\n\tor\t8, r3, r4\n\tsub.s!\t@CPI0_5[0], r1, r5\n\tadd.gt\tr4, r0, r3\n\tshr.s\t64, r1, r4\n\tsub.s!\t@CPI0_5[0], r1, r5\n\tadd.gt\tr4, r0, r1\n\tor\t4, r3, r4\n\tsub.s!\t@CPI0_0[0], r1, r5\n\tadd.gt\tr4, r0, r3\n\tshr.s\t32, r1, r4\n\tsub.s!\t@CPI0_0[0], r1, r5\n\tadd.gt\tr4, r0, r1\n\tor\t2, r3, r4\n\tsub.s!\t65535, r1, r5\n\tadd.gt\tr4, r0, r3\n\tshr.s\t16, r1, r4\n\tadd.gt\tr4, r0, r1\n\tsub.s!\t255, r1, r1\n\tadd\t0, r0, r1\n\tadd.gt\t1, r0, r1\n\tadd\tr3, r1, r3\n\tsub.s\t32, r0, r1\n\tadd\t65, r3, r4\n\tand\tr4, r1, r4\n\tld.1\t64, r1\n\tadd\tr1, r4, r4\n\tsub!\tr4, r1, r5\n\tadd\t0, r0, r5\n\tadd.lt\t1, r0, r5\n\tsub.s!\t@CPI0_5[0], r4, r6\n\tjump.gt\t@.BB0_19\n\tand!\t1, r5, r5\n\tjump.ne\t@.BB0_19\n\tst.1\t64, r4\n\tadd\t2, r3, r4\n\tst.1.inc\tr1, r4, r4\n\tadd\t33, r3, r5\n\tshr.s!\t5, r5, r5\n\tjump.eq\t@.BB0_806\n\tadd\tstack[@calldatasize], r0, r6\n\tptr.add\tstack[@ptr_calldata], r6, r6\n\tadd\tr0, r0, r7\n.BB0_173:\n\tshl.s\t5, r7, r8\n\tadd\tr4, r8, r9\n\tptr.add\tr6, r8, r8\n\tld\tr8, r8\n\tst.1\tr9, r8\n\tadd\t1, r7, r7\n\tsub!\tr7, r5, r8\n\tjump.lt\t@.BB0_173\n.BB0_806:\n\tsub.s!\t0, r0, r5\n\tjump.eq\t@.BB0_175\n.BB0_175:\n\tld.1\tr1, r5\n\tsub.s!\t0, r5, r5\n\tjump.eq\t@.BB0_25\n\tld.1\tr4, r5\n\tand\t@CPI0_12[0], r5, r5\n\tshl.s\t248, r3, r6\n\tor\tr6, r5, r5\n\tadd\t@CPI0_14[0], r5, r5\n\tst.1\tr4, r5\n\tshl.s\t3, r3, r3\n\tsub\t248, r3, r3\n\tshl\tr2, r3, r2\n\tsub.s!\t255, r3, r3\n\tadd.gt\t0, r0, r2\n\tadd\t33, r1, r3\n\tst.1\tr3, r2\n\tjump\t@.BB0_182\n.BB0_418:\n\tadd\tstack-[11], r0, r7\n\tadd\t64, r7, r2\n\tst.1\t64, r2\n\tadd\t1, r0, r2\n\tst.1.inc\tr7, r2, r2\n\tadd\tstack[@calldatasize], r0, r3\n\tptr.add\tstack[@ptr_calldata], r3, r3\n\tadd\tr0, r0, r4\n.BB0_419:\n\tshl.s\t5, r4, r5\n\tadd\tr2, r5, r6\n\tptr.add\tr3, r5, r5\n\tld\tr5, r5\n\tst.1\tr6, r5\n\tadd!\t1, r4, r4\n\tadd\t0, r0, r5\n\tadd.eq\t1, r0, r5\n\tand!\t1, r5, r5\n\tjump.ne\t@.BB0_419\n\tld.1\tr7, r3\n\tsub.s!\t0, r3, r3\n\tjump.ne\t@.BB0_421\n.BB0_25:\n\tadd\t@CPI0_37[0], r0, r1\n\tst.1\t0, r1\n\tadd\t50, r0, r1\n\tst.1\t4, r1\n\tadd\t@CPI0_38[0], r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB0_13:\n\tsub.s!\t1, r3, r1\n\tjump.ne\t@.BB0_14\n\tadd\t@CPI0_9[0], r0, r1\n\tst.2\t0, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI0_10[0], r1, r1\n\tadd\t32779, r0, r2\n\tadd\tr9, r0, stack-[12]\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_2\n\tld\tr1, r2\n\tsub.s!\t128, r2, r1\n\tjump.lt\t@.BB0_27\n\tshr.s\t128, r2, r1\n\tsub.s!\t@CPI0_13[0], r2, r3\n\tadd.le\tr2, r0, r1\n\tsub.s!\t@CPI0_13[0], r2, r3\n\tadd\t0, r0, r3\n\tadd.gt\t16, r0, r3\n\tor\t8, r3, r4\n\tsub.s!\t@CPI0_5[0], r1, r5\n\tadd.gt\tr4, r0, r3\n\tshr.s\t64, r1, r4\n\tsub.s!\t@CPI0_5[0], r1, r5\n\tadd.gt\tr4, r0, r1\n\tor\t4, r3, r4\n\tsub.s!\t@CPI0_0[0], r1, r5\n\tadd.gt\tr4, r0, r3\n\tshr.s\t32, r1, r4\n\tsub.s!\t@CPI0_0[0], r1, r5\n\tadd.gt\tr4, r0, r1\n\tor\t2, r3, r4\n\tsub.s!\t65535, r1, r5\n\tadd.gt\tr4, r0, r3\n\tshr.s\t16, r1, r4\n\tadd.gt\tr4, r0, r1\n\tsub.s!\t255, r1, r1\n\tadd\t0, r0, r1\n\tadd.gt\t1, r0, r1\n\tadd\tr3, r1, r3\n\tsub.s\t32, r0, r1\n\tadd\t65, r3, r4\n\tand\tr4, r1, r4\n\tld.1\t64, r1\n\tadd\tr1, r4, r4\n\tsub!\tr4, r1, r5\n\tadd\t0, r0, r5\n\tadd.lt\t1, r0, r5\n\tsub.s!\t@CPI0_5[0], r4, r6\n\tjump.gt\t@.BB0_19\n\tand!\t1, r5, r5\n\tjump.ne\t@.BB0_19\n\tst.1\t64, r4\n\tadd\t2, r3, r4\n\tst.1.inc\tr1, r4, r4\n\tadd\t33, r3, r5\n\tshr.s!\t5, r5, r5\n\tjump.eq\t@.BB0_813\n\tadd\tstack[@calldatasize], r0, r6\n\tptr.add\tstack[@ptr_calldata], r6, r6\n\tadd\tr0, r0, r7\n.BB0_22:\n\tshl.s\t5, r7, r8\n\tadd\tr4, r8, r9\n\tptr.add\tr6, r8, r8\n\tld\tr8, r8\n\tst.1\tr9, r8\n\tadd\t1, r7, r7\n\tsub!\tr7, r5, r8\n\tjump.lt\t@.BB0_22\n.BB0_813:\n\tsub.s!\t0, r0, r5\n\tjump.eq\t@.BB0_24\n.BB0_24:\n\tld.1\tr1, r5\n\tsub.s!\t0, r5, r5\n\tjump.eq\t@.BB0_25\n\tld.1\tr4, r5\n\tand\t@CPI0_12[0], r5, r5\n\tshl.s\t248, r3, r6\n\tor\tr6, r5, r5\n\tadd\t@CPI0_14[0], r5, r5\n\tst.1\tr4, r5\n\tshl.s\t3, r3, r3\n\tsub\t248, r3, r3\n\tshl\tr2, r3, r2\n\tsub.s!\t255, r3, r3\n\tadd.gt\t0, r0, r2\n\tadd\t33, r1, r3\n\tst.1\tr3, r2\n\tjump\t@.BB0_32\n.BB0_421:\n\tshl.s\t248, r1, r3\n\tadd\t@CPI0_4[0], r0, r4\n\tsub.s!\t0, r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr4, r0, r1\n\tld.1\tr2, r3\n\tand\t@CPI0_12[0], r3, r3\n\tor\tr3, r1, r1\n\tst.1\tr2, r1\n.BB0_422:\n\tadd\tstack-[12], r0, r1\n\tadd\t164, r1, r1\n\tptr.add\tstack[@ptr_calldata], r1, r1\n\tld\tr1, r2\n\tsub.s!\t128, r2, r1\n\tjump.lt\t@.BB0_431\n\tshr.s\t128, r2, r1\n\tsub.s!\t@CPI0_13[0], r2, r3\n\tadd.le\tr2, r0, r1\n\tsub.s!\t@CPI0_13[0], r2, r3\n\tadd\t0, r0, r3\n\tadd.gt\t16, r0, r3\n\tor\t8, r3, r4\n\tsub.s!\t@CPI0_5[0], r1, r5\n\tadd.gt\tr4, r0, r3\n\tshr.s\t64, r1, r4\n\tsub.s!\t@CPI0_5[0], r1, r5\n\tadd.gt\tr4, r0, r1\n\tor\t4, r3, r4\n\tsub.s!\t@CPI0_0[0], r1, r5\n\tadd.gt\tr4, r0, r3\n\tshr.s\t32, r1, r4\n\tsub.s!\t@CPI0_0[0], r1, r5\n\tadd.gt\tr4, r0, r1\n\tor\t2, r3, r4\n\tsub.s!\t65535, r1, r5\n\tadd.gt\tr4, r0, r3\n\tshr.s\t16, r1, r4\n\tadd.gt\tr4, r0, r1\n\tsub.s!\t255, r1, r1\n\tadd\t0, r0, r1\n\tadd.gt\t1, r0, r1\n\tadd\tr3, r1, r3\n\tsub.s\t32, r0, r1\n\tadd\t65, r3, r4\n\tand\tr4, r1, r4\n\tld.1\t64, r1\n\tadd\tr1, r4, r4\n\tsub!\tr4, r1, r5\n\tadd\t0, r0, r5\n\tadd.lt\t1, r0, r5\n\tsub.s!\t@CPI0_5[0], r4, r6\n\tjump.gt\t@.BB0_19\n\tand!\t1, r5, r5\n\tjump.ne\t@.BB0_19\n\tst.1\t64, r4\n\tadd\t2, r3, r4\n\tst.1.inc\tr1, r4, r4\n\tadd\t33, r3, r5\n\tshr.s!\t5, r5, r5\n\tjump.eq\t@.BB0_794\n\tadd\tstack[@calldatasize], r0, r6\n\tptr.add\tstack[@ptr_calldata], r6, r6\n\tadd\tr0, r0, r7\n.BB0_427:\n\tshl.s\t5, r7, r8\n\tadd\tr4, r8, r9\n\tptr.add\tr6, r8, r8\n\tld\tr8, r8\n\tst.1\tr9, r8\n\tadd\t1, r7, r7\n\tsub!\tr7, r5, r8\n\tjump.lt\t@.BB0_427\n.BB0_794:\n\tsub.s!\t0, r0, r5\n\tjump.eq\t@.BB0_429\n.BB0_429:\n\tld.1\tr1, r5\n\tsub.s!\t0, r5, r5\n\tjump.eq\t@.BB0_25\n\tld.1\tr4, r5\n\tand\t@CPI0_12[0], r5, r5\n\tshl.s\t248, r3, r6\n\tor\tr6, r5, r5\n\tadd\t@CPI0_14[0], r5, r5\n\tst.1\tr4, r5\n\tshl.s\t3, r3, r3\n\tsub\t248, r3, r3\n\tshl\tr2, r3, r2\n\tsub.s!\t255, r3, r3\n\tadd.gt\t0, r0, r2\n\tadd\t33, r1, r3\n\tst.1\tr3, r2\n\tjump\t@.BB0_436\n.BB0_14:\n\tld.1\t64, r1\n\tadd\t68, r1, r2\n\tadd\t@CPI0_6[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t23, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI0_7[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI0_0[0], r0, r2\n\tsub.s!\t@CPI0_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI0_8[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB0_431:\n\tld.1\t64, r1\n\tsub.s!\t@CPI0_11[0], r1, r3\n\tjump.gt\t@.BB0_19\n\tadd\t64, r1, r3\n\tst.1\t64, r3\n\tadd\t1, r0, r3\n\tst.1.inc\tr1, r3, r3\n\tadd\tstack[@calldatasize], r0, r4\n\tptr.add\tstack[@ptr_calldata], r4, r4\n\tadd\tr0, r0, r5\n.BB0_433:\n\tshl.s\t5, r5, r6\n\tadd\tr3, r6, r7\n\tptr.add\tr4, r6, r6\n\tld\tr6, r6\n\tst.1\tr7, r6\n\tadd!\t1, r5, r5\n\tadd\t0, r0, r6\n\tadd.eq\t1, r0, r6\n\tand!\t1, r6, r6\n\tjump.ne\t@.BB0_433\n\tld.1\tr1, r4\n\tsub.s!\t0, r4, r4\n\tjump.eq\t@.BB0_25\n\tshl.s\t248, r2, r4\n\tadd\t@CPI0_4[0], r0, r5\n\tsub.s!\t0, r2, r2\n\tadd\tr4, r0, r2\n\tadd.eq\tr5, r0, r2\n\tld.1\tr3, r4\n\tand\t@CPI0_12[0], r4, r4\n\tor\tr4, r2, r2\n\tst.1\tr3, r2\n.BB0_436:\n\tadd\tstack-[12], r0, r2\n\tadd\t100, r2, r2\n\tptr.add\tstack[@ptr_calldata], r2, r2\n\tld\tr2, r3\n\tsub.s!\t128, r3, r2\n\tjump.lt\t@.BB0_445\n\tshr.s\t128, r3, r2\n\tsub.s!\t@CPI0_13[0], r3, r4\n\tadd.le\tr3, r0, r2\n\tsub.s!\t@CPI0_13[0], r3, r4\n\tadd\t0, r0, r4\n\tadd.gt\t16, r0, r4\n\tor\t8, r4, r5\n\tsub.s!\t@CPI0_5[0], r2, r6\n\tadd.gt\tr5, r0, r4\n\tshr.s\t64, r2, r5\n\tsub.s!\t@CPI0_5[0], r2, r6\n\tadd.gt\tr5, r0, r2\n\tor\t4, r4, r5\n\tsub.s!\t@CPI0_0[0], r2, r6\n\tadd.gt\tr5, r0, r4\n\tshr.s\t32, r2, r5\n\tsub.s!\t@CPI0_0[0], r2, r6\n\tadd.gt\tr5, r0, r2\n\tor\t2, r4, r5\n\tsub.s!\t65535, r2, r6\n\tadd.gt\tr5, r0, r4\n\tshr.s\t16, r2, r5\n\tadd.gt\tr5, r0, r2\n\tsub.s!\t255, r2, r2\n\tadd\t0, r0, r2\n\tadd.gt\t1, r0, r2\n\tadd\tr4, r2, r4\n\tsub.s\t32, r0, r2\n\tadd\t65, r4, r5\n\tand\tr5, r2, r5\n\tld.1\t64, r2\n\tadd\tr2, r5, r5\n\tsub!\tr5, r2, r6\n\tadd\t0, r0, r6\n\tadd.lt\t1, r0, r6\n\tsub.s!\t@CPI0_5[0], r5, r7\n\tjump.gt\t@.BB0_19\n\tand!\t1, r6, r6\n\tjump.ne\t@.BB0_19\n\tst.1\t64, r5\n\tadd\t2, r4, r5\n\tst.1.inc\tr2, r5, r5\n\tadd\t33, r4, r6\n\tshr.s!\t5, r6, r6\n\tjump.eq\t@.BB0_795\n\tadd\tstack[@calldatasize], r0, r7\n\tptr.add\tstack[@ptr_calldata], r7, r7\n\tadd\tr0, r0, r8\n.BB0_441:\n\tshl.s\t5, r8, r9\n\tadd\tr5, r9, r10\n\tptr.add\tr7, r9, r9\n\tld\tr9, r9\n\tst.1\tr10, r9\n\tadd\t1, r8, r8\n\tsub!\tr8, r6, r9\n\tjump.lt\t@.BB0_441\n.BB0_795:\n\tsub.s!\t0, r0, r6\n\tjump.eq\t@.BB0_443\n.BB0_443:\n\tld.1\tr2, r6\n\tsub.s!\t0, r6, r6\n\tjump.eq\t@.BB0_25\n\tld.1\tr5, r6\n\tand\t@CPI0_12[0], r6, r6\n\tshl.s\t248, r4, r7\n\tor\tr7, r6, r6\n\tadd\t@CPI0_14[0], r6, r6\n\tst.1\tr5, r6\n\tshl.s\t3, r4, r4\n\tsub\t248, r4, r4\n\tshl\tr3, r4, r3\n\tsub.s!\t255, r4, r4\n\tadd.gt\t0, r0, r3\n\tadd\t33, r2, r4\n\tst.1\tr4, r3\n\tjump\t@.BB0_450\n.BB0_177:\n\tld.1\t64, r1\n\tsub.s!\t@CPI0_11[0], r1, r3\n\tjump.gt\t@.BB0_19\n\tadd\t64, r1, r3\n\tst.1\t64, r3\n\tadd\t1, r0, r3\n\tst.1.inc\tr1, r3, r3\n\tadd\tstack[@calldatasize], r0, r4\n\tptr.add\tstack[@ptr_calldata], r4, r4\n\tadd\tr0, r0, r5\n.BB0_179:\n\tshl.s\t5, r5, r6\n\tadd\tr3, r6, r7\n\tptr.add\tr4, r6, r6\n\tld\tr6, r6\n\tst.1\tr7, r6\n\tadd!\t1, r5, r5\n\tadd\t0, r0, r6\n\tadd.eq\t1, r0, r6\n\tand!\t1, r6, r6\n\tjump.ne\t@.BB0_179\n\tld.1\tr1, r4\n\tsub.s!\t0, r4, r4\n\tjump.eq\t@.BB0_25\n\tshl.s\t248, r2, r4\n\tadd\t@CPI0_4[0], r0, r5\n\tsub.s!\t0, r2, r2\n\tadd\tr4, r0, r2\n\tadd.eq\tr5, r0, r2\n\tld.1\tr3, r4\n\tand\t@CPI0_12[0], r4, r4\n\tor\tr4, r2, r2\n\tst.1\tr3, r2\n.BB0_182:\n\tadd\tstack-[12], r0, r2\n\tadd\t260, r2, r2\n\tptr.add\tstack[@ptr_calldata], r2, r2\n\tld\tr2, r3\n\tsub.s!\t128, r3, r2\n\tjump.lt\t@.BB0_191\n\tshr.s\t128, r3, r2\n\tsub.s!\t@CPI0_13[0], r3, r4\n\tadd.le\tr3, r0, r2\n\tsub.s!\t@CPI0_13[0], r3, r4\n\tadd\t0, r0, r4\n\tadd.gt\t16, r0, r4\n\tor\t8, r4, r5\n\tsub.s!\t@CPI0_5[0], r2, r6\n\tadd.gt\tr5, r0, r4\n\tshr.s\t64, r2, r5\n\tsub.s!\t@CPI0_5[0], r2, r6\n\tadd.gt\tr5, r0, r2\n\tor\t4, r4, r5\n\tsub.s!\t@CPI0_0[0], r2, r6\n\tadd.gt\tr5, r0, r4\n\tshr.s\t32, r2, r5\n\tsub.s!\t@CPI0_0[0], r2, r6\n\tadd.gt\tr5, r0, r2\n\tor\t2, r4, r5\n\tsub.s!\t65535, r2, r6\n\tadd.gt\tr5, r0, r4\n\tshr.s\t16, r2, r5\n\tadd.gt\tr5, r0, r2\n\tsub.s!\t255, r2, r2\n\tadd\t0, r0, r2\n\tadd.gt\t1, r0, r2\n\tadd\tr4, r2, r4\n\tsub.s\t32, r0, r2\n\tadd\t65, r4, r5\n\tand\tr5, r2, r5\n\tld.1\t64, r2\n\tadd\tr2, r5, r5\n\tsub!\tr5, r2, r6\n\tadd\t0, r0, r6\n\tadd.lt\t1, r0, r6\n\tsub.s!\t@CPI0_5[0], r5, r7\n\tjump.gt\t@.BB0_19\n\tand!\t1, r6, r6\n\tjump.ne\t@.BB0_19\n\tst.1\t64, r5\n\tadd\t2, r4, r5\n\tst.1.inc\tr2, r5, r5\n\tadd\t33, r4, r6\n\tshr.s!\t5, r6, r6\n\tjump.eq\t@.BB0_807\n\tadd\tstack[@calldatasize], r0, r7\n\tptr.add\tstack[@ptr_calldata], r7, r7\n\tadd\tr0, r0, r8\n.BB0_187:\n\tshl.s\t5, r8, r9\n\tadd\tr5, r9, r10\n\tptr.add\tr7, r9, r9\n\tld\tr9, r9\n\tst.1\tr10, r9\n\tadd\t1, r8, r8\n\tsub!\tr8, r6, r9\n\tjump.lt\t@.BB0_187\n.BB0_807:\n\tsub.s!\t0, r0, r6\n\tjump.eq\t@.BB0_189\n.BB0_189:\n\tld.1\tr2, r6\n\tsub.s!\t0, r6, r6\n\tjump.eq\t@.BB0_25\n\tld.1\tr5, r6\n\tand\t@CPI0_12[0], r6, r6\n\tshl.s\t248, r4, r7\n\tor\tr7, r6, r6\n\tadd\t@CPI0_14[0], r6, r6\n\tst.1\tr5, r6\n\tshl.s\t3, r4, r4\n\tsub\t248, r4, r4\n\tshl\tr3, r4, r3\n\tsub.s!\t255, r4, r4\n\tadd.gt\t0, r0, r3\n\tadd\t33, r2, r4\n\tst.1\tr4, r3\n\tjump\t@.BB0_196\n.BB0_339:\n\tadd\tstack-[9], r0, r1\n\tshl.s\t192, r1, r1\n\tand\t@CPI0_22[0], r1, r1\n\tor\t@CPI0_21[0], r1, r1\n\tadd\t65513, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tadd\tr1, r0, r2\n\tshr.s\t96, r2, r2\n\tand\t@CPI0_0[0], r2, stack[@returndatasize]\n\tadd\tstack-[10], r0, r3\n\tadd\tstack-[9], r0, r2\n\tadd\tr3, r2, r2\n\tsub!\tr2, r3, r3\n\tadd\t0, r0, r3\n\tadd.lt\t1, r0, r3\n\tptr.add\tr1, r0, stack[@ptr_return_data]\n\tand!\t1, r3, r1\n\tjump.ne\t@.BB0_340\n\tadd\tstack[@calldatasize], r0, r1\n\tsub!\tr1, r2, r3\n\tjump.ge\t@.BB0_342\n.BB0_340:\n\tadd\t@CPI0_37[0], r0, r1\n\tst.1\t0, r1\n\tadd\t17, r0, r1\n\tst.1\t4, r1\n\tadd\t@CPI0_38[0], r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB0_27:\n\tld.1\t64, r1\n\tsub.s!\t@CPI0_11[0], r1, r3\n\tjump.gt\t@.BB0_19\n\tadd\t64, r1, r3\n\tst.1\t64, r3\n\tadd\t1, r0, r3\n\tst.1.inc\tr1, r3, r3\n\tadd\tstack[@calldatasize], r0, r4\n\tptr.add\tstack[@ptr_calldata], r4, r4\n\tadd\tr0, r0, r5\n.BB0_29:\n\tshl.s\t5, r5, r6\n\tadd\tr3, r6, r7\n\tptr.add\tr4, r6, r6\n\tld\tr6, r6\n\tst.1\tr7, r6\n\tadd!\t1, r5, r5\n\tadd\t0, r0, r6\n\tadd.eq\t1, r0, r6\n\tand!\t1, r6, r6\n\tjump.ne\t@.BB0_29\n\tld.1\tr1, r4\n\tsub.s!\t0, r4, r4\n\tjump.eq\t@.BB0_25\n\tshl.s\t248, r2, r4\n\tadd\t@CPI0_4[0], r0, r5\n\tsub.s!\t0, r2, r2\n\tadd\tr4, r0, r2\n\tadd.eq\tr5, r0, r2\n\tld.1\tr3, r4\n\tand\t@CPI0_12[0], r4, r4\n\tor\tr4, r2, r2\n\tst.1\tr3, r2\n.BB0_32:\n\tadd\tstack-[12], r0, r2\n\tadd\t260, r2, r2\n\tptr.add\tstack[@ptr_calldata], r2, r2\n\tld\tr2, r2\n\tsub.s!\t128, r2, r3\n\tjump.lt\t@.BB0_41\n\tshr.s\t128, r2, r3\n\tsub.s!\t@CPI0_13[0], r2, r4\n\tadd.le\tr2, r0, r3\n\tsub.s!\t@CPI0_13[0], r2, r4\n\tadd\t0, r0, r4\n\tadd.gt\t16, r0, r4\n\tor\t8, r4, r5\n\tsub.s!\t@CPI0_5[0], r3, r6\n\tadd.gt\tr5, r0, r4\n\tshr.s\t64, r3, r5\n\tsub.s!\t@CPI0_5[0], r3, r6\n\tadd.gt\tr5, r0, r3\n\tor\t4, r4, r5\n\tsub.s!\t@CPI0_0[0], r3, r6\n\tadd.gt\tr5, r0, r4\n\tshr.s\t32, r3, r5\n\tsub.s!\t@CPI0_0[0], r3, r6\n\tadd.gt\tr5, r0, r3\n\tor\t2, r4, r5\n\tsub.s!\t65535, r3, r6\n\tadd.gt\tr5, r0, r4\n\tshr.s\t16, r3, r5\n\tadd.gt\tr5, r0, r3\n\tsub.s!\t255, r3, r3\n\tadd\t0, r0, r3\n\tadd.gt\t1, r0, r3\n\tadd\tr4, r3, r4\n\tsub.s\t32, r0, r3\n\tadd\t65, r4, r5\n\tand\tr5, r3, r5\n\tld.1\t64, r3\n\tadd\tr3, r5, r5\n\tsub!\tr5, r3, r6\n\tadd\t0, r0, r6\n\tadd.lt\t1, r0, r6\n\tsub.s!\t@CPI0_5[0], r5, r7\n\tjump.gt\t@.BB0_19\n\tand!\t1, r6, r6\n\tjump.ne\t@.BB0_19\n\tst.1\t64, r5\n\tadd\t2, r4, r5\n\tst.1.inc\tr3, r5, r5\n\tadd\t33, r4, r6\n\tshr.s!\t5, r6, r6\n\tjump.eq\t@.BB0_814\n\tadd\tstack[@calldatasize], r0, r7\n\tptr.add\tstack[@ptr_calldata], r7, r7\n\tadd\tr0, r0, r8\n.BB0_37:\n\tshl.s\t5, r8, r9\n\tadd\tr5, r9, r10\n\tptr.add\tr7, r9, r9\n\tld\tr9, r9\n\tst.1\tr10, r9\n\tadd\t1, r8, r8\n\tsub!\tr8, r6, r9\n\tjump.lt\t@.BB0_37\n.BB0_814:\n\tsub.s!\t0, r0, r6\n\tjump.eq\t@.BB0_39\n.BB0_39:\n\tld.1\tr3, r6\n\tsub.s!\t0, r6, r6\n\tjump.eq\t@.BB0_25\n\tld.1\tr5, r6\n\tand\t@CPI0_12[0], r6, r6\n\tshl.s\t248, r4, r7\n\tor\tr7, r6, r6\n\tadd\t@CPI0_14[0], r6, r6\n\tst.1\tr5, r6\n\tshl.s\t3, r4, r4\n\tsub\t248, r4, r4\n\tshl\tr2, r4, r2\n\tsub.s!\t255, r4, r4\n\tadd.gt\t0, r0, r2\n\tadd\t33, r3, r4\n\tst.1\tr4, r2\n\tjump\t@.BB0_46\n.BB0_445:\n\tld.1\t64, r2\n\tsub.s!\t@CPI0_11[0], r2, r4\n\tjump.gt\t@.BB0_19\n\tadd\t64, r2, r4\n\tst.1\t64, r4\n\tadd\t1, r0, r4\n\tst.1.inc\tr2, r4, r4\n\tadd\tstack[@calldatasize], r0, r5\n\tptr.add\tstack[@ptr_calldata], r5, r5\n\tadd\tr0, r0, r6\n.BB0_447:\n\tshl.s\t5, r6, r7\n\tadd\tr4, r7, r8\n\tptr.add\tr5, r7, r7\n\tld\tr7, r7\n\tst.1\tr8, r7\n\tadd!\t1, r6, r6\n\tadd\t0, r0, r7\n\tadd.eq\t1, r0, r7\n\tand!\t1, r7, r7\n\tjump.ne\t@.BB0_447\n\tld.1\tr2, r5\n\tsub.s!\t0, r5, r5\n\tjump.eq\t@.BB0_25\n\tshl.s\t248, r3, r5\n\tadd\t@CPI0_4[0], r0, r6\n\tsub.s!\t0, r3, r3\n\tadd\tr5, r0, r3\n\tadd.eq\tr6, r0, r3\n\tld.1\tr4, r5\n\tand\t@CPI0_12[0], r5, r5\n\tor\tr5, r3, r3\n\tst.1\tr4, r3\n.BB0_450:\n\tld.1\t64, r3\n\tadd\tr3, r0, stack-[10]\n\tadd\t32, r3, r3\n\tld.1\tr1, r4\n\tsub.s!\t0, r4, r5\n\tjump.eq\t@.BB0_453\n\tadd\tr0, r0, r5\n.BB0_452:\n\tadd\tr5, r3, r6\n\tadd\t32, r5, r5\n\tadd\tr5, r1, r7\n\tld.1\tr7, r7\n\tst.1\tr6, r7\n\tsub!\tr5, r4, r6\n\tjump.lt\t@.BB0_452\n.BB0_453:\n\tadd\tr4, r3, r1\n\tst.1\tr1, r0\n\tld.1\tr2, r3\n\tsub.s!\t0, r3, r4\n\tjump.eq\t@.BB0_456\n\tadd\tr0, r0, r4\n.BB0_455:\n\tadd\tr4, r1, r5\n\tadd\t32, r4, r4\n\tadd\tr4, r2, r6\n\tld.1\tr6, r6\n\tst.1\tr5, r6\n\tsub!\tr4, r3, r5\n\tjump.lt\t@.BB0_455\n.BB0_456:\n\tadd\tr3, r1, r1\n\tst.1\tr1, r0\n\tadd\tstack-[10], r0, r3\n\tsub\tr1, r3, r1\n\tsub.s\t32, r1, r2\n\tst.1\tr3, r2\n\tadd\t31, r1, r1\n\tsub.s\t32, r0, r2\n\tadd\tr2, r0, stack-[8]\n\tand\tr1, r2, r1\n\tadd\tr1, r3, r2\n\tsub!\tr2, r1, r1\n\tadd\t0, r0, r1\n\tadd.lt\t1, r0, r1\n\tadd\tr2, r0, stack-[9]\n\tsub.s!\t@CPI0_5[0], r2, r2\n\tjump.gt\t@.BB0_19\n\tand!\t1, r1, r1\n\tjump.ne\t@.BB0_19\n\tadd\tstack-[9], r0, r1\n\tst.1\t64, r1\n\tsub.s!\t@CPI0_11[0], r1, r1\n\tjump.gt\t@.BB0_19\n\tadd\tstack-[12], r0, r4\n\tadd\t68, r4, r1\n\tptr.add\tstack[@ptr_calldata], r1, r1\n\tld\tr1, r1\n\tadd\tstack-[9], r0, r5\n\tadd\t64, r5, r2\n\tst.1\t64, r2\n\tadd\t32, r5, r2\n\tadd\t@CPI0_15[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t21, r0, r2\n\tst.1\tr5, r2\n\tadd\t33, r5, r2\n\tshl.s\t96, r1, r1\n\tst.1\tr2, r1\n\tadd\t292, r4, r1\n\tptr.add\tstack[@ptr_calldata], r1, r1\n\tld\tr1, r1\n\tsub.s!\t128, r1, r2\n\tjump.lt\t@.BB0_468\n\tshr.s\t128, r1, r2\n\tsub.s!\t@CPI0_13[0], r1, r3\n\tadd.le\tr1, r0, r2\n\tsub.s!\t@CPI0_13[0], r1, r3\n\tadd\t0, r0, r3\n\tadd.gt\t16, r0, r3\n\tor\t8, r3, r4\n\tsub.s!\t@CPI0_5[0], r2, r5\n\tadd.gt\tr4, r0, r3\n\tshr.s\t64, r2, r4\n\tsub.s!\t@CPI0_5[0], r2, r5\n\tadd.gt\tr4, r0, r2\n\tor\t4, r3, r4\n\tsub.s!\t@CPI0_0[0], r2, r5\n\tadd.gt\tr4, r0, r3\n\tshr.s\t32, r2, r4\n\tsub.s!\t@CPI0_0[0], r2, r5\n\tadd.gt\tr4, r0, r2\n\tor\t2, r3, r4\n\tsub.s!\t65535, r2, r5\n\tadd.gt\tr4, r0, r3\n\tshr.s\t16, r2, r4\n\tadd.gt\tr4, r0, r2\n\tsub.s!\t255, r2, r2\n\tadd\t0, r0, r2\n\tadd.gt\t1, r0, r2\n\tadd\tr3, r2, r2\n\tadd\t65, r2, r3\n\tadd\tstack-[8], r0, r4\n\tand\tr3, r4, r3\n\tld.1\t64, r4\n\tadd\tr4, r3, r3\n\tadd\tr4, r0, stack-[7]\n\tsub!\tr3, r4, r4\n\tadd\t0, r0, r4\n\tadd.lt\t1, r0, r4\n\tsub.s!\t@CPI0_5[0], r3, r5\n\tjump.gt\t@.BB0_19\n\tand!\t1, r4, r4\n\tjump.ne\t@.BB0_19\n\tst.1\t64, r3\n\tadd\t2, r2, r3\n\tadd\tstack-[7], r0, r4\n\tst.1.inc\tr4, r3, r3\n\tadd\t33, r2, r4\n\tshr.s!\t5, r4, r4\n\tjump.eq\t@.BB0_796\n\tadd\tstack[@calldatasize], r0, r5\n\tptr.add\tstack[@ptr_calldata], r5, r5\n\tadd\tr0, r0, r6\n.BB0_464:\n\tshl.s\t5, r6, r7\n\tadd\tr3, r7, r8\n\tptr.add\tr5, r7, r7\n\tld\tr7, r7\n\tst.1\tr8, r7\n\tadd\t1, r6, r6\n\tsub!\tr6, r4, r7\n\tjump.lt\t@.BB0_464\n.BB0_796:\n\tsub.s!\t0, r0, r4\n\tjump.eq\t@.BB0_466\n.BB0_466:\n\tadd\tstack-[7], r0, r4\n\tld.1\tr4, r4\n\tsub.s!\t0, r4, r4\n\tjump.eq\t@.BB0_25\n\tld.1\tr3, r4\n\tand\t@CPI0_12[0], r4, r4\n\tshl.s\t248, r2, r5\n\tor\tr5, r4, r4\n\tadd\t@CPI0_14[0], r4, r4\n\tst.1\tr3, r4\n\tshl.s\t3, r2, r2\n\tsub\t248, r2, r2\n\tshl\tr1, r2, r1\n\tsub.s!\t255, r2, r2\n\tadd.gt\t0, r0, r1\n\tadd\tstack-[7], r0, r2\n\tadd\t33, r2, r2\n\tst.1\tr2, r1\n\tjump\t@.BB0_473\n.BB0_345:\n\tadd\t@CPI0_23[0], r0, r1\n\tadd\t65511, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tadd\tr1, r0, r2\n\tshr.s\t96, r2, r2\n\tand\t@CPI0_0[0], r2, stack[@returndatasize]\n\tptr.add\tr1, r0, stack[@ptr_return_data]\n\tadd\t@CPI0_24[0], r0, r1\n\tadd\t65526, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tadd\tr1, r0, r3\n\tshr.s\t96, r3, r3\n\tand\t@CPI0_0[0], r3, stack[@returndatasize]\n\tand\t@CPI0_0[0], r3, r3\n\tptr.add\tr1, r0, stack[@ptr_return_data]\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_346\n\tadd\t63, r3, r1\n\tand\t@CPI0_25[0], r1, r1\n\tld.1\t64, r2\n\tadd\tr2, r1, r1\n\tsub!\tr1, r2, r4\n\tadd\t0, r0, r4\n\tadd.lt\t1, r0, r4\n\tsub.s!\t@CPI0_5[0], r1, r5\n\tjump.gt\t@.BB0_19\n\tand!\t1, r4, r4\n\tjump.ne\t@.BB0_19\n\tst.1\t64, r1\n\tst.1.inc\tr2, r3, r1\n\tadd\t31, r3, r4\n\tshr.s!\t5, r4, r4\n\tjump.eq\t@.BB0_804\n\tadd\tstack[@calldatasize], r0, r5\n\tptr.add\tstack[@ptr_calldata], r5, r5\n\tadd\tr0, r0, r6\n.BB0_355:\n\tshl.s\t5, r6, r7\n\tadd\tr1, r7, r8\n\tptr.add\tr5, r7, r7\n\tld\tr7, r7\n\tst.1\tr8, r7\n\tadd\t1, r6, r6\n\tsub!\tr6, r4, r7\n\tjump.lt\t@.BB0_355\n.BB0_804:\n\tsub.s!\t0, r0, r4\n\tjump.eq\t@.BB0_357\n.BB0_357:\n\tadd\tstack[@returndatasize], r0, r4\n\tsub!\tr3, r4, r4\n\tjump.le\t@.BB0_358\n.BB0_2:\n\tadd\tr0, r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB0_191:\n\tld.1\t64, r2\n\tsub.s!\t@CPI0_11[0], r2, r4\n\tjump.gt\t@.BB0_19\n\tadd\t64, r2, r4\n\tst.1\t64, r4\n\tadd\t1, r0, r4\n\tst.1.inc\tr2, r4, r4\n\tadd\tstack[@calldatasize], r0, r5\n\tptr.add\tstack[@ptr_calldata], r5, r5\n\tadd\tr0, r0, r6\n.BB0_193:\n\tshl.s\t5, r6, r7\n\tadd\tr4, r7, r8\n\tptr.add\tr5, r7, r7\n\tld\tr7, r7\n\tst.1\tr8, r7\n\tadd!\t1, r6, r6\n\tadd\t0, r0, r7\n\tadd.eq\t1, r0, r7\n\tand!\t1, r7, r7\n\tjump.ne\t@.BB0_193\n\tld.1\tr2, r5\n\tsub.s!\t0, r5, r5\n\tjump.eq\t@.BB0_25\n\tshl.s\t248, r3, r5\n\tadd\t@CPI0_4[0], r0, r6\n\tsub.s!\t0, r3, r3\n\tadd\tr5, r0, r3\n\tadd.eq\tr6, r0, r3\n\tld.1\tr4, r5\n\tand\t@CPI0_12[0], r5, r5\n\tor\tr5, r3, r3\n\tst.1\tr4, r3\n.BB0_196:\n\tadd\tstack-[12], r0, r3\n\tadd\t196, r3, r3\n\tptr.add\tstack[@ptr_calldata], r3, r3\n\tld\tr3, r3\n\tsub.s!\t128, r3, r4\n\tjump.lt\t@.BB0_205\n\tshr.s\t128, r3, r4\n\tsub.s!\t@CPI0_13[0], r3, r5\n\tadd.le\tr3, r0, r4\n\tsub.s!\t@CPI0_13[0], r3, r5\n\tadd\t0, r0, r5\n\tadd.gt\t16, r0, r5\n\tor\t8, r5, r6\n\tsub.s!\t@CPI0_5[0], r4, r7\n\tadd.gt\tr6, r0, r5\n\tshr.s\t64, r4, r6\n\tsub.s!\t@CPI0_5[0], r4, r7\n\tadd.gt\tr6, r0, r4\n\tor\t4, r5, r6\n\tsub.s!\t@CPI0_0[0], r4, r7\n\tadd.gt\tr6, r0, r5\n\tshr.s\t32, r4, r6\n\tsub.s!\t@CPI0_0[0], r4, r7\n\tadd.gt\tr6, r0, r4\n\tor\t2, r5, r6\n\tsub.s!\t65535, r4, r7\n\tadd.gt\tr6, r0, r5\n\tshr.s\t16, r4, r6\n\tadd.gt\tr6, r0, r4\n\tsub.s!\t255, r4, r4\n\tadd\t0, r0, r4\n\tadd.gt\t1, r0, r4\n\tadd\tr5, r4, r5\n\tsub.s\t32, r0, r4\n\tadd\t65, r5, r6\n\tand\tr6, r4, r6\n\tld.1\t64, r4\n\tadd\tr4, r6, r6\n\tsub!\tr6, r4, r7\n\tadd\t0, r0, r7\n\tadd.lt\t1, r0, r7\n\tsub.s!\t@CPI0_5[0], r6, r8\n\tjump.gt\t@.BB0_19\n\tand!\t1, r7, r7\n\tjump.ne\t@.BB0_19\n\tst.1\t64, r6\n\tadd\t2, r5, r6\n\tst.1.inc\tr4, r6, r6\n\tadd\t33, r5, r7\n\tshr.s!\t5, r7, r7\n\tjump.eq\t@.BB0_808\n\tadd\tstack[@calldatasize], r0, r8\n\tptr.add\tstack[@ptr_calldata], r8, r8\n\tadd\tr0, r0, r9\n.BB0_201:\n\tshl.s\t5, r9, r10\n\tadd\tr6, r10, r11\n\tptr.add\tr8, r10, r10\n\tld\tr10, r10\n\tst.1\tr11, r10\n\tadd\t1, r9, r9\n\tsub!\tr9, r7, r10\n\tjump.lt\t@.BB0_201\n.BB0_808:\n\tsub.s!\t0, r0, r7\n\tjump.eq\t@.BB0_203\n.BB0_203:\n\tld.1\tr4, r7\n\tsub.s!\t0, r7, r7\n\tjump.eq\t@.BB0_25\n\tld.1\tr6, r7\n\tand\t@CPI0_12[0], r7, r7\n\tshl.s\t248, r5, r8\n\tor\tr8, r7, r7\n\tadd\t@CPI0_14[0], r7, r7\n\tst.1\tr6, r7\n\tshl.s\t3, r5, r5\n\tsub\t248, r5, r5\n\tshl\tr3, r5, r3\n\tsub.s!\t255, r5, r5\n\tadd.gt\t0, r0, r3\n\tadd\t33, r4, r5\n\tst.1\tr5, r3\n\tjump\t@.BB0_210\n.BB0_346:\n\tand\t31, r3, r4\n\tshr.s!\t5, r3, r2\n\tjump.eq\t@.BB0_805\n\tadd\tr0, r0, r5\n.BB0_348:\n\tshl.s\t5, r5, r6\n\tptr.add\tr1, r6, r7\n\tld\tr7, r7\n\tst.1\tr6, r7\n\tadd\t1, r5, r5\n\tsub!\tr5, r2, r6\n\tjump.lt\t@.BB0_348\n.BB0_805:\n\tsub.s!\t0, r4, r5\n\tjump.eq\t@.BB0_350\n\tshl.s\t3, r4, r4\n\tshl.s\t5, r2, r2\n\tld.1\tr2, r5\n\tshl\tr5, r4, r5\n\tshr\tr5, r4, r5\n\tptr.add\tr1, r2, r1\n\tld\tr1, r1\n\tsub\t256, r4, r4\n\tshr\tr1, r4, r1\n\tshl\tr1, r4, r1\n\tor\tr1, r5, r1\n\tst.1\tr2, r1\n.BB0_350:\n\tshl.s\t96, r3, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB0_342:\n\tsub\tr1, r2, r1\n\tjump\t@.BB0_338\n.BB0_41:\n\tld.1\t64, r3\n\tsub.s!\t@CPI0_11[0], r3, r4\n\tjump.gt\t@.BB0_19\n\tadd\t64, r3, r4\n\tst.1\t64, r4\n\tadd\t1, r0, r4\n\tst.1.inc\tr3, r4, r4\n\tadd\tstack[@calldatasize], r0, r5\n\tptr.add\tstack[@ptr_calldata], r5, r5\n\tadd\tr0, r0, r6\n.BB0_43:\n\tshl.s\t5, r6, r7\n\tadd\tr4, r7, r8\n\tptr.add\tr5, r7, r7\n\tld\tr7, r7\n\tst.1\tr8, r7\n\tadd!\t1, r6, r6\n\tadd\t0, r0, r7\n\tadd.eq\t1, r0, r7\n\tand!\t1, r7, r7\n\tjump.ne\t@.BB0_43\n\tld.1\tr3, r5\n\tsub.s!\t0, r5, r5\n\tjump.eq\t@.BB0_25\n\tshl.s\t248, r2, r5\n\tadd\t@CPI0_4[0], r0, r6\n\tsub.s!\t0, r2, r2\n\tadd\tr5, r0, r2\n\tadd.eq\tr6, r0, r2\n\tld.1\tr4, r5\n\tand\t@CPI0_12[0], r5, r5\n\tor\tr5, r2, r2\n\tst.1\tr4, r2\n.BB0_46:\n\tadd\tstack-[12], r0, r2\n\tadd\t164, r2, r2\n\tptr.add\tstack[@ptr_calldata], r2, r2\n\tld\tr2, r2\n\tsub.s!\t128, r2, r4\n\tjump.lt\t@.BB0_55\n\tshr.s\t128, r2, r4\n\tsub.s!\t@CPI0_13[0], r2, r5\n\tadd.le\tr2, r0, r4\n\tsub.s!\t@CPI0_13[0], r2, r5\n\tadd\t0, r0, r5\n\tadd.gt\t16, r0, r5\n\tor\t8, r5, r6\n\tsub.s!\t@CPI0_5[0], r4, r7\n\tadd.gt\tr6, r0, r5\n\tshr.s\t64, r4, r6\n\tsub.s!\t@CPI0_5[0], r4, r7\n\tadd.gt\tr6, r0, r4\n\tor\t4, r5, r6\n\tsub.s!\t@CPI0_0[0], r4, r7\n\tadd.gt\tr6, r0, r5\n\tshr.s\t32, r4, r6\n\tsub.s!\t@CPI0_0[0], r4, r7\n\tadd.gt\tr6, r0, r4\n\tor\t2, r5, r6\n\tsub.s!\t65535, r4, r7\n\tadd.gt\tr6, r0, r5\n\tshr.s\t16, r4, r6\n\tadd.gt\tr6, r0, r4\n\tsub.s!\t255, r4, r4\n\tadd\t0, r0, r4\n\tadd.gt\t1, r0, r4\n\tadd\tr5, r4, r5\n\tsub.s\t32, r0, r4\n\tadd\t65, r5, r6\n\tand\tr6, r4, r6\n\tld.1\t64, r4\n\tadd\tr4, r6, r6\n\tsub!\tr6, r4, r7\n\tadd\t0, r0, r7\n\tadd.lt\t1, r0, r7\n\tsub.s!\t@CPI0_5[0], r6, r8\n\tjump.gt\t@.BB0_19\n\tand!\t1, r7, r7\n\tjump.ne\t@.BB0_19\n\tst.1\t64, r6\n\tadd\t2, r5, r6\n\tst.1.inc\tr4, r6, r6\n\tadd\t33, r5, r7\n\tshr.s!\t5, r7, r7\n\tjump.eq\t@.BB0_815\n\tadd\tstack[@calldatasize], r0, r8\n\tptr.add\tstack[@ptr_calldata], r8, r8\n\tadd\tr0, r0, r9\n.BB0_51:\n\tshl.s\t5, r9, r10\n\tadd\tr6, r10, r11\n\tptr.add\tr8, r10, r10\n\tld\tr10, r10\n\tst.1\tr11, r10\n\tadd\t1, r9, r9\n\tsub!\tr9, r7, r10\n\tjump.lt\t@.BB0_51\n.BB0_815:\n\tsub.s!\t0, r0, r7\n\tjump.eq\t@.BB0_53\n.BB0_53:\n\tld.1\tr4, r7\n\tsub.s!\t0, r7, r7\n\tjump.eq\t@.BB0_25\n\tld.1\tr6, r7\n\tand\t@CPI0_12[0], r7, r7\n\tshl.s\t248, r5, r8\n\tor\tr8, r7, r7\n\tadd\t@CPI0_14[0], r7, r7\n\tst.1\tr6, r7\n\tshl.s\t3, r5, r5\n\tsub\t248, r5, r5\n\tshl\tr2, r5, r2\n\tsub.s!\t255, r5, r5\n\tadd.gt\t0, r0, r2\n\tadd\t33, r4, r5\n\tst.1\tr5, r2\n\tjump\t@.BB0_60\n.BB0_205:\n\tld.1\t64, r4\n\tsub.s!\t@CPI0_11[0], r4, r5\n\tjump.gt\t@.BB0_19\n\tadd\t64, r4, r5\n\tst.1\t64, r5\n\tadd\t1, r0, r5\n\tst.1.inc\tr4, r5, r5\n\tadd\tstack[@calldatasize], r0, r6\n\tptr.add\tstack[@ptr_calldata], r6, r6\n\tadd\tr0, r0, r7\n.BB0_207:\n\tshl.s\t5, r7, r8\n\tadd\tr5, r8, r9\n\tptr.add\tr6, r8, r8\n\tld\tr8, r8\n\tst.1\tr9, r8\n\tadd!\t1, r7, r7\n\tadd\t0, r0, r8\n\tadd.eq\t1, r0, r8\n\tand!\t1, r8, r8\n\tjump.ne\t@.BB0_207\n\tld.1\tr4, r6\n\tsub.s!\t0, r6, r6\n\tjump.eq\t@.BB0_25\n\tshl.s\t248, r3, r6\n\tadd\t@CPI0_4[0], r0, r7\n\tsub.s!\t0, r3, r3\n\tadd\tr6, r0, r3\n\tadd.eq\tr7, r0, r3\n\tld.1\tr5, r6\n\tand\t@CPI0_12[0], r6, r6\n\tor\tr6, r3, r3\n\tst.1\tr5, r3\n.BB0_210:\n\tadd\tstack-[12], r0, r3\n\tadd\t164, r3, r3\n\tptr.add\tstack[@ptr_calldata], r3, r3\n\tld\tr3, r3\n\tsub.s!\t128, r3, r5\n\tjump.lt\t@.BB0_219\n\tshr.s\t128, r3, r5\n\tsub.s!\t@CPI0_13[0], r3, r6\n\tadd.le\tr3, r0, r5\n\tsub.s!\t@CPI0_13[0], r3, r6\n\tadd\t0, r0, r6\n\tadd.gt\t16, r0, r6\n\tor\t8, r6, r7\n\tsub.s!\t@CPI0_5[0], r5, r8\n\tadd.gt\tr7, r0, r6\n\tshr.s\t64, r5, r7\n\tsub.s!\t@CPI0_5[0], r5, r8\n\tadd.gt\tr7, r0, r5\n\tor\t4, r6, r7\n\tsub.s!\t@CPI0_0[0], r5, r8\n\tadd.gt\tr7, r0, r6\n\tshr.s\t32, r5, r7\n\tsub.s!\t@CPI0_0[0], r5, r8\n\tadd.gt\tr7, r0, r5\n\tor\t2, r6, r7\n\tsub.s!\t65535, r5, r8\n\tadd.gt\tr7, r0, r6\n\tshr.s\t16, r5, r7\n\tadd.gt\tr7, r0, r5\n\tsub.s!\t255, r5, r5\n\tadd\t0, r0, r5\n\tadd.gt\t1, r0, r5\n\tadd\tr6, r5, r6\n\tsub.s\t32, r0, r5\n\tadd\t65, r6, r7\n\tand\tr7, r5, r7\n\tld.1\t64, r5\n\tadd\tr5, r7, r7\n\tsub!\tr7, r5, r8\n\tadd\t0, r0, r8\n\tadd.lt\t1, r0, r8\n\tsub.s!\t@CPI0_5[0], r7, r9\n\tjump.gt\t@.BB0_19\n\tand!\t1, r8, r8\n\tjump.ne\t@.BB0_19\n\tst.1\t64, r7\n\tadd\t2, r6, r7\n\tst.1.inc\tr5, r7, r7\n\tadd\t33, r6, r8\n\tshr.s!\t5, r8, r8\n\tjump.eq\t@.BB0_809\n\tadd\tstack[@calldatasize], r0, r9\n\tptr.add\tstack[@ptr_calldata], r9, r9\n\tadd\tr0, r0, r10\n.BB0_215:\n\tshl.s\t5, r10, r11\n\tadd\tr7, r11, r12\n\tptr.add\tr9, r11, r11\n\tld\tr11, r11\n\tst.1\tr12, r11\n\tadd\t1, r10, r10\n\tsub!\tr10, r8, r11\n\tjump.lt\t@.BB0_215\n.BB0_809:\n\tsub.s!\t0, r0, r8\n\tjump.eq\t@.BB0_217\n.BB0_217:\n\tld.1\tr5, r8\n\tsub.s!\t0, r8, r8\n\tjump.eq\t@.BB0_25\n\tld.1\tr7, r8\n\tand\t@CPI0_12[0], r8, r8\n\tshl.s\t248, r6, r9\n\tor\tr9, r8, r8\n\tadd\t@CPI0_14[0], r8, r8\n\tst.1\tr7, r8\n\tshl.s\t3, r6, r6\n\tsub\t248, r6, r6\n\tshl\tr3, r6, r3\n\tsub.s!\t255, r6, r6\n\tadd.gt\t0, r0, r3\n\tadd\t33, r5, r6\n\tst.1\tr6, r3\n\tjump\t@.BB0_224\n.BB0_358:\n\tptr.add\tstack[@ptr_return_data], r0, r5\n\tand\t31, r3, r4\n\tshr.s!\t5, r3, r3\n\tjump.eq\t@.BB0_803\n\tadd\tr0, r0, r6\n.BB0_360:\n\tshl.s\t5, r6, r7\n\tadd\tr1, r7, r8\n\tptr.add\tr5, r7, r7\n\tld\tr7, r7\n\tst.1\tr8, r7\n\tadd\t1, r6, r6\n\tsub!\tr6, r3, r7\n\tjump.lt\t@.BB0_360\n.BB0_803:\n\tsub.s!\t0, r4, r6\n\tjump.eq\t@.BB0_362\n\tshl.s\t5, r3, r3\n\tptr.add\tr5, r3, r5\n\tadd\tr1, r3, r3\n\tshl.s\t3, r4, r4\n\tld.1\tr3, r6\n\tshl\tr6, r4, r6\n\tshr\tr6, r4, r6\n\tld\tr5, r5\n\tsub\t256, r4, r4\n\tshr\tr5, r4, r5\n\tshl\tr5, r4, r4\n\tor\tr4, r6, r4\n\tst.1\tr3, r4\n.BB0_362:\n\tld.1\tr2, r2\n\tsub.s!\t32, r2, r2\n\tjump.ne\t@.BB0_363\n\tadd\tstack[@calldatasize], r0, r4\n\tadd\tstack-[11], r0, r2\n\tadd\tr4, r2, r5\n\tadd\tstack-[12], r0, r2\n\tadd\t516, r2, r3\n\tptr.add\tstack[@ptr_calldata], r0, r2\n\tptr.add\tr2, r3, r3\n\tld\tr3, r3\n\tadd\t@CPI0_4[0], r0, r6\n\tsub!\tr3, r5, r7\n\tadd\t0, r0, r7\n\tadd.ge\tr6, r0, r7\n\tand\t@CPI0_4[0], r5, r5\n\tand\t@CPI0_4[0], r3, r8\n\tsub!\tr8, r5, r9\n\tadd.ge\t0, r0, r6\n\txor\tr8, r5, r5\n\tsub.s!\t@CPI0_4[0], r5, r5\n\tadd\tr7, r0, r5\n\tadd.eq\tr6, r0, r5\n\tsub.s!\t0, r5, r5\n\tjump.ne\t@.BB0_2\n\tld.1\tr1, r1\n\tadd\tr1, r0, stack-[10]\n\tadd\tstack-[13], r0, r1\n\tadd\tr3, r1, r1\n\tptr.add\tr2, r1, r3\n\tld\tr3, r5\n\tsub.s!\t@CPI0_5[0], r5, r3\n\tjump.gt\t@.BB0_2\n\tshl.s\t5, r5, r3\n\tsub\tr4, r3, r4\n\tadd\t32, r1, r6\n\tadd\t@CPI0_4[0], r0, r1\n\tsub!\tr6, r4, r7\n\tadd\t0, r0, r7\n\tadd.gt\tr1, r0, r7\n\tand\t@CPI0_4[0], r4, r4\n\tand\t@CPI0_4[0], r6, r8\n\tsub!\tr8, r4, r9\n\tadd.ge\t0, r0, r1\n\txor\tr8, r4, r4\n\tsub.s!\t@CPI0_4[0], r4, r4\n\tadd.ne\tr7, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tld.1\t64, r1\n\tadd\t32, r1, r4\n\tand!\t@CPI0_26[0], r5, r5\n\tjump.eq\t@.BB0_802\n\tptr.add\tr2, r6, r2\n\tadd\tr0, r0, r6\n.BB0_369:\n\tshl.s\t5, r6, r7\n\tadd\tr4, r7, r8\n\tptr.add\tr2, r7, r7\n\tld\tr7, r7\n\tst.1\tr8, r7\n\tadd\t1, r6, r6\n\tsub!\tr6, r5, r7\n\tjump.lt\t@.BB0_369\n.BB0_802:\n\tsub.s!\t0, r0, r2\n\tjump.eq\t@.BB0_371\n.BB0_371:\n\tst.1\tr1, r3\n\tadd\t63, r3, r2\n\tsub.s\t32, r0, r3\n\tand\tr2, r3, r2\n\tadd\tr1, r2, r2\n\tsub!\tr2, r1, r3\n\tadd\t0, r0, r3\n\tadd.lt\t1, r0, r3\n\tsub.s!\t@CPI0_5[0], r2, r5\n\tjump.gt\t@.BB0_19\n\tand!\t1, r3, r3\n\tjump.ne\t@.BB0_19\n\tst.1\t64, r2\n\tadd\t@CPI0_0[0], r0, r2\n\tsub.s!\t@CPI0_0[0], r4, r3\n\tadd\tr2, r0, r3\n\tadd.lt\tr4, r0, r3\n\tshl.s\t64, r3, r3\n\tld.1\tr1, r1\n\tsub.s!\t@CPI0_0[0], r1, r4\n\tadd.ge\tr2, r0, r1\n\tshl.s\t96, r1, r1\n\tor\tr1, r3, r1\n\tcontext.gas_left\tr3\n\tsub.s!\t@CPI0_0[0], r3, r4\n\tadd.lt\tr3, r0, r2\n\tshl.s\t192, r2, r2\n\tor\tr2, r1, r1\n\tor\t@CPI0_20[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tadd\tstack-[12], r0, r3\n\tjump.eq\t@.BB0_2\n\tadd\tstack[@calldatasize], r0, r2\n\tadd\tstack-[11], r0, r4\n\tadd\tr2, r4, r5\n\tadd\t548, r3, r4\n\tptr.add\tstack[@ptr_calldata], r0, r3\n\tptr.add\tr3, r4, r4\n\tld\tr4, r4\n\tadd\t@CPI0_4[0], r0, r6\n\tsub!\tr4, r5, r7\n\tadd\t0, r0, r7\n\tadd.ge\tr6, r0, r7\n\tand\t@CPI0_4[0], r5, r5\n\tand\t@CPI0_4[0], r4, r8\n\tsub!\tr8, r5, r9\n\tadd.ge\t0, r0, r6\n\txor\tr8, r5, r5\n\tsub.s!\t@CPI0_4[0], r5, r5\n\tadd\tr7, r0, r5\n\tadd.eq\tr6, r0, r5\n\tld\tr1, r1\n\tadd\tr1, r0, stack-[11]\n\tsub.s!\t0, r5, r1\n\tjump.ne\t@.BB0_2\n\tadd\tstack-[13], r0, r1\n\tadd\tr4, r1, r1\n\tptr.add\tr3, r1, r3\n\tld\tr3, r3\n\tadd\tr3, r0, stack-[9]\n\tsub.s!\t@CPI0_5[0], r3, r3\n\tjump.gt\t@.BB0_2\n\tadd\tstack-[9], r0, r3\n\tsub\tr2, r3, r2\n\tadd\t32, r1, r4\n\tadd\t@CPI0_4[0], r0, r1\n\tsub!\tr4, r2, r3\n\tadd\t0, r0, r3\n\tadd.gt\tr1, r0, r3\n\tand\t@CPI0_4[0], r2, r2\n\tadd\tr4, r0, stack-[8]\n\tand\t@CPI0_4[0], r4, r4\n\tsub!\tr4, r2, r5\n\tadd.ge\t0, r0, r1\n\txor\tr4, r2, r2\n\tsub.s!\t@CPI0_4[0], r2, r2\n\tadd.ne\tr3, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tcontext.gas_left\tr1\n\tadd\tr1, r0, stack-[6]\n\tadd\t@CPI0_21[0], r0, r1\n\tadd\t65515, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tadd\tr1, r0, r2\n\tshr.s\t96, r2, r2\n\tand\t@CPI0_0[0], r2, stack[@returndatasize]\n\tptr.add\tr1, r0, stack[@ptr_return_data]\n\tadd\tstack-[9], r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_379\n\tadd\tstack[@calldatasize], r0, r1\n\tjump\t@.BB0_378\n.BB0_55:\n\tld.1\t64, r4\n\tsub.s!\t@CPI0_11[0], r4, r5\n\tjump.gt\t@.BB0_19\n\tadd\t64, r4, r5\n\tst.1\t64, r5\n\tadd\t1, r0, r5\n\tst.1.inc\tr4, r5, r5\n\tadd\tstack[@calldatasize], r0, r6\n\tptr.add\tstack[@ptr_calldata], r6, r6\n\tadd\tr0, r0, r7\n.BB0_57:\n\tshl.s\t5, r7, r8\n\tadd\tr5, r8, r9\n\tptr.add\tr6, r8, r8\n\tld\tr8, r8\n\tst.1\tr9, r8\n\tadd!\t1, r7, r7\n\tadd\t0, r0, r8\n\tadd.eq\t1, r0, r8\n\tand!\t1, r8, r8\n\tjump.ne\t@.BB0_57\n\tld.1\tr4, r6\n\tsub.s!\t0, r6, r6\n\tjump.eq\t@.BB0_25\n\tshl.s\t248, r2, r6\n\tadd\t@CPI0_4[0], r0, r7\n\tsub.s!\t0, r2, r2\n\tadd\tr6, r0, r2\n\tadd.eq\tr7, r0, r2\n\tld.1\tr5, r6\n\tand\t@CPI0_12[0], r6, r6\n\tor\tr6, r2, r2\n\tst.1\tr5, r2\n.BB0_60:\n\tadd\tstack-[12], r0, r2\n\tadd\t100, r2, r2\n\tptr.add\tstack[@ptr_calldata], r2, r2\n\tld\tr2, r2\n\tsub.s!\t128, r2, r5\n\tjump.lt\t@.BB0_69\n\tshr.s\t128, r2, r5\n\tsub.s!\t@CPI0_13[0], r2, r6\n\tadd.le\tr2, r0, r5\n\tsub.s!\t@CPI0_13[0], r2, r6\n\tadd\t0, r0, r6\n\tadd.gt\t16, r0, r6\n\tor\t8, r6, r7\n\tsub.s!\t@CPI0_5[0], r5, r8\n\tadd.gt\tr7, r0, r6\n\tshr.s\t64, r5, r7\n\tsub.s!\t@CPI0_5[0], r5, r8\n\tadd.gt\tr7, r0, r5\n\tor\t4, r6, r7\n\tsub.s!\t@CPI0_0[0], r5, r8\n\tadd.gt\tr7, r0, r6\n\tshr.s\t32, r5, r7\n\tsub.s!\t@CPI0_0[0], r5, r8\n\tadd.gt\tr7, r0, r5\n\tor\t2, r6, r7\n\tsub.s!\t65535, r5, r8\n\tadd.gt\tr7, r0, r6\n\tshr.s\t16, r5, r7\n\tadd.gt\tr7, r0, r5\n\tsub.s!\t255, r5, r5\n\tadd\t0, r0, r5\n\tadd.gt\t1, r0, r5\n\tadd\tr6, r5, r6\n\tsub.s\t32, r0, r5\n\tadd\t65, r6, r7\n\tand\tr7, r5, r7\n\tld.1\t64, r5\n\tadd\tr5, r7, r7\n\tsub!\tr7, r5, r8\n\tadd\t0, r0, r8\n\tadd.lt\t1, r0, r8\n\tsub.s!\t@CPI0_5[0], r7, r9\n\tjump.gt\t@.BB0_19\n\tand!\t1, r8, r8\n\tjump.ne\t@.BB0_19\n\tst.1\t64, r7\n\tadd\t2, r6, r7\n\tst.1.inc\tr5, r7, r7\n\tadd\t33, r6, r8\n\tshr.s!\t5, r8, r8\n\tjump.eq\t@.BB0_816\n\tadd\tstack[@calldatasize], r0, r9\n\tptr.add\tstack[@ptr_calldata], r9, r9\n\tadd\tr0, r0, r10\n.BB0_65:\n\tshl.s\t5, r10, r11\n\tadd\tr7, r11, r12\n\tptr.add\tr9, r11, r11\n\tld\tr11, r11\n\tst.1\tr12, r11\n\tadd\t1, r10, r10\n\tsub!\tr10, r8, r11\n\tjump.lt\t@.BB0_65\n.BB0_816:\n\tsub.s!\t0, r0, r8\n\tjump.eq\t@.BB0_67\n.BB0_67:\n\tld.1\tr5, r8\n\tsub.s!\t0, r8, r8\n\tjump.eq\t@.BB0_25\n\tld.1\tr7, r8\n\tand\t@CPI0_12[0], r8, r8\n\tshl.s\t248, r6, r9\n\tor\tr9, r8, r8\n\tadd\t@CPI0_14[0], r8, r8\n\tst.1\tr7, r8\n\tshl.s\t3, r6, r6\n\tsub\t248, r6, r6\n\tshl\tr2, r6, r2\n\tsub.s!\t255, r6, r6\n\tadd.gt\t0, r0, r2\n\tadd\t33, r5, r6\n\tst.1\tr6, r2\n\tjump\t@.BB0_74\n.BB0_468:\n\tld.1\t64, r2\n\tadd\tr2, r0, stack-[7]\n\tsub.s!\t@CPI0_11[0], r2, r2\n\tjump.gt\t@.BB0_19\n\tadd\tstack-[7], r0, r3\n\tadd\t64, r3, r2\n\tst.1\t64, r2\n\tadd\t1, r0, r2\n\tst.1.inc\tr3, r2, r2\n\tadd\tstack[@calldatasize], r0, r3\n\tptr.add\tstack[@ptr_calldata], r3, r3\n\tadd\tr0, r0, r4\n.BB0_470:\n\tshl.s\t5, r4, r5\n\tadd\tr2, r5, r6\n\tptr.add\tr3, r5, r5\n\tld\tr5, r5\n\tst.1\tr6, r5\n\tadd!\t1, r4, r4\n\tadd\t0, r0, r5\n\tadd.eq\t1, r0, r5\n\tand!\t1, r5, r5\n\tjump.ne\t@.BB0_470\n\tadd\tstack-[7], r0, r3\n\tld.1\tr3, r3\n\tsub.s!\t0, r3, r3\n\tjump.eq\t@.BB0_25\n\tshl.s\t248, r1, r3\n\tadd\t@CPI0_4[0], r0, r4\n\tsub.s!\t0, r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr4, r0, r1\n\tld.1\tr2, r3\n\tand\t@CPI0_12[0], r3, r3\n\tor\tr3, r1, r1\n\tst.1\tr2, r1\n.BB0_473:\n\tsub.s\t35, r0, r1\n\tadd\tstack-[12], r0, r2\n\tsub\tr1, r2, r4\n\tadd\t452, r2, r1\n\tptr.add\tstack[@ptr_calldata], r0, r2\n\tadd\tr1, r0, stack-[6]\n\tptr.add\tr2, r1, r1\n\tld\tr1, r1\n\tadd\tstack[@calldatasize], r0, r3\n\tadd\tr4, r0, stack-[5]\n\tadd\tr3, r4, r4\n\tadd\t@CPI0_4[0], r0, r5\n\tsub!\tr1, r4, r6\n\tadd\t0, r0, r6\n\tadd.ge\tr5, r0, r6\n\tand\t@CPI0_4[0], r4, r4\n\tand\t@CPI0_4[0], r1, r7\n\tsub!\tr7, r4, r8\n\tadd.ge\t0, r0, r5\n\txor\tr7, r4, r4\n\tsub.s!\t@CPI0_4[0], r4, r4\n\tadd\tr6, r0, r4\n\tadd.eq\tr5, r0, r4\n\tsub.s!\t0, r4, r4\n\tjump.ne\t@.BB0_2\n\tadd\tstack-[13], r0, r4\n\tadd\tr1, r4, r4\n\tptr.add\tr2, r4, r1\n\tld\tr1, r1\n\tsub.s!\t@CPI0_5[0], r1, r5\n\tjump.gt\t@.BB0_2\n\tsub\tr3, r1, r5\n\tadd\t32, r4, r3\n\tadd\t@CPI0_4[0], r0, r4\n\tsub!\tr3, r5, r6\n\tadd\t0, r0, r6\n\tadd.gt\tr4, r0, r6\n\tand\t@CPI0_4[0], r5, r5\n\tand\t@CPI0_4[0], r3, r7\n\tsub!\tr7, r5, r8\n\tadd.ge\t0, r0, r4\n\txor\tr7, r5, r5\n\tsub.s!\t@CPI0_4[0], r5, r5\n\tadd.ne\tr6, r0, r4\n\tsub.s!\t0, r4, r4\n\tjump.ne\t@.BB0_2\n\tsub.s!\t1, r1, r4\n\tjump.ne\t@.BB0_481\n\tptr.add\tr2, r3, r1\n\tld\tr1, r1\n\tsub.s\t1, r0, r2\n\tadd\t@CPI0_4[0], r0, r3\n\tsub!\tr1, r2, r2\n\tadd\t0, r0, r2\n\tadd.gt\tr3, r0, r2\n\tand\t@CPI0_4[0], r1, r1\n\tsub.s!\t@CPI0_4[0], r1, r4\n\tadd.ge\t0, r0, r3\n\txor\t@CPI0_4[0], r1, r1\n\tsub.s!\t@CPI0_4[0], r1, r1\n\tadd\tr2, r0, r1\n\tadd.eq\tr3, r0, r1\n\tadd\t96, r0, r2\n\tadd\tr2, r0, stack-[4]\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_477\n\tld.1\t64, r1\n\tadd\tr1, r0, stack-[4]\n\tsub.s!\t@CPI0_11[0], r1, r1\n\tjump.gt\t@.BB0_19\n\tadd\tstack-[4], r0, r3\n\tadd\t64, r3, r1\n\tst.1\t64, r1\n\tadd\t32, r3, r1\n\tadd\t@CPI0_14[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t1, r0, r1\n\tst.1\tr3, r1\n\tjump\t@.BB0_477\n.BB0_219:\n\tld.1\t64, r5\n\tsub.s!\t@CPI0_11[0], r5, r6\n\tjump.gt\t@.BB0_19\n\tadd\t64, r5, r6\n\tst.1\t64, r6\n\tadd\t1, r0, r6\n\tst.1.inc\tr5, r6, r6\n\tadd\tstack[@calldatasize], r0, r7\n\tptr.add\tstack[@ptr_calldata], r7, r7\n\tadd\tr0, r0, r8\n.BB0_221:\n\tshl.s\t5, r8, r9\n\tadd\tr6, r9, r10\n\tptr.add\tr7, r9, r9\n\tld\tr9, r9\n\tst.1\tr10, r9\n\tadd!\t1, r8, r8\n\tadd\t0, r0, r9\n\tadd.eq\t1, r0, r9\n\tand!\t1, r9, r9\n\tjump.ne\t@.BB0_221\n\tld.1\tr5, r7\n\tsub.s!\t0, r7, r7\n\tjump.eq\t@.BB0_25\n\tshl.s\t248, r3, r7\n\tadd\t@CPI0_4[0], r0, r8\n\tsub.s!\t0, r3, r3\n\tadd\tr7, r0, r3\n\tadd.eq\tr8, r0, r3\n\tld.1\tr6, r7\n\tand\t@CPI0_12[0], r7, r7\n\tor\tr7, r3, r3\n\tst.1\tr6, r3\n.BB0_224:\n\tadd\tstack-[12], r0, r3\n\tadd\t100, r3, r3\n\tptr.add\tstack[@ptr_calldata], r3, r3\n\tld\tr3, r3\n\tsub.s!\t128, r3, r6\n\tjump.lt\t@.BB0_233\n\tshr.s\t128, r3, r6\n\tsub.s!\t@CPI0_13[0], r3, r7\n\tadd.le\tr3, r0, r6\n\tsub.s!\t@CPI0_13[0], r3, r7\n\tadd\t0, r0, r7\n\tadd.gt\t16, r0, r7\n\tor\t8, r7, r8\n\tsub.s!\t@CPI0_5[0], r6, r9\n\tadd.gt\tr8, r0, r7\n\tshr.s\t64, r6, r8\n\tsub.s!\t@CPI0_5[0], r6, r9\n\tadd.gt\tr8, r0, r6\n\tor\t4, r7, r8\n\tsub.s!\t@CPI0_0[0], r6, r9\n\tadd.gt\tr8, r0, r7\n\tshr.s\t32, r6, r8\n\tsub.s!\t@CPI0_0[0], r6, r9\n\tadd.gt\tr8, r0, r6\n\tor\t2, r7, r8\n\tsub.s!\t65535, r6, r9\n\tadd.gt\tr8, r0, r7\n\tshr.s\t16, r6, r8\n\tadd.gt\tr8, r0, r6\n\tsub.s!\t255, r6, r6\n\tadd\t0, r0, r6\n\tadd.gt\t1, r0, r6\n\tadd\tr7, r6, r7\n\tsub.s\t32, r0, r6\n\tadd\t65, r7, r8\n\tand\tr8, r6, r8\n\tld.1\t64, r6\n\tadd\tr6, r8, r8\n\tsub!\tr8, r6, r9\n\tadd\t0, r0, r9\n\tadd.lt\t1, r0, r9\n\tsub.s!\t@CPI0_5[0], r8, r10\n\tjump.gt\t@.BB0_19\n\tand!\t1, r9, r9\n\tjump.ne\t@.BB0_19\n\tst.1\t64, r8\n\tadd\t2, r7, r8\n\tst.1.inc\tr6, r8, r8\n\tadd\t33, r7, r9\n\tshr.s!\t5, r9, r9\n\tjump.eq\t@.BB0_810\n\tadd\tstack[@calldatasize], r0, r10\n\tptr.add\tstack[@ptr_calldata], r10, r10\n\tadd\tr0, r0, r11\n.BB0_229:\n\tshl.s\t5, r11, r12\n\tadd\tr8, r12, r13\n\tptr.add\tr10, r12, r12\n\tld\tr12, r12\n\tst.1\tr13, r12\n\tadd\t1, r11, r11\n\tsub!\tr11, r9, r12\n\tjump.lt\t@.BB0_229\n.BB0_810:\n\tsub.s!\t0, r0, r9\n\tjump.eq\t@.BB0_231\n.BB0_231:\n\tld.1\tr6, r9\n\tsub.s!\t0, r9, r9\n\tjump.eq\t@.BB0_25\n\tld.1\tr8, r9\n\tand\t@CPI0_12[0], r9, r9\n\tshl.s\t248, r7, r10\n\tor\tr10, r9, r9\n\tadd\t@CPI0_14[0], r9, r9\n\tst.1\tr8, r9\n\tshl.s\t3, r7, r7\n\tsub\t248, r7, r7\n\tshl\tr3, r7, r3\n\tsub.s!\t255, r7, r7\n\tadd.gt\t0, r0, r3\n\tadd\t33, r6, r7\n\tst.1\tr7, r3\n\tjump\t@.BB0_238\n.BB0_69:\n\tld.1\t64, r5\n\tsub.s!\t@CPI0_11[0], r5, r6\n\tjump.gt\t@.BB0_19\n\tadd\t64, r5, r6\n\tst.1\t64, r6\n\tadd\t1, r0, r6\n\tst.1.inc\tr5, r6, r6\n\tadd\tstack[@calldatasize], r0, r7\n\tptr.add\tstack[@ptr_calldata], r7, r7\n\tadd\tr0, r0, r8\n.BB0_71:\n\tshl.s\t5, r8, r9\n\tadd\tr6, r9, r10\n\tptr.add\tr7, r9, r9\n\tld\tr9, r9\n\tst.1\tr10, r9\n\tadd!\t1, r8, r8\n\tadd\t0, r0, r9\n\tadd.eq\t1, r0, r9\n\tand!\t1, r9, r9\n\tjump.ne\t@.BB0_71\n\tld.1\tr5, r7\n\tsub.s!\t0, r7, r7\n\tjump.eq\t@.BB0_25\n\tshl.s\t248, r2, r7\n\tadd\t@CPI0_4[0], r0, r8\n\tsub.s!\t0, r2, r2\n\tadd\tr7, r0, r2\n\tadd.eq\tr8, r0, r2\n\tld.1\tr6, r7\n\tand\t@CPI0_12[0], r7, r7\n\tor\tr7, r2, r2\n\tst.1\tr6, r2\n.BB0_74:\n\tld.1\t64, r6\n\tsub.s!\t@CPI0_11[0], r6, r2\n\tjump.gt\t@.BB0_19\n\tadd\tstack-[12], r0, r9\n\tadd\t68, r9, r2\n\tptr.add\tstack[@ptr_calldata], r2, r2\n\tld\tr2, r2\n\tadd\t64, r6, r7\n\tst.1\t64, r7\n\tadd\t32, r6, r7\n\tadd\t@CPI0_15[0], r0, r8\n\tst.1\tr7, r8\n\tadd\t21, r0, r7\n\tst.1\tr6, r7\n\tadd\t33, r6, r7\n\tshl.s\t96, r2, r2\n\tst.1\tr7, r2\n\tadd\t292, r9, r2\n\tptr.add\tstack[@ptr_calldata], r2, r2\n\tld\tr2, r2\n\tsub.s!\t128, r2, r7\n\tjump.lt\t@.BB0_84\n\tshr.s\t128, r2, r7\n\tsub.s!\t@CPI0_13[0], r2, r8\n\tadd.le\tr2, r0, r7\n\tsub.s!\t@CPI0_13[0], r2, r8\n\tadd\t0, r0, r8\n\tadd.gt\t16, r0, r8\n\tor\t8, r8, r9\n\tsub.s!\t@CPI0_5[0], r7, r10\n\tadd.gt\tr9, r0, r8\n\tshr.s\t64, r7, r9\n\tsub.s!\t@CPI0_5[0], r7, r10\n\tadd.gt\tr9, r0, r7\n\tor\t4, r8, r9\n\tsub.s!\t@CPI0_0[0], r7, r10\n\tadd.gt\tr9, r0, r8\n\tshr.s\t32, r7, r9\n\tsub.s!\t@CPI0_0[0], r7, r10\n\tadd.gt\tr9, r0, r7\n\tor\t2, r8, r9\n\tsub.s!\t65535, r7, r10\n\tadd.gt\tr9, r0, r8\n\tshr.s\t16, r7, r9\n\tadd.gt\tr9, r0, r7\n\tsub.s!\t255, r7, r7\n\tadd\t0, r0, r7\n\tadd.gt\t1, r0, r7\n\tadd\tr8, r7, r8\n\tsub.s\t32, r0, r7\n\tadd\t65, r8, r9\n\tand\tr9, r7, r9\n\tld.1\t64, r7\n\tadd\tr7, r9, r9\n\tsub!\tr9, r7, r10\n\tadd\t0, r0, r10\n\tadd.lt\t1, r0, r10\n\tsub.s!\t@CPI0_5[0], r9, r11\n\tjump.gt\t@.BB0_19\n\tand!\t1, r10, r10\n\tjump.ne\t@.BB0_19\n\tst.1\t64, r9\n\tadd\t2, r8, r9\n\tst.1.inc\tr7, r9, r9\n\tadd\t33, r8, r10\n\tshr.s!\t5, r10, r10\n\tjump.eq\t@.BB0_817\n\tadd\tstack[@calldatasize], r0, r11\n\tptr.add\tstack[@ptr_calldata], r11, r11\n\tadd\tr0, r0, r12\n.BB0_80:\n\tshl.s\t5, r12, r13\n\tadd\tr9, r13, r14\n\tptr.add\tr11, r13, r13\n\tld\tr13, r13\n\tst.1\tr14, r13\n\tadd\t1, r12, r12\n\tsub!\tr12, r10, r13\n\tjump.lt\t@.BB0_80\n.BB0_817:\n\tsub.s!\t0, r0, r10\n\tjump.eq\t@.BB0_82\n.BB0_82:\n\tld.1\tr7, r10\n\tsub.s!\t0, r10, r10\n\tjump.eq\t@.BB0_25\n\tld.1\tr9, r10\n\tand\t@CPI0_12[0], r10, r10\n\tshl.s\t248, r8, r11\n\tor\tr11, r10, r10\n\tadd\t@CPI0_14[0], r10, r10\n\tst.1\tr9, r10\n\tshl.s\t3, r8, r8\n\tsub\t248, r8, r8\n\tshl\tr2, r8, r2\n\tsub.s!\t255, r8, r8\n\tadd.gt\t0, r0, r2\n\tadd\t33, r7, r8\n\tst.1\tr8, r2\n\tjump\t@.BB0_89\n.BB0_233:\n\tld.1\t64, r6\n\tsub.s!\t@CPI0_11[0], r6, r7\n\tjump.gt\t@.BB0_19\n\tadd\t64, r6, r7\n\tst.1\t64, r7\n\tadd\t1, r0, r7\n\tst.1.inc\tr6, r7, r7\n\tadd\tstack[@calldatasize], r0, r8\n\tptr.add\tstack[@ptr_calldata], r8, r8\n\tadd\tr0, r0, r9\n.BB0_235:\n\tshl.s\t5, r9, r10\n\tadd\tr7, r10, r11\n\tptr.add\tr8, r10, r10\n\tld\tr10, r10\n\tst.1\tr11, r10\n\tadd!\t1, r9, r9\n\tadd\t0, r0, r10\n\tadd.eq\t1, r0, r10\n\tand!\t1, r10, r10\n\tjump.ne\t@.BB0_235\n\tld.1\tr6, r8\n\tsub.s!\t0, r8, r8\n\tjump.eq\t@.BB0_25\n\tshl.s\t248, r3, r8\n\tadd\t@CPI0_4[0], r0, r9\n\tsub.s!\t0, r3, r3\n\tadd\tr8, r0, r3\n\tadd.eq\tr9, r0, r3\n\tld.1\tr7, r8\n\tand\t@CPI0_12[0], r8, r8\n\tor\tr8, r3, r3\n\tst.1\tr7, r3\n.BB0_238:\n\tld.1\t64, r7\n\tsub.s!\t@CPI0_11[0], r7, r3\n\tjump.gt\t@.BB0_19\n\tadd\tstack-[12], r0, r10\n\tadd\t68, r10, r3\n\tptr.add\tstack[@ptr_calldata], r3, r3\n\tld\tr3, r3\n\tadd\t64, r7, r8\n\tst.1\t64, r8\n\tadd\t32, r7, r8\n\tadd\t@CPI0_15[0], r0, r9\n\tst.1\tr8, r9\n\tadd\t21, r0, r8\n\tst.1\tr7, r8\n\tadd\t33, r7, r8\n\tshl.s\t96, r3, r3\n\tst.1\tr8, r3\n\tadd\t292, r10, r3\n\tptr.add\tstack[@ptr_calldata], r3, r3\n\tld\tr3, r3\n\tsub.s!\t128, r3, r8\n\tjump.lt\t@.BB0_248\n\tshr.s\t128, r3, r8\n\tsub.s!\t@CPI0_13[0], r3, r9\n\tadd.le\tr3, r0, r8\n\tsub.s!\t@CPI0_13[0], r3, r9\n\tadd\t0, r0, r9\n\tadd.gt\t16, r0, r9\n\tor\t8, r9, r10\n\tsub.s!\t@CPI0_5[0], r8, r11\n\tadd.gt\tr10, r0, r9\n\tshr.s\t64, r8, r10\n\tsub.s!\t@CPI0_5[0], r8, r11\n\tadd.gt\tr10, r0, r8\n\tor\t4, r9, r10\n\tsub.s!\t@CPI0_0[0], r8, r11\n\tadd.gt\tr10, r0, r9\n\tshr.s\t32, r8, r10\n\tsub.s!\t@CPI0_0[0], r8, r11\n\tadd.gt\tr10, r0, r8\n\tor\t2, r9, r10\n\tsub.s!\t65535, r8, r11\n\tadd.gt\tr10, r0, r9\n\tshr.s\t16, r8, r10\n\tadd.gt\tr10, r0, r8\n\tsub.s!\t255, r8, r8\n\tadd\t0, r0, r8\n\tadd.gt\t1, r0, r8\n\tadd\tr9, r8, r9\n\tsub.s\t32, r0, r8\n\tadd\t65, r9, r10\n\tand\tr10, r8, r10\n\tld.1\t64, r8\n\tadd\tr8, r10, r10\n\tsub!\tr10, r8, r11\n\tadd\t0, r0, r11\n\tadd.lt\t1, r0, r11\n\tsub.s!\t@CPI0_5[0], r10, r12\n\tjump.gt\t@.BB0_19\n\tand!\t1, r11, r11\n\tjump.ne\t@.BB0_19\n\tst.1\t64, r10\n\tadd\t2, r9, r10\n\tst.1.inc\tr8, r10, r10\n\tadd\t33, r9, r11\n\tshr.s!\t5, r11, r11\n\tjump.eq\t@.BB0_811\n\tadd\tstack[@calldatasize], r0, r12\n\tptr.add\tstack[@ptr_calldata], r12, r12\n\tadd\tr0, r0, r13\n.BB0_244:\n\tshl.s\t5, r13, r14\n\tadd\tr10, r14, r15\n\tptr.add\tr12, r14, r14\n\tld\tr14, r14\n\tst.1\tr15, r14\n\tadd\t1, r13, r13\n\tsub!\tr13, r11, r14\n\tjump.lt\t@.BB0_244\n.BB0_811:\n\tsub.s!\t0, r0, r11\n\tjump.eq\t@.BB0_246\n.BB0_246:\n\tld.1\tr8, r11\n\tsub.s!\t0, r11, r11\n\tjump.eq\t@.BB0_25\n\tld.1\tr10, r11\n\tand\t@CPI0_12[0], r11, r11\n\tshl.s\t248, r9, r12\n\tor\tr12, r11, r11\n\tadd\t@CPI0_14[0], r11, r11\n\tst.1\tr10, r11\n\tshl.s\t3, r9, r9\n\tsub\t248, r9, r9\n\tshl\tr3, r9, r3\n\tsub.s!\t255, r9, r9\n\tadd.gt\t0, r0, r3\n\tadd\t33, r8, r9\n\tst.1\tr9, r3\n\tjump\t@.BB0_253\n.BB0_84:\n\tld.1\t64, r7\n\tsub.s!\t@CPI0_11[0], r7, r8\n\tjump.gt\t@.BB0_19\n\tadd\t64, r7, r8\n\tst.1\t64, r8\n\tadd\t1, r0, r8\n\tst.1.inc\tr7, r8, r8\n\tadd\tstack[@calldatasize], r0, r9\n\tptr.add\tstack[@ptr_calldata], r9, r9\n\tadd\tr0, r0, r10\n.BB0_86:\n\tshl.s\t5, r10, r11\n\tadd\tr8, r11, r12\n\tptr.add\tr9, r11, r11\n\tld\tr11, r11\n\tst.1\tr12, r11\n\tadd!\t1, r10, r10\n\tadd\t0, r0, r11\n\tadd.eq\t1, r0, r11\n\tand!\t1, r11, r11\n\tjump.ne\t@.BB0_86\n\tld.1\tr7, r9\n\tsub.s!\t0, r9, r9\n\tjump.eq\t@.BB0_25\n\tshl.s\t248, r2, r9\n\tadd\t@CPI0_4[0], r0, r10\n\tsub.s!\t0, r2, r2\n\tadd\tr9, r0, r2\n\tadd.eq\tr10, r0, r2\n\tld.1\tr8, r9\n\tand\t@CPI0_12[0], r9, r9\n\tor\tr9, r2, r2\n\tst.1\tr8, r2\n.BB0_89:\n\tld.1\t64, r2\n\tadd\t32, r2, r8\n\tld.1\tr1, r9\n\tsub.s!\t0, r9, r10\n\tjump.eq\t@.BB0_92\n\tadd\tr0, r0, r10\n.BB0_91:\n\tadd\tr10, r8, r11\n\tadd\t32, r10, r10\n\tadd\tr10, r1, r12\n\tld.1\tr12, r12\n\tst.1\tr11, r12\n\tsub!\tr10, r9, r11\n\tjump.lt\t@.BB0_91\n.BB0_92:\n\tadd\tr9, r8, r1\n\tst.1\tr1, r0\n\tld.1\tr3, r8\n\tsub.s!\t0, r8, r9\n\tjump.eq\t@.BB0_95\n\tadd\tr0, r0, r9\n.BB0_94:\n\tadd\tr9, r1, r10\n\tadd\t32, r9, r9\n\tadd\tr9, r3, r11\n\tld.1\tr11, r11\n\tst.1\tr10, r11\n\tsub!\tr9, r8, r10\n\tjump.lt\t@.BB0_94\n.BB0_95:\n\tadd\tr8, r1, r1\n\tst.1\tr1, r0\n\tld.1\tr4, r3\n\tsub.s!\t0, r3, r8\n\tjump.eq\t@.BB0_98\n\tadd\tr0, r0, r8\n.BB0_97:\n\tadd\tr8, r1, r9\n\tadd\t32, r8, r8\n\tadd\tr8, r4, r10\n\tld.1\tr10, r10\n\tst.1\tr9, r10\n\tsub!\tr8, r3, r9\n\tjump.lt\t@.BB0_97\n.BB0_98:\n\tadd\tr3, r1, r1\n\tst.1\tr1, r0\n\tld.1\tr5, r3\n\tsub.s!\t0, r3, r4\n\tjump.eq\t@.BB0_101\n\tadd\tr0, r0, r4\n.BB0_100:\n\tadd\tr4, r1, r8\n\tadd\t32, r4, r4\n\tadd\tr4, r5, r9\n\tld.1\tr9, r9\n\tst.1\tr8, r9\n\tsub!\tr4, r3, r8\n\tjump.lt\t@.BB0_100\n.BB0_101:\n\tadd\tr3, r1, r1\n\tst.1\tr1, r0\n\tld.1\tr6, r3\n\tsub.s!\t0, r3, r4\n\tjump.eq\t@.BB0_104\n\tadd\tr0, r0, r4\n.BB0_103:\n\tadd\tr4, r1, r5\n\tadd\t32, r4, r4\n\tadd\tr4, r6, r8\n\tld.1\tr8, r8\n\tst.1\tr5, r8\n\tsub!\tr4, r3, r5\n\tjump.lt\t@.BB0_103\n.BB0_104:\n\tadd\tr3, r1, r1\n\tst.1\tr1, r0\n\tld.1\tr7, r3\n\tsub.s!\t0, r3, r4\n\tjump.eq\t@.BB0_107\n\tadd\tr0, r0, r4\n.BB0_106:\n\tadd\tr4, r1, r5\n\tadd\t32, r4, r4\n\tadd\tr4, r7, r6\n\tld.1\tr6, r6\n\tst.1\tr5, r6\n\tsub!\tr4, r3, r5\n\tjump.lt\t@.BB0_106\n.BB0_107:\n\tadd\tr3, r1, r1\n\tst.1\tr1, r0\n\tsub\tr1, r2, r1\n\tsub.s\t32, r1, r3\n\tst.1\tr2, r3\n\tadd\t31, r1, r3\n\tsub.s\t32, r0, r1\n\tand\tr3, r1, r3\n\tadd\tr3, r2, r5\n\tsub!\tr5, r3, r3\n\tadd\t0, r0, r3\n\tadd.lt\t1, r0, r3\n\tsub.s!\t@CPI0_5[0], r5, r4\n\tjump.gt\t@.BB0_19\n\tand!\t1, r3, r3\n\tjump.ne\t@.BB0_19\n\tst.1\t64, r5\n\tsub.s\t35, r0, r3\n\tadd\tstack-[12], r0, r6\n\tsub\tr3, r6, r4\n\tadd\t452, r6, r3\n\tptr.add\tstack[@ptr_calldata], r0, r7\n\tptr.add\tr7, r3, r6\n\tld\tr6, r6\n\tadd\tstack[@calldatasize], r0, r8\n\tadd\tr8, r4, r9\n\tadd\t@CPI0_4[0], r0, r10\n\tsub!\tr6, r9, r11\n\tadd\t0, r0, r11\n\tadd.ge\tr10, r0, r11\n\tand\t@CPI0_4[0], r9, r9\n\tand\t@CPI0_4[0], r6, r12\n\tsub!\tr12, r9, r13\n\tadd.ge\t0, r0, r10\n\txor\tr12, r9, r9\n\tsub.s!\t@CPI0_4[0], r9, r9\n\tadd\tr11, r0, r9\n\tadd.eq\tr10, r0, r9\n\tsub.s!\t0, r9, r9\n\tjump.ne\t@.BB0_2\n\tadd\tstack-[13], r0, r9\n\tadd\tr6, r9, r9\n\tptr.add\tr7, r9, r6\n\tld\tr6, r6\n\tsub.s!\t@CPI0_5[0], r6, r10\n\tjump.gt\t@.BB0_2\n\tsub\tr8, r6, r10\n\tadd\t32, r9, r8\n\tadd\t@CPI0_4[0], r0, r9\n\tsub!\tr8, r10, r11\n\tadd\t0, r0, r11\n\tadd.gt\tr9, r0, r11\n\tand\t@CPI0_4[0], r10, r10\n\tand\t@CPI0_4[0], r8, r12\n\tsub!\tr12, r10, r13\n\tadd.ge\t0, r0, r9\n\txor\tr12, r10, r10\n\tsub.s!\t@CPI0_4[0], r10, r10\n\tadd.ne\tr11, r0, r9\n\tsub.s!\t0, r9, r9\n\tjump.ne\t@.BB0_2\n\tsub.s!\t1, r6, r9\n\tjump.ne\t@.BB0_156\n\tptr.add\tr7, r8, r6\n\tld\tr6, r6\n\tsub.s\t1, r0, r7\n\tadd\t@CPI0_4[0], r0, r8\n\tsub!\tr6, r7, r7\n\tadd\t0, r0, r7\n\tadd.gt\tr8, r0, r7\n\tand\t@CPI0_4[0], r6, r6\n\tsub.s!\t@CPI0_4[0], r6, r9\n\tadd.ge\t0, r0, r8\n\txor\t@CPI0_4[0], r6, r6\n\tsub.s!\t@CPI0_4[0], r6, r6\n\tadd.eq\tr8, r0, r7\n\tadd\t96, r0, r6\n\tsub.s!\t0, r7, r7\n\tjump.ne\t@.BB0_113\n\tsub.s!\t@CPI0_11[0], r5, r6\n\tjump.gt\t@.BB0_19\n\tadd\t64, r5, r6\n\tst.1\t64, r6\n\tadd\t32, r5, r6\n\tadd\t@CPI0_14[0], r0, r7\n\tst.1\tr6, r7\n\tadd\t1, r0, r6\n\tst.1\tr5, r6\n\tadd\tr5, r0, r6\n\tjump\t@.BB0_113\n.BB0_481:\n\tsub.s!\t56, r1, r2\n\tjump.lt\t@.BB0_487\n\tshr.s\t32, r1, r2\n\tsub.s!\t@CPI0_0[0], r1, r3\n\tadd\tr1, r0, r3\n\tadd.gt\tr2, r0, r3\n\tsub.s!\t@CPI0_0[0], r1, r2\n\tadd\t0, r0, r2\n\tadd.gt\t4, r0, r2\n\tor\t2, r2, r4\n\tsub.s!\t65535, r3, r5\n\tadd.gt\tr4, r0, r2\n\tshr.s\t16, r3, r4\n\tadd.gt\tr4, r0, r3\n\tsub.s!\t255, r3, r3\n\tadd\t0, r0, r3\n\tadd.gt\t1, r0, r3\n\tld.1\t64, r4\n\tadd\tr4, r0, stack-[4]\n\tsub.s!\t@CPI0_11[0], r4, r4\n\tjump.gt\t@.BB0_19\n\tor\tr2, r3, r2\n\tadd\tstack-[4], r0, r4\n\tadd\t64, r4, r3\n\tst.1\t64, r3\n\tadd\t2, r2, r3\n\tst.1.inc\tr4, r3, r3\n\tadd\tstack[@calldatasize], r0, r4\n\tptr.add\tstack[@ptr_calldata], r4, r4\n\tadd\tr0, r0, r5\n.BB0_484:\n\tshl.s\t5, r5, r6\n\tadd\tr3, r6, r7\n\tptr.add\tr4, r6, r6\n\tld\tr6, r6\n\tst.1\tr7, r6\n\tadd!\t1, r5, r5\n\tadd\t0, r0, r6\n\tadd.eq\t1, r0, r6\n\tand!\t1, r6, r6\n\tjump.ne\t@.BB0_484\n\tadd\tstack-[4], r0, r4\n\tld.1\tr4, r4\n\tsub.s!\t0, r4, r4\n\tjump.eq\t@.BB0_25\n\tld.1\tr3, r4\n\tand\t@CPI0_12[0], r4, r4\n\tshl.s\t248, r2, r5\n\tor\tr5, r4, r4\n\tor\t@CPI0_16[0], r4, r4\n\tst.1\tr3, r4\n\tshl.s\t3, r2, r2\n\tsub\t248, r2, r2\n\tshl\tr1, r2, r1\n\tadd\tstack-[4], r0, r2\n\tadd\t33, r2, r2\n\tst.1\tr2, r1\n\tjump\t@.BB0_477\n.BB0_248:\n\tld.1\t64, r8\n\tsub.s!\t@CPI0_11[0], r8, r9\n\tjump.gt\t@.BB0_19\n\tadd\t64, r8, r9\n\tst.1\t64, r9\n\tadd\t1, r0, r9\n\tst.1.inc\tr8, r9, r9\n\tadd\tstack[@calldatasize], r0, r10\n\tptr.add\tstack[@ptr_calldata], r10, r10\n\tadd\tr0, r0, r11\n.BB0_250:\n\tshl.s\t5, r11, r12\n\tadd\tr9, r12, r13\n\tptr.add\tr10, r12, r12\n\tld\tr12, r12\n\tst.1\tr13, r12\n\tadd!\t1, r11, r11\n\tadd\t0, r0, r12\n\tadd.eq\t1, r0, r12\n\tand!\t1, r12, r12\n\tjump.ne\t@.BB0_250\n\tld.1\tr8, r10\n\tsub.s!\t0, r10, r10\n\tjump.eq\t@.BB0_25\n\tshl.s\t248, r3, r10\n\tadd\t@CPI0_4[0], r0, r11\n\tsub.s!\t0, r3, r3\n\tadd\tr10, r0, r3\n\tadd.eq\tr11, r0, r3\n\tld.1\tr9, r10\n\tand\t@CPI0_12[0], r10, r10\n\tor\tr10, r3, r3\n\tst.1\tr9, r3\n.BB0_253:\n\tld.1\t64, r3\n\tadd\t32, r3, r9\n\tld.1\tr1, r10\n\tsub.s!\t0, r10, r11\n\tjump.eq\t@.BB0_256\n\tadd\tr0, r0, r11\n.BB0_255:\n\tadd\tr11, r9, r12\n\tadd\t32, r11, r11\n\tadd\tr11, r1, r13\n\tld.1\tr13, r13\n\tst.1\tr12, r13\n\tsub!\tr11, r10, r12\n\tjump.lt\t@.BB0_255\n.BB0_256:\n\tadd\tr10, r9, r1\n\tst.1\tr1, r0\n\tld.1\tr2, r9\n\tsub.s!\t0, r9, r10\n\tjump.eq\t@.BB0_259\n\tadd\tr0, r0, r10\n.BB0_258:\n\tadd\tr10, r1, r11\n\tadd\t32, r10, r10\n\tadd\tr10, r2, r12\n\tld.1\tr12, r12\n\tst.1\tr11, r12\n\tsub!\tr10, r9, r11\n\tjump.lt\t@.BB0_258\n.BB0_259:\n\tadd\tr9, r1, r1\n\tst.1\tr1, r0\n\tld.1\tr4, r2\n\tsub.s!\t0, r2, r9\n\tjump.eq\t@.BB0_262\n\tadd\tr0, r0, r9\n.BB0_261:\n\tadd\tr9, r1, r10\n\tadd\t32, r9, r9\n\tadd\tr9, r4, r11\n\tld.1\tr11, r11\n\tst.1\tr10, r11\n\tsub!\tr9, r2, r10\n\tjump.lt\t@.BB0_261\n.BB0_262:\n\tadd\tr2, r1, r1\n\tst.1\tr1, r0\n\tld.1\tr5, r2\n\tsub.s!\t0, r2, r4\n\tjump.eq\t@.BB0_265\n\tadd\tr0, r0, r4\n.BB0_264:\n\tadd\tr4, r1, r9\n\tadd\t32, r4, r4\n\tadd\tr4, r5, r10\n\tld.1\tr10, r10\n\tst.1\tr9, r10\n\tsub!\tr4, r2, r9\n\tjump.lt\t@.BB0_264\n.BB0_265:\n\tadd\tr2, r1, r1\n\tst.1\tr1, r0\n\tld.1\tr6, r2\n\tsub.s!\t0, r2, r4\n\tjump.eq\t@.BB0_268\n\tadd\tr0, r0, r4\n.BB0_267:\n\tadd\tr4, r1, r5\n\tadd\t32, r4, r4\n\tadd\tr4, r6, r9\n\tld.1\tr9, r9\n\tst.1\tr5, r9\n\tsub!\tr4, r2, r5\n\tjump.lt\t@.BB0_267\n.BB0_268:\n\tadd\tr2, r1, r1\n\tst.1\tr1, r0\n\tld.1\tr7, r2\n\tsub.s!\t0, r2, r4\n\tjump.eq\t@.BB0_271\n\tadd\tr0, r0, r4\n.BB0_270:\n\tadd\tr4, r1, r5\n\tadd\t32, r4, r4\n\tadd\tr4, r7, r6\n\tld.1\tr6, r6\n\tst.1\tr5, r6\n\tsub!\tr4, r2, r5\n\tjump.lt\t@.BB0_270\n.BB0_271:\n\tadd\tr2, r1, r1\n\tst.1\tr1, r0\n\tld.1\tr8, r2\n\tsub.s!\t0, r2, r4\n\tjump.eq\t@.BB0_274\n\tadd\tr0, r0, r4\n.BB0_273:\n\tadd\tr4, r1, r5\n\tadd\t32, r4, r4\n\tadd\tr4, r8, r6\n\tld.1\tr6, r6\n\tst.1\tr5, r6\n\tsub!\tr4, r2, r5\n\tjump.lt\t@.BB0_273\n.BB0_274:\n\tadd\tr2, r1, r1\n\tst.1\tr1, r0\n\tsub\tr1, r3, r1\n\tsub.s\t32, r1, r2\n\tst.1\tr3, r2\n\tadd\t31, r1, r2\n\tsub.s\t32, r0, r1\n\tand\tr2, r1, r2\n\tadd\tr2, r3, r5\n\tsub!\tr5, r2, r2\n\tadd\t0, r0, r2\n\tadd.lt\t1, r0, r2\n\tsub.s!\t@CPI0_5[0], r5, r4\n\tjump.gt\t@.BB0_19\n\tand!\t1, r2, r2\n\tjump.ne\t@.BB0_19\n\tst.1\t64, r5\n\tsub.s\t35, r0, r2\n\tadd\tstack-[12], r0, r6\n\tsub\tr2, r6, r4\n\tadd\t452, r6, r2\n\tptr.add\tstack[@ptr_calldata], r0, r7\n\tptr.add\tr7, r2, r6\n\tld\tr6, r6\n\tadd\tstack[@calldatasize], r0, r8\n\tadd\tr8, r4, r9\n\tadd\t@CPI0_4[0], r0, r10\n\tsub!\tr6, r9, r11\n\tadd\t0, r0, r11\n\tadd.ge\tr10, r0, r11\n\tand\t@CPI0_4[0], r9, r9\n\tand\t@CPI0_4[0], r6, r12\n\tsub!\tr12, r9, r13\n\tadd.ge\t0, r0, r10\n\txor\tr12, r9, r9\n\tsub.s!\t@CPI0_4[0], r9, r9\n\tadd\tr11, r0, r9\n\tadd.eq\tr10, r0, r9\n\tsub.s!\t0, r9, r9\n\tjump.ne\t@.BB0_2\n\tadd\tstack-[13], r0, r9\n\tadd\tr6, r9, r9\n\tptr.add\tr7, r9, r6\n\tld\tr6, r6\n\tsub.s!\t@CPI0_5[0], r6, r10\n\tjump.gt\t@.BB0_2\n\tsub\tr8, r6, r10\n\tadd\t32, r9, r8\n\tadd\t@CPI0_4[0], r0, r9\n\tsub!\tr8, r10, r11\n\tadd\t0, r0, r11\n\tadd.gt\tr9, r0, r11\n\tand\t@CPI0_4[0], r10, r10\n\tand\t@CPI0_4[0], r8, r12\n\tsub!\tr12, r10, r13\n\tadd.ge\t0, r0, r9\n\txor\tr12, r10, r10\n\tsub.s!\t@CPI0_4[0], r10, r10\n\tadd.ne\tr11, r0, r9\n\tsub.s!\t0, r9, r9\n\tjump.ne\t@.BB0_2\n\tsub.s!\t1, r6, r9\n\tjump.ne\t@.BB0_323\n\tptr.add\tr7, r8, r6\n\tld\tr6, r6\n\tsub.s\t1, r0, r7\n\tadd\t@CPI0_4[0], r0, r8\n\tsub!\tr6, r7, r7\n\tadd\t0, r0, r7\n\tadd.gt\tr8, r0, r7\n\tand\t@CPI0_4[0], r6, r6\n\tsub.s!\t@CPI0_4[0], r6, r9\n\tadd.ge\t0, r0, r8\n\txor\t@CPI0_4[0], r6, r6\n\tsub.s!\t@CPI0_4[0], r6, r6\n\tadd.eq\tr8, r0, r7\n\tadd\t96, r0, r6\n\tsub.s!\t0, r7, r7\n\tjump.ne\t@.BB0_280\n\tsub.s!\t@CPI0_11[0], r5, r6\n\tjump.gt\t@.BB0_19\n\tadd\t64, r5, r6\n\tst.1\t64, r6\n\tadd\t32, r5, r6\n\tadd\t@CPI0_14[0], r0, r7\n\tst.1\tr6, r7\n\tadd\t1, r0, r6\n\tst.1\tr5, r6\n\tadd\tr5, r0, r6\n\tjump\t@.BB0_280\n.BB0_487:\n\tld.1\t64, r2\n\tadd\tr2, r0, stack-[4]\n\tsub.s!\t@CPI0_11[0], r2, r2\n\tjump.gt\t@.BB0_19\n\tadd\tstack-[4], r0, r3\n\tadd\t64, r3, r2\n\tst.1\t64, r2\n\tadd\t1, r0, r2\n\tst.1.inc\tr3, r2, r2\n\tadd\tstack[@calldatasize], r0, r3\n\tptr.add\tstack[@ptr_calldata], r3, r3\n\tadd\tr0, r0, r4\n.BB0_489:\n\tshl.s\t5, r4, r5\n\tadd\tr2, r5, r6\n\tptr.add\tr3, r5, r5\n\tld\tr5, r5\n\tst.1\tr6, r5\n\tadd!\t1, r4, r4\n\tadd\t0, r0, r5\n\tadd.eq\t1, r0, r5\n\tand!\t1, r5, r5\n\tjump.ne\t@.BB0_489\n\tadd\tstack-[4], r0, r3\n\tld.1\tr3, r3\n\tsub.s!\t0, r3, r3\n\tjump.eq\t@.BB0_25\n\tshl.s\t248, r1, r1\n\tld.1\tr2, r3\n\tand\t@CPI0_12[0], r3, r3\n\tor\tr3, r1, r1\n\txor\t@CPI0_4[0], r1, r1\n\tst.1\tr2, r1\n.BB0_477:\n\tadd\t96, r0, r1\n\tadd\tstack-[12], r0, r2\n\tadd\t324, r2, r3\n\tptr.add\tstack[@ptr_calldata], r0, r2\n\tptr.add\tr2, r3, r3\n\tld\tr3, r3\n\tsub.s!\t0, r3, r3\n\tjump.ne\t@.BB0_492\n.BB0_513:\n\tadd\tstack-[6], r0, r3\n\tptr.add\tr2, r3, r4\n\tadd\tstack[@calldatasize], r0, r3\n\tadd\tstack-[5], r0, r5\n\tadd\tr3, r5, r5\n\tld\tr4, r9\n\tadd\t@CPI0_4[0], r0, r4\n\tsub!\tr9, r5, r6\n\tadd\t0, r0, r6\n\tadd.ge\tr4, r0, r6\n\tand\t@CPI0_4[0], r5, r5\n\tand\t@CPI0_4[0], r9, r7\n\tsub!\tr7, r5, r8\n\tadd.ge\t0, r0, r4\n\txor\tr7, r5, r5\n\tsub.s!\t@CPI0_4[0], r5, r5\n\tadd.ne\tr6, r0, r4\n\tsub.s!\t0, r4, r4\n\tjump.ne\t@.BB0_2\n\tadd\tstack-[11], r0, r4\n\tld.1\tr4, r4\n\tadd\tstack-[10], r0, r5\n\tld.1\tr5, r5\n\tadd\tstack-[9], r0, r6\n\tld.1\tr6, r6\n\tadd\tstack-[7], r0, r7\n\tld.1\tr7, r7\n\tadd\tstack-[4], r0, r8\n\tld.1\tr8, r8\n\tadd\tstack-[13], r0, r10\n\tadd\tr9, r10, r9\n\tptr.add\tr2, r9, r2\n\tld\tr2, r2\n\tsub.s!\t@CPI0_5[0], r2, r10\n\tjump.gt\t@.BB0_2\n\tsub\tr3, r2, r3\n\tadd\t32, r9, r9\n\tadd\t@CPI0_4[0], r0, r10\n\tsub!\tr9, r3, r11\n\tadd\t0, r0, r11\n\tadd.gt\tr10, r0, r11\n\tand\t@CPI0_4[0], r3, r3\n\tand\t@CPI0_4[0], r9, r9\n\tsub!\tr9, r3, r12\n\tadd.ge\t0, r0, r10\n\txor\tr9, r3, r3\n\tsub.s!\t@CPI0_4[0], r3, r3\n\tadd\tr11, r0, r3\n\tadd.eq\tr10, r0, r3\n\tsub.s!\t0, r3, r3\n\tjump.ne\t@.BB0_2\n\tadd\tr5, r4, r3\n\tadd\tr3, r6, r3\n\tadd\tr3, r7, r3\n\tadd\tr3, r8, r3\n\tadd\tr3, r2, r2\n\tld.1\tr1, r3\n\tadd\tr2, r3, r2\n\tand\t@CPI0_5[0], r2, r2\n\tsub.s!\t56, r2, r3\n\tjump.lt\t@.BB0_522\n\tshr.s\t32, r2, r3\n\tsub.s!\t@CPI0_0[0], r2, r4\n\tadd\tr2, r0, r4\n\tadd.gt\tr3, r0, r4\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd\t0, r0, r3\n\tadd.gt\t4, r0, r3\n\tor\t2, r3, r5\n\tsub.s!\t65535, r4, r6\n\tadd.gt\tr5, r0, r3\n\tshr.s\t16, r4, r5\n\tadd.gt\tr5, r0, r4\n\tsub.s!\t255, r4, r4\n\tadd\t0, r0, r4\n\tadd.gt\t1, r0, r4\n\tld.1\t64, r5\n\tsub.s!\t@CPI0_11[0], r5, r6\n\tjump.gt\t@.BB0_19\n\tor\tr3, r4, r3\n\tadd\t64, r5, r4\n\tst.1\t64, r4\n\tadd\t2, r3, r4\n\tst.1.inc\tr5, r4, r4\n\tadd\tstack[@calldatasize], r0, r6\n\tptr.add\tstack[@ptr_calldata], r6, r6\n\tadd\tr0, r0, r7\n.BB0_519:\n\tshl.s\t5, r7, r8\n\tadd\tr4, r8, r9\n\tptr.add\tr6, r8, r8\n\tld\tr8, r8\n\tst.1\tr9, r8\n\tadd!\t1, r7, r7\n\tadd\t0, r0, r8\n\tadd.eq\t1, r0, r8\n\tand!\t1, r8, r8\n\tjump.ne\t@.BB0_519\n\tld.1\tr5, r6\n\tsub.s!\t0, r6, r6\n\tjump.eq\t@.BB0_25\n\tld.1\tr4, r6\n\tand\t@CPI0_12[0], r6, r6\n\tshl.s\t248, r3, r7\n\tor\tr7, r6, r6\n\tor\t@CPI0_18[0], r6, r6\n\tst.1\tr4, r6\n\tshl.s\t3, r3, r3\n\tsub\t248, r3, r3\n\tshl\tr2, r3, r2\n\tadd\t33, r5, r3\n\tst.1\tr3, r2\n\tjump\t@.BB0_527\n.BB0_492:\n\tadd\t@CPI0_9[0], r0, r1\n\tst.2\t0, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI0_10[0], r1, r1\n\tadd\t32779, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_2\n\tld\tr1, r1\n\tsub.s!\t128, r1, r2\n\tjump.lt\t@.BB0_502\n\tshr.s\t128, r1, r2\n\tsub.s!\t@CPI0_13[0], r1, r3\n\tadd.le\tr1, r0, r2\n\tsub.s!\t@CPI0_13[0], r1, r3\n\tadd\t0, r0, r3\n\tadd.gt\t16, r0, r3\n\tor\t8, r3, r4\n\tsub.s!\t@CPI0_5[0], r2, r5\n\tadd.gt\tr4, r0, r3\n\tshr.s\t64, r2, r4\n\tsub.s!\t@CPI0_5[0], r2, r5\n\tadd.gt\tr4, r0, r2\n\tor\t4, r3, r4\n\tsub.s!\t@CPI0_0[0], r2, r5\n\tadd.gt\tr4, r0, r3\n\tshr.s\t32, r2, r4\n\tsub.s!\t@CPI0_0[0], r2, r5\n\tadd.gt\tr4, r0, r2\n\tor\t2, r3, r4\n\tsub.s!\t65535, r2, r5\n\tadd.gt\tr4, r0, r3\n\tshr.s\t16, r2, r4\n\tadd.gt\tr4, r0, r2\n\tsub.s!\t255, r2, r2\n\tadd\t0, r0, r2\n\tadd.gt\t1, r0, r2\n\tadd\tr3, r2, r3\n\tadd\t65, r3, r2\n\tadd\tstack-[8], r0, r4\n\tand\tr2, r4, r4\n\tld.1\t64, r2\n\tadd\tr2, r4, r4\n\tsub!\tr4, r2, r5\n\tadd\t0, r0, r5\n\tadd.lt\t1, r0, r5\n\tsub.s!\t@CPI0_5[0], r4, r6\n\tjump.gt\t@.BB0_19\n\tand!\t1, r5, r5\n\tjump.ne\t@.BB0_19\n\tst.1\t64, r4\n\tadd\t2, r3, r4\n\tst.1.inc\tr2, r4, r4\n\tadd\t33, r3, r5\n\tshr.s!\t5, r5, r5\n\tjump.eq\t@.BB0_797\n\tadd\tstack[@calldatasize], r0, r6\n\tptr.add\tstack[@ptr_calldata], r6, r6\n\tadd\tr0, r0, r7\n.BB0_498:\n\tshl.s\t5, r7, r8\n\tadd\tr4, r8, r9\n\tptr.add\tr6, r8, r8\n\tld\tr8, r8\n\tst.1\tr9, r8\n\tadd\t1, r7, r7\n\tsub!\tr7, r5, r8\n\tjump.lt\t@.BB0_498\n.BB0_797:\n\tsub.s!\t0, r0, r5\n\tjump.eq\t@.BB0_500\n.BB0_500:\n\tld.1\tr2, r5\n\tsub.s!\t0, r5, r5\n\tjump.eq\t@.BB0_25\n\tld.1\tr4, r5\n\tand\t@CPI0_12[0], r5, r5\n\tshl.s\t248, r3, r6\n\tor\tr6, r5, r5\n\tadd\t@CPI0_14[0], r5, r5\n\tst.1\tr4, r5\n\tshl.s\t3, r3, r3\n\tsub\t248, r3, r3\n\tshl\tr1, r3, r1\n\tsub.s!\t255, r3, r3\n\tadd.gt\t0, r0, r1\n\tadd\t33, r2, r3\n\tst.1\tr3, r1\n\tjump\t@.BB0_507\n.BB0_502:\n\tld.1\t64, r2\n\tsub.s!\t@CPI0_11[0], r2, r3\n\tjump.gt\t@.BB0_19\n\tadd\t64, r2, r3\n\tst.1\t64, r3\n\tadd\t1, r0, r3\n\tst.1.inc\tr2, r3, r3\n\tadd\tstack[@calldatasize], r0, r4\n\tptr.add\tstack[@ptr_calldata], r4, r4\n\tadd\tr0, r0, r5\n.BB0_504:\n\tshl.s\t5, r5, r6\n\tadd\tr3, r6, r7\n\tptr.add\tr4, r6, r6\n\tld\tr6, r6\n\tst.1\tr7, r6\n\tadd!\t1, r5, r5\n\tadd\t0, r0, r6\n\tadd.eq\t1, r0, r6\n\tand!\t1, r6, r6\n\tjump.ne\t@.BB0_504\n\tld.1\tr2, r4\n\tsub.s!\t0, r4, r4\n\tjump.eq\t@.BB0_25\n\tshl.s\t248, r1, r4\n\tadd\t@CPI0_4[0], r0, r5\n\tsub.s!\t0, r1, r1\n\tadd\tr4, r0, r1\n\tadd.eq\tr5, r0, r1\n\tld.1\tr3, r4\n\tand\t@CPI0_12[0], r4, r4\n\tor\tr4, r1, r1\n\tst.1\tr3, r1\n.BB0_507:\n\tld.1\t64, r1\n\tadd\t32, r1, r3\n\tld.1\tr2, r4\n\tsub.s!\t0, r4, r5\n\tjump.eq\t@.BB0_510\n\tadd\tr0, r0, r5\n.BB0_509:\n\tadd\tr5, r3, r6\n\tadd\t32, r5, r5\n\tadd\tr5, r2, r7\n\tld.1\tr7, r7\n\tst.1\tr6, r7\n\tsub!\tr5, r4, r6\n\tjump.lt\t@.BB0_509\n.BB0_510:\n\tadd\tr4, r3, r2\n\tadd\t@CPI0_35[0], r0, r3\n\tst.1\tr2, r3\n\tsub\tr2, r1, r2\n\tsub.s\t30, r2, r3\n\tst.1\tr1, r3\n\tadd\t33, r2, r2\n\tadd\tstack-[8], r0, r3\n\tand\tr2, r3, r3\n\tadd\tr3, r1, r2\n\tsub!\tr2, r3, r3\n\tadd\t0, r0, r3\n\tadd.lt\t1, r0, r3\n\tsub.s!\t@CPI0_5[0], r2, r4\n\tjump.gt\t@.BB0_19\n\tand!\t1, r3, r3\n\tjump.ne\t@.BB0_19\n\tst.1\t64, r2\n\tptr.add\tstack[@ptr_calldata], r0, r2\n\tjump\t@.BB0_513\n.BB0_379:\n\tadd\tstack-[8], r0, r1\n\tshl.s\t192, r1, r1\n\tand\t@CPI0_22[0], r1, r1\n\tor\t@CPI0_21[0], r1, r1\n\tadd\t65513, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tadd\tr1, r0, r2\n\tshr.s\t96, r2, r2\n\tand\t@CPI0_0[0], r2, stack[@returndatasize]\n\tadd\tstack-[9], r0, r3\n\tadd\tstack-[8], r0, r2\n\tadd\tr3, r2, r2\n\tsub!\tr2, r3, r3\n\tadd\t0, r0, r3\n\tadd.lt\t1, r0, r3\n\tptr.add\tr1, r0, stack[@ptr_return_data]\n\tand!\t1, r3, r1\n\tjump.ne\t@.BB0_340\n\tadd\tstack[@calldatasize], r0, r1\n\tsub!\tr1, r2, r3\n\tjump.lt\t@.BB0_340\n\tsub\tr1, r2, r1\n.BB0_378:\n\tshl.s\t192, r1, r1\n\tand\t@CPI0_22[0], r1, r1\n\tor\t@CPI0_21[0], r1, r1\n\tadd\t65512, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tadd\tr1, r0, r2\n\tshr.s\t96, r2, r2\n\tand\t@CPI0_0[0], r2, stack[@returndatasize]\n\tptr.add\tr1, r0, stack[@ptr_return_data]\n\tadd\tstack-[6], r0, r1\n\tsub.s!\t@CPI0_0[0], r1, r1\n\tjump.gt\t@.BB0_344\n\tadd\t@CPI0_23[0], r0, r1\n\tadd\t65511, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tadd\tr1, r0, r2\n\tshr.s\t96, r2, r2\n\tand\t@CPI0_0[0], r2, stack[@returndatasize]\n\tptr.add\tr1, r0, stack[@ptr_return_data]\n\tadd\t@CPI0_24[0], r0, r1\n\tadd\t65526, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tadd\tr1, r0, r3\n\tshr.s\t96, r3, r3\n\tand\t@CPI0_0[0], r3, stack[@returndatasize]\n\tand\t@CPI0_0[0], r3, r3\n\tptr.add\tr1, r0, stack[@ptr_return_data]\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_384\n\tadd\t63, r3, r1\n\tand\t@CPI0_25[0], r1, r1\n\tld.1\t64, r2\n\tadd\tr2, r1, r1\n\tsub!\tr1, r2, r4\n\tadd\t0, r0, r4\n\tadd.lt\t1, r0, r4\n\tsub.s!\t@CPI0_5[0], r1, r5\n\tjump.gt\t@.BB0_19\n\tand!\t1, r4, r4\n\tjump.ne\t@.BB0_19\n\tst.1\t64, r1\n\tst.1.inc\tr2, r3, r1\n\tadd\t31, r3, r4\n\tshr.s!\t5, r4, r4\n\tjump.eq\t@.BB0_800\n\tadd\tstack[@calldatasize], r0, r5\n\tptr.add\tstack[@ptr_calldata], r5, r5\n\tadd\tr0, r0, r6\n.BB0_393:\n\tshl.s\t5, r6, r7\n\tadd\tr1, r7, r8\n\tptr.add\tr5, r7, r7\n\tld\tr7, r7\n\tst.1\tr8, r7\n\tadd\t1, r6, r6\n\tsub!\tr6, r4, r7\n\tjump.lt\t@.BB0_393\n.BB0_800:\n\tsub.s!\t0, r0, r4\n\tjump.eq\t@.BB0_395\n.BB0_395:\n\tadd\tstack[@returndatasize], r0, r4\n\tsub!\tr3, r4, r4\n\tjump.gt\t@.BB0_2\n\tptr.add\tstack[@ptr_return_data], r0, r5\n\tand\t31, r3, r4\n\tshr.s!\t5, r3, r3\n\tjump.eq\t@.BB0_799\n\tadd\tr0, r0, r6\n.BB0_398:\n\tshl.s\t5, r6, r7\n\tadd\tr1, r7, r8\n\tptr.add\tr5, r7, r7\n\tld\tr7, r7\n\tst.1\tr8, r7\n\tadd\t1, r6, r6\n\tsub!\tr6, r3, r7\n\tjump.lt\t@.BB0_398\n.BB0_799:\n\tsub.s!\t0, r4, r6\n\tjump.eq\t@.BB0_400\n\tshl.s\t5, r3, r3\n\tptr.add\tr5, r3, r5\n\tadd\tr1, r3, r3\n\tshl.s\t3, r4, r4\n\tld.1\tr3, r6\n\tshl\tr6, r4, r6\n\tshr\tr6, r4, r6\n\tld\tr5, r5\n\tsub\t256, r4, r4\n\tshr\tr5, r4, r5\n\tshl\tr5, r4, r4\n\tor\tr4, r6, r4\n\tst.1\tr3, r4\n.BB0_400:\n\tld.1\tr2, r2\n\tsub.s!\t32, r2, r2\n\tjump.ne\t@.BB0_363\n\tadd\tstack-[12], r0, r12\n\tadd\t36, r12, r2\n\tptr.add\tstack[@ptr_calldata], r0, r3\n\tptr.add\tr3, r2, r4\n\tadd\t292, r12, r2\n\tptr.add\tr3, r2, r5\n\tadd\t260, r12, r2\n\tptr.add\tr3, r2, r6\n\tadd\t228, r12, r2\n\tptr.add\tr3, r2, r7\n\tadd\t196, r12, r2\n\tptr.add\tr3, r2, r8\n\tadd\t164, r12, r2\n\tptr.add\tr3, r2, r9\n\tadd\t132, r12, r2\n\tptr.add\tr3, r2, r10\n\tadd\t100, r12, r2\n\tptr.add\tr3, r2, r11\n\tadd\t68, r12, r2\n\tptr.add\tr3, r2, r12\n\tadd\tstack-[13], r0, r2\n\tptr.add\tr3, r2, r2\n\tld\tr2, r2\n\tld\tr4, r3\n\tld\tr12, r4\n\tld\tr11, r11\n\tld\tr10, r10\n\tld\tr9, r9\n\tld\tr8, r8\n\tld\tr7, r7\n\tld\tr6, r6\n\tld\tr5, r5\n\tld.1\tr1, r12\n\tld.1\t64, r1\n\tadd\t448, r1, r13\n\tst.1\tr13, r12\n\tadd\t416, r1, r12\n\tadd\tstack-[11], r0, r13\n\tst.1\tr12, r13\n\tadd\t384, r1, r12\n\tadd\tstack-[10], r0, r13\n\tst.1\tr12, r13\n\tadd\t352, r1, r12\n\tst.1\tr12, r5\n\tadd\t320, r1, r5\n\tst.1\tr5, r6\n\tadd\t288, r1, r5\n\tst.1\tr5, r7\n\tadd\t256, r1, r5\n\tst.1\tr5, r8\n\tadd\t224, r1, r5\n\tst.1\tr5, r9\n\tadd\t192, r1, r5\n\tst.1\tr5, r10\n\tadd\t160, r1, r5\n\tst.1\tr5, r11\n\tadd\t128, r1, r5\n\tst.1\tr5, r4\n\tadd\t96, r1, r4\n\tst.1\tr4, r3\n\tadd\t64, r1, r3\n\tst.1\tr3, r2\n\tadd\t32, r1, r2\n\tadd\t@CPI0_27[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t448, r0, r3\n\tst.1\tr1, r3\n\tsub.s!\t@CPI0_28[0], r1, r3\n\tjump.gt\t@.BB0_19\n\tadd\t480, r1, r3\n\tst.1\t64, r3\n\tadd\t@CPI0_0[0], r0, r3\n\tsub.s!\t@CPI0_0[0], r2, r4\n\tadd.ge\tr3, r0, r2\n\tshl.s\t64, r2, r2\n\tld.1\tr1, r1\n\tsub.s!\t@CPI0_0[0], r1, r4\n\tadd.ge\tr3, r0, r1\n\tshl.s\t96, r1, r1\n\tor\tr1, r2, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r4\n\tadd.ge\tr3, r0, r2\n\tshl.s\t192, r2, r2\n\tor\tr2, r1, r1\n\tor\t@CPI0_20[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_2\n\tld\tr1, r1\n\tadd\tr1, r0, stack-[10]\n\tld.1\t64, r1\n\tadd\tr1, r0, stack-[11]\n\tadd\t@CPI0_9[0], r0, r1\n\tst.2\t0, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI0_10[0], r1, r1\n\tadd\t32779, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tadd\tstack-[7], r0, r4\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_2\n\tadd\tstack-[11], r0, r5\n\tadd\t32, r5, r2\n\tld\tr1, r1\n\tadd\t@CPI0_29[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t128, r5, r3\n\tst.1\tr3, r1\n\tadd\t96, r5, r1\n\tadd\t@CPI0_30[0], r0, r3\n\tst.1\tr1, r3\n\tadd\t64, r5, r1\n\tadd\t@CPI0_31[0], r0, r3\n\tst.1\tr1, r3\n\tst.1\tr5, r4\n\tsub.s!\t@CPI0_32[0], r5, r1\n\tjump.gt\t@.BB0_19\n\tadd\tstack-[11], r0, r4\n\tadd\t160, r4, r1\n\tst.1\t64, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.ge\tr1, r0, r2\n\tshl.s\t64, r2, r2\n\tld.1\tr4, r3\n\tsub.s!\t@CPI0_0[0], r3, r4\n\tadd.ge\tr1, r0, r3\n\tshl.s\t96, r3, r3\n\tor\tr3, r2, r2\n\tcontext.gas_left\tr3\n\tsub.s!\t@CPI0_0[0], r3, r4\n\tadd.lt\tr3, r0, r1\n\tshl.s\t192, r1, r1\n\tor\tr1, r2, r1\n\tor\t@CPI0_20[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_2\n\tld\tr1, r3\n\tld.1\t64, r1\n\tadd\t66, r1, r2\n\tadd\tstack-[10], r0, r4\n\tst.1\tr2, r4\n\tadd\t32, r1, r2\n\tadd\t@CPI0_33[0], r0, r4\n\tst.1\tr2, r4\n\tadd\t34, r1, r4\n\tst.1\tr4, r3\n\tadd\t66, r0, r3\n\tst.1\tr1, r3\n\tsub.s!\t@CPI0_34[0], r1, r3\n\tjump.gt\t@.BB0_19\n\tadd\t128, r1, r3\n\tst.1\t64, r3\n\tadd\t@CPI0_0[0], r0, r3\n\tsub.s!\t@CPI0_0[0], r2, r4\n\tadd.ge\tr3, r0, r2\n\tshl.s\t64, r2, r2\n\tld.1\tr1, r1\n\tsub.s!\t@CPI0_0[0], r1, r4\n\tadd.ge\tr3, r0, r1\n\tshl.s\t96, r1, r1\n\tor\tr1, r2, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r4\n\tadd.ge\tr3, r0, r2\n\tshl.s\t192, r2, r2\n\tor\tr2, r1, r1\n\tor\t@CPI0_20[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tadd\tstack-[12], r0, r11\n\tjump.ne\t@.BB0_558\n\tjump\t@.BB0_2\n.BB0_522:\n\tld.1\t64, r5\n\tsub.s!\t@CPI0_11[0], r5, r3\n\tjump.gt\t@.BB0_19\n\tadd\t64, r5, r3\n\tst.1\t64, r3\n\tadd\t1, r0, r3\n\tst.1.inc\tr5, r3, r3\n\tadd\tstack[@calldatasize], r0, r4\n\tptr.add\tstack[@ptr_calldata], r4, r4\n\tadd\tr0, r0, r6\n.BB0_524:\n\tshl.s\t5, r6, r7\n\tadd\tr3, r7, r8\n\tptr.add\tr4, r7, r7\n\tld\tr7, r7\n\tst.1\tr8, r7\n\tadd!\t1, r6, r6\n\tadd\t0, r0, r7\n\tadd.eq\t1, r0, r7\n\tand!\t1, r7, r7\n\tjump.ne\t@.BB0_524\n\tld.1\tr5, r4\n\tsub.s!\t0, r4, r4\n\tjump.eq\t@.BB0_25\n\tshl.s\t248, r2, r2\n\tld.1\tr3, r4\n\tand\t@CPI0_12[0], r4, r4\n\tor\tr2, r4, r2\n\tadd\t@CPI0_17[0], r2, r2\n\tst.1\tr3, r2\n.BB0_527:\n\tadd\tstack[@calldatasize], r0, r2\n\tadd\tstack-[5], r0, r3\n\tadd\tr2, r3, r6\n\tptr.add\tstack[@ptr_calldata], r0, r3\n\tadd\tstack-[6], r0, r4\n\tptr.add\tr3, r4, r4\n\tld\tr4, r4\n\tadd\t@CPI0_4[0], r0, r7\n\tsub!\tr4, r6, r8\n\tadd\t0, r0, r8\n\tadd.ge\tr7, r0, r8\n\tand\t@CPI0_4[0], r6, r6\n\tand\t@CPI0_4[0], r4, r9\n\tsub!\tr9, r6, r10\n\tadd.ge\t0, r0, r7\n\txor\tr9, r6, r6\n\tsub.s!\t@CPI0_4[0], r6, r6\n\tadd\tr8, r0, r6\n\tadd.eq\tr7, r0, r6\n\tsub.s!\t0, r6, r6\n\tjump.ne\t@.BB0_2\n\tadd\tstack-[13], r0, r6\n\tadd\tr4, r6, r6\n\tptr.add\tr3, r6, r3\n\tld\tr3, r4\n\tsub.s!\t@CPI0_5[0], r4, r3\n\tjump.gt\t@.BB0_2\n\tsub\tr2, r4, r2\n\tadd\t32, r6, r6\n\tadd\t@CPI0_4[0], r0, r3\n\tsub!\tr6, r2, r7\n\tadd\t0, r0, r7\n\tadd.gt\tr3, r0, r7\n\tand\t@CPI0_4[0], r2, r2\n\tand\t@CPI0_4[0], r6, r8\n\tsub!\tr8, r2, r9\n\tadd.ge\t0, r0, r3\n\txor\tr8, r2, r2\n\tsub.s!\t@CPI0_4[0], r2, r2\n\tadd\tr7, r0, r2\n\tadd.eq\tr3, r0, r2\n\tsub.s!\t0, r2, r2\n\tjump.ne\t@.BB0_2\n\tld.1\t64, r2\n\tadd\t32, r2, r3\n\tld.1\tr5, r7\n\tsub.s!\t0, r7, r8\n\tjump.eq\t@.BB0_533\n\tadd\tr0, r0, r8\n.BB0_532:\n\tadd\tr8, r3, r9\n\tadd\t32, r8, r8\n\tadd\tr8, r5, r10\n\tld.1\tr10, r10\n\tst.1\tr9, r10\n\tsub!\tr8, r7, r9\n\tjump.lt\t@.BB0_532\n.BB0_533:\n\tadd\tr7, r3, r5\n\tst.1\tr5, r0\n\tadd\tstack-[11], r0, r11\n\tld.1\tr11, r7\n\tsub.s!\t0, r7, r8\n\tjump.eq\t@.BB0_536\n\tadd\tr0, r0, r8\n.BB0_535:\n\tadd\tr8, r5, r9\n\tadd\t32, r8, r8\n\tadd\tr8, r11, r10\n\tld.1\tr10, r10\n\tst.1\tr9, r10\n\tsub!\tr8, r7, r9\n\tjump.lt\t@.BB0_535\n.BB0_536:\n\tadd\tr7, r5, r5\n\tst.1\tr5, r0\n\tadd\tstack-[10], r0, r11\n\tld.1\tr11, r7\n\tsub.s!\t0, r7, r8\n\tjump.eq\t@.BB0_539\n\tadd\tr0, r0, r8\n.BB0_538:\n\tadd\tr8, r5, r9\n\tadd\t32, r8, r8\n\tadd\tr8, r11, r10\n\tld.1\tr10, r10\n\tst.1\tr9, r10\n\tsub!\tr8, r7, r9\n\tjump.lt\t@.BB0_538\n.BB0_539:\n\tadd\tr7, r5, r5\n\tst.1\tr5, r0\n\tadd\tstack-[9], r0, r11\n\tld.1\tr11, r7\n\tsub.s!\t0, r7, r8\n\tjump.eq\t@.BB0_542\n\tadd\tr0, r0, r8\n.BB0_541:\n\tadd\tr8, r5, r9\n\tadd\t32, r8, r8\n\tadd\tr8, r11, r10\n\tld.1\tr10, r10\n\tst.1\tr9, r10\n\tsub!\tr8, r7, r9\n\tjump.lt\t@.BB0_541\n.BB0_542:\n\tadd\tr7, r5, r5\n\tst.1\tr5, r0\n\tadd\tstack-[7], r0, r11\n\tld.1\tr11, r7\n\tsub.s!\t0, r7, r8\n\tjump.eq\t@.BB0_545\n\tadd\tr0, r0, r8\n.BB0_544:\n\tadd\tr8, r5, r9\n\tadd\t32, r8, r8\n\tadd\tr8, r11, r10\n\tld.1\tr10, r10\n\tst.1\tr9, r10\n\tsub!\tr8, r7, r9\n\tjump.lt\t@.BB0_544\n.BB0_545:\n\tadd\tr7, r5, r5\n\tst.1\tr5, r0\n\tadd\tstack-[4], r0, r11\n\tld.1\tr11, r7\n\tsub.s!\t0, r7, r8\n\tjump.eq\t@.BB0_548\n\tadd\tr0, r0, r8\n.BB0_547:\n\tadd\tr8, r5, r9\n\tadd\t32, r8, r8\n\tadd\tr8, r11, r10\n\tld.1\tr10, r10\n\tst.1\tr9, r10\n\tsub!\tr8, r7, r9\n\tjump.lt\t@.BB0_547\n.BB0_548:\n\tadd\tr7, r5, r5\n\tand\t31, r4, r7\n\tst.1\tr5, r0\n\tptr.add\tstack[@ptr_calldata], r6, r6\n\tshr.s!\t5, r4, r8\n\tjump.eq\t@.BB0_798\n\tadd\tr0, r0, r9\n.BB0_550:\n\tshl.s\t5, r9, r10\n\tadd\tr5, r10, r11\n\tptr.add\tr6, r10, r10\n\tld\tr10, r10\n\tst.1\tr11, r10\n\tadd\t1, r9, r9\n\tsub!\tr9, r8, r10\n\tjump.lt\t@.BB0_550\n.BB0_798:\n\tsub.s!\t0, r7, r9\n\tjump.eq\t@.BB0_552\n\tshl.s\t5, r8, r8\n\tptr.add\tr6, r8, r6\n\tadd\tr5, r8, r8\n\tshl.s\t3, r7, r7\n\tld.1\tr8, r9\n\tshl\tr9, r7, r9\n\tshr\tr9, r7, r9\n\tld\tr6, r6\n\tsub\t256, r7, r7\n\tshr\tr6, r7, r6\n\tshl\tr6, r7, r6\n\tor\tr6, r9, r6\n\tst.1\tr8, r6\n.BB0_552:\n\tadd\tr5, r4, r4\n\tst.1\tr4, r0\n\tld.1\tr1, r5\n\tsub.s!\t0, r5, r6\n\tjump.eq\t@.BB0_555\n\tadd\tr0, r0, r6\n.BB0_554:\n\tadd\tr6, r4, r7\n\tadd\t32, r6, r6\n\tadd\tr6, r1, r8\n\tld.1\tr8, r8\n\tst.1\tr7, r8\n\tsub!\tr6, r5, r7\n\tjump.lt\t@.BB0_554\n.BB0_555:\n\tadd\tr5, r4, r1\n\tst.1\tr1, r0\n\tsub\tr1, r2, r1\n\tsub.s\t32, r1, r4\n\tst.1\tr2, r4\n\tadd\t31, r1, r1\n\tadd\tstack-[8], r0, r4\n\tand\tr1, r4, r4\n\tadd\tr4, r2, r1\n\tsub!\tr1, r4, r4\n\tadd\t0, r0, r4\n\tadd.lt\t1, r0, r4\n\tsub.s!\t@CPI0_5[0], r1, r5\n\tjump.gt\t@.BB0_19\n\tand!\t1, r4, r4\n\tjump.ne\t@.BB0_19\n\tst.1\t64, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tsub.s!\t@CPI0_0[0], r3, r4\n\tadd.ge\tr1, r0, r3\n\tshl.s\t64, r3, r3\n\tld.1\tr2, r2\n\tsub.s!\t@CPI0_0[0], r2, r4\n\tadd.ge\tr1, r0, r2\n\tshl.s\t96, r2, r2\n\tor\tr2, r3, r2\n\tcontext.gas_left\tr3\n\tsub.s!\t@CPI0_0[0], r3, r4\n\tadd.lt\tr3, r0, r1\n\tshl.s\t192, r1, r1\n\tor\tr1, r2, r1\n\tor\t@CPI0_20[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tadd\tstack-[12], r0, r11\n\tjump.eq\t@.BB0_2\n.BB0_558:\n\tptr.add\tstack[@ptr_calldata], r0, r2\n\tadd\tstack-[13], r0, r3\n\tptr.add\tr2, r3, r3\n\tld\tr1, r1\n\tadd\tr1, r0, stack-[12]\n\tld\tr3, r1\n\tsub.s!\t113, r1, r3\n\tjump.ne\t@.BB0_560\n\tadd\t484, r11, r1\n\tptr.add\tr2, r1, r3\n\tadd\tstack[@calldatasize], r0, r1\n\tsub\tr1, r11, r4\n\tsub.s\t35, r4, r4\n\tld\tr3, r3\n\tadd\t@CPI0_4[0], r0, r5\n\tsub!\tr3, r4, r6\n\tadd\t0, r0, r6\n\tadd.ge\tr5, r0, r6\n\tand\t@CPI0_4[0], r4, r4\n\tand\t@CPI0_4[0], r3, r7\n\tsub!\tr7, r4, r8\n\tadd.ge\t0, r0, r5\n\txor\tr7, r4, r4\n\tsub.s!\t@CPI0_4[0], r4, r4\n\tadd\tr6, r0, r4\n\tadd.eq\tr5, r0, r4\n\tsub.s!\t0, r4, r4\n\tjump.ne\t@.BB0_2\n\tadd\tstack-[13], r0, r4\n\tadd\tr3, r4, r3\n\tptr.add\tr2, r3, r2\n\tld\tr2, r2\n\tadd\tr2, r0, stack-[13]\n\tsub.s!\t@CPI0_5[0], r2, r2\n\tjump.gt\t@.BB0_2\n\tadd\tstack-[13], r0, r2\n\tsub\tr1, r2, r1\n\tadd\t32, r3, r4\n\tadd\t@CPI0_4[0], r0, r2\n\tsub!\tr4, r1, r3\n\tadd\t0, r0, r3\n\tadd.gt\tr2, r0, r3\n\tand\t@CPI0_4[0], r1, r1\n\tadd\tr4, r0, stack-[11]\n\tand\t@CPI0_4[0], r4, r4\n\tsub!\tr4, r1, r5\n\tadd.ge\t0, r0, r2\n\txor\tr4, r1, r1\n\tsub.s!\t@CPI0_4[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tcontext.gas_left\tr1\n\tadd\tr1, r0, stack-[10]\n\tadd\t@CPI0_21[0], r0, r1\n\tadd\t65515, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tadd\tr1, r0, r2\n\tshr.s\t96, r2, r2\n\tand\t@CPI0_0[0], r2, stack[@returndatasize]\n\tptr.add\tr1, r0, stack[@ptr_return_data]\n\tadd\tstack-[13], r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_768\n\tadd\tstack[@calldatasize], r0, r1\n.BB0_767:\n\tshl.s\t192, r1, r1\n\tand\t@CPI0_22[0], r1, r1\n\tor\t@CPI0_21[0], r1, r1\n\tadd\t65512, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tadd\tr1, r0, r2\n\tshr.s\t96, r2, r2\n\tand\t@CPI0_0[0], r2, stack[@returndatasize]\n\tptr.add\tr1, r0, stack[@ptr_return_data]\n\tadd\tstack-[10], r0, r1\n\tsub.s!\t@CPI0_0[0], r1, r1\n\tjump.gt\t@.BB0_344\n\tadd\t@CPI0_23[0], r0, r1\n\tadd\t65511, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tadd\tr1, r0, r2\n\tshr.s\t96, r2, r2\n\tand\t@CPI0_0[0], r2, stack[@returndatasize]\n\tptr.add\tr1, r0, stack[@ptr_return_data]\n\tadd\t@CPI0_24[0], r0, r1\n\tadd\t65526, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tadd\tr1, r0, r3\n\tshr.s\t96, r3, r3\n\tand\t@CPI0_0[0], r3, stack[@returndatasize]\n\tand\t@CPI0_0[0], r3, r3\n\tptr.add\tr1, r0, stack[@ptr_return_data]\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_773\n\tadd\t63, r3, r1\n\tand\t@CPI0_25[0], r1, r2\n\tld.1\t64, r1\n\tadd\tr1, r2, r2\n\tsub!\tr2, r1, r4\n\tadd\t0, r0, r4\n\tadd.lt\t1, r0, r4\n\tsub.s!\t@CPI0_5[0], r2, r5\n\tjump.gt\t@.BB0_19\n\tand!\t1, r4, r4\n\tjump.ne\t@.BB0_19\n\tst.1\t64, r2\n\tst.1.inc\tr1, r3, r2\n\tadd\t31, r3, r4\n\tshr.s!\t5, r4, r4\n\tjump.eq\t@.BB0_828\n\tadd\tstack[@calldatasize], r0, r5\n\tptr.add\tstack[@ptr_calldata], r5, r5\n\tadd\tr0, r0, r6\n.BB0_782:\n\tshl.s\t5, r6, r7\n\tadd\tr2, r7, r8\n\tptr.add\tr5, r7, r7\n\tld\tr7, r7\n\tst.1\tr8, r7\n\tadd\t1, r6, r6\n\tsub!\tr6, r4, r7\n\tjump.lt\t@.BB0_782\n.BB0_828:\n\tsub.s!\t0, r0, r4\n\tjump.eq\t@.BB0_784\n.BB0_784:\n\tadd\tstack[@returndatasize], r0, r4\n\tsub!\tr3, r4, r4\n\tjump.gt\t@.BB0_2\n\tptr.add\tstack[@ptr_return_data], r0, r5\n\tand\t31, r3, r4\n\tshr.s!\t5, r3, r3\n\tjump.eq\t@.BB0_827\n\tadd\tr0, r0, r6\n.BB0_787:\n\tshl.s\t5, r6, r7\n\tadd\tr2, r7, r8\n\tptr.add\tr5, r7, r7\n\tld\tr7, r7\n\tst.1\tr8, r7\n\tadd\t1, r6, r6\n\tsub!\tr6, r3, r7\n\tjump.lt\t@.BB0_787\n.BB0_827:\n\tsub.s!\t0, r4, r6\n\tjump.eq\t@.BB0_789\n\tshl.s\t5, r3, r3\n\tptr.add\tr5, r3, r5\n\tadd\tr2, r3, r3\n\tshl.s\t3, r4, r4\n\tld.1\tr3, r6\n\tshl\tr6, r4, r6\n\tshr\tr6, r4, r6\n\tld\tr5, r5\n\tsub\t256, r4, r4\n\tshr\tr5, r4, r5\n\tshl\tr5, r4, r4\n\tor\tr4, r6, r4\n\tst.1\tr3, r4\n.BB0_789:\n\tld.1\tr1, r1\n\tsub.s!\t32, r1, r1\n\tjump.ne\t@.BB0_363\n\tld.1\tr2, r2\n\tld.1\t64, r1\n\tadd\t64, r1, r3\n\tst.1\tr3, r2\n\tadd\t32, r1, r2\n\tadd\tstack-[12], r0, r3\n\tst.1\tr2, r3\n\tadd\t64, r0, r3\n\tst.1\tr1, r3\n\tsub.s!\t@CPI0_40[0], r1, r3\n\tjump.gt\t@.BB0_19\n\tadd\t96, r1, r3\n\tst.1\t64, r3\n\tadd\t@CPI0_0[0], r0, r3\n\tsub.s!\t@CPI0_0[0], r2, r4\n\tadd.ge\tr3, r0, r2\n\tshl.s\t64, r2, r2\n\tld.1\tr1, r1\n\tsub.s!\t@CPI0_0[0], r1, r4\n\tadd.ge\tr3, r0, r1\n\tshl.s\t96, r1, r1\n\tor\tr1, r2, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r4\n\tadd.ge\tr3, r0, r2\n\tshl.s\t192, r2, r2\n\tor\tr2, r1, r1\n\tor\t@CPI0_20[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_2\n\tld\tr1, r1\n\tjump\t@.BB0_559\n.BB0_363:\n\tld.1\t64, r1\n\tadd\t68, r1, r2\n\tadd\t@CPI0_39[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t31, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI0_7[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI0_0[0], r0, r2\n\tsub.s!\t@CPI0_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI0_8[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB0_156:\n\tsub.s!\t56, r6, r7\n\tjump.lt\t@.BB0_162\n\tshr.s\t32, r6, r7\n\tsub.s!\t@CPI0_0[0], r6, r8\n\tadd\tr6, r0, r8\n\tadd.gt\tr7, r0, r8\n\tsub.s!\t@CPI0_0[0], r6, r7\n\tadd\t0, r0, r7\n\tadd.gt\t4, r0, r7\n\tor\t2, r7, r9\n\tsub.s!\t65535, r8, r10\n\tadd.gt\tr9, r0, r7\n\tshr.s\t16, r8, r9\n\tadd.gt\tr9, r0, r8\n\tsub.s!\t255, r8, r8\n\tadd\t0, r0, r8\n\tadd.gt\t1, r0, r8\n\tsub.s!\t@CPI0_11[0], r5, r9\n\tjump.gt\t@.BB0_19\n\tor\tr7, r8, r7\n\tadd\t64, r5, r8\n\tst.1\t64, r8\n\tadd\t2, r7, r8\n\tst.1.inc\tr5, r8, r8\n\tadd\tstack[@calldatasize], r0, r9\n\tptr.add\tstack[@ptr_calldata], r9, r9\n\tadd\tr0, r0, r10\n.BB0_159:\n\tshl.s\t5, r10, r11\n\tadd\tr8, r11, r12\n\tptr.add\tr9, r11, r11\n\tld\tr11, r11\n\tst.1\tr12, r11\n\tadd!\t1, r10, r10\n\tadd\t0, r0, r11\n\tadd.eq\t1, r0, r11\n\tand!\t1, r11, r11\n\tjump.ne\t@.BB0_159\n\tld.1\tr5, r9\n\tsub.s!\t0, r9, r9\n\tjump.eq\t@.BB0_25\n\tld.1\tr8, r9\n\tand\t@CPI0_12[0], r9, r9\n\tshl.s\t248, r7, r10\n\tor\tr10, r9, r9\n\tor\t@CPI0_16[0], r9, r9\n\tst.1\tr8, r9\n\tshl.s\t3, r7, r7\n\tsub\t248, r7, r7\n\tshl\tr6, r7, r6\n\tadd\t33, r5, r7\n\tst.1\tr7, r6\n\tadd\tr5, r0, r6\n\tjump\t@.BB0_113\n.BB0_384:\n\tand\t31, r3, r4\n\tshr.s!\t5, r3, r2\n\tjump.eq\t@.BB0_801\n\tadd\tr0, r0, r5\n.BB0_386:\n\tshl.s\t5, r5, r6\n\tptr.add\tr1, r6, r7\n\tld\tr7, r7\n\tst.1\tr6, r7\n\tadd\t1, r5, r5\n\tsub!\tr5, r2, r6\n\tjump.lt\t@.BB0_386\n.BB0_801:\n\tsub.s!\t0, r4, r5\n\tjump.eq\t@.BB0_388\n\tshl.s\t3, r4, r4\n\tshl.s\t5, r2, r2\n\tld.1\tr2, r5\n\tshl\tr5, r4, r5\n\tshr\tr5, r4, r5\n\tptr.add\tr1, r2, r1\n\tld\tr1, r1\n\tsub\t256, r4, r4\n\tshr\tr1, r4, r1\n\tshl\tr1, r4, r1\n\tor\tr1, r5, r1\n\tst.1\tr2, r1\n.BB0_388:\n\tshl.s\t96, r3, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB0_323:\n\tsub.s!\t56, r6, r7\n\tjump.lt\t@.BB0_329\n\tshr.s\t32, r6, r7\n\tsub.s!\t@CPI0_0[0], r6, r8\n\tadd\tr6, r0, r8\n\tadd.gt\tr7, r0, r8\n\tsub.s!\t@CPI0_0[0], r6, r7\n\tadd\t0, r0, r7\n\tadd.gt\t4, r0, r7\n\tor\t2, r7, r9\n\tsub.s!\t65535, r8, r10\n\tadd.gt\tr9, r0, r7\n\tshr.s\t16, r8, r9\n\tadd.gt\tr9, r0, r8\n\tsub.s!\t255, r8, r8\n\tadd\t0, r0, r8\n\tadd.gt\t1, r0, r8\n\tsub.s!\t@CPI0_11[0], r5, r9\n\tjump.gt\t@.BB0_19\n\tor\tr7, r8, r7\n\tadd\t64, r5, r8\n\tst.1\t64, r8\n\tadd\t2, r7, r8\n\tst.1.inc\tr5, r8, r8\n\tadd\tstack[@calldatasize], r0, r9\n\tptr.add\tstack[@ptr_calldata], r9, r9\n\tadd\tr0, r0, r10\n.BB0_326:\n\tshl.s\t5, r10, r11\n\tadd\tr8, r11, r12\n\tptr.add\tr9, r11, r11\n\tld\tr11, r11\n\tst.1\tr12, r11\n\tadd!\t1, r10, r10\n\tadd\t0, r0, r11\n\tadd.eq\t1, r0, r11\n\tand!\t1, r11, r11\n\tjump.ne\t@.BB0_326\n\tld.1\tr5, r9\n\tsub.s!\t0, r9, r9\n\tjump.eq\t@.BB0_25\n\tld.1\tr8, r9\n\tand\t@CPI0_12[0], r9, r9\n\tshl.s\t248, r7, r10\n\tor\tr10, r9, r9\n\tor\t@CPI0_16[0], r9, r9\n\tst.1\tr8, r9\n\tshl.s\t3, r7, r7\n\tsub\t248, r7, r7\n\tshl\tr6, r7, r6\n\tadd\t33, r5, r7\n\tst.1\tr7, r6\n\tadd\tr5, r0, r6\n\tjump\t@.BB0_280\n.BB0_162:\n\tsub.s!\t@CPI0_11[0], r5, r7\n\tjump.gt\t@.BB0_19\n\tadd\t64, r5, r7\n\tst.1\t64, r7\n\tadd\t1, r0, r7\n\tst.1.inc\tr5, r7, r7\n\tadd\tstack[@calldatasize], r0, r8\n\tptr.add\tstack[@ptr_calldata], r8, r8\n\tadd\tr0, r0, r9\n.BB0_164:\n\tshl.s\t5, r9, r10\n\tadd\tr7, r10, r11\n\tptr.add\tr8, r10, r10\n\tld\tr10, r10\n\tst.1\tr11, r10\n\tadd!\t1, r9, r9\n\tadd\t0, r0, r10\n\tadd.eq\t1, r0, r10\n\tand!\t1, r10, r10\n\tjump.ne\t@.BB0_164\n\tld.1\tr5, r8\n\tsub.s!\t0, r8, r8\n\tjump.eq\t@.BB0_25\n\tshl.s\t248, r6, r6\n\tld.1\tr7, r8\n\tand\t@CPI0_12[0], r8, r8\n\tor\tr8, r6, r6\n\txor\t@CPI0_4[0], r6, r6\n\tst.1\tr7, r6\n\tadd\tr5, r0, r6\n.BB0_113:\n\tld.1\t64, r5\n\tsub.s!\t@CPI0_11[0], r5, r7\n\tjump.gt\t@.BB0_19\n\tadd\t64, r5, r7\n\tst.1\t64, r7\n\tadd\t1, r0, r9\n\tst.1.inc\tr5, r9, r7\n\tadd\tstack[@calldatasize], r0, r8\n\tptr.add\tstack[@ptr_calldata], r8, r8\n\tadd\tr0, r0, r10\n.BB0_115:\n\tshl.s\t5, r10, r11\n\tadd\tr7, r11, r12\n\tptr.add\tr8, r11, r11\n\tld\tr11, r11\n\tst.1\tr12, r11\n\tadd!\t1, r10, r10\n\tadd\t0, r0, r11\n\tadd.eq\t1, r0, r11\n\tand!\t1, r11, r11\n\tjump.ne\t@.BB0_115\n\tld.1\tr5, r8\n\tsub.s!\t0, r8, r8\n\tjump.eq\t@.BB0_25\n\tld.1\tr7, r8\n\tand\t@CPI0_12[0], r8, r8\n\tor\t@CPI0_17[0], r8, r8\n\tst.1\tr7, r8\n\tadd\tstack[@calldatasize], r0, r7\n\tadd\tr7, r4, r8\n\tptr.add\tstack[@ptr_calldata], r0, r11\n\tptr.add\tr11, r3, r10\n\tld\tr10, r12\n\tadd\t@CPI0_4[0], r0, r10\n\tsub!\tr12, r8, r13\n\tadd\t0, r0, r13\n\tadd.ge\tr10, r0, r13\n\tand\t@CPI0_4[0], r8, r8\n\tand\t@CPI0_4[0], r12, r14\n\tsub!\tr14, r8, r15\n\tadd.ge\t0, r0, r10\n\txor\tr14, r8, r8\n\tsub.s!\t@CPI0_4[0], r8, r8\n\tadd\tr13, r0, r8\n\tadd.eq\tr10, r0, r8\n\tsub.s!\t0, r8, r8\n\tjump.ne\t@.BB0_2\n\tld.1\tr2, r8\n\tld.1\tr6, r10\n\tadd\tstack-[13], r0, r13\n\tadd\tr12, r13, r12\n\tptr.add\tr11, r12, r11\n\tld\tr11, r11\n\tsub.s!\t@CPI0_5[0], r11, r13\n\tjump.gt\t@.BB0_2\n\tsub\tr7, r11, r7\n\tadd\t32, r12, r12\n\tadd\t@CPI0_4[0], r0, r13\n\tsub!\tr12, r7, r14\n\tadd\t0, r0, r14\n\tadd.gt\tr13, r0, r14\n\tand\t@CPI0_4[0], r7, r7\n\tand\t@CPI0_4[0], r12, r12\n\tsub!\tr12, r7, r15\n\tadd.ge\t0, r0, r13\n\txor\tr12, r7, r7\n\tsub.s!\t@CPI0_4[0], r7, r7\n\tadd\tr14, r0, r7\n\tadd.eq\tr13, r0, r7\n\tsub.s!\t0, r7, r7\n\tjump.ne\t@.BB0_2\n\tadd\tr10, r8, r7\n\tadd\tr7, r11, r7\n\tld.1\tr5, r8\n\tadd\tr7, r8, r7\n\tand\t@CPI0_5[0], r7, r8\n\tsub.s!\t56, r8, r7\n\tjump.lt\t@.BB0_126\n\tshr.s\t32, r8, r7\n\tsub.s!\t@CPI0_0[0], r8, r9\n\tadd.le\tr8, r0, r7\n\tsub.s!\t@CPI0_0[0], r8, r9\n\tadd\t0, r0, r9\n\tadd.gt\t4, r0, r9\n\tor\t2, r9, r10\n\tsub.s!\t65535, r7, r11\n\tadd.gt\tr10, r0, r9\n\tshr.s\t16, r7, r10\n\tadd.gt\tr10, r0, r7\n\tsub.s!\t255, r7, r7\n\tadd\t0, r0, r10\n\tadd.gt\t1, r0, r10\n\tld.1\t64, r7\n\tsub.s!\t@CPI0_11[0], r7, r11\n\tjump.gt\t@.BB0_19\n\tor\tr9, r10, r9\n\tadd\t64, r7, r10\n\tst.1\t64, r10\n\tadd\t2, r9, r10\n\tst.1.inc\tr7, r10, r10\n\tadd\tstack[@calldatasize], r0, r11\n\tptr.add\tstack[@ptr_calldata], r11, r11\n\tadd\tr0, r0, r12\n.BB0_123:\n\tshl.s\t5, r12, r13\n\tadd\tr10, r13, r14\n\tptr.add\tr11, r13, r13\n\tld\tr13, r13\n\tst.1\tr14, r13\n\tadd!\t1, r12, r12\n\tadd\t0, r0, r13\n\tadd.eq\t1, r0, r13\n\tand!\t1, r13, r13\n\tjump.ne\t@.BB0_123\n\tld.1\tr7, r11\n\tsub.s!\t0, r11, r11\n\tjump.eq\t@.BB0_25\n\tld.1\tr10, r11\n\tand\t@CPI0_12[0], r11, r11\n\tshl.s\t248, r9, r12\n\tor\tr12, r11, r11\n\tor\t@CPI0_18[0], r11, r11\n\tst.1\tr10, r11\n\tshl.s\t3, r9, r9\n\tsub\t248, r9, r9\n\tshl\tr8, r9, r8\n\tadd\t33, r7, r9\n\tst.1\tr9, r8\n\tjump\t@.BB0_131\n.BB0_329:\n\tsub.s!\t@CPI0_11[0], r5, r7\n\tjump.gt\t@.BB0_19\n\tadd\t64, r5, r7\n\tst.1\t64, r7\n\tadd\t1, r0, r7\n\tst.1.inc\tr5, r7, r7\n\tadd\tstack[@calldatasize], r0, r8\n\tptr.add\tstack[@ptr_calldata], r8, r8\n\tadd\tr0, r0, r9\n.BB0_331:\n\tshl.s\t5, r9, r10\n\tadd\tr7, r10, r11\n\tptr.add\tr8, r10, r10\n\tld\tr10, r10\n\tst.1\tr11, r10\n\tadd!\t1, r9, r9\n\tadd\t0, r0, r10\n\tadd.eq\t1, r0, r10\n\tand!\t1, r10, r10\n\tjump.ne\t@.BB0_331\n\tld.1\tr5, r8\n\tsub.s!\t0, r8, r8\n\tjump.eq\t@.BB0_25\n\tshl.s\t248, r6, r6\n\tld.1\tr7, r8\n\tand\t@CPI0_12[0], r8, r8\n\tor\tr8, r6, r6\n\txor\t@CPI0_4[0], r6, r6\n\tst.1\tr7, r6\n\tadd\tr5, r0, r6\n.BB0_280:\n\tld.1\t64, r5\n\tsub.s!\t@CPI0_11[0], r5, r7\n\tjump.gt\t@.BB0_19\n\tadd\t64, r5, r7\n\tst.1\t64, r7\n\tadd\t1, r0, r9\n\tst.1.inc\tr5, r9, r7\n\tadd\tstack[@calldatasize], r0, r8\n\tptr.add\tstack[@ptr_calldata], r8, r8\n\tadd\tr0, r0, r10\n.BB0_282:\n\tshl.s\t5, r10, r11\n\tadd\tr7, r11, r12\n\tptr.add\tr8, r11, r11\n\tld\tr11, r11\n\tst.1\tr12, r11\n\tadd!\t1, r10, r10\n\tadd\t0, r0, r11\n\tadd.eq\t1, r0, r11\n\tand!\t1, r11, r11\n\tjump.ne\t@.BB0_282\n\tld.1\tr5, r8\n\tsub.s!\t0, r8, r8\n\tjump.eq\t@.BB0_25\n\tld.1\tr7, r8\n\tand\t@CPI0_12[0], r8, r8\n\tor\t@CPI0_17[0], r8, r8\n\tst.1\tr7, r8\n\tadd\tstack[@calldatasize], r0, r7\n\tadd\tr7, r4, r8\n\tptr.add\tstack[@ptr_calldata], r0, r11\n\tptr.add\tr11, r2, r10\n\tld\tr10, r12\n\tadd\t@CPI0_4[0], r0, r10\n\tsub!\tr12, r8, r13\n\tadd\t0, r0, r13\n\tadd.ge\tr10, r0, r13\n\tand\t@CPI0_4[0], r8, r8\n\tand\t@CPI0_4[0], r12, r14\n\tsub!\tr14, r8, r15\n\tadd.ge\t0, r0, r10\n\txor\tr14, r8, r8\n\tsub.s!\t@CPI0_4[0], r8, r8\n\tadd\tr13, r0, r8\n\tadd.eq\tr10, r0, r8\n\tsub.s!\t0, r8, r8\n\tjump.ne\t@.BB0_2\n\tld.1\tr3, r8\n\tld.1\tr6, r10\n\tadd\tstack-[13], r0, r13\n\tadd\tr12, r13, r12\n\tptr.add\tr11, r12, r11\n\tld\tr11, r11\n\tsub.s!\t@CPI0_5[0], r11, r13\n\tjump.gt\t@.BB0_2\n\tsub\tr7, r11, r7\n\tadd\t32, r12, r12\n\tadd\t@CPI0_4[0], r0, r13\n\tsub!\tr12, r7, r14\n\tadd\t0, r0, r14\n\tadd.gt\tr13, r0, r14\n\tand\t@CPI0_4[0], r7, r7\n\tand\t@CPI0_4[0], r12, r12\n\tsub!\tr12, r7, r15\n\tadd.ge\t0, r0, r13\n\txor\tr12, r7, r7\n\tsub.s!\t@CPI0_4[0], r7, r7\n\tadd\tr14, r0, r7\n\tadd.eq\tr13, r0, r7\n\tsub.s!\t0, r7, r7\n\tjump.ne\t@.BB0_2\n\tadd\tr10, r8, r7\n\tadd\tr7, r11, r7\n\tld.1\tr5, r8\n\tadd\tr7, r8, r7\n\tand\t@CPI0_5[0], r7, r8\n\tsub.s!\t56, r8, r7\n\tjump.lt\t@.BB0_293\n\tshr.s\t32, r8, r7\n\tsub.s!\t@CPI0_0[0], r8, r9\n\tadd.le\tr8, r0, r7\n\tsub.s!\t@CPI0_0[0], r8, r9\n\tadd\t0, r0, r9\n\tadd.gt\t4, r0, r9\n\tor\t2, r9, r10\n\tsub.s!\t65535, r7, r11\n\tadd.gt\tr10, r0, r9\n\tshr.s\t16, r7, r10\n\tadd.gt\tr10, r0, r7\n\tsub.s!\t255, r7, r7\n\tadd\t0, r0, r10\n\tadd.gt\t1, r0, r10\n\tld.1\t64, r7\n\tsub.s!\t@CPI0_11[0], r7, r11\n\tjump.gt\t@.BB0_19\n\tor\tr9, r10, r9\n\tadd\t64, r7, r10\n\tst.1\t64, r10\n\tadd\t2, r9, r10\n\tst.1.inc\tr7, r10, r10\n\tadd\tstack[@calldatasize], r0, r11\n\tptr.add\tstack[@ptr_calldata], r11, r11\n\tadd\tr0, r0, r12\n.BB0_290:\n\tshl.s\t5, r12, r13\n\tadd\tr10, r13, r14\n\tptr.add\tr11, r13, r13\n\tld\tr13, r13\n\tst.1\tr14, r13\n\tadd!\t1, r12, r12\n\tadd\t0, r0, r13\n\tadd.eq\t1, r0, r13\n\tand!\t1, r13, r13\n\tjump.ne\t@.BB0_290\n\tld.1\tr7, r11\n\tsub.s!\t0, r11, r11\n\tjump.eq\t@.BB0_25\n\tld.1\tr10, r11\n\tand\t@CPI0_12[0], r11, r11\n\tshl.s\t248, r9, r12\n\tor\tr12, r11, r11\n\tor\t@CPI0_18[0], r11, r11\n\tst.1\tr10, r11\n\tshl.s\t3, r9, r9\n\tsub\t248, r9, r9\n\tshl\tr8, r9, r8\n\tadd\t33, r7, r9\n\tst.1\tr9, r8\n\tjump\t@.BB0_298\n.BB0_560:\n\tsub.s!\t0, r1, r3\n\tjump.ne\t@.BB0_561\n\tadd\t260, r11, r1\n\tptr.add\tr2, r1, r1\n\tld\tr1, r1\n\tsub.s!\t128, r1, r2\n\tjump.lt\t@.BB0_575\n\tshr.s\t128, r1, r2\n\tsub.s!\t@CPI0_13[0], r1, r3\n\tadd.le\tr1, r0, r2\n\tsub.s!\t@CPI0_13[0], r1, r3\n\tadd\t0, r0, r3\n\tadd.gt\t16, r0, r3\n\tor\t8, r3, r4\n\tsub.s!\t@CPI0_5[0], r2, r5\n\tadd.gt\tr4, r0, r3\n\tshr.s\t64, r2, r4\n\tsub.s!\t@CPI0_5[0], r2, r5\n\tadd.gt\tr4, r0, r2\n\tor\t4, r3, r4\n\tsub.s!\t@CPI0_0[0], r2, r5\n\tadd.gt\tr4, r0, r3\n\tshr.s\t32, r2, r4\n\tsub.s!\t@CPI0_0[0], r2, r5\n\tadd.gt\tr4, r0, r2\n\tor\t2, r3, r4\n\tsub.s!\t65535, r2, r5\n\tadd.gt\tr4, r0, r3\n\tshr.s\t16, r2, r4\n\tadd.gt\tr4, r0, r2\n\tsub.s!\t255, r2, r2\n\tadd\t0, r0, r2\n\tadd.gt\t1, r0, r2\n\tadd\tr3, r2, r2\n\tsub.s\t32, r0, r3\n\tadd\t65, r2, r4\n\tand\tr4, r3, r3\n\tld.1\t64, r4\n\tadd\tr4, r3, r3\n\tadd\tr4, r0, stack-[11]\n\tsub!\tr3, r4, r4\n\tadd\t0, r0, r4\n\tadd.lt\t1, r0, r4\n\tsub.s!\t@CPI0_5[0], r3, r5\n\tjump.gt\t@.BB0_19\n\tand!\t1, r4, r4\n\tjump.ne\t@.BB0_19\n\tst.1\t64, r3\n\tadd\t2, r2, r3\n\tadd\tstack-[11], r0, r4\n\tst.1.inc\tr4, r3, r3\n\tadd\t33, r2, r4\n\tshr.s!\t5, r4, r4\n\tjump.eq\t@.BB0_819\n\tadd\tstack[@calldatasize], r0, r5\n\tptr.add\tstack[@ptr_calldata], r5, r5\n\tadd\tr0, r0, r6\n.BB0_571:\n\tshl.s\t5, r6, r7\n\tadd\tr3, r7, r8\n\tptr.add\tr5, r7, r7\n\tld\tr7, r7\n\tst.1\tr8, r7\n\tadd\t1, r6, r6\n\tsub!\tr6, r4, r7\n\tjump.lt\t@.BB0_571\n.BB0_819:\n\tsub.s!\t0, r0, r4\n\tjump.eq\t@.BB0_573\n.BB0_573:\n\tadd\tstack-[11], r0, r4\n\tld.1\tr4, r4\n\tsub.s!\t0, r4, r4\n\tjump.eq\t@.BB0_25\n\tld.1\tr3, r4\n\tand\t@CPI0_12[0], r4, r4\n\tshl.s\t248, r2, r5\n\tor\tr5, r4, r4\n\tadd\t@CPI0_14[0], r4, r4\n\tst.1\tr3, r4\n\tshl.s\t3, r2, r2\n\tsub\t248, r2, r2\n\tshl\tr1, r2, r1\n\tsub.s!\t255, r2, r2\n\tadd.gt\t0, r0, r1\n\tadd\tstack-[11], r0, r2\n\tadd\t33, r2, r2\n\tst.1\tr2, r1\n\tjump\t@.BB0_580\n.BB0_126:\n\tld.1\t64, r7\n\tsub.s!\t@CPI0_11[0], r7, r10\n\tjump.gt\t@.BB0_19\n\tadd\t64, r7, r10\n\tst.1\t64, r10\n\tst.1.inc\tr7, r9, r9\n\tadd\tstack[@calldatasize], r0, r10\n\tptr.add\tstack[@ptr_calldata], r10, r10\n\tadd\tr0, r0, r11\n.BB0_128:\n\tshl.s\t5, r11, r12\n\tadd\tr9, r12, r13\n\tptr.add\tr10, r12, r12\n\tld\tr12, r12\n\tst.1\tr13, r12\n\tadd!\t1, r11, r11\n\tadd\t0, r0, r12\n\tadd.eq\t1, r0, r12\n\tand!\t1, r12, r12\n\tjump.ne\t@.BB0_128\n\tld.1\tr7, r10\n\tsub.s!\t0, r10, r10\n\tjump.eq\t@.BB0_25\n\tshl.s\t248, r8, r8\n\tld.1\tr9, r10\n\tand\t@CPI0_12[0], r10, r10\n\tor\tr8, r10, r8\n\tadd\t@CPI0_17[0], r8, r8\n\tst.1\tr9, r8\n.BB0_131:\n\tadd\tstack[@calldatasize], r0, r9\n\tadd\tr9, r4, r8\n\tptr.add\tstack[@ptr_calldata], r0, r4\n\tptr.add\tr4, r3, r3\n\tld\tr3, r3\n\tadd\t@CPI0_4[0], r0, r10\n\tsub!\tr3, r8, r11\n\tadd\t0, r0, r11\n\tadd.ge\tr10, r0, r11\n\tand\t@CPI0_4[0], r8, r8\n\tand\t@CPI0_4[0], r3, r12\n\tsub!\tr12, r8, r13\n\tadd.ge\t0, r0, r10\n\txor\tr12, r8, r8\n\tsub.s!\t@CPI0_4[0], r8, r8\n\tadd\tr11, r0, r8\n\tadd.eq\tr10, r0, r8\n\tsub.s!\t0, r8, r8\n\tjump.ne\t@.BB0_2\n\tadd\tstack-[13], r0, r8\n\tadd\tr3, r8, r3\n\tptr.add\tr4, r3, r4\n\tld\tr4, r8\n\tsub.s!\t@CPI0_5[0], r8, r4\n\tjump.gt\t@.BB0_2\n\tsub\tr9, r8, r4\n\tadd\t32, r3, r9\n\tadd\t@CPI0_4[0], r0, r3\n\tsub!\tr9, r4, r10\n\tadd\t0, r0, r10\n\tadd.gt\tr3, r0, r10\n\tand\t@CPI0_4[0], r4, r4\n\tand\t@CPI0_4[0], r9, r11\n\tsub!\tr11, r4, r12\n\tadd.ge\t0, r0, r3\n\txor\tr11, r4, r4\n\tsub.s!\t@CPI0_4[0], r4, r4\n\tadd.ne\tr10, r0, r3\n\tsub.s!\t0, r3, r3\n\tjump.ne\t@.BB0_2\n\tld.1\t64, r3\n\tadd\t32, r3, r4\n\tadd\t@CPI0_19[0], r0, r10\n\tst.1\tr4, r10\n\tadd\t33, r3, r10\n\tld.1\tr7, r11\n\tsub.s!\t0, r11, r12\n\tjump.eq\t@.BB0_137\n\tadd\tr0, r0, r12\n.BB0_136:\n\tadd\tr12, r10, r13\n\tadd\t32, r12, r12\n\tadd\tr12, r7, r14\n\tld.1\tr14, r14\n\tst.1\tr13, r14\n\tsub!\tr12, r11, r13\n\tjump.lt\t@.BB0_136\n.BB0_137:\n\tadd\tr11, r10, r7\n\tst.1\tr7, r0\n\tld.1\tr2, r10\n\tsub.s!\t0, r10, r11\n\tjump.eq\t@.BB0_140\n\tadd\tr0, r0, r11\n.BB0_139:\n\tadd\tr11, r7, r12\n\tadd\t32, r11, r11\n\tadd\tr11, r2, r13\n\tld.1\tr13, r13\n\tst.1\tr12, r13\n\tsub!\tr11, r10, r12\n\tjump.lt\t@.BB0_139\n.BB0_140:\n\tadd\tr10, r7, r2\n\tst.1\tr2, r0\n\tld.1\tr6, r7\n\tsub.s!\t0, r7, r10\n\tjump.eq\t@.BB0_143\n\tadd\tr0, r0, r10\n.BB0_142:\n\tadd\tr10, r2, r11\n\tadd\t32, r10, r10\n\tadd\tr10, r6, r12\n\tld.1\tr12, r12\n\tst.1\tr11, r12\n\tsub!\tr10, r7, r11\n\tjump.lt\t@.BB0_142\n.BB0_143:\n\tadd\tr7, r2, r2\n\tand\t31, r8, r6\n\tst.1\tr2, r0\n\tptr.add\tstack[@ptr_calldata], r9, r7\n\tshr.s!\t5, r8, r9\n\tjump.eq\t@.BB0_818\n\tadd\tr0, r0, r10\n.BB0_145:\n\tshl.s\t5, r10, r11\n\tadd\tr2, r11, r12\n\tptr.add\tr7, r11, r11\n\tld\tr11, r11\n\tst.1\tr12, r11\n\tadd\t1, r10, r10\n\tsub!\tr10, r9, r11\n\tjump.lt\t@.BB0_145\n.BB0_818:\n\tsub.s!\t0, r6, r10\n\tjump.eq\t@.BB0_147\n\tshl.s\t5, r9, r9\n\tptr.add\tr7, r9, r7\n\tadd\tr2, r9, r9\n\tshl.s\t3, r6, r6\n\tld.1\tr9, r10\n\tshl\tr10, r6, r10\n\tshr\tr10, r6, r10\n\tld\tr7, r7\n\tsub\t256, r6, r6\n\tshr\tr7, r6, r7\n\tshl\tr7, r6, r6\n\tor\tr6, r10, r6\n\tst.1\tr9, r6\n.BB0_147:\n\tadd\tr2, r8, r2\n\tst.1\tr2, r0\n\tld.1\tr5, r6\n\tsub.s!\t0, r6, r7\n\tjump.eq\t@.BB0_150\n\tadd\tr0, r0, r7\n.BB0_149:\n\tadd\tr7, r2, r8\n\tadd\t32, r7, r7\n\tadd\tr7, r5, r9\n\tld.1\tr9, r9\n\tst.1\tr8, r9\n\tsub!\tr7, r6, r8\n\tjump.lt\t@.BB0_149\n.BB0_150:\n\tadd\tr6, r2, r2\n\tst.1\tr2, r0\n\tsub\tr2, r3, r2\n\tsub.s\t32, r2, r5\n\tst.1\tr3, r5\n\tadd\t31, r2, r2\n\tand\tr2, r1, r2\n\tadd\tr2, r3, r1\n\tsub!\tr1, r2, r2\n\tadd\t0, r0, r2\n\tadd.lt\t1, r0, r2\n\tsub.s!\t@CPI0_5[0], r1, r5\n\tjump.gt\t@.BB0_19\n\tand!\t1, r2, r2\n\tjump.ne\t@.BB0_19\n\tst.1\t64, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tsub.s!\t@CPI0_0[0], r4, r2\n\tadd\tr1, r0, r2\n\tadd.lt\tr4, r0, r2\n\tshl.s\t64, r2, r2\n\tld.1\tr3, r3\n\tsub.s!\t@CPI0_0[0], r3, r4\n\tadd.ge\tr1, r0, r3\n\tshl.s\t96, r3, r3\n\tor\tr3, r2, r2\n\tcontext.gas_left\tr3\n\tsub.s!\t@CPI0_0[0], r3, r4\n\tadd.lt\tr3, r0, r1\n\tshl.s\t192, r1, r1\n\tor\tr1, r2, r1\n\tor\t@CPI0_20[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tadd\tstack-[12], r0, r11\n\tjump.ne\t@.BB0_558\n\tjump\t@.BB0_2\n.BB0_561:\n\tsub.s!\t2, r1, r2\n\tjump.ne\t@.BB0_562\n\tadd\tstack-[13], r0, r1\n\tnear_call\tr0, @fun_encodeEIP1559TransactionHash, @DEFAULT_UNWIND\n\tjump\t@.BB0_559\n.BB0_293:\n\tld.1\t64, r7\n\tsub.s!\t@CPI0_11[0], r7, r10\n\tjump.gt\t@.BB0_19\n\tadd\t64, r7, r10\n\tst.1\t64, r10\n\tst.1.inc\tr7, r9, r9\n\tadd\tstack[@calldatasize], r0, r10\n\tptr.add\tstack[@ptr_calldata], r10, r10\n\tadd\tr0, r0, r11\n.BB0_295:\n\tshl.s\t5, r11, r12\n\tadd\tr9, r12, r13\n\tptr.add\tr10, r12, r12\n\tld\tr12, r12\n\tst.1\tr13, r12\n\tadd!\t1, r11, r11\n\tadd\t0, r0, r12\n\tadd.eq\t1, r0, r12\n\tand!\t1, r12, r12\n\tjump.ne\t@.BB0_295\n\tld.1\tr7, r10\n\tsub.s!\t0, r10, r10\n\tjump.eq\t@.BB0_25\n\tshl.s\t248, r8, r8\n\tld.1\tr9, r10\n\tand\t@CPI0_12[0], r10, r10\n\tor\tr8, r10, r8\n\tadd\t@CPI0_17[0], r8, r8\n\tst.1\tr9, r8\n.BB0_298:\n\tadd\tstack[@calldatasize], r0, r9\n\tadd\tr9, r4, r8\n\tptr.add\tstack[@ptr_calldata], r0, r4\n\tptr.add\tr4, r2, r2\n\tld\tr2, r2\n\tadd\t@CPI0_4[0], r0, r10\n\tsub!\tr2, r8, r11\n\tadd\t0, r0, r11\n\tadd.ge\tr10, r0, r11\n\tand\t@CPI0_4[0], r8, r8\n\tand\t@CPI0_4[0], r2, r12\n\tsub!\tr12, r8, r13\n\tadd.ge\t0, r0, r10\n\txor\tr12, r8, r8\n\tsub.s!\t@CPI0_4[0], r8, r8\n\tadd\tr11, r0, r8\n\tadd.eq\tr10, r0, r8\n\tsub.s!\t0, r8, r8\n\tjump.ne\t@.BB0_2\n\tadd\tstack-[13], r0, r8\n\tadd\tr2, r8, r2\n\tptr.add\tr4, r2, r4\n\tld\tr4, r8\n\tsub.s!\t@CPI0_5[0], r8, r4\n\tjump.gt\t@.BB0_2\n\tsub\tr9, r8, r4\n\tadd\t32, r2, r9\n\tadd\t@CPI0_4[0], r0, r2\n\tsub!\tr9, r4, r10\n\tadd\t0, r0, r10\n\tadd.gt\tr2, r0, r10\n\tand\t@CPI0_4[0], r4, r4\n\tand\t@CPI0_4[0], r9, r11\n\tsub!\tr11, r4, r12\n\tadd.ge\t0, r0, r2\n\txor\tr11, r4, r4\n\tsub.s!\t@CPI0_4[0], r4, r4\n\tadd.ne\tr10, r0, r2\n\tsub.s!\t0, r2, r2\n\tjump.ne\t@.BB0_2\n\tld.1\t64, r2\n\tadd\t32, r2, r4\n\tadd\t@CPI0_20[0], r0, r10\n\tst.1\tr4, r10\n\tadd\t33, r2, r10\n\tld.1\tr7, r11\n\tsub.s!\t0, r11, r12\n\tjump.eq\t@.BB0_304\n\tadd\tr0, r0, r12\n.BB0_303:\n\tadd\tr12, r10, r13\n\tadd\t32, r12, r12\n\tadd\tr12, r7, r14\n\tld.1\tr14, r14\n\tst.1\tr13, r14\n\tsub!\tr12, r11, r13\n\tjump.lt\t@.BB0_303\n.BB0_304:\n\tadd\tr11, r10, r7\n\tst.1\tr7, r0\n\tld.1\tr3, r10\n\tsub.s!\t0, r10, r11\n\tjump.eq\t@.BB0_307\n\tadd\tr0, r0, r11\n.BB0_306:\n\tadd\tr11, r7, r12\n\tadd\t32, r11, r11\n\tadd\tr11, r3, r13\n\tld.1\tr13, r13\n\tst.1\tr12, r13\n\tsub!\tr11, r10, r12\n\tjump.lt\t@.BB0_306\n.BB0_307:\n\tadd\tr10, r7, r3\n\tst.1\tr3, r0\n\tld.1\tr6, r7\n\tsub.s!\t0, r7, r10\n\tjump.eq\t@.BB0_310\n\tadd\tr0, r0, r10\n.BB0_309:\n\tadd\tr10, r3, r11\n\tadd\t32, r10, r10\n\tadd\tr10, r6, r12\n\tld.1\tr12, r12\n\tst.1\tr11, r12\n\tsub!\tr10, r7, r11\n\tjump.lt\t@.BB0_309\n.BB0_310:\n\tadd\tr7, r3, r3\n\tand\t31, r8, r6\n\tst.1\tr3, r0\n\tptr.add\tstack[@ptr_calldata], r9, r7\n\tshr.s!\t5, r8, r9\n\tjump.eq\t@.BB0_812\n\tadd\tr0, r0, r10\n.BB0_312:\n\tshl.s\t5, r10, r11\n\tadd\tr3, r11, r12\n\tptr.add\tr7, r11, r11\n\tld\tr11, r11\n\tst.1\tr12, r11\n\tadd\t1, r10, r10\n\tsub!\tr10, r9, r11\n\tjump.lt\t@.BB0_312\n.BB0_812:\n\tsub.s!\t0, r6, r10\n\tjump.eq\t@.BB0_314\n\tshl.s\t5, r9, r9\n\tptr.add\tr7, r9, r7\n\tadd\tr3, r9, r9\n\tshl.s\t3, r6, r6\n\tld.1\tr9, r10\n\tshl\tr10, r6, r10\n\tshr\tr10, r6, r10\n\tld\tr7, r7\n\tsub\t256, r6, r6\n\tshr\tr7, r6, r7\n\tshl\tr7, r6, r6\n\tor\tr6, r10, r6\n\tst.1\tr9, r6\n.BB0_314:\n\tadd\tr3, r8, r3\n\tst.1\tr3, r0\n\tld.1\tr5, r6\n\tsub.s!\t0, r6, r7\n\tjump.eq\t@.BB0_317\n\tadd\tr0, r0, r7\n.BB0_316:\n\tadd\tr7, r3, r8\n\tadd\t32, r7, r7\n\tadd\tr7, r5, r9\n\tld.1\tr9, r9\n\tst.1\tr8, r9\n\tsub!\tr7, r6, r8\n\tjump.lt\t@.BB0_316\n.BB0_317:\n\tadd\tr6, r3, r3\n\tst.1\tr3, r0\n\tsub\tr3, r2, r3\n\tsub.s\t32, r3, r5\n\tst.1\tr2, r5\n\tadd\t31, r3, r3\n\tand\tr3, r1, r3\n\tadd\tr3, r2, r1\n\tsub!\tr1, r3, r3\n\tadd\t0, r0, r3\n\tadd.lt\t1, r0, r3\n\tsub.s!\t@CPI0_5[0], r1, r5\n\tjump.gt\t@.BB0_19\n\tand!\t1, r3, r3\n\tjump.ne\t@.BB0_19\n\tst.1\t64, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tsub.s!\t@CPI0_0[0], r4, r3\n\tadd\tr1, r0, r3\n\tadd.lt\tr4, r0, r3\n\tshl.s\t64, r3, r3\n\tld.1\tr2, r2\n\tsub.s!\t@CPI0_0[0], r2, r4\n\tadd.ge\tr1, r0, r2\n\tshl.s\t96, r2, r2\n\tor\tr2, r3, r2\n\tcontext.gas_left\tr3\n\tsub.s!\t@CPI0_0[0], r3, r4\n\tadd.lt\tr3, r0, r1\n\tshl.s\t192, r1, r1\n\tor\tr1, r2, r1\n\tor\t@CPI0_20[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tadd\tstack-[12], r0, r11\n\tjump.ne\t@.BB0_558\n\tjump\t@.BB0_2\n.BB0_575:\n\tld.1\t64, r2\n\tadd\tr2, r0, stack-[11]\n\tsub.s!\t@CPI0_11[0], r2, r2\n\tjump.gt\t@.BB0_19\n\tadd\tstack-[11], r0, r3\n\tadd\t64, r3, r2\n\tst.1\t64, r2\n\tadd\t1, r0, r2\n\tst.1.inc\tr3, r2, r2\n\tadd\tstack[@calldatasize], r0, r3\n\tptr.add\tstack[@ptr_calldata], r3, r3\n\tadd\tr0, r0, r4\n.BB0_577:\n\tshl.s\t5, r4, r5\n\tadd\tr2, r5, r6\n\tptr.add\tr3, r5, r5\n\tld\tr5, r5\n\tst.1\tr6, r5\n\tadd!\t1, r4, r4\n\tadd\t0, r0, r5\n\tadd.eq\t1, r0, r5\n\tand!\t1, r5, r5\n\tjump.ne\t@.BB0_577\n\tadd\tstack-[11], r0, r3\n\tld.1\tr3, r3\n\tsub.s!\t0, r3, r3\n\tjump.eq\t@.BB0_25\n\tshl.s\t248, r1, r3\n\tadd\t@CPI0_4[0], r0, r4\n\tsub.s!\t0, r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr4, r0, r1\n\tld.1\tr2, r3\n\tand\t@CPI0_12[0], r3, r3\n\tor\tr3, r1, r1\n\tst.1\tr2, r1\n.BB0_580:\n\tadd\t164, r11, r1\n\tptr.add\tstack[@ptr_calldata], r1, r1\n\tld\tr1, r2\n\tsub.s!\t128, r2, r1\n\tjump.lt\t@.BB0_589\n\tshr.s\t128, r2, r1\n\tsub.s!\t@CPI0_13[0], r2, r3\n\tadd.le\tr2, r0, r1\n\tsub.s!\t@CPI0_13[0], r2, r3\n\tadd\t0, r0, r3\n\tadd.gt\t16, r0, r3\n\tor\t8, r3, r4\n\tsub.s!\t@CPI0_5[0], r1, r5\n\tadd.gt\tr4, r0, r3\n\tshr.s\t64, r1, r4\n\tsub.s!\t@CPI0_5[0], r1, r5\n\tadd.gt\tr4, r0, r1\n\tor\t4, r3, r4\n\tsub.s!\t@CPI0_0[0], r1, r5\n\tadd.gt\tr4, r0, r3\n\tshr.s\t32, r1, r4\n\tsub.s!\t@CPI0_0[0], r1, r5\n\tadd.gt\tr4, r0, r1\n\tor\t2, r3, r4\n\tsub.s!\t65535, r1, r5\n\tadd.gt\tr4, r0, r3\n\tshr.s\t16, r1, r4\n\tadd.gt\tr4, r0, r1\n\tsub.s!\t255, r1, r1\n\tadd\t0, r0, r1\n\tadd.gt\t1, r0, r1\n\tadd\tr3, r1, r3\n\tsub.s\t32, r0, r1\n\tadd\t65, r3, r4\n\tand\tr4, r1, r4\n\tld.1\t64, r1\n\tadd\tr1, r4, r4\n\tsub!\tr4, r1, r5\n\tadd\t0, r0, r5\n\tadd.lt\t1, r0, r5\n\tsub.s!\t@CPI0_5[0], r4, r6\n\tjump.gt\t@.BB0_19\n\tand!\t1, r5, r5\n\tjump.ne\t@.BB0_19\n\tst.1\t64, r4\n\tadd\t2, r3, r4\n\tst.1.inc\tr1, r4, r4\n\tadd\t33, r3, r5\n\tshr.s!\t5, r5, r5\n\tjump.eq\t@.BB0_820\n\tadd\tstack[@calldatasize], r0, r6\n\tptr.add\tstack[@ptr_calldata], r6, r6\n\tadd\tr0, r0, r7\n.BB0_585:\n\tshl.s\t5, r7, r8\n\tadd\tr4, r8, r9\n\tptr.add\tr6, r8, r8\n\tld\tr8, r8\n\tst.1\tr9, r8\n\tadd\t1, r7, r7\n\tsub!\tr7, r5, r8\n\tjump.lt\t@.BB0_585\n.BB0_820:\n\tsub.s!\t0, r0, r5\n\tjump.eq\t@.BB0_587\n.BB0_587:\n\tld.1\tr1, r5\n\tsub.s!\t0, r5, r5\n\tjump.eq\t@.BB0_25\n\tld.1\tr4, r5\n\tand\t@CPI0_12[0], r5, r5\n\tshl.s\t248, r3, r6\n\tor\tr6, r5, r5\n\tadd\t@CPI0_14[0], r5, r5\n\tst.1\tr4, r5\n\tshl.s\t3, r3, r3\n\tsub\t248, r3, r3\n\tshl\tr2, r3, r2\n\tsub.s!\t255, r3, r3\n\tadd.gt\t0, r0, r2\n\tadd\t33, r1, r3\n\tst.1\tr3, r2\n\tjump\t@.BB0_594\n.BB0_562:\n\tsub.s!\t1, r1, r1\n\tjump.ne\t@.BB0_563\n\tadd\tstack-[13], r0, r1\n\tnear_call\tr0, @fun_encodeEIP2930TransactionHash, @DEFAULT_UNWIND\n.BB0_559:\n\tld.1\t64, r2\n\tadd\t32, r2, r3\n\tadd\tstack-[12], r0, r4\n\tst.1\tr3, r4\n\tst.1\tr2, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI0_41[0], r1, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_563:\n\tld.1\t64, r2\n\tadd\tr2, r0, stack-[13]\n\tadd\t@CPI0_7[0], r0, r1\n\tst.1\tr2, r1\n\tadd\t4, r2, r1\n\tnear_call\tr0, @abi_encode_stringliteral_80e5, @DEFAULT_UNWIND\n\tadd\tstack-[13], r0, r4\n\tsub\tr1, r4, r1\n\tadd\t@CPI0_0[0], r0, r2\n\tsub.s!\t@CPI0_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tsub.s!\t@CPI0_0[0], r4, r3\n\tadd.lt\tr4, r0, r2\n\tshl.s\t64, r2, r2\n\tshl.s\t96, r1, r1\n\tor\tr1, r2, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB0_768:\n\tadd\tstack-[11], r0, r1\n\tshl.s\t192, r1, r1\n\tand\t@CPI0_22[0], r1, r1\n\tor\t@CPI0_21[0], r1, r1\n\tadd\t65513, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tadd\tr1, r0, r2\n\tshr.s\t96, r2, r2\n\tand\t@CPI0_0[0], r2, stack[@returndatasize]\n\tadd\tstack-[13], r0, r3\n\tadd\tstack-[11], r0, r2\n\tadd\tr3, r2, r2\n\tsub!\tr2, r3, r3\n\tadd\t0, r0, r3\n\tadd.lt\t1, r0, r3\n\tptr.add\tr1, r0, stack[@ptr_return_data]\n\tand!\t1, r3, r1\n\tjump.ne\t@.BB0_340\n\tadd\tstack[@calldatasize], r0, r1\n\tsub!\tr1, r2, r3\n\tjump.lt\t@.BB0_340\n\tsub\tr1, r2, r1\n\tjump\t@.BB0_767\n.BB0_589:\n\tld.1\t64, r1\n\tsub.s!\t@CPI0_11[0], r1, r3\n\tjump.gt\t@.BB0_19\n\tadd\t64, r1, r3\n\tst.1\t64, r3\n\tadd\t1, r0, r3\n\tst.1.inc\tr1, r3, r3\n\tadd\tstack[@calldatasize], r0, r4\n\tptr.add\tstack[@ptr_calldata], r4, r4\n\tadd\tr0, r0, r5\n.BB0_591:\n\tshl.s\t5, r5, r6\n\tadd\tr3, r6, r7\n\tptr.add\tr4, r6, r6\n\tld\tr6, r6\n\tst.1\tr7, r6\n\tadd!\t1, r5, r5\n\tadd\t0, r0, r6\n\tadd.eq\t1, r0, r6\n\tand!\t1, r6, r6\n\tjump.ne\t@.BB0_591\n\tld.1\tr1, r4\n\tsub.s!\t0, r4, r4\n\tjump.eq\t@.BB0_25\n\tshl.s\t248, r2, r4\n\tadd\t@CPI0_4[0], r0, r5\n\tsub.s!\t0, r2, r2\n\tadd\tr4, r0, r2\n\tadd.eq\tr5, r0, r2\n\tld.1\tr3, r4\n\tand\t@CPI0_12[0], r4, r4\n\tor\tr4, r2, r2\n\tst.1\tr3, r2\n.BB0_594:\n\tadd\t100, r11, r2\n\tptr.add\tstack[@ptr_calldata], r2, r2\n\tld\tr2, r3\n\tsub.s!\t128, r3, r2\n\tjump.lt\t@.BB0_603\n\tshr.s\t128, r3, r2\n\tsub.s!\t@CPI0_13[0], r3, r4\n\tadd.le\tr3, r0, r2\n\tsub.s!\t@CPI0_13[0], r3, r4\n\tadd\t0, r0, r4\n\tadd.gt\t16, r0, r4\n\tor\t8, r4, r5\n\tsub.s!\t@CPI0_5[0], r2, r6\n\tadd.gt\tr5, r0, r4\n\tshr.s\t64, r2, r5\n\tsub.s!\t@CPI0_5[0], r2, r6\n\tadd.gt\tr5, r0, r2\n\tor\t4, r4, r5\n\tsub.s!\t@CPI0_0[0], r2, r6\n\tadd.gt\tr5, r0, r4\n\tshr.s\t32, r2, r5\n\tsub.s!\t@CPI0_0[0], r2, r6\n\tadd.gt\tr5, r0, r2\n\tor\t2, r4, r5\n\tsub.s!\t65535, r2, r6\n\tadd.gt\tr5, r0, r4\n\tshr.s\t16, r2, r5\n\tadd.gt\tr5, r0, r2\n\tsub.s!\t255, r2, r2\n\tadd\t0, r0, r2\n\tadd.gt\t1, r0, r2\n\tadd\tr4, r2, r4\n\tsub.s\t32, r0, r2\n\tadd\t65, r4, r5\n\tand\tr5, r2, r5\n\tld.1\t64, r2\n\tadd\tr2, r5, r5\n\tsub!\tr5, r2, r6\n\tadd\t0, r0, r6\n\tadd.lt\t1, r0, r6\n\tsub.s!\t@CPI0_5[0], r5, r7\n\tjump.gt\t@.BB0_19\n\tand!\t1, r6, r6\n\tjump.ne\t@.BB0_19\n\tst.1\t64, r5\n\tadd\t2, r4, r5\n\tst.1.inc\tr2, r5, r5\n\tadd\t33, r4, r6\n\tshr.s!\t5, r6, r6\n\tjump.eq\t@.BB0_821\n\tadd\tstack[@calldatasize], r0, r7\n\tptr.add\tstack[@ptr_calldata], r7, r7\n\tadd\tr0, r0, r8\n.BB0_599:\n\tshl.s\t5, r8, r9\n\tadd\tr5, r9, r10\n\tptr.add\tr7, r9, r9\n\tld\tr9, r9\n\tst.1\tr10, r9\n\tadd\t1, r8, r8\n\tsub!\tr8, r6, r9\n\tjump.lt\t@.BB0_599\n.BB0_821:\n\tsub.s!\t0, r0, r6\n\tjump.eq\t@.BB0_601\n.BB0_601:\n\tld.1\tr2, r6\n\tsub.s!\t0, r6, r6\n\tjump.eq\t@.BB0_25\n\tld.1\tr5, r6\n\tand\t@CPI0_12[0], r6, r6\n\tshl.s\t248, r4, r7\n\tor\tr7, r6, r6\n\tadd\t@CPI0_14[0], r6, r6\n\tst.1\tr5, r6\n\tshl.s\t3, r4, r4\n\tsub\t248, r4, r4\n\tshl\tr3, r4, r3\n\tsub.s!\t255, r4, r4\n\tadd.gt\t0, r0, r3\n\tadd\t33, r2, r4\n\tst.1\tr4, r3\n\tjump\t@.BB0_608\n.BB0_773:\n\tand\t31, r3, r4\n\tshr.s!\t5, r3, r2\n\tjump.eq\t@.BB0_829\n\tadd\tr0, r0, r5\n.BB0_775:\n\tshl.s\t5, r5, r6\n\tptr.add\tr1, r6, r7\n\tld\tr7, r7\n\tst.1\tr6, r7\n\tadd\t1, r5, r5\n\tsub!\tr5, r2, r6\n\tjump.lt\t@.BB0_775\n.BB0_829:\n\tsub.s!\t0, r4, r5\n\tjump.eq\t@.BB0_777\n\tshl.s\t3, r4, r4\n\tshl.s\t5, r2, r2\n\tld.1\tr2, r5\n\tshl\tr5, r4, r5\n\tshr\tr5, r4, r5\n\tptr.add\tr1, r2, r1\n\tld\tr1, r1\n\tsub\t256, r4, r4\n\tshr\tr1, r4, r1\n\tshl\tr1, r4, r1\n\tor\tr1, r5, r1\n\tst.1\tr2, r1\n.BB0_777:\n\tshl.s\t96, r3, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB0_603:\n\tld.1\t64, r2\n\tsub.s!\t@CPI0_11[0], r2, r4\n\tjump.gt\t@.BB0_19\n\tadd\t64, r2, r4\n\tst.1\t64, r4\n\tadd\t1, r0, r4\n\tst.1.inc\tr2, r4, r4\n\tadd\tstack[@calldatasize], r0, r5\n\tptr.add\tstack[@ptr_calldata], r5, r5\n\tadd\tr0, r0, r6\n.BB0_605:\n\tshl.s\t5, r6, r7\n\tadd\tr4, r7, r8\n\tptr.add\tr5, r7, r7\n\tld\tr7, r7\n\tst.1\tr8, r7\n\tadd!\t1, r6, r6\n\tadd\t0, r0, r7\n\tadd.eq\t1, r0, r7\n\tand!\t1, r7, r7\n\tjump.ne\t@.BB0_605\n\tld.1\tr2, r5\n\tsub.s!\t0, r5, r5\n\tjump.eq\t@.BB0_25\n\tshl.s\t248, r3, r5\n\tadd\t@CPI0_4[0], r0, r6\n\tsub.s!\t0, r3, r3\n\tadd\tr5, r0, r3\n\tadd.eq\tr6, r0, r3\n\tld.1\tr4, r5\n\tand\t@CPI0_12[0], r5, r5\n\tor\tr5, r3, r3\n\tst.1\tr4, r3\n.BB0_608:\n\tld.1\t64, r3\n\tadd\tr3, r0, stack-[10]\n\tadd\t32, r3, r3\n\tld.1\tr1, r4\n\tsub.s!\t0, r4, r5\n\tjump.eq\t@.BB0_611\n\tadd\tr0, r0, r5\n.BB0_610:\n\tadd\tr5, r3, r6\n\tadd\t32, r5, r5\n\tadd\tr5, r1, r7\n\tld.1\tr7, r7\n\tst.1\tr6, r7\n\tsub!\tr5, r4, r6\n\tjump.lt\t@.BB0_610\n.BB0_611:\n\tadd\tr4, r3, r1\n\tst.1\tr1, r0\n\tld.1\tr2, r3\n\tsub.s!\t0, r3, r4\n\tjump.eq\t@.BB0_614\n\tadd\tr0, r0, r4\n.BB0_613:\n\tadd\tr4, r1, r5\n\tadd\t32, r4, r4\n\tadd\tr4, r2, r6\n\tld.1\tr6, r6\n\tst.1\tr5, r6\n\tsub!\tr4, r3, r5\n\tjump.lt\t@.BB0_613\n.BB0_614:\n\tadd\tr3, r1, r1\n\tst.1\tr1, r0\n\tadd\tstack-[10], r0, r3\n\tsub\tr1, r3, r1\n\tsub.s\t32, r1, r2\n\tst.1\tr3, r2\n\tadd\t31, r1, r1\n\tsub.s\t32, r0, r2\n\tadd\tr2, r0, stack-[8]\n\tand\tr1, r2, r1\n\tadd\tr1, r3, r2\n\tsub!\tr2, r1, r1\n\tadd\t0, r0, r1\n\tadd.lt\t1, r0, r1\n\tadd\tr2, r0, stack-[9]\n\tsub.s!\t@CPI0_5[0], r2, r2\n\tjump.gt\t@.BB0_19\n\tand!\t1, r1, r1\n\tjump.ne\t@.BB0_19\n\tadd\tstack-[9], r0, r1\n\tst.1\t64, r1\n\tsub.s!\t@CPI0_11[0], r1, r1\n\tjump.gt\t@.BB0_19\n\tadd\tr11, r0, r4\n\tadd\t68, r4, r1\n\tptr.add\tstack[@ptr_calldata], r1, r1\n\tld\tr1, r1\n\tadd\tstack-[9], r0, r5\n\tadd\t64, r5, r2\n\tst.1\t64, r2\n\tadd\t32, r5, r2\n\tadd\t@CPI0_15[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t21, r0, r2\n\tst.1\tr5, r2\n\tadd\t33, r5, r2\n\tshl.s\t96, r1, r1\n\tst.1\tr2, r1\n\tadd\t292, r4, r1\n\tptr.add\tstack[@ptr_calldata], r1, r1\n\tld\tr1, r1\n\tsub.s!\t128, r1, r2\n\tjump.lt\t@.BB0_626\n\tshr.s\t128, r1, r2\n\tsub.s!\t@CPI0_13[0], r1, r3\n\tadd.le\tr1, r0, r2\n\tsub.s!\t@CPI0_13[0], r1, r3\n\tadd\t0, r0, r3\n\tadd.gt\t16, r0, r3\n\tor\t8, r3, r4\n\tsub.s!\t@CPI0_5[0], r2, r5\n\tadd.gt\tr4, r0, r3\n\tshr.s\t64, r2, r4\n\tsub.s!\t@CPI0_5[0], r2, r5\n\tadd.gt\tr4, r0, r2\n\tor\t4, r3, r4\n\tsub.s!\t@CPI0_0[0], r2, r5\n\tadd.gt\tr4, r0, r3\n\tshr.s\t32, r2, r4\n\tsub.s!\t@CPI0_0[0], r2, r5\n\tadd.gt\tr4, r0, r2\n\tor\t2, r3, r4\n\tsub.s!\t65535, r2, r5\n\tadd.gt\tr4, r0, r3\n\tshr.s\t16, r2, r4\n\tadd.gt\tr4, r0, r2\n\tsub.s!\t255, r2, r2\n\tadd\t0, r0, r2\n\tadd.gt\t1, r0, r2\n\tadd\tr3, r2, r2\n\tadd\t65, r2, r3\n\tadd\tstack-[8], r0, r4\n\tand\tr3, r4, r3\n\tld.1\t64, r4\n\tadd\tr4, r3, r3\n\tadd\tr4, r0, stack-[7]\n\tsub!\tr3, r4, r4\n\tadd\t0, r0, r4\n\tadd.lt\t1, r0, r4\n\tsub.s!\t@CPI0_5[0], r3, r5\n\tjump.gt\t@.BB0_19\n\tand!\t1, r4, r4\n\tjump.ne\t@.BB0_19\n\tst.1\t64, r3\n\tadd\t2, r2, r3\n\tadd\tstack-[7], r0, r4\n\tst.1.inc\tr4, r3, r3\n\tadd\t33, r2, r4\n\tshr.s!\t5, r4, r4\n\tjump.eq\t@.BB0_822\n\tadd\tstack[@calldatasize], r0, r5\n\tptr.add\tstack[@ptr_calldata], r5, r5\n\tadd\tr0, r0, r6\n.BB0_622:\n\tshl.s\t5, r6, r7\n\tadd\tr3, r7, r8\n\tptr.add\tr5, r7, r7\n\tld\tr7, r7\n\tst.1\tr8, r7\n\tadd\t1, r6, r6\n\tsub!\tr6, r4, r7\n\tjump.lt\t@.BB0_622\n.BB0_822:\n\tsub.s!\t0, r0, r4\n\tjump.eq\t@.BB0_624\n.BB0_624:\n\tadd\tstack-[7], r0, r4\n\tld.1\tr4, r4\n\tsub.s!\t0, r4, r4\n\tjump.eq\t@.BB0_25\n\tld.1\tr3, r4\n\tand\t@CPI0_12[0], r4, r4\n\tshl.s\t248, r2, r5\n\tor\tr5, r4, r4\n\tadd\t@CPI0_14[0], r4, r4\n\tst.1\tr3, r4\n\tshl.s\t3, r2, r2\n\tsub\t248, r2, r2\n\tshl\tr1, r2, r1\n\tsub.s!\t255, r2, r2\n\tadd.gt\t0, r0, r1\n\tadd\tstack-[7], r0, r2\n\tadd\t33, r2, r2\n\tst.1\tr2, r1\n\tjump\t@.BB0_631\n.BB0_626:\n\tld.1\t64, r2\n\tadd\tr2, r0, stack-[7]\n\tsub.s!\t@CPI0_11[0], r2, r2\n\tjump.gt\t@.BB0_19\n\tadd\tstack-[7], r0, r3\n\tadd\t64, r3, r2\n\tst.1\t64, r2\n\tadd\t1, r0, r2\n\tst.1.inc\tr3, r2, r2\n\tadd\tstack[@calldatasize], r0, r3\n\tptr.add\tstack[@ptr_calldata], r3, r3\n\tadd\tr0, r0, r4\n.BB0_628:\n\tshl.s\t5, r4, r5\n\tadd\tr2, r5, r6\n\tptr.add\tr3, r5, r5\n\tld\tr5, r5\n\tst.1\tr6, r5\n\tadd!\t1, r4, r4\n\tadd\t0, r0, r5\n\tadd.eq\t1, r0, r5\n\tand!\t1, r5, r5\n\tjump.ne\t@.BB0_628\n\tadd\tstack-[7], r0, r3\n\tld.1\tr3, r3\n\tsub.s!\t0, r3, r3\n\tjump.eq\t@.BB0_25\n\tshl.s\t248, r1, r3\n\tadd\t@CPI0_4[0], r0, r4\n\tsub.s!\t0, r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr4, r0, r1\n\tld.1\tr2, r3\n\tand\t@CPI0_12[0], r3, r3\n\tor\tr3, r1, r1\n\tst.1\tr2, r1\n.BB0_631:\n\tsub.s\t35, r0, r1\n\tadd\tr11, r0, r2\n\tsub\tr1, r2, r4\n\tadd\t452, r2, r1\n\tptr.add\tstack[@ptr_calldata], r0, r2\n\tadd\tr1, r0, stack-[2]\n\tptr.add\tr2, r1, r1\n\tld\tr1, r1\n\tadd\tstack[@calldatasize], r0, r3\n\tadd\tr4, r0, stack-[3]\n\tadd\tr3, r4, r4\n\tadd\t@CPI0_4[0], r0, r5\n\tsub!\tr1, r4, r6\n\tadd\t0, r0, r6\n\tadd.ge\tr5, r0, r6\n\tand\t@CPI0_4[0], r4, r4\n\tand\t@CPI0_4[0], r1, r7\n\tsub!\tr7, r4, r8\n\tadd.ge\t0, r0, r5\n\txor\tr7, r4, r4\n\tsub.s!\t@CPI0_4[0], r4, r4\n\tadd\tr6, r0, r4\n\tadd.eq\tr5, r0, r4\n\tsub.s!\t0, r4, r4\n\tjump.ne\t@.BB0_2\n\tadd\tstack-[13], r0, r4\n\tadd\tr1, r4, r4\n\tptr.add\tr2, r4, r1\n\tld\tr1, r1\n\tsub.s!\t@CPI0_5[0], r1, r5\n\tjump.gt\t@.BB0_2\n\tsub\tr3, r1, r5\n\tadd\t32, r4, r3\n\tadd\t@CPI0_4[0], r0, r4\n\tsub!\tr3, r5, r6\n\tadd\t0, r0, r6\n\tadd.gt\tr4, r0, r6\n\tand\t@CPI0_4[0], r5, r5\n\tand\t@CPI0_4[0], r3, r7\n\tsub!\tr7, r5, r8\n\tadd.ge\t0, r0, r4\n\txor\tr7, r5, r5\n\tsub.s!\t@CPI0_4[0], r5, r5\n\tadd.ne\tr6, r0, r4\n\tsub.s!\t0, r4, r4\n\tjump.ne\t@.BB0_2\n\tsub.s!\t1, r1, r4\n\tjump.ne\t@.BB0_679\n\tptr.add\tr2, r3, r1\n\tld\tr1, r1\n\tsub.s\t1, r0, r2\n\tadd\t@CPI0_4[0], r0, r3\n\tsub!\tr1, r2, r2\n\tadd\t0, r0, r2\n\tadd.gt\tr3, r0, r2\n\tand\t@CPI0_4[0], r1, r1\n\tsub.s!\t@CPI0_4[0], r1, r4\n\tadd.ge\t0, r0, r3\n\txor\t@CPI0_4[0], r1, r1\n\tsub.s!\t@CPI0_4[0], r1, r1\n\tadd\tr2, r0, r1\n\tadd.eq\tr3, r0, r1\n\tadd\t96, r0, r2\n\tadd\tr2, r0, stack-[6]\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_635\n\tld.1\t64, r1\n\tadd\tr1, r0, stack-[6]\n\tsub.s!\t@CPI0_11[0], r1, r1\n\tjump.gt\t@.BB0_19\n\tadd\tstack-[6], r0, r3\n\tadd\t64, r3, r1\n\tst.1\t64, r1\n\tadd\t32, r3, r1\n\tadd\t@CPI0_14[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t1, r0, r1\n\tst.1\tr3, r1\n\tjump\t@.BB0_635\n.BB0_679:\n\tsub.s!\t56, r1, r2\n\tjump.lt\t@.BB0_685\n\tshr.s\t32, r1, r2\n\tsub.s!\t@CPI0_0[0], r1, r3\n\tadd\tr1, r0, r3\n\tadd.gt\tr2, r0, r3\n\tsub.s!\t@CPI0_0[0], r1, r2\n\tadd\t0, r0, r2\n\tadd.gt\t4, r0, r2\n\tor\t2, r2, r4\n\tsub.s!\t65535, r3, r5\n\tadd.gt\tr4, r0, r2\n\tshr.s\t16, r3, r4\n\tadd.gt\tr4, r0, r3\n\tsub.s!\t255, r3, r3\n\tadd\t0, r0, r3\n\tadd.gt\t1, r0, r3\n\tld.1\t64, r4\n\tadd\tr4, r0, stack-[6]\n\tsub.s!\t@CPI0_11[0], r4, r4\n\tjump.gt\t@.BB0_19\n\tor\tr2, r3, r2\n\tadd\tstack-[6], r0, r4\n\tadd\t64, r4, r3\n\tst.1\t64, r3\n\tadd\t2, r2, r3\n\tst.1.inc\tr4, r3, r3\n\tadd\tstack[@calldatasize], r0, r4\n\tptr.add\tstack[@ptr_calldata], r4, r4\n\tadd\tr0, r0, r5\n.BB0_682:\n\tshl.s\t5, r5, r6\n\tadd\tr3, r6, r7\n\tptr.add\tr4, r6, r6\n\tld\tr6, r6\n\tst.1\tr7, r6\n\tadd!\t1, r5, r5\n\tadd\t0, r0, r6\n\tadd.eq\t1, r0, r6\n\tand!\t1, r6, r6\n\tjump.ne\t@.BB0_682\n\tadd\tstack-[6], r0, r4\n\tld.1\tr4, r4\n\tsub.s!\t0, r4, r4\n\tjump.eq\t@.BB0_25\n\tld.1\tr3, r4\n\tand\t@CPI0_12[0], r4, r4\n\tshl.s\t248, r2, r5\n\tor\tr5, r4, r4\n\tor\t@CPI0_16[0], r4, r4\n\tst.1\tr3, r4\n\tshl.s\t3, r2, r2\n\tsub\t248, r2, r2\n\tshl\tr1, r2, r1\n\tadd\tstack-[6], r0, r2\n\tadd\t33, r2, r2\n\tst.1\tr2, r1\n\tjump\t@.BB0_635\n.BB0_685:\n\tld.1\t64, r2\n\tadd\tr2, r0, stack-[6]\n\tsub.s!\t@CPI0_11[0], r2, r2\n\tjump.gt\t@.BB0_19\n\tadd\tstack-[6], r0, r3\n\tadd\t64, r3, r2\n\tst.1\t64, r2\n\tadd\t1, r0, r2\n\tst.1.inc\tr3, r2, r2\n\tadd\tstack[@calldatasize], r0, r3\n\tptr.add\tstack[@ptr_calldata], r3, r3\n\tadd\tr0, r0, r4\n.BB0_687:\n\tshl.s\t5, r4, r5\n\tadd\tr2, r5, r6\n\tptr.add\tr3, r5, r5\n\tld\tr5, r5\n\tst.1\tr6, r5\n\tadd!\t1, r4, r4\n\tadd\t0, r0, r5\n\tadd.eq\t1, r0, r5\n\tand!\t1, r5, r5\n\tjump.ne\t@.BB0_687\n\tadd\tstack-[6], r0, r3\n\tld.1\tr3, r3\n\tsub.s!\t0, r3, r3\n\tjump.eq\t@.BB0_25\n\tshl.s\t248, r1, r1\n\tld.1\tr2, r3\n\tand\t@CPI0_12[0], r3, r3\n\tor\tr3, r1, r1\n\txor\t@CPI0_4[0], r1, r1\n\tst.1\tr2, r1\n.BB0_635:\n\tadd\tstack[@calldatasize], r0, r3\n\tadd\tstack-[3], r0, r1\n\tadd\tr3, r1, r5\n\tadd\tr11, r0, r1\n\tadd\t484, r1, r1\n\tptr.add\tstack[@ptr_calldata], r0, r2\n\tptr.add\tr2, r1, r4\n\tld\tr4, r4\n\tadd\t@CPI0_4[0], r0, r6\n\tsub!\tr4, r5, r7\n\tadd\t0, r0, r7\n\tadd.ge\tr6, r0, r7\n\tand\t@CPI0_4[0], r5, r5\n\tand\t@CPI0_4[0], r4, r8\n\tsub!\tr8, r5, r9\n\tadd.ge\t0, r0, r6\n\txor\tr8, r5, r5\n\tsub.s!\t@CPI0_4[0], r5, r5\n\tadd\tr7, r0, r5\n\tadd.eq\tr6, r0, r5\n\tsub.s!\t0, r5, r5\n\tjump.ne\t@.BB0_2\n\tadd\tstack-[13], r0, r5\n\tadd\tr4, r5, r4\n\tptr.add\tr2, r4, r5\n\tld\tr5, r5\n\tsub.s!\t@CPI0_5[0], r5, r6\n\tjump.gt\t@.BB0_2\n\tsub.s!\t32, r5, r6\n\tjump.lt\t@.BB0_2\n\tsub\tr3, r5, r5\n\tadd\t32, r4, r3\n\tadd\t@CPI0_4[0], r0, r4\n\tsub!\tr3, r5, r6\n\tadd\t0, r0, r6\n\tadd.gt\tr4, r0, r6\n\tand\t@CPI0_4[0], r5, r5\n\tand\t@CPI0_4[0], r3, r7\n\tsub!\tr7, r5, r8\n\tadd.ge\t0, r0, r4\n\txor\tr7, r5, r5\n\tsub.s!\t@CPI0_4[0], r5, r5\n\tadd.ne\tr6, r0, r4\n\tsub.s!\t0, r4, r4\n\tjump.ne\t@.BB0_2\n\tptr.add\tr2, r3, r2\n\tld\tr2, r2\n\tsub.s!\t128, r2, r3\n\tjump.lt\t@.BB0_648\n\tshr.s\t128, r2, r3\n\tsub.s!\t@CPI0_13[0], r2, r4\n\tadd.le\tr2, r0, r3\n\tsub.s!\t@CPI0_13[0], r2, r4\n\tadd\t0, r0, r4\n\tadd.gt\t16, r0, r4\n\tor\t8, r4, r5\n\tsub.s!\t@CPI0_5[0], r3, r6\n\tadd.gt\tr5, r0, r4\n\tshr.s\t64, r3, r5\n\tsub.s!\t@CPI0_5[0], r3, r6\n\tadd.gt\tr5, r0, r3\n\tor\t4, r4, r5\n\tsub.s!\t@CPI0_0[0], r3, r6\n\tadd.gt\tr5, r0, r4\n\tshr.s\t32, r3, r5\n\tsub.s!\t@CPI0_0[0], r3, r6\n\tadd.gt\tr5, r0, r3\n\tor\t2, r4, r5\n\tsub.s!\t65535, r3, r6\n\tadd.gt\tr5, r0, r4\n\tshr.s\t16, r3, r5\n\tadd.gt\tr5, r0, r3\n\tsub.s!\t255, r3, r3\n\tadd\t0, r0, r3\n\tadd.gt\t1, r0, r3\n\tadd\tr4, r3, r3\n\tadd\t65, r3, r4\n\tadd\tstack-[8], r0, r5\n\tand\tr4, r5, r4\n\tld.1\t64, r5\n\tadd\tr5, r4, r4\n\tadd\tr5, r0, stack-[5]\n\tsub!\tr4, r5, r5\n\tadd\t0, r0, r5\n\tadd.lt\t1, r0, r5\n\tsub.s!\t@CPI0_5[0], r4, r6\n\tjump.gt\t@.BB0_19\n\tand!\t1, r5, r5\n\tjump.ne\t@.BB0_19\n\tst.1\t64, r4\n\tadd\t2, r3, r4\n\tadd\tstack-[5], r0, r5\n\tst.1.inc\tr5, r4, r4\n\tadd\t33, r3, r5\n\tshr.s!\t5, r5, r5\n\tjump.eq\t@.BB0_823\n\tadd\tstack[@calldatasize], r0, r6\n\tptr.add\tstack[@ptr_calldata], r6, r6\n\tadd\tr0, r0, r7\n.BB0_644:\n\tshl.s\t5, r7, r8\n\tadd\tr4, r8, r9\n\tptr.add\tr6, r8, r8\n\tld\tr8, r8\n\tst.1\tr9, r8\n\tadd\t1, r7, r7\n\tsub!\tr7, r5, r8\n\tjump.lt\t@.BB0_644\n.BB0_823:\n\tsub.s!\t0, r0, r5\n\tjump.eq\t@.BB0_646\n.BB0_646:\n\tadd\tstack-[5], r0, r5\n\tld.1\tr5, r5\n\tsub.s!\t0, r5, r5\n\tjump.eq\t@.BB0_25\n\tld.1\tr4, r5\n\tand\t@CPI0_12[0], r5, r5\n\tshl.s\t248, r3, r6\n\tor\tr6, r5, r5\n\tadd\t@CPI0_14[0], r5, r5\n\tst.1\tr4, r5\n\tshl.s\t3, r3, r3\n\tsub\t248, r3, r3\n\tshl\tr2, r3, r2\n\tsub.s!\t255, r3, r3\n\tadd.gt\t0, r0, r2\n\tadd\tstack-[5], r0, r3\n\tadd\t33, r3, r3\n\tst.1\tr3, r2\n\tjump\t@.BB0_653\n.BB0_648:\n\tld.1\t64, r3\n\tadd\tr3, r0, stack-[5]\n\tsub.s!\t@CPI0_11[0], r3, r3\n\tjump.gt\t@.BB0_19\n\tadd\tstack-[5], r0, r4\n\tadd\t64, r4, r3\n\tst.1\t64, r3\n\tadd\t1, r0, r3\n\tst.1.inc\tr4, r3, r3\n\tadd\tstack[@calldatasize], r0, r4\n\tptr.add\tstack[@ptr_calldata], r4, r4\n\tadd\tr0, r0, r5\n.BB0_650:\n\tshl.s\t5, r5, r6\n\tadd\tr3, r6, r7\n\tptr.add\tr4, r6, r6\n\tld\tr6, r6\n\tst.1\tr7, r6\n\tadd!\t1, r5, r5\n\tadd\t0, r0, r6\n\tadd.eq\t1, r0, r6\n\tand!\t1, r6, r6\n\tjump.ne\t@.BB0_650\n\tadd\tstack-[5], r0, r4\n\tld.1\tr4, r4\n\tsub.s!\t0, r4, r4\n\tjump.eq\t@.BB0_25\n\tshl.s\t248, r2, r4\n\tadd\t@CPI0_4[0], r0, r5\n\tsub.s!\t0, r2, r2\n\tadd\tr4, r0, r2\n\tadd.eq\tr5, r0, r2\n\tld.1\tr3, r4\n\tand\t@CPI0_12[0], r4, r4\n\tor\tr4, r2, r2\n\tst.1\tr3, r2\n.BB0_653:\n\tadd\tstack[@calldatasize], r0, r3\n\tadd\tstack-[3], r0, r2\n\tadd\tr3, r2, r5\n\tptr.add\tstack[@ptr_calldata], r0, r2\n\tptr.add\tr2, r1, r4\n\tld\tr4, r4\n\tadd\t@CPI0_4[0], r0, r6\n\tsub!\tr4, r5, r7\n\tadd\t0, r0, r7\n\tadd.ge\tr6, r0, r7\n\tand\t@CPI0_4[0], r5, r5\n\tand\t@CPI0_4[0], r4, r8\n\tsub!\tr8, r5, r9\n\tadd.ge\t0, r0, r6\n\txor\tr8, r5, r5\n\tsub.s!\t@CPI0_4[0], r5, r5\n\tadd\tr7, r0, r5\n\tadd.eq\tr6, r0, r5\n\tsub.s!\t0, r5, r5\n\tjump.ne\t@.BB0_2\n\tadd\tstack-[13], r0, r5\n\tadd\tr4, r5, r4\n\tptr.add\tr2, r4, r5\n\tld\tr5, r5\n\tsub.s!\t@CPI0_5[0], r5, r6\n\tjump.gt\t@.BB0_2\n\tsub.s!\t64, r5, r6\n\tjump.lt\t@.BB0_2\n\tsub\tr3, r5, r3\n\tadd\t32, r4, r5\n\tadd\t@CPI0_4[0], r0, r6\n\tsub!\tr5, r3, r7\n\tadd\t0, r0, r7\n\tadd.gt\tr6, r0, r7\n\tand\t@CPI0_4[0], r3, r3\n\tand\t@CPI0_4[0], r5, r5\n\tsub!\tr5, r3, r8\n\tadd.ge\t0, r0, r6\n\txor\tr5, r3, r3\n\tsub.s!\t@CPI0_4[0], r3, r3\n\tadd\tr7, r0, r3\n\tadd.eq\tr6, r0, r3\n\tsub.s!\t0, r3, r3\n\tjump.ne\t@.BB0_2\n\tadd\t64, r4, r3\n\tptr.add\tr2, r3, r2\n\tld\tr2, r2\n\tsub.s!\t128, r2, r3\n\tjump.lt\t@.BB0_666\n\tshr.s\t128, r2, r3\n\tsub.s!\t@CPI0_13[0], r2, r4\n\tadd.le\tr2, r0, r3\n\tsub.s!\t@CPI0_13[0], r2, r4\n\tadd\t0, r0, r4\n\tadd.gt\t16, r0, r4\n\tor\t8, r4, r5\n\tsub.s!\t@CPI0_5[0], r3, r6\n\tadd.gt\tr5, r0, r4\n\tshr.s\t64, r3, r5\n\tsub.s!\t@CPI0_5[0], r3, r6\n\tadd.gt\tr5, r0, r3\n\tor\t4, r4, r5\n\tsub.s!\t@CPI0_0[0], r3, r6\n\tadd.gt\tr5, r0, r4\n\tshr.s\t32, r3, r5\n\tsub.s!\t@CPI0_0[0], r3, r6\n\tadd.gt\tr5, r0, r3\n\tor\t2, r4, r5\n\tsub.s!\t65535, r3, r6\n\tadd.gt\tr5, r0, r4\n\tshr.s\t16, r3, r5\n\tadd.gt\tr5, r0, r3\n\tsub.s!\t255, r3, r3\n\tadd\t0, r0, r3\n\tadd.gt\t1, r0, r3\n\tadd\tr4, r3, r3\n\tadd\t65, r3, r4\n\tadd\tstack-[8], r0, r5\n\tand\tr4, r5, r4\n\tld.1\t64, r5\n\tadd\tr5, r4, r4\n\tadd\tr5, r0, stack-[4]\n\tsub!\tr4, r5, r5\n\tadd\t0, r0, r5\n\tadd.lt\t1, r0, r5\n\tsub.s!\t@CPI0_5[0], r4, r6\n\tjump.gt\t@.BB0_19\n\tand!\t1, r5, r5\n\tjump.ne\t@.BB0_19\n\tst.1\t64, r4\n\tadd\t2, r3, r4\n\tadd\tstack-[4], r0, r5\n\tst.1.inc\tr5, r4, r4\n\tadd\t33, r3, r5\n\tshr.s!\t5, r5, r5\n\tjump.eq\t@.BB0_824\n\tadd\tstack[@calldatasize], r0, r6\n\tptr.add\tstack[@ptr_calldata], r6, r6\n\tadd\tr0, r0, r7\n.BB0_662:\n\tshl.s\t5, r7, r8\n\tadd\tr4, r8, r9\n\tptr.add\tr6, r8, r8\n\tld\tr8, r8\n\tst.1\tr9, r8\n\tadd\t1, r7, r7\n\tsub!\tr7, r5, r8\n\tjump.lt\t@.BB0_662\n.BB0_824:\n\tsub.s!\t0, r0, r5\n\tjump.eq\t@.BB0_664\n.BB0_664:\n\tadd\tstack-[4], r0, r5\n\tld.1\tr5, r5\n\tsub.s!\t0, r5, r5\n\tjump.eq\t@.BB0_25\n\tld.1\tr4, r5\n\tand\t@CPI0_12[0], r5, r5\n\tshl.s\t248, r3, r6\n\tor\tr6, r5, r5\n\tadd\t@CPI0_14[0], r5, r5\n\tst.1\tr4, r5\n\tshl.s\t3, r3, r3\n\tsub\t248, r3, r3\n\tshl\tr2, r3, r2\n\tsub.s!\t255, r3, r3\n\tadd.gt\t0, r0, r2\n\tadd\tstack-[4], r0, r3\n\tadd\t33, r3, r3\n\tst.1\tr3, r2\n\tjump\t@.BB0_671\n.BB0_666:\n\tld.1\t64, r3\n\tadd\tr3, r0, stack-[4]\n\tsub.s!\t@CPI0_11[0], r3, r3\n\tjump.gt\t@.BB0_19\n\tadd\tstack-[4], r0, r4\n\tadd\t64, r4, r3\n\tst.1\t64, r3\n\tadd\t1, r0, r3\n\tst.1.inc\tr4, r3, r3\n\tadd\tstack[@calldatasize], r0, r4\n\tptr.add\tstack[@ptr_calldata], r4, r4\n\tadd\tr0, r0, r5\n.BB0_668:\n\tshl.s\t5, r5, r6\n\tadd\tr3, r6, r7\n\tptr.add\tr4, r6, r6\n\tld\tr6, r6\n\tst.1\tr7, r6\n\tadd!\t1, r5, r5\n\tadd\t0, r0, r6\n\tadd.eq\t1, r0, r6\n\tand!\t1, r6, r6\n\tjump.ne\t@.BB0_668\n\tadd\tstack-[4], r0, r4\n\tld.1\tr4, r4\n\tsub.s!\t0, r4, r4\n\tjump.eq\t@.BB0_25\n\tshl.s\t248, r2, r4\n\tadd\t@CPI0_4[0], r0, r5\n\tsub.s!\t0, r2, r2\n\tadd\tr4, r0, r2\n\tadd.eq\tr5, r0, r2\n\tld.1\tr3, r4\n\tand\t@CPI0_12[0], r4, r4\n\tor\tr4, r2, r2\n\tst.1\tr3, r2\n.BB0_671:\n\tadd\tstack[@calldatasize], r0, r3\n\tadd\tstack-[3], r0, r2\n\tadd\tr3, r2, r4\n\tptr.add\tstack[@ptr_calldata], r0, r2\n\tptr.add\tr2, r1, r1\n\tld\tr1, r1\n\tadd\t@CPI0_4[0], r0, r5\n\tsub!\tr1, r4, r6\n\tadd\t0, r0, r6\n\tadd.ge\tr5, r0, r6\n\tand\t@CPI0_4[0], r4, r4\n\tand\t@CPI0_4[0], r1, r7\n\tsub!\tr7, r4, r8\n\tadd.ge\t0, r0, r5\n\txor\tr7, r4, r4\n\tsub.s!\t@CPI0_4[0], r4, r4\n\tadd\tr6, r0, r4\n\tadd.eq\tr5, r0, r4\n\tsub.s!\t0, r4, r4\n\tjump.ne\t@.BB0_2\n\tadd\tstack-[13], r0, r4\n\tadd\tr1, r4, r1\n\tptr.add\tr2, r1, r4\n\tld\tr4, r4\n\tsub.s!\t@CPI0_5[0], r4, r5\n\tjump.gt\t@.BB0_2\n\tsub\tr3, r4, r3\n\tadd\t32, r1, r5\n\tadd\t@CPI0_4[0], r0, r6\n\tsub!\tr5, r3, r7\n\tadd\t0, r0, r7\n\tadd.gt\tr6, r0, r7\n\tand\t@CPI0_4[0], r3, r3\n\tand\t@CPI0_4[0], r5, r5\n\tsub!\tr5, r3, r8\n\tadd.ge\t0, r0, r6\n\txor\tr5, r3, r3\n\tsub.s!\t@CPI0_4[0], r3, r3\n\tadd\tr7, r0, r3\n\tadd.eq\tr6, r0, r3\n\tsub.s!\t0, r3, r3\n\tjump.ne\t@.BB0_2\n\tsub.s!\t65, r4, r3\n\tjump.lt\t@.BB0_25\n\tadd\t96, r1, r1\n\tptr.add\tr2, r1, r1\n\tld\tr1, r1\n\tshr.s\t248, r1, r1\n\tadd\tr1, r0, stack-[1]\n\tsub.s\t27, r1, r1\n\tsub.s!\t2, r1, r1\n\tjump.ge\t@.BB0_690\n\tadd\t324, r11, r1\n\tptr.add\tr2, r1, r1\n\tld\tr1, r1\n\tsub.s!\t0, r1, r1\n\tjump.eq\t@.BB0_706\n\tadd\t@CPI0_9[0], r0, r1\n\tst.2\t0, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI0_10[0], r1, r1\n\tadd\t32779, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_2\n\tld\tr1, r2\n\tshl.s\t1, r2, r1\n\tsub.s!\t0, r2, r3\n\tjump.eq\t@.BB0_696\n\tsub.s\t9, r0, r3\n\tsub!\tr1, r3, r3\n\tjump.gt\t@.BB0_340\n\tdiv\tr1, r2, r2, r3\n\tsub.s!\t2, r2, r2\n\tjump.ne\t@.BB0_340\n.BB0_696:\n\tadd\tstack-[1], r0, r3\n\tadd\tr3, r1, r1\n\tadd\t8, r1, r2\n\tsub!\tr2, r3, r1\n\tjump.lt\t@.BB0_340\n\tsub.s!\t128, r2, r1\n\tadd\tr2, r0, stack-[1]\n\tjump.lt\t@.BB0_706\n\tshr.s\t128, r2, r1\n\tsub.s!\t@CPI0_13[0], r2, r3\n\tadd.le\tr2, r0, r1\n\tsub.s!\t@CPI0_13[0], r2, r3\n\tadd\t0, r0, r3\n\tadd.gt\t16, r0, r3\n\tor\t8, r3, r4\n\tsub.s!\t@CPI0_5[0], r1, r5\n\tadd.gt\tr4, r0, r3\n\tshr.s\t64, r1, r4\n\tsub.s!\t@CPI0_5[0], r1, r5\n\tadd.gt\tr4, r0, r1\n\tor\t4, r3, r4\n\tsub.s!\t@CPI0_0[0], r1, r5\n\tadd.gt\tr4, r0, r3\n\tshr.s\t32, r1, r4\n\tsub.s!\t@CPI0_0[0], r1, r5\n\tadd.gt\tr4, r0, r1\n\tor\t2, r3, r4\n\tsub.s!\t65535, r1, r5\n\tadd.gt\tr4, r0, r3\n\tshr.s\t16, r1, r4\n\tadd.gt\tr4, r0, r1\n\tsub.s!\t255, r1, r1\n\tadd\t0, r0, r1\n\tadd.gt\t1, r0, r1\n\tadd\tr3, r1, r3\n\tadd\t65, r3, r1\n\tadd\tstack-[8], r0, r4\n\tand\tr1, r4, r4\n\tld.1\t64, r1\n\tadd\tr1, r4, r4\n\tsub!\tr4, r1, r5\n\tadd\t0, r0, r5\n\tadd.lt\t1, r0, r5\n\tsub.s!\t@CPI0_5[0], r4, r6\n\tjump.gt\t@.BB0_19\n\tand!\t1, r5, r5\n\tjump.ne\t@.BB0_19\n\tst.1\t64, r4\n\tadd\t2, r3, r4\n\tst.1.inc\tr1, r4, r4\n\tadd\t33, r3, r5\n\tshr.s!\t5, r5, r5\n\tjump.eq\t@.BB0_825\n\tadd\tstack[@calldatasize], r0, r6\n\tptr.add\tstack[@ptr_calldata], r6, r6\n\tadd\tr0, r0, r7\n.BB0_702:\n\tshl.s\t5, r7, r8\n\tadd\tr4, r8, r9\n\tptr.add\tr6, r8, r8\n\tld\tr8, r8\n\tst.1\tr9, r8\n\tadd\t1, r7, r7\n\tsub!\tr7, r5, r8\n\tjump.lt\t@.BB0_702\n.BB0_825:\n\tsub.s!\t0, r0, r5\n\tjump.eq\t@.BB0_704\n.BB0_704:\n\tld.1\tr1, r5\n\tsub.s!\t0, r5, r5\n\tjump.eq\t@.BB0_25\n\tld.1\tr4, r5\n\tand\t@CPI0_12[0], r5, r5\n\tshl.s\t248, r3, r6\n\tor\tr6, r5, r5\n\tadd\t@CPI0_14[0], r5, r5\n\tst.1\tr4, r5\n\tshl.s\t3, r3, r3\n\tsub\t248, r3, r3\n\tshl\tr2, r3, r2\n\tsub.s!\t255, r3, r3\n\tadd.gt\t0, r0, r2\n\tadd\t33, r1, r3\n\tst.1\tr3, r2\n\tjump\t@.BB0_711\n.BB0_690:\n\tld.1\t64, r1\n\tadd\t68, r1, r2\n\tadd\t@CPI0_36[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t15, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI0_7[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI0_0[0], r0, r2\n\tsub.s!\t@CPI0_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI0_8[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB0_706:\n\tld.1\t64, r1\n\tsub.s!\t@CPI0_11[0], r1, r2\n\tjump.gt\t@.BB0_19\n\tadd\t64, r1, r2\n\tst.1\t64, r2\n\tadd\t1, r0, r2\n\tst.1.inc\tr1, r2, r2\n\tadd\tstack[@calldatasize], r0, r3\n\tptr.add\tstack[@ptr_calldata], r3, r3\n\tadd\tr0, r0, r4\n.BB0_708:\n\tshl.s\t5, r4, r5\n\tadd\tr2, r5, r6\n\tptr.add\tr3, r5, r5\n\tld\tr5, r5\n\tst.1\tr6, r5\n\tadd!\t1, r4, r4\n\tadd\t0, r0, r5\n\tadd.eq\t1, r0, r5\n\tand!\t1, r5, r5\n\tjump.ne\t@.BB0_708\n\tld.1\tr1, r3\n\tsub.s!\t0, r3, r3\n\tjump.eq\t@.BB0_25\n\tadd\tstack-[1], r0, r5\n\tshl.s\t248, r5, r3\n\tadd\t@CPI0_4[0], r0, r4\n\tsub.s!\t0, r5, r5\n\tadd.eq\tr4, r0, r3\n\tld.1\tr2, r4\n\tand\t@CPI0_12[0], r4, r4\n\tor\tr4, r3, r3\n\tst.1\tr2, r3\n.BB0_711:\n\tadd\tstack[@calldatasize], r0, r2\n\tadd\tstack-[3], r0, r3\n\tadd\tr2, r3, r3\n\tptr.add\tstack[@ptr_calldata], r0, r8\n\tadd\tstack-[2], r0, r4\n\tptr.add\tr8, r4, r4\n\tld\tr4, r9\n\tadd\t@CPI0_4[0], r0, r4\n\tsub!\tr9, r3, r5\n\tadd\t0, r0, r5\n\tadd.ge\tr4, r0, r5\n\tand\t@CPI0_4[0], r3, r3\n\tand\t@CPI0_4[0], r9, r6\n\tsub!\tr6, r3, r7\n\tadd.ge\t0, r0, r4\n\txor\tr6, r3, r3\n\tsub.s!\t@CPI0_4[0], r3, r3\n\tadd\tr5, r0, r3\n\tadd.eq\tr4, r0, r3\n\tsub.s!\t0, r3, r3\n\tjump.ne\t@.BB0_2\n\tadd\tstack-[11], r0, r3\n\tld.1\tr3, r3\n\tadd\tstack-[10], r0, r4\n\tld.1\tr4, r4\n\tadd\tstack-[9], r0, r5\n\tld.1\tr5, r5\n\tadd\tstack-[7], r0, r6\n\tld.1\tr6, r6\n\tadd\tstack-[6], r0, r7\n\tld.1\tr7, r7\n\tadd\tstack-[13], r0, r10\n\tadd\tr9, r10, r9\n\tptr.add\tr8, r9, r8\n\tld\tr8, r8\n\tsub.s!\t@CPI0_5[0], r8, r10\n\tjump.gt\t@.BB0_2\n\tsub\tr2, r8, r2\n\tadd\t32, r9, r9\n\tadd\t@CPI0_4[0], r0, r10\n\tsub!\tr9, r2, r11\n\tadd\t0, r0, r11\n\tadd.gt\tr10, r0, r11\n\tand\t@CPI0_4[0], r2, r2\n\tand\t@CPI0_4[0], r9, r9\n\tsub!\tr9, r2, r12\n\tadd.ge\t0, r0, r10\n\txor\tr9, r2, r2\n\tsub.s!\t@CPI0_4[0], r2, r2\n\tadd\tr11, r0, r2\n\tadd.eq\tr10, r0, r2\n\tsub.s!\t0, r2, r2\n\tjump.ne\t@.BB0_2\n\tadd\tr4, r3, r2\n\tadd\tr2, r5, r2\n\tadd\tr2, r6, r2\n\tadd\tr2, r7, r2\n\tadd\tr2, r8, r2\n\tadd\tstack-[5], r0, r3\n\tld.1\tr3, r3\n\tadd\tr2, r3, r2\n\tadd\tstack-[4], r0, r3\n\tld.1\tr3, r3\n\tadd\tr2, r3, r2\n\tld.1\tr1, r3\n\tadd\tr2, r3, r2\n\tand\t@CPI0_5[0], r2, r2\n\tsub.s!\t56, r2, r3\n\tjump.lt\t@.BB0_720\n\tshr.s\t32, r2, r3\n\tsub.s!\t@CPI0_0[0], r2, r4\n\tadd\tr2, r0, r4\n\tadd.gt\tr3, r0, r4\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd\t0, r0, r3\n\tadd.gt\t4, r0, r3\n\tor\t2, r3, r5\n\tsub.s!\t65535, r4, r6\n\tadd.gt\tr5, r0, r3\n\tshr.s\t16, r4, r5\n\tadd.gt\tr5, r0, r4\n\tsub.s!\t255, r4, r4\n\tadd\t0, r0, r4\n\tadd.gt\t1, r0, r4\n\tld.1\t64, r5\n\tsub.s!\t@CPI0_11[0], r5, r6\n\tjump.gt\t@.BB0_19\n\tor\tr3, r4, r3\n\tadd\t64, r5, r4\n\tst.1\t64, r4\n\tadd\t2, r3, r4\n\tst.1.inc\tr5, r4, r4\n\tadd\tstack[@calldatasize], r0, r6\n\tptr.add\tstack[@ptr_calldata], r6, r6\n\tadd\tr0, r0, r7\n.BB0_717:\n\tshl.s\t5, r7, r8\n\tadd\tr4, r8, r9\n\tptr.add\tr6, r8, r8\n\tld\tr8, r8\n\tst.1\tr9, r8\n\tadd!\t1, r7, r7\n\tadd\t0, r0, r8\n\tadd.eq\t1, r0, r8\n\tand!\t1, r8, r8\n\tjump.ne\t@.BB0_717\n\tld.1\tr5, r6\n\tsub.s!\t0, r6, r6\n\tjump.eq\t@.BB0_25\n\tld.1\tr4, r6\n\tand\t@CPI0_12[0], r6, r6\n\tshl.s\t248, r3, r7\n\tor\tr7, r6, r6\n\tor\t@CPI0_18[0], r6, r6\n\tst.1\tr4, r6\n\tshl.s\t3, r3, r3\n\tsub\t248, r3, r3\n\tshl\tr2, r3, r2\n\tadd\t33, r5, r3\n\tst.1\tr3, r2\n\tjump\t@.BB0_725\n.BB0_720:\n\tld.1\t64, r5\n\tsub.s!\t@CPI0_11[0], r5, r3\n\tjump.gt\t@.BB0_19\n\tadd\t64, r5, r3\n\tst.1\t64, r3\n\tadd\t1, r0, r3\n\tst.1.inc\tr5, r3, r3\n\tadd\tstack[@calldatasize], r0, r4\n\tptr.add\tstack[@ptr_calldata], r4, r4\n\tadd\tr0, r0, r6\n.BB0_722:\n\tshl.s\t5, r6, r7\n\tadd\tr3, r7, r8\n\tptr.add\tr4, r7, r7\n\tld\tr7, r7\n\tst.1\tr8, r7\n\tadd!\t1, r6, r6\n\tadd\t0, r0, r7\n\tadd.eq\t1, r0, r7\n\tand!\t1, r7, r7\n\tjump.ne\t@.BB0_722\n\tld.1\tr5, r4\n\tsub.s!\t0, r4, r4\n\tjump.eq\t@.BB0_25\n\tshl.s\t248, r2, r2\n\tld.1\tr3, r4\n\tand\t@CPI0_12[0], r4, r4\n\tor\tr2, r4, r2\n\tadd\t@CPI0_17[0], r2, r2\n\tst.1\tr3, r2\n.BB0_725:\n\tadd\tstack[@calldatasize], r0, r2\n\tadd\tstack-[3], r0, r3\n\tadd\tr2, r3, r6\n\tptr.add\tstack[@ptr_calldata], r0, r3\n\tadd\tstack-[2], r0, r4\n\tptr.add\tr3, r4, r4\n\tld\tr4, r4\n\tadd\t@CPI0_4[0], r0, r7\n\tsub!\tr4, r6, r8\n\tadd\t0, r0, r8\n\tadd.ge\tr7, r0, r8\n\tand\t@CPI0_4[0], r6, r6\n\tand\t@CPI0_4[0], r4, r9\n\tsub!\tr9, r6, r10\n\tadd.ge\t0, r0, r7\n\txor\tr9, r6, r6\n\tsub.s!\t@CPI0_4[0], r6, r6\n\tadd\tr8, r0, r6\n\tadd.eq\tr7, r0, r6\n\tsub.s!\t0, r6, r6\n\tjump.ne\t@.BB0_2\n\tadd\tstack-[13], r0, r6\n\tadd\tr4, r6, r6\n\tptr.add\tr3, r6, r3\n\tld\tr3, r4\n\tsub.s!\t@CPI0_5[0], r4, r3\n\tjump.gt\t@.BB0_2\n\tsub\tr2, r4, r2\n\tadd\t32, r6, r6\n\tadd\t@CPI0_4[0], r0, r3\n\tsub!\tr6, r2, r7\n\tadd\t0, r0, r7\n\tadd.gt\tr3, r0, r7\n\tand\t@CPI0_4[0], r2, r2\n\tand\t@CPI0_4[0], r6, r8\n\tsub!\tr8, r2, r9\n\tadd.ge\t0, r0, r3\n\txor\tr8, r2, r2\n\tsub.s!\t@CPI0_4[0], r2, r2\n\tadd\tr7, r0, r2\n\tadd.eq\tr3, r0, r2\n\tsub.s!\t0, r2, r2\n\tjump.ne\t@.BB0_2\n\tld.1\t64, r2\n\tadd\t32, r2, r3\n\tld.1\tr5, r7\n\tsub.s!\t0, r7, r8\n\tjump.eq\t@.BB0_731\n\tadd\tr0, r0, r8\n.BB0_730:\n\tadd\tr8, r3, r9\n\tadd\t32, r8, r8\n\tadd\tr8, r5, r10\n\tld.1\tr10, r10\n\tst.1\tr9, r10\n\tsub!\tr8, r7, r9\n\tjump.lt\t@.BB0_730\n.BB0_731:\n\tadd\tr7, r3, r5\n\tst.1\tr5, r0\n\tadd\tstack-[11], r0, r7\n\tld.1\tr7, r7\n\tsub.s!\t0, r7, r8\n\tjump.eq\t@.BB0_734\n\tadd\tr0, r0, r8\n.BB0_733:\n\tadd\tr8, r5, r9\n\tadd\t32, r8, r8\n\tadd\tstack-[11], r0, r10\n\tadd\tr8, r10, r10\n\tld.1\tr10, r10\n\tst.1\tr9, r10\n\tsub!\tr8, r7, r9\n\tjump.lt\t@.BB0_733\n.BB0_734:\n\tadd\tr7, r5, r5\n\tst.1\tr5, r0\n\tadd\tstack-[10], r0, r7\n\tld.1\tr7, r7\n\tsub.s!\t0, r7, r8\n\tjump.eq\t@.BB0_737\n\tadd\tr0, r0, r8\n.BB0_736:\n\tadd\tr8, r5, r9\n\tadd\t32, r8, r8\n\tadd\tstack-[10], r0, r10\n\tadd\tr8, r10, r10\n\tld.1\tr10, r10\n\tst.1\tr9, r10\n\tsub!\tr8, r7, r9\n\tjump.lt\t@.BB0_736\n.BB0_737:\n\tadd\tr7, r5, r5\n\tst.1\tr5, r0\n\tadd\tstack-[9], r0, r7\n\tld.1\tr7, r7\n\tsub.s!\t0, r7, r8\n\tjump.eq\t@.BB0_740\n\tadd\tr0, r0, r8\n.BB0_739:\n\tadd\tr8, r5, r9\n\tadd\t32, r8, r8\n\tadd\tstack-[9], r0, r10\n\tadd\tr8, r10, r10\n\tld.1\tr10, r10\n\tst.1\tr9, r10\n\tsub!\tr8, r7, r9\n\tjump.lt\t@.BB0_739\n.BB0_740:\n\tadd\tr7, r5, r5\n\tst.1\tr5, r0\n\tadd\tstack-[7], r0, r7\n\tld.1\tr7, r7\n\tsub.s!\t0, r7, r8\n\tjump.eq\t@.BB0_743\n\tadd\tr0, r0, r8\n.BB0_742:\n\tadd\tr8, r5, r9\n\tadd\t32, r8, r8\n\tadd\tstack-[7], r0, r10\n\tadd\tr8, r10, r10\n\tld.1\tr10, r10\n\tst.1\tr9, r10\n\tsub!\tr8, r7, r9\n\tjump.lt\t@.BB0_742\n.BB0_743:\n\tadd\tr7, r5, r5\n\tst.1\tr5, r0\n\tadd\tstack-[6], r0, r7\n\tld.1\tr7, r7\n\tsub.s!\t0, r7, r8\n\tjump.eq\t@.BB0_746\n\tadd\tr0, r0, r8\n.BB0_745:\n\tadd\tr8, r5, r9\n\tadd\t32, r8, r8\n\tadd\tstack-[6], r0, r10\n\tadd\tr8, r10, r10\n\tld.1\tr10, r10\n\tst.1\tr9, r10\n\tsub!\tr8, r7, r9\n\tjump.lt\t@.BB0_745\n.BB0_746:\n\tadd\tr7, r5, r5\n\tand\t31, r4, r7\n\tst.1\tr5, r0\n\tptr.add\tstack[@ptr_calldata], r6, r6\n\tshr.s!\t5, r4, r8\n\tjump.eq\t@.BB0_826\n\tadd\tr0, r0, r9\n.BB0_748:\n\tshl.s\t5, r9, r10\n\tadd\tr5, r10, r11\n\tptr.add\tr6, r10, r10\n\tld\tr10, r10\n\tst.1\tr11, r10\n\tadd\t1, r9, r9\n\tsub!\tr9, r8, r10\n\tjump.lt\t@.BB0_748\n.BB0_826:\n\tsub.s!\t0, r7, r9\n\tjump.eq\t@.BB0_750\n\tshl.s\t5, r8, r8\n\tptr.add\tr6, r8, r6\n\tadd\tr5, r8, r8\n\tshl.s\t3, r7, r7\n\tld.1\tr8, r9\n\tshl\tr9, r7, r9\n\tshr\tr9, r7, r9\n\tld\tr6, r6\n\tsub\t256, r7, r7\n\tshr\tr6, r7, r6\n\tshl\tr6, r7, r6\n\tor\tr6, r9, r6\n\tst.1\tr8, r6\n.BB0_750:\n\tadd\tr5, r4, r4\n\tst.1\tr4, r0\n\tld.1\tr1, r5\n\tsub.s!\t0, r5, r6\n\tjump.eq\t@.BB0_753\n\tadd\tr0, r0, r6\n.BB0_752:\n\tadd\tr6, r4, r7\n\tadd\t32, r6, r6\n\tadd\tr6, r1, r8\n\tld.1\tr8, r8\n\tst.1\tr7, r8\n\tsub!\tr6, r5, r7\n\tjump.lt\t@.BB0_752\n.BB0_753:\n\tadd\tr5, r4, r1\n\tst.1\tr1, r0\n\tadd\tstack-[5], r0, r4\n\tld.1\tr4, r4\n\tsub.s!\t0, r4, r5\n\tjump.eq\t@.BB0_756\n\tadd\tr0, r0, r5\n.BB0_755:\n\tadd\tr5, r1, r6\n\tadd\t32, r5, r5\n\tadd\tstack-[5], r0, r7\n\tadd\tr5, r7, r7\n\tld.1\tr7, r7\n\tst.1\tr6, r7\n\tsub!\tr5, r4, r6\n\tjump.lt\t@.BB0_755\n.BB0_756:\n\tadd\tr4, r1, r1\n\tst.1\tr1, r0\n\tadd\tstack-[4], r0, r4\n\tld.1\tr4, r4\n\tsub.s!\t0, r4, r5\n\tjump.eq\t@.BB0_759\n\tadd\tr0, r0, r5\n.BB0_758:\n\tadd\tr5, r1, r6\n\tadd\t32, r5, r5\n\tadd\tstack-[4], r0, r7\n\tadd\tr5, r7, r7\n\tld.1\tr7, r7\n\tst.1\tr6, r7\n\tsub!\tr5, r4, r6\n\tjump.lt\t@.BB0_758\n.BB0_759:\n\tadd\tr4, r1, r1\n\tst.1\tr1, r0\n\tsub\tr1, r2, r1\n\tsub.s\t32, r1, r4\n\tst.1\tr2, r4\n\tadd\t31, r1, r1\n\tadd\tstack-[8], r0, r4\n\tand\tr1, r4, r4\n\tadd\tr4, r2, r1\n\tsub!\tr1, r4, r4\n\tadd\t0, r0, r4\n\tadd.lt\t1, r0, r4\n\tsub.s!\t@CPI0_5[0], r1, r5\n\tjump.gt\t@.BB0_19\n\tand!\t1, r4, r4\n\tjump.ne\t@.BB0_19\n\tst.1\t64, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tsub.s!\t@CPI0_0[0], r3, r4\n\tadd.ge\tr1, r0, r3\n\tshl.s\t64, r3, r3\n\tld.1\tr2, r2\n\tsub.s!\t@CPI0_0[0], r2, r4\n\tadd.ge\tr1, r0, r2\n\tshl.s\t96, r2, r2\n\tor\tr2, r3, r2\n\tcontext.gas_left\tr3\n\tsub.s!\t@CPI0_0[0], r3, r4\n\tadd.lt\tr3, r0, r1\n\tshl.s\t192, r1, r1\n\tor\tr1, r2, r1\n\tor\t@CPI0_20[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_2\n\tld\tr1, r1\n\tjump\t@.BB0_559\n.func_end0:\n\nabi_encode_stringliteral_80e5:\n.func_begin1:\n\tadd\t64, r1, r2\n\tadd\t@CPI1_0[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t32, r1, r2\n\tadd\t19, r0, r3\n\tst.1\tr2, r3\n\tadd\t32, r0, r2\n\tst.1\tr1, r2\n\tadd\t96, r1, r1\n\tret\n.func_end1:\n\nfun_encodeEIP2930TransactionHash:\n.func_begin2:\n\tnop\tstack+=[6]\n\tadd\tr1, r0, stack-[4]\n\tadd\t@CPI2_0[0], r0, r1\n\tst.2\t0, r1\n\tadd\t@CPI2_1[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI2_1[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI2_2[0], r1, r1\n\tadd\t32779, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB2_1\n\tld\tr1, r2\n\tsub.s!\t128, r2, r1\n\tjump.lt\t@.BB2_13\n\tshr.s\t128, r2, r1\n\tsub.s!\t@CPI2_6[0], r2, r3\n\tadd.le\tr2, r0, r1\n\tsub.s!\t@CPI2_6[0], r2, r3\n\tadd\t0, r0, r3\n\tadd.gt\t16, r0, r3\n\tor\t8, r3, r4\n\tsub.s!\t@CPI2_7[0], r1, r5\n\tadd.gt\tr4, r0, r3\n\tshr.s\t64, r1, r4\n\tsub.s!\t@CPI2_7[0], r1, r5\n\tadd.gt\tr4, r0, r1\n\tor\t4, r3, r4\n\tsub.s!\t@CPI2_1[0], r1, r5\n\tadd.gt\tr4, r0, r3\n\tshr.s\t32, r1, r4\n\tsub.s!\t@CPI2_1[0], r1, r5\n\tadd.gt\tr4, r0, r1\n\tor\t2, r3, r4\n\tsub.s!\t65535, r1, r5\n\tadd.gt\tr4, r0, r3\n\tshr.s\t16, r1, r4\n\tadd.gt\tr4, r0, r1\n\tsub.s!\t255, r1, r1\n\tadd\t0, r0, r1\n\tadd.gt\t1, r0, r1\n\tadd\tr3, r1, r3\n\tsub.s\t32, r0, r1\n\tadd\t65, r3, r4\n\tand\tr4, r1, r4\n\tld.1\t64, r1\n\tadd\tr1, r4, r4\n\tsub!\tr4, r1, r5\n\tadd\t0, r0, r5\n\tadd.lt\t1, r0, r5\n\tsub.s!\t@CPI2_7[0], r4, r6\n\tjump.gt\t@.BB2_5\n\tand!\t1, r5, r5\n\tjump.ne\t@.BB2_5\n\tst.1\t64, r4\n\tadd\t2, r3, r4\n\tst.1.inc\tr1, r4, r4\n\tadd\t33, r3, r5\n\tshr.s!\t5, r5, r5\n\tjump.eq\t@.BB2_217\n\tadd\tstack[@calldatasize], r0, r6\n\tptr.add\tstack[@ptr_calldata], r6, r6\n\tadd\tr0, r0, r7\n.BB2_8:\n\tshl.s\t5, r7, r8\n\tadd\tr4, r8, r9\n\tptr.add\tr6, r8, r8\n\tld\tr8, r8\n\tst.1\tr9, r8\n\tadd\t1, r7, r7\n\tsub!\tr7, r5, r8\n\tjump.lt\t@.BB2_8\n.BB2_217:\n\tsub.s!\t0, r0, r5\n\tjump.eq\t@.BB2_10\n.BB2_10:\n\tld.1\tr1, r5\n\tsub.s!\t0, r5, r5\n\tjump.eq\t@.BB2_11\n\tld.1\tr4, r5\n\tand\t@CPI2_5[0], r5, r5\n\tshl.s\t248, r3, r6\n\tor\tr6, r5, r5\n\tadd\t@CPI2_8[0], r5, r5\n\tst.1\tr4, r5\n\tshl.s\t3, r3, r3\n\tsub\t248, r3, r3\n\tshl\tr2, r3, r2\n\tsub.s!\t255, r3, r3\n\tadd.gt\t0, r0, r2\n\tadd\t33, r1, r3\n\tst.1\tr3, r2\n\tjump\t@.BB2_18\n.BB2_13:\n\tld.1\t64, r1\n\tsub.s!\t@CPI2_3[0], r1, r3\n\tjump.gt\t@.BB2_5\n\tadd\t64, r1, r3\n\tst.1\t64, r3\n\tadd\t1, r0, r3\n\tst.1.inc\tr1, r3, r3\n\tadd\tstack[@calldatasize], r0, r4\n\tptr.add\tstack[@ptr_calldata], r4, r4\n\tadd\tr0, r0, r5\n.BB2_15:\n\tshl.s\t5, r5, r6\n\tadd\tr3, r6, r7\n\tptr.add\tr4, r6, r6\n\tld\tr6, r6\n\tst.1\tr7, r6\n\tadd!\t1, r5, r5\n\tadd\t0, r0, r6\n\tadd.eq\t1, r0, r6\n\tand!\t1, r6, r6\n\tjump.ne\t@.BB2_15\n\tld.1\tr1, r4\n\tsub.s!\t0, r4, r4\n\tjump.eq\t@.BB2_11\n\tshl.s\t248, r2, r4\n\tadd\t@CPI2_4[0], r0, r5\n\tsub.s!\t0, r2, r2\n\tadd\tr4, r0, r2\n\tadd.eq\tr5, r0, r2\n\tld.1\tr3, r4\n\tand\t@CPI2_5[0], r4, r4\n\tor\tr4, r2, r2\n\tst.1\tr3, r2\n.BB2_18:\n\tadd\tstack-[4], r0, r2\n\tadd\t256, r2, r2\n\tptr.add\tstack[@ptr_calldata], r2, r2\n\tld\tr2, r2\n\tsub.s!\t128, r2, r3\n\tjump.lt\t@.BB2_27\n\tshr.s\t128, r2, r3\n\tsub.s!\t@CPI2_6[0], r2, r4\n\tadd.le\tr2, r0, r3\n\tsub.s!\t@CPI2_6[0], r2, r4\n\tadd\t0, r0, r4\n\tadd.gt\t16, r0, r4\n\tor\t8, r4, r5\n\tsub.s!\t@CPI2_7[0], r3, r6\n\tadd.gt\tr5, r0, r4\n\tshr.s\t64, r3, r5\n\tsub.s!\t@CPI2_7[0], r3, r6\n\tadd.gt\tr5, r0, r3\n\tor\t4, r4, r5\n\tsub.s!\t@CPI2_1[0], r3, r6\n\tadd.gt\tr5, r0, r4\n\tshr.s\t32, r3, r5\n\tsub.s!\t@CPI2_1[0], r3, r6\n\tadd.gt\tr5, r0, r3\n\tor\t2, r4, r5\n\tsub.s!\t65535, r3, r6\n\tadd.gt\tr5, r0, r4\n\tshr.s\t16, r3, r5\n\tadd.gt\tr5, r0, r3\n\tsub.s!\t255, r3, r3\n\tadd\t0, r0, r3\n\tadd.gt\t1, r0, r3\n\tadd\tr4, r3, r4\n\tsub.s\t32, r0, r3\n\tadd\t65, r4, r5\n\tand\tr5, r3, r5\n\tld.1\t64, r3\n\tadd\tr3, r5, r5\n\tsub!\tr5, r3, r6\n\tadd\t0, r0, r6\n\tadd.lt\t1, r0, r6\n\tsub.s!\t@CPI2_7[0], r5, r7\n\tjump.gt\t@.BB2_5\n\tand!\t1, r6, r6\n\tjump.ne\t@.BB2_5\n\tst.1\t64, r5\n\tadd\t2, r4, r5\n\tst.1.inc\tr3, r5, r5\n\tadd\t33, r4, r6\n\tshr.s!\t5, r6, r6\n\tjump.eq\t@.BB2_216\n\tadd\tstack[@calldatasize], r0, r7\n\tptr.add\tstack[@ptr_calldata], r7, r7\n\tadd\tr0, r0, r8\n.BB2_23:\n\tshl.s\t5, r8, r9\n\tadd\tr5, r9, r10\n\tptr.add\tr7, r9, r9\n\tld\tr9, r9\n\tst.1\tr10, r9\n\tadd\t1, r8, r8\n\tsub!\tr8, r6, r9\n\tjump.lt\t@.BB2_23\n.BB2_216:\n\tsub.s!\t0, r0, r6\n\tjump.eq\t@.BB2_25\n.BB2_25:\n\tld.1\tr3, r6\n\tsub.s!\t0, r6, r6\n\tjump.eq\t@.BB2_11\n\tld.1\tr5, r6\n\tand\t@CPI2_5[0], r6, r6\n\tshl.s\t248, r4, r7\n\tor\tr7, r6, r6\n\tadd\t@CPI2_8[0], r6, r6\n\tst.1\tr5, r6\n\tshl.s\t3, r4, r4\n\tsub\t248, r4, r4\n\tshl\tr2, r4, r2\n\tsub.s!\t255, r4, r4\n\tadd.gt\t0, r0, r2\n\tadd\t33, r3, r4\n\tst.1\tr4, r2\n\tjump\t@.BB2_32\n.BB2_27:\n\tld.1\t64, r3\n\tsub.s!\t@CPI2_3[0], r3, r4\n\tjump.gt\t@.BB2_5\n\tadd\t64, r3, r4\n\tst.1\t64, r4\n\tadd\t1, r0, r4\n\tst.1.inc\tr3, r4, r4\n\tadd\tstack[@calldatasize], r0, r5\n\tptr.add\tstack[@ptr_calldata], r5, r5\n\tadd\tr0, r0, r6\n.BB2_29:\n\tshl.s\t5, r6, r7\n\tadd\tr4, r7, r8\n\tptr.add\tr5, r7, r7\n\tld\tr7, r7\n\tst.1\tr8, r7\n\tadd!\t1, r6, r6\n\tadd\t0, r0, r7\n\tadd.eq\t1, r0, r7\n\tand!\t1, r7, r7\n\tjump.ne\t@.BB2_29\n\tld.1\tr3, r5\n\tsub.s!\t0, r5, r5\n\tjump.eq\t@.BB2_11\n\tshl.s\t248, r2, r5\n\tadd\t@CPI2_4[0], r0, r6\n\tsub.s!\t0, r2, r2\n\tadd\tr5, r0, r2\n\tadd.eq\tr6, r0, r2\n\tld.1\tr4, r5\n\tand\t@CPI2_5[0], r5, r5\n\tor\tr5, r2, r2\n\tst.1\tr4, r2\n.BB2_32:\n\tadd\tstack-[4], r0, r2\n\tadd\t160, r2, r2\n\tptr.add\tstack[@ptr_calldata], r2, r2\n\tld\tr2, r2\n\tsub.s!\t128, r2, r4\n\tjump.lt\t@.BB2_41\n\tshr.s\t128, r2, r4\n\tsub.s!\t@CPI2_6[0], r2, r5\n\tadd.le\tr2, r0, r4\n\tsub.s!\t@CPI2_6[0], r2, r5\n\tadd\t0, r0, r5\n\tadd.gt\t16, r0, r5\n\tor\t8, r5, r6\n\tsub.s!\t@CPI2_7[0], r4, r7\n\tadd.gt\tr6, r0, r5\n\tshr.s\t64, r4, r6\n\tsub.s!\t@CPI2_7[0], r4, r7\n\tadd.gt\tr6, r0, r4\n\tor\t4, r5, r6\n\tsub.s!\t@CPI2_1[0], r4, r7\n\tadd.gt\tr6, r0, r5\n\tshr.s\t32, r4, r6\n\tsub.s!\t@CPI2_1[0], r4, r7\n\tadd.gt\tr6, r0, r4\n\tor\t2, r5, r6\n\tsub.s!\t65535, r4, r7\n\tadd.gt\tr6, r0, r5\n\tshr.s\t16, r4, r6\n\tadd.gt\tr6, r0, r4\n\tsub.s!\t255, r4, r4\n\tadd\t0, r0, r4\n\tadd.gt\t1, r0, r4\n\tadd\tr5, r4, r5\n\tsub.s\t32, r0, r4\n\tadd\t65, r5, r6\n\tand\tr6, r4, r6\n\tld.1\t64, r4\n\tadd\tr4, r6, r6\n\tsub!\tr6, r4, r7\n\tadd\t0, r0, r7\n\tadd.lt\t1, r0, r7\n\tsub.s!\t@CPI2_7[0], r6, r8\n\tjump.gt\t@.BB2_5\n\tand!\t1, r7, r7\n\tjump.ne\t@.BB2_5\n\tst.1\t64, r6\n\tadd\t2, r5, r6\n\tst.1.inc\tr4, r6, r6\n\tadd\t33, r5, r7\n\tshr.s!\t5, r7, r7\n\tjump.eq\t@.BB2_215\n\tadd\tstack[@calldatasize], r0, r8\n\tptr.add\tstack[@ptr_calldata], r8, r8\n\tadd\tr0, r0, r9\n.BB2_37:\n\tshl.s\t5, r9, r10\n\tadd\tr6, r10, r11\n\tptr.add\tr8, r10, r10\n\tld\tr10, r10\n\tst.1\tr11, r10\n\tadd\t1, r9, r9\n\tsub!\tr9, r7, r10\n\tjump.lt\t@.BB2_37\n.BB2_215:\n\tsub.s!\t0, r0, r7\n\tjump.eq\t@.BB2_39\n.BB2_39:\n\tld.1\tr4, r7\n\tsub.s!\t0, r7, r7\n\tjump.eq\t@.BB2_11\n\tld.1\tr6, r7\n\tand\t@CPI2_5[0], r7, r7\n\tshl.s\t248, r5, r8\n\tor\tr8, r7, r7\n\tadd\t@CPI2_8[0], r7, r7\n\tst.1\tr6, r7\n\tshl.s\t3, r5, r5\n\tsub\t248, r5, r5\n\tshl\tr2, r5, r2\n\tsub.s!\t255, r5, r5\n\tadd.gt\t0, r0, r2\n\tadd\t33, r4, r5\n\tst.1\tr5, r2\n\tjump\t@.BB2_46\n.BB2_41:\n\tld.1\t64, r4\n\tsub.s!\t@CPI2_3[0], r4, r5\n\tjump.gt\t@.BB2_5\n\tadd\t64, r4, r5\n\tst.1\t64, r5\n\tadd\t1, r0, r5\n\tst.1.inc\tr4, r5, r5\n\tadd\tstack[@calldatasize], r0, r6\n\tptr.add\tstack[@ptr_calldata], r6, r6\n\tadd\tr0, r0, r7\n.BB2_43:\n\tshl.s\t5, r7, r8\n\tadd\tr5, r8, r9\n\tptr.add\tr6, r8, r8\n\tld\tr8, r8\n\tst.1\tr9, r8\n\tadd!\t1, r7, r7\n\tadd\t0, r0, r8\n\tadd.eq\t1, r0, r8\n\tand!\t1, r8, r8\n\tjump.ne\t@.BB2_43\n\tld.1\tr4, r6\n\tsub.s!\t0, r6, r6\n\tjump.eq\t@.BB2_11\n\tshl.s\t248, r2, r6\n\tadd\t@CPI2_4[0], r0, r7\n\tsub.s!\t0, r2, r2\n\tadd\tr6, r0, r2\n\tadd.eq\tr7, r0, r2\n\tld.1\tr5, r6\n\tand\t@CPI2_5[0], r6, r6\n\tor\tr6, r2, r2\n\tst.1\tr5, r2\n.BB2_46:\n\tadd\tstack-[4], r0, r2\n\tadd\t96, r2, r2\n\tptr.add\tstack[@ptr_calldata], r2, r2\n\tld\tr2, r2\n\tsub.s!\t128, r2, r5\n\tjump.lt\t@.BB2_55\n\tshr.s\t128, r2, r5\n\tsub.s!\t@CPI2_6[0], r2, r6\n\tadd.le\tr2, r0, r5\n\tsub.s!\t@CPI2_6[0], r2, r6\n\tadd\t0, r0, r6\n\tadd.gt\t16, r0, r6\n\tor\t8, r6, r7\n\tsub.s!\t@CPI2_7[0], r5, r8\n\tadd.gt\tr7, r0, r6\n\tshr.s\t64, r5, r7\n\tsub.s!\t@CPI2_7[0], r5, r8\n\tadd.gt\tr7, r0, r5\n\tor\t4, r6, r7\n\tsub.s!\t@CPI2_1[0], r5, r8\n\tadd.gt\tr7, r0, r6\n\tshr.s\t32, r5, r7\n\tsub.s!\t@CPI2_1[0], r5, r8\n\tadd.gt\tr7, r0, r5\n\tor\t2, r6, r7\n\tsub.s!\t65535, r5, r8\n\tadd.gt\tr7, r0, r6\n\tshr.s\t16, r5, r7\n\tadd.gt\tr7, r0, r5\n\tsub.s!\t255, r5, r5\n\tadd\t0, r0, r5\n\tadd.gt\t1, r0, r5\n\tadd\tr6, r5, r6\n\tsub.s\t32, r0, r5\n\tadd\t65, r6, r7\n\tand\tr7, r5, r7\n\tld.1\t64, r5\n\tadd\tr5, r7, r7\n\tsub!\tr7, r5, r8\n\tadd\t0, r0, r8\n\tadd.lt\t1, r0, r8\n\tsub.s!\t@CPI2_7[0], r7, r9\n\tjump.gt\t@.BB2_5\n\tand!\t1, r8, r8\n\tjump.ne\t@.BB2_5\n\tst.1\t64, r7\n\tadd\t2, r6, r7\n\tst.1.inc\tr5, r7, r7\n\tadd\t33, r6, r8\n\tshr.s!\t5, r8, r8\n\tjump.eq\t@.BB2_214\n\tadd\tstack[@calldatasize], r0, r9\n\tptr.add\tstack[@ptr_calldata], r9, r9\n\tadd\tr0, r0, r10\n.BB2_51:\n\tshl.s\t5, r10, r11\n\tadd\tr7, r11, r12\n\tptr.add\tr9, r11, r11\n\tld\tr11, r11\n\tst.1\tr12, r11\n\tadd\t1, r10, r10\n\tsub!\tr10, r8, r11\n\tjump.lt\t@.BB2_51\n.BB2_214:\n\tsub.s!\t0, r0, r8\n\tjump.eq\t@.BB2_53\n.BB2_53:\n\tld.1\tr5, r8\n\tsub.s!\t0, r8, r8\n\tjump.eq\t@.BB2_11\n\tld.1\tr7, r8\n\tand\t@CPI2_5[0], r8, r8\n\tshl.s\t248, r6, r9\n\tor\tr9, r8, r8\n\tadd\t@CPI2_8[0], r8, r8\n\tst.1\tr7, r8\n\tshl.s\t3, r6, r6\n\tsub\t248, r6, r6\n\tshl\tr2, r6, r2\n\tsub.s!\t255, r6, r6\n\tadd.gt\t0, r0, r2\n\tadd\t33, r5, r6\n\tst.1\tr6, r2\n\tjump\t@.BB2_60\n.BB2_55:\n\tld.1\t64, r5\n\tsub.s!\t@CPI2_3[0], r5, r6\n\tjump.gt\t@.BB2_5\n\tadd\t64, r5, r6\n\tst.1\t64, r6\n\tadd\t1, r0, r6\n\tst.1.inc\tr5, r6, r6\n\tadd\tstack[@calldatasize], r0, r7\n\tptr.add\tstack[@ptr_calldata], r7, r7\n\tadd\tr0, r0, r8\n.BB2_57:\n\tshl.s\t5, r8, r9\n\tadd\tr6, r9, r10\n\tptr.add\tr7, r9, r9\n\tld\tr9, r9\n\tst.1\tr10, r9\n\tadd!\t1, r8, r8\n\tadd\t0, r0, r9\n\tadd.eq\t1, r0, r9\n\tand!\t1, r9, r9\n\tjump.ne\t@.BB2_57\n\tld.1\tr5, r7\n\tsub.s!\t0, r7, r7\n\tjump.eq\t@.BB2_11\n\tshl.s\t248, r2, r7\n\tadd\t@CPI2_4[0], r0, r8\n\tsub.s!\t0, r2, r2\n\tadd\tr7, r0, r2\n\tadd.eq\tr8, r0, r2\n\tld.1\tr6, r7\n\tand\t@CPI2_5[0], r7, r7\n\tor\tr7, r2, r2\n\tst.1\tr6, r2\n.BB2_60:\n\tld.1\t64, r6\n\tsub.s!\t@CPI2_3[0], r6, r2\n\tjump.gt\t@.BB2_5\n\tadd\tstack-[4], r0, r9\n\tadd\t64, r9, r2\n\tptr.add\tstack[@ptr_calldata], r2, r2\n\tld\tr2, r2\n\tadd\t64, r6, r7\n\tst.1\t64, r7\n\tadd\t32, r6, r7\n\tadd\t@CPI2_9[0], r0, r8\n\tst.1\tr7, r8\n\tadd\t21, r0, r7\n\tst.1\tr6, r7\n\tadd\t33, r6, r7\n\tshl.s\t96, r2, r2\n\tst.1\tr7, r2\n\tadd\t288, r9, r2\n\tptr.add\tstack[@ptr_calldata], r2, r2\n\tld\tr2, r2\n\tsub.s!\t128, r2, r7\n\tjump.lt\t@.BB2_70\n\tshr.s\t128, r2, r7\n\tsub.s!\t@CPI2_6[0], r2, r8\n\tadd.le\tr2, r0, r7\n\tsub.s!\t@CPI2_6[0], r2, r8\n\tadd\t0, r0, r8\n\tadd.gt\t16, r0, r8\n\tor\t8, r8, r9\n\tsub.s!\t@CPI2_7[0], r7, r10\n\tadd.gt\tr9, r0, r8\n\tshr.s\t64, r7, r9\n\tsub.s!\t@CPI2_7[0], r7, r10\n\tadd.gt\tr9, r0, r7\n\tor\t4, r8, r9\n\tsub.s!\t@CPI2_1[0], r7, r10\n\tadd.gt\tr9, r0, r8\n\tshr.s\t32, r7, r9\n\tsub.s!\t@CPI2_1[0], r7, r10\n\tadd.gt\tr9, r0, r7\n\tor\t2, r8, r9\n\tsub.s!\t65535, r7, r10\n\tadd.gt\tr9, r0, r8\n\tshr.s\t16, r7, r9\n\tadd.gt\tr9, r0, r7\n\tsub.s!\t255, r7, r7\n\tadd\t0, r0, r7\n\tadd.gt\t1, r0, r7\n\tadd\tr8, r7, r8\n\tsub.s\t32, r0, r7\n\tadd\t65, r8, r9\n\tand\tr9, r7, r9\n\tld.1\t64, r7\n\tadd\tr7, r9, r9\n\tsub!\tr9, r7, r10\n\tadd\t0, r0, r10\n\tadd.lt\t1, r0, r10\n\tsub.s!\t@CPI2_7[0], r9, r11\n\tjump.gt\t@.BB2_5\n\tand!\t1, r10, r10\n\tjump.ne\t@.BB2_5\n\tst.1\t64, r9\n\tadd\t2, r8, r9\n\tst.1.inc\tr7, r9, r9\n\tadd\t33, r8, r10\n\tshr.s!\t5, r10, r10\n\tjump.eq\t@.BB2_213\n\tadd\tstack[@calldatasize], r0, r11\n\tptr.add\tstack[@ptr_calldata], r11, r11\n\tadd\tr0, r0, r12\n.BB2_66:\n\tshl.s\t5, r12, r13\n\tadd\tr9, r13, r14\n\tptr.add\tr11, r13, r13\n\tld\tr13, r13\n\tst.1\tr14, r13\n\tadd\t1, r12, r12\n\tsub!\tr12, r10, r13\n\tjump.lt\t@.BB2_66\n.BB2_213:\n\tsub.s!\t0, r0, r10\n\tjump.eq\t@.BB2_68\n.BB2_68:\n\tld.1\tr7, r10\n\tsub.s!\t0, r10, r10\n\tjump.eq\t@.BB2_11\n\tld.1\tr9, r10\n\tand\t@CPI2_5[0], r10, r10\n\tshl.s\t248, r8, r11\n\tor\tr11, r10, r10\n\tadd\t@CPI2_8[0], r10, r10\n\tst.1\tr9, r10\n\tshl.s\t3, r8, r8\n\tsub\t248, r8, r8\n\tshl\tr2, r8, r2\n\tsub.s!\t255, r8, r8\n\tadd.gt\t0, r0, r2\n\tadd\t33, r7, r8\n\tst.1\tr8, r2\n\tjump\t@.BB2_75\n.BB2_70:\n\tld.1\t64, r7\n\tsub.s!\t@CPI2_3[0], r7, r8\n\tjump.gt\t@.BB2_5\n\tadd\t64, r7, r8\n\tst.1\t64, r8\n\tadd\t1, r0, r8\n\tst.1.inc\tr7, r8, r8\n\tadd\tstack[@calldatasize], r0, r9\n\tptr.add\tstack[@ptr_calldata], r9, r9\n\tadd\tr0, r0, r10\n.BB2_72:\n\tshl.s\t5, r10, r11\n\tadd\tr8, r11, r12\n\tptr.add\tr9, r11, r11\n\tld\tr11, r11\n\tst.1\tr12, r11\n\tadd!\t1, r10, r10\n\tadd\t0, r0, r11\n\tadd.eq\t1, r0, r11\n\tand!\t1, r11, r11\n\tjump.ne\t@.BB2_72\n\tld.1\tr7, r9\n\tsub.s!\t0, r9, r9\n\tjump.eq\t@.BB2_11\n\tshl.s\t248, r2, r9\n\tadd\t@CPI2_4[0], r0, r10\n\tsub.s!\t0, r2, r2\n\tadd\tr9, r0, r2\n\tadd.eq\tr10, r0, r2\n\tld.1\tr8, r9\n\tand\t@CPI2_5[0], r9, r9\n\tor\tr9, r2, r2\n\tst.1\tr8, r2\n.BB2_75:\n\tld.1\t64, r2\n\tadd\t32, r2, r8\n\tld.1\tr1, r9\n\tsub.s!\t0, r9, r10\n\tjump.eq\t@.BB2_78\n\tadd\tr0, r0, r10\n.BB2_77:\n\tadd\tr10, r8, r11\n\tadd\t32, r10, r10\n\tadd\tr10, r1, r12\n\tld.1\tr12, r12\n\tst.1\tr11, r12\n\tsub!\tr10, r9, r11\n\tjump.lt\t@.BB2_77\n.BB2_78:\n\tadd\tr9, r8, r1\n\tst.1\tr1, r0\n\tld.1\tr3, r8\n\tsub.s!\t0, r8, r9\n\tjump.eq\t@.BB2_81\n\tadd\tr0, r0, r9\n.BB2_80:\n\tadd\tr9, r1, r10\n\tadd\t32, r9, r9\n\tadd\tr9, r3, r11\n\tld.1\tr11, r11\n\tst.1\tr10, r11\n\tsub!\tr9, r8, r10\n\tjump.lt\t@.BB2_80\n.BB2_81:\n\tadd\tr8, r1, r1\n\tst.1\tr1, r0\n\tld.1\tr4, r3\n\tsub.s!\t0, r3, r8\n\tjump.eq\t@.BB2_84\n\tadd\tr0, r0, r8\n.BB2_83:\n\tadd\tr8, r1, r9\n\tadd\t32, r8, r8\n\tadd\tr8, r4, r10\n\tld.1\tr10, r10\n\tst.1\tr9, r10\n\tsub!\tr8, r3, r9\n\tjump.lt\t@.BB2_83\n.BB2_84:\n\tadd\tr3, r1, r1\n\tst.1\tr1, r0\n\tld.1\tr5, r3\n\tsub.s!\t0, r3, r4\n\tjump.eq\t@.BB2_87\n\tadd\tr0, r0, r4\n.BB2_86:\n\tadd\tr4, r1, r8\n\tadd\t32, r4, r4\n\tadd\tr4, r5, r9\n\tld.1\tr9, r9\n\tst.1\tr8, r9\n\tsub!\tr4, r3, r8\n\tjump.lt\t@.BB2_86\n.BB2_87:\n\tadd\tr3, r1, r1\n\tst.1\tr1, r0\n\tld.1\tr6, r3\n\tsub.s!\t0, r3, r4\n\tjump.eq\t@.BB2_90\n\tadd\tr0, r0, r4\n.BB2_89:\n\tadd\tr4, r1, r5\n\tadd\t32, r4, r4\n\tadd\tr4, r6, r8\n\tld.1\tr8, r8\n\tst.1\tr5, r8\n\tsub!\tr4, r3, r5\n\tjump.lt\t@.BB2_89\n.BB2_90:\n\tadd\tr3, r1, r1\n\tst.1\tr1, r0\n\tld.1\tr7, r3\n\tsub.s!\t0, r3, r4\n\tjump.eq\t@.BB2_93\n\tadd\tr0, r0, r4\n.BB2_92:\n\tadd\tr4, r1, r5\n\tadd\t32, r4, r4\n\tadd\tr4, r7, r6\n\tld.1\tr6, r6\n\tst.1\tr5, r6\n\tsub!\tr4, r3, r5\n\tjump.lt\t@.BB2_92\n.BB2_93:\n\tadd\tr3, r1, r1\n\tst.1\tr1, r0\n\tsub\tr1, r2, r1\n\tsub.s\t32, r1, r3\n\tst.1\tr2, r3\n\tadd\t31, r1, r1\n\tsub.s\t32, r0, r3\n\tadd\tr3, r0, stack-[2]\n\tand\tr1, r3, r1\n\tadd\tr1, r2, r5\n\tsub!\tr5, r1, r1\n\tadd\t0, r0, r1\n\tadd.lt\t1, r0, r1\n\tsub.s!\t@CPI2_7[0], r5, r3\n\tjump.gt\t@.BB2_5\n\tand!\t1, r1, r1\n\tjump.ne\t@.BB2_5\n\tst.1\t64, r5\n\tsub.s\t31, r0, r1\n\tadd\tstack-[4], r0, r3\n\tsub\tr1, r3, r4\n\tadd\t448, r3, r1\n\tptr.add\tstack[@ptr_calldata], r0, r7\n\tadd\tr1, r0, stack-[1]\n\tptr.add\tr7, r1, r1\n\tld\tr1, r6\n\tadd\tstack[@calldatasize], r0, r8\n\tadd\tr8, r4, r1\n\tadd\t@CPI2_4[0], r0, r9\n\tsub!\tr6, r1, r10\n\tadd\t0, r0, r10\n\tadd.ge\tr9, r0, r10\n\tand\t@CPI2_4[0], r1, r1\n\tand\t@CPI2_4[0], r6, r11\n\tsub!\tr11, r1, r12\n\tadd.ge\t0, r0, r9\n\txor\tr11, r1, r1\n\tsub.s!\t@CPI2_4[0], r1, r1\n\tadd\tr10, r0, r1\n\tadd.eq\tr9, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB2_1\n\tadd\tstack-[4], r0, r1\n\tadd\tr6, r1, r1\n\tptr.add\tr7, r1, r6\n\tld\tr6, r6\n\tsub.s!\t@CPI2_7[0], r6, r9\n\tjump.gt\t@.BB2_1\n\tsub\tr8, r6, r9\n\tadd\t32, r1, r8\n\tadd\t@CPI2_4[0], r0, r1\n\tsub!\tr8, r9, r10\n\tadd\t0, r0, r10\n\tadd.gt\tr1, r0, r10\n\tand\t@CPI2_4[0], r9, r9\n\tand\t@CPI2_4[0], r8, r11\n\tsub!\tr11, r9, r12\n\tadd.ge\t0, r0, r1\n\txor\tr11, r9, r9\n\tsub.s!\t@CPI2_4[0], r9, r9\n\tadd.ne\tr10, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB2_1\n\tsub.s!\t1, r6, r1\n\tjump.ne\t@.BB2_147\n\tptr.add\tr7, r8, r1\n\tld\tr1, r1\n\tsub.s\t1, r0, r3\n\tadd\t@CPI2_4[0], r0, r6\n\tsub!\tr1, r3, r3\n\tadd\t0, r0, r3\n\tadd.gt\tr6, r0, r3\n\tand\t@CPI2_4[0], r1, r1\n\tsub.s!\t@CPI2_4[0], r1, r7\n\tadd.ge\t0, r0, r6\n\txor\t@CPI2_4[0], r1, r1\n\tsub.s!\t@CPI2_4[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr6, r0, r1\n\tadd\t96, r0, r6\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB2_99\n\tsub.s!\t@CPI2_3[0], r5, r1\n\tjump.gt\t@.BB2_5\n\tadd\t64, r5, r1\n\tst.1\t64, r1\n\tadd\t32, r5, r1\n\tadd\t@CPI2_8[0], r0, r3\n\tst.1\tr1, r3\n\tadd\t1, r0, r1\n\tst.1\tr5, r1\n\tadd\tr5, r0, r6\n\tjump\t@.BB2_99\n.BB2_147:\n\tsub.s!\t56, r6, r1\n\tjump.lt\t@.BB2_153\n\tshr.s\t32, r6, r1\n\tsub.s!\t@CPI2_1[0], r6, r3\n\tadd\tr6, r0, r3\n\tadd.gt\tr1, r0, r3\n\tsub.s!\t@CPI2_1[0], r6, r1\n\tadd\t0, r0, r1\n\tadd.gt\t4, r0, r1\n\tor\t2, r1, r7\n\tsub.s!\t65535, r3, r8\n\tadd.gt\tr7, r0, r1\n\tshr.s\t16, r3, r7\n\tadd.gt\tr7, r0, r3\n\tsub.s!\t255, r3, r3\n\tadd\t0, r0, r7\n\tadd.gt\t1, r0, r7\n\tsub.s!\t@CPI2_3[0], r5, r3\n\tjump.gt\t@.BB2_5\n\tor\tr1, r7, r7\n\tadd\t64, r5, r1\n\tst.1\t64, r1\n\tadd\t2, r7, r1\n\tst.1.inc\tr5, r1, r8\n\tadd\tstack[@calldatasize], r0, r1\n\tptr.add\tstack[@ptr_calldata], r1, r9\n\tadd\tr0, r0, r10\n.BB2_150:\n\tshl.s\t5, r10, r1\n\tadd\tr8, r1, r3\n\tptr.add\tr9, r1, r1\n\tld\tr1, r1\n\tst.1\tr3, r1\n\tadd!\t1, r10, r10\n\tadd\t0, r0, r1\n\tadd.eq\t1, r0, r1\n\tand!\t1, r1, r1\n\tjump.ne\t@.BB2_150\n\tld.1\tr5, r1\n\tsub.s!\t0, r1, r1\n\tjump.eq\t@.BB2_11\n\tld.1\tr8, r1\n\tand\t@CPI2_5[0], r1, r1\n\tshl.s\t248, r7, r3\n\tor\tr3, r1, r1\n\tor\t@CPI2_10[0], r1, r1\n\tst.1\tr8, r1\n\tshl.s\t3, r7, r1\n\tsub\t248, r1, r1\n\tshl\tr6, r1, r1\n\tadd\t33, r5, r3\n\tst.1\tr3, r1\n\tadd\tr5, r0, r6\n\tjump\t@.BB2_99\n.BB2_153:\n\tsub.s!\t@CPI2_3[0], r5, r1\n\tjump.gt\t@.BB2_5\n\tadd\t64, r5, r1\n\tst.1\t64, r1\n\tadd\t1, r0, r1\n\tst.1.inc\tr5, r1, r7\n\tadd\tstack[@calldatasize], r0, r1\n\tptr.add\tstack[@ptr_calldata], r1, r8\n\tadd\tr0, r0, r9\n.BB2_155:\n\tshl.s\t5, r9, r1\n\tadd\tr7, r1, r3\n\tptr.add\tr8, r1, r1\n\tld\tr1, r1\n\tst.1\tr3, r1\n\tadd!\t1, r9, r9\n\tadd\t0, r0, r1\n\tadd.eq\t1, r0, r1\n\tand!\t1, r1, r1\n\tjump.ne\t@.BB2_155\n\tld.1\tr5, r1\n\tsub.s!\t0, r1, r1\n\tjump.eq\t@.BB2_11\n\tshl.s\t248, r6, r1\n\tld.1\tr7, r3\n\tand\t@CPI2_5[0], r3, r3\n\tor\tr3, r1, r1\n\txor\t@CPI2_4[0], r1, r1\n\tst.1\tr7, r1\n\tadd\tr5, r0, r6\n.BB2_99:\n\tld.1\t64, r5\n\tsub.s!\t@CPI2_3[0], r5, r1\n\tjump.gt\t@.BB2_5\n\tadd\t64, r5, r1\n\tst.1\t64, r1\n\tadd\t1, r0, r1\n\tadd\tr1, r0, stack-[3]\n\tst.1.inc\tr5, r1, r7\n\tadd\tstack[@calldatasize], r0, r1\n\tptr.add\tstack[@ptr_calldata], r1, r8\n\tadd\tr0, r0, r10\n.BB2_101:\n\tshl.s\t5, r10, r1\n\tadd\tr7, r1, r11\n\tptr.add\tr8, r1, r1\n\tld\tr1, r1\n\tst.1\tr11, r1\n\tadd!\t1, r10, r10\n\tadd\t0, r0, r1\n\tadd.eq\t1, r0, r1\n\tand!\t1, r1, r1\n\tjump.ne\t@.BB2_101\n\tld.1\tr5, r1\n\tsub.s!\t0, r1, r1\n\tjump.eq\t@.BB2_11\n\tld.1\tr7, r1\n\tand\t@CPI2_5[0], r1, r1\n\tor\t@CPI2_11[0], r1, r1\n\tst.1\tr7, r1\n\tadd\tstack[@calldatasize], r0, r8\n\tadd\tr8, r4, r1\n\tadd\tstack-[4], r0, r3\n\tadd\t480, r3, r10\n\tptr.add\tstack[@ptr_calldata], r0, r7\n\tptr.add\tr7, r10, r11\n\tld\tr11, r11\n\tadd\t@CPI2_4[0], r0, r12\n\tsub!\tr11, r1, r13\n\tadd\t0, r0, r13\n\tadd.ge\tr12, r0, r13\n\tand\t@CPI2_4[0], r1, r1\n\tand\t@CPI2_4[0], r11, r14\n\tsub!\tr14, r1, r15\n\tadd.ge\t0, r0, r12\n\txor\tr14, r1, r1\n\tsub.s!\t@CPI2_4[0], r1, r1\n\tadd\tr13, r0, r1\n\tadd.eq\tr12, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB2_1\n\tadd\tstack-[4], r0, r1\n\tadd\tr11, r1, r1\n\tptr.add\tr7, r1, r11\n\tld\tr11, r11\n\tsub.s!\t@CPI2_7[0], r11, r12\n\tjump.gt\t@.BB2_1\n\tsub\tr8, r11, r12\n\tadd\t32, r1, r8\n\tadd\t@CPI2_4[0], r0, r1\n\tsub!\tr8, r12, r13\n\tadd\t0, r0, r13\n\tadd.gt\tr1, r0, r13\n\tand\t@CPI2_4[0], r12, r12\n\tand\t@CPI2_4[0], r8, r14\n\tsub!\tr14, r12, r15\n\tadd.ge\t0, r0, r1\n\txor\tr14, r12, r12\n\tsub.s!\t@CPI2_4[0], r12, r12\n\tadd.ne\tr13, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB2_1\n\tsub.s!\t32, r11, r1\n\tjump.lt\t@.BB2_1\n\tptr.add\tr7, r8, r1\n\tld\tr1, r8\n\tsub.s!\t128, r8, r1\n\tjump.lt\t@.BB2_116\n\tshr.s\t128, r8, r1\n\tsub.s!\t@CPI2_6[0], r8, r7\n\tadd.le\tr8, r0, r1\n\tsub.s!\t@CPI2_6[0], r8, r7\n\tadd\t0, r0, r7\n\tadd.gt\t16, r0, r7\n\tor\t8, r7, r11\n\tsub.s!\t@CPI2_7[0], r1, r12\n\tadd.gt\tr11, r0, r7\n\tshr.s\t64, r1, r11\n\tsub.s!\t@CPI2_7[0], r1, r12\n\tadd.gt\tr11, r0, r1\n\tor\t4, r7, r11\n\tsub.s!\t@CPI2_1[0], r1, r12\n\tadd.gt\tr11, r0, r7\n\tshr.s\t32, r1, r11\n\tsub.s!\t@CPI2_1[0], r1, r12\n\tadd.gt\tr11, r0, r1\n\tor\t2, r7, r11\n\tsub.s!\t65535, r1, r12\n\tadd.gt\tr11, r0, r7\n\tshr.s\t16, r1, r11\n\tadd.gt\tr11, r0, r1\n\tsub.s!\t255, r1, r1\n\tadd\t0, r0, r1\n\tadd.gt\t1, r0, r1\n\tadd\tr7, r1, r11\n\tadd\t65, r11, r1\n\tadd\tstack-[2], r0, r3\n\tand\tr1, r3, r1\n\tld.1\t64, r7\n\tadd\tr7, r1, r1\n\tsub!\tr1, r7, r12\n\tadd\t0, r0, r12\n\tadd.lt\t1, r0, r12\n\tsub.s!\t@CPI2_7[0], r1, r13\n\tjump.gt\t@.BB2_5\n\tand!\t1, r12, r12\n\tjump.ne\t@.BB2_5\n\tst.1\t64, r1\n\tadd\t2, r11, r1\n\tst.1.inc\tr7, r1, r12\n\tadd\t33, r11, r1\n\tshr.s!\t5, r1, r13\n\tjump.eq\t@.BB2_212\n\tadd\tstack[@calldatasize], r0, r1\n\tptr.add\tstack[@ptr_calldata], r1, r14\n\tadd\tr0, r0, r15\n.BB2_112:\n\tshl.s\t5, r15, r1\n\tadd\tr12, r1, r3\n\tptr.add\tr14, r1, r1\n\tld\tr1, r1\n\tst.1\tr3, r1\n\tadd\t1, r15, r15\n\tsub!\tr15, r13, r1\n\tjump.lt\t@.BB2_112\n.BB2_212:\n\tsub.s!\t0, r0, r1\n\tjump.eq\t@.BB2_114\n.BB2_114:\n\tld.1\tr7, r1\n\tsub.s!\t0, r1, r1\n\tjump.eq\t@.BB2_11\n\tld.1\tr12, r1\n\tand\t@CPI2_5[0], r1, r1\n\tshl.s\t248, r11, r3\n\tor\tr3, r1, r1\n\tadd\t@CPI2_8[0], r1, r1\n\tst.1\tr12, r1\n\tshl.s\t3, r11, r1\n\tsub\t248, r1, r1\n\tshl\tr8, r1, r3\n\tsub.s!\t255, r1, r1\n\tadd\tr3, r0, r1\n\tadd.gt\t0, r0, r1\n\tadd\t33, r7, r3\n\tst.1\tr3, r1\n\tjump\t@.BB2_121\n.BB2_116:\n\tld.1\t64, r7\n\tsub.s!\t@CPI2_3[0], r7, r1\n\tjump.gt\t@.BB2_5\n\tadd\t64, r7, r1\n\tst.1\t64, r1\n\tadd\tstack-[3], r0, r1\n\tst.1.inc\tr7, r1, r11\n\tadd\tstack[@calldatasize], r0, r1\n\tptr.add\tstack[@ptr_calldata], r1, r12\n\tadd\tr0, r0, r13\n.BB2_118:\n\tshl.s\t5, r13, r1\n\tadd\tr11, r1, r3\n\tptr.add\tr12, r1, r1\n\tld\tr1, r1\n\tst.1\tr3, r1\n\tadd!\t1, r13, r13\n\tadd\t0, r0, r1\n\tadd.eq\t1, r0, r1\n\tand!\t1, r1, r1\n\tjump.ne\t@.BB2_118\n\tld.1\tr7, r1\n\tsub.s!\t0, r1, r1\n\tjump.eq\t@.BB2_11\n\tshl.s\t248, r8, r1\n\tadd\t@CPI2_4[0], r0, r3\n\tsub.s!\t0, r8, r8\n\tadd.eq\tr3, r0, r1\n\tld.1\tr11, r3\n\tand\t@CPI2_5[0], r3, r3\n\tor\tr3, r1, r1\n\tst.1\tr11, r1\n.BB2_121:\n\tadd\tstack[@calldatasize], r0, r12\n\tadd\tr12, r4, r1\n\tptr.add\tstack[@ptr_calldata], r0, r8\n\tptr.add\tr8, r10, r3\n\tld\tr3, r11\n\tadd\t@CPI2_4[0], r0, r3\n\tsub!\tr11, r1, r13\n\tadd\t0, r0, r13\n\tadd.ge\tr3, r0, r13\n\tand\t@CPI2_4[0], r1, r1\n\tand\t@CPI2_4[0], r11, r14\n\tsub!\tr14, r1, r15\n\tadd.ge\t0, r0, r3\n\txor\tr14, r1, r1\n\tsub.s!\t@CPI2_4[0], r1, r1\n\tadd\tr13, r0, r1\n\tadd.eq\tr3, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB2_1\n\tadd\tstack-[4], r0, r1\n\tadd\tr11, r1, r11\n\tptr.add\tr8, r11, r1\n\tld\tr1, r13\n\tsub.s!\t@CPI2_7[0], r13, r1\n\tjump.gt\t@.BB2_1\n\tsub\tr12, r13, r1\n\tadd\t32, r11, r3\n\tadd\t@CPI2_4[0], r0, r12\n\tsub!\tr3, r1, r14\n\tadd\t0, r0, r14\n\tadd.gt\tr12, r0, r14\n\tand\t@CPI2_4[0], r1, r1\n\tand\t@CPI2_4[0], r3, r3\n\tsub!\tr3, r1, r15\n\tadd.ge\t0, r0, r12\n\txor\tr3, r1, r1\n\tsub.s!\t@CPI2_4[0], r1, r1\n\tadd\tr14, r0, r1\n\tadd.eq\tr12, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB2_1\n\tsub.s!\t64, r13, r1\n\tjump.lt\t@.BB2_1\n\tadd\t64, r11, r1\n\tptr.add\tr8, r1, r1\n\tld\tr1, r11\n\tsub.s!\t128, r11, r1\n\tjump.lt\t@.BB2_134\n\tshr.s\t128, r11, r1\n\tsub.s!\t@CPI2_6[0], r11, r3\n\tadd.le\tr11, r0, r1\n\tsub.s!\t@CPI2_6[0], r11, r3\n\tadd\t0, r0, r3\n\tadd.gt\t16, r0, r3\n\tor\t8, r3, r8\n\tsub.s!\t@CPI2_7[0], r1, r12\n\tadd.gt\tr8, r0, r3\n\tshr.s\t64, r1, r8\n\tsub.s!\t@CPI2_7[0], r1, r12\n\tadd.gt\tr8, r0, r1\n\tor\t4, r3, r8\n\tsub.s!\t@CPI2_1[0], r1, r12\n\tadd.gt\tr8, r0, r3\n\tshr.s\t32, r1, r8\n\tsub.s!\t@CPI2_1[0], r1, r12\n\tadd.gt\tr8, r0, r1\n\tor\t2, r3, r8\n\tsub.s!\t65535, r1, r12\n\tadd.gt\tr8, r0, r3\n\tshr.s\t16, r1, r8\n\tadd.gt\tr8, r0, r1\n\tsub.s!\t255, r1, r1\n\tadd\t0, r0, r1\n\tadd.gt\t1, r0, r1\n\tadd\tr3, r1, r12\n\tadd\t65, r12, r1\n\tadd\tstack-[2], r0, r3\n\tand\tr1, r3, r1\n\tld.1\t64, r8\n\tadd\tr8, r1, r1\n\tsub!\tr1, r8, r3\n\tadd\t0, r0, r13\n\tadd.lt\t1, r0, r13\n\tsub.s!\t@CPI2_7[0], r1, r3\n\tjump.gt\t@.BB2_5\n\tand!\t1, r13, r3\n\tjump.ne\t@.BB2_5\n\tst.1\t64, r1\n\tadd\t2, r12, r1\n\tst.1.inc\tr8, r1, r13\n\tadd\t33, r12, r1\n\tshr.s!\t5, r1, r14\n\tjump.eq\t@.BB2_211\n\tadd\tstack[@calldatasize], r0, r1\n\tptr.add\tstack[@ptr_calldata], r1, r15\n\tadd\tr0, r0, r1\n.BB2_130:\n\tshl.s\t5, r1, r3\n\tadd\tr13, r3, r9\n\tptr.add\tr15, r3, r3\n\tld\tr3, r3\n\tst.1\tr9, r3\n\tadd\t1, r1, r1\n\tsub!\tr1, r14, r3\n\tjump.lt\t@.BB2_130\n.BB2_211:\n\tsub.s!\t0, r0, r1\n\tjump.eq\t@.BB2_132\n.BB2_132:\n\tld.1\tr8, r1\n\tsub.s!\t0, r1, r1\n\tjump.eq\t@.BB2_11\n\tld.1\tr13, r1\n\tand\t@CPI2_5[0], r1, r1\n\tshl.s\t248, r12, r3\n\tor\tr3, r1, r1\n\tadd\t@CPI2_8[0], r1, r1\n\tst.1\tr13, r1\n\tshl.s\t3, r12, r1\n\tsub\t248, r1, r1\n\tshl\tr11, r1, r3\n\tsub.s!\t255, r1, r1\n\tadd\tr3, r0, r1\n\tadd.gt\t0, r0, r1\n\tadd\t33, r8, r3\n\tst.1\tr3, r1\n\tjump\t@.BB2_139\n.BB2_134:\n\tld.1\t64, r8\n\tsub.s!\t@CPI2_3[0], r8, r1\n\tjump.gt\t@.BB2_5\n\tadd\t64, r8, r1\n\tst.1\t64, r1\n\tadd\tstack-[3], r0, r1\n\tst.1.inc\tr8, r1, r12\n\tadd\tstack[@calldatasize], r0, r1\n\tptr.add\tstack[@ptr_calldata], r1, r13\n\tadd\tr0, r0, r14\n.BB2_136:\n\tshl.s\t5, r14, r1\n\tadd\tr12, r1, r3\n\tptr.add\tr13, r1, r1\n\tld\tr1, r1\n\tst.1\tr3, r1\n\tadd!\t1, r14, r14\n\tadd\t0, r0, r1\n\tadd.eq\t1, r0, r1\n\tand!\t1, r1, r1\n\tjump.ne\t@.BB2_136\n\tld.1\tr8, r1\n\tsub.s!\t0, r1, r1\n\tjump.eq\t@.BB2_11\n\tshl.s\t248, r11, r1\n\tadd\t@CPI2_4[0], r0, r3\n\tsub.s!\t0, r11, r9\n\tadd.eq\tr3, r0, r1\n\tld.1\tr12, r3\n\tand\t@CPI2_5[0], r3, r3\n\tor\tr3, r1, r1\n\tst.1\tr12, r1\n.BB2_139:\n\tadd\tstack[@calldatasize], r0, r12\n\tadd\tr12, r4, r1\n\tptr.add\tstack[@ptr_calldata], r0, r11\n\tptr.add\tr11, r10, r3\n\tld\tr3, r10\n\tadd\t@CPI2_4[0], r0, r3\n\tsub!\tr10, r1, r9\n\tadd\t0, r0, r9\n\tadd.ge\tr3, r0, r9\n\tand\t@CPI2_4[0], r1, r1\n\tand\t@CPI2_4[0], r10, r13\n\tsub!\tr13, r1, r14\n\tadd.ge\t0, r0, r3\n\txor\tr13, r1, r1\n\tsub.s!\t@CPI2_4[0], r1, r1\n\tadd\tr9, r0, r1\n\tadd.eq\tr3, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB2_1\n\tadd\tstack-[4], r0, r1\n\tadd\tr10, r1, r10\n\tptr.add\tr11, r10, r1\n\tld\tr1, r13\n\tsub.s!\t@CPI2_7[0], r13, r1\n\tjump.gt\t@.BB2_1\n\tsub\tr12, r13, r1\n\tadd\t32, r10, r3\n\tadd\t@CPI2_4[0], r0, r9\n\tsub!\tr3, r1, r12\n\tadd\t0, r0, r12\n\tadd.gt\tr9, r0, r12\n\tand\t@CPI2_4[0], r1, r1\n\tand\t@CPI2_4[0], r3, r3\n\tsub!\tr3, r1, r14\n\tadd.ge\t0, r0, r9\n\txor\tr3, r1, r1\n\tsub.s!\t@CPI2_4[0], r1, r1\n\tadd\tr12, r0, r1\n\tadd.eq\tr9, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB2_1\n\tsub.s!\t65, r13, r1\n\tjump.lt\t@.BB2_11\n\tadd\t96, r10, r1\n\tptr.add\tr11, r1, r1\n\tcontext.sp\tr11\n\tsub.s\t6, r11, r11\n\tmul\t32, r11, r11, r0\n\tadd\t@CPI2_4[0], r0, r12\n\tld\tr1, r1\n\tshr.s\t248, r1, r1\n\tsub.s!\t27, r1, r3\n\tjump.eq\t@.BB2_160\n\tcontext.sp\tr11\n\tsub.s\t5, r11, r11\n\tmul\t32, r11, r11, r0\n\tadd\t@CPI2_12[0], r0, r12\n\tsub.s!\t28, r1, r1\n\tjump.ne\t@.BB2_159\n.BB2_160:\n\tld.1\t64, r10\n\tsub.s!\t@CPI2_3[0], r10, r1\n\tjump.gt\t@.BB2_5\n\tadd\t64, r10, r1\n\tst.1\t64, r1\n\tadd\tstack-[3], r0, r1\n\tst.1.inc\tr10, r1, r13\n\tadd\tstack[@calldatasize], r0, r1\n\tptr.add\tstack[@ptr_calldata], r1, r14\n\tadd\tr0, r0, r15\n.BB2_162:\n\tshl.s\t5, r15, r1\n\tadd\tr13, r1, r3\n\tptr.add\tr14, r1, r1\n\tld\tr1, r1\n\tst.1\tr3, r1\n\tadd!\t1, r15, r15\n\tadd\t0, r0, r1\n\tadd.eq\t1, r0, r1\n\tand!\t1, r1, r1\n\tjump.ne\t@.BB2_162\n\tld.1\tr10, r1\n\tsub.s!\t0, r1, r1\n\tjump.eq\t@.BB2_11\n\tld.1\tr13, r1\n\tand\t@CPI2_5[0], r1, r1\n\tor\tr1, r12, r1\n\tst.1\tr13, r1\n\tdiv.s\t32, r11, r1, r0\n\tadd\tr10, r0, stack[r1]\n\tadd\tstack[@calldatasize], r0, r11\n\tadd\tr11, r4, r1\n\tptr.add\tstack[@ptr_calldata], r0, r14\n\tadd\tstack-[1], r0, r3\n\tptr.add\tr14, r3, r3\n\tld\tr3, r15\n\tadd\t@CPI2_4[0], r0, r3\n\tsub!\tr15, r1, r9\n\tadd\t0, r0, r9\n\tadd.ge\tr3, r0, r9\n\tand\t@CPI2_4[0], r1, r1\n\tand\t@CPI2_4[0], r15, r12\n\tsub!\tr12, r1, r13\n\tadd.ge\t0, r0, r3\n\txor\tr12, r1, r1\n\tsub.s!\t@CPI2_4[0], r1, r1\n\tadd\tr9, r0, r1\n\tadd.eq\tr3, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB2_1\n\tld.1\tr2, r12\n\tld.1\tr6, r13\n\tadd\tstack-[4], r0, r1\n\tadd\tr15, r1, r1\n\tptr.add\tr14, r1, r3\n\tld\tr3, r14\n\tsub.s!\t@CPI2_7[0], r14, r3\n\tjump.gt\t@.BB2_1\n\tsub\tr11, r14, r3\n\tadd\t32, r1, r1\n\tadd\t@CPI2_4[0], r0, r9\n\tsub!\tr1, r3, r11\n\tadd\t0, r0, r11\n\tadd.gt\tr9, r0, r11\n\tand\t@CPI2_4[0], r3, r3\n\tand\t@CPI2_4[0], r1, r1\n\tsub!\tr1, r3, r15\n\tadd.ge\t0, r0, r9\n\txor\tr1, r3, r1\n\tsub.s!\t@CPI2_4[0], r1, r1\n\tadd\tr11, r0, r1\n\tadd.eq\tr9, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB2_1\n\tadd\tr13, r12, r1\n\tadd\tr1, r14, r1\n\tld.1\tr5, r3\n\tadd\tr1, r3, r1\n\tld.1\tr7, r3\n\tadd\tr1, r3, r1\n\tld.1\tr8, r3\n\tadd\tr1, r3, r1\n\tld.1\tr10, r3\n\tadd\tr1, r3, r1\n\tand\t@CPI2_7[0], r1, r12\n\tsub.s!\t56, r12, r1\n\tjump.lt\t@.BB2_173\n\tshr.s\t32, r12, r1\n\tsub.s!\t@CPI2_1[0], r12, r3\n\tadd\tr12, r0, r3\n\tadd.gt\tr1, r0, r3\n\tsub.s!\t@CPI2_1[0], r12, r1\n\tadd\t0, r0, r1\n\tadd.gt\t4, r0, r1\n\tor\t2, r1, r9\n\tsub.s!\t65535, r3, r11\n\tadd.gt\tr9, r0, r1\n\tshr.s\t16, r3, r9\n\tadd.gt\tr9, r0, r3\n\tsub.s!\t255, r3, r3\n\tadd\t0, r0, r9\n\tadd.gt\t1, r0, r9\n\tld.1\t64, r11\n\tsub.s!\t@CPI2_3[0], r11, r3\n\tjump.gt\t@.BB2_5\n\tor\tr1, r9, r9\n\tadd\t64, r11, r1\n\tst.1\t64, r1\n\tadd\t2, r9, r1\n\tst.1.inc\tr11, r1, r13\n\tadd\tstack[@calldatasize], r0, r1\n\tptr.add\tstack[@ptr_calldata], r1, r14\n\tadd\tr0, r0, r15\n.BB2_170:\n\tshl.s\t5, r15, r1\n\tadd\tr13, r1, r3\n\tptr.add\tr14, r1, r1\n\tld\tr1, r1\n\tst.1\tr3, r1\n\tadd!\t1, r15, r15\n\tadd\t0, r0, r1\n\tadd.eq\t1, r0, r1\n\tand!\t1, r1, r1\n\tjump.ne\t@.BB2_170\n\tld.1\tr11, r1\n\tsub.s!\t0, r1, r1\n\tjump.eq\t@.BB2_11\n\tld.1\tr13, r1\n\tand\t@CPI2_5[0], r1, r1\n\tshl.s\t248, r9, r3\n\tor\tr3, r1, r1\n\tor\t@CPI2_16[0], r1, r1\n\tst.1\tr13, r1\n\tshl.s\t3, r9, r1\n\tsub\t248, r1, r1\n\tshl\tr12, r1, r1\n\tadd\t33, r11, r3\n\tst.1\tr3, r1\n\tjump\t@.BB2_178\n.BB2_173:\n\tld.1\t64, r11\n\tsub.s!\t@CPI2_3[0], r11, r1\n\tjump.gt\t@.BB2_5\n\tadd\t64, r11, r1\n\tst.1\t64, r1\n\tadd\tstack-[3], r0, r1\n\tst.1.inc\tr11, r1, r9\n\tadd\tstack[@calldatasize], r0, r1\n\tptr.add\tstack[@ptr_calldata], r1, r13\n\tadd\tr0, r0, r14\n.BB2_175:\n\tshl.s\t5, r14, r1\n\tadd\tr9, r1, r3\n\tptr.add\tr13, r1, r1\n\tld\tr1, r1\n\tst.1\tr3, r1\n\tadd!\t1, r14, r14\n\tadd\t0, r0, r1\n\tadd.eq\t1, r0, r1\n\tand!\t1, r1, r1\n\tjump.ne\t@.BB2_175\n\tld.1\tr11, r1\n\tsub.s!\t0, r1, r1\n\tjump.eq\t@.BB2_11\n\tshl.s\t248, r12, r1\n\tld.1\tr9, r3\n\tand\t@CPI2_5[0], r3, r3\n\tor\tr1, r3, r1\n\tadd\t@CPI2_11[0], r1, r1\n\tst.1\tr9, r1\n.BB2_178:\n\tadd\tstack[@calldatasize], r0, r12\n\tadd\tr12, r4, r1\n\tptr.add\tstack[@ptr_calldata], r0, r4\n\tadd\tstack-[1], r0, r3\n\tptr.add\tr4, r3, r3\n\tld\tr3, r3\n\tadd\t@CPI2_4[0], r0, r9\n\tsub!\tr3, r1, r13\n\tadd\t0, r0, r13\n\tadd.ge\tr9, r0, r13\n\tand\t@CPI2_4[0], r1, r1\n\tand\t@CPI2_4[0], r3, r14\n\tsub!\tr14, r1, r15\n\tadd.ge\t0, r0, r9\n\txor\tr14, r1, r1\n\tsub.s!\t@CPI2_4[0], r1, r1\n\tadd\tr13, r0, r1\n\tadd.eq\tr9, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB2_1\n\tadd\tstack-[4], r0, r1\n\tadd\tr3, r1, r1\n\tptr.add\tr4, r1, r3\n\tld\tr3, r9\n\tsub.s!\t@CPI2_7[0], r9, r3\n\tjump.gt\t@.BB2_1\n\tsub\tr12, r9, r3\n\tadd\t32, r1, r12\n\tadd\t@CPI2_4[0], r0, r1\n\tsub!\tr12, r3, r4\n\tadd\t0, r0, r4\n\tadd.gt\tr1, r0, r4\n\tand\t@CPI2_4[0], r3, r3\n\tand\t@CPI2_4[0], r12, r13\n\tsub!\tr13, r3, r14\n\tadd.ge\t0, r0, r1\n\txor\tr13, r3, r3\n\tsub.s!\t@CPI2_4[0], r3, r3\n\tadd.ne\tr4, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB2_1\n\tld.1\t64, r3\n\tadd\t32, r3, r4\n\tadd\t@CPI2_12[0], r0, r1\n\tadd\tr4, r0, stack-[4]\n\tst.1\tr4, r1\n\tadd\t33, r3, r13\n\tld.1\tr11, r14\n\tsub.s!\t0, r14, r1\n\tjump.eq\t@.BB2_184\n\tadd\tr0, r0, r1\n.BB2_183:\n\tadd\tr1, r13, r15\n\tadd\t32, r1, r1\n\tadd\tr1, r11, r4\n\tld.1\tr4, r4\n\tst.1\tr15, r4\n\tsub!\tr1, r14, r4\n\tjump.lt\t@.BB2_183\n.BB2_184:\n\tadd\tr14, r13, r11\n\tst.1\tr11, r0\n\tld.1\tr2, r13\n\tsub.s!\t0, r13, r1\n\tjump.eq\t@.BB2_187\n\tadd\tr0, r0, r1\n.BB2_186:\n\tadd\tr1, r11, r4\n\tadd\t32, r1, r1\n\tadd\tr1, r2, r14\n\tld.1\tr14, r14\n\tst.1\tr4, r14\n\tsub!\tr1, r13, r4\n\tjump.lt\t@.BB2_186\n.BB2_187:\n\tadd\tr13, r11, r2\n\tst.1\tr2, r0\n\tld.1\tr6, r11\n\tsub.s!\t0, r11, r1\n\tjump.eq\t@.BB2_190\n\tadd\tr0, r0, r1\n.BB2_189:\n\tadd\tr1, r2, r4\n\tadd\t32, r1, r1\n\tadd\tr1, r6, r13\n\tld.1\tr13, r13\n\tst.1\tr4, r13\n\tsub!\tr1, r11, r4\n\tjump.lt\t@.BB2_189\n.BB2_190:\n\tadd\tr11, r2, r2\n\tand\t31, r9, r6\n\tst.1\tr2, r0\n\tptr.add\tstack[@ptr_calldata], r12, r11\n\tshr.s!\t5, r9, r12\n\tjump.eq\t@.BB2_210\n\tadd\tr0, r0, r1\n.BB2_192:\n\tshl.s\t5, r1, r4\n\tadd\tr2, r4, r13\n\tptr.add\tr11, r4, r4\n\tld\tr4, r4\n\tst.1\tr13, r4\n\tadd\t1, r1, r1\n\tsub!\tr1, r12, r4\n\tjump.lt\t@.BB2_192\n.BB2_210:\n\tsub.s!\t0, r6, r1\n\tjump.eq\t@.BB2_194\n\tshl.s\t5, r12, r1\n\tptr.add\tr11, r1, r4\n\tadd\tr2, r1, r1\n\tshl.s\t3, r6, r6\n\tld.1\tr1, r11\n\tshl\tr11, r6, r11\n\tshr\tr11, r6, r11\n\tld\tr4, r4\n\tsub\t256, r6, r6\n\tshr\tr4, r6, r4\n\tshl\tr4, r6, r4\n\tor\tr4, r11, r4\n\tst.1\tr1, r4\n.BB2_194:\n\tadd\tr2, r9, r2\n\tst.1\tr2, r0\n\tld.1\tr5, r6\n\tsub.s!\t0, r6, r1\n\tjump.eq\t@.BB2_197\n\tadd\tr0, r0, r1\n.BB2_196:\n\tadd\tr1, r2, r4\n\tadd\t32, r1, r1\n\tadd\tr1, r5, r9\n\tld.1\tr9, r9\n\tst.1\tr4, r9\n\tsub!\tr1, r6, r4\n\tjump.lt\t@.BB2_196\n.BB2_197:\n\tadd\tr6, r2, r2\n\tst.1\tr2, r0\n\tld.1\tr10, r5\n\tsub.s!\t0, r5, r1\n\tjump.eq\t@.BB2_200\n\tadd\tr0, r0, r1\n.BB2_199:\n\tadd\tr1, r2, r4\n\tadd\t32, r1, r1\n\tadd\tr1, r10, r6\n\tld.1\tr6, r6\n\tst.1\tr4, r6\n\tsub!\tr1, r5, r4\n\tjump.lt\t@.BB2_199\n.BB2_200:\n\tadd\tr5, r2, r2\n\tst.1\tr2, r0\n\tld.1\tr7, r5\n\tsub.s!\t0, r5, r1\n\tjump.eq\t@.BB2_203\n\tadd\tr0, r0, r1\n.BB2_202:\n\tadd\tr1, r2, r4\n\tadd\t32, r1, r1\n\tadd\tr1, r7, r6\n\tld.1\tr6, r6\n\tst.1\tr4, r6\n\tsub!\tr1, r5, r4\n\tjump.lt\t@.BB2_202\n.BB2_203:\n\tadd\tr5, r2, r2\n\tst.1\tr2, r0\n\tld.1\tr8, r5\n\tsub.s!\t0, r5, r1\n\tjump.eq\t@.BB2_206\n\tadd\tr0, r0, r1\n.BB2_205:\n\tadd\tr1, r2, r4\n\tadd\t32, r1, r1\n\tadd\tr1, r8, r6\n\tld.1\tr6, r6\n\tst.1\tr4, r6\n\tsub!\tr1, r5, r4\n\tjump.lt\t@.BB2_205\n.BB2_206:\n\tadd\tr5, r2, r1\n\tst.1\tr1, r0\n\tsub\tr1, r3, r1\n\tsub.s\t32, r1, r2\n\tst.1\tr3, r2\n\tadd\t31, r1, r1\n\tadd\tstack-[2], r0, r2\n\tand\tr1, r2, r2\n\tadd\tr2, r3, r1\n\tsub!\tr1, r2, r2\n\tadd\t0, r0, r2\n\tadd.lt\t1, r0, r2\n\tsub.s!\t@CPI2_7[0], r1, r4\n\tjump.gt\t@.BB2_5\n\tand!\t1, r2, r2\n\tjump.ne\t@.BB2_5\n\tst.1\t64, r1\n\tadd\t@CPI2_1[0], r0, r1\n\tadd\tstack-[4], r0, r4\n\tsub.s!\t@CPI2_1[0], r4, r2\n\tadd\tr1, r0, r2\n\tadd.lt\tr4, r0, r2\n\tshl.s\t64, r2, r2\n\tld.1\tr3, r3\n\tsub.s!\t@CPI2_1[0], r3, r4\n\tadd.ge\tr1, r0, r3\n\tshl.s\t96, r3, r3\n\tor\tr3, r2, r2\n\tcontext.gas_left\tr3\n\tsub.s!\t@CPI2_1[0], r3, r4\n\tadd.lt\tr3, r0, r1\n\tshl.s\t192, r1, r1\n\tor\tr1, r2, r1\n\tor\t@CPI2_17[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB2_1\n\tld\tr1, r1\n\tret\n.BB2_1:\n\tadd\tr0, r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB2_5:\n\tadd\t@CPI2_18[0], r0, r1\n\tst.1\t0, r1\n\tadd\t65, r0, r1\n\tst.1\t4, r1\n\tadd\t@CPI2_19[0], r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB2_11:\n\tadd\t@CPI2_18[0], r0, r1\n\tst.1\t0, r1\n\tadd\t50, r0, r1\n\tst.1\t4, r1\n\tadd\t@CPI2_19[0], r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB2_159:\n\tld.1\t64, r1\n\tadd\t68, r1, r2\n\tadd\t@CPI2_13[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t15, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI2_14[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI2_1[0], r0, r2\n\tsub.s!\t@CPI2_1[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI2_15[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.func_end2:\n\nfun_encodeEIP1559TransactionHash:\n.func_begin3:\n\tnop\tstack+=[6]\n\tadd\tr1, r0, stack-[4]\n\tadd\t@CPI3_0[0], r0, r1\n\tst.2\t0, r1\n\tadd\t@CPI3_1[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI3_1[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI3_2[0], r1, r1\n\tadd\t32779, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB3_1\n\tld\tr1, r2\n\tsub.s!\t128, r2, r1\n\tjump.lt\t@.BB3_13\n\tshr.s\t128, r2, r1\n\tsub.s!\t@CPI3_6[0], r2, r3\n\tadd.le\tr2, r0, r1\n\tsub.s!\t@CPI3_6[0], r2, r3\n\tadd\t0, r0, r3\n\tadd.gt\t16, r0, r3\n\tor\t8, r3, r4\n\tsub.s!\t@CPI3_7[0], r1, r5\n\tadd.gt\tr4, r0, r3\n\tshr.s\t64, r1, r4\n\tsub.s!\t@CPI3_7[0], r1, r5\n\tadd.gt\tr4, r0, r1\n\tor\t4, r3, r4\n\tsub.s!\t@CPI3_1[0], r1, r5\n\tadd.gt\tr4, r0, r3\n\tshr.s\t32, r1, r4\n\tsub.s!\t@CPI3_1[0], r1, r5\n\tadd.gt\tr4, r0, r1\n\tor\t2, r3, r4\n\tsub.s!\t65535, r1, r5\n\tadd.gt\tr4, r0, r3\n\tshr.s\t16, r1, r4\n\tadd.gt\tr4, r0, r1\n\tsub.s!\t255, r1, r1\n\tadd\t0, r0, r1\n\tadd.gt\t1, r0, r1\n\tadd\tr3, r1, r3\n\tsub.s\t32, r0, r1\n\tadd\t65, r3, r4\n\tand\tr4, r1, r4\n\tld.1\t64, r1\n\tadd\tr1, r4, r4\n\tsub!\tr4, r1, r5\n\tadd\t0, r0, r5\n\tadd.lt\t1, r0, r5\n\tsub.s!\t@CPI3_7[0], r4, r6\n\tjump.gt\t@.BB3_5\n\tand!\t1, r5, r5\n\tjump.ne\t@.BB3_5\n\tst.1\t64, r4\n\tadd\t2, r3, r4\n\tst.1.inc\tr1, r4, r4\n\tadd\t33, r3, r5\n\tshr.s!\t5, r5, r5\n\tjump.eq\t@.BB3_235\n\tadd\tstack[@calldatasize], r0, r6\n\tptr.add\tstack[@ptr_calldata], r6, r6\n\tadd\tr0, r0, r7\n.BB3_8:\n\tshl.s\t5, r7, r8\n\tadd\tr4, r8, r9\n\tptr.add\tr6, r8, r8\n\tld\tr8, r8\n\tst.1\tr9, r8\n\tadd\t1, r7, r7\n\tsub!\tr7, r5, r8\n\tjump.lt\t@.BB3_8\n.BB3_235:\n\tsub.s!\t0, r0, r5\n\tjump.eq\t@.BB3_10\n.BB3_10:\n\tld.1\tr1, r5\n\tsub.s!\t0, r5, r5\n\tjump.eq\t@.BB3_11\n\tld.1\tr4, r5\n\tand\t@CPI3_5[0], r5, r5\n\tshl.s\t248, r3, r6\n\tor\tr6, r5, r5\n\tadd\t@CPI3_8[0], r5, r5\n\tst.1\tr4, r5\n\tshl.s\t3, r3, r3\n\tsub\t248, r3, r3\n\tshl\tr2, r3, r2\n\tsub.s!\t255, r3, r3\n\tadd.gt\t0, r0, r2\n\tadd\t33, r1, r3\n\tst.1\tr3, r2\n\tjump\t@.BB3_18\n.BB3_13:\n\tld.1\t64, r1\n\tsub.s!\t@CPI3_3[0], r1, r3\n\tjump.gt\t@.BB3_5\n\tadd\t64, r1, r3\n\tst.1\t64, r3\n\tadd\t1, r0, r3\n\tst.1.inc\tr1, r3, r3\n\tadd\tstack[@calldatasize], r0, r4\n\tptr.add\tstack[@ptr_calldata], r4, r4\n\tadd\tr0, r0, r5\n.BB3_15:\n\tshl.s\t5, r5, r6\n\tadd\tr3, r6, r7\n\tptr.add\tr4, r6, r6\n\tld\tr6, r6\n\tst.1\tr7, r6\n\tadd!\t1, r5, r5\n\tadd\t0, r0, r6\n\tadd.eq\t1, r0, r6\n\tand!\t1, r6, r6\n\tjump.ne\t@.BB3_15\n\tld.1\tr1, r4\n\tsub.s!\t0, r4, r4\n\tjump.eq\t@.BB3_11\n\tshl.s\t248, r2, r4\n\tadd\t@CPI3_4[0], r0, r5\n\tsub.s!\t0, r2, r2\n\tadd\tr4, r0, r2\n\tadd.eq\tr5, r0, r2\n\tld.1\tr3, r4\n\tand\t@CPI3_5[0], r4, r4\n\tor\tr4, r2, r2\n\tst.1\tr3, r2\n.BB3_18:\n\tadd\tstack-[4], r0, r2\n\tadd\t256, r2, r2\n\tptr.add\tstack[@ptr_calldata], r2, r2\n\tld\tr2, r2\n\tsub.s!\t128, r2, r3\n\tjump.lt\t@.BB3_27\n\tshr.s\t128, r2, r3\n\tsub.s!\t@CPI3_6[0], r2, r4\n\tadd.le\tr2, r0, r3\n\tsub.s!\t@CPI3_6[0], r2, r4\n\tadd\t0, r0, r4\n\tadd.gt\t16, r0, r4\n\tor\t8, r4, r5\n\tsub.s!\t@CPI3_7[0], r3, r6\n\tadd.gt\tr5, r0, r4\n\tshr.s\t64, r3, r5\n\tsub.s!\t@CPI3_7[0], r3, r6\n\tadd.gt\tr5, r0, r3\n\tor\t4, r4, r5\n\tsub.s!\t@CPI3_1[0], r3, r6\n\tadd.gt\tr5, r0, r4\n\tshr.s\t32, r3, r5\n\tsub.s!\t@CPI3_1[0], r3, r6\n\tadd.gt\tr5, r0, r3\n\tor\t2, r4, r5\n\tsub.s!\t65535, r3, r6\n\tadd.gt\tr5, r0, r4\n\tshr.s\t16, r3, r5\n\tadd.gt\tr5, r0, r3\n\tsub.s!\t255, r3, r3\n\tadd\t0, r0, r3\n\tadd.gt\t1, r0, r3\n\tadd\tr4, r3, r4\n\tsub.s\t32, r0, r3\n\tadd\t65, r4, r5\n\tand\tr5, r3, r5\n\tld.1\t64, r3\n\tadd\tr3, r5, r5\n\tsub!\tr5, r3, r6\n\tadd\t0, r0, r6\n\tadd.lt\t1, r0, r6\n\tsub.s!\t@CPI3_7[0], r5, r7\n\tjump.gt\t@.BB3_5\n\tand!\t1, r6, r6\n\tjump.ne\t@.BB3_5\n\tst.1\t64, r5\n\tadd\t2, r4, r5\n\tst.1.inc\tr3, r5, r5\n\tadd\t33, r4, r6\n\tshr.s!\t5, r6, r6\n\tjump.eq\t@.BB3_234\n\tadd\tstack[@calldatasize], r0, r7\n\tptr.add\tstack[@ptr_calldata], r7, r7\n\tadd\tr0, r0, r8\n.BB3_23:\n\tshl.s\t5, r8, r9\n\tadd\tr5, r9, r10\n\tptr.add\tr7, r9, r9\n\tld\tr9, r9\n\tst.1\tr10, r9\n\tadd\t1, r8, r8\n\tsub!\tr8, r6, r9\n\tjump.lt\t@.BB3_23\n.BB3_234:\n\tsub.s!\t0, r0, r6\n\tjump.eq\t@.BB3_25\n.BB3_25:\n\tld.1\tr3, r6\n\tsub.s!\t0, r6, r6\n\tjump.eq\t@.BB3_11\n\tld.1\tr5, r6\n\tand\t@CPI3_5[0], r6, r6\n\tshl.s\t248, r4, r7\n\tor\tr7, r6, r6\n\tadd\t@CPI3_8[0], r6, r6\n\tst.1\tr5, r6\n\tshl.s\t3, r4, r4\n\tsub\t248, r4, r4\n\tshl\tr2, r4, r2\n\tsub.s!\t255, r4, r4\n\tadd.gt\t0, r0, r2\n\tadd\t33, r3, r4\n\tst.1\tr4, r2\n\tjump\t@.BB3_32\n.BB3_27:\n\tld.1\t64, r3\n\tsub.s!\t@CPI3_3[0], r3, r4\n\tjump.gt\t@.BB3_5\n\tadd\t64, r3, r4\n\tst.1\t64, r4\n\tadd\t1, r0, r4\n\tst.1.inc\tr3, r4, r4\n\tadd\tstack[@calldatasize], r0, r5\n\tptr.add\tstack[@ptr_calldata], r5, r5\n\tadd\tr0, r0, r6\n.BB3_29:\n\tshl.s\t5, r6, r7\n\tadd\tr4, r7, r8\n\tptr.add\tr5, r7, r7\n\tld\tr7, r7\n\tst.1\tr8, r7\n\tadd!\t1, r6, r6\n\tadd\t0, r0, r7\n\tadd.eq\t1, r0, r7\n\tand!\t1, r7, r7\n\tjump.ne\t@.BB3_29\n\tld.1\tr3, r5\n\tsub.s!\t0, r5, r5\n\tjump.eq\t@.BB3_11\n\tshl.s\t248, r2, r5\n\tadd\t@CPI3_4[0], r0, r6\n\tsub.s!\t0, r2, r2\n\tadd\tr5, r0, r2\n\tadd.eq\tr6, r0, r2\n\tld.1\tr4, r5\n\tand\t@CPI3_5[0], r5, r5\n\tor\tr5, r2, r2\n\tst.1\tr4, r2\n.BB3_32:\n\tadd\tstack-[4], r0, r2\n\tadd\t192, r2, r2\n\tptr.add\tstack[@ptr_calldata], r2, r2\n\tld\tr2, r2\n\tsub.s!\t128, r2, r4\n\tjump.lt\t@.BB3_41\n\tshr.s\t128, r2, r4\n\tsub.s!\t@CPI3_6[0], r2, r5\n\tadd.le\tr2, r0, r4\n\tsub.s!\t@CPI3_6[0], r2, r5\n\tadd\t0, r0, r5\n\tadd.gt\t16, r0, r5\n\tor\t8, r5, r6\n\tsub.s!\t@CPI3_7[0], r4, r7\n\tadd.gt\tr6, r0, r5\n\tshr.s\t64, r4, r6\n\tsub.s!\t@CPI3_7[0], r4, r7\n\tadd.gt\tr6, r0, r4\n\tor\t4, r5, r6\n\tsub.s!\t@CPI3_1[0], r4, r7\n\tadd.gt\tr6, r0, r5\n\tshr.s\t32, r4, r6\n\tsub.s!\t@CPI3_1[0], r4, r7\n\tadd.gt\tr6, r0, r4\n\tor\t2, r5, r6\n\tsub.s!\t65535, r4, r7\n\tadd.gt\tr6, r0, r5\n\tshr.s\t16, r4, r6\n\tadd.gt\tr6, r0, r4\n\tsub.s!\t255, r4, r4\n\tadd\t0, r0, r4\n\tadd.gt\t1, r0, r4\n\tadd\tr5, r4, r5\n\tsub.s\t32, r0, r4\n\tadd\t65, r5, r6\n\tand\tr6, r4, r6\n\tld.1\t64, r4\n\tadd\tr4, r6, r6\n\tsub!\tr6, r4, r7\n\tadd\t0, r0, r7\n\tadd.lt\t1, r0, r7\n\tsub.s!\t@CPI3_7[0], r6, r8\n\tjump.gt\t@.BB3_5\n\tand!\t1, r7, r7\n\tjump.ne\t@.BB3_5\n\tst.1\t64, r6\n\tadd\t2, r5, r6\n\tst.1.inc\tr4, r6, r6\n\tadd\t33, r5, r7\n\tshr.s!\t5, r7, r7\n\tjump.eq\t@.BB3_233\n\tadd\tstack[@calldatasize], r0, r8\n\tptr.add\tstack[@ptr_calldata], r8, r8\n\tadd\tr0, r0, r9\n.BB3_37:\n\tshl.s\t5, r9, r10\n\tadd\tr6, r10, r11\n\tptr.add\tr8, r10, r10\n\tld\tr10, r10\n\tst.1\tr11, r10\n\tadd\t1, r9, r9\n\tsub!\tr9, r7, r10\n\tjump.lt\t@.BB3_37\n.BB3_233:\n\tsub.s!\t0, r0, r7\n\tjump.eq\t@.BB3_39\n.BB3_39:\n\tld.1\tr4, r7\n\tsub.s!\t0, r7, r7\n\tjump.eq\t@.BB3_11\n\tld.1\tr6, r7\n\tand\t@CPI3_5[0], r7, r7\n\tshl.s\t248, r5, r8\n\tor\tr8, r7, r7\n\tadd\t@CPI3_8[0], r7, r7\n\tst.1\tr6, r7\n\tshl.s\t3, r5, r5\n\tsub\t248, r5, r5\n\tshl\tr2, r5, r2\n\tsub.s!\t255, r5, r5\n\tadd.gt\t0, r0, r2\n\tadd\t33, r4, r5\n\tst.1\tr5, r2\n\tjump\t@.BB3_46\n.BB3_41:\n\tld.1\t64, r4\n\tsub.s!\t@CPI3_3[0], r4, r5\n\tjump.gt\t@.BB3_5\n\tadd\t64, r4, r5\n\tst.1\t64, r5\n\tadd\t1, r0, r5\n\tst.1.inc\tr4, r5, r5\n\tadd\tstack[@calldatasize], r0, r6\n\tptr.add\tstack[@ptr_calldata], r6, r6\n\tadd\tr0, r0, r7\n.BB3_43:\n\tshl.s\t5, r7, r8\n\tadd\tr5, r8, r9\n\tptr.add\tr6, r8, r8\n\tld\tr8, r8\n\tst.1\tr9, r8\n\tadd!\t1, r7, r7\n\tadd\t0, r0, r8\n\tadd.eq\t1, r0, r8\n\tand!\t1, r8, r8\n\tjump.ne\t@.BB3_43\n\tld.1\tr4, r6\n\tsub.s!\t0, r6, r6\n\tjump.eq\t@.BB3_11\n\tshl.s\t248, r2, r6\n\tadd\t@CPI3_4[0], r0, r7\n\tsub.s!\t0, r2, r2\n\tadd\tr6, r0, r2\n\tadd.eq\tr7, r0, r2\n\tld.1\tr5, r6\n\tand\t@CPI3_5[0], r6, r6\n\tor\tr6, r2, r2\n\tst.1\tr5, r2\n.BB3_46:\n\tadd\tstack-[4], r0, r2\n\tadd\t160, r2, r2\n\tptr.add\tstack[@ptr_calldata], r2, r2\n\tld\tr2, r2\n\tsub.s!\t128, r2, r5\n\tjump.lt\t@.BB3_55\n\tshr.s\t128, r2, r5\n\tsub.s!\t@CPI3_6[0], r2, r6\n\tadd.le\tr2, r0, r5\n\tsub.s!\t@CPI3_6[0], r2, r6\n\tadd\t0, r0, r6\n\tadd.gt\t16, r0, r6\n\tor\t8, r6, r7\n\tsub.s!\t@CPI3_7[0], r5, r8\n\tadd.gt\tr7, r0, r6\n\tshr.s\t64, r5, r7\n\tsub.s!\t@CPI3_7[0], r5, r8\n\tadd.gt\tr7, r0, r5\n\tor\t4, r6, r7\n\tsub.s!\t@CPI3_1[0], r5, r8\n\tadd.gt\tr7, r0, r6\n\tshr.s\t32, r5, r7\n\tsub.s!\t@CPI3_1[0], r5, r8\n\tadd.gt\tr7, r0, r5\n\tor\t2, r6, r7\n\tsub.s!\t65535, r5, r8\n\tadd.gt\tr7, r0, r6\n\tshr.s\t16, r5, r7\n\tadd.gt\tr7, r0, r5\n\tsub.s!\t255, r5, r5\n\tadd\t0, r0, r5\n\tadd.gt\t1, r0, r5\n\tadd\tr6, r5, r6\n\tsub.s\t32, r0, r5\n\tadd\t65, r6, r7\n\tand\tr7, r5, r7\n\tld.1\t64, r5\n\tadd\tr5, r7, r7\n\tsub!\tr7, r5, r8\n\tadd\t0, r0, r8\n\tadd.lt\t1, r0, r8\n\tsub.s!\t@CPI3_7[0], r7, r9\n\tjump.gt\t@.BB3_5\n\tand!\t1, r8, r8\n\tjump.ne\t@.BB3_5\n\tst.1\t64, r7\n\tadd\t2, r6, r7\n\tst.1.inc\tr5, r7, r7\n\tadd\t33, r6, r8\n\tshr.s!\t5, r8, r8\n\tjump.eq\t@.BB3_232\n\tadd\tstack[@calldatasize], r0, r9\n\tptr.add\tstack[@ptr_calldata], r9, r9\n\tadd\tr0, r0, r10\n.BB3_51:\n\tshl.s\t5, r10, r11\n\tadd\tr7, r11, r12\n\tptr.add\tr9, r11, r11\n\tld\tr11, r11\n\tst.1\tr12, r11\n\tadd\t1, r10, r10\n\tsub!\tr10, r8, r11\n\tjump.lt\t@.BB3_51\n.BB3_232:\n\tsub.s!\t0, r0, r8\n\tjump.eq\t@.BB3_53\n.BB3_53:\n\tld.1\tr5, r8\n\tsub.s!\t0, r8, r8\n\tjump.eq\t@.BB3_11\n\tld.1\tr7, r8\n\tand\t@CPI3_5[0], r8, r8\n\tshl.s\t248, r6, r9\n\tor\tr9, r8, r8\n\tadd\t@CPI3_8[0], r8, r8\n\tst.1\tr7, r8\n\tshl.s\t3, r6, r6\n\tsub\t248, r6, r6\n\tshl\tr2, r6, r2\n\tsub.s!\t255, r6, r6\n\tadd.gt\t0, r0, r2\n\tadd\t33, r5, r6\n\tst.1\tr6, r2\n\tjump\t@.BB3_60\n.BB3_55:\n\tld.1\t64, r5\n\tsub.s!\t@CPI3_3[0], r5, r6\n\tjump.gt\t@.BB3_5\n\tadd\t64, r5, r6\n\tst.1\t64, r6\n\tadd\t1, r0, r6\n\tst.1.inc\tr5, r6, r6\n\tadd\tstack[@calldatasize], r0, r7\n\tptr.add\tstack[@ptr_calldata], r7, r7\n\tadd\tr0, r0, r8\n.BB3_57:\n\tshl.s\t5, r8, r9\n\tadd\tr6, r9, r10\n\tptr.add\tr7, r9, r9\n\tld\tr9, r9\n\tst.1\tr10, r9\n\tadd!\t1, r8, r8\n\tadd\t0, r0, r9\n\tadd.eq\t1, r0, r9\n\tand!\t1, r9, r9\n\tjump.ne\t@.BB3_57\n\tld.1\tr5, r7\n\tsub.s!\t0, r7, r7\n\tjump.eq\t@.BB3_11\n\tshl.s\t248, r2, r7\n\tadd\t@CPI3_4[0], r0, r8\n\tsub.s!\t0, r2, r2\n\tadd\tr7, r0, r2\n\tadd.eq\tr8, r0, r2\n\tld.1\tr6, r7\n\tand\t@CPI3_5[0], r7, r7\n\tor\tr7, r2, r2\n\tst.1\tr6, r2\n.BB3_60:\n\tadd\tstack-[4], r0, r2\n\tadd\t96, r2, r2\n\tptr.add\tstack[@ptr_calldata], r2, r2\n\tld\tr2, r2\n\tsub.s!\t128, r2, r6\n\tjump.lt\t@.BB3_69\n\tshr.s\t128, r2, r6\n\tsub.s!\t@CPI3_6[0], r2, r7\n\tadd.le\tr2, r0, r6\n\tsub.s!\t@CPI3_6[0], r2, r7\n\tadd\t0, r0, r7\n\tadd.gt\t16, r0, r7\n\tor\t8, r7, r8\n\tsub.s!\t@CPI3_7[0], r6, r9\n\tadd.gt\tr8, r0, r7\n\tshr.s\t64, r6, r8\n\tsub.s!\t@CPI3_7[0], r6, r9\n\tadd.gt\tr8, r0, r6\n\tor\t4, r7, r8\n\tsub.s!\t@CPI3_1[0], r6, r9\n\tadd.gt\tr8, r0, r7\n\tshr.s\t32, r6, r8\n\tsub.s!\t@CPI3_1[0], r6, r9\n\tadd.gt\tr8, r0, r6\n\tor\t2, r7, r8\n\tsub.s!\t65535, r6, r9\n\tadd.gt\tr8, r0, r7\n\tshr.s\t16, r6, r8\n\tadd.gt\tr8, r0, r6\n\tsub.s!\t255, r6, r6\n\tadd\t0, r0, r6\n\tadd.gt\t1, r0, r6\n\tadd\tr7, r6, r7\n\tsub.s\t32, r0, r6\n\tadd\t65, r7, r8\n\tand\tr8, r6, r8\n\tld.1\t64, r6\n\tadd\tr6, r8, r8\n\tsub!\tr8, r6, r9\n\tadd\t0, r0, r9\n\tadd.lt\t1, r0, r9\n\tsub.s!\t@CPI3_7[0], r8, r10\n\tjump.gt\t@.BB3_5\n\tand!\t1, r9, r9\n\tjump.ne\t@.BB3_5\n\tst.1\t64, r8\n\tadd\t2, r7, r8\n\tst.1.inc\tr6, r8, r8\n\tadd\t33, r7, r9\n\tshr.s!\t5, r9, r9\n\tjump.eq\t@.BB3_231\n\tadd\tstack[@calldatasize], r0, r10\n\tptr.add\tstack[@ptr_calldata], r10, r10\n\tadd\tr0, r0, r11\n.BB3_65:\n\tshl.s\t5, r11, r12\n\tadd\tr8, r12, r13\n\tptr.add\tr10, r12, r12\n\tld\tr12, r12\n\tst.1\tr13, r12\n\tadd\t1, r11, r11\n\tsub!\tr11, r9, r12\n\tjump.lt\t@.BB3_65\n.BB3_231:\n\tsub.s!\t0, r0, r9\n\tjump.eq\t@.BB3_67\n.BB3_67:\n\tld.1\tr6, r9\n\tsub.s!\t0, r9, r9\n\tjump.eq\t@.BB3_11\n\tld.1\tr8, r9\n\tand\t@CPI3_5[0], r9, r9\n\tshl.s\t248, r7, r10\n\tor\tr10, r9, r9\n\tadd\t@CPI3_8[0], r9, r9\n\tst.1\tr8, r9\n\tshl.s\t3, r7, r7\n\tsub\t248, r7, r7\n\tshl\tr2, r7, r2\n\tsub.s!\t255, r7, r7\n\tadd.gt\t0, r0, r2\n\tadd\t33, r6, r7\n\tst.1\tr7, r2\n\tjump\t@.BB3_74\n.BB3_69:\n\tld.1\t64, r6\n\tsub.s!\t@CPI3_3[0], r6, r7\n\tjump.gt\t@.BB3_5\n\tadd\t64, r6, r7\n\tst.1\t64, r7\n\tadd\t1, r0, r7\n\tst.1.inc\tr6, r7, r7\n\tadd\tstack[@calldatasize], r0, r8\n\tptr.add\tstack[@ptr_calldata], r8, r8\n\tadd\tr0, r0, r9\n.BB3_71:\n\tshl.s\t5, r9, r10\n\tadd\tr7, r10, r11\n\tptr.add\tr8, r10, r10\n\tld\tr10, r10\n\tst.1\tr11, r10\n\tadd!\t1, r9, r9\n\tadd\t0, r0, r10\n\tadd.eq\t1, r0, r10\n\tand!\t1, r10, r10\n\tjump.ne\t@.BB3_71\n\tld.1\tr6, r8\n\tsub.s!\t0, r8, r8\n\tjump.eq\t@.BB3_11\n\tshl.s\t248, r2, r8\n\tadd\t@CPI3_4[0], r0, r9\n\tsub.s!\t0, r2, r2\n\tadd\tr8, r0, r2\n\tadd.eq\tr9, r0, r2\n\tld.1\tr7, r8\n\tand\t@CPI3_5[0], r8, r8\n\tor\tr8, r2, r2\n\tst.1\tr7, r2\n.BB3_74:\n\tld.1\t64, r7\n\tsub.s!\t@CPI3_3[0], r7, r2\n\tjump.gt\t@.BB3_5\n\tadd\tstack-[4], r0, r10\n\tadd\t64, r10, r2\n\tptr.add\tstack[@ptr_calldata], r2, r2\n\tld\tr2, r2\n\tadd\t64, r7, r8\n\tst.1\t64, r8\n\tadd\t32, r7, r8\n\tadd\t@CPI3_9[0], r0, r9\n\tst.1\tr8, r9\n\tadd\t21, r0, r8\n\tst.1\tr7, r8\n\tadd\t33, r7, r8\n\tshl.s\t96, r2, r2\n\tst.1\tr8, r2\n\tadd\t288, r10, r2\n\tptr.add\tstack[@ptr_calldata], r2, r2\n\tld\tr2, r2\n\tsub.s!\t128, r2, r8\n\tjump.lt\t@.BB3_84\n\tshr.s\t128, r2, r8\n\tsub.s!\t@CPI3_6[0], r2, r9\n\tadd.le\tr2, r0, r8\n\tsub.s!\t@CPI3_6[0], r2, r9\n\tadd\t0, r0, r9\n\tadd.gt\t16, r0, r9\n\tor\t8, r9, r10\n\tsub.s!\t@CPI3_7[0], r8, r11\n\tadd.gt\tr10, r0, r9\n\tshr.s\t64, r8, r10\n\tsub.s!\t@CPI3_7[0], r8, r11\n\tadd.gt\tr10, r0, r8\n\tor\t4, r9, r10\n\tsub.s!\t@CPI3_1[0], r8, r11\n\tadd.gt\tr10, r0, r9\n\tshr.s\t32, r8, r10\n\tsub.s!\t@CPI3_1[0], r8, r11\n\tadd.gt\tr10, r0, r8\n\tor\t2, r9, r10\n\tsub.s!\t65535, r8, r11\n\tadd.gt\tr10, r0, r9\n\tshr.s\t16, r8, r10\n\tadd.gt\tr10, r0, r8\n\tsub.s!\t255, r8, r8\n\tadd\t0, r0, r8\n\tadd.gt\t1, r0, r8\n\tadd\tr9, r8, r9\n\tsub.s\t32, r0, r8\n\tadd\t65, r9, r10\n\tand\tr10, r8, r10\n\tld.1\t64, r8\n\tadd\tr8, r10, r10\n\tsub!\tr10, r8, r11\n\tadd\t0, r0, r11\n\tadd.lt\t1, r0, r11\n\tsub.s!\t@CPI3_7[0], r10, r12\n\tjump.gt\t@.BB3_5\n\tand!\t1, r11, r11\n\tjump.ne\t@.BB3_5\n\tst.1\t64, r10\n\tadd\t2, r9, r10\n\tst.1.inc\tr8, r10, r10\n\tadd\t33, r9, r11\n\tshr.s!\t5, r11, r11\n\tjump.eq\t@.BB3_230\n\tadd\tstack[@calldatasize], r0, r12\n\tptr.add\tstack[@ptr_calldata], r12, r12\n\tadd\tr0, r0, r13\n.BB3_80:\n\tshl.s\t5, r13, r14\n\tadd\tr10, r14, r15\n\tptr.add\tr12, r14, r14\n\tld\tr14, r14\n\tst.1\tr15, r14\n\tadd\t1, r13, r13\n\tsub!\tr13, r11, r14\n\tjump.lt\t@.BB3_80\n.BB3_230:\n\tsub.s!\t0, r0, r11\n\tjump.eq\t@.BB3_82\n.BB3_82:\n\tld.1\tr8, r11\n\tsub.s!\t0, r11, r11\n\tjump.eq\t@.BB3_11\n\tld.1\tr10, r11\n\tand\t@CPI3_5[0], r11, r11\n\tshl.s\t248, r9, r12\n\tor\tr12, r11, r11\n\tadd\t@CPI3_8[0], r11, r11\n\tst.1\tr10, r11\n\tshl.s\t3, r9, r9\n\tsub\t248, r9, r9\n\tshl\tr2, r9, r2\n\tsub.s!\t255, r9, r9\n\tadd.gt\t0, r0, r2\n\tadd\t33, r8, r9\n\tst.1\tr9, r2\n\tjump\t@.BB3_89\n.BB3_84:\n\tld.1\t64, r8\n\tsub.s!\t@CPI3_3[0], r8, r9\n\tjump.gt\t@.BB3_5\n\tadd\t64, r8, r9\n\tst.1\t64, r9\n\tadd\t1, r0, r9\n\tst.1.inc\tr8, r9, r9\n\tadd\tstack[@calldatasize], r0, r10\n\tptr.add\tstack[@ptr_calldata], r10, r10\n\tadd\tr0, r0, r11\n.BB3_86:\n\tshl.s\t5, r11, r12\n\tadd\tr9, r12, r13\n\tptr.add\tr10, r12, r12\n\tld\tr12, r12\n\tst.1\tr13, r12\n\tadd!\t1, r11, r11\n\tadd\t0, r0, r12\n\tadd.eq\t1, r0, r12\n\tand!\t1, r12, r12\n\tjump.ne\t@.BB3_86\n\tld.1\tr8, r10\n\tsub.s!\t0, r10, r10\n\tjump.eq\t@.BB3_11\n\tshl.s\t248, r2, r10\n\tadd\t@CPI3_4[0], r0, r11\n\tsub.s!\t0, r2, r2\n\tadd\tr10, r0, r2\n\tadd.eq\tr11, r0, r2\n\tld.1\tr9, r10\n\tand\t@CPI3_5[0], r10, r10\n\tor\tr10, r2, r2\n\tst.1\tr9, r2\n.BB3_89:\n\tld.1\t64, r2\n\tadd\t32, r2, r9\n\tld.1\tr1, r10\n\tsub.s!\t0, r10, r11\n\tjump.eq\t@.BB3_92\n\tadd\tr0, r0, r11\n.BB3_91:\n\tadd\tr11, r9, r12\n\tadd\t32, r11, r11\n\tadd\tr11, r1, r13\n\tld.1\tr13, r13\n\tst.1\tr12, r13\n\tsub!\tr11, r10, r12\n\tjump.lt\t@.BB3_91\n.BB3_92:\n\tadd\tr10, r9, r1\n\tst.1\tr1, r0\n\tld.1\tr3, r9\n\tsub.s!\t0, r9, r10\n\tjump.eq\t@.BB3_95\n\tadd\tr0, r0, r10\n.BB3_94:\n\tadd\tr10, r1, r11\n\tadd\t32, r10, r10\n\tadd\tr10, r3, r12\n\tld.1\tr12, r12\n\tst.1\tr11, r12\n\tsub!\tr10, r9, r11\n\tjump.lt\t@.BB3_94\n.BB3_95:\n\tadd\tr9, r1, r1\n\tst.1\tr1, r0\n\tld.1\tr4, r3\n\tsub.s!\t0, r3, r9\n\tjump.eq\t@.BB3_98\n\tadd\tr0, r0, r9\n.BB3_97:\n\tadd\tr9, r1, r10\n\tadd\t32, r9, r9\n\tadd\tr9, r4, r11\n\tld.1\tr11, r11\n\tst.1\tr10, r11\n\tsub!\tr9, r3, r10\n\tjump.lt\t@.BB3_97\n.BB3_98:\n\tadd\tr3, r1, r1\n\tst.1\tr1, r0\n\tld.1\tr5, r3\n\tsub.s!\t0, r3, r4\n\tjump.eq\t@.BB3_101\n\tadd\tr0, r0, r4\n.BB3_100:\n\tadd\tr4, r1, r9\n\tadd\t32, r4, r4\n\tadd\tr4, r5, r10\n\tld.1\tr10, r10\n\tst.1\tr9, r10\n\tsub!\tr4, r3, r9\n\tjump.lt\t@.BB3_100\n.BB3_101:\n\tadd\tr3, r1, r1\n\tst.1\tr1, r0\n\tld.1\tr6, r3\n\tsub.s!\t0, r3, r4\n\tjump.eq\t@.BB3_104\n\tadd\tr0, r0, r4\n.BB3_103:\n\tadd\tr4, r1, r5\n\tadd\t32, r4, r4\n\tadd\tr4, r6, r9\n\tld.1\tr9, r9\n\tst.1\tr5, r9\n\tsub!\tr4, r3, r5\n\tjump.lt\t@.BB3_103\n.BB3_104:\n\tadd\tr3, r1, r1\n\tst.1\tr1, r0\n\tld.1\tr7, r3\n\tsub.s!\t0, r3, r4\n\tjump.eq\t@.BB3_107\n\tadd\tr0, r0, r4\n.BB3_106:\n\tadd\tr4, r1, r5\n\tadd\t32, r4, r4\n\tadd\tr4, r7, r6\n\tld.1\tr6, r6\n\tst.1\tr5, r6\n\tsub!\tr4, r3, r5\n\tjump.lt\t@.BB3_106\n.BB3_107:\n\tadd\tr3, r1, r1\n\tst.1\tr1, r0\n\tld.1\tr8, r3\n\tsub.s!\t0, r3, r4\n\tjump.eq\t@.BB3_110\n\tadd\tr0, r0, r4\n.BB3_109:\n\tadd\tr4, r1, r5\n\tadd\t32, r4, r4\n\tadd\tr4, r8, r6\n\tld.1\tr6, r6\n\tst.1\tr5, r6\n\tsub!\tr4, r3, r5\n\tjump.lt\t@.BB3_109\n.BB3_110:\n\tadd\tr3, r1, r1\n\tst.1\tr1, r0\n\tsub\tr1, r2, r1\n\tsub.s\t32, r1, r3\n\tst.1\tr2, r3\n\tadd\t31, r1, r1\n\tsub.s\t32, r0, r3\n\tadd\tr3, r0, stack-[2]\n\tand\tr1, r3, r1\n\tadd\tr1, r2, r5\n\tsub!\tr5, r1, r1\n\tadd\t0, r0, r1\n\tadd.lt\t1, r0, r1\n\tsub.s!\t@CPI3_7[0], r5, r3\n\tjump.gt\t@.BB3_5\n\tand!\t1, r1, r1\n\tjump.ne\t@.BB3_5\n\tst.1\t64, r5\n\tsub.s\t31, r0, r1\n\tadd\tstack-[4], r0, r3\n\tsub\tr1, r3, r4\n\tadd\t448, r3, r1\n\tptr.add\tstack[@ptr_calldata], r0, r7\n\tadd\tr1, r0, stack-[1]\n\tptr.add\tr7, r1, r1\n\tld\tr1, r6\n\tadd\tstack[@calldatasize], r0, r8\n\tadd\tr8, r4, r1\n\tadd\t@CPI3_4[0], r0, r9\n\tsub!\tr6, r1, r10\n\tadd\t0, r0, r10\n\tadd.ge\tr9, r0, r10\n\tand\t@CPI3_4[0], r1, r1\n\tand\t@CPI3_4[0], r6, r11\n\tsub!\tr11, r1, r12\n\tadd.ge\t0, r0, r9\n\txor\tr11, r1, r1\n\tsub.s!\t@CPI3_4[0], r1, r1\n\tadd\tr10, r0, r1\n\tadd.eq\tr9, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB3_1\n\tadd\tstack-[4], r0, r1\n\tadd\tr6, r1, r1\n\tptr.add\tr7, r1, r6\n\tld\tr6, r6\n\tsub.s!\t@CPI3_7[0], r6, r9\n\tjump.gt\t@.BB3_1\n\tsub\tr8, r6, r9\n\tadd\t32, r1, r8\n\tadd\t@CPI3_4[0], r0, r1\n\tsub!\tr8, r9, r10\n\tadd\t0, r0, r10\n\tadd.gt\tr1, r0, r10\n\tand\t@CPI3_4[0], r9, r9\n\tand\t@CPI3_4[0], r8, r11\n\tsub!\tr11, r9, r12\n\tadd.ge\t0, r0, r1\n\txor\tr11, r9, r9\n\tsub.s!\t@CPI3_4[0], r9, r9\n\tadd.ne\tr10, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB3_1\n\tsub.s!\t1, r6, r1\n\tjump.ne\t@.BB3_164\n\tptr.add\tr7, r8, r1\n\tld\tr1, r1\n\tsub.s\t1, r0, r3\n\tadd\t@CPI3_4[0], r0, r6\n\tsub!\tr1, r3, r3\n\tadd\t0, r0, r3\n\tadd.gt\tr6, r0, r3\n\tand\t@CPI3_4[0], r1, r1\n\tsub.s!\t@CPI3_4[0], r1, r7\n\tadd.ge\t0, r0, r6\n\txor\t@CPI3_4[0], r1, r1\n\tsub.s!\t@CPI3_4[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr6, r0, r1\n\tadd\t96, r0, r6\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB3_116\n\tsub.s!\t@CPI3_3[0], r5, r1\n\tjump.gt\t@.BB3_5\n\tadd\t64, r5, r1\n\tst.1\t64, r1\n\tadd\t32, r5, r1\n\tadd\t@CPI3_8[0], r0, r3\n\tst.1\tr1, r3\n\tadd\t1, r0, r1\n\tst.1\tr5, r1\n\tadd\tr5, r0, r6\n\tjump\t@.BB3_116\n.BB3_164:\n\tsub.s!\t56, r6, r1\n\tjump.lt\t@.BB3_170\n\tshr.s\t32, r6, r1\n\tsub.s!\t@CPI3_1[0], r6, r3\n\tadd\tr6, r0, r3\n\tadd.gt\tr1, r0, r3\n\tsub.s!\t@CPI3_1[0], r6, r1\n\tadd\t0, r0, r1\n\tadd.gt\t4, r0, r1\n\tor\t2, r1, r7\n\tsub.s!\t65535, r3, r8\n\tadd.gt\tr7, r0, r1\n\tshr.s\t16, r3, r7\n\tadd.gt\tr7, r0, r3\n\tsub.s!\t255, r3, r3\n\tadd\t0, r0, r7\n\tadd.gt\t1, r0, r7\n\tsub.s!\t@CPI3_3[0], r5, r3\n\tjump.gt\t@.BB3_5\n\tor\tr1, r7, r7\n\tadd\t64, r5, r1\n\tst.1\t64, r1\n\tadd\t2, r7, r1\n\tst.1.inc\tr5, r1, r8\n\tadd\tstack[@calldatasize], r0, r1\n\tptr.add\tstack[@ptr_calldata], r1, r9\n\tadd\tr0, r0, r10\n.BB3_167:\n\tshl.s\t5, r10, r1\n\tadd\tr8, r1, r3\n\tptr.add\tr9, r1, r1\n\tld\tr1, r1\n\tst.1\tr3, r1\n\tadd!\t1, r10, r10\n\tadd\t0, r0, r1\n\tadd.eq\t1, r0, r1\n\tand!\t1, r1, r1\n\tjump.ne\t@.BB3_167\n\tld.1\tr5, r1\n\tsub.s!\t0, r1, r1\n\tjump.eq\t@.BB3_11\n\tld.1\tr8, r1\n\tand\t@CPI3_5[0], r1, r1\n\tshl.s\t248, r7, r3\n\tor\tr3, r1, r1\n\tor\t@CPI3_10[0], r1, r1\n\tst.1\tr8, r1\n\tshl.s\t3, r7, r1\n\tsub\t248, r1, r1\n\tshl\tr6, r1, r1\n\tadd\t33, r5, r3\n\tst.1\tr3, r1\n\tadd\tr5, r0, r6\n\tjump\t@.BB3_116\n.BB3_170:\n\tsub.s!\t@CPI3_3[0], r5, r1\n\tjump.gt\t@.BB3_5\n\tadd\t64, r5, r1\n\tst.1\t64, r1\n\tadd\t1, r0, r1\n\tst.1.inc\tr5, r1, r7\n\tadd\tstack[@calldatasize], r0, r1\n\tptr.add\tstack[@ptr_calldata], r1, r8\n\tadd\tr0, r0, r9\n.BB3_172:\n\tshl.s\t5, r9, r1\n\tadd\tr7, r1, r3\n\tptr.add\tr8, r1, r1\n\tld\tr1, r1\n\tst.1\tr3, r1\n\tadd!\t1, r9, r9\n\tadd\t0, r0, r1\n\tadd.eq\t1, r0, r1\n\tand!\t1, r1, r1\n\tjump.ne\t@.BB3_172\n\tld.1\tr5, r1\n\tsub.s!\t0, r1, r1\n\tjump.eq\t@.BB3_11\n\tshl.s\t248, r6, r1\n\tld.1\tr7, r3\n\tand\t@CPI3_5[0], r3, r3\n\tor\tr3, r1, r1\n\txor\t@CPI3_4[0], r1, r1\n\tst.1\tr7, r1\n\tadd\tr5, r0, r6\n.BB3_116:\n\tld.1\t64, r5\n\tsub.s!\t@CPI3_3[0], r5, r1\n\tjump.gt\t@.BB3_5\n\tadd\t64, r5, r1\n\tst.1\t64, r1\n\tadd\t1, r0, r1\n\tadd\tr1, r0, stack-[3]\n\tst.1.inc\tr5, r1, r7\n\tadd\tstack[@calldatasize], r0, r1\n\tptr.add\tstack[@ptr_calldata], r1, r8\n\tadd\tr0, r0, r10\n.BB3_118:\n\tshl.s\t5, r10, r1\n\tadd\tr7, r1, r11\n\tptr.add\tr8, r1, r1\n\tld\tr1, r1\n\tst.1\tr11, r1\n\tadd!\t1, r10, r10\n\tadd\t0, r0, r1\n\tadd.eq\t1, r0, r1\n\tand!\t1, r1, r1\n\tjump.ne\t@.BB3_118\n\tld.1\tr5, r1\n\tsub.s!\t0, r1, r1\n\tjump.eq\t@.BB3_11\n\tld.1\tr7, r1\n\tand\t@CPI3_5[0], r1, r1\n\tor\t@CPI3_11[0], r1, r1\n\tst.1\tr7, r1\n\tadd\tstack[@calldatasize], r0, r8\n\tadd\tr8, r4, r1\n\tadd\tstack-[4], r0, r3\n\tadd\t480, r3, r10\n\tptr.add\tstack[@ptr_calldata], r0, r7\n\tptr.add\tr7, r10, r11\n\tld\tr11, r11\n\tadd\t@CPI3_4[0], r0, r12\n\tsub!\tr11, r1, r13\n\tadd\t0, r0, r13\n\tadd.ge\tr12, r0, r13\n\tand\t@CPI3_4[0], r1, r1\n\tand\t@CPI3_4[0], r11, r14\n\tsub!\tr14, r1, r15\n\tadd.ge\t0, r0, r12\n\txor\tr14, r1, r1\n\tsub.s!\t@CPI3_4[0], r1, r1\n\tadd\tr13, r0, r1\n\tadd.eq\tr12, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB3_1\n\tadd\tstack-[4], r0, r1\n\tadd\tr11, r1, r1\n\tptr.add\tr7, r1, r11\n\tld\tr11, r11\n\tsub.s!\t@CPI3_7[0], r11, r12\n\tjump.gt\t@.BB3_1\n\tsub\tr8, r11, r12\n\tadd\t32, r1, r8\n\tadd\t@CPI3_4[0], r0, r1\n\tsub!\tr8, r12, r13\n\tadd\t0, r0, r13\n\tadd.gt\tr1, r0, r13\n\tand\t@CPI3_4[0], r12, r12\n\tand\t@CPI3_4[0], r8, r14\n\tsub!\tr14, r12, r15\n\tadd.ge\t0, r0, r1\n\txor\tr14, r12, r12\n\tsub.s!\t@CPI3_4[0], r12, r12\n\tadd.ne\tr13, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB3_1\n\tsub.s!\t32, r11, r1\n\tjump.lt\t@.BB3_1\n\tptr.add\tr7, r8, r1\n\tld\tr1, r8\n\tsub.s!\t128, r8, r1\n\tjump.lt\t@.BB3_133\n\tshr.s\t128, r8, r1\n\tsub.s!\t@CPI3_6[0], r8, r7\n\tadd.le\tr8, r0, r1\n\tsub.s!\t@CPI3_6[0], r8, r7\n\tadd\t0, r0, r7\n\tadd.gt\t16, r0, r7\n\tor\t8, r7, r11\n\tsub.s!\t@CPI3_7[0], r1, r12\n\tadd.gt\tr11, r0, r7\n\tshr.s\t64, r1, r11\n\tsub.s!\t@CPI3_7[0], r1, r12\n\tadd.gt\tr11, r0, r1\n\tor\t4, r7, r11\n\tsub.s!\t@CPI3_1[0], r1, r12\n\tadd.gt\tr11, r0, r7\n\tshr.s\t32, r1, r11\n\tsub.s!\t@CPI3_1[0], r1, r12\n\tadd.gt\tr11, r0, r1\n\tor\t2, r7, r11\n\tsub.s!\t65535, r1, r12\n\tadd.gt\tr11, r0, r7\n\tshr.s\t16, r1, r11\n\tadd.gt\tr11, r0, r1\n\tsub.s!\t255, r1, r1\n\tadd\t0, r0, r1\n\tadd.gt\t1, r0, r1\n\tadd\tr7, r1, r11\n\tadd\t65, r11, r1\n\tadd\tstack-[2], r0, r3\n\tand\tr1, r3, r1\n\tld.1\t64, r7\n\tadd\tr7, r1, r1\n\tsub!\tr1, r7, r12\n\tadd\t0, r0, r12\n\tadd.lt\t1, r0, r12\n\tsub.s!\t@CPI3_7[0], r1, r13\n\tjump.gt\t@.BB3_5\n\tand!\t1, r12, r12\n\tjump.ne\t@.BB3_5\n\tst.1\t64, r1\n\tadd\t2, r11, r1\n\tst.1.inc\tr7, r1, r12\n\tadd\t33, r11, r1\n\tshr.s!\t5, r1, r13\n\tjump.eq\t@.BB3_229\n\tadd\tstack[@calldatasize], r0, r1\n\tptr.add\tstack[@ptr_calldata], r1, r14\n\tadd\tr0, r0, r15\n.BB3_129:\n\tshl.s\t5, r15, r1\n\tadd\tr12, r1, r3\n\tptr.add\tr14, r1, r1\n\tld\tr1, r1\n\tst.1\tr3, r1\n\tadd\t1, r15, r15\n\tsub!\tr15, r13, r1\n\tjump.lt\t@.BB3_129\n.BB3_229:\n\tsub.s!\t0, r0, r1\n\tjump.eq\t@.BB3_131\n.BB3_131:\n\tld.1\tr7, r1\n\tsub.s!\t0, r1, r1\n\tjump.eq\t@.BB3_11\n\tld.1\tr12, r1\n\tand\t@CPI3_5[0], r1, r1\n\tshl.s\t248, r11, r3\n\tor\tr3, r1, r1\n\tadd\t@CPI3_8[0], r1, r1\n\tst.1\tr12, r1\n\tshl.s\t3, r11, r1\n\tsub\t248, r1, r1\n\tshl\tr8, r1, r3\n\tsub.s!\t255, r1, r1\n\tadd\tr3, r0, r1\n\tadd.gt\t0, r0, r1\n\tadd\t33, r7, r3\n\tst.1\tr3, r1\n\tjump\t@.BB3_138\n.BB3_133:\n\tld.1\t64, r7\n\tsub.s!\t@CPI3_3[0], r7, r1\n\tjump.gt\t@.BB3_5\n\tadd\t64, r7, r1\n\tst.1\t64, r1\n\tadd\tstack-[3], r0, r1\n\tst.1.inc\tr7, r1, r11\n\tadd\tstack[@calldatasize], r0, r1\n\tptr.add\tstack[@ptr_calldata], r1, r12\n\tadd\tr0, r0, r13\n.BB3_135:\n\tshl.s\t5, r13, r1\n\tadd\tr11, r1, r3\n\tptr.add\tr12, r1, r1\n\tld\tr1, r1\n\tst.1\tr3, r1\n\tadd!\t1, r13, r13\n\tadd\t0, r0, r1\n\tadd.eq\t1, r0, r1\n\tand!\t1, r1, r1\n\tjump.ne\t@.BB3_135\n\tld.1\tr7, r1\n\tsub.s!\t0, r1, r1\n\tjump.eq\t@.BB3_11\n\tshl.s\t248, r8, r1\n\tadd\t@CPI3_4[0], r0, r3\n\tsub.s!\t0, r8, r8\n\tadd.eq\tr3, r0, r1\n\tld.1\tr11, r3\n\tand\t@CPI3_5[0], r3, r3\n\tor\tr3, r1, r1\n\tst.1\tr11, r1\n.BB3_138:\n\tadd\tstack[@calldatasize], r0, r12\n\tadd\tr12, r4, r1\n\tptr.add\tstack[@ptr_calldata], r0, r8\n\tptr.add\tr8, r10, r3\n\tld\tr3, r11\n\tadd\t@CPI3_4[0], r0, r3\n\tsub!\tr11, r1, r13\n\tadd\t0, r0, r13\n\tadd.ge\tr3, r0, r13\n\tand\t@CPI3_4[0], r1, r1\n\tand\t@CPI3_4[0], r11, r14\n\tsub!\tr14, r1, r15\n\tadd.ge\t0, r0, r3\n\txor\tr14, r1, r1\n\tsub.s!\t@CPI3_4[0], r1, r1\n\tadd\tr13, r0, r1\n\tadd.eq\tr3, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB3_1\n\tadd\tstack-[4], r0, r1\n\tadd\tr11, r1, r11\n\tptr.add\tr8, r11, r1\n\tld\tr1, r13\n\tsub.s!\t@CPI3_7[0], r13, r1\n\tjump.gt\t@.BB3_1\n\tsub\tr12, r13, r1\n\tadd\t32, r11, r3\n\tadd\t@CPI3_4[0], r0, r12\n\tsub!\tr3, r1, r14\n\tadd\t0, r0, r14\n\tadd.gt\tr12, r0, r14\n\tand\t@CPI3_4[0], r1, r1\n\tand\t@CPI3_4[0], r3, r3\n\tsub!\tr3, r1, r15\n\tadd.ge\t0, r0, r12\n\txor\tr3, r1, r1\n\tsub.s!\t@CPI3_4[0], r1, r1\n\tadd\tr14, r0, r1\n\tadd.eq\tr12, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB3_1\n\tsub.s!\t64, r13, r1\n\tjump.lt\t@.BB3_1\n\tadd\t64, r11, r1\n\tptr.add\tr8, r1, r1\n\tld\tr1, r11\n\tsub.s!\t128, r11, r1\n\tjump.lt\t@.BB3_151\n\tshr.s\t128, r11, r1\n\tsub.s!\t@CPI3_6[0], r11, r3\n\tadd.le\tr11, r0, r1\n\tsub.s!\t@CPI3_6[0], r11, r3\n\tadd\t0, r0, r3\n\tadd.gt\t16, r0, r3\n\tor\t8, r3, r8\n\tsub.s!\t@CPI3_7[0], r1, r12\n\tadd.gt\tr8, r0, r3\n\tshr.s\t64, r1, r8\n\tsub.s!\t@CPI3_7[0], r1, r12\n\tadd.gt\tr8, r0, r1\n\tor\t4, r3, r8\n\tsub.s!\t@CPI3_1[0], r1, r12\n\tadd.gt\tr8, r0, r3\n\tshr.s\t32, r1, r8\n\tsub.s!\t@CPI3_1[0], r1, r12\n\tadd.gt\tr8, r0, r1\n\tor\t2, r3, r8\n\tsub.s!\t65535, r1, r12\n\tadd.gt\tr8, r0, r3\n\tshr.s\t16, r1, r8\n\tadd.gt\tr8, r0, r1\n\tsub.s!\t255, r1, r1\n\tadd\t0, r0, r1\n\tadd.gt\t1, r0, r1\n\tadd\tr3, r1, r12\n\tadd\t65, r12, r1\n\tadd\tstack-[2], r0, r3\n\tand\tr1, r3, r1\n\tld.1\t64, r8\n\tadd\tr8, r1, r1\n\tsub!\tr1, r8, r3\n\tadd\t0, r0, r13\n\tadd.lt\t1, r0, r13\n\tsub.s!\t@CPI3_7[0], r1, r3\n\tjump.gt\t@.BB3_5\n\tand!\t1, r13, r3\n\tjump.ne\t@.BB3_5\n\tst.1\t64, r1\n\tadd\t2, r12, r1\n\tst.1.inc\tr8, r1, r13\n\tadd\t33, r12, r1\n\tshr.s!\t5, r1, r14\n\tjump.eq\t@.BB3_228\n\tadd\tstack[@calldatasize], r0, r1\n\tptr.add\tstack[@ptr_calldata], r1, r15\n\tadd\tr0, r0, r1\n.BB3_147:\n\tshl.s\t5, r1, r3\n\tadd\tr13, r3, r9\n\tptr.add\tr15, r3, r3\n\tld\tr3, r3\n\tst.1\tr9, r3\n\tadd\t1, r1, r1\n\tsub!\tr1, r14, r3\n\tjump.lt\t@.BB3_147\n.BB3_228:\n\tsub.s!\t0, r0, r1\n\tjump.eq\t@.BB3_149\n.BB3_149:\n\tld.1\tr8, r1\n\tsub.s!\t0, r1, r1\n\tjump.eq\t@.BB3_11\n\tld.1\tr13, r1\n\tand\t@CPI3_5[0], r1, r1\n\tshl.s\t248, r12, r3\n\tor\tr3, r1, r1\n\tadd\t@CPI3_8[0], r1, r1\n\tst.1\tr13, r1\n\tshl.s\t3, r12, r1\n\tsub\t248, r1, r1\n\tshl\tr11, r1, r3\n\tsub.s!\t255, r1, r1\n\tadd\tr3, r0, r1\n\tadd.gt\t0, r0, r1\n\tadd\t33, r8, r3\n\tst.1\tr3, r1\n\tjump\t@.BB3_156\n.BB3_151:\n\tld.1\t64, r8\n\tsub.s!\t@CPI3_3[0], r8, r1\n\tjump.gt\t@.BB3_5\n\tadd\t64, r8, r1\n\tst.1\t64, r1\n\tadd\tstack-[3], r0, r1\n\tst.1.inc\tr8, r1, r12\n\tadd\tstack[@calldatasize], r0, r1\n\tptr.add\tstack[@ptr_calldata], r1, r13\n\tadd\tr0, r0, r14\n.BB3_153:\n\tshl.s\t5, r14, r1\n\tadd\tr12, r1, r3\n\tptr.add\tr13, r1, r1\n\tld\tr1, r1\n\tst.1\tr3, r1\n\tadd!\t1, r14, r14\n\tadd\t0, r0, r1\n\tadd.eq\t1, r0, r1\n\tand!\t1, r1, r1\n\tjump.ne\t@.BB3_153\n\tld.1\tr8, r1\n\tsub.s!\t0, r1, r1\n\tjump.eq\t@.BB3_11\n\tshl.s\t248, r11, r1\n\tadd\t@CPI3_4[0], r0, r3\n\tsub.s!\t0, r11, r9\n\tadd.eq\tr3, r0, r1\n\tld.1\tr12, r3\n\tand\t@CPI3_5[0], r3, r3\n\tor\tr3, r1, r1\n\tst.1\tr12, r1\n.BB3_156:\n\tadd\tstack[@calldatasize], r0, r12\n\tadd\tr12, r4, r1\n\tptr.add\tstack[@ptr_calldata], r0, r11\n\tptr.add\tr11, r10, r3\n\tld\tr3, r10\n\tadd\t@CPI3_4[0], r0, r3\n\tsub!\tr10, r1, r9\n\tadd\t0, r0, r9\n\tadd.ge\tr3, r0, r9\n\tand\t@CPI3_4[0], r1, r1\n\tand\t@CPI3_4[0], r10, r13\n\tsub!\tr13, r1, r14\n\tadd.ge\t0, r0, r3\n\txor\tr13, r1, r1\n\tsub.s!\t@CPI3_4[0], r1, r1\n\tadd\tr9, r0, r1\n\tadd.eq\tr3, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB3_1\n\tadd\tstack-[4], r0, r1\n\tadd\tr10, r1, r10\n\tptr.add\tr11, r10, r1\n\tld\tr1, r13\n\tsub.s!\t@CPI3_7[0], r13, r1\n\tjump.gt\t@.BB3_1\n\tsub\tr12, r13, r1\n\tadd\t32, r10, r3\n\tadd\t@CPI3_4[0], r0, r9\n\tsub!\tr3, r1, r12\n\tadd\t0, r0, r12\n\tadd.gt\tr9, r0, r12\n\tand\t@CPI3_4[0], r1, r1\n\tand\t@CPI3_4[0], r3, r3\n\tsub!\tr3, r1, r14\n\tadd.ge\t0, r0, r9\n\txor\tr3, r1, r1\n\tsub.s!\t@CPI3_4[0], r1, r1\n\tadd\tr12, r0, r1\n\tadd.eq\tr9, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB3_1\n\tsub.s!\t65, r13, r1\n\tjump.lt\t@.BB3_11\n\tadd\t96, r10, r1\n\tptr.add\tr11, r1, r1\n\tcontext.sp\tr11\n\tsub.s\t6, r11, r11\n\tmul\t32, r11, r11, r0\n\tadd\t@CPI3_4[0], r0, r12\n\tld\tr1, r1\n\tshr.s\t248, r1, r1\n\tsub.s!\t27, r1, r3\n\tjump.eq\t@.BB3_177\n\tcontext.sp\tr11\n\tsub.s\t5, r11, r11\n\tmul\t32, r11, r11, r0\n\tadd\t@CPI3_12[0], r0, r12\n\tsub.s!\t28, r1, r1\n\tjump.ne\t@.BB3_176\n.BB3_177:\n\tld.1\t64, r10\n\tsub.s!\t@CPI3_3[0], r10, r1\n\tjump.gt\t@.BB3_5\n\tadd\t64, r10, r1\n\tst.1\t64, r1\n\tadd\tstack-[3], r0, r1\n\tst.1.inc\tr10, r1, r13\n\tadd\tstack[@calldatasize], r0, r1\n\tptr.add\tstack[@ptr_calldata], r1, r14\n\tadd\tr0, r0, r15\n.BB3_179:\n\tshl.s\t5, r15, r1\n\tadd\tr13, r1, r3\n\tptr.add\tr14, r1, r1\n\tld\tr1, r1\n\tst.1\tr3, r1\n\tadd!\t1, r15, r15\n\tadd\t0, r0, r1\n\tadd.eq\t1, r0, r1\n\tand!\t1, r1, r1\n\tjump.ne\t@.BB3_179\n\tld.1\tr10, r1\n\tsub.s!\t0, r1, r1\n\tjump.eq\t@.BB3_11\n\tld.1\tr13, r1\n\tand\t@CPI3_5[0], r1, r1\n\tor\tr1, r12, r1\n\tst.1\tr13, r1\n\tdiv.s\t32, r11, r1, r0\n\tadd\tr10, r0, stack[r1]\n\tadd\tstack[@calldatasize], r0, r11\n\tadd\tr11, r4, r1\n\tptr.add\tstack[@ptr_calldata], r0, r14\n\tadd\tstack-[1], r0, r3\n\tptr.add\tr14, r3, r3\n\tld\tr3, r15\n\tadd\t@CPI3_4[0], r0, r3\n\tsub!\tr15, r1, r9\n\tadd\t0, r0, r9\n\tadd.ge\tr3, r0, r9\n\tand\t@CPI3_4[0], r1, r1\n\tand\t@CPI3_4[0], r15, r12\n\tsub!\tr12, r1, r13\n\tadd.ge\t0, r0, r3\n\txor\tr12, r1, r1\n\tsub.s!\t@CPI3_4[0], r1, r1\n\tadd\tr9, r0, r1\n\tadd.eq\tr3, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB3_1\n\tld.1\tr2, r12\n\tld.1\tr6, r13\n\tadd\tstack-[4], r0, r1\n\tadd\tr15, r1, r1\n\tptr.add\tr14, r1, r3\n\tld\tr3, r14\n\tsub.s!\t@CPI3_7[0], r14, r3\n\tjump.gt\t@.BB3_1\n\tsub\tr11, r14, r3\n\tadd\t32, r1, r1\n\tadd\t@CPI3_4[0], r0, r9\n\tsub!\tr1, r3, r11\n\tadd\t0, r0, r11\n\tadd.gt\tr9, r0, r11\n\tand\t@CPI3_4[0], r3, r3\n\tand\t@CPI3_4[0], r1, r1\n\tsub!\tr1, r3, r15\n\tadd.ge\t0, r0, r9\n\txor\tr1, r3, r1\n\tsub.s!\t@CPI3_4[0], r1, r1\n\tadd\tr11, r0, r1\n\tadd.eq\tr9, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB3_1\n\tadd\tr13, r12, r1\n\tadd\tr1, r14, r1\n\tld.1\tr5, r3\n\tadd\tr1, r3, r1\n\tld.1\tr7, r3\n\tadd\tr1, r3, r1\n\tld.1\tr8, r3\n\tadd\tr1, r3, r1\n\tld.1\tr10, r3\n\tadd\tr1, r3, r1\n\tand\t@CPI3_7[0], r1, r12\n\tsub.s!\t56, r12, r1\n\tjump.lt\t@.BB3_190\n\tshr.s\t32, r12, r1\n\tsub.s!\t@CPI3_1[0], r12, r3\n\tadd\tr12, r0, r3\n\tadd.gt\tr1, r0, r3\n\tsub.s!\t@CPI3_1[0], r12, r1\n\tadd\t0, r0, r1\n\tadd.gt\t4, r0, r1\n\tor\t2, r1, r9\n\tsub.s!\t65535, r3, r11\n\tadd.gt\tr9, r0, r1\n\tshr.s\t16, r3, r9\n\tadd.gt\tr9, r0, r3\n\tsub.s!\t255, r3, r3\n\tadd\t0, r0, r9\n\tadd.gt\t1, r0, r9\n\tld.1\t64, r11\n\tsub.s!\t@CPI3_3[0], r11, r3\n\tjump.gt\t@.BB3_5\n\tor\tr1, r9, r9\n\tadd\t64, r11, r1\n\tst.1\t64, r1\n\tadd\t2, r9, r1\n\tst.1.inc\tr11, r1, r13\n\tadd\tstack[@calldatasize], r0, r1\n\tptr.add\tstack[@ptr_calldata], r1, r14\n\tadd\tr0, r0, r15\n.BB3_187:\n\tshl.s\t5, r15, r1\n\tadd\tr13, r1, r3\n\tptr.add\tr14, r1, r1\n\tld\tr1, r1\n\tst.1\tr3, r1\n\tadd!\t1, r15, r15\n\tadd\t0, r0, r1\n\tadd.eq\t1, r0, r1\n\tand!\t1, r1, r1\n\tjump.ne\t@.BB3_187\n\tld.1\tr11, r1\n\tsub.s!\t0, r1, r1\n\tjump.eq\t@.BB3_11\n\tld.1\tr13, r1\n\tand\t@CPI3_5[0], r1, r1\n\tshl.s\t248, r9, r3\n\tor\tr3, r1, r1\n\tor\t@CPI3_16[0], r1, r1\n\tst.1\tr13, r1\n\tshl.s\t3, r9, r1\n\tsub\t248, r1, r1\n\tshl\tr12, r1, r1\n\tadd\t33, r11, r3\n\tst.1\tr3, r1\n\tjump\t@.BB3_195\n.BB3_190:\n\tld.1\t64, r11\n\tsub.s!\t@CPI3_3[0], r11, r1\n\tjump.gt\t@.BB3_5\n\tadd\t64, r11, r1\n\tst.1\t64, r1\n\tadd\tstack-[3], r0, r1\n\tst.1.inc\tr11, r1, r9\n\tadd\tstack[@calldatasize], r0, r1\n\tptr.add\tstack[@ptr_calldata], r1, r13\n\tadd\tr0, r0, r14\n.BB3_192:\n\tshl.s\t5, r14, r1\n\tadd\tr9, r1, r3\n\tptr.add\tr13, r1, r1\n\tld\tr1, r1\n\tst.1\tr3, r1\n\tadd!\t1, r14, r14\n\tadd\t0, r0, r1\n\tadd.eq\t1, r0, r1\n\tand!\t1, r1, r1\n\tjump.ne\t@.BB3_192\n\tld.1\tr11, r1\n\tsub.s!\t0, r1, r1\n\tjump.eq\t@.BB3_11\n\tshl.s\t248, r12, r1\n\tld.1\tr9, r3\n\tand\t@CPI3_5[0], r3, r3\n\tor\tr1, r3, r1\n\tadd\t@CPI3_11[0], r1, r1\n\tst.1\tr9, r1\n.BB3_195:\n\tadd\tstack[@calldatasize], r0, r12\n\tadd\tr12, r4, r1\n\tptr.add\tstack[@ptr_calldata], r0, r4\n\tadd\tstack-[1], r0, r3\n\tptr.add\tr4, r3, r3\n\tld\tr3, r3\n\tadd\t@CPI3_4[0], r0, r9\n\tsub!\tr3, r1, r13\n\tadd\t0, r0, r13\n\tadd.ge\tr9, r0, r13\n\tand\t@CPI3_4[0], r1, r1\n\tand\t@CPI3_4[0], r3, r14\n\tsub!\tr14, r1, r15\n\tadd.ge\t0, r0, r9\n\txor\tr14, r1, r1\n\tsub.s!\t@CPI3_4[0], r1, r1\n\tadd\tr13, r0, r1\n\tadd.eq\tr9, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB3_1\n\tadd\tstack-[4], r0, r1\n\tadd\tr3, r1, r1\n\tptr.add\tr4, r1, r3\n\tld\tr3, r9\n\tsub.s!\t@CPI3_7[0], r9, r3\n\tjump.gt\t@.BB3_1\n\tsub\tr12, r9, r3\n\tadd\t32, r1, r12\n\tadd\t@CPI3_4[0], r0, r1\n\tsub!\tr12, r3, r4\n\tadd\t0, r0, r4\n\tadd.gt\tr1, r0, r4\n\tand\t@CPI3_4[0], r3, r3\n\tand\t@CPI3_4[0], r12, r13\n\tsub!\tr13, r3, r14\n\tadd.ge\t0, r0, r1\n\txor\tr13, r3, r3\n\tsub.s!\t@CPI3_4[0], r3, r3\n\tadd.ne\tr4, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB3_1\n\tld.1\t64, r3\n\tadd\t32, r3, r4\n\tadd\t@CPI3_17[0], r0, r1\n\tadd\tr4, r0, stack-[4]\n\tst.1\tr4, r1\n\tadd\t33, r3, r13\n\tld.1\tr11, r14\n\tsub.s!\t0, r14, r1\n\tjump.eq\t@.BB3_201\n\tadd\tr0, r0, r1\n.BB3_200:\n\tadd\tr1, r13, r15\n\tadd\t32, r1, r1\n\tadd\tr1, r11, r4\n\tld.1\tr4, r4\n\tst.1\tr15, r4\n\tsub!\tr1, r14, r4\n\tjump.lt\t@.BB3_200\n.BB3_201:\n\tadd\tr14, r13, r11\n\tst.1\tr11, r0\n\tld.1\tr2, r13\n\tsub.s!\t0, r13, r1\n\tjump.eq\t@.BB3_204\n\tadd\tr0, r0, r1\n.BB3_203:\n\tadd\tr1, r11, r4\n\tadd\t32, r1, r1\n\tadd\tr1, r2, r14\n\tld.1\tr14, r14\n\tst.1\tr4, r14\n\tsub!\tr1, r13, r4\n\tjump.lt\t@.BB3_203\n.BB3_204:\n\tadd\tr13, r11, r2\n\tst.1\tr2, r0\n\tld.1\tr6, r11\n\tsub.s!\t0, r11, r1\n\tjump.eq\t@.BB3_207\n\tadd\tr0, r0, r1\n.BB3_206:\n\tadd\tr1, r2, r4\n\tadd\t32, r1, r1\n\tadd\tr1, r6, r13\n\tld.1\tr13, r13\n\tst.1\tr4, r13\n\tsub!\tr1, r11, r4\n\tjump.lt\t@.BB3_206\n.BB3_207:\n\tadd\tr11, r2, r2\n\tand\t31, r9, r6\n\tst.1\tr2, r0\n\tptr.add\tstack[@ptr_calldata], r12, r11\n\tshr.s!\t5, r9, r12\n\tjump.eq\t@.BB3_227\n\tadd\tr0, r0, r1\n.BB3_209:\n\tshl.s\t5, r1, r4\n\tadd\tr2, r4, r13\n\tptr.add\tr11, r4, r4\n\tld\tr4, r4\n\tst.1\tr13, r4\n\tadd\t1, r1, r1\n\tsub!\tr1, r12, r4\n\tjump.lt\t@.BB3_209\n.BB3_227:\n\tsub.s!\t0, r6, r1\n\tjump.eq\t@.BB3_211\n\tshl.s\t5, r12, r1\n\tptr.add\tr11, r1, r4\n\tadd\tr2, r1, r1\n\tshl.s\t3, r6, r6\n\tld.1\tr1, r11\n\tshl\tr11, r6, r11\n\tshr\tr11, r6, r11\n\tld\tr4, r4\n\tsub\t256, r6, r6\n\tshr\tr4, r6, r4\n\tshl\tr4, r6, r4\n\tor\tr4, r11, r4\n\tst.1\tr1, r4\n.BB3_211:\n\tadd\tr2, r9, r2\n\tst.1\tr2, r0\n\tld.1\tr5, r6\n\tsub.s!\t0, r6, r1\n\tjump.eq\t@.BB3_214\n\tadd\tr0, r0, r1\n.BB3_213:\n\tadd\tr1, r2, r4\n\tadd\t32, r1, r1\n\tadd\tr1, r5, r9\n\tld.1\tr9, r9\n\tst.1\tr4, r9\n\tsub!\tr1, r6, r4\n\tjump.lt\t@.BB3_213\n.BB3_214:\n\tadd\tr6, r2, r2\n\tst.1\tr2, r0\n\tld.1\tr10, r5\n\tsub.s!\t0, r5, r1\n\tjump.eq\t@.BB3_217\n\tadd\tr0, r0, r1\n.BB3_216:\n\tadd\tr1, r2, r4\n\tadd\t32, r1, r1\n\tadd\tr1, r10, r6\n\tld.1\tr6, r6\n\tst.1\tr4, r6\n\tsub!\tr1, r5, r4\n\tjump.lt\t@.BB3_216\n.BB3_217:\n\tadd\tr5, r2, r2\n\tst.1\tr2, r0\n\tld.1\tr7, r5\n\tsub.s!\t0, r5, r1\n\tjump.eq\t@.BB3_220\n\tadd\tr0, r0, r1\n.BB3_219:\n\tadd\tr1, r2, r4\n\tadd\t32, r1, r1\n\tadd\tr1, r7, r6\n\tld.1\tr6, r6\n\tst.1\tr4, r6\n\tsub!\tr1, r5, r4\n\tjump.lt\t@.BB3_219\n.BB3_220:\n\tadd\tr5, r2, r2\n\tst.1\tr2, r0\n\tld.1\tr8, r5\n\tsub.s!\t0, r5, r1\n\tjump.eq\t@.BB3_223\n\tadd\tr0, r0, r1\n.BB3_222:\n\tadd\tr1, r2, r4\n\tadd\t32, r1, r1\n\tadd\tr1, r8, r6\n\tld.1\tr6, r6\n\tst.1\tr4, r6\n\tsub!\tr1, r5, r4\n\tjump.lt\t@.BB3_222\n.BB3_223:\n\tadd\tr5, r2, r1\n\tst.1\tr1, r0\n\tsub\tr1, r3, r1\n\tsub.s\t32, r1, r2\n\tst.1\tr3, r2\n\tadd\t31, r1, r1\n\tadd\tstack-[2], r0, r2\n\tand\tr1, r2, r2\n\tadd\tr2, r3, r1\n\tsub!\tr1, r2, r2\n\tadd\t0, r0, r2\n\tadd.lt\t1, r0, r2\n\tsub.s!\t@CPI3_7[0], r1, r4\n\tjump.gt\t@.BB3_5\n\tand!\t1, r2, r2\n\tjump.ne\t@.BB3_5\n\tst.1\t64, r1\n\tadd\t@CPI3_1[0], r0, r1\n\tadd\tstack-[4], r0, r4\n\tsub.s!\t@CPI3_1[0], r4, r2\n\tadd\tr1, r0, r2\n\tadd.lt\tr4, r0, r2\n\tshl.s\t64, r2, r2\n\tld.1\tr3, r3\n\tsub.s!\t@CPI3_1[0], r3, r4\n\tadd.ge\tr1, r0, r3\n\tshl.s\t96, r3, r3\n\tor\tr3, r2, r2\n\tcontext.gas_left\tr3\n\tsub.s!\t@CPI3_1[0], r3, r4\n\tadd.lt\tr3, r0, r1\n\tshl.s\t192, r1, r1\n\tor\tr1, r2, r1\n\tor\t@CPI3_17[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB3_1\n\tld\tr1, r1\n\tret\n.BB3_1:\n\tadd\tr0, r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB3_5:\n\tadd\t@CPI3_18[0], r0, r1\n\tst.1\t0, r1\n\tadd\t65, r0, r1\n\tst.1\t4, r1\n\tadd\t@CPI3_19[0], r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB3_11:\n\tadd\t@CPI3_18[0], r0, r1\n\tst.1\t0, r1\n\tadd\t50, r0, r1\n\tst.1\t4, r1\n\tadd\t@CPI3_19[0], r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB3_176:\n\tld.1\t64, r1\n\tadd\t68, r1, r2\n\tadd\t@CPI3_13[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t15, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI3_14[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI3_1[0], r0, r2\n\tsub.s!\t@CPI3_1[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI3_15[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.func_end3:\n\n__staticcall:\n.func_begin4:\n.tmp0:\n\tfar_call.static\tr1, r2, @.BB4_2\n.tmp1:\n\tadd\t1, r0, r2\n\tret\n.BB4_2:\n.tmp2:\n\tadd\tr0, r0, r2\n\tret\n.func_end4:\n\n\t.data\n\t.p2align\t5\ncalldatasize:\n\t.cell 0\n\n\t.p2align\t5\nreturndatasize:\n\t.cell 0\n\n\t.p2align\t5\nptr_calldata:\n.cell\t0\n\n\t.p2align\t5\nptr_return_data:\n.cell\t0\n\n\t.note.GNU-stack\n\t.rodata\nCPI0_0:\nCPI2_1:\nCPI3_1:\n\t.cell 4294967295\nCPI0_1:\n\t.cell 53919893334301279589334030174039261352344891250716429051063678533632\nCPI0_2:\n\t.cell -26959946667150639794667015087019630673637144422540572481103610249216\nCPI0_3:\n\t.cell -9094597908436062229409907815210749655110542738367171777178453795529723740160\nCPI0_4:\nCPI2_4:\nCPI3_4:\n\t.cell -57896044618658097711785492504343953926634992332820282019728792003956564819968\nCPI0_5:\nCPI2_7:\nCPI3_7:\n\t.cell 18446744073709551615\nCPI0_6:\n\t.cell 31404626005388016465557136004425644622526497411135616472760694282821012815872\nCPI0_7:\nCPI2_14:\nCPI3_14:\n\t.cell 3963877391197344453575983046348115674221700746820753546331534351508065746944\nCPI0_8:\nCPI2_15:\nCPI3_15:\n\t.cell 7922816251426433759354395033600\nCPI0_9:\nCPI2_0:\nCPI3_0:\n\t.cell -45892047197499416867505091379861151366373029554911521591129889233172042914037\nCPI0_10:\nCPI2_2:\nCPI3_2:\n\t.cell 904625751086426111047927909714404454142933102791518401696464687643217625088\nCPI0_11:\nCPI2_3:\nCPI3_3:\n\t.cell 18446744073709551551\nCPI0_12:\nCPI2_5:\nCPI3_5:\n\t.cell 452312848583266388373324160190187140051835877600158453279131187530910662655\nCPI0_13:\nCPI2_6:\nCPI3_6:\n\t.cell 340282366920938463463374607431768211455\nCPI0_14:\nCPI2_8:\nCPI3_8:\n\t.cell -57443731770074831323412168344153766786583156455220123566449660816425654157312\nCPI0_15:\nCPI2_9:\nCPI3_9:\n\t.cell -48849787646992769944319009300540211125598274780817112954146168253338351566848\nCPI0_16:\nCPI2_10:\nCPI3_10:\n\t.cell -32566525097995179962879339533693474083732183187211408636097445502225567711232\nCPI0_17:\nCPI2_11:\nCPI3_11:\n\t.cell -28948022309329048855892746252171976963317496166410141009864396001978282409984\nCPI0_18:\nCPI2_16:\nCPI3_16:\n\t.cell -3618502788666131106986593281521497120414687020801267626233049500247285301248\nCPI0_19:\nCPI2_12:\nCPI3_12:\n\t.cell 452312848583266388373324160190187140051835877600158453279131187530910662656\nCPI0_20:\nCPI2_17:\nCPI3_17:\n\t.cell 904625697166532776746648320380374280103671755200316906558262375061821325312\nCPI0_21:\n\t.cell 5192217630372313364192902785269760\nCPI0_22:\n\t.cell 26959946660873538059280334323183841250429478006438217036639575736320\nCPI0_23:\n\t.cell 26959946660873538059280334323183846442647108378751581229542361006080\nCPI0_24:\n\t.cell 205788503292916942161592520455632353415871934255501810256052224\nCPI0_25:\n\t.cell 8589934560\nCPI0_26:\n\t.cell 3618502788666131106986593281521497120414687020801267626233049500247285301247\nCPI0_27:\n\t.cell -55835707851169356820239430771708952621760504720314608712511928897999773914424\nCPI0_28:\n\t.cell 18446744073709551135\nCPI0_29:\n\t.cell -27604387271559067812153012136426895368291669229177506800640289263950542709906\nCPI0_30:\n\t.cell -37322242893773753060542304183707406641248651690316488621496580158119782706011\nCPI0_31:\n\t.cell 11626432092274322716100935491593643203982292366959775758281036558588690070895\nCPI0_32:\n\t.cell 18446744073709551455\nCPI0_33:\n\t.cell 11309588061646438093662687302255421419811724423900836950936401294474059186176\nCPI0_34:\n\t.cell 18446744073709551487\nCPI0_35:\n\t.cell -57669888194366464517598830424248860356609074394020202793089226410191109488640\nCPI0_36:\nCPI2_13:\nCPI3_13:\n\t.cell 33214008156304899520047803919903486204353933570524245272976190332793534808064\nCPI0_37:\nCPI2_18:\nCPI3_18:\n\t.cell 35408467139433450592217433187231851964531694900788300625387963629091585785856\nCPI0_38:\nCPI2_19:\nCPI3_19:\n\t.cell 2852213850513516153367582212096\nCPI0_39:\n\t.cell 48576612304134562906636072136253640560259651760507321062750520661094310371584\nCPI0_40:\n\t.cell 18446744073709551519\nCPI0_41:\n\t.cell 5070602400912917605986812821504\nCPI0_42:\n\t.cell 35941903152323301424837430127755677394685895577807511304717771392927601262592\nCPI1_0:\n\t.cell 38641742173688136142497059639385601009427624023181878810272746757931252318208\n","bytecode":{"object":"0004000000000002000d00000000000200000000030100190000006003300270000009980430019700030000004103550002000000010355000009980030019d000100000000001f000000800a0000390000004000a0043f0000000101200190000000910000c13d0000000001000031000000040110008c000004950000413d0000000201000367000000000101043b0000099a011001970000099b0110009c000004950000c13d0000000001000416000000000110004c000004950000c13d0000000001000031000000040310008a0000099c02000041000000200430008c000000000400001900000000040240190000099c05300197000000000650004c000000000200a0190000099c0550009c000000000204c019000000000220004c000004950000c13d00000002020003670000000404200370000000000904043b0000099d0490009c000004950000213d00000000039300490000099c04000041000002600530008c000000000500001900000000050440190000099c03300197000000000630004c000000000400a0190000099c0330009c00000000030500190000000003046019000000000330004c000004950000c13d0000000403900039000d00000003001d000000000332034f000000000303043b000000000430004c000000990000c13d000c00000009001d0000010401900039000000000112034f000000000101043b000000800210008c000000f60000413d0000008002100270000009a50310009c000000000201a019000009a50310009c0000000003000019000000100300203900000008043001bf0000099d0520009c000000000304201900000040042002700000099d0520009c000000000204201900000004043001bf000009980520009c00000000030420190000002004200270000009980520009c000000000204201900000002043001bf0000ffff0520008c000000000304201900000010042002700000000002042019000000ff0220008c000000000200001900000001020020390000000002230019000000200300008a0000004104200039000000000334016f000000400400043d0000000003340019000b00000004001d000000000443004b000000000400001900000001040040390000099d0530009c000000fa0000213d0000000104400190000000fa0000c13d000000400030043f00000002032000390000000b090000290000000003390436000000210420003900000005044002720000007d0000613d00000000050000310000000205500367000000000600001900000005076002100000000008730019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000000750000413d000000000400004c0000007f0000613d0000000004090433000000000440004c000001720000613d0000000004030433000009a404400197000000f805200210000000000445019f000009a60440004100000000004304350000000302200210000000f80220008900000000012101cf000000ff0220008c00000000010020190000000b0200002900000021022000390000000000120435000001de0000013d0000000001000416000000000110004c000004950000c13d00000020010000390000010000100443000001200000044300000999010000410000265d0001042e000000710430008c000001000000c13d000001c403900039000000000332034f000000230400008a0000000004940049000b00000004001d0000000004140019000000000303043b0000099c05000041000000000643004b000000000600001900000000060580190000099c044001970000099c07300197000000000847004b0000000005008019000000000447013f0000099c0440009c00000000040600190000000004056019000000000440004c000004950000c13d0000000d040000290000000003430019000000000232034f000000000202043b000a00000002001d0000099d0220009c000004950000213d0000000a02000029000000000121004900000020043000390000099c02000041000000000314004b000000000300001900000000030220190000099c01100197000900000004001d0000099c04400197000000000514004b0000000002008019000000000114013f0000099c0110009c00000000010300190000000001026019000000000110004c000004950000c13d00070000000a001d000c00000009001d0000000001000414000800000001001d000009ad010000410000ffeb02000039265c26570000040f00000000020100190000006002200270000109980020019d00030000000103550000000a01000029000000000110004c000003230000c13d0000000001000031000000c001100210000009ae01100197000009ad011001c70000ffe802000039265c26570000040f00000000020100190000006002200270000109980020019d00030000000103550000000801000029000009980110009c000004640000a13d000000400100043d0000004402100039000009c20300004100000000003204350000002402100039000000080300003900000000003204350000099f0200004100000000002104350000000402100039000000200300003900000000003204350000099802000041000009980310009c00000000010280190000004001100210000009a0011001c70000265e00010430000000400200043d000b00000002001d000009a30220009c0000015d0000a13d000009bd0100004100000000001004350000004101000039000000040010043f000009be010000410000265e00010430000000020130008c000001780000c13d000009a101000041000000000010043900000998010000410000000002000414000009980320009c0000000001024019000000c001100210000009a2011001c70000800b02000039000c00000009001d265c26570000040f0000000102200190000004950000613d000000000201043b000000800120008c000002b20000413d0000008001200270000009a50320009c000000000102a019000009a50320009c0000000003000019000000100300203900000008043001bf0000099d0510009c000000000304201900000040041002700000099d0510009c000000000104201900000004043001bf000009980510009c00000000030420190000002004100270000009980510009c000000000104201900000002043001bf0000ffff0510008c000000000304201900000010041002700000000001042019000000ff0110008c000000000100001900000001010020390000000003130019000000200100008a0000004104300039000000000414016f000000400100043d0000000004410019000000000514004b000000000500001900000001050040390000099d0640009c000000fa0000213d0000000105500190000000fa0000c13d000000400040043f00000002043000390000000004410436000000210530003900000005055002720000014a0000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b000001420000413d000000000500004c0000014c0000613d0000000005010433000000000550004c000001720000613d0000000005040433000009a405500197000000f806300210000000000556019f000009a60550004100000000005404350000000303300210000000f80330008900000000023201cf000000ff0330008c000000000200201900000021031000390000000000230435000002d20000013d0000000b070000290000004002700039000000400020043f0000000102000039000000000227043600000000030000310000000203300367000000000400001900000005054002100000000006520019000000000553034f000000000505043b0000000000560435000000010440003a000000000500001900000001050060390000000105500190000001650000c13d0000000003070433000000000330004c000001d50000c13d000009bd0100004100000000001004350000003201000039000000040010043f000009be010000410000265e00010430000000010130008c0000022f0000c13d000009a101000041000000000010043900000998010000410000000002000414000009980320009c0000000001024019000000c001100210000009a2011001c70000800b02000039000c00000009001d265c26570000040f0000000102200190000004950000613d000000000201043b000000800120008c0000033e0000413d0000008001200270000009a50320009c000000000102a019000009a50320009c0000000003000019000000100300203900000008043001bf0000099d0510009c000000000304201900000040041002700000099d0510009c000000000104201900000004043001bf000009980510009c00000000030420190000002004100270000009980510009c000000000104201900000002043001bf0000ffff0510008c000000000304201900000010041002700000000001042019000000ff0110008c000000000100001900000001010020390000000003130019000000200100008a0000004104300039000000000414016f000000400100043d0000000004410019000000000514004b000000000500001900000001050040390000099d0640009c000000fa0000213d0000000105500190000000fa0000c13d000000400040043f0000000204300039000000000441043600000021053000390000000505500272000001c20000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b000001ba0000413d000000000500004c000001c40000613d0000000005010433000000000550004c000001720000613d0000000005040433000009a405500197000000f806300210000000000556019f000009a60550004100000000005404350000000303300210000000f80330008900000000023201cf000000ff0330008c0000000002002019000000210310003900000000002304350000035e0000013d000000f8031002100000099c04000041000000000110004c000000000103001900000000010460190000000003020433000009a403300197000000000113019f00000000001204350000000c01000029000000a4011000390000000201100367000000000201043b000000800120008c000002410000413d0000008001200270000009a50320009c000000000102a019000009a50320009c0000000003000019000000100300203900000008043001bf0000099d0510009c000000000304201900000040041002700000099d0510009c000000000104201900000004043001bf000009980510009c00000000030420190000002004100270000009980510009c000000000104201900000002043001bf0000ffff0510008c000000000304201900000010041002700000000001042019000000ff0110008c000000000100001900000001010020390000000003130019000000200100008a0000004104300039000000000414016f000000400100043d0000000004410019000000000514004b000000000500001900000001050040390000099d0640009c000000fa0000213d0000000105500190000000fa0000c13d000000400040043f00000002043000390000000004410436000000210530003900000005055002720000021c0000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b000002140000413d000000000500004c0000021e0000613d0000000005010433000000000550004c000001720000613d0000000005040433000009a405500197000000f806300210000000000556019f000009a60550004100000000005404350000000303300210000000f80330008900000000023201cf000000ff0330008c000000000200201900000021031000390000000000230435000002610000013d000000400100043d00000044021000390000099e0300004100000000003204350000002402100039000000170300003900000000003204350000099f0200004100000000002104350000000402100039000000200300003900000000003204350000099802000041000009980310009c00000000010280190000004001100210000009a0011001c70000265e00010430000000400100043d000009a30310009c000000fa0000213d0000004003100039000000400030043f0000000103000039000000000331043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a0000000006000019000000010600603900000001066001900000024b0000c13d0000000004010433000000000440004c000001720000613d000000f8042002100000099c05000041000000000220004c000000000204001900000000020560190000000004030433000009a404400197000000000224019f00000000002304350000000c0200002900000064022000390000000202200367000000000302043b000000800230008c000003af0000413d0000008002300270000009a50430009c000000000203a019000009a50430009c0000000004000019000000100400203900000008054001bf0000099d0620009c000000000405201900000040052002700000099d0620009c000000000205201900000004054001bf000009980620009c00000000040520190000002005200270000009980620009c000000000205201900000002054001bf0000ffff0620008c000000000405201900000010052002700000000002052019000000ff0220008c000000000200001900000001020020390000000004240019000000200200008a0000004105400039000000000525016f000000400200043d0000000005520019000000000625004b000000000600001900000001060040390000099d0750009c000000fa0000213d0000000106600190000000fa0000c13d000000400050043f00000002054000390000000005520436000000210640003900000005066002720000029f0000613d0000000007000031000000020770036700000000080000190000000509800210000000000a950019000000000997034f000000000909043b00000000009a04350000000108800039000000000968004b000002970000413d000000000600004c000002a10000613d0000000006020433000000000660004c000001720000613d0000000006050433000009a406600197000000f807400210000000000667019f000009a60660004100000000006504350000000304400210000000f80440008900000000034301cf000000ff0440008c000000000300201900000021042000390000000000340435000003cf0000013d000000400100043d000009a30310009c000000fa0000213d0000004003100039000000400030043f0000000103000039000000000331043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a000000000600001900000001060060390000000106600190000002bc0000c13d0000000004010433000000000440004c000001720000613d000000f8042002100000099c05000041000000000220004c000000000204001900000000020560190000000004030433000009a404400197000000000224019f00000000002304350000000c0200002900000104022000390000000202200367000000000302043b000000800230008c000004970000413d0000008002300270000009a50430009c000000000203a019000009a50430009c0000000004000019000000100400203900000008054001bf0000099d0620009c000000000405201900000040052002700000099d0620009c000000000205201900000004054001bf000009980620009c00000000040520190000002005200270000009980620009c000000000205201900000002054001bf0000ffff0620008c000000000405201900000010052002700000000002052019000000ff0220008c000000000200001900000001020020390000000004240019000000200200008a0000004105400039000000000525016f000000400200043d0000000005520019000000000625004b000000000600001900000001060040390000099d0750009c000000fa0000213d0000000106600190000000fa0000c13d000000400050043f0000000205400039000000000552043600000021064000390000000506600272000003100000613d0000000007000031000000020770036700000000080000190000000509800210000000000a950019000000000997034f000000000909043b00000000009a04350000000108800039000000000968004b000003080000413d000000000600004c000003120000613d0000000006020433000000000660004c000001720000613d0000000006050433000009a406600197000000f807400210000000000667019f000009a60660004100000000006504350000000304400210000000f80440008900000000034301cf000000ff0440008c000000000300201900000021042000390000000000340435000004b70000013d0000000901000029000000c001100210000009ae01100197000009ad011001c70000ffe902000039265c26570000040f00000000020100190000006002200270000109980020019d0000000a0300002900000009020000290000000002230019000000000332004b0000000003000019000000010300403900030000000103550000000101300190000003380000c13d0000000001000031000000000321004b000005230000813d000009bd0100004100000000001004350000001101000039000000040010043f000009be010000410000265e00010430000000400100043d000009a30310009c000000fa0000213d0000004003100039000000400030043f0000000103000039000000000331043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a000000000600001900000001060060390000000106600190000003480000c13d0000000004010433000000000440004c000001720000613d000000f8042002100000099c05000041000000000220004c000000000204001900000000020560190000000004030433000009a404400197000000000224019f00000000002304350000000c0200002900000104022000390000000202200367000000000202043b000000800320008c000005250000413d0000008003200270000009a50420009c000000000302a019000009a50420009c0000000004000019000000100400203900000008054001bf0000099d0630009c000000000405201900000040053002700000099d0630009c000000000305201900000004054001bf000009980630009c00000000040520190000002005300270000009980630009c000000000305201900000002054001bf0000ffff0630008c000000000405201900000010053002700000000003052019000000ff0330008c000000000300001900000001030020390000000004340019000000200300008a0000004105400039000000000535016f000000400300043d0000000005530019000000000635004b000000000600001900000001060040390000099d0750009c000000fa0000213d0000000106600190000000fa0000c13d000000400050043f00000002054000390000000005530436000000210640003900000005066002720000039c0000613d0000000007000031000000020770036700000000080000190000000509800210000000000a950019000000000997034f000000000909043b00000000009a04350000000108800039000000000968004b000003940000413d000000000600004c0000039e0000613d0000000006030433000000000660004c000001720000613d0000000006050433000009a406600197000000f807400210000000000667019f000009a60660004100000000006504350000000304400210000000f80440008900000000024201cf000000ff0440008c000000000200201900000021043000390000000000240435000005450000013d000000400200043d000009a30420009c000000fa0000213d0000004004200039000000400040043f0000000104000039000000000442043600000000050000310000000205500367000000000600001900000005076002100000000008740019000000000775034f000000000707043b0000000000780435000000010660003a000000000700001900000001070060390000000107700190000003b90000c13d0000000005020433000000000550004c000001720000613d000000f8053002100000099c06000041000000000330004c000000000305001900000000030660190000000005040433000009a405500197000000000335019f0000000000340435000000400300043d000a00000003001d00000020033000390000000004010433000000000540004c000003dd0000613d000000000500001900000000063500190000002005500039000000000715001900000000070704330000000000760435000000000645004b000003d60000413d000000000134001900000000000104350000000003020433000000000430004c000003ea0000613d000000000400001900000000051400190000002004400039000000000624001900000000060604330000000000650435000000000534004b000003e30000413d000000000113001900000000000104350000000a030000290000000001310049000000200210008a00000000002304350000001f01100039000000200200008a000800000002001d000000000121016f0000000002310019000000000112004b00000000010000190000000101004039000900000002001d0000099d0220009c000000fa0000213d0000000101100190000000fa0000c13d0000000901000029000000400010043f000009a30110009c000000fa0000213d0000000c0400002900000044014000390000000201100367000000000101043b00000009050000290000004002500039000000400020043f0000002002500039000009a70300004100000000003204350000001502000039000000000025043500000021025000390000006001100210000000000012043500000124014000390000000201100367000000000101043b000000800210008c000007340000413d0000008002100270000009a50310009c000000000201a019000009a50310009c0000000003000019000000100300203900000008043001bf0000099d0520009c000000000304201900000040042002700000099d0520009c000000000204201900000004043001bf000009980520009c00000000030420190000002004200270000009980520009c000000000204201900000002043001bf0000ffff0520008c000000000304201900000010042002700000000002042019000000ff0220008c00000000020000190000000102002039000000000223001900000041032000390000000804000029000000000343016f000000400400043d0000000003340019000700000004001d000000000443004b000000000400001900000001040040390000099d0530009c000000fa0000213d0000000104400190000000fa0000c13d000000400030043f000000020320003900000007040000290000000003340436000000210420003900000005044002720000044f0000613d00000000050000310000000205500367000000000600001900000005076002100000000008730019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000004470000413d000000000400004c000004510000613d00000007040000290000000004040433000000000440004c000001720000613d0000000004030433000009a404400197000000f805200210000000000445019f000009a60440004100000000004304350000000302200210000000f80220008900000000012101cf000000ff0220008c0000000001002019000000070200002900000021022000390000000000120435000007570000013d000009af010000410000ffe702000039265c26570000040f00000000020100190000006002200270000109980020019d0003000000010355000009b0010000410000fff602000039265c26570000040f00000000030100190000006003300270000109980030019d000009980330019700030000000103550000000102200190000005080000613d0000003f01300039000009b101100197000000400200043d0000000001120019000000000421004b000000000400001900000001040040390000099d0510009c000000fa0000213d0000000104400190000000fa0000c13d000000400010043f00000000013204360000001f043000390000000504400272000004900000613d00000000050000310000000205500367000000000600001900000005076002100000000008710019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000004880000413d000000000400004c000004920000613d0000000104000031000000000443004b000006070000a13d00000000010000190000265e00010430000000400200043d000009a30420009c000000fa0000213d0000004004200039000000400040043f0000000104000039000000000442043600000000050000310000000205500367000000000600001900000005076002100000000008740019000000000775034f000000000707043b0000000000780435000000010660003a000000000700001900000001070060390000000107700190000004a10000c13d0000000005020433000000000550004c000001720000613d000000f8053002100000099c06000041000000000330004c000000000305001900000000030660190000000005040433000009a405500197000000000335019f00000000003404350000000c03000029000000c4033000390000000203300367000000000303043b000000800430008c000005960000413d0000008004300270000009a50530009c000000000403a019000009a50530009c0000000005000019000000100500203900000008065001bf0000099d0740009c000000000506201900000040064002700000099d0740009c000000000406201900000004065001bf000009980740009c00000000050620190000002006400270000009980740009c000000000406201900000002065001bf0000ffff0740008c000000000506201900000010064002700000000004062019000000ff0440008c000000000400001900000001040020390000000005450019000000200400008a0000004106500039000000000646016f000000400400043d0000000006640019000000000746004b000000000700001900000001070040390000099d0860009c000000fa0000213d0000000107700190000000fa0000c13d000000400060043f0000000206500039000000000664043600000021075000390000000507700272000004f50000613d000000000800003100000002088003670000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b000004ed0000413d000000000700004c000004f70000613d0000000007040433000000000770004c000001720000613d0000000007060433000009a407700197000000f808500210000000000778019f000009a60770004100000000007604350000000305500210000000f80550008900000000035301cf000000ff0550008c000000000300201900000021054000390000000000350435000005b60000013d0000001f0430018f0000000502300272000005130000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b0000050c0000413d000000000540004c000005210000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f000000000012043500000060013002100000265e000104300000000001210049000000d80000013d000000400300043d000009a30430009c000000fa0000213d0000004004300039000000400040043f0000000104000039000000000443043600000000050000310000000205500367000000000600001900000005076002100000000008740019000000000775034f000000000707043b0000000000780435000000010660003a0000000007000019000000010700603900000001077001900000052f0000c13d0000000005030433000000000550004c000001720000613d000000f8052002100000099c06000041000000000220004c000000000205001900000000020660190000000005040433000009a405500197000000000225019f00000000002404350000000c02000029000000a4022000390000000202200367000000000202043b000000800420008c000006c30000413d0000008004200270000009a50520009c000000000402a019000009a50520009c0000000005000019000000100500203900000008065001bf0000099d0740009c000000000506201900000040064002700000099d0740009c000000000406201900000004065001bf000009980740009c00000000050620190000002006400270000009980740009c000000000406201900000002065001bf0000ffff0740008c000000000506201900000010064002700000000004062019000000ff0440008c000000000400001900000001040020390000000005450019000000200400008a0000004106500039000000000646016f000000400400043d0000000006640019000000000746004b000000000700001900000001070040390000099d0860009c000000fa0000213d0000000107700190000000fa0000c13d000000400060043f0000000206500039000000000664043600000021075000390000000507700272000005830000613d000000000800003100000002088003670000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b0000057b0000413d000000000700004c000005850000613d0000000007040433000000000770004c000001720000613d0000000007060433000009a407700197000000f808500210000000000778019f000009a60770004100000000007604350000000305500210000000f80550008900000000025201cf000000ff0550008c000000000200201900000021054000390000000000250435000006e30000013d000000400400043d000009a30540009c000000fa0000213d0000004005400039000000400050043f0000000105000039000000000554043600000000060000310000000206600367000000000700001900000005087002100000000009850019000000000886034f000000000808043b0000000000890435000000010770003a000000000800001900000001080060390000000108800190000005a00000c13d0000000006040433000000000660004c000001720000613d000000f8063002100000099c07000041000000000330004c000000000306001900000000030760190000000006050433000009a406600197000000000336019f00000000003504350000000c03000029000000a4033000390000000203300367000000000303043b000000800530008c000007a60000413d0000008005300270000009a50630009c000000000503a019000009a50630009c0000000006000019000000100600203900000008076001bf0000099d0850009c000000000607201900000040075002700000099d0850009c000000000507201900000004076001bf000009980850009c00000000060720190000002007500270000009980850009c000000000507201900000002076001bf0000ffff0850008c000000000607201900000010075002700000000005072019000000ff0550008c000000000500001900000001050020390000000006560019000000200500008a0000004107600039000000000757016f000000400500043d0000000007750019000000000857004b000000000800001900000001080040390000099d0970009c000000fa0000213d0000000108800190000000fa0000c13d000000400070043f0000000207600039000000000775043600000021086000390000000508800272000005f40000613d00000000090000310000000209900367000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa00039000000000b8a004b000005ec0000413d000000000800004c000005f60000613d0000000008050433000000000880004c000001720000613d0000000008070433000009a408800197000000f809600210000000000889019f000009a60880004100000000008704350000000306600210000000f80660008900000000036301cf000000ff0660008c000000000300201900000021065000390000000000360435000007c60000013d00000003050003670000001f0430018f0000000503300272000006140000613d000000000600001900000005076002100000000008710019000000000775034f000000000707043b00000000007804350000000106600039000000000736004b0000060c0000413d000000000640004c000006230000613d0000000503300210000000000535034f00000000033100190000000304400210000000000603043300000000064601cf000000000646022f000000000505043b0000010004400089000000000545022f00000000044501cf000000000464019f00000000004304350000000002020433000000200220008c00000ef50000c13d00000000040000310000000b0200002900000000052400190000000c0200002900000204032000390000000202000367000000000332034f000000000303043b0000099c06000041000000000753004b000000000700001900000000070680190000099c055001970000099c08300197000000000958004b0000000006008019000000000558013f0000099c0550009c00000000050700190000000005066019000000000550004c000004950000c13d0000000001010433000a00000001001d0000000d010000290000000001130019000000000312034f000000000503043b0000099d0350009c000004950000213d0000000503500210000000000434004900000020061000390000099c01000041000000000746004b000000000700001900000000070120190000099c044001970000099c08600197000000000948004b0000000001008019000000000448013f0000099c0440009c000000000107c019000000000110004c000004950000c13d000000400100043d0000002004100039000009b205500198000006620000613d000000000262034f000000000600001900000005076002100000000008740019000000000772034f000000000707043b00000000007804350000000106600039000000000756004b0000065a0000413d000000000200004c000006640000613d00000000003104350000003f02300039000000200300008a000000000232016f0000000002210019000000000312004b000000000300001900000001030040390000099d0520009c000000fa0000213d0000000103300190000000fa0000c13d000000400020043f0000099802000041000009980340009c0000000003020019000000000304401900000040033002100000000001010433000009980410009c00000000010280190000006001100210000000000131019f0000000003000414000009980430009c0000000002034019000000c002200210000000000112019f000009ac011001c70000801002000039265c26570000040f00000001022001900000000c03000029000004950000613d00000000020000310000000b04000029000000000542001900000224043000390000000203000367000000000443034f000000000404043b0000099c06000041000000000754004b000000000700001900000000070680190000099c055001970000099c08400197000000000958004b0000000006008019000000000558013f0000099c0550009c00000000050700190000000005066019000000000101043b000b00000001001d000000000150004c000004950000c13d0000000d010000290000000001140019000000000313034f000000000303043b000900000003001d0000099d0330009c000004950000213d0000000903000029000000000232004900000020041000390000099c01000041000000000324004b000000000300001900000000030120190000099c02200197000800000004001d0000099c04400197000000000524004b0000000001008019000000000224013f0000099c0220009c000000000103c019000000000110004c000004950000c13d0000000001000414000600000001001d000009ad010000410000ffeb02000039265c26570000040f00000000020100190000006002200270000109980020019d00030000000103550000000901000029000000000110004c00000c220000c13d000000000100003100000c380000013d000000400400043d000009a30540009c000000fa0000213d0000004005400039000000400050043f0000000105000039000000000554043600000000060000310000000206600367000000000700001900000005087002100000000009850019000000000886034f000000000808043b0000000000890435000000010770003a000000000800001900000001080060390000000108800190000006cd0000c13d0000000006040433000000000660004c000001720000613d000000f8062002100000099c07000041000000000220004c000000000206001900000000020760190000000006050433000009a406600197000000000226019f00000000002504350000000c0200002900000064022000390000000202200367000000000202043b000000800520008c000008170000413d0000008005200270000009a50620009c000000000502a019000009a50620009c0000000006000019000000100600203900000008076001bf0000099d0850009c000000000607201900000040075002700000099d0850009c000000000507201900000004076001bf000009980850009c00000000060720190000002007500270000009980850009c000000000507201900000002076001bf0000ffff0850008c000000000607201900000010075002700000000005072019000000ff0550008c000000000500001900000001050020390000000006560019000000200500008a0000004107600039000000000757016f000000400500043d0000000007750019000000000857004b000000000800001900000001080040390000099d0970009c000000fa0000213d0000000108800190000000fa0000c13d000000400070043f0000000207600039000000000775043600000021086000390000000508800272000007210000613d00000000090000310000000209900367000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa00039000000000b8a004b000007190000413d000000000800004c000007230000613d0000000008050433000000000880004c000001720000613d0000000008070433000009a408800197000000f809600210000000000889019f000009a60880004100000000008704350000000306600210000000f80660008900000000026201cf000000ff0660008c000000000200201900000021065000390000000000260435000008370000013d000000400200043d000700000002001d000009a30220009c000000fa0000213d00000007030000290000004002300039000000400020043f0000000102000039000000000223043600000000030000310000000203300367000000000400001900000005054002100000000006520019000000000553034f000000000505043b0000000000560435000000010440003a000000000500001900000001050060390000000105500190000007400000c13d00000007030000290000000003030433000000000330004c000001720000613d000000f8031002100000099c04000041000000000110004c000000000103001900000000010460190000000003020433000009a403300197000000000113019f0000000000120435000000230100008a0000000c020000290000000004210049000001c4012000390000000202000367000600000001001d000000000112034f000000000101043b0000000003000031000500000004001d00000000044300190000099c05000041000000000641004b000000000600001900000000060580190000099c044001970000099c07100197000000000847004b0000000005008019000000000447013f0000099c0440009c00000000040600190000000004056019000000000440004c000004950000c13d0000000d040000290000000004410019000000000142034f000000000101043b0000099d0510009c000004950000213d000000000513004900000020034000390000099c04000041000000000653004b000000000600001900000000060420190000099c055001970000099c07300197000000000857004b0000000004008019000000000557013f0000099c0550009c000000000406c019000000000440004c000004950000c13d000000010410008c000009e10000c13d000000000132034f000000000101043b000000010200008a0000099c03000041000000000221004b000000000200001900000000020320190000099c011001970000099c0410009c00000000030080190000099c011001670000099c0110009c000000000102001900000000010360190000006002000039000400000002001d000000000110004c00000b0f0000c13d000000400100043d000400000001001d000009a30110009c000000fa0000213d00000004030000290000004001300039000000400010043f0000002001300039000009a60200004100000000002104350000000101000039000000000013043500000b0f0000013d000000400500043d000009a30650009c000000fa0000213d0000004006500039000000400060043f000000010600003900000000066504360000000007000031000000020770036700000000080000190000000509800210000000000a960019000000000997034f000000000909043b00000000009a0435000000010880003a000000000900001900000001090060390000000109900190000007b00000c13d0000000007050433000000000770004c000001720000613d000000f8073002100000099c08000041000000000330004c000000000307001900000000030860190000000007060433000009a407700197000000000337019f00000000003604350000000c0300002900000064033000390000000203300367000000000303043b000000800630008c000008980000413d0000008006300270000009a50730009c000000000603a019000009a50730009c0000000007000019000000100700203900000008087001bf0000099d0960009c000000000708201900000040086002700000099d0960009c000000000608201900000004087001bf000009980960009c00000000070820190000002008600270000009980960009c000000000608201900000002087001bf0000ffff0960008c000000000708201900000010086002700000000006082019000000ff0660008c000000000600001900000001060020390000000007670019000000200600008a0000004108700039000000000868016f000000400600043d0000000008860019000000000968004b000000000900001900000001090040390000099d0a80009c000000fa0000213d0000000109900190000000fa0000c13d000000400080043f0000000208700039000000000886043600000021097000390000000509900272000008040000613d000000000a000031000000020aa00367000000000b000019000000050cb00210000000000dc80019000000000cca034f000000000c0c043b0000000000cd0435000000010bb00039000000000c9b004b000007fc0000413d000000000900004c000008060000613d0000000009060433000000000990004c000001720000613d0000000009080433000009a409900197000000f80a70021000000000099a019f000009a60990004100000000009804350000000307700210000000f80770008900000000037301cf000000ff0770008c000000000300201900000021076000390000000000370435000008b80000013d000000400500043d000009a30650009c000000fa0000213d0000004006500039000000400060043f000000010600003900000000066504360000000007000031000000020770036700000000080000190000000509800210000000000a960019000000000997034f000000000909043b00000000009a0435000000010880003a000000000900001900000001090060390000000109900190000008210000c13d0000000007050433000000000770004c000001720000613d000000f8072002100000099c08000041000000000220004c000000000207001900000000020860190000000007060433000009a407700197000000000227019f0000000000260435000000400600043d000009a30260009c000000fa0000213d0000000c0900002900000044029000390000000202200367000000000202043b0000004007600039000000400070043f0000002007600039000009a70800004100000000008704350000001507000039000000000076043500000021076000390000006002200210000000000027043500000124029000390000000202200367000000000202043b000000800720008c000009190000413d0000008007200270000009a50820009c000000000702a019000009a50820009c0000000008000019000000100800203900000008098001bf0000099d0a70009c000000000809201900000040097002700000099d0a70009c000000000709201900000004098001bf000009980a70009c00000000080920190000002009700270000009980a70009c000000000709201900000002098001bf0000ffff0a70008c000000000809201900000010097002700000000007092019000000ff0770008c000000000700001900000001070020390000000008780019000000200700008a0000004109800039000000000979016f000000400700043d0000000009970019000000000a79004b000000000a000019000000010a0040390000099d0b90009c000000fa0000213d000000010aa00190000000fa0000c13d000000400090043f00000002098000390000000009970436000000210a800039000000050aa00272000008850000613d000000000b000031000000020bb00367000000000c000019000000050dc00210000000000ed90019000000000ddb034f000000000d0d043b0000000000de0435000000010cc00039000000000dac004b0000087d0000413d000000000a00004c000008870000613d000000000a070433000000000aa0004c000001720000613d000000000a090433000009a40aa00197000000f80b800210000000000aab019f000009a60aa000410000000000a904350000000308800210000000f80880008900000000028201cf000000ff0880008c000000000200201900000021087000390000000000280435000009390000013d000000400600043d000009a30760009c000000fa0000213d0000004007600039000000400070043f00000001070000390000000007760436000000000800003100000002088003670000000009000019000000050a900210000000000ba70019000000000aa8034f000000000a0a043b0000000000ab0435000000010990003a000000000a000019000000010a006039000000010aa00190000008a20000c13d0000000008060433000000000880004c000001720000613d000000f8083002100000099c09000041000000000330004c000000000308001900000000030960190000000008070433000009a408800197000000000338019f0000000000370435000000400700043d000009a30370009c000000fa0000213d0000000c0a0000290000004403a000390000000203300367000000000303043b0000004008700039000000400080043f0000002008700039000009a7090000410000000000980435000000150800003900000000008704350000002108700039000000600330021000000000003804350000012403a000390000000203300367000000000303043b000000800830008c00000a1a0000413d0000008008300270000009a50930009c000000000803a019000009a50930009c00000000090000190000001009002039000000080a9001bf0000099d0b80009c00000000090a2019000000400a8002700000099d0b80009c00000000080a2019000000040a9001bf000009980b80009c00000000090a2019000000200a800270000009980b80009c00000000080a2019000000020a9001bf0000ffff0b80008c00000000090a2019000000100a80027000000000080a2019000000ff0880008c000000000800001900000001080020390000000009890019000000200800008a000000410a900039000000000a8a016f000000400800043d000000000aa80019000000000b8a004b000000000b000019000000010b0040390000099d0ca0009c000000fa0000213d000000010bb00190000000fa0000c13d0000004000a0043f000000020a900039000000000aa80436000000210b900039000000050bb00272000009060000613d000000000c000031000000020cc00367000000000d000019000000050ed00210000000000fea0019000000000eec034f000000000e0e043b0000000000ef0435000000010dd00039000000000ebd004b000008fe0000413d000000000b00004c000009080000613d000000000b080433000000000bb0004c000001720000613d000000000b0a0433000009a40bb00197000000f80c900210000000000bbc019f000009a60bb000410000000000ba04350000000309900210000000f80990008900000000039301cf000000ff0990008c00000000030020190000002109800039000000000039043500000a3a0000013d000000400700043d000009a30870009c000000fa0000213d0000004008700039000000400080043f0000000108000039000000000887043600000000090000310000000209900367000000000a000019000000050ba00210000000000cb80019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa0003a000000000b000019000000010b006039000000010bb00190000009230000c13d0000000009070433000000000990004c000001720000613d000000f8092002100000099c0a000041000000000220004c000000000209001900000000020a60190000000009080433000009a409900197000000000229019f0000000000280435000000400200043d00000020082000390000000009010433000000000a90004c000009460000613d000000000a000019000000000b8a0019000000200aa00039000000000c1a0019000000000c0c04330000000000cb0435000000000b9a004b0000093f0000413d000000000189001900000000000104350000000008030433000000000980004c000009530000613d0000000009000019000000000a1900190000002009900039000000000b390019000000000b0b04330000000000ba0435000000000a89004b0000094c0000413d000000000118001900000000000104350000000003040433000000000830004c000009600000613d000000000800001900000000091800190000002008800039000000000a480019000000000a0a04330000000000a90435000000000938004b000009590000413d000000000113001900000000000104350000000003050433000000000430004c0000096d0000613d000000000400001900000000081400190000002004400039000000000954001900000000090904330000000000980435000000000834004b000009660000413d000000000113001900000000000104350000000003060433000000000430004c0000097a0000613d000000000400001900000000051400190000002004400039000000000864001900000000080804330000000000850435000000000534004b000009730000413d000000000113001900000000000104350000000003070433000000000430004c000009870000613d000000000400001900000000051400190000002004400039000000000674001900000000060604330000000000650435000000000534004b000009800000413d000000000113001900000000000104350000000001210049000000200310008a00000000003204350000001f03100039000000200100008a000000000313016f0000000005230019000000000335004b000000000300001900000001030040390000099d0450009c000000fa0000213d0000000103300190000000fa0000c13d000000400050043f000000230300008a0000000c060000290000000004630049000001c4036000390000000207000367000000000637034f000000000606043b000000000800003100000000094800190000099c0a000041000000000b96004b000000000b000019000000000b0a80190000099c099001970000099c0c600197000000000d9c004b000000000a00801900000000099c013f0000099c0990009c00000000090b001900000000090a6019000000000990004c000004950000c13d0000000d090000290000000009960019000000000697034f000000000606043b0000099d0a60009c000004950000213d000000000a68004900000020089000390000099c09000041000000000ba8004b000000000b000019000000000b0920190000099c0aa001970000099c0c800197000000000dac004b0000000009008019000000000aac013f0000099c0aa0009c00000000090bc019000000000990004c000004950000c13d000000010960008c00000f070000c13d000000000687034f000000000606043b000000010700008a0000099c08000041000000000776004b000000000700001900000000070820190000099c066001970000099c0960009c00000000080080190000099c066001670000099c0660009c00000000070860190000006006000039000000000770004c00000fa90000c13d000009a30650009c000000fa0000213d0000004006500039000000400060043f0000002006500039000009a607000041000000000076043500000001060000390000000000650435000000000605001900000fa90000013d000000380210008c00000aef0000413d0000002002100270000009980310009c00000000030100190000000003022019000009980210009c0000000002000019000000040200203900000002042001bf0000ffff0530008c000000000204201900000010043002700000000003042019000000ff0330008c00000000030000190000000103002039000000400400043d000400000004001d000009a30440009c000000fa0000213d000000000232019f00000004040000290000004003400039000000400030043f0000000203200039000000000334043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a000000000600001900000001060060390000000106600190000009ff0000c13d00000004040000290000000004040433000000000440004c000001720000613d0000000004030433000009a404400197000000f805200210000000000445019f000009a8044001c700000000004304350000000302200210000000f80220008900000000012101cf00000004020000290000002102200039000000000012043500000b0f0000013d000000400800043d000009a30980009c000000fa0000213d0000004009800039000000400090043f00000001090000390000000009980436000000000a000031000000020aa00367000000000b000019000000050cb00210000000000dc90019000000000cca034f000000000c0c043b0000000000cd0435000000010bb0003a000000000c000019000000010c006039000000010cc0019000000a240000c13d000000000a080433000000000aa0004c000001720000613d000000f80a3002100000099c0b000041000000000330004c00000000030a001900000000030b6019000000000a090433000009a40aa0019700000000033a019f0000000000390435000000400300043d0000002009300039000000000a010433000000000ba0004c00000a470000613d000000000b000019000000000c9b0019000000200bb00039000000000d1b0019000000000d0d04330000000000dc0435000000000cab004b00000a400000413d00000000019a001900000000000104350000000009020433000000000a90004c00000a540000613d000000000a000019000000000b1a0019000000200aa00039000000000c2a0019000000000c0c04330000000000cb0435000000000b9a004b00000a4d0000413d000000000119001900000000000104350000000002040433000000000920004c00000a610000613d0000000009000019000000000a1900190000002009900039000000000b490019000000000b0b04330000000000ba0435000000000a29004b00000a5a0000413d000000000112001900000000000104350000000002050433000000000420004c00000a6e0000613d000000000400001900000000091400190000002004400039000000000a540019000000000a0a04330000000000a90435000000000924004b00000a670000413d000000000112001900000000000104350000000002060433000000000420004c00000a7b0000613d000000000400001900000000051400190000002004400039000000000964001900000000090904330000000000950435000000000524004b00000a740000413d000000000112001900000000000104350000000002070433000000000420004c00000a880000613d000000000400001900000000051400190000002004400039000000000674001900000000060604330000000000650435000000000524004b00000a810000413d000000000112001900000000000104350000000002080433000000000420004c00000a950000613d000000000400001900000000051400190000002004400039000000000684001900000000060604330000000000650435000000000524004b00000a8e0000413d000000000112001900000000000104350000000001310049000000200210008a00000000002304350000001f02100039000000200100008a000000000212016f0000000005320019000000000225004b000000000200001900000001020040390000099d0450009c000000fa0000213d0000000102200190000000fa0000c13d000000400050043f000000230200008a0000000c060000290000000004620049000001c4026000390000000207000367000000000627034f000000000606043b000000000800003100000000094800190000099c0a000041000000000b96004b000000000b000019000000000b0a80190000099c099001970000099c0c600197000000000d9c004b000000000a00801900000000099c013f0000099c0990009c00000000090b001900000000090a6019000000000990004c000004950000c13d0000000d090000290000000009960019000000000697034f000000000606043b0000099d0a60009c000004950000213d000000000a68004900000020089000390000099c09000041000000000ba8004b000000000b000019000000000b0920190000099c0aa001970000099c0c800197000000000dac004b0000000009008019000000000aac013f0000099c0aa0009c00000000090bc019000000000990004c000004950000c13d000000010960008c00000f570000c13d000000000687034f000000000606043b000000010700008a0000099c08000041000000000776004b000000000700001900000000070820190000099c066001970000099c0960009c00000000080080190000099c066001670000099c0660009c00000000070860190000006006000039000000000770004c000010450000c13d000009a30650009c000000fa0000213d0000004006500039000000400060043f0000002006500039000009a6070000410000000000760435000000010600003900000000006504350000000006050019000010450000013d000000400200043d000400000002001d000009a30220009c000000fa0000213d00000004030000290000004002300039000000400020043f0000000102000039000000000223043600000000030000310000000203300367000000000400001900000005054002100000000006520019000000000553034f000000000505043b0000000000560435000000010440003a00000000050000190000000105006039000000010550019000000afb0000c13d00000004030000290000000003030433000000000330004c000001720000613d000000f8011002100000000003020433000009a403300197000000000113019f0000099c01100167000000000012043500000060010000390000000c0200002900000144032000390000000202000367000000000332034f000000000303043b000000000330004c00000b870000c13d0000000603000029000000000432034f000000000300003100000005050000290000000005530019000000000904043b0000099c04000041000000000659004b000000000600001900000000060480190000099c055001970000099c07900197000000000857004b0000000004008019000000000557013f0000099c0550009c000000000406c019000000000440004c000004950000c13d0000000b0400002900000000040404330000000a0500002900000000050504330000000906000029000000000606043300000007070000290000000007070433000000040800002900000000080804330000000d0a0000290000000009a90019000000000292034f000000000202043b0000099d0a20009c000004950000213d000000000323004900000020099000390000099c0a000041000000000b39004b000000000b000019000000000b0a20190000099c033001970000099c09900197000000000c39004b000000000a008019000000000339013f0000099c0330009c00000000030b001900000000030a6019000000000330004c000004950000c13d00000000034500190000000003630019000000000373001900000000038300190000000002230019000000000301043300000000023200190000099d02200197000000380320008c00000d4a0000413d0000002003200270000009980420009c00000000040200190000000004032019000009980320009c0000000003000019000000040300203900000002053001bf0000ffff0640008c000000000305201900000010054002700000000004052019000000ff0440008c00000000040000190000000104002039000000400500043d000009a30650009c000000fa0000213d000000000343019f0000004004500039000000400040043f0000000204300039000000000445043600000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b0000000000890435000000010770003a00000000080000190000000108006039000000010880019000000b6e0000c13d0000000006050433000000000660004c000001720000613d0000000006040433000009a406600197000000f807300210000000000667019f000009aa066001c700000000006404350000000303300210000000f80330008900000000023201cf0000002103500039000000000023043500000d670000013d000009a101000041000000000010043900000998010000410000000002000414000009980320009c0000000001024019000000c001100210000009a2011001c70000800b02000039265c26570000040f0000000102200190000004950000613d000000000101043b000000800210008c00000be10000413d0000008002100270000009a50310009c000000000201a019000009a50310009c0000000003000019000000100300203900000008043001bf0000099d0520009c000000000304201900000040042002700000099d0520009c000000000204201900000004043001bf000009980520009c00000000030420190000002004200270000009980520009c000000000204201900000002043001bf0000ffff0520008c000000000304201900000010042002700000000002042019000000ff0220008c00000000020000190000000102002039000000000323001900000041023000390000000804000029000000000442016f000000400200043d0000000004420019000000000524004b000000000500001900000001050040390000099d0640009c000000fa0000213d0000000105500190000000fa0000c13d000000400040043f000000020430003900000000044204360000002105300039000000050550027200000bce0000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b00000bc60000413d000000000500004c00000bd00000613d0000000005020433000000000550004c000001720000613d0000000005040433000009a405500197000000f806300210000000000556019f000009a60550004100000000005404350000000303300210000000f80330008900000000013101cf000000ff0330008c00000000010020190000002103200039000000000013043500000c010000013d000000400200043d000009a30320009c000000fa0000213d0000004003200039000000400030043f0000000103000039000000000332043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a00000000060000190000000106006039000000010660019000000beb0000c13d0000000004020433000000000440004c000001720000613d000000f8041002100000099c05000041000000000110004c000000000104001900000000010560190000000004030433000009a404400197000000000114019f0000000000130435000000400100043d00000020031000390000000004020433000000000540004c00000c0e0000613d000000000500001900000000063500190000002005500039000000000725001900000000070704330000000000760435000000000645004b00000c070000413d0000000002340019000009bb03000041000000000032043500000000021200490000001e0320008a000000000031043500000021022000390000000803000029000000000332016f0000000002130019000000000332004b000000000300001900000001030040390000099d0420009c000000fa0000213d0000000103300190000000fa0000c13d000000400020043f000000020200036700000b170000013d0000000801000029000000c001100210000009ae01100197000009ad011001c70000ffe902000039265c26570000040f00000000020100190000006002200270000109980020019d000000090300002900000008020000290000000002230019000000000332004b0000000003000019000000010300403900030000000103550000000101300190000003380000c13d0000000001000031000000000321004b000003380000413d0000000001210049000000c001100210000009ae01100197000009ad011001c70000ffe802000039265c26570000040f00000000020100190000006002200270000109980020019d00030000000103550000000601000029000009980110009c000000e40000213d000009af010000410000ffe702000039265c26570000040f00000000020100190000006002200270000109980020019d0003000000010355000009b0010000410000fff602000039265c26570000040f00000000030100190000006003300270000109980030019d00000998033001970003000000010355000000010220019000000f3c0000613d0000003f01300039000009b101100197000000400200043d0000000001120019000000000421004b000000000400001900000001040040390000099d0510009c000000fa0000213d0000000104400190000000fa0000c13d000000400010043f00000000013204360000001f04300039000000050440027200000c700000613d00000000050000310000000205500367000000000600001900000005076002100000000008710019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b00000c680000413d000000000400004c00000c720000613d0000000104000031000000000443004b000004950000213d00000003050003670000001f0430018f000000050330027200000c820000613d000000000600001900000005076002100000000008710019000000000775034f000000000707043b00000000007804350000000106600039000000000736004b00000c7a0000413d000000000640004c00000c910000613d0000000503300210000000000535034f00000000033100190000000304400210000000000603043300000000064601cf000000000646022f000000000505043b0000010004400089000000000545022f00000000044501cf000000000464019f00000000004304350000000002020433000000200220008c00000ef50000c13d0000000c0c0000290000002402c000390000000203000367000000000423034f0000012402c00039000000000523034f0000010402c00039000000000623034f000000e402c00039000000000723034f000000c402c00039000000000823034f000000a402c00039000000000923034f0000008402c00039000000000a23034f0000006402c00039000000000b23034f0000004402c00039000000000c23034f0000000d02000029000000000223034f000000000202043b000000000304043b00000000040c043b000000000b0b043b000000000a0a043b000000000909043b000000000808043b000000000707043b000000000606043b000000000505043b000000000c010433000000400100043d000001c00d1000390000000000cd0435000001a00c1000390000000b0d0000290000000000dc0435000001800c1000390000000a0d0000290000000000dc0435000001600c10003900000000005c0435000001400510003900000000006504350000012005100039000000000075043500000100051000390000000000850435000000e0051000390000000000950435000000c0051000390000000000a50435000000a0051000390000000000b504350000008005100039000000000045043500000060041000390000000000340435000000400310003900000000002304350000002002100039000009b3030000410000000000320435000001c0030000390000000000310435000009b40310009c000000fa0000213d000001e003100039000000400030043f0000099803000041000009980420009c000000000203801900000040022002100000000001010433000009980410009c00000000010380190000006001100210000000000121019f0000000002000414000009980420009c0000000002038019000000c002200210000000000112019f000009ac011001c70000801002000039265c26570000040f0000000102200190000004950000613d000000000101043b000a00000001001d000000400100043d000b00000001001d000009a101000041000000000010043900000998010000410000000002000414000009980320009c0000000001024019000000c001100210000009a2011001c70000800b02000039265c26570000040f00000007040000290000000102200190000004950000613d0000000b050000290000002002500039000000000101043b000009b5030000410000000000320435000000800350003900000000001304350000006001500039000009b60300004100000000003104350000004001500039000009b70300004100000000003104350000000000450435000009b80150009c000000fa0000213d0000000b04000029000000a001400039000000400010043f0000099801000041000009980320009c000000000201801900000040022002100000000003040433000009980430009c00000000030180190000006003300210000000000223019f0000000003000414000009980430009c0000000001034019000000c001100210000000000121019f000009ac011001c70000801002000039265c26570000040f0000000102200190000004950000613d000000000301043b000000400100043d00000042021000390000000a0400002900000000004204350000002002100039000009b90400004100000000004204350000002204100039000000000034043500000042030000390000000000310435000009ba0310009c000000fa0000213d0000008003100039000000400030043f0000099803000041000009980420009c000000000203801900000040022002100000000001010433000009980410009c00000000010380190000006001100210000000000121019f0000000002000414000009980420009c0000000002038019000000c002200210000000000112019f000009ac011001c70000801002000039265c26570000040f00000001022001900000000c0b00002900000e350000c13d000004950000013d000000400500043d000009a30350009c000000fa0000213d0000004003500039000000400030043f0000000103000039000000000335043600000000040000310000000204400367000000000600001900000005076002100000000008730019000000000774034f000000000707043b0000000000780435000000010660003a00000000070000190000000107006039000000010770019000000d540000c13d0000000004050433000000000440004c000001720000613d000000f8022002100000000004030433000009a404400197000000000242019f000009a902200041000000000023043500000000020000310000000503000029000000000632001900000002030003670000000604000029000000000443034f000000000404043b0000099c07000041000000000864004b000000000800001900000000080780190000099c066001970000099c09400197000000000a69004b0000000007008019000000000669013f0000099c0660009c00000000060800190000000006076019000000000660004c000004950000c13d0000000d060000290000000006640019000000000363034f000000000403043b0000099d0340009c000004950000213d000000000242004900000020066000390000099c03000041000000000726004b000000000700001900000000070320190000099c022001970000099c08600197000000000928004b0000000003008019000000000228013f0000099c0220009c00000000020700190000000002036019000000000220004c000004950000c13d000000400200043d00000020032000390000000007050433000000000870004c00000d9f0000613d000000000800001900000000093800190000002008800039000000000a580019000000000a0a04330000000000a90435000000000978004b00000d980000413d000000000537001900000000000504350000000b0b00002900000000070b0433000000000870004c00000dad0000613d000000000800001900000000095800190000002008800039000000000ab80019000000000a0a04330000000000a90435000000000978004b00000da60000413d000000000557001900000000000504350000000a0b00002900000000070b0433000000000870004c00000dbb0000613d000000000800001900000000095800190000002008800039000000000ab80019000000000a0a04330000000000a90435000000000978004b00000db40000413d00000000055700190000000000050435000000090b00002900000000070b0433000000000870004c00000dc90000613d000000000800001900000000095800190000002008800039000000000ab80019000000000a0a04330000000000a90435000000000978004b00000dc20000413d00000000055700190000000000050435000000070b00002900000000070b0433000000000870004c00000dd70000613d000000000800001900000000095800190000002008800039000000000ab80019000000000a0a04330000000000a90435000000000978004b00000dd00000413d00000000055700190000000000050435000000040b00002900000000070b0433000000000870004c00000de50000613d000000000800001900000000095800190000002008800039000000000ab80019000000000a0a04330000000000a90435000000000978004b00000dde0000413d00000000055700190000001f0740018f00000000000504350000000206600367000000050840027200000df40000613d0000000009000019000000050a900210000000000ba50019000000000aa6034f000000000a0a043b0000000000ab04350000000109900039000000000a89004b00000dec0000413d000000000970004c00000e030000613d0000000508800210000000000686034f00000000088500190000000307700210000000000908043300000000097901cf000000000979022f000000000606043b0000010007700089000000000676022f00000000067601cf000000000696019f0000000000680435000000000445001900000000000404350000000005010433000000000650004c00000e100000613d000000000600001900000000074600190000002006600039000000000816001900000000080804330000000000870435000000000756004b00000e090000413d000000000145001900000000000104350000000001210049000000200410008a00000000004204350000001f011000390000000804000029000000000441016f0000000001240019000000000441004b000000000400001900000001040040390000099d0510009c000000fa0000213d0000000104400190000000fa0000c13d000000400010043f0000099801000041000009980430009c000000000301801900000040033002100000000002020433000009980420009c00000000020180190000006002200210000000000232019f0000000003000414000009980430009c0000000001034019000000c001100210000000000121019f000009ac011001c70000801002000039265c26570000040f00000001022001900000000c0b000029000004950000613d00000002020003670000000d03000029000000000332034f000000000101043b000c00000001001d000000000103043b000000710310008c000010c40000c13d000001e401b00039000000000312034f00000000010000310000000004b10049000000230440008a000000000303043b0000099c05000041000000000643004b000000000600001900000000060580190000099c044001970000099c07300197000000000847004b0000000005008019000000000447013f0000099c0440009c00000000040600190000000004056019000000000440004c000004950000c13d0000000d040000290000000003430019000000000232034f000000000202043b000d00000002001d0000099d0220009c000004950000213d0000000d02000029000000000121004900000020043000390000099c02000041000000000314004b000000000300001900000000030220190000099c01100197000b00000004001d0000099c04400197000000000514004b0000000002008019000000000114013f0000099c0110009c00000000010300190000000001026019000000000110004c000004950000c13d0000000001000414000a00000001001d000009ad010000410000ffeb02000039265c26570000040f00000000020100190000006002200270000109980020019d00030000000103550000000d01000029000000000110004c000013300000c13d0000000001000031000000c001100210000009ae01100197000009ad011001c70000ffe802000039265c26570000040f00000000020100190000006002200270000109980020019d00030000000103550000000a01000029000009980110009c000000e40000213d000009af010000410000ffe702000039265c26570000040f00000000020100190000006002200270000109980020019d0003000000010355000009b0010000410000fff602000039265c26570000040f00000000030100190000006003300270000109980030019d000009980330019700030000000103550000000102200190000013b70000613d0000003f01300039000009b102100197000000400100043d0000000002210019000000000412004b000000000400001900000001040040390000099d0520009c000000fa0000213d0000000104400190000000fa0000c13d000000400020043f00000000023104360000001f04300039000000050440027200000eaf0000613d00000000050000310000000205500367000000000600001900000005076002100000000008720019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b00000ea70000413d000000000400004c00000eb10000613d0000000104000031000000000443004b000004950000213d00000003050003670000001f0430018f000000050330027200000ec10000613d000000000600001900000005076002100000000008720019000000000775034f000000000707043b00000000007804350000000106600039000000000736004b00000eb90000413d000000000640004c00000ed00000613d0000000503300210000000000535034f00000000033200190000000304400210000000000603043300000000064601cf000000000646022f000000000505043b0000010004400089000000000545022f00000000044501cf000000000464019f00000000004304350000000001010433000000200110008c00000ef50000c13d0000000002020433000000400100043d0000004003100039000000000023043500000020021000390000000c03000029000000000032043500000040030000390000000000310435000009c00310009c000000fa0000213d0000006003100039000000400030043f0000099803000041000009980420009c000000000203801900000040022002100000000001010433000009980410009c00000000010380190000006001100210000000000121019f0000000002000414000009980420009c0000000002038019000000c002200210000000000112019f000009ac011001c70000801002000039265c26570000040f0000000102200190000004950000613d000000000101043b000013140000013d000000400100043d0000004402100039000009bf03000041000000000032043500000024021000390000001f0300003900000000003204350000099f0200004100000000002104350000000402100039000000200300003900000000003204350000099802000041000009980310009c00000000010280190000004001100210000009a0011001c70000265e00010430000000380760008c00000f8c0000413d0000002007600270000009980860009c00000000080600190000000008072019000009980760009c0000000007000019000000040700203900000002097001bf0000ffff0a80008c000000000709201900000010098002700000000008092019000000ff0880008c00000000080000190000000108002039000009a30950009c000000fa0000213d000000000787019f0000004008500039000000400080043f0000000208700039000000000885043600000000090000310000000209900367000000000a000019000000050ba00210000000000cb80019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa0003a000000000b000019000000010b006039000000010bb0019000000f220000c13d0000000009050433000000000990004c000001720000613d0000000009080433000009a409900197000000f80a70021000000000099a019f000009a8099001c700000000009804350000000307700210000000f80770008900000000067601cf00000021075000390000000000670435000000000605001900000fa90000013d0000001f0430018f000000050230027200000f470000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b00000f400000413d000000000540004c00000f550000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f000000000012043500000060013002100000265e00010430000000380760008c000010280000413d0000002007600270000009980860009c00000000080600190000000008072019000009980760009c0000000007000019000000040700203900000002097001bf0000ffff0a80008c000000000709201900000010098002700000000008092019000000ff0880008c00000000080000190000000108002039000009a30950009c000000fa0000213d000000000787019f0000004008500039000000400080043f0000000208700039000000000885043600000000090000310000000209900367000000000a000019000000050ba00210000000000cb80019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa0003a000000000b000019000000010b006039000000010bb0019000000f720000c13d0000000009050433000000000990004c000001720000613d0000000009080433000009a409900197000000f80a70021000000000099a019f000009a8099001c700000000009804350000000307700210000000f80770008900000000067601cf000000210750003900000000006704350000000006050019000010450000013d000009a30750009c000000fa0000213d0000004007500039000000400070043f00000001070000390000000007750436000000000800003100000002088003670000000009000019000000050a900210000000000ba70019000000000aa8034f000000000a0a043b0000000000ab0435000000010990003a000000000a000019000000010a006039000000010aa0019000000f950000c13d0000000008050433000000000880004c000001720000613d000000f8066002100000000008070433000009a408800197000000000668019f0000099c0660016700000000006704350000000006050019000000400500043d000009a30750009c000000fa0000213d0000004007500039000000400070043f0000000109000039000000000795043600000000080000310000000208800367000000000a000019000000050ba00210000000000cb70019000000000bb8034f000000000b0b043b0000000000bc0435000000010aa0003a000000000b000019000000010b006039000000010bb0019000000fb30000c13d0000000008050433000000000880004c000001720000613d0000000008070433000009a408800197000009a9088001c7000000000087043500000000070000310000000008470019000000020b000367000000000a3b034f000000000c0a043b0000099c0a000041000000000d8c004b000000000d000019000000000d0a80190000099c088001970000099c0ec00197000000000f8e004b000000000a00801900000000088e013f0000099c0880009c00000000080d001900000000080a6019000000000880004c000004950000c13d0000000008020433000000000a0604330000000d0d000029000000000cdc0019000000000bcb034f000000000b0b043b0000099d0db0009c000004950000213d0000000007b70049000000200cc000390000099c0d000041000000000e7c004b000000000e000019000000000e0d20190000099c077001970000099c0cc00197000000000f7c004b000000000d00801900000000077c013f0000099c0770009c00000000070e001900000000070d6019000000000770004c000004950000c13d00000000078a00190000000007b70019000000000805043300000000078700190000099d08700197000000380780008c0000111a0000413d0000002007800270000009980980009c000000000708a019000009980980009c00000000090000190000000409002039000000020a9001bf0000ffff0b70008c00000000090a2019000000100a70027000000000070a2019000000ff0770008c000000000a000019000000010a002039000000400700043d000009a30b70009c000000fa0000213d0000000009a9019f000000400a7000390000004000a0043f000000020a900039000000000aa70436000000000b000031000000020bb00367000000000c000019000000050dc00210000000000eda0019000000000ddb034f000000000d0d043b0000000000de0435000000010cc0003a000000000d000019000000010d006039000000010dd001900000100f0000c13d000000000b070433000000000bb0004c000001720000613d000000000b0a0433000009a40bb00197000000f80c900210000000000bbc019f000009aa0bb001c70000000000ba04350000000309900210000000f80990008900000000089801cf00000021097000390000000000890435000011360000013d000009a30750009c000000fa0000213d0000004007500039000000400070043f00000001070000390000000007750436000000000800003100000002088003670000000009000019000000050a900210000000000ba70019000000000aa8034f000000000a0a043b0000000000ab0435000000010990003a000000000a000019000000010a006039000000010aa00190000010310000c13d0000000008050433000000000880004c000001720000613d000000f8066002100000000008070433000009a408800197000000000668019f0000099c0660016700000000006704350000000006050019000000400500043d000009a30750009c000000fa0000213d0000004007500039000000400070043f0000000109000039000000000795043600000000080000310000000208800367000000000a000019000000050ba00210000000000cb70019000000000bb8034f000000000b0b043b0000000000bc0435000000010aa0003a000000000b000019000000010b006039000000010bb001900000104f0000c13d0000000008050433000000000880004c000001720000613d0000000008070433000009a408800197000009a9088001c7000000000087043500000000070000310000000008470019000000020b000367000000000a2b034f000000000c0a043b0000099c0a000041000000000d8c004b000000000d000019000000000d0a80190000099c088001970000099c0ec00197000000000f8e004b000000000a00801900000000088e013f0000099c0880009c00000000080d001900000000080a6019000000000880004c000004950000c13d0000000008030433000000000a0604330000000d0d000029000000000cdc0019000000000bcb034f000000000b0b043b0000099d0db0009c000004950000213d0000000007b70049000000200cc000390000099c0d000041000000000e7c004b000000000e000019000000000e0d20190000099c077001970000099c0cc00197000000000f7c004b000000000d00801900000000077c013f0000099c0770009c00000000070e001900000000070d6019000000000770004c000004950000c13d00000000078a00190000000007b70019000000000805043300000000078700190000099d08700197000000380780008c000011de0000413d0000002007800270000009980980009c000000000708a019000009980980009c00000000090000190000000409002039000000020a9001bf0000ffff0b70008c00000000090a2019000000100a70027000000000070a2019000000ff0770008c000000000a000019000000010a002039000000400700043d000009a30b70009c000000fa0000213d0000000009a9019f000000400a7000390000004000a0043f000000020a900039000000000aa70436000000000b000031000000020bb00367000000000c000019000000050dc00210000000000eda0019000000000ddb034f000000000d0d043b0000000000de0435000000010cc0003a000000000d000019000000010d006039000000010dd00190000010ab0000c13d000000000b070433000000000bb0004c000001720000613d000000000b0a0433000009a40bb00197000000f80c900210000000000bbc019f000009aa0bb001c70000000000ba04350000000309900210000000f80990008900000000089801cf00000021097000390000000000890435000011fa0000013d000000000310004c000011d90000c13d0000010401b00039000000000112034f000000000101043b000000800210008c0000129d0000413d0000008002100270000009a50310009c000000000201a019000009a50310009c0000000003000019000000100300203900000008043001bf0000099d0520009c000000000304201900000040042002700000099d0520009c000000000204201900000004043001bf000009980520009c00000000030420190000002004200270000009980520009c000000000204201900000002043001bf0000ffff0520008c000000000304201900000010042002700000000002042019000000ff0220008c000000000200001900000001020020390000000002230019000000200300008a0000004104200039000000000334016f000000400400043d0000000003340019000b00000004001d000000000443004b000000000400001900000001040040390000099d0530009c000000fa0000213d0000000104400190000000fa0000c13d000000400030043f00000002032000390000000b04000029000000000334043600000021042000390000000504400272000011050000613d00000000050000310000000205500367000000000600001900000005076002100000000008730019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000010fd0000413d000000000400004c000011070000613d0000000b040000290000000004040433000000000440004c000001720000613d0000000004030433000009a404400197000000f805200210000000000445019f000009a60440004100000000004304350000000302200210000000f80220008900000000012101cf000000ff0220008c00000000010020190000000b0200002900000021022000390000000000120435000012c00000013d000000400700043d000009a30a70009c000000fa0000213d000000400a7000390000004000a0043f0000000009970436000000000a000031000000020aa00367000000000b000019000000050cb00210000000000dc90019000000000cca034f000000000c0c043b0000000000cd0435000000010bb0003a000000000c000019000000010c006039000000010cc00190000011230000c13d000000000a070433000000000aa0004c000001720000613d000000f808800210000000000a090433000009a40aa001970000000008a8019f000009a9088000410000000000890435000000000900003100000000084900190000000204000367000000000334034f000000000303043b0000099c0a000041000000000b83004b000000000b000019000000000b0a80190000099c088001970000099c0c300197000000000d8c004b000000000a00801900000000088c013f0000099c0880009c00000000080b001900000000080a6019000000000880004c000004950000c13d0000000d080000290000000003830019000000000434034f000000000804043b0000099d0480009c000004950000213d000000000489004900000020093000390000099c03000041000000000a49004b000000000a000019000000000a0320190000099c044001970000099c0b900197000000000c4b004b000000000300801900000000044b013f0000099c0440009c00000000030ac019000000000330004c000004950000c13d000000400300043d0000002004300039000009ab0a0000410000000000a40435000000210a300039000000000b070433000000000cb0004c0000116e0000613d000000000c000019000000000dac0019000000200cc00039000000000e7c0019000000000e0e04330000000000ed0435000000000dbc004b000011670000413d0000000007ab00190000000000070435000000000a020433000000000ba0004c0000117b0000613d000000000b000019000000000c7b0019000000200bb00039000000000d2b0019000000000d0d04330000000000dc0435000000000cab004b000011740000413d00000000027a001900000000000204350000000007060433000000000a70004c000011880000613d000000000a000019000000000b2a0019000000200aa00039000000000c6a0019000000000c0c04330000000000cb0435000000000b7a004b000011810000413d00000000022700190000001f0680018f000000000002043500000002079003670000000509800272000011970000613d000000000a000019000000050ba00210000000000cb20019000000000bb7034f000000000b0b043b0000000000bc0435000000010aa00039000000000b9a004b0000118f0000413d000000000a60004c000011a60000613d0000000509900210000000000797034f00000000099200190000000306600210000000000a090433000000000a6a01cf000000000a6a022f000000000707043b0000010006600089000000000767022f00000000066701cf0000000006a6019f0000000000690435000000000282001900000000000204350000000006050433000000000760004c000011b30000613d000000000700001900000000082700190000002007700039000000000957001900000000090904330000000000980435000000000867004b000011ac0000413d000000000226001900000000000204350000000002320049000000200520008a00000000005304350000001f02200039000000000212016f0000000001320019000000000221004b000000000200001900000001020040390000099d0510009c000000fa0000213d0000000102200190000000fa0000c13d000000400010043f0000099801000041000009980240009c0000000002010019000000000204401900000040022002100000000003030433000009980430009c00000000030180190000006003300210000000000223019f0000000003000414000009980430009c0000000001034019000000c001100210000000000121019f000009ac011001c70000801002000039265c26570000040f00000001022001900000000c0b00002900000e350000c13d000004950000013d000000020210008c000013100000c13d0000000d01000029265c1f6b0000040f000013140000013d000000400700043d000009a30a70009c000000fa0000213d000000400a7000390000004000a0043f0000000009970436000000000a000031000000020aa00367000000000b000019000000050cb00210000000000dc90019000000000cca034f000000000c0c043b0000000000cd0435000000010bb0003a000000000c000019000000010c006039000000010cc00190000011e70000c13d000000000a070433000000000aa0004c000001720000613d000000f808800210000000000a090433000009a40aa001970000000008a8019f000009a9088000410000000000890435000000000900003100000000084900190000000204000367000000000224034f000000000202043b0000099c0a000041000000000b82004b000000000b000019000000000b0a80190000099c088001970000099c0c200197000000000d8c004b000000000a00801900000000088c013f0000099c0880009c00000000080b001900000000080a6019000000000880004c000004950000c13d0000000d080000290000000002820019000000000424034f000000000804043b0000099d0480009c000004950000213d000000000489004900000020092000390000099c02000041000000000a49004b000000000a000019000000000a0220190000099c044001970000099c0b900197000000000c4b004b000000000200801900000000044b013f0000099c0440009c00000000020ac019000000000220004c000004950000c13d000000400200043d0000002004200039000009ac0a0000410000000000a40435000000210a200039000000000b070433000000000cb0004c000012320000613d000000000c000019000000000dac0019000000200cc00039000000000e7c0019000000000e0e04330000000000ed0435000000000dbc004b0000122b0000413d0000000007ab00190000000000070435000000000a030433000000000ba0004c0000123f0000613d000000000b000019000000000c7b0019000000200bb00039000000000d3b0019000000000d0d04330000000000dc0435000000000cab004b000012380000413d00000000037a001900000000000304350000000007060433000000000a70004c0000124c0000613d000000000a000019000000000b3a0019000000200aa00039000000000c6a0019000000000c0c04330000000000cb0435000000000b7a004b000012450000413d00000000033700190000001f0680018f0000000000030435000000020790036700000005098002720000125b0000613d000000000a000019000000050ba00210000000000cb30019000000000bb7034f000000000b0b043b0000000000bc0435000000010aa00039000000000b9a004b000012530000413d000000000a60004c0000126a0000613d0000000509900210000000000797034f00000000099300190000000306600210000000000a090433000000000a6a01cf000000000a6a022f000000000707043b0000010006600089000000000767022f00000000066701cf0000000006a6019f0000000000690435000000000383001900000000000304350000000006050433000000000760004c000012770000613d000000000700001900000000083700190000002007700039000000000957001900000000090904330000000000980435000000000867004b000012700000413d000000000336001900000000000304350000000003230049000000200530008a00000000005204350000001f03300039000000000313016f0000000001230019000000000331004b000000000300001900000001030040390000099d0510009c000000fa0000213d0000000103300190000000fa0000c13d000000400010043f0000099801000041000009980340009c0000000003010019000000000304401900000040033002100000000002020433000009980420009c00000000020180190000006002200210000000000232019f0000000003000414000009980430009c0000000001034019000000c001100210000000000121019f000009ac011001c70000801002000039265c26570000040f00000001022001900000000c0b00002900000e350000c13d000004950000013d000000400200043d000b00000002001d000009a30220009c000000fa0000213d0000000b030000290000004002300039000000400020043f0000000102000039000000000223043600000000030000310000000203300367000000000400001900000005054002100000000006520019000000000553034f000000000505043b0000000000560435000000010440003a000000000500001900000001050060390000000105500190000012a90000c13d0000000b030000290000000003030433000000000330004c000001720000613d000000f8031002100000099c04000041000000000110004c000000000103001900000000010460190000000003020433000009a403300197000000000113019f0000000000120435000000a401b000390000000201100367000000000201043b000000800120008c000013470000413d0000008001200270000009a50320009c000000000102a019000009a50320009c0000000003000019000000100300203900000008043001bf0000099d0510009c000000000304201900000040041002700000099d0510009c000000000104201900000004043001bf000009980510009c00000000030420190000002004100270000009980510009c000000000104201900000002043001bf0000ffff0510008c000000000304201900000010041002700000000001042019000000ff0110008c000000000100001900000001010020390000000003130019000000200100008a0000004104300039000000000414016f000000400100043d0000000004410019000000000514004b000000000500001900000001050040390000099d0640009c000000fa0000213d0000000105500190000000fa0000c13d000000400040043f0000000204300039000000000441043600000021053000390000000505500272000012fd0000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b000012f50000413d000000000500004c000012ff0000613d0000000005010433000000000550004c000001720000613d0000000005040433000009a405500197000000f806300210000000000556019f000009a60550004100000000005404350000000303300210000000f80330008900000000023201cf000000ff0330008c000000000200201900000021031000390000000000230435000013670000013d000000010110008c0000131f0000c13d0000000d01000029265c18fd0000040f000000400200043d00000020032000390000000c04000029000000000043043500000000001204350000099801000041000009980320009c00000000010240190000004001100210000009c1011001c70000265d0001042e000000400200043d000d00000002001d0000099f0100004100000000001204350000000401200039265c18f30000040f0000000d0400002900000000014100490000099802000041000009980310009c0000000001028019000009980340009c000000000204401900000040022002100000006001100210000000000121019f0000265e000104300000000b01000029000000c001100210000009ae01100197000009ad011001c70000ffe902000039265c26570000040f00000000020100190000006002200270000109980020019d0000000d030000290000000b020000290000000002230019000000000332004b0000000003000019000000010300403900030000000103550000000101300190000003380000c13d0000000001000031000000000321004b000003380000413d000000000121004900000e770000013d000000400100043d000009a30310009c000000fa0000213d0000004003100039000000400030043f0000000103000039000000000331043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a000000000600001900000001060060390000000106600190000013510000c13d0000000004010433000000000440004c000001720000613d000000f8042002100000099c05000041000000000220004c000000000204001900000000020560190000000004030433000009a404400197000000000224019f00000000002304350000006402b000390000000202200367000000000302043b000000800230008c000013d20000413d0000008002300270000009a50430009c000000000203a019000009a50430009c0000000004000019000000100400203900000008054001bf0000099d0620009c000000000405201900000040052002700000099d0620009c000000000205201900000004054001bf000009980620009c00000000040520190000002005200270000009980620009c000000000205201900000002054001bf0000ffff0620008c000000000405201900000010052002700000000002052019000000ff0220008c000000000200001900000001020020390000000004240019000000200200008a0000004105400039000000000525016f000000400200043d0000000005520019000000000625004b000000000600001900000001060040390000099d0750009c000000fa0000213d0000000106600190000000fa0000c13d000000400050043f0000000205400039000000000552043600000021064000390000000506600272000013a40000613d0000000007000031000000020770036700000000080000190000000509800210000000000a950019000000000997034f000000000909043b00000000009a04350000000108800039000000000968004b0000139c0000413d000000000600004c000013a60000613d0000000006020433000000000660004c000001720000613d0000000006050433000009a406600197000000f807400210000000000667019f000009a60660004100000000006504350000000304400210000000f80440008900000000034301cf000000ff0440008c000000000300201900000021042000390000000000340435000013f20000013d0000001f0430018f0000000502300272000013c20000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000013bb0000413d000000000540004c000013d00000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f000000000012043500000060013002100000265e00010430000000400200043d000009a30420009c000000fa0000213d0000004004200039000000400040043f0000000104000039000000000442043600000000050000310000000205500367000000000600001900000005076002100000000008740019000000000775034f000000000707043b0000000000780435000000010660003a000000000700001900000001070060390000000107700190000013dc0000c13d0000000005020433000000000550004c000001720000613d000000f8053002100000099c06000041000000000330004c000000000305001900000000030660190000000005040433000009a405500197000000000335019f0000000000340435000000400300043d000a00000003001d00000020033000390000000004010433000000000540004c000014000000613d000000000500001900000000063500190000002005500039000000000715001900000000070704330000000000760435000000000645004b000013f90000413d000000000134001900000000000104350000000003020433000000000430004c0000140d0000613d000000000400001900000000051400190000002004400039000000000624001900000000060604330000000000650435000000000534004b000014060000413d000000000113001900000000000104350000000a030000290000000001310049000000200210008a00000000002304350000001f01100039000000200200008a000800000002001d000000000121016f0000000002310019000000000112004b00000000010000190000000101004039000900000002001d0000099d0220009c000000fa0000213d0000000101100190000000fa0000c13d0000000901000029000000400010043f000009a30110009c000000fa0000213d00000000040b001900000044014000390000000201100367000000000101043b00000009050000290000004002500039000000400020043f0000002002500039000009a70300004100000000003204350000001502000039000000000025043500000021025000390000006001100210000000000012043500000124014000390000000201100367000000000101043b000000800210008c000014870000413d0000008002100270000009a50310009c000000000201a019000009a50310009c0000000003000019000000100300203900000008043001bf0000099d0520009c000000000304201900000040042002700000099d0520009c000000000204201900000004043001bf000009980520009c00000000030420190000002004200270000009980520009c000000000204201900000002043001bf0000ffff0520008c000000000304201900000010042002700000000002042019000000ff0220008c00000000020000190000000102002039000000000223001900000041032000390000000804000029000000000343016f000000400400043d0000000003340019000700000004001d000000000443004b000000000400001900000001040040390000099d0530009c000000fa0000213d0000000104400190000000fa0000c13d000000400030043f00000002032000390000000704000029000000000334043600000021042000390000000504400272000014720000613d00000000050000310000000205500367000000000600001900000005076002100000000008730019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b0000146a0000413d000000000400004c000014740000613d00000007040000290000000004040433000000000440004c000001720000613d0000000004030433000009a404400197000000f805200210000000000445019f000009a60440004100000000004304350000000302200210000000f80220008900000000012101cf000000ff0220008c0000000001002019000000070200002900000021022000390000000000120435000014aa0000013d000000400200043d000700000002001d000009a30220009c000000fa0000213d00000007030000290000004002300039000000400020043f0000000102000039000000000223043600000000030000310000000203300367000000000400001900000005054002100000000006520019000000000553034f000000000505043b0000000000560435000000010440003a000000000500001900000001050060390000000105500190000014930000c13d00000007030000290000000003030433000000000330004c000001720000613d000000f8031002100000099c04000041000000000110004c000000000103001900000000010460190000000003020433000009a403300197000000000113019f0000000000120435000000230100008a00000000020b00190000000004210049000001c4012000390000000202000367000200000001001d000000000112034f000000000101043b0000000003000031000300000004001d00000000044300190000099c05000041000000000641004b000000000600001900000000060580190000099c044001970000099c07100197000000000847004b0000000005008019000000000447013f0000099c0440009c00000000040600190000000004056019000000000440004c000004950000c13d0000000d040000290000000004410019000000000142034f000000000101043b0000099d0510009c000004950000213d000000000513004900000020034000390000099c04000041000000000653004b000000000600001900000000060420190000099c055001970000099c07300197000000000857004b0000000004008019000000000557013f0000099c0550009c000000000406c019000000000440004c000004950000c13d000000010410008c000014f90000c13d000000000132034f000000000101043b000000010200008a0000099c03000041000000000221004b000000000200001900000000020320190000099c011001970000099c0410009c00000000030080190000099c011001670000099c0110009c000000000102001900000000010360190000006002000039000600000002001d000000000110004c000015520000c13d000000400100043d000600000001001d000009a30110009c000000fa0000213d00000006030000290000004001300039000000400010043f0000002001300039000009a602000041000000000021043500000001010000390000000000130435000015520000013d000000380210008c000015320000413d0000002002100270000009980310009c00000000030100190000000003022019000009980210009c0000000002000019000000040200203900000002042001bf0000ffff0530008c000000000204201900000010043002700000000003042019000000ff0330008c00000000030000190000000103002039000000400400043d000600000004001d000009a30440009c000000fa0000213d000000000232019f00000006040000290000004003400039000000400030043f0000000203200039000000000334043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a000000000600001900000001060060390000000106600190000015170000c13d00000006040000290000000004040433000000000440004c000001720000613d0000000004030433000009a404400197000000f805200210000000000445019f000009a8044001c700000000004304350000000302200210000000f80220008900000000012101cf000000060200002900000021022000390000000000120435000015520000013d000000400200043d000600000002001d000009a30220009c000000fa0000213d00000006030000290000004002300039000000400020043f0000000102000039000000000223043600000000030000310000000203300367000000000400001900000005054002100000000006520019000000000553034f000000000505043b0000000000560435000000010440003a0000000005000019000000010500603900000001055001900000153e0000c13d00000006030000290000000003030433000000000330004c000001720000613d000000f8011002100000000003020433000009a403300197000000000113019f0000099c01100167000000000012043500000000030000310000000301000029000000000513001900000000010b0019000001e4011000390000000202000367000000000412034f000000000404043b0000099c06000041000000000754004b000000000700001900000000070680190000099c055001970000099c08400197000000000958004b0000000006008019000000000558013f0000099c0550009c00000000050700190000000005066019000000000550004c000004950000c13d0000000d050000290000000004540019000000000542034f000000000505043b0000099d0650009c000004950000213d000000200650008c000004950000413d000000000553004900000020034000390000099c04000041000000000653004b000000000600001900000000060420190000099c055001970000099c07300197000000000857004b0000000004008019000000000557013f0000099c0550009c000000000406c019000000000440004c000004950000c13d000000000232034f000000000202043b000000800320008c000015d20000413d0000008003200270000009a50420009c000000000302a019000009a50420009c0000000004000019000000100400203900000008054001bf0000099d0630009c000000000405201900000040053002700000099d0630009c000000000305201900000004054001bf000009980630009c00000000040520190000002005300270000009980630009c000000000305201900000002054001bf0000ffff0630008c000000000405201900000010053002700000000003052019000000ff0330008c00000000030000190000000103002039000000000334001900000041043000390000000805000029000000000454016f000000400500043d0000000004450019000500000005001d000000000554004b000000000500001900000001050040390000099d0640009c000000fa0000213d0000000105500190000000fa0000c13d000000400040043f00000002043000390000000505000029000000000445043600000021053000390000000505500272000015bd0000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b000015b50000413d000000000500004c000015bf0000613d00000005050000290000000005050433000000000550004c000001720000613d0000000005040433000009a405500197000000f806300210000000000556019f000009a60550004100000000005404350000000303300210000000f80330008900000000023201cf000000ff0330008c0000000002002019000000050300002900000021033000390000000000230435000015f50000013d000000400300043d000500000003001d000009a30330009c000000fa0000213d00000005040000290000004003400039000000400030043f0000000103000039000000000334043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a000000000600001900000001060060390000000106600190000015de0000c13d00000005040000290000000004040433000000000440004c000001720000613d000000f8042002100000099c05000041000000000220004c000000000204001900000000020560190000000004030433000009a404400197000000000224019f00000000002304350000000003000031000000030200002900000000052300190000000202000367000000000412034f000000000404043b0000099c06000041000000000754004b000000000700001900000000070680190000099c055001970000099c08400197000000000958004b0000000006008019000000000558013f0000099c0550009c00000000050700190000000005066019000000000550004c000004950000c13d0000000d050000290000000004540019000000000542034f000000000505043b0000099d0650009c000004950000213d000000400650008c000004950000413d000000000353004900000020054000390000099c06000041000000000735004b000000000700001900000000070620190000099c033001970000099c05500197000000000835004b0000000006008019000000000335013f0000099c0330009c00000000030700190000000003066019000000000330004c000004950000c13d0000004003400039000000000232034f000000000202043b000000800320008c000016750000413d0000008003200270000009a50420009c000000000302a019000009a50420009c0000000004000019000000100400203900000008054001bf0000099d0630009c000000000405201900000040053002700000099d0630009c000000000305201900000004054001bf000009980630009c00000000040520190000002005300270000009980630009c000000000305201900000002054001bf0000ffff0630008c000000000405201900000010053002700000000003052019000000ff0330008c00000000030000190000000103002039000000000334001900000041043000390000000805000029000000000454016f000000400500043d0000000004450019000400000005001d000000000554004b000000000500001900000001050040390000099d0640009c000000fa0000213d0000000105500190000000fa0000c13d000000400040043f00000002043000390000000405000029000000000445043600000021053000390000000505500272000016600000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b000016580000413d000000000500004c000016620000613d00000004050000290000000005050433000000000550004c000001720000613d0000000005040433000009a405500197000000f806300210000000000556019f000009a60550004100000000005404350000000303300210000000f80330008900000000023201cf000000ff0330008c0000000002002019000000040300002900000021033000390000000000230435000016980000013d000000400300043d000400000003001d000009a30330009c000000fa0000213d00000004040000290000004003400039000000400030043f0000000103000039000000000334043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a000000000600001900000001060060390000000106600190000016810000c13d00000004040000290000000004040433000000000440004c000001720000613d000000f8042002100000099c05000041000000000220004c000000000204001900000000020560190000000004030433000009a404400197000000000224019f00000000002304350000000003000031000000030200002900000000042300190000000202000367000000000112034f000000000101043b0000099c05000041000000000641004b000000000600001900000000060580190000099c044001970000099c07100197000000000847004b0000000005008019000000000447013f0000099c0440009c00000000040600190000000004056019000000000440004c000004950000c13d0000000d040000290000000001410019000000000412034f000000000404043b0000099d0540009c000004950000213d000000000343004900000020051000390000099c06000041000000000735004b000000000700001900000000070620190000099c033001970000099c05500197000000000835004b0000000006008019000000000335013f0000099c0330009c00000000030700190000000003066019000000000330004c000004950000c13d000000410340008c000001720000413d0000006001100039000000000112034f000000000101043b000000f801100270000100000001001d0000001b0110008a000000020110008c0000173a0000813d0000014401b00039000000000112034f000000000101043b000000000110004c0000174c0000613d000009a101000041000000000010043900000998010000410000000002000414000009980320009c0000000001024019000000c001100210000009a2011001c70000800b02000039265c26570000040f0000000102200190000004950000613d000000000201043b0000000101200210000000000320004c000016e70000613d000000090300008a000000000331004b000003380000213d00000000322100d9000000020220008c000003380000c13d000000010300002900000000011300190000000802100039000000000132004b000003380000413d000000800120008c000100000002001d0000174c0000413d0000008001200270000009a50320009c000000000102a019000009a50320009c0000000003000019000000100300203900000008043001bf0000099d0510009c000000000304201900000040041002700000099d0510009c000000000104201900000004043001bf000009980510009c00000000030420190000002004100270000009980510009c000000000104201900000002043001bf0000ffff0510008c000000000304201900000010041002700000000001042019000000ff0110008c00000000010000190000000101002039000000000313001900000041013000390000000804000029000000000441016f000000400100043d0000000004410019000000000514004b000000000500001900000001050040390000099d0640009c000000fa0000213d0000000105500190000000fa0000c13d000000400040043f0000000204300039000000000441043600000021053000390000000505500272000017270000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b0000171f0000413d000000000500004c000017290000613d0000000005010433000000000550004c000001720000613d0000000005040433000009a405500197000000f806300210000000000556019f000009a60550004100000000005404350000000303300210000000f80330008900000000023201cf000000ff0330008c0000000002002019000000210310003900000000002304350000176c0000013d000000400100043d0000004402100039000009bc03000041000000000032043500000024021000390000000f0300003900000000003204350000099f0200004100000000002104350000000402100039000000200300003900000000003204350000099802000041000009980310009c00000000010280190000004001100210000009a0011001c70000265e00010430000000400100043d000009a30210009c000000fa0000213d0000004002100039000000400020043f0000000102000039000000000221043600000000030000310000000203300367000000000400001900000005054002100000000006520019000000000553034f000000000505043b0000000000560435000000010440003a000000000500001900000001050060390000000105500190000017560000c13d0000000003010433000000000330004c000001720000613d0000000105000029000000f8035002100000099c04000041000000000550004c00000000030460190000000004020433000009a404400197000000000334019f000000000032043500000000020000310000000303000029000000000332001900000002080003670000000204000029000000000448034f000000000904043b0000099c04000041000000000539004b000000000500001900000000050480190000099c033001970000099c06900197000000000736004b0000000004008019000000000336013f0000099c0330009c00000000030500190000000003046019000000000330004c000004950000c13d0000000b0300002900000000030304330000000a0400002900000000040404330000000905000029000000000505043300000007060000290000000006060433000000060700002900000000070704330000000d0a0000290000000009a90019000000000898034f000000000808043b0000099d0a80009c000004950000213d000000000282004900000020099000390000099c0a000041000000000b29004b000000000b000019000000000b0a20190000099c022001970000099c09900197000000000c29004b000000000a008019000000000229013f0000099c0220009c00000000020b001900000000020a6019000000000220004c000004950000c13d00000000023400190000000002520019000000000262001900000000027200190000000002820019000000050300002900000000030304330000000002320019000000040300002900000000030304330000000002320019000000000301043300000000023200190000099d02200197000000380320008c000017e40000413d0000002003200270000009980420009c00000000040200190000000004032019000009980320009c0000000003000019000000040300203900000002053001bf0000ffff0640008c000000000305201900000010054002700000000004052019000000ff0440008c00000000040000190000000104002039000000400500043d000009a30650009c000000fa0000213d000000000343019f0000004004500039000000400040043f0000000204300039000000000445043600000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b0000000000890435000000010770003a000000000800001900000001080060390000000108800190000017cb0000c13d0000000006050433000000000660004c000001720000613d0000000006040433000009a406600197000000f807300210000000000667019f000009aa066001c700000000006404350000000303300210000000f80330008900000000023201cf00000021035000390000000000230435000018010000013d000000400500043d000009a30350009c000000fa0000213d0000004003500039000000400030043f0000000103000039000000000335043600000000040000310000000204400367000000000600001900000005076002100000000008730019000000000774034f000000000707043b0000000000780435000000010660003a000000000700001900000001070060390000000107700190000017ee0000c13d0000000004050433000000000440004c000001720000613d000000f8022002100000000004030433000009a404400197000000000242019f000009a902200041000000000023043500000000020000310000000303000029000000000632001900000002030003670000000204000029000000000443034f000000000404043b0000099c07000041000000000864004b000000000800001900000000080780190000099c066001970000099c09400197000000000a69004b0000000007008019000000000669013f0000099c0660009c00000000060800190000000006076019000000000660004c000004950000c13d0000000d060000290000000006640019000000000363034f000000000403043b0000099d0340009c000004950000213d000000000242004900000020066000390000099c03000041000000000726004b000000000700001900000000070320190000099c022001970000099c08600197000000000928004b0000000003008019000000000228013f0000099c0220009c00000000020700190000000002036019000000000220004c000004950000c13d000000400200043d00000020032000390000000007050433000000000870004c000018390000613d000000000800001900000000093800190000002008800039000000000a580019000000000a0a04330000000000a90435000000000978004b000018320000413d000000000537001900000000000504350000000b070000290000000007070433000000000870004c000018480000613d0000000008000019000000000958001900000020088000390000000b0a000029000000000aa80019000000000a0a04330000000000a90435000000000978004b000018400000413d000000000557001900000000000504350000000a070000290000000007070433000000000870004c000018570000613d0000000008000019000000000958001900000020088000390000000a0a000029000000000aa80019000000000a0a04330000000000a90435000000000978004b0000184f0000413d0000000005570019000000000005043500000009070000290000000007070433000000000870004c000018660000613d000000000800001900000000095800190000002008800039000000090a000029000000000aa80019000000000a0a04330000000000a90435000000000978004b0000185e0000413d0000000005570019000000000005043500000007070000290000000007070433000000000870004c000018750000613d000000000800001900000000095800190000002008800039000000070a000029000000000aa80019000000000a0a04330000000000a90435000000000978004b0000186d0000413d0000000005570019000000000005043500000006070000290000000007070433000000000870004c000018840000613d000000000800001900000000095800190000002008800039000000060a000029000000000aa80019000000000a0a04330000000000a90435000000000978004b0000187c0000413d00000000055700190000001f0740018f000000000005043500000002066003670000000508400272000018930000613d0000000009000019000000050a900210000000000ba50019000000000aa6034f000000000a0a043b0000000000ab04350000000109900039000000000a89004b0000188b0000413d000000000970004c000018a20000613d0000000508800210000000000686034f00000000088500190000000307700210000000000908043300000000097901cf000000000979022f000000000606043b0000010007700089000000000676022f00000000067601cf000000000696019f0000000000680435000000000445001900000000000404350000000005010433000000000650004c000018af0000613d000000000600001900000000074600190000002006600039000000000816001900000000080804330000000000870435000000000756004b000018a80000413d0000000001450019000000000001043500000005040000290000000004040433000000000540004c000018be0000613d0000000005000019000000000615001900000020055000390000000507000029000000000775001900000000070704330000000000760435000000000645004b000018b60000413d0000000001140019000000000001043500000004040000290000000004040433000000000540004c000018cd0000613d0000000005000019000000000615001900000020055000390000000407000029000000000775001900000000070704330000000000760435000000000645004b000018c50000413d000000000114001900000000000104350000000001210049000000200410008a00000000004204350000001f011000390000000804000029000000000441016f0000000001240019000000000441004b000000000400001900000001040040390000099d0510009c000000fa0000213d0000000104400190000000fa0000c13d000000400010043f0000099801000041000009980430009c000000000301801900000040033002100000000002020433000009980420009c00000000020180190000006002200210000000000232019f0000000003000414000009980430009c0000000001034019000000c001100210000000000121019f000009ac011001c70000801002000039265c26570000040f0000000102200190000004950000613d000000000101043b000013140000013d0000004002100039000009c3030000410000000000320435000000200210003900000013030000390000000000320435000000200200003900000000002104350000006001100039000000000001042d0006000000000002000400000001001d000009a101000041000000000010043900000998010000410000000002000414000009980320009c0000000001024019000000c001100210000009a2011001c70000800b02000039265c26570000040f000000010220019000001f4b0000613d000000000201043b000000800120008c000019590000413d0000008001200270000009a50320009c000000000102a019000009a50320009c0000000003000019000000100300203900000008043001bf0000099d0510009c000000000304201900000040041002700000099d0510009c000000000104201900000004043001bf000009980510009c00000000030420190000002004100270000009980510009c000000000104201900000002043001bf0000ffff0510008c000000000304201900000010041002700000000001042019000000ff0110008c000000000100001900000001010020390000000003130019000000200100008a0000004104300039000000000414016f000000400100043d0000000004410019000000000514004b000000000500001900000001050040390000099d0640009c00001f4d0000213d000000010550019000001f4d0000c13d000000400040043f0000000204300039000000000441043600000021053000390000000505500272000019460000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b0000193e0000413d000000000500004c000019480000613d0000000005010433000000000550004c00001f530000613d0000000005040433000009a405500197000000f806300210000000000556019f000009a60550004100000000005404350000000303300210000000f80330008900000000023201cf000000ff0330008c000000000200201900000021031000390000000000230435000019790000013d000000400100043d000009a30310009c00001f4d0000213d0000004003100039000000400030043f0000000103000039000000000331043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a000000000600001900000001060060390000000106600190000019630000c13d0000000004010433000000000440004c00001f530000613d000000f8042002100000099c05000041000000000220004c000000000204001900000000020560190000000004030433000009a404400197000000000224019f0000000000230435000000040200002900000100022000390000000202200367000000000202043b000000800320008c000019ca0000413d0000008003200270000009a50420009c000000000302a019000009a50420009c0000000004000019000000100400203900000008054001bf0000099d0630009c000000000405201900000040053002700000099d0630009c000000000305201900000004054001bf000009980630009c00000000040520190000002005300270000009980630009c000000000305201900000002054001bf0000ffff0630008c000000000405201900000010053002700000000003052019000000ff0330008c000000000300001900000001030020390000000004340019000000200300008a0000004105400039000000000535016f000000400300043d0000000005530019000000000635004b000000000600001900000001060040390000099d0750009c00001f4d0000213d000000010660019000001f4d0000c13d000000400050043f0000000205400039000000000553043600000021064000390000000506600272000019b70000613d0000000007000031000000020770036700000000080000190000000509800210000000000a950019000000000997034f000000000909043b00000000009a04350000000108800039000000000968004b000019af0000413d000000000600004c000019b90000613d0000000006030433000000000660004c00001f530000613d0000000006050433000009a406600197000000f807400210000000000667019f000009a60660004100000000006504350000000304400210000000f80440008900000000024201cf000000ff0440008c000000000200201900000021043000390000000000240435000019ea0000013d000000400300043d000009a30430009c00001f4d0000213d0000004004300039000000400040043f0000000104000039000000000443043600000000050000310000000205500367000000000600001900000005076002100000000008740019000000000775034f000000000707043b0000000000780435000000010660003a000000000700001900000001070060390000000107700190000019d40000c13d0000000005030433000000000550004c00001f530000613d000000f8052002100000099c06000041000000000220004c000000000205001900000000020660190000000005040433000009a405500197000000000225019f00000000002404350000000402000029000000a0022000390000000202200367000000000202043b000000800420008c00001a3b0000413d0000008004200270000009a50520009c000000000402a019000009a50520009c0000000005000019000000100500203900000008065001bf0000099d0740009c000000000506201900000040064002700000099d0740009c000000000406201900000004065001bf000009980740009c00000000050620190000002006400270000009980740009c000000000406201900000002065001bf0000ffff0740008c000000000506201900000010064002700000000004062019000000ff0440008c000000000400001900000001040020390000000005450019000000200400008a0000004106500039000000000646016f000000400400043d0000000006640019000000000746004b000000000700001900000001070040390000099d0860009c00001f4d0000213d000000010770019000001f4d0000c13d000000400060043f000000020650003900000000066404360000002107500039000000050770027200001a280000613d000000000800003100000002088003670000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b00001a200000413d000000000700004c00001a2a0000613d0000000007040433000000000770004c00001f530000613d0000000007060433000009a407700197000000f808500210000000000778019f000009a60770004100000000007604350000000305500210000000f80550008900000000025201cf000000ff0550008c00000000020020190000002105400039000000000025043500001a5b0000013d000000400400043d000009a30540009c00001f4d0000213d0000004005400039000000400050043f0000000105000039000000000554043600000000060000310000000206600367000000000700001900000005087002100000000009850019000000000886034f000000000808043b0000000000890435000000010770003a00000000080000190000000108006039000000010880019000001a450000c13d0000000006040433000000000660004c00001f530000613d000000f8062002100000099c07000041000000000220004c000000000206001900000000020760190000000006050433000009a406600197000000000226019f0000000000250435000000040200002900000060022000390000000202200367000000000202043b000000800520008c00001aac0000413d0000008005200270000009a50620009c000000000502a019000009a50620009c0000000006000019000000100600203900000008076001bf0000099d0850009c000000000607201900000040075002700000099d0850009c000000000507201900000004076001bf000009980850009c00000000060720190000002007500270000009980850009c000000000507201900000002076001bf0000ffff0850008c000000000607201900000010075002700000000005072019000000ff0550008c000000000500001900000001050020390000000006560019000000200500008a0000004107600039000000000757016f000000400500043d0000000007750019000000000857004b000000000800001900000001080040390000099d0970009c00001f4d0000213d000000010880019000001f4d0000c13d000000400070043f000000020760003900000000077504360000002108600039000000050880027200001a990000613d00000000090000310000000209900367000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa00039000000000b8a004b00001a910000413d000000000800004c00001a9b0000613d0000000008050433000000000880004c00001f530000613d0000000008070433000009a408800197000000f809600210000000000889019f000009a60880004100000000008704350000000306600210000000f80660008900000000026201cf000000ff0660008c00000000020020190000002106500039000000000026043500001acc0000013d000000400500043d000009a30650009c00001f4d0000213d0000004006500039000000400060043f000000010600003900000000066504360000000007000031000000020770036700000000080000190000000509800210000000000a960019000000000997034f000000000909043b00000000009a0435000000010880003a00000000090000190000000109006039000000010990019000001ab60000c13d0000000007050433000000000770004c00001f530000613d000000f8072002100000099c08000041000000000220004c000000000207001900000000020860190000000007060433000009a407700197000000000227019f0000000000260435000000400600043d000009a30260009c00001f4d0000213d000000040900002900000040029000390000000202200367000000000202043b0000004007600039000000400070043f0000002007600039000009a70800004100000000008704350000001507000039000000000076043500000021076000390000006002200210000000000027043500000120029000390000000202200367000000000202043b000000800720008c00001b2d0000413d0000008007200270000009a50820009c000000000702a019000009a50820009c0000000008000019000000100800203900000008098001bf0000099d0a70009c000000000809201900000040097002700000099d0a70009c000000000709201900000004098001bf000009980a70009c00000000080920190000002009700270000009980a70009c000000000709201900000002098001bf0000ffff0a70008c000000000809201900000010097002700000000007092019000000ff0770008c000000000700001900000001070020390000000008780019000000200700008a0000004109800039000000000979016f000000400700043d0000000009970019000000000a79004b000000000a000019000000010a0040390000099d0b90009c00001f4d0000213d000000010aa0019000001f4d0000c13d000000400090043f00000002098000390000000009970436000000210a800039000000050aa0027200001b1a0000613d000000000b000031000000020bb00367000000000c000019000000050dc00210000000000ed90019000000000ddb034f000000000d0d043b0000000000de0435000000010cc00039000000000dac004b00001b120000413d000000000a00004c00001b1c0000613d000000000a070433000000000aa0004c00001f530000613d000000000a090433000009a40aa00197000000f80b800210000000000aab019f000009a60aa000410000000000a904350000000308800210000000f80880008900000000028201cf000000ff0880008c00000000020020190000002108700039000000000028043500001b4d0000013d000000400700043d000009a30870009c00001f4d0000213d0000004008700039000000400080043f0000000108000039000000000887043600000000090000310000000209900367000000000a000019000000050ba00210000000000cb80019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa0003a000000000b000019000000010b006039000000010bb0019000001b370000c13d0000000009070433000000000990004c00001f530000613d000000f8092002100000099c0a000041000000000220004c000000000209001900000000020a60190000000009080433000009a409900197000000000229019f0000000000280435000000400200043d00000020082000390000000009010433000000000a90004c00001b5a0000613d000000000a000019000000000b8a0019000000200aa00039000000000c1a0019000000000c0c04330000000000cb0435000000000b9a004b00001b530000413d000000000189001900000000000104350000000008030433000000000980004c00001b670000613d0000000009000019000000000a1900190000002009900039000000000b390019000000000b0b04330000000000ba0435000000000a89004b00001b600000413d000000000118001900000000000104350000000003040433000000000830004c00001b740000613d000000000800001900000000091800190000002008800039000000000a480019000000000a0a04330000000000a90435000000000938004b00001b6d0000413d000000000113001900000000000104350000000003050433000000000430004c00001b810000613d000000000400001900000000081400190000002004400039000000000954001900000000090904330000000000980435000000000834004b00001b7a0000413d000000000113001900000000000104350000000003060433000000000430004c00001b8e0000613d000000000400001900000000051400190000002004400039000000000864001900000000080804330000000000850435000000000534004b00001b870000413d000000000113001900000000000104350000000003070433000000000430004c00001b9b0000613d000000000400001900000000051400190000002004400039000000000674001900000000060604330000000000650435000000000534004b00001b940000413d000000000113001900000000000104350000000001210049000000200310008a00000000003204350000001f01100039000000200300008a000200000003001d000000000131016f0000000005210019000000000115004b000000000100001900000001010040390000099d0350009c00001f4d0000213d000000010110019000001f4d0000c13d000000400050043f0000001f0100008a00000004030000290000000004310049000001c0013000390000000207000367000100000001001d000000000117034f000000000601043b000000000800003100000000014800190000099c09000041000000000a16004b000000000a000019000000000a0980190000099c011001970000099c0b600197000000000c1b004b000000000900801900000000011b013f0000099c0110009c00000000010a00190000000001096019000000000110004c00001f4b0000c13d00000004010000290000000001160019000000000617034f000000000606043b0000099d0960009c00001f4b0000213d000000000968004900000020081000390000099c01000041000000000a98004b000000000a000019000000000a0120190000099c099001970000099c0b800197000000000c9b004b000000000100801900000000099b013f0000099c0990009c00000000010ac019000000000110004c00001f4b0000c13d000000010160008c00001bf80000c13d000000000187034f000000000101043b000000010300008a0000099c06000041000000000331004b000000000300001900000000030620190000099c011001970000099c0710009c00000000060080190000099c011001670000099c0110009c000000000103001900000000010660190000006006000039000000000110004c00001c4a0000c13d000009a30150009c00001f4d0000213d0000004001500039000000400010043f0000002001500039000009a603000041000000000031043500000001010000390000000000150435000000000605001900001c4a0000013d000000380160008c00001c2d0000413d0000002001600270000009980360009c00000000030600190000000003012019000009980160009c0000000001000019000000040100203900000002071001bf0000ffff0830008c000000000107201900000010073002700000000003072019000000ff0330008c00000000070000190000000107002039000009a30350009c00001f4d0000213d000000000771019f0000004001500039000000400010043f0000000201700039000000000815043600000000010000310000000209100367000000000a0000190000000501a002100000000003180019000000000119034f000000000101043b0000000000130435000000010aa0003a00000000010000190000000101006039000000010110019000001c130000c13d0000000001050433000000000110004c00001f530000613d0000000001080433000009a401100197000000f803700210000000000113019f000009a8011001c700000000001804350000000301700210000000f80110008900000000011601cf00000021035000390000000000130435000000000605001900001c4a0000013d000009a30150009c00001f4d0000213d0000004001500039000000400010043f0000000101000039000000000715043600000000010000310000000208100367000000000900001900000005019002100000000003170019000000000118034f000000000101043b0000000000130435000000010990003a00000000010000190000000101006039000000010110019000001c360000c13d0000000001050433000000000110004c00001f530000613d000000f8016002100000000003070433000009a403300197000000000113019f0000099c0110016700000000001704350000000006050019000000400500043d000009a30150009c00001f4d0000213d0000004001500039000000400010043f0000000101000039000300000001001d000000000715043600000000010000310000000208100367000000000a0000190000000501a00210000000000b170019000000000118034f000000000101043b00000000001b0435000000010aa0003a00000000010000190000000101006039000000010110019000001c550000c13d0000000001050433000000000110004c00001f530000613d0000000001070433000009a401100197000009a9011001c70000000000170435000000000800003100000000014800190000000403000029000001e00a3000390000000207000367000000000ba7034f000000000b0b043b0000099c0c000041000000000d1b004b000000000d000019000000000d0c80190000099c011001970000099c0eb00197000000000f1e004b000000000c00801900000000011e013f0000099c0110009c00000000010d001900000000010c6019000000000110004c00001f4b0000c13d000000040100002900000000011b0019000000000b17034f000000000b0b043b0000099d0cb0009c00001f4b0000213d000000000cb8004900000020081000390000099c01000041000000000dc8004b000000000d000019000000000d0120190000099c0cc001970000099c0e800197000000000fce004b0000000001008019000000000cce013f0000099c0cc0009c00000000010dc019000000000110004c00001f4b0000c13d0000002001b0008c00001f4b0000413d000000000187034f000000000801043b000000800180008c00001ce20000413d0000008001800270000009a50780009c000000000108a019000009a50780009c00000000070000190000001007002039000000080b7001bf0000099d0c10009c00000000070b2019000000400b1002700000099d0c10009c00000000010b2019000000040b7001bf000009980c10009c00000000070b2019000000200b100270000009980c10009c00000000010b2019000000020b7001bf0000ffff0c10008c00000000070b2019000000100b10027000000000010b2019000000ff0110008c00000000010000190000000101002039000000000b1700190000004101b000390000000203000029000000000131016f000000400700043d0000000001170019000000000c71004b000000000c000019000000010c0040390000099d0d10009c00001f4d0000213d000000010cc0019000001f4d0000c13d000000400010043f0000000201b00039000000000c1704360000002101b00039000000050d10027200001cce0000613d0000000001000031000000020e100367000000000f0000190000000501f0021000000000031c001900000000011e034f000000000101043b0000000000130435000000010ff000390000000001df004b00001cc60000413d000000000100004c00001cd00000613d0000000001070433000000000110004c00001f530000613d00000000010c0433000009a401100197000000f803b00210000000000113019f000009a60110004100000000001c04350000000301b00210000000f80110008900000000031801cf000000ff0110008c000000000103001900000000010020190000002103700039000000000013043500001d010000013d000000400700043d000009a30170009c00001f4d0000213d0000004001700039000000400010043f0000000301000029000000000b1704360000000001000031000000020c100367000000000d0000190000000501d0021000000000031b001900000000011c034f000000000101043b0000000000130435000000010dd0003a00000000010000190000000101006039000000010110019000001cec0000c13d0000000001070433000000000110004c00001f530000613d000000f8018002100000099c03000041000000000880004c000000000103601900000000030b0433000009a403300197000000000113019f00000000001b0435000000000c00003100000000014c001900000002080003670000000003a8034f000000000b03043b0000099c03000041000000000d1b004b000000000d000019000000000d0380190000099c011001970000099c0eb00197000000000f1e004b000000000300801900000000011e013f0000099c0110009c00000000010d00190000000001036019000000000110004c00001f4b0000c13d0000000401000029000000000b1b00190000000001b8034f000000000d01043b0000099d01d0009c00001f4b0000213d0000000001dc00490000002003b000390000099c0c000041000000000e13004b000000000e000019000000000e0c20190000099c011001970000099c03300197000000000f13004b000000000c008019000000000113013f0000099c0110009c00000000010e001900000000010c6019000000000110004c00001f4b0000c13d0000004001d0008c00001f4b0000413d0000004001b00039000000000118034f000000000b01043b0000008001b0008c00001d7d0000413d0000008001b00270000009a503b0009c00000000010ba019000009a503b0009c0000000003000019000000100300203900000008083001bf0000099d0c10009c000000000308201900000040081002700000099d0c10009c000000000108201900000004083001bf000009980c10009c00000000030820190000002008100270000009980c10009c000000000108201900000002083001bf0000ffff0c10008c000000000308201900000010081002700000000001082019000000ff0110008c00000000010000190000000101002039000000000c1300190000004101c000390000000203000029000000000131016f000000400800043d0000000001180019000000000381004b000000000d000019000000010d0040390000099d0310009c00001f4d0000213d0000000103d0019000001f4d0000c13d000000400010043f0000000201c00039000000000d1804360000002101c00039000000050e10027200001d690000613d0000000001000031000000020f1003670000000001000019000000050310021000000000093d001900000000033f034f000000000303043b000000000039043500000001011000390000000003e1004b00001d610000413d000000000100004c00001d6b0000613d0000000001080433000000000110004c00001f530000613d00000000010d0433000009a401100197000000f803c00210000000000113019f000009a60110004100000000001d04350000000301c00210000000f80110008900000000031b01cf000000ff0110008c000000000103001900000000010020190000002103800039000000000013043500001d9c0000013d000000400800043d000009a30180009c00001f4d0000213d0000004001800039000000400010043f0000000301000029000000000c1804360000000001000031000000020d100367000000000e0000190000000501e0021000000000031c001900000000011d034f000000000101043b0000000000130435000000010ee0003a00000000010000190000000101006039000000010110019000001d870000c13d0000000001080433000000000110004c00001f530000613d000000f801b002100000099c030000410000000009b0004c000000000103601900000000030c0433000009a403300197000000000113019f00000000001c0435000000000c00003100000000014c0019000000020b0003670000000003ab034f000000000a03043b0000099c0300004100000000091a004b000000000900001900000000090380190000099c011001970000099c0da00197000000000e1d004b000000000300801900000000011d013f0000099c0110009c00000000010900190000000001036019000000000110004c00001f4b0000c13d0000000401000029000000000a1a00190000000001ab034f000000000d01043b0000099d01d0009c00001f4b0000213d0000000001dc00490000002003a000390000099c09000041000000000c13004b000000000c000019000000000c0920190000099c011001970000099c03300197000000000e13004b0000000009008019000000000113013f0000099c0110009c00000000010c00190000000001096019000000000110004c00001f4b0000c13d0000004101d0008c00001f530000413d0000006001a0003900000000011b034f000000000b000415000000060bb0008a000000200bb000c90000099c0c000041000000000101043b000000f8011002700000001b0310008c00001dd70000613d000000000b000415000000050bb0008a000000200bb000c9000009ab0c0000410000001c0110008c00001f590000c13d000000400a00043d000009a301a0009c00001f4d0000213d0000004001a00039000000400010043f0000000301000029000000000d1a04360000000001000031000000020e100367000000000f0000190000000501f0021000000000031d001900000000011e034f000000000101043b0000000000130435000000010ff0003a00000000010000190000000101006039000000010110019000001de10000c13d00000000010a0433000000000110004c00001f530000613d00000000010d0433000009a4011001970000000001c1019f00000000001d04350000002001b0011a00000000010a001f000000000b00003100000000014b0019000000020e000367000000010300002900000000033e034f000000000f03043b0000099c0300004100000000091f004b000000000900001900000000090380190000099c011001970000099c0cf00197000000000d1c004b000000000300801900000000011c013f0000099c0110009c00000000010900190000000001036019000000000110004c00001f4b0000c13d000000000c020433000000000d060433000000040100002900000000011f001900000000031e034f000000000e03043b0000099d03e0009c00001f4b0000213d0000000003eb004900000020011000390000099c09000041000000000b31004b000000000b000019000000000b0920190000099c033001970000099c01100197000000000f31004b0000000009008019000000000131013f0000099c0110009c00000000010b00190000000001096019000000000110004c00001f4b0000c13d0000000001cd00190000000001e1001900000000030504330000000001310019000000000307043300000000013100190000000003080433000000000131001900000000030a043300000000013100190000099d0c1001970000003801c0008c00001e600000413d0000002001c002700000099803c0009c00000000030c001900000000030120190000099801c0009c0000000001000019000000040100203900000002091001bf0000ffff0b30008c000000000109201900000010093002700000000003092019000000ff0330008c00000000090000190000000109002039000000400b00043d000009a303b0009c00001f4d0000213d000000000991019f0000004001b00039000000400010043f0000000201900039000000000d1b04360000000001000031000000020e100367000000000f0000190000000501f0021000000000031d001900000000011e034f000000000101043b0000000000130435000000010ff0003a00000000010000190000000101006039000000010110019000001e470000c13d00000000010b0433000000000110004c00001f530000613d00000000010d0433000009a401100197000000f803900210000000000113019f000009aa011001c700000000001d04350000000301900210000000f80110008900000000011c01cf0000002103b00039000000000013043500001e7d0000013d000000400b00043d000009a301b0009c00001f4d0000213d0000004001b00039000000400010043f000000030100002900000000091b04360000000001000031000000020d100367000000000e0000190000000501e00210000000000319001900000000011d034f000000000101043b0000000000130435000000010ee0003a00000000010000190000000101006039000000010110019000001e6a0000c13d00000000010b0433000000000110004c00001f530000613d000000f801c002100000000003090433000009a403300197000000000131019f000009a9011000410000000000190435000000000c00003100000000014c001900000002040003670000000103000029000000000334034f000000000303043b0000099c09000041000000000d13004b000000000d000019000000000d0980190000099c011001970000099c0e300197000000000f1e004b000000000900801900000000011e013f0000099c0110009c00000000010d00190000000001096019000000000110004c00001f4b0000c13d00000004010000290000000001130019000000000314034f000000000903043b0000099d0390009c00001f4b0000213d00000000039c0049000000200c1000390000099c0100004100000000043c004b000000000400001900000000040120190000099c033001970000099c0dc00197000000000e3d004b000000000100801900000000033d013f0000099c0330009c000000000104c019000000000110004c00001f4b0000c13d000000400300043d0000002004300039000009ab01000041000400000004001d0000000000140435000000210d300039000000000e0b04330000000001e0004c00001eb70000613d0000000001000019000000000fd1001900000020011000390000000004b10019000000000404043300000000004f04350000000004e1004b00001eb00000413d000000000bde001900000000000b0435000000000d0204330000000001d0004c00001ec40000613d00000000010000190000000004b100190000002001100039000000000e210019000000000e0e04330000000000e404350000000004d1004b00001ebd0000413d0000000002bd00190000000000020435000000000b0604330000000001b0004c00001ed10000613d000000000100001900000000042100190000002001100039000000000d610019000000000d0d04330000000000d404350000000004b1004b00001eca0000413d00000000022b00190000001f0690018f0000000000020435000000020bc00367000000050c90027200001ee00000613d00000000010000190000000504100210000000000d42001900000000044b034f000000000404043b00000000004d043500000001011000390000000004c1004b00001ed80000413d000000000160004c00001eef0000613d0000000501c0021000000000041b034f00000000011200190000000306600210000000000b010433000000000b6b01cf000000000b6b022f000000000404043b0000010006600089000000000464022f00000000046401cf0000000004b4019f0000000000410435000000000292001900000000000204350000000006050433000000000160004c00001efc0000613d000000000100001900000000042100190000002001100039000000000951001900000000090904330000000000940435000000000461004b00001ef50000413d0000000002260019000000000002043500000000050a0433000000000150004c00001f090000613d0000000001000019000000000421001900000020011000390000000006a1001900000000060604330000000000640435000000000451004b00001f020000413d000000000225001900000000000204350000000005070433000000000150004c00001f160000613d000000000100001900000000042100190000002001100039000000000671001900000000060604330000000000640435000000000451004b00001f0f0000413d000000000225001900000000000204350000000005080433000000000150004c00001f230000613d000000000100001900000000042100190000002001100039000000000681001900000000060604330000000000640435000000000451004b00001f1c0000413d000000000125001900000000000104350000000001310049000000200210008a00000000002304350000001f011000390000000202000029000000000221016f0000000001320019000000000221004b000000000200001900000001020040390000099d0410009c00001f4d0000213d000000010220019000001f4d0000c13d000000400010043f00000998010000410000000404000029000009980240009c0000000002010019000000000204401900000040022002100000000003030433000009980430009c00000000030180190000006003300210000000000223019f0000000003000414000009980430009c0000000001034019000000c001100210000000000121019f000009ac011001c70000801002000039265c26570000040f000000010220019000001f4b0000613d000000000101043b000000000001042d00000000010000190000265e00010430000009bd0100004100000000001004350000004101000039000000040010043f000009be010000410000265e00010430000009bd0100004100000000001004350000003201000039000000040010043f000009be010000410000265e00010430000000400100043d0000004402100039000009bc03000041000000000032043500000024021000390000000f0300003900000000003204350000099f0200004100000000002104350000000402100039000000200300003900000000003204350000099802000041000009980310009c00000000010280190000004001100210000009a0011001c70000265e000104300006000000000002000400000001001d000009a101000041000000000010043900000998010000410000000002000414000009980320009c0000000001024019000000c001100210000009a2011001c70000800b02000039265c26570000040f0000000102200190000026370000613d000000000201043b000000800120008c00001fc70000413d0000008001200270000009a50320009c000000000102a019000009a50320009c0000000003000019000000100300203900000008043001bf0000099d0510009c000000000304201900000040041002700000099d0510009c000000000104201900000004043001bf000009980510009c00000000030420190000002004100270000009980510009c000000000104201900000002043001bf0000ffff0510008c000000000304201900000010041002700000000001042019000000ff0110008c000000000100001900000001010020390000000003130019000000200100008a0000004104300039000000000414016f000000400100043d0000000004410019000000000514004b000000000500001900000001050040390000099d0640009c000026390000213d0000000105500190000026390000c13d000000400040043f000000020430003900000000044104360000002105300039000000050550027200001fb40000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b00001fac0000413d000000000500004c00001fb60000613d0000000005010433000000000550004c0000263f0000613d0000000005040433000009a405500197000000f806300210000000000556019f000009a60550004100000000005404350000000303300210000000f80330008900000000023201cf000000ff0330008c00000000020020190000002103100039000000000023043500001fe70000013d000000400100043d000009a30310009c000026390000213d0000004003100039000000400030043f0000000103000039000000000331043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a00000000060000190000000106006039000000010660019000001fd10000c13d0000000004010433000000000440004c0000263f0000613d000000f8042002100000099c05000041000000000220004c000000000204001900000000020560190000000004030433000009a404400197000000000224019f0000000000230435000000040200002900000100022000390000000202200367000000000202043b000000800320008c000020380000413d0000008003200270000009a50420009c000000000302a019000009a50420009c0000000004000019000000100400203900000008054001bf0000099d0630009c000000000405201900000040053002700000099d0630009c000000000305201900000004054001bf000009980630009c00000000040520190000002005300270000009980630009c000000000305201900000002054001bf0000ffff0630008c000000000405201900000010053002700000000003052019000000ff0330008c000000000300001900000001030020390000000004340019000000200300008a0000004105400039000000000535016f000000400300043d0000000005530019000000000635004b000000000600001900000001060040390000099d0750009c000026390000213d0000000106600190000026390000c13d000000400050043f0000000205400039000000000553043600000021064000390000000506600272000020250000613d0000000007000031000000020770036700000000080000190000000509800210000000000a950019000000000997034f000000000909043b00000000009a04350000000108800039000000000968004b0000201d0000413d000000000600004c000020270000613d0000000006030433000000000660004c0000263f0000613d0000000006050433000009a406600197000000f807400210000000000667019f000009a60660004100000000006504350000000304400210000000f80440008900000000024201cf000000ff0440008c000000000200201900000021043000390000000000240435000020580000013d000000400300043d000009a30430009c000026390000213d0000004004300039000000400040043f0000000104000039000000000443043600000000050000310000000205500367000000000600001900000005076002100000000008740019000000000775034f000000000707043b0000000000780435000000010660003a000000000700001900000001070060390000000107700190000020420000c13d0000000005030433000000000550004c0000263f0000613d000000f8052002100000099c06000041000000000220004c000000000205001900000000020660190000000005040433000009a405500197000000000225019f00000000002404350000000402000029000000c0022000390000000202200367000000000202043b000000800420008c000020a90000413d0000008004200270000009a50520009c000000000402a019000009a50520009c0000000005000019000000100500203900000008065001bf0000099d0740009c000000000506201900000040064002700000099d0740009c000000000406201900000004065001bf000009980740009c00000000050620190000002006400270000009980740009c000000000406201900000002065001bf0000ffff0740008c000000000506201900000010064002700000000004062019000000ff0440008c000000000400001900000001040020390000000005450019000000200400008a0000004106500039000000000646016f000000400400043d0000000006640019000000000746004b000000000700001900000001070040390000099d0860009c000026390000213d0000000107700190000026390000c13d000000400060043f0000000206500039000000000664043600000021075000390000000507700272000020960000613d000000000800003100000002088003670000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b0000208e0000413d000000000700004c000020980000613d0000000007040433000000000770004c0000263f0000613d0000000007060433000009a407700197000000f808500210000000000778019f000009a60770004100000000007604350000000305500210000000f80550008900000000025201cf000000ff0550008c000000000200201900000021054000390000000000250435000020c90000013d000000400400043d000009a30540009c000026390000213d0000004005400039000000400050043f0000000105000039000000000554043600000000060000310000000206600367000000000700001900000005087002100000000009850019000000000886034f000000000808043b0000000000890435000000010770003a000000000800001900000001080060390000000108800190000020b30000c13d0000000006040433000000000660004c0000263f0000613d000000f8062002100000099c07000041000000000220004c000000000206001900000000020760190000000006050433000009a406600197000000000226019f00000000002504350000000402000029000000a0022000390000000202200367000000000202043b000000800520008c0000211a0000413d0000008005200270000009a50620009c000000000502a019000009a50620009c0000000006000019000000100600203900000008076001bf0000099d0850009c000000000607201900000040075002700000099d0850009c000000000507201900000004076001bf000009980850009c00000000060720190000002007500270000009980850009c000000000507201900000002076001bf0000ffff0850008c000000000607201900000010075002700000000005072019000000ff0550008c000000000500001900000001050020390000000006560019000000200500008a0000004107600039000000000757016f000000400500043d0000000007750019000000000857004b000000000800001900000001080040390000099d0970009c000026390000213d0000000108800190000026390000c13d000000400070043f0000000207600039000000000775043600000021086000390000000508800272000021070000613d00000000090000310000000209900367000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa00039000000000b8a004b000020ff0000413d000000000800004c000021090000613d0000000008050433000000000880004c0000263f0000613d0000000008070433000009a408800197000000f809600210000000000889019f000009a60880004100000000008704350000000306600210000000f80660008900000000026201cf000000ff0660008c0000000002002019000000210650003900000000002604350000213a0000013d000000400500043d000009a30650009c000026390000213d0000004006500039000000400060043f000000010600003900000000066504360000000007000031000000020770036700000000080000190000000509800210000000000a960019000000000997034f000000000909043b00000000009a0435000000010880003a000000000900001900000001090060390000000109900190000021240000c13d0000000007050433000000000770004c0000263f0000613d000000f8072002100000099c08000041000000000220004c000000000207001900000000020860190000000007060433000009a407700197000000000227019f0000000000260435000000040200002900000060022000390000000202200367000000000202043b000000800620008c0000218b0000413d0000008006200270000009a50720009c000000000602a019000009a50720009c0000000007000019000000100700203900000008087001bf0000099d0960009c000000000708201900000040086002700000099d0960009c000000000608201900000004087001bf000009980960009c00000000070820190000002008600270000009980960009c000000000608201900000002087001bf0000ffff0960008c000000000708201900000010086002700000000006082019000000ff0660008c000000000600001900000001060020390000000007670019000000200600008a0000004108700039000000000868016f000000400600043d0000000008860019000000000968004b000000000900001900000001090040390000099d0a80009c000026390000213d0000000109900190000026390000c13d000000400080043f0000000208700039000000000886043600000021097000390000000509900272000021780000613d000000000a000031000000020aa00367000000000b000019000000050cb00210000000000dc80019000000000cca034f000000000c0c043b0000000000cd0435000000010bb00039000000000c9b004b000021700000413d000000000900004c0000217a0000613d0000000009060433000000000990004c0000263f0000613d0000000009080433000009a409900197000000f80a70021000000000099a019f000009a60990004100000000009804350000000307700210000000f80770008900000000027201cf000000ff0770008c000000000200201900000021076000390000000000270435000021ab0000013d000000400600043d000009a30760009c000026390000213d0000004007600039000000400070043f00000001070000390000000007760436000000000800003100000002088003670000000009000019000000050a900210000000000ba70019000000000aa8034f000000000a0a043b0000000000ab0435000000010990003a000000000a000019000000010a006039000000010aa00190000021950000c13d0000000008060433000000000880004c0000263f0000613d000000f8082002100000099c09000041000000000220004c000000000208001900000000020960190000000008070433000009a408800197000000000228019f0000000000270435000000400700043d000009a30270009c000026390000213d000000040a0000290000004002a000390000000202200367000000000202043b0000004008700039000000400080043f0000002008700039000009a7090000410000000000980435000000150800003900000000008704350000002108700039000000600220021000000000002804350000012002a000390000000202200367000000000202043b000000800820008c0000220c0000413d0000008008200270000009a50920009c000000000802a019000009a50920009c00000000090000190000001009002039000000080a9001bf0000099d0b80009c00000000090a2019000000400a8002700000099d0b80009c00000000080a2019000000040a9001bf000009980b80009c00000000090a2019000000200a800270000009980b80009c00000000080a2019000000020a9001bf0000ffff0b80008c00000000090a2019000000100a80027000000000080a2019000000ff0880008c000000000800001900000001080020390000000009890019000000200800008a000000410a900039000000000a8a016f000000400800043d000000000aa80019000000000b8a004b000000000b000019000000010b0040390000099d0ca0009c000026390000213d000000010bb00190000026390000c13d0000004000a0043f000000020a900039000000000aa80436000000210b900039000000050bb00272000021f90000613d000000000c000031000000020cc00367000000000d000019000000050ed00210000000000fea0019000000000eec034f000000000e0e043b0000000000ef0435000000010dd00039000000000ebd004b000021f10000413d000000000b00004c000021fb0000613d000000000b080433000000000bb0004c0000263f0000613d000000000b0a0433000009a40bb00197000000f80c900210000000000bbc019f000009a60bb000410000000000ba04350000000309900210000000f80990008900000000029201cf000000ff0990008c0000000002002019000000210980003900000000002904350000222c0000013d000000400800043d000009a30980009c000026390000213d0000004009800039000000400090043f00000001090000390000000009980436000000000a000031000000020aa00367000000000b000019000000050cb00210000000000dc90019000000000cca034f000000000c0c043b0000000000cd0435000000010bb0003a000000000c000019000000010c006039000000010cc00190000022160000c13d000000000a080433000000000aa0004c0000263f0000613d000000f80a2002100000099c0b000041000000000220004c00000000020a001900000000020b6019000000000a090433000009a40aa0019700000000022a019f0000000000290435000000400200043d0000002009200039000000000a010433000000000ba0004c000022390000613d000000000b000019000000000c9b0019000000200bb00039000000000d1b0019000000000d0d04330000000000dc0435000000000cab004b000022320000413d00000000019a001900000000000104350000000009030433000000000a90004c000022460000613d000000000a000019000000000b1a0019000000200aa00039000000000c3a0019000000000c0c04330000000000cb0435000000000b9a004b0000223f0000413d000000000119001900000000000104350000000003040433000000000930004c000022530000613d0000000009000019000000000a1900190000002009900039000000000b490019000000000b0b04330000000000ba0435000000000a39004b0000224c0000413d000000000113001900000000000104350000000003050433000000000430004c000022600000613d000000000400001900000000091400190000002004400039000000000a540019000000000a0a04330000000000a90435000000000934004b000022590000413d000000000113001900000000000104350000000003060433000000000430004c0000226d0000613d000000000400001900000000051400190000002004400039000000000964001900000000090904330000000000950435000000000534004b000022660000413d000000000113001900000000000104350000000003070433000000000430004c0000227a0000613d000000000400001900000000051400190000002004400039000000000674001900000000060604330000000000650435000000000534004b000022730000413d000000000113001900000000000104350000000003080433000000000430004c000022870000613d000000000400001900000000051400190000002004400039000000000684001900000000060604330000000000650435000000000534004b000022800000413d000000000113001900000000000104350000000001210049000000200310008a00000000003204350000001f01100039000000200300008a000200000003001d000000000131016f0000000005210019000000000115004b000000000100001900000001010040390000099d0350009c000026390000213d0000000101100190000026390000c13d000000400050043f0000001f0100008a00000004030000290000000004310049000001c0013000390000000207000367000100000001001d000000000117034f000000000601043b000000000800003100000000014800190000099c09000041000000000a16004b000000000a000019000000000a0980190000099c011001970000099c0b600197000000000c1b004b000000000900801900000000011b013f0000099c0110009c00000000010a00190000000001096019000000000110004c000026370000c13d00000004010000290000000001160019000000000617034f000000000606043b0000099d0960009c000026370000213d000000000968004900000020081000390000099c01000041000000000a98004b000000000a000019000000000a0120190000099c099001970000099c0b800197000000000c9b004b000000000100801900000000099b013f0000099c0990009c00000000010ac019000000000110004c000026370000c13d000000010160008c000022e40000c13d000000000187034f000000000101043b000000010300008a0000099c06000041000000000331004b000000000300001900000000030620190000099c011001970000099c0710009c00000000060080190000099c011001670000099c0110009c000000000103001900000000010660190000006006000039000000000110004c000023360000c13d000009a30150009c000026390000213d0000004001500039000000400010043f0000002001500039000009a6030000410000000000310435000000010100003900000000001504350000000006050019000023360000013d000000380160008c000023190000413d0000002001600270000009980360009c00000000030600190000000003012019000009980160009c0000000001000019000000040100203900000002071001bf0000ffff0830008c000000000107201900000010073002700000000003072019000000ff0330008c00000000070000190000000107002039000009a30350009c000026390000213d000000000771019f0000004001500039000000400010043f0000000201700039000000000815043600000000010000310000000209100367000000000a0000190000000501a002100000000003180019000000000119034f000000000101043b0000000000130435000000010aa0003a000000000100001900000001010060390000000101100190000022ff0000c13d0000000001050433000000000110004c0000263f0000613d0000000001080433000009a401100197000000f803700210000000000113019f000009a8011001c700000000001804350000000301700210000000f80110008900000000011601cf000000210350003900000000001304350000000006050019000023360000013d000009a30150009c000026390000213d0000004001500039000000400010043f0000000101000039000000000715043600000000010000310000000208100367000000000900001900000005019002100000000003170019000000000118034f000000000101043b0000000000130435000000010990003a000000000100001900000001010060390000000101100190000023220000c13d0000000001050433000000000110004c0000263f0000613d000000f8016002100000000003070433000009a403300197000000000113019f0000099c0110016700000000001704350000000006050019000000400500043d000009a30150009c000026390000213d0000004001500039000000400010043f0000000101000039000300000001001d000000000715043600000000010000310000000208100367000000000a0000190000000501a00210000000000b170019000000000118034f000000000101043b00000000001b0435000000010aa0003a000000000100001900000001010060390000000101100190000023410000c13d0000000001050433000000000110004c0000263f0000613d0000000001070433000009a401100197000009a9011001c70000000000170435000000000800003100000000014800190000000403000029000001e00a3000390000000207000367000000000ba7034f000000000b0b043b0000099c0c000041000000000d1b004b000000000d000019000000000d0c80190000099c011001970000099c0eb00197000000000f1e004b000000000c00801900000000011e013f0000099c0110009c00000000010d001900000000010c6019000000000110004c000026370000c13d000000040100002900000000011b0019000000000b17034f000000000b0b043b0000099d0cb0009c000026370000213d000000000cb8004900000020081000390000099c01000041000000000dc8004b000000000d000019000000000d0120190000099c0cc001970000099c0e800197000000000fce004b0000000001008019000000000cce013f0000099c0cc0009c00000000010dc019000000000110004c000026370000c13d0000002001b0008c000026370000413d000000000187034f000000000801043b000000800180008c000023ce0000413d0000008001800270000009a50780009c000000000108a019000009a50780009c00000000070000190000001007002039000000080b7001bf0000099d0c10009c00000000070b2019000000400b1002700000099d0c10009c00000000010b2019000000040b7001bf000009980c10009c00000000070b2019000000200b100270000009980c10009c00000000010b2019000000020b7001bf0000ffff0c10008c00000000070b2019000000100b10027000000000010b2019000000ff0110008c00000000010000190000000101002039000000000b1700190000004101b000390000000203000029000000000131016f000000400700043d0000000001170019000000000c71004b000000000c000019000000010c0040390000099d0d10009c000026390000213d000000010cc00190000026390000c13d000000400010043f0000000201b00039000000000c1704360000002101b00039000000050d100272000023ba0000613d0000000001000031000000020e100367000000000f0000190000000501f0021000000000031c001900000000011e034f000000000101043b0000000000130435000000010ff000390000000001df004b000023b20000413d000000000100004c000023bc0000613d0000000001070433000000000110004c0000263f0000613d00000000010c0433000009a401100197000000f803b00210000000000113019f000009a60110004100000000001c04350000000301b00210000000f80110008900000000031801cf000000ff0110008c0000000001030019000000000100201900000021037000390000000000130435000023ed0000013d000000400700043d000009a30170009c000026390000213d0000004001700039000000400010043f0000000301000029000000000b1704360000000001000031000000020c100367000000000d0000190000000501d0021000000000031b001900000000011c034f000000000101043b0000000000130435000000010dd0003a000000000100001900000001010060390000000101100190000023d80000c13d0000000001070433000000000110004c0000263f0000613d000000f8018002100000099c03000041000000000880004c000000000103601900000000030b0433000009a403300197000000000113019f00000000001b0435000000000c00003100000000014c001900000002080003670000000003a8034f000000000b03043b0000099c03000041000000000d1b004b000000000d000019000000000d0380190000099c011001970000099c0eb00197000000000f1e004b000000000300801900000000011e013f0000099c0110009c00000000010d00190000000001036019000000000110004c000026370000c13d0000000401000029000000000b1b00190000000001b8034f000000000d01043b0000099d01d0009c000026370000213d0000000001dc00490000002003b000390000099c0c000041000000000e13004b000000000e000019000000000e0c20190000099c011001970000099c03300197000000000f13004b000000000c008019000000000113013f0000099c0110009c00000000010e001900000000010c6019000000000110004c000026370000c13d0000004001d0008c000026370000413d0000004001b00039000000000118034f000000000b01043b0000008001b0008c000024690000413d0000008001b00270000009a503b0009c00000000010ba019000009a503b0009c0000000003000019000000100300203900000008083001bf0000099d0c10009c000000000308201900000040081002700000099d0c10009c000000000108201900000004083001bf000009980c10009c00000000030820190000002008100270000009980c10009c000000000108201900000002083001bf0000ffff0c10008c000000000308201900000010081002700000000001082019000000ff0110008c00000000010000190000000101002039000000000c1300190000004101c000390000000203000029000000000131016f000000400800043d0000000001180019000000000381004b000000000d000019000000010d0040390000099d0310009c000026390000213d0000000103d00190000026390000c13d000000400010043f0000000201c00039000000000d1804360000002101c00039000000050e100272000024550000613d0000000001000031000000020f1003670000000001000019000000050310021000000000093d001900000000033f034f000000000303043b000000000039043500000001011000390000000003e1004b0000244d0000413d000000000100004c000024570000613d0000000001080433000000000110004c0000263f0000613d00000000010d0433000009a401100197000000f803c00210000000000113019f000009a60110004100000000001d04350000000301c00210000000f80110008900000000031b01cf000000ff0110008c0000000001030019000000000100201900000021038000390000000000130435000024880000013d000000400800043d000009a30180009c000026390000213d0000004001800039000000400010043f0000000301000029000000000c1804360000000001000031000000020d100367000000000e0000190000000501e0021000000000031c001900000000011d034f000000000101043b0000000000130435000000010ee0003a000000000100001900000001010060390000000101100190000024730000c13d0000000001080433000000000110004c0000263f0000613d000000f801b002100000099c030000410000000009b0004c000000000103601900000000030c0433000009a403300197000000000113019f00000000001c0435000000000c00003100000000014c0019000000020b0003670000000003ab034f000000000a03043b0000099c0300004100000000091a004b000000000900001900000000090380190000099c011001970000099c0da00197000000000e1d004b000000000300801900000000011d013f0000099c0110009c00000000010900190000000001036019000000000110004c000026370000c13d0000000401000029000000000a1a00190000000001ab034f000000000d01043b0000099d01d0009c000026370000213d0000000001dc00490000002003a000390000099c09000041000000000c13004b000000000c000019000000000c0920190000099c011001970000099c03300197000000000e13004b0000000009008019000000000113013f0000099c0110009c00000000010c00190000000001096019000000000110004c000026370000c13d0000004101d0008c0000263f0000413d0000006001a0003900000000011b034f000000000b000415000000060bb0008a000000200bb000c90000099c0c000041000000000101043b000000f8011002700000001b0310008c000024c30000613d000000000b000415000000050bb0008a000000200bb000c9000009ab0c0000410000001c0110008c000026450000c13d000000400a00043d000009a301a0009c000026390000213d0000004001a00039000000400010043f0000000301000029000000000d1a04360000000001000031000000020e100367000000000f0000190000000501f0021000000000031d001900000000011e034f000000000101043b0000000000130435000000010ff0003a000000000100001900000001010060390000000101100190000024cd0000c13d00000000010a0433000000000110004c0000263f0000613d00000000010d0433000009a4011001970000000001c1019f00000000001d04350000002001b0011a00000000010a001f000000000b00003100000000014b0019000000020e000367000000010300002900000000033e034f000000000f03043b0000099c0300004100000000091f004b000000000900001900000000090380190000099c011001970000099c0cf00197000000000d1c004b000000000300801900000000011c013f0000099c0110009c00000000010900190000000001036019000000000110004c000026370000c13d000000000c020433000000000d060433000000040100002900000000011f001900000000031e034f000000000e03043b0000099d03e0009c000026370000213d0000000003eb004900000020011000390000099c09000041000000000b31004b000000000b000019000000000b0920190000099c033001970000099c01100197000000000f31004b0000000009008019000000000131013f0000099c0110009c00000000010b00190000000001096019000000000110004c000026370000c13d0000000001cd00190000000001e1001900000000030504330000000001310019000000000307043300000000013100190000000003080433000000000131001900000000030a043300000000013100190000099d0c1001970000003801c0008c0000254c0000413d0000002001c002700000099803c0009c00000000030c001900000000030120190000099801c0009c0000000001000019000000040100203900000002091001bf0000ffff0b30008c000000000109201900000010093002700000000003092019000000ff0330008c00000000090000190000000109002039000000400b00043d000009a303b0009c000026390000213d000000000991019f0000004001b00039000000400010043f0000000201900039000000000d1b04360000000001000031000000020e100367000000000f0000190000000501f0021000000000031d001900000000011e034f000000000101043b0000000000130435000000010ff0003a000000000100001900000001010060390000000101100190000025330000c13d00000000010b0433000000000110004c0000263f0000613d00000000010d0433000009a401100197000000f803900210000000000113019f000009aa011001c700000000001d04350000000301900210000000f80110008900000000011c01cf0000002103b000390000000000130435000025690000013d000000400b00043d000009a301b0009c000026390000213d0000004001b00039000000400010043f000000030100002900000000091b04360000000001000031000000020d100367000000000e0000190000000501e00210000000000319001900000000011d034f000000000101043b0000000000130435000000010ee0003a000000000100001900000001010060390000000101100190000025560000c13d00000000010b0433000000000110004c0000263f0000613d000000f801c002100000000003090433000009a403300197000000000131019f000009a9011000410000000000190435000000000c00003100000000014c001900000002040003670000000103000029000000000334034f000000000303043b0000099c09000041000000000d13004b000000000d000019000000000d0980190000099c011001970000099c0e300197000000000f1e004b000000000900801900000000011e013f0000099c0110009c00000000010d00190000000001096019000000000110004c000026370000c13d00000004010000290000000001130019000000000314034f000000000903043b0000099d0390009c000026370000213d00000000039c0049000000200c1000390000099c0100004100000000043c004b000000000400001900000000040120190000099c033001970000099c0dc00197000000000e3d004b000000000100801900000000033d013f0000099c0330009c000000000104c019000000000110004c000026370000c13d000000400300043d0000002004300039000009ac01000041000400000004001d0000000000140435000000210d300039000000000e0b04330000000001e0004c000025a30000613d0000000001000019000000000fd1001900000020011000390000000004b10019000000000404043300000000004f04350000000004e1004b0000259c0000413d000000000bde001900000000000b0435000000000d0204330000000001d0004c000025b00000613d00000000010000190000000004b100190000002001100039000000000e210019000000000e0e04330000000000e404350000000004d1004b000025a90000413d0000000002bd00190000000000020435000000000b0604330000000001b0004c000025bd0000613d000000000100001900000000042100190000002001100039000000000d610019000000000d0d04330000000000d404350000000004b1004b000025b60000413d00000000022b00190000001f0690018f0000000000020435000000020bc00367000000050c900272000025cc0000613d00000000010000190000000504100210000000000d42001900000000044b034f000000000404043b00000000004d043500000001011000390000000004c1004b000025c40000413d000000000160004c000025db0000613d0000000501c0021000000000041b034f00000000011200190000000306600210000000000b010433000000000b6b01cf000000000b6b022f000000000404043b0000010006600089000000000464022f00000000046401cf0000000004b4019f0000000000410435000000000292001900000000000204350000000006050433000000000160004c000025e80000613d000000000100001900000000042100190000002001100039000000000951001900000000090904330000000000940435000000000461004b000025e10000413d0000000002260019000000000002043500000000050a0433000000000150004c000025f50000613d0000000001000019000000000421001900000020011000390000000006a1001900000000060604330000000000640435000000000451004b000025ee0000413d000000000225001900000000000204350000000005070433000000000150004c000026020000613d000000000100001900000000042100190000002001100039000000000671001900000000060604330000000000640435000000000451004b000025fb0000413d000000000225001900000000000204350000000005080433000000000150004c0000260f0000613d000000000100001900000000042100190000002001100039000000000681001900000000060604330000000000640435000000000451004b000026080000413d000000000125001900000000000104350000000001310049000000200210008a00000000002304350000001f011000390000000202000029000000000221016f0000000001320019000000000221004b000000000200001900000001020040390000099d0410009c000026390000213d0000000102200190000026390000c13d000000400010043f00000998010000410000000404000029000009980240009c0000000002010019000000000204401900000040022002100000000003030433000009980430009c00000000030180190000006003300210000000000223019f0000000003000414000009980430009c0000000001034019000000c001100210000000000121019f000009ac011001c70000801002000039265c26570000040f0000000102200190000026370000613d000000000101043b000000000001042d00000000010000190000265e00010430000009bd0100004100000000001004350000004101000039000000040010043f000009be010000410000265e00010430000009bd0100004100000000001004350000003201000039000000040010043f000009be010000410000265e00010430000000400100043d0000004402100039000009bc03000041000000000032043500000024021000390000000f0300003900000000003204350000099f0200004100000000002104350000000402100039000000200300003900000000003204350000099802000041000009980310009c00000000010280190000004001100210000009a0011001c70000265e000104300000265a002104230000000102000039000000000001042d0000000002000019000000000001042d0000265c000004320000265d0001042e0000265e00010430000000000000000000000000000000000000000000000000000000000000000000000000ffffffff0000000200000000000000000000000000000040000001000000000000000000ffffffff00000000000000000000000000000000000000000000000000000000ebe4a3d7000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff456e636f64696e6720756e737570706f7274656420747800000000000000000008c379a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640000000000000000000000009a8a0592ac89c5ad3bc6df8224c17b485976f597df104ee20d0df415241f670b0200000200000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffbf00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000ffffffffffffffffffffffffffffffff81000000000000000000000000000000000000000000000000000000000000009400000000000000000000000000000000000000000000000000000000000000b800000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000f80000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffff00000000000000000000000000000000ffffffff00000000000000000000000000000000000000000000000000000000ffffffff00000000000000000000ffff000000000000000000000000000000000000801000000000000000000000ffff00000000000000000000000000000000000000000000000000000000000000000000000000000001ffffffe007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848e1bfa1ac4e3576b728bda6721b215c70a7799a5b4866282a71bab954baac8000000000000000000000000000000000000000000000000fffffffffffffe1fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6ead7c5bef027816a800da1736444fb58a807ef4c9603b7848673f7e3a68eb14a519b453ce45aaaaf3a300f5a9ec95869b4f28ab10430b572ee218c3a6a5e07d6f000000000000000000000000000000000000000000000000ffffffffffffff5f1901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff7f8080000000000000000000000000000000000000000000000000000000000000496e76616c696420762076616c756500000000000000000000000000000000004e487b710000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000000000000000000000006b656363616b3235362072657475726e656420696e76616c6964206461746100000000000000000000000000000000000000000000000000ffffffffffffff9f00000000000000000000000000000000000000400000000000000000000000004f766572666c6f77000000000000000000000000000000000000000000000000556e737570706f72746564207478207479706500000000000000000000000000d928534cf2f0aa13aa4853c362232c19f88e4689b9ae2f60c785a65842d58a13"},"methodIdentifiers":{"getTransactionHashes((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256[4],bytes,bytes,bytes32[],bytes,bytes))":"ebe4a3d7"}},"irOptimized":"/// @use-src 0:\"@matterlabs/zksync-contracts/l2/system-contracts/BootloaderUtilities.sol\", 3:\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBootloaderUtilities.sol\"\nobject \"BootloaderUtilities_905\" {\n code {\n {\n /// @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\"\n let _1 := memoryguard(0x80)\n mstore(64, _1)\n if callvalue() { revert(0, 0) }\n let _2 := datasize(\"BootloaderUtilities_905_deployed\")\n codecopy(_1, dataoffset(\"BootloaderUtilities_905_deployed\"), _2)\n return(_1, _2)\n }\n }\n /// @use-src 0:\"@matterlabs/zksync-contracts/l2/system-contracts/BootloaderUtilities.sol\", 1:\"@matterlabs/zksync-contracts/l2/system-contracts/Constants.sol\", 14:\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/EfficientCall.sol\", 15:\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/RLPEncoder.sol\", 16:\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractHelper.sol\", 17:\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractsCaller.sol\", 18:\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/TransactionHelper.sol\", 19:\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/Utils.sol\"\n object \"BootloaderUtilities_905_deployed\" {\n code {\n {\n /// @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\"\n mstore(64, 128)\n if iszero(lt(calldatasize(), 4))\n {\n let _1 := 0\n if eq(0xebe4a3d7, shr(224, calldataload(_1)))\n {\n if callvalue() { revert(_1, _1) }\n let _2 := not(3)\n if slt(add(calldatasize(), _2), 32) { revert(_1, _1) }\n let offset := calldataload(4)\n if gt(offset, 0xffffffffffffffff) { revert(_1, _1) }\n let _3 := add(4, offset)\n if slt(add(sub(calldatasize(), offset), _2), 608) { revert(_1, _1) }\n let var_txHash := _1\n /// @src 0:1055:1095 \"signedTxHash = _transaction.encodeHash()\"\n let var_signedTxHash := /** @src 0:1070:1095 \"_transaction.encodeHash()\" */ fun_encodeHash(_3)\n /// @src 0:1109:1128 \"_transaction.txType\"\n let expr := /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ calldataload(/** @src 0:1109:1128 \"_transaction.txType\" */ _3)\n /// @src 0:1105:1704 \"if (_transaction.txType == EIP_712_TX_TYPE) {...\"\n switch /** @src 0:1109:1147 \"_transaction.txType == EIP_712_TX_TYPE\" */ eq(expr, /** @src 18:494:498 \"0x71\" */ 0x71)\n case /** @src 0:1105:1704 \"if (_transaction.txType == EIP_712_TX_TYPE) {...\" */ 0 {\n /// @src 0:1272:1704 \"if (_transaction.txType == LEGACY_TX_TYPE) {...\"\n switch /** @src 0:1276:1313 \"_transaction.txType == LEGACY_TX_TYPE\" */ iszero(expr)\n case /** @src 0:1272:1704 \"if (_transaction.txType == LEGACY_TX_TYPE) {...\" */ 0 {\n /// @src 0:1396:1704 \"if (_transaction.txType == EIP_1559_TX_TYPE) {...\"\n switch /** @src 0:1400:1439 \"_transaction.txType == EIP_1559_TX_TYPE\" */ eq(expr, /** @src 18:748:752 \"0x02\" */ 0x02)\n case /** @src 0:1396:1704 \"if (_transaction.txType == EIP_1559_TX_TYPE) {...\" */ 0 {\n /// @src 0:1523:1704 \"if (_transaction.txType == EIP_2930_TX_TYPE) {...\"\n switch /** @src 0:1527:1566 \"_transaction.txType == EIP_2930_TX_TYPE\" */ eq(expr, /** @src 18:662:666 \"0x01\" */ 0x01)\n case /** @src 0:1523:1704 \"if (_transaction.txType == EIP_2930_TX_TYPE) {...\" */ 0 {\n /// @src 0:1664:1693 \"revert(\\\"Unsupported tx type\\\")\"\n let _4 := /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ mload(64)\n /// @src 0:1664:1693 \"revert(\\\"Unsupported tx type\\\")\"\n mstore(_4, shl(229, 4594637))\n revert(_4, sub(abi_encode_stringliteral_80e5(add(_4, /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ 4)), /** @src 0:1664:1693 \"revert(\\\"Unsupported tx type\\\")\" */ _4))\n }\n default /// @src 0:1523:1704 \"if (_transaction.txType == EIP_2930_TX_TYPE) {...\"\n {\n /// @src 0:1582:1633 \"txHash = encodeEIP2930TransactionHash(_transaction)\"\n var_txHash := /** @src 0:1591:1633 \"encodeEIP2930TransactionHash(_transaction)\" */ fun_encodeEIP2930TransactionHash(_3)\n }\n }\n default /// @src 0:1396:1704 \"if (_transaction.txType == EIP_1559_TX_TYPE) {...\"\n {\n /// @src 0:1455:1506 \"txHash = encodeEIP1559TransactionHash(_transaction)\"\n var_txHash := /** @src 0:1464:1506 \"encodeEIP1559TransactionHash(_transaction)\" */ fun_encodeEIP1559TransactionHash(_3)\n }\n }\n default /// @src 0:1272:1704 \"if (_transaction.txType == LEGACY_TX_TYPE) {...\"\n {\n /// @src 0:1329:1379 \"txHash = encodeLegacyTransactionHash(_transaction)\"\n var_txHash := /** @src 0:1338:1379 \"encodeLegacyTransactionHash(_transaction)\" */ fun_encodeLegacyTransactionHash(_3)\n }\n }\n default /// @src 0:1105:1704 \"if (_transaction.txType == EIP_712_TX_TYPE) {...\"\n {\n /// @src 0:1230:1252 \"_transaction.signature\"\n let expr_offset, expr_length := access_calldata_tail_bytes_calldata(_3, add(/** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ offset, /** @src 0:1230:1252 \"_transaction.signature\" */ 484))\n /// @src 0:1182:1254 \"bytes.concat(signedTxHash, EfficientCall.keccak(_transaction.signature))\"\n let expr_mpos := bytes_concat_bytes32_bytes32(var_signedTxHash, /** @src 0:1209:1253 \"EfficientCall.keccak(_transaction.signature)\" */ fun_keccak(expr_offset, expr_length))\n /// @src 0:1163:1255 \"txHash = keccak256(bytes.concat(signedTxHash, EfficientCall.keccak(_transaction.signature)))\"\n var_txHash := /** @src 0:1172:1255 \"keccak256(bytes.concat(signedTxHash, EfficientCall.keccak(_transaction.signature)))\" */ keccak256(/** @src 18:662:666 \"0x01\" */ add(/** @src 0:1172:1255 \"keccak256(bytes.concat(signedTxHash, EfficientCall.keccak(_transaction.signature)))\" */ expr_mpos, /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ 32), /** @src 18:662:666 \"0x01\" */ mload(/** @src 0:1172:1255 \"keccak256(bytes.concat(signedTxHash, EfficientCall.keccak(_transaction.signature)))\" */ expr_mpos))\n }\n /// @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\"\n let memPos := mload(64)\n return(memPos, sub(abi_encode_bytes32_bytes32(memPos, var_txHash, var_signedTxHash), memPos))\n }\n }\n revert(0, 0)\n }\n function abi_encode_bytes32_bytes32(headStart, value0, value1) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n }\n /// @src 18:494:498 \"0x71\"\n function convert_uint8_to_uint256(value) -> converted\n {\n converted := /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ and(/** @src 18:494:498 \"0x71\" */ value, /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ 0xff)\n }\n /// @src 18:662:666 \"0x01\"\n function abi_encode_stringliteral_80e5(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 19)\n mstore(add(headStart, 64), \"Unsupported tx type\")\n tail := add(headStart, 96)\n }\n function access_calldata_tail_bytes_calldata(base_ref, ptr_to_tail) -> addr, length\n {\n let rel_offset_of_tail := calldataload(ptr_to_tail)\n if iszero(slt(rel_offset_of_tail, add(sub(calldatasize(), base_ref), not(30))))\n {\n /// @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\"\n revert(0, 0)\n }\n /// @src 18:662:666 \"0x01\"\n let addr_1 := add(base_ref, rel_offset_of_tail)\n length := calldataload(addr_1)\n if gt(length, 0xffffffffffffffff)\n {\n /// @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\"\n revert(0, 0)\n }\n /// @src 18:662:666 \"0x01\"\n addr := add(addr_1, 0x20)\n if sgt(addr, sub(calldatasize(), length))\n {\n /// @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\"\n revert(0, 0)\n }\n }\n /// @src 18:662:666 \"0x01\"\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function finalize_allocation_8941(memPtr)\n {\n let newFreePtr := add(memPtr, /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ 64)\n /// @src 18:662:666 \"0x01\"\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(/** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ 64, /** @src 18:662:666 \"0x01\" */ newFreePtr)\n }\n function finalize_allocation(memPtr, size)\n {\n let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n function bytes_concat_bytes32_bytes32(param, param_1) -> outPtr\n {\n outPtr := /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ mload(64)\n mstore(/** @src 18:662:666 \"0x01\" */ add(outPtr, 0x20), /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ param)\n mstore(/** @src 18:662:666 \"0x01\" */ add(outPtr, /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ 64), param_1)\n /// @src 18:662:666 \"0x01\"\n mstore(outPtr, /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ 64)\n /// @src 18:662:666 \"0x01\"\n let newFreePtr := add(outPtr, 96)\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, outPtr)) { panic_error_0x41() }\n mstore(/** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ 64, /** @src 18:662:666 \"0x01\" */ newFreePtr)\n }\n /// @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\"\n function abi_encode_bytes(value, pos) -> end\n {\n let length := /** @src 18:662:666 \"0x01\" */ mload(/** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ value)\n let i := 0\n for { } lt(i, length) { i := add(i, 0x20) }\n {\n mstore(add(pos, i), mload(add(add(value, i), 0x20)))\n }\n let _1 := add(pos, length)\n mstore(_1, 0)\n end := _1\n }\n function bytes_concat_bytes_bytes(param, param_1) -> outPtr\n {\n outPtr := mload(64)\n let _1 := sub(abi_encode_bytes(param_1, abi_encode_bytes(param, add(outPtr, 0x20))), outPtr)\n mstore(outPtr, add(_1, /** @src 18:662:666 \"0x01\" */ not(31)))\n /// @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\"\n finalize_allocation(outPtr, _1)\n }\n function convert_uint256_to_uint64(value) -> converted\n {\n converted := and(value, 0xffffffffffffffff)\n }\n function panic_error_0x32()\n {\n mstore(0, /** @src 18:662:666 \"0x01\" */ shl(224, 0x4e487b71))\n /// @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\"\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n function calldata_array_index_access_bytes_calldata_5129(base_ref, length) -> addr\n {\n if iszero(length) { panic_error_0x32() }\n addr := base_ref\n }\n function calldata_array_index_access_bytes_calldata(base_ref, length) -> addr\n {\n if iszero(lt(/** @src 0:2959:2974 \"_transaction.to\" */ 64, /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ length)) { panic_error_0x32() }\n addr := add(base_ref, /** @src 0:2959:2974 \"_transaction.to\" */ 64)\n }\n /// @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\"\n function cleanup_bytes1(value) -> cleaned\n {\n cleaned := and(value, shl(248, 255))\n }\n function array_allocation_size_string(length) -> size\n {\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n size := add(/** @src 18:662:666 \"0x01\" */ and(add(/** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ length, /** @src 18:662:666 \"0x01\" */ 31), not(31)), /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ 0x20)\n }\n function copy_literal_to_memory_1fed454f35701d8970ad2ac06907e973314989ab6eb948eda79c00e416c4bdeb() -> memPtr\n {\n let memPtr_1 := mload(64)\n finalize_allocation_8941(memPtr_1)\n mstore(memPtr_1, 1)\n memPtr := memPtr_1\n mstore(add(memPtr_1, 32), shl(248, 129))\n }\n function calldata_array_index_range_access_bytes_calldata(offset, length) -> offsetOut, lengthOut\n {\n if gt(/** @src 0:4063:4065 \"32\" */ 0x20, /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ length)\n {\n revert(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\"\n offsetOut := offset\n lengthOut := /** @src 0:4063:4065 \"32\" */ 0x20\n }\n /// @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\"\n function calldata_array_index_range_access_bytes_calldata_5131(offset, length) -> offsetOut, lengthOut\n {\n if gt(/** @src 0:2959:2974 \"_transaction.to\" */ 64, /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ length) { revert(0, 0) }\n offsetOut := add(offset, /** @src 0:4063:4065 \"32\" */ 0x20)\n /// @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\"\n lengthOut := /** @src 0:4063:4065 \"32\" */ 0x20\n }\n /// @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\"\n function convert_bytes_to_fixedbytes_from_bytes_calldata_to_bytes32(array, len) -> value\n {\n value := calldataload(array)\n if lt(len, 32)\n {\n value := and(value, shl(shl(3, sub(32, len)), not(0)))\n }\n }\n function convert_bytes1_to_uint8(value) -> converted\n { converted := shr(248, value) }\n function require_helper_stringliteral_f613(condition)\n {\n if iszero(condition)\n {\n let memPtr := mload(64)\n mstore(memPtr, /** @src 0:1664:1693 \"revert(\\\"Unsupported tx type\\\")\" */ shl(229, 4594637))\n /// @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\"\n mstore(add(memPtr, 4), 32)\n /// @src 18:662:666 \"0x01\"\n mstore(/** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ add(memPtr, 36), 15)\n mstore(/** @src 18:662:666 \"0x01\" */ add(/** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ memPtr, /** @src 18:662:666 \"0x01\" */ 68), /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ \"Invalid v value\")\n revert(memPtr, 100)\n }\n }\n function panic_error_0x11()\n {\n mstore(0, /** @src 18:662:666 \"0x01\" */ shl(224, 0x4e487b71))\n /// @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\"\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function checked_mul_uint256(x) -> product\n {\n product := shl(1, x)\n if iszero(or(iszero(x), eq(/** @src 0:4788:4789 \"2\" */ 0x02, /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ div(product, x)))) { panic_error_0x11() }\n }\n function checked_add_uint256_5135(y) -> sum\n {\n sum := add(/** @src 0:4768:4769 \"8\" */ 0x08, /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ y)\n if gt(/** @src 0:4768:4769 \"8\" */ 0x08, /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ sum) { panic_error_0x11() }\n }\n function checked_add_uint256(x, y) -> sum\n {\n sum := add(x, y)\n if gt(x, sum) { panic_error_0x11() }\n }\n function bytes_concat_bytes_bytes_bytes_bytes_bytes_bytes_bytes_calldata_bytes_bytes_bytes(param, param_1, param_2, param_3, param_4, param_5, param_6, param_7, param_8, param_9, param_10) -> outPtr\n {\n outPtr := mload(64)\n let _1 := abi_encode_bytes(param_5, abi_encode_bytes(param_4, abi_encode_bytes(param_3, abi_encode_bytes(param_2, abi_encode_bytes(param_1, abi_encode_bytes(param, add(outPtr, 0x20)))))))\n calldatacopy(_1, param_6, param_7)\n let _2 := add(_1, param_7)\n mstore(_2, /** @src -1:-1:-1 */ 0)\n /// @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\"\n let _3 := sub(abi_encode_bytes(param_10, abi_encode_bytes(param_9, abi_encode_bytes(param_8, _2))), outPtr)\n mstore(outPtr, add(_3, /** @src 18:662:666 \"0x01\" */ not(31)))\n /// @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\"\n finalize_allocation(outPtr, _3)\n }\n /// @ast-id 361 @src 0:1882:5902 \"function encodeLegacyTransactionHash(Transaction calldata _transaction) internal view returns (bytes32 txHash) {...\"\n function fun_encodeLegacyTransactionHash(var_transaction_offset) -> var_txHash\n {\n /// @src 0:2426:2470 \"RLPEncoder.encodeUint256(_transaction.nonce)\"\n let expr_106_mpos := fun_encodeUint256(/** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ calldataload(/** @src 0:2451:2469 \"_transaction.nonce\" */ add(var_transaction_offset, 256)))\n /// @src 0:2651:2702 \"RLPEncoder.encodeUint256(_transaction.maxFeePerGas)\"\n let expr_117_mpos := fun_encodeUint256(/** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ calldataload(/** @src 0:2676:2701 \"_transaction.maxFeePerGas\" */ add(var_transaction_offset, 160)))\n /// @src 0:2826:2872 \"bytes.concat(encodedGasPrice, encodedGasLimit)\"\n let expr_133_mpos := bytes_concat_bytes_bytes(expr_117_mpos, /** @src 0:2747:2794 \"RLPEncoder.encodeUint256(_transaction.gasLimit)\" */ fun_encodeUint256(/** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ calldataload(/** @src 0:2772:2793 \"_transaction.gasLimit\" */ add(var_transaction_offset, /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ 96))))\n /// @src 0:2918:2977 \"RLPEncoder.encodeAddress(address(uint160(_transaction.to)))\"\n let expr_149_mpos := fun_encodeAddress(/** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ and(calldataload(/** @src 0:2959:2974 \"_transaction.to\" */ add(var_transaction_offset, 64)), /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ sub(shl(160, 1), 1)))\n /// @src 0:3015:3059 \"RLPEncoder.encodeUint256(_transaction.value)\"\n let expr_157_mpos := fun_encodeUint256(/** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ calldataload(/** @src 0:3040:3058 \"_transaction.value\" */ add(var_transaction_offset, 288)))\n /// @src 0:3235:3265 \"bytes memory encodedDataLength\"\n let var_encodedDataLength_160_mpos := /** @src -1:-1:-1 */ 0\n /// @src 0:3235:3265 \"bytes memory encodedDataLength\"\n var_encodedDataLength_160_mpos := /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ 96\n /// @src 0:3403:3420 \"_transaction.data\"\n let _1 := add(var_transaction_offset, 448)\n let expr_167_offset, expr_167_length := access_calldata_tail_bytes_calldata(var_transaction_offset, _1)\n /// @src 0:3396:3428 \"uint64(_transaction.data.length)\"\n let expr := /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ and(/** @src 0:3403:3427 \"_transaction.data.length\" */ expr_167_length, /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ 0xffffffffffffffff)\n /// @src 0:3442:3883 \"if (txDataLen != 1) {...\"\n switch /** @src 0:3446:3460 \"txDataLen != 1\" */ iszero(eq(/** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ expr, /** @src 0:3459:3460 \"1\" */ 0x01))\n case /** @src 0:3442:3883 \"if (txDataLen != 1) {...\" */ 0 {\n /// @src 0:3681:3698 \"_transaction.data\"\n let expr_183_offset, expr_183_length := access_calldata_tail_bytes_calldata(var_transaction_offset, _1)\n /// @src 0:3677:3883 \"if (_transaction.data[0] >= 0x80) {...\"\n if /** @src 0:3681:3709 \"_transaction.data[0] >= 0x80\" */ iszero(lt(/** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ and(/** @src 0:3681:3701 \"_transaction.data[0]\" */ cleanup_bytes1(calldataload(calldata_array_index_access_bytes_calldata_5129(expr_183_offset, expr_183_length))), /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ shl(248, 255)), shl(255, 1)))\n /// @src 0:3677:3883 \"if (_transaction.data[0] >= 0x80) {...\"\n {\n /// @src 0:3841:3868 \"encodedDataLength = hex\\\"81\\\"\"\n var_encodedDataLength_160_mpos := /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ copy_literal_to_memory_1fed454f35701d8970ad2ac06907e973314989ab6eb948eda79c00e416c4bdeb()\n }\n }\n default /// @src 0:3442:3883 \"if (txDataLen != 1) {...\"\n {\n /// @src 0:3591:3656 \"encodedDataLength = RLPEncoder.encodeNonSingleBytesLen(txDataLen)\"\n var_encodedDataLength_160_mpos := /** @src 0:3611:3656 \"RLPEncoder.encodeNonSingleBytesLen(txDataLen)\" */ fun_encodeNonSingleBytesLen(expr)\n }\n /// @src 0:4038:4060 \"_transaction.signature\"\n let _2 := add(var_transaction_offset, 480)\n let expr_206_offset, expr_206_length := access_calldata_tail_bytes_calldata(var_transaction_offset, _2)\n /// @src 0:4038:4066 \"_transaction.signature[0:32]\"\n let expr_209_offset, expr_209_length := calldata_array_index_range_access_bytes_calldata(expr_206_offset, expr_206_length)\n /// @src 0:4093:4123 \"RLPEncoder.encodeUint256(rInt)\"\n let expr_217_mpos := fun_encodeUint256(/** @src 0:4030:4067 \"bytes32(_transaction.signature[0:32])\" */ convert_bytes_to_fixedbytes_from_bytes_calldata_to_bytes32(expr_209_offset, expr_209_length))\n /// @src 0:4219:4241 \"_transaction.signature\"\n let expr_231_offset, expr_231_length := access_calldata_tail_bytes_calldata(var_transaction_offset, _2)\n /// @src 0:4219:4248 \"_transaction.signature[32:64]\"\n let expr_234_offset, expr_234_length := calldata_array_index_range_access_bytes_calldata_5131(expr_231_offset, expr_231_length)\n /// @src 0:4275:4305 \"RLPEncoder.encodeUint256(sInt)\"\n let expr_242_mpos := fun_encodeUint256(/** @src 0:4211:4249 \"bytes32(_transaction.signature[32:64])\" */ convert_bytes_to_fixedbytes_from_bytes_calldata_to_bytes32(expr_234_offset, expr_234_length))\n /// @src 0:4399:4421 \"_transaction.signature\"\n let expr_256_offset, expr_256_length := access_calldata_tail_bytes_calldata(var_transaction_offset, _2)\n /// @src 0:4370:4427 \"uint256 vInt = uint256(uint8(_transaction.signature[64]))\"\n let var_vInt := /** @src 0:4385:4427 \"uint256(uint8(_transaction.signature[64]))\" */ convert_uint8_to_uint256(/** @src 0:4393:4426 \"uint8(_transaction.signature[64])\" */ convert_bytes1_to_uint8(/** @src 0:4399:4425 \"_transaction.signature[64]\" */ cleanup_bytes1(calldataload(calldata_array_index_access_bytes_calldata(expr_256_offset, expr_256_length)))))\n /// @src 0:4449:4473 \"vInt == 27 || vInt == 28\"\n let expr_1 := /** @src 0:4449:4459 \"vInt == 27\" */ eq(var_vInt, /** @src 0:4457:4459 \"27\" */ 0x1b)\n /// @src 0:4449:4473 \"vInt == 27 || vInt == 28\"\n if iszero(expr_1)\n {\n expr_1 := /** @src 0:4463:4473 \"vInt == 28\" */ eq(var_vInt, /** @src 0:4471:4473 \"28\" */ 0x1c)\n }\n /// @src 0:4441:4493 \"require(vInt == 27 || vInt == 28, \\\"Invalid v value\\\")\"\n require_helper_stringliteral_f613(expr_1)\n /// @src 0:4707:4804 \"if (_transaction.reserved[0] != 0) {...\"\n if /** @src 0:4711:4740 \"_transaction.reserved[0] != 0\" */ iszero(iszero(/** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ calldataload(/** @src 0:4711:4732 \"_transaction.reserved\" */ add(var_transaction_offset, 320))))\n /// @src 0:4707:4804 \"if (_transaction.reserved[0] != 0) {...\"\n {\n /// @src 0:4760:4789 \"vInt += 8 + block.chainid * 2\"\n var_vInt := checked_add_uint256(var_vInt, /** @src 0:4768:4789 \"8 + block.chainid * 2\" */ checked_add_uint256_5135(/** @src 0:4772:4789 \"block.chainid * 2\" */ checked_mul_uint256(/** @src 0:4772:4785 \"block.chainid\" */ chainid())))\n }\n /// @src 0:4829:4859 \"RLPEncoder.encodeUint256(vInt)\"\n let expr_294_mpos := fun_encodeUint256(var_vInt)\n /// @src 0:4965:4984 \"encodedNonce.length\"\n let expr_2 := /** @src 18:662:666 \"0x01\" */ mload(/** @src 0:4965:4984 \"encodedNonce.length\" */ expr_106_mpos)\n /// @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\"\n let sum := add(expr_2, /** @src 18:662:666 \"0x01\" */ mload(/** @src 0:5003:5025 \"encodedGasParam.length\" */ expr_133_mpos))\n /// @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\"\n let sum_1 := add(sum, /** @src 18:662:666 \"0x01\" */ mload(/** @src 0:5044:5060 \"encodedTo.length\" */ expr_149_mpos))\n /// @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\"\n let sum_2 := add(sum_1, /** @src 18:662:666 \"0x01\" */ mload(/** @src 0:5079:5098 \"encodedValue.length\" */ expr_157_mpos))\n /// @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\"\n let sum_3 := add(sum_2, /** @src 18:662:666 \"0x01\" */ mload(/** @src 0:5117:5141 \"encodedDataLength.length\" */ var_encodedDataLength_160_mpos))\n /// @src 0:5160:5177 \"_transaction.data\"\n let expr_318_offset, expr_318_length := access_calldata_tail_bytes_calldata(var_transaction_offset, _1)\n /// @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\"\n let sum_4 := add(add(/** @src 0:4965:5184 \"encodedNonce.length +...\" */ sum_3, /** @src 0:5160:5184 \"_transaction.data.length\" */ expr_318_length), /** @src 18:662:666 \"0x01\" */ mload(/** @src 0:5203:5218 \"rEncoded.length\" */ expr_217_mpos))\n /// @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\"\n let sum_5 := add(sum_4, /** @src 18:662:666 \"0x01\" */ mload(/** @src 0:5237:5252 \"sEncoded.length\" */ expr_242_mpos))\n /// @src 15:2164:2196 \"return _encodeLength(_len, 0xc0)\"\n let var_mpos := /** @src 15:2171:2196 \"_encodeLength(_len, 0xc0)\" */ fun_encodeLength(/** @src 0:5422:5440 \"uint64(listLength)\" */ convert_uint256_to_uint64(/** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ add(sum_5, /** @src 18:662:666 \"0x01\" */ mload(/** @src 0:5271:5286 \"vEncoded.length\" */ expr_294_mpos))))\n /// @src 0:5756:5773 \"_transaction.data\"\n let expr_353_offset, expr_353_length := access_calldata_tail_bytes_calldata(var_transaction_offset, _1)\n /// @src 0:5508:5881 \"bytes.concat(...\"\n let expr_357_mpos := bytes_concat_bytes_bytes_bytes_bytes_bytes_bytes_bytes_calldata_bytes_bytes_bytes(var_mpos, expr_106_mpos, expr_133_mpos, expr_149_mpos, expr_157_mpos, var_encodedDataLength_160_mpos, expr_353_offset, expr_353_length, expr_294_mpos, expr_217_mpos, expr_242_mpos)\n /// @src 0:5462:5895 \"return...\"\n var_txHash := /** @src 0:5481:5895 \"keccak256(...\" */ keccak256(/** @src 18:662:666 \"0x01\" */ add(/** @src 0:5481:5895 \"keccak256(...\" */ expr_357_mpos, /** @src 0:4063:4065 \"32\" */ 0x20), /** @src 18:662:666 \"0x01\" */ mload(/** @src 0:5481:5895 \"keccak256(...\" */ expr_357_mpos))\n }\n /// @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\"\n function bytes_concat_bytes_bytes_bytes_bytes_bytes_bytes(param, param_1, param_2, param_3, param_4, param_5) -> outPtr\n {\n outPtr := mload(64)\n let _1 := sub(abi_encode_bytes(param_5, abi_encode_bytes(param_4, abi_encode_bytes(param_3, abi_encode_bytes(param_2, abi_encode_bytes(param_1, abi_encode_bytes(param, add(outPtr, 0x20))))))), outPtr)\n mstore(outPtr, add(_1, /** @src 18:662:666 \"0x01\" */ not(31)))\n /// @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\"\n finalize_allocation(outPtr, _1)\n }\n function checked_sub_uint256(x) -> diff\n {\n diff := add(x, not(26))\n if gt(diff, x) { panic_error_0x11() }\n }\n function bytes_concat_stringliteral_5fe7_bytes_bytes_bytes_bytes_calldata_bytes_bytes_bytes_bytes(param, param_1, param_2, param_3, param_4, param_5, param_6, param_7, param_8) -> outPtr\n {\n outPtr := mload(64)\n mstore(add(outPtr, 0x20), shl(248, 1))\n let _1 := abi_encode_bytes(param_2, abi_encode_bytes(param_1, abi_encode_bytes(param, add(outPtr, 33))))\n calldatacopy(_1, param_3, param_4)\n let _2 := add(_1, param_4)\n mstore(_2, /** @src -1:-1:-1 */ 0)\n /// @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\"\n let _3 := sub(abi_encode_bytes(param_8, abi_encode_bytes(param_7, abi_encode_bytes(param_6, abi_encode_bytes(param_5, _2)))), outPtr)\n mstore(outPtr, add(_3, /** @src 18:662:666 \"0x01\" */ not(31)))\n /// @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\"\n finalize_allocation(outPtr, _3)\n }\n /// @ast-id 628 @src 0:6077:9740 \"function encodeEIP2930TransactionHash(Transaction calldata _transaction) internal view returns (bytes32) {...\"\n function fun_encodeEIP2930TransactionHash(var_transaction_365_offset) -> var\n {\n /// @src 0:6357:6396 \"RLPEncoder.encodeUint256(block.chainid)\"\n let expr_379_mpos := fun_encodeUint256(/** @src 0:6382:6395 \"block.chainid\" */ chainid())\n /// @src 0:6438:6482 \"RLPEncoder.encodeUint256(_transaction.nonce)\"\n let expr_387_mpos := fun_encodeUint256(/** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ calldataload(/** @src 0:6463:6481 \"_transaction.nonce\" */ add(var_transaction_365_offset, 256)))\n /// @src 0:6527:6578 \"RLPEncoder.encodeUint256(_transaction.maxFeePerGas)\"\n let expr_395_mpos := fun_encodeUint256(/** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ calldataload(/** @src 0:6552:6577 \"_transaction.maxFeePerGas\" */ add(var_transaction_365_offset, 160)))\n /// @src 0:6623:6670 \"RLPEncoder.encodeUint256(_transaction.gasLimit)\"\n let expr_403_mpos := fun_encodeUint256(/** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ calldataload(/** @src 0:6648:6669 \"_transaction.gasLimit\" */ add(var_transaction_365_offset, /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ 96)))\n /// @src 0:6709:6768 \"RLPEncoder.encodeAddress(address(uint160(_transaction.to)))\"\n let expr_417_mpos := fun_encodeAddress(/** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ and(calldataload(/** @src 0:6750:6765 \"_transaction.to\" */ add(var_transaction_365_offset, 64)), /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ sub(shl(160, 1), 1)))\n /// @src 0:6895:7106 \"bytes.concat(...\"\n let expr_437_mpos := bytes_concat_bytes_bytes_bytes_bytes_bytes_bytes(expr_379_mpos, expr_387_mpos, expr_395_mpos, expr_403_mpos, expr_417_mpos, /** @src 0:6810:6854 \"RLPEncoder.encodeUint256(_transaction.value)\" */ fun_encodeUint256(/** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ calldataload(/** @src 0:6835:6853 \"_transaction.value\" */ add(var_transaction_365_offset, 288))))\n /// @src 0:7293:7323 \"bytes memory encodedDataLength\"\n let var_encodedDataLength_mpos := /** @src -1:-1:-1 */ 0\n /// @src 0:7293:7323 \"bytes memory encodedDataLength\"\n var_encodedDataLength_mpos := /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ 96\n /// @src 0:7461:7478 \"_transaction.data\"\n let _1 := add(var_transaction_365_offset, 448)\n let expr_449_offset, expr_449_length := access_calldata_tail_bytes_calldata(var_transaction_365_offset, _1)\n /// @src 0:7454:7486 \"uint64(_transaction.data.length)\"\n let expr := /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ and(/** @src 0:7461:7485 \"_transaction.data.length\" */ expr_449_length, /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ 0xffffffffffffffff)\n /// @src 0:7500:7941 \"if (txDataLen != 1) {...\"\n switch /** @src 0:7504:7518 \"txDataLen != 1\" */ iszero(eq(/** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ expr, /** @src 0:7517:7518 \"1\" */ 0x01))\n case /** @src 0:7500:7941 \"if (txDataLen != 1) {...\" */ 0 {\n /// @src 0:7739:7756 \"_transaction.data\"\n let expr_465_offset, expr_465_length := access_calldata_tail_bytes_calldata(var_transaction_365_offset, _1)\n /// @src 0:7735:7941 \"if (_transaction.data[0] >= 0x80) {...\"\n if /** @src 0:7739:7767 \"_transaction.data[0] >= 0x80\" */ iszero(lt(/** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ and(/** @src 0:7739:7759 \"_transaction.data[0]\" */ cleanup_bytes1(calldataload(calldata_array_index_access_bytes_calldata_5129(expr_465_offset, expr_465_length))), /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ shl(248, 255)), shl(255, 1)))\n /// @src 0:7735:7941 \"if (_transaction.data[0] >= 0x80) {...\"\n {\n /// @src 0:7899:7926 \"encodedDataLength = hex\\\"81\\\"\"\n var_encodedDataLength_mpos := /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ copy_literal_to_memory_1fed454f35701d8970ad2ac06907e973314989ab6eb948eda79c00e416c4bdeb()\n }\n }\n default /// @src 0:7500:7941 \"if (txDataLen != 1) {...\"\n {\n /// @src 0:7649:7714 \"encodedDataLength = RLPEncoder.encodeNonSingleBytesLen(txDataLen)\"\n var_encodedDataLength_mpos := /** @src 0:7669:7714 \"RLPEncoder.encodeNonSingleBytesLen(txDataLen)\" */ fun_encodeNonSingleBytesLen(expr)\n }\n /// @src 0:8137:8164 \"RLPEncoder.encodeListLen(0)\"\n let expr_483_mpos := /** @src 15:2171:2196 \"_encodeLength(_len, 0xc0)\" */ fun_encodeLength_5137()\n /// @src 0:8251:8273 \"_transaction.signature\"\n let _2 := add(var_transaction_365_offset, 480)\n let expr_offset, expr_495_length := access_calldata_tail_bytes_calldata(var_transaction_365_offset, _2)\n /// @src 0:8251:8279 \"_transaction.signature[0:32]\"\n let expr_498_offset, expr_498_length := calldata_array_index_range_access_bytes_calldata(expr_offset, expr_495_length)\n /// @src 0:8306:8336 \"RLPEncoder.encodeUint256(rInt)\"\n let expr_506_mpos := fun_encodeUint256(/** @src 0:8243:8280 \"bytes32(_transaction.signature[0:32])\" */ convert_bytes_to_fixedbytes_from_bytes_calldata_to_bytes32(expr_498_offset, expr_498_length))\n /// @src 0:8432:8454 \"_transaction.signature\"\n let expr_520_offset, expr_520_length := access_calldata_tail_bytes_calldata(var_transaction_365_offset, _2)\n /// @src 0:8432:8461 \"_transaction.signature[32:64]\"\n let expr_523_offset, expr_523_length := calldata_array_index_range_access_bytes_calldata_5131(expr_520_offset, expr_520_length)\n /// @src 0:8488:8518 \"RLPEncoder.encodeUint256(sInt)\"\n let expr_531_mpos := fun_encodeUint256(/** @src 0:8424:8462 \"bytes32(_transaction.signature[32:64])\" */ convert_bytes_to_fixedbytes_from_bytes_calldata_to_bytes32(expr_523_offset, expr_523_length))\n /// @src 0:8612:8634 \"_transaction.signature\"\n let expr_545_offset, expr_545_length := access_calldata_tail_bytes_calldata(var_transaction_365_offset, _2)\n /// @src 0:8598:8640 \"uint256(uint8(_transaction.signature[64]))\"\n let expr_1 := convert_uint8_to_uint256(/** @src 0:8606:8639 \"uint8(_transaction.signature[64])\" */ convert_bytes1_to_uint8(/** @src 0:8612:8638 \"_transaction.signature[64]\" */ cleanup_bytes1(calldataload(calldata_array_index_access_bytes_calldata(expr_545_offset, expr_545_length)))))\n /// @src 0:8662:8686 \"vInt == 27 || vInt == 28\"\n let expr_2 := /** @src 0:8662:8672 \"vInt == 27\" */ eq(expr_1, /** @src 0:8670:8672 \"27\" */ 0x1b)\n /// @src 0:8662:8686 \"vInt == 27 || vInt == 28\"\n if iszero(expr_2)\n {\n expr_2 := /** @src 0:8676:8686 \"vInt == 28\" */ eq(expr_1, /** @src 0:8684:8686 \"28\" */ 0x1c)\n }\n /// @src 0:8654:8706 \"require(vInt == 27 || vInt == 28, \\\"Invalid v value\\\")\"\n require_helper_stringliteral_f613(expr_2)\n /// @src 0:8732:8767 \"RLPEncoder.encodeUint256(vInt - 27)\"\n let expr_568_mpos := fun_encodeUint256(/** @src 0:8757:8766 \"vInt - 27\" */ checked_sub_uint256(expr_1))\n /// @src 0:8873:8904 \"encodedFixedLengthParams.length\"\n let expr_3 := /** @src 18:662:666 \"0x01\" */ mload(/** @src 0:8873:8904 \"encodedFixedLengthParams.length\" */ expr_437_mpos)\n /// @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\"\n let sum := add(expr_3, /** @src 18:662:666 \"0x01\" */ mload(/** @src 0:8923:8947 \"encodedDataLength.length\" */ var_encodedDataLength_mpos))\n /// @src 0:8966:8983 \"_transaction.data\"\n let expr_583_offset, expr_583_length := access_calldata_tail_bytes_calldata(var_transaction_365_offset, _1)\n /// @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\"\n let sum_1 := add(add(/** @src 0:8873:8990 \"encodedFixedLengthParams.length +...\" */ sum, /** @src 0:8966:8990 \"_transaction.data.length\" */ expr_583_length), /** @src 18:662:666 \"0x01\" */ mload(/** @src 0:9009:9039 \"encodedAccessListLength.length\" */ expr_483_mpos))\n /// @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\"\n let sum_2 := add(sum_1, /** @src 18:662:666 \"0x01\" */ mload(/** @src 0:9058:9073 \"rEncoded.length\" */ expr_506_mpos))\n /// @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\"\n let sum_3 := add(sum_2, /** @src 18:662:666 \"0x01\" */ mload(/** @src 0:9092:9107 \"sEncoded.length\" */ expr_531_mpos))\n /// @src 15:2164:2196 \"return _encodeLength(_len, 0xc0)\"\n let var_mpos := /** @src 15:2171:2196 \"_encodeLength(_len, 0xc0)\" */ fun_encodeLength(/** @src 0:9277:9295 \"uint64(listLength)\" */ convert_uint256_to_uint64(/** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ add(sum_3, /** @src 18:662:666 \"0x01\" */ mload(/** @src 0:9126:9141 \"vEncoded.length\" */ expr_568_mpos))))\n /// @src 0:9549:9566 \"_transaction.data\"\n let expr_619_offset, expr_619_length := access_calldata_tail_bytes_calldata(var_transaction_365_offset, _1)\n /// @src 0:9363:9719 \"bytes.concat(...\"\n let expr_624_mpos := bytes_concat_stringliteral_5fe7_bytes_bytes_bytes_bytes_calldata_bytes_bytes_bytes_bytes(var_mpos, expr_437_mpos, var_encodedDataLength_mpos, expr_619_offset, expr_619_length, expr_483_mpos, expr_568_mpos, expr_506_mpos, expr_531_mpos)\n /// @src 0:9317:9733 \"return...\"\n var := /** @src 0:9336:9733 \"keccak256(...\" */ keccak256(/** @src 18:662:666 \"0x01\" */ add(/** @src 0:9336:9733 \"keccak256(...\" */ expr_624_mpos, /** @src 0:8276:8278 \"32\" */ 0x20), /** @src 18:662:666 \"0x01\" */ mload(/** @src 0:9336:9733 \"keccak256(...\" */ expr_624_mpos))\n }\n /// @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\"\n function bytes_concat_bytes_bytes_bytes_bytes_bytes_bytes_bytes(param, param_1, param_2, param_3, param_4, param_5, param_6) -> outPtr\n {\n outPtr := mload(64)\n let _1 := sub(abi_encode_bytes(param_6, abi_encode_bytes(param_5, abi_encode_bytes(param_4, abi_encode_bytes(param_3, abi_encode_bytes(param_2, abi_encode_bytes(param_1, abi_encode_bytes(param, add(outPtr, 0x20)))))))), outPtr)\n mstore(outPtr, add(_1, /** @src 18:662:666 \"0x01\" */ not(31)))\n /// @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\"\n finalize_allocation(outPtr, _1)\n }\n function bytes_concat_stringliteral_f2ee_bytes_bytes_bytes_bytes_calldata_bytes_bytes_bytes_bytes(param, param_1, param_2, param_3, param_4, param_5, param_6, param_7, param_8) -> outPtr\n {\n outPtr := mload(64)\n mstore(add(outPtr, 0x20), shl(249, 1))\n let _1 := abi_encode_bytes(param_2, abi_encode_bytes(param_1, abi_encode_bytes(param, add(outPtr, 33))))\n calldatacopy(_1, param_3, param_4)\n let _2 := add(_1, param_4)\n mstore(_2, /** @src -1:-1:-1 */ 0)\n /// @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\"\n let _3 := sub(abi_encode_bytes(param_8, abi_encode_bytes(param_7, abi_encode_bytes(param_6, abi_encode_bytes(param_5, _2)))), outPtr)\n mstore(outPtr, add(_3, /** @src 18:662:666 \"0x01\" */ not(31)))\n /// @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\"\n finalize_allocation(outPtr, _3)\n }\n /// @ast-id 904 @src 0:9914:13901 \"function encodeEIP1559TransactionHash(Transaction calldata _transaction) internal view returns (bytes32) {...\"\n function fun_encodeEIP1559TransactionHash(var_transaction_632_offset) -> var\n {\n /// @src 0:10349:10388 \"RLPEncoder.encodeUint256(block.chainid)\"\n let expr_646_mpos := fun_encodeUint256(/** @src 0:10374:10387 \"block.chainid\" */ chainid())\n /// @src 0:10430:10474 \"RLPEncoder.encodeUint256(_transaction.nonce)\"\n let expr_654_mpos := fun_encodeUint256(/** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ calldataload(/** @src 0:10455:10473 \"_transaction.nonce\" */ add(var_transaction_632_offset, 256)))\n /// @src 0:10531:10590 \"RLPEncoder.encodeUint256(_transaction.maxPriorityFeePerGas)\"\n let expr_662_mpos := fun_encodeUint256(/** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ calldataload(/** @src 0:10556:10589 \"_transaction.maxPriorityFeePerGas\" */ add(var_transaction_632_offset, 192)))\n /// @src 0:10639:10690 \"RLPEncoder.encodeUint256(_transaction.maxFeePerGas)\"\n let expr_670_mpos := fun_encodeUint256(/** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ calldataload(/** @src 0:10664:10689 \"_transaction.maxFeePerGas\" */ add(var_transaction_632_offset, 160)))\n /// @src 0:10735:10782 \"RLPEncoder.encodeUint256(_transaction.gasLimit)\"\n let expr_678_mpos := fun_encodeUint256(/** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ calldataload(/** @src 0:10760:10781 \"_transaction.gasLimit\" */ add(var_transaction_632_offset, /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ 96)))\n /// @src 0:10821:10880 \"RLPEncoder.encodeAddress(address(uint160(_transaction.to)))\"\n let expr_692_mpos := fun_encodeAddress(/** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ and(calldataload(/** @src 0:10862:10877 \"_transaction.to\" */ add(var_transaction_632_offset, 64)), /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ sub(shl(160, 1), 1)))\n /// @src 0:11007:11267 \"bytes.concat(...\"\n let expr_713_mpos := bytes_concat_bytes_bytes_bytes_bytes_bytes_bytes_bytes(expr_646_mpos, expr_654_mpos, expr_662_mpos, expr_670_mpos, expr_678_mpos, expr_692_mpos, /** @src 0:10922:10966 \"RLPEncoder.encodeUint256(_transaction.value)\" */ fun_encodeUint256(/** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ calldataload(/** @src 0:10947:10965 \"_transaction.value\" */ add(var_transaction_632_offset, 288))))\n /// @src 0:11454:11484 \"bytes memory encodedDataLength\"\n let var_encodedDataLength_718_mpos := /** @src -1:-1:-1 */ 0\n /// @src 0:11454:11484 \"bytes memory encodedDataLength\"\n var_encodedDataLength_718_mpos := /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ 96\n /// @src 0:11622:11639 \"_transaction.data\"\n let _1 := add(var_transaction_632_offset, 448)\n let expr_725_offset, expr_725_length := access_calldata_tail_bytes_calldata(var_transaction_632_offset, _1)\n /// @src 0:11615:11647 \"uint64(_transaction.data.length)\"\n let expr := /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ and(/** @src 0:11622:11646 \"_transaction.data.length\" */ expr_725_length, /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ 0xffffffffffffffff)\n /// @src 0:11661:12102 \"if (txDataLen != 1) {...\"\n switch /** @src 0:11665:11679 \"txDataLen != 1\" */ iszero(eq(/** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ expr, /** @src 0:11678:11679 \"1\" */ 0x01))\n case /** @src 0:11661:12102 \"if (txDataLen != 1) {...\" */ 0 {\n /// @src 0:11900:11917 \"_transaction.data\"\n let expr_741_offset, expr_741_length := access_calldata_tail_bytes_calldata(var_transaction_632_offset, _1)\n /// @src 0:11896:12102 \"if (_transaction.data[0] >= 0x80) {...\"\n if /** @src 0:11900:11928 \"_transaction.data[0] >= 0x80\" */ iszero(lt(/** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ and(/** @src 0:11900:11920 \"_transaction.data[0]\" */ cleanup_bytes1(calldataload(calldata_array_index_access_bytes_calldata_5129(expr_741_offset, expr_741_length))), /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ shl(248, 255)), shl(255, 1)))\n /// @src 0:11896:12102 \"if (_transaction.data[0] >= 0x80) {...\"\n {\n /// @src 0:12060:12087 \"encodedDataLength = hex\\\"81\\\"\"\n var_encodedDataLength_718_mpos := /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ copy_literal_to_memory_1fed454f35701d8970ad2ac06907e973314989ab6eb948eda79c00e416c4bdeb()\n }\n }\n default /// @src 0:11661:12102 \"if (txDataLen != 1) {...\"\n {\n /// @src 0:11810:11875 \"encodedDataLength = RLPEncoder.encodeNonSingleBytesLen(txDataLen)\"\n var_encodedDataLength_718_mpos := /** @src 0:11830:11875 \"RLPEncoder.encodeNonSingleBytesLen(txDataLen)\" */ fun_encodeNonSingleBytesLen(expr)\n }\n /// @src 0:12298:12325 \"RLPEncoder.encodeListLen(0)\"\n let expr_759_mpos := /** @src 15:2171:2196 \"_encodeLength(_len, 0xc0)\" */ fun_encodeLength_5137()\n /// @src 0:12412:12434 \"_transaction.signature\"\n let _2 := add(var_transaction_632_offset, 480)\n let expr_771_offset, expr_771_length := access_calldata_tail_bytes_calldata(var_transaction_632_offset, _2)\n /// @src 0:12412:12440 \"_transaction.signature[0:32]\"\n let expr_774_offset, expr_774_length := calldata_array_index_range_access_bytes_calldata(expr_771_offset, expr_771_length)\n /// @src 0:12467:12497 \"RLPEncoder.encodeUint256(rInt)\"\n let expr_782_mpos := fun_encodeUint256(/** @src 0:12404:12441 \"bytes32(_transaction.signature[0:32])\" */ convert_bytes_to_fixedbytes_from_bytes_calldata_to_bytes32(expr_774_offset, expr_774_length))\n /// @src 0:12593:12615 \"_transaction.signature\"\n let expr_796_offset, expr_796_length := access_calldata_tail_bytes_calldata(var_transaction_632_offset, _2)\n /// @src 0:12593:12622 \"_transaction.signature[32:64]\"\n let expr_799_offset, expr_799_length := calldata_array_index_range_access_bytes_calldata_5131(expr_796_offset, expr_796_length)\n /// @src 0:12649:12679 \"RLPEncoder.encodeUint256(sInt)\"\n let expr_807_mpos := fun_encodeUint256(/** @src 0:12585:12623 \"bytes32(_transaction.signature[32:64])\" */ convert_bytes_to_fixedbytes_from_bytes_calldata_to_bytes32(expr_799_offset, expr_799_length))\n /// @src 0:12773:12795 \"_transaction.signature\"\n let expr_821_offset, expr_821_length := access_calldata_tail_bytes_calldata(var_transaction_632_offset, _2)\n /// @src 0:12759:12801 \"uint256(uint8(_transaction.signature[64]))\"\n let expr_1 := convert_uint8_to_uint256(/** @src 0:12767:12800 \"uint8(_transaction.signature[64])\" */ convert_bytes1_to_uint8(/** @src 0:12773:12799 \"_transaction.signature[64]\" */ cleanup_bytes1(calldataload(calldata_array_index_access_bytes_calldata(expr_821_offset, expr_821_length)))))\n /// @src 0:12823:12847 \"vInt == 27 || vInt == 28\"\n let expr_2 := /** @src 0:12823:12833 \"vInt == 27\" */ eq(expr_1, /** @src 0:12831:12833 \"27\" */ 0x1b)\n /// @src 0:12823:12847 \"vInt == 27 || vInt == 28\"\n if iszero(expr_2)\n {\n expr_2 := /** @src 0:12837:12847 \"vInt == 28\" */ eq(expr_1, /** @src 0:12845:12847 \"28\" */ 0x1c)\n }\n /// @src 0:12815:12867 \"require(vInt == 27 || vInt == 28, \\\"Invalid v value\\\")\"\n require_helper_stringliteral_f613(expr_2)\n /// @src 0:12893:12928 \"RLPEncoder.encodeUint256(vInt - 27)\"\n let expr_844_mpos := fun_encodeUint256(/** @src 0:12918:12927 \"vInt - 27\" */ checked_sub_uint256(expr_1))\n /// @src 0:13034:13065 \"encodedFixedLengthParams.length\"\n let expr_3 := /** @src 18:662:666 \"0x01\" */ mload(/** @src 0:13034:13065 \"encodedFixedLengthParams.length\" */ expr_713_mpos)\n /// @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\"\n let sum := add(expr_3, /** @src 18:662:666 \"0x01\" */ mload(/** @src 0:13084:13108 \"encodedDataLength.length\" */ var_encodedDataLength_718_mpos))\n /// @src 0:13127:13144 \"_transaction.data\"\n let expr_859_offset, expr_859_length := access_calldata_tail_bytes_calldata(var_transaction_632_offset, _1)\n /// @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\"\n let sum_1 := add(add(/** @src 0:13034:13151 \"encodedFixedLengthParams.length +...\" */ sum, /** @src 0:13127:13151 \"_transaction.data.length\" */ expr_859_length), /** @src 18:662:666 \"0x01\" */ mload(/** @src 0:13170:13200 \"encodedAccessListLength.length\" */ expr_759_mpos))\n /// @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\"\n let sum_2 := add(sum_1, /** @src 18:662:666 \"0x01\" */ mload(/** @src 0:13219:13234 \"rEncoded.length\" */ expr_782_mpos))\n /// @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\"\n let sum_3 := add(sum_2, /** @src 18:662:666 \"0x01\" */ mload(/** @src 0:13253:13268 \"sEncoded.length\" */ expr_807_mpos))\n /// @src 15:2164:2196 \"return _encodeLength(_len, 0xc0)\"\n let var__mpos := /** @src 15:2171:2196 \"_encodeLength(_len, 0xc0)\" */ fun_encodeLength(/** @src 0:13438:13456 \"uint64(listLength)\" */ convert_uint256_to_uint64(/** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ add(sum_3, /** @src 18:662:666 \"0x01\" */ mload(/** @src 0:13287:13302 \"vEncoded.length\" */ expr_844_mpos))))\n /// @src 0:13710:13727 \"_transaction.data\"\n let expr_895_offset, expr_895_length := access_calldata_tail_bytes_calldata(var_transaction_632_offset, _1)\n /// @src 0:13524:13880 \"bytes.concat(...\"\n let expr_900_mpos := bytes_concat_stringliteral_f2ee_bytes_bytes_bytes_bytes_calldata_bytes_bytes_bytes_bytes(var__mpos, expr_713_mpos, var_encodedDataLength_718_mpos, expr_895_offset, expr_895_length, expr_759_mpos, expr_844_mpos, expr_782_mpos, expr_807_mpos)\n /// @src 0:13478:13894 \"return...\"\n var := /** @src 0:13497:13894 \"keccak256(...\" */ keccak256(/** @src 18:662:666 \"0x01\" */ add(/** @src 0:13497:13894 \"keccak256(...\" */ expr_900_mpos, /** @src 0:12437:12439 \"32\" */ 0x20), /** @src 18:662:666 \"0x01\" */ mload(/** @src 0:13497:13894 \"keccak256(...\" */ expr_900_mpos))\n }\n /// @src 1:2560:2599 \"address(SYSTEM_CONTRACTS_OFFSET + 0x10)\"\n function require_helper_stringliteral_74fb(condition)\n {\n if iszero(condition)\n {\n let memPtr := /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ mload(64)\n /// @src 1:2560:2599 \"address(SYSTEM_CONTRACTS_OFFSET + 0x10)\"\n mstore(memPtr, /** @src 0:1664:1693 \"revert(\\\"Unsupported tx type\\\")\" */ shl(229, 4594637))\n /// @src 1:2560:2599 \"address(SYSTEM_CONTRACTS_OFFSET + 0x10)\"\n mstore(add(memPtr, 4), 32)\n /// @src 18:662:666 \"0x01\"\n mstore(/** @src 1:2560:2599 \"address(SYSTEM_CONTRACTS_OFFSET + 0x10)\" */ add(memPtr, 36), 31)\n mstore(/** @src 18:662:666 \"0x01\" */ add(/** @src 1:2560:2599 \"address(SYSTEM_CONTRACTS_OFFSET + 0x10)\" */ memPtr, /** @src 18:662:666 \"0x01\" */ 68), /** @src 1:2560:2599 \"address(SYSTEM_CONTRACTS_OFFSET + 0x10)\" */ \"keccak256 returned invalid data\")\n revert(memPtr, 100)\n }\n }\n function convert_bytes_to_fixedbytes_from_bytes_to_bytes32(array) -> value\n {\n let length := /** @src 18:662:666 \"0x01\" */ mload(/** @src 1:2560:2599 \"address(SYSTEM_CONTRACTS_OFFSET + 0x10)\" */ array)\n value := mload(/** @src 18:662:666 \"0x01\" */ add(/** @src 1:2560:2599 \"address(SYSTEM_CONTRACTS_OFFSET + 0x10)\" */ array, /** @src 18:662:666 \"0x01\" */ 0x20))\n /// @src 1:2560:2599 \"address(SYSTEM_CONTRACTS_OFFSET + 0x10)\"\n if lt(length, /** @src 18:662:666 \"0x01\" */ 0x20)\n /// @src 1:2560:2599 \"address(SYSTEM_CONTRACTS_OFFSET + 0x10)\"\n {\n value := and(value, /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ shl(/** @src 1:2560:2599 \"address(SYSTEM_CONTRACTS_OFFSET + 0x10)\" */ shl(3, sub(/** @src 18:662:666 \"0x01\" */ 0x20, /** @src 1:2560:2599 \"address(SYSTEM_CONTRACTS_OFFSET + 0x10)\" */ length)), /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ not(0)))\n }\n }\n /// @ast-id 1743 @src 14:2227:2508 \"function keccak(bytes calldata _data) internal view returns (bytes32) {...\"\n function fun_keccak(var_data_offset, var_data_length) -> var\n {\n /// @src 14:2344:2353 \"gasleft()\"\n let expr := gas()\n /// @src -1:-1:-1\n let _1 := 0\n /// @src 16:2936:3014 \"assembly {...\"\n let _2 := 0xFFFF\n pop(staticcall(/** @src -1:-1:-1 */ _1, /** @src 17:1878:1892 \"(1 << 16) - 21\" */ 0xffeb, /** @src -1:-1:-1 */ _1, /** @src 16:2936:3014 \"assembly {...\" */ _2, /** @src -1:-1:-1 */ _1, _1))\n /// @src 14:11637:12335 \"if (_data.length == 0) {...\"\n switch /** @src 14:11641:11658 \"_data.length == 0\" */ iszero(var_data_length)\n case /** @src 14:11637:12335 \"if (_data.length == 0) {...\" */ 0 {\n /// @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\"\n let _3 := 0xffffffff\n /// @src 16:4007:4221 \"assembly {...\"\n pop(staticcall(/** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ and(/** @src 14:12073:12091 \"uint32(dataOffset)\" */ var_data_offset, /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ _3), /** @src 17:2051:2065 \"(1 << 16) - 23\" */ 0xffe9, /** @src -1:-1:-1 */ _1, /** @src 16:2936:3014 \"assembly {...\" */ _2, /** @src -1:-1:-1 */ _1, _1))\n /// @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\"\n let sum := add(var_data_length, var_data_offset)\n if gt(var_data_length, sum) { panic_error_0x11() }\n let diff := sub(/** @src 14:12214:12222 \"msg.data\" */ calldatasize(), /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ sum)\n if gt(diff, /** @src 14:12214:12222 \"msg.data\" */ calldatasize())\n /// @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\"\n { panic_error_0x11() }\n /// @src 14:12315:12323 \"shrinkTo\"\n fun_ptrShrinkIntoActive(/** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ and(/** @src 14:12214:12259 \"msg.data.length - (_data.length + dataOffset)\" */ diff, /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ _3))\n }\n default /// @src 14:11637:12335 \"if (_data.length == 0) {...\"\n {\n /// @src 14:11791:11814 \"uint32(msg.data.length)\"\n fun_ptrShrinkIntoActive(/** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ and(/** @src 14:11798:11806 \"msg.data\" */ calldatasize(), /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ 0xffffffff))\n }\n if /** @src 19:857:879 \"_x <= type(uint32).max\" */ gt(expr, /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ 0xffffffff)\n {\n let memPtr := mload(64)\n mstore(memPtr, /** @src 0:1664:1693 \"revert(\\\"Unsupported tx type\\\")\" */ shl(229, 4594637))\n /// @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\"\n mstore(add(memPtr, 4), 32)\n /// @src 18:662:666 \"0x01\"\n mstore(/** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ add(memPtr, 36), 8)\n mstore(/** @src 18:662:666 \"0x01\" */ add(/** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ memPtr, /** @src 18:662:666 \"0x01\" */ 68), /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ \"Overflow\")\n revert(memPtr, 100)\n }\n /// @src 14:12715:12725 \"farCallAbi\"\n fun_ptrPackIntoActivePtr(/** @src 17:11333:11394 \"farCallAbiWithEmptyFatPtr |= (uint256(forwardingMode) << 224)\" */ or(/** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ and(shl(/** @src 17:11319:11322 \"192\" */ 0xc0, /** @src 19:910:920 \"uint32(_x)\" */ expr), /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ shl(192, 0xffffffff)), shl(224, 1)))\n /// @src 14:4182:4221 \"returnData = _verifyCallResult(success)\"\n let var_returnData_mpos := /** @src 14:4195:4221 \"_verifyCallResult(success)\" */ fun_verifyCallResult(/** @src 14:7809:7900 \"assembly {...\" */ staticcall(/** @src 1:682:688 \"0x8000\" */ 32784, /** @src 17:1076:1090 \"(1 << 16) - 10\" */ 0xfff6, /** @src -1:-1:-1 */ _1, /** @src 16:2936:3014 \"assembly {...\" */ _2, /** @src -1:-1:-1 */ _1, _1))\n /// @src 14:2398:2465 \"require(returnData.length == 32, \\\"keccak256 returned invalid data\\\")\"\n require_helper_stringliteral_74fb(/** @src 14:2406:2429 \"returnData.length == 32\" */ eq(/** @src 18:662:666 \"0x01\" */ mload(/** @src 14:2406:2423 \"returnData.length\" */ var_returnData_mpos), /** @src 14:2427:2429 \"32\" */ 0x20))\n /// @src 14:2475:2501 \"return bytes32(returnData)\"\n var := /** @src 14:2482:2501 \"bytes32(returnData)\" */ convert_bytes_to_fixedbytes_from_bytes_to_bytes32(var_returnData_mpos)\n }\n /// @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\"\n function allocate_and_zero_memory_array_bytes_5154() -> memPtr\n {\n let memPtr_1 := mload(64)\n finalize_allocation_8941(memPtr_1)\n mstore(memPtr_1, /** @src 15:860:861 \"1\" */ 0x01)\n /// @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\"\n memPtr := memPtr_1\n calldatacopy(add(memPtr_1, 0x20), calldatasize(), 0x20)\n }\n function allocate_and_zero_memory_array_bytes(length) -> memPtr\n {\n let _1 := array_allocation_size_string(length)\n let memPtr_1 := mload(64)\n finalize_allocation(memPtr_1, _1)\n mstore(memPtr_1, length)\n memPtr := memPtr_1\n calldatacopy(add(memPtr_1, 32), calldatasize(), add(array_allocation_size_string(length), /** @src 18:662:666 \"0x01\" */ not(31)))\n }\n /// @ast-id 2068 @src 14:10097:10522 \"function _verifyCallResult(bool _success) private pure returns (bytes memory returnData) {...\"\n function fun_verifyCallResult(var_success) -> var_returnData_mpos\n {\n /// @src 14:10161:10184 \"bytes memory returnData\"\n var_returnData_mpos := /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ 96\n /// @src 14:10196:10516 \"if (_success) {...\"\n switch var_success\n case 0 {\n /// @src 14:10657:10785 \"assembly {...\"\n let usr$size := returndatasize()\n returndatacopy(0, 0, usr$size)\n revert(0, usr$size)\n }\n default /// @src 14:10196:10516 \"if (_success) {...\"\n {\n /// @src 14:10250:10315 \"assembly {...\"\n let var_size := returndatasize()\n /// @src 14:10329:10357 \"returnData = new bytes(size)\"\n var_returnData_mpos := /** @src 14:10342:10357 \"new bytes(size)\" */ allocate_and_zero_memory_array_bytes(var_size)\n /// @src 14:10371:10458 \"assembly {...\"\n returndatacopy(add(var_returnData_mpos, 0x20), /** @src -1:-1:-1 */ 0, /** @src 14:10371:10458 \"assembly {...\" */ var_size)\n }\n }\n /// @ast-id 2195 @src 15:83:684 \"function encodeAddress(address _val) internal pure returns (bytes memory encoded) {...\"\n function fun_encodeAddress(var_val) -> var_encoded_2177_mpos\n {\n /// @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\"\n let memPtr := mload(64)\n finalize_allocation_8941(memPtr)\n mstore(memPtr, /** @src 15:296:300 \"0x15\" */ 0x15)\n /// @src 15:276:301 \"encoded = new bytes(0x15)\"\n var_encoded_2177_mpos := memPtr\n /// @src 15:356:678 \"assembly {...\"\n mstore(/** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ add(memPtr, 0x20), /** @src 15:356:678 \"assembly {...\" */ shl(250, 37))\n mstore(add(memPtr, 0x21), /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ and(shl(96, /** @src 15:333:346 \"bytes20(_val)\" */ var_val), /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ not(0xffffffffffffffffffffffff)))\n }\n function memory_array_index_access_bytes(baseRef) -> addr\n {\n if iszero(/** @src 18:662:666 \"0x01\" */ mload(/** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ baseRef)) { panic_error_0x32() }\n addr := add(baseRef, 32)\n }\n /// @ast-id 2286 @src 15:690:1458 \"function encodeUint256(uint256 _val) internal pure returns (bytes memory encoded) {...\"\n function fun_encodeUint256(var__val) -> var_encoded_mpos\n {\n /// @src 15:806:1442 \"if (_val < 128) {...\"\n switch /** @src 15:810:820 \"_val < 128\" */ lt(var__val, /** @src 15:817:820 \"128\" */ 0x80)\n case /** @src 15:806:1442 \"if (_val < 128) {...\" */ 0 {\n /// @src 15:1101:1122 \"_highestByteSet(_val)\"\n let expr := fun_highestByteSet(var__val)\n /// @src 15:1141:1169 \"encoded = new bytes(hbs + 2)\"\n var_encoded_mpos := /** @src 15:1151:1169 \"new bytes(hbs + 2)\" */ allocate_and_zero_memory_array_bytes(/** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ add(/** @src 15:1161:1168 \"hbs + 2\" */ expr, /** @src 15:1167:1168 \"2\" */ 0x02))\n /// @src 15:1187:1225 \"encoded[0] = bytes1(uint8(hbs + 0x81))\"\n mstore8(memory_array_index_access_bytes(var_encoded_mpos), byte(/** @src 15:1195:1196 \"0\" */ 0x00, /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ and(shl(248, add(/** @src 15:1213:1223 \"hbs + 0x81\" */ expr, /** @src 15:1219:1223 \"0x81\" */ 0x81)), /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ shl(248, 255))))\n /// @src 15:1341:1428 \"assembly {...\"\n mstore(add(var_encoded_mpos, 0x21), /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ shl(shl(3, sub(/** @src 15:1258:1260 \"31\" */ 0x1f, /** @src 15:1258:1266 \"31 - hbs\" */ expr)), /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ var__val))\n }\n default /// @src 15:806:1442 \"if (_val < 128) {...\"\n {\n /// @src 15:840:862 \"encoded = new bytes(1)\"\n var_encoded_mpos := /** @src 15:850:862 \"new bytes(1)\" */ allocate_and_zero_memory_array_bytes_5154()\n /// @src 15:994:1048 \"(_val == 0) ? bytes1(uint8(128)) : bytes1(uint8(_val))\"\n let expr_1 := /** @src 15:1003:1004 \"0\" */ 0x00\n /// @src 15:994:1048 \"(_val == 0) ? bytes1(uint8(128)) : bytes1(uint8(_val))\"\n switch /** @src 15:995:1004 \"_val == 0\" */ iszero(var__val)\n case /** @src 15:994:1048 \"(_val == 0) ? bytes1(uint8(128)) : bytes1(uint8(_val))\" */ 0 {\n expr_1 := /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ and(shl(248, /** @src 15:1036:1047 \"uint8(_val)\" */ var__val), /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ shl(248, 255))\n }\n default /// @src 15:994:1048 \"(_val == 0) ? bytes1(uint8(128)) : bytes1(uint8(_val))\"\n {\n expr_1 := /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ shl(255, 1)\n }\n /// @src 15:981:1048 \"encoded[0] = (_val == 0) ? bytes1(uint8(128)) : bytes1(uint8(_val))\"\n mstore8(memory_array_index_access_bytes(var_encoded_mpos), byte(/** @src 15:1003:1004 \"0\" */ 0x00, /** @src 15:981:1048 \"encoded[0] = (_val == 0) ? bytes1(uint8(128)) : bytes1(uint8(_val))\" */ expr_1))\n }\n }\n /// @ast-id 2306 @src 15:1734:1893 \"function encodeNonSingleBytesLen(uint64 _len) internal pure returns (bytes memory) {...\"\n function fun_encodeNonSingleBytesLen(var_len) -> var_mpos\n {\n /// @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\"\n let _1 := and(/** @src 15:1834:1843 \"_len != 1\" */ var_len, /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ 0xffffffffffffffff)\n if /** @src 15:1834:1843 \"_len != 1\" */ eq(/** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ _1, /** @src 15:1842:1843 \"1\" */ 0x01)\n /// @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\"\n {\n mstore(0, /** @src 18:662:666 \"0x01\" */ shl(224, 0x4e487b71))\n /// @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\"\n mstore(4, /** @src 15:1842:1843 \"1\" */ 0x01)\n /// @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\"\n revert(0, 0x24)\n }\n /// @src 15:1861:1886 \"_encodeLength(_len, 0x80)\"\n let var_encoded_mpos := /** @src -1:-1:-1 */ 0\n /// @src 15:2340:2875 \"if (_len < 56) {...\"\n switch /** @src 15:2344:2353 \"_len < 56\" */ lt(/** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ _1, /** @src 15:2351:2353 \"56\" */ 0x38)\n case /** @src 15:2340:2875 \"if (_len < 56) {...\" */ 0 {\n /// @src 15:2508:2538 \"_highestByteSet(uint256(_len))\"\n let expr := fun_highestByteSet(_1)\n /// @src 15:2557:2585 \"encoded = new bytes(hbs + 2)\"\n var_encoded_mpos := /** @src 15:2567:2585 \"new bytes(hbs + 2)\" */ allocate_and_zero_memory_array_bytes(/** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ add(/** @src 15:2577:2584 \"hbs + 2\" */ expr, /** @src 15:2583:2584 \"2\" */ 0x02))\n /// @src 15:2603:2649 \"encoded[0] = bytes1(uint8(_offset + hbs + 56))\"\n mstore8(memory_array_index_access_bytes(var_encoded_mpos), byte(/** @src -1:-1:-1 */ 0, /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ and(shl(248, add(/** @src 15:2629:2642 \"_offset + hbs\" */ expr, /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ 184)), shl(248, 255))))\n /// @src 15:2774:2861 \"assembly {...\"\n mstore(add(var_encoded_mpos, 0x21), /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ shl(shl(3, sub(/** @src 15:2682:2684 \"31\" */ 0x1f, /** @src 15:2682:2690 \"31 - hbs\" */ expr)), /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ _1))\n }\n default /// @src 15:2340:2875 \"if (_len < 56) {...\"\n {\n /// @src 15:2373:2395 \"encoded = new bytes(1)\"\n var_encoded_mpos := /** @src 15:2383:2395 \"new bytes(1)\" */ allocate_and_zero_memory_array_bytes_5154()\n /// @src 15:2413:2455 \"encoded[0] = bytes1(uint8(_len + _offset))\"\n mstore8(memory_array_index_access_bytes(var_encoded_mpos), byte(/** @src -1:-1:-1 */ 0, /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ and(shl(248, add(_1, /** @src 15:1881:1885 \"0x80\" */ 0x80)), /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ shl(248, 255))))\n }\n /// @src 15:1854:1886 \"return _encodeLength(_len, 0x80)\"\n var_mpos := var_encoded_mpos\n }\n /// @ast-id 2411 @src 15:2209:2891 \"function _encodeLength(uint64 _len, uint256 _offset) private pure returns (bytes memory encoded) {...\"\n function fun_encodeLength_5137() -> var_encoded_mpos\n {\n /// @src 15:2373:2395 \"encoded = new bytes(1)\"\n var_encoded_mpos := /** @src 15:2383:2395 \"new bytes(1)\" */ allocate_and_zero_memory_array_bytes_5154()\n /// @src 15:2413:2455 \"encoded[0] = bytes1(uint8(_len + _offset))\"\n mstore8(memory_array_index_access_bytes(var_encoded_mpos), /** @src 15:2191:2195 \"0xc0\" */ 0xc0)\n }\n /// @ast-id 2411 @src 15:2209:2891 \"function _encodeLength(uint64 _len, uint256 _offset) private pure returns (bytes memory encoded) {...\"\n function fun_encodeLength(var_len) -> var_encoded_mpos\n {\n /// @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\"\n let _1 := and(/** @src 15:2344:2353 \"_len < 56\" */ var_len, /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ 0xffffffffffffffff)\n /// @src 15:2340:2875 \"if (_len < 56) {...\"\n switch /** @src 15:2344:2353 \"_len < 56\" */ lt(/** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ _1, /** @src 15:2351:2353 \"56\" */ 0x38)\n case /** @src 15:2340:2875 \"if (_len < 56) {...\" */ 0 {\n /// @src 15:2508:2538 \"_highestByteSet(uint256(_len))\"\n let expr := fun_highestByteSet(_1)\n /// @src 15:2557:2585 \"encoded = new bytes(hbs + 2)\"\n var_encoded_mpos := /** @src 15:2567:2585 \"new bytes(hbs + 2)\" */ allocate_and_zero_memory_array_bytes(/** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ add(/** @src 15:2577:2584 \"hbs + 2\" */ expr, /** @src 15:2583:2584 \"2\" */ 0x02))\n /// @src 15:2603:2649 \"encoded[0] = bytes1(uint8(_offset + hbs + 56))\"\n mstore8(memory_array_index_access_bytes(var_encoded_mpos), byte(/** @src 15:2611:2612 \"0\" */ 0x00, /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ and(shl(248, add(/** @src 15:2629:2642 \"_offset + hbs\" */ expr, /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ 248)), shl(248, 255))))\n /// @src 15:2774:2861 \"assembly {...\"\n mstore(add(var_encoded_mpos, 0x21), /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ shl(shl(3, sub(/** @src 15:2682:2684 \"31\" */ 0x1f, /** @src 15:2682:2690 \"31 - hbs\" */ expr)), /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ _1))\n }\n default /// @src 15:2340:2875 \"if (_len < 56) {...\"\n {\n /// @src 15:2373:2395 \"encoded = new bytes(1)\"\n var_encoded_mpos := /** @src 15:2383:2395 \"new bytes(1)\" */ allocate_and_zero_memory_array_bytes_5154()\n /// @src 15:2413:2455 \"encoded[0] = bytes1(uint8(_len + _offset))\"\n mstore8(memory_array_index_access_bytes(var_encoded_mpos), byte(/** @src 15:2421:2422 \"0\" */ 0x00, /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ and(shl(248, add(_1, /** @src 15:2191:2195 \"0xc0\" */ 0xc0)), /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ shl(248, 255))))\n }\n }\n /// @ast-id 2502 @src 15:3089:3763 \"function _highestByteSet(uint256 _number) private pure returns (uint256 hbs) {...\"\n function fun_highestByteSet(var_number) -> var_hbs\n {\n /// @src 15:3153:3164 \"uint256 hbs\"\n var_hbs := /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ 0\n /// @src 15:3200:3308 \"if (_number > type(uint128).max) {...\"\n if /** @src 15:3204:3231 \"_number > type(uint128).max\" */ gt(var_number, /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ 0xffffffffffffffffffffffffffffffff)\n /// @src 15:3200:3308 \"if (_number > type(uint128).max) {...\"\n {\n /// @src 15:3251:3266 \"_number >>= 128\"\n var_number := /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ shr(128, /** @src 15:3251:3266 \"_number >>= 128\" */ var_number)\n /// @src 15:3284:3293 \"hbs += 16\"\n var_hbs := /** @src 15:3291:3293 \"16\" */ 0x10\n }\n /// @src 15:3321:3426 \"if (_number > type(uint64).max) {...\"\n if /** @src 15:3325:3351 \"_number > type(uint64).max\" */ gt(var_number, /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ 0xffffffffffffffff)\n /// @src 15:3321:3426 \"if (_number > type(uint64).max) {...\"\n {\n /// @src 15:3371:3385 \"_number >>= 64\"\n var_number := /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ shr(64, /** @src 15:3371:3385 \"_number >>= 64\" */ var_number)\n /// @src 15:3403:3411 \"hbs += 8\"\n var_hbs := /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ add(/** @src 15:3403:3411 \"hbs += 8\" */ var_hbs, /** @src 15:3410:3411 \"8\" */ 0x08)\n }\n /// @src 15:3439:3544 \"if (_number > type(uint32).max) {...\"\n if /** @src 15:3443:3469 \"_number > type(uint32).max\" */ gt(var_number, /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ 0xffffffff)\n /// @src 15:3439:3544 \"if (_number > type(uint32).max) {...\"\n {\n /// @src 15:3489:3503 \"_number >>= 32\"\n var_number := /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ shr(32, /** @src 15:3489:3503 \"_number >>= 32\" */ var_number)\n /// @src 15:3521:3529 \"hbs += 4\"\n var_hbs := /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ add(/** @src 15:3521:3529 \"hbs += 4\" */ var_hbs, /** @src 15:3528:3529 \"4\" */ 0x04)\n }\n /// @src 15:3557:3662 \"if (_number > type(uint16).max) {...\"\n if /** @src 15:3561:3587 \"_number > type(uint16).max\" */ gt(var_number, /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ 0xffff)\n /// @src 15:3557:3662 \"if (_number > type(uint16).max) {...\"\n {\n /// @src 15:3607:3621 \"_number >>= 16\"\n var_number := /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ shr(16, /** @src 15:3607:3621 \"_number >>= 16\" */ var_number)\n /// @src 15:3639:3647 \"hbs += 2\"\n var_hbs := /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ add(/** @src 15:3639:3647 \"hbs += 2\" */ var_hbs, /** @src 15:3646:3647 \"2\" */ 0x02)\n }\n /// @src 15:3675:3747 \"if (_number > type(uint8).max) {...\"\n if /** @src 15:3679:3704 \"_number > type(uint8).max\" */ gt(var_number, /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ 0xff)\n /// @src 15:3675:3747 \"if (_number > type(uint8).max) {...\"\n {\n /// @src 15:3724:3732 \"hbs += 1\"\n var_hbs := /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ add(/** @src 15:3724:3732 \"hbs += 1\" */ var_hbs, /** @src 15:3731:3732 \"1\" */ 0x01)\n }\n }\n /// @ast-id 2590 @src 16:3383:3614 \"function ptrPackIntoActivePtr(uint256 _farCallAbi) internal view {...\"\n function fun_ptrPackIntoActivePtr(var_farCallAbi)\n {\n /// @src 16:3520:3608 \"assembly {...\"\n pop(staticcall(var_farCallAbi, /** @src 17:2209:2223 \"(1 << 16) - 25\" */ 0xffe7, /** @src 16:3520:3608 \"assembly {...\" */ 0, 0xFFFF, 0, 0))\n }\n /// @ast-id 2622 @src 16:4456:4855 \"function ptrShrinkIntoActive(uint32 _shrink) internal view {...\"\n function fun_ptrShrinkIntoActive(var_shrink)\n {\n /// @src 16:4632:4849 \"assembly {...\"\n pop(staticcall(and(var_shrink, /** @src 16:238:248 \"0xffffffff\" */ 0xffffffff), /** @src 17:2131:2145 \"(1 << 16) - 24\" */ 0xffe8, /** @src 16:4632:4849 \"assembly {...\" */ 0, 0xFFFF, 0, 0))\n }\n /// @ast-id 3851 @src 18:4285:5127 \"function encodeHash(Transaction calldata _transaction) internal view returns (bytes32 resultHash) {...\"\n function fun_encodeHash(var_transaction_3792_offset) -> var_resultHash\n {\n /// @src 18:4363:4381 \"bytes32 resultHash\"\n var_resultHash := /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ 0\n /// @src 18:4397:4416 \"_transaction.txType\"\n let expr := /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ calldataload(/** @src 18:4397:4416 \"_transaction.txType\" */ var_transaction_3792_offset)\n /// @src 18:4393:5121 \"if (_transaction.txType == LEGACY_TX_TYPE) {...\"\n switch /** @src 18:4397:4434 \"_transaction.txType == LEGACY_TX_TYPE\" */ iszero(expr)\n case /** @src 18:4393:5121 \"if (_transaction.txType == LEGACY_TX_TYPE) {...\" */ 0 {\n /// @src 18:4522:5121 \"if (_transaction.txType == EIP_712_TX_TYPE) {...\"\n switch /** @src 18:4526:4564 \"_transaction.txType == EIP_712_TX_TYPE\" */ eq(expr, /** @src 18:494:498 \"0x71\" */ 0x71)\n case /** @src 18:4522:5121 \"if (_transaction.txType == EIP_712_TX_TYPE) {...\" */ 0 {\n /// @src 18:4652:5121 \"if (_transaction.txType == EIP_1559_TX_TYPE) {...\"\n switch /** @src 18:4656:4695 \"_transaction.txType == EIP_1559_TX_TYPE\" */ eq(expr, /** @src 18:748:752 \"0x02\" */ 0x02)\n case /** @src 18:4652:5121 \"if (_transaction.txType == EIP_1559_TX_TYPE) {...\" */ 0 {\n /// @src 18:4784:5121 \"if (_transaction.txType == EIP_2930_TX_TYPE) {...\"\n switch /** @src 18:4788:4827 \"_transaction.txType == EIP_2930_TX_TYPE\" */ eq(expr, /** @src 18:662:666 \"0x01\" */ 0x01)\n case /** @src 18:4784:5121 \"if (_transaction.txType == EIP_2930_TX_TYPE) {...\" */ 0 {\n /// @src 18:5077:5110 \"revert(\\\"Encoding unsupported tx\\\")\"\n let _1 := /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ mload(64)\n /// @src 18:5077:5110 \"revert(\\\"Encoding unsupported tx\\\")\"\n mstore(_1, /** @src 0:1664:1693 \"revert(\\\"Unsupported tx type\\\")\" */ shl(229, 4594637))\n /// @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\"\n mstore(/** @src 18:5077:5110 \"revert(\\\"Encoding unsupported tx\\\")\" */ add(_1, 4), /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ 32)\n /// @src 18:662:666 \"0x01\"\n mstore(/** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ add(/** @src 18:5077:5110 \"revert(\\\"Encoding unsupported tx\\\")\" */ _1, /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ 36), 23)\n mstore(/** @src 18:662:666 \"0x01\" */ add(/** @src 18:5077:5110 \"revert(\\\"Encoding unsupported tx\\\")\" */ _1, /** @src 18:662:666 \"0x01\" */ 68), /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ \"Encoding unsupported tx\")\n /// @src 18:5077:5110 \"revert(\\\"Encoding unsupported tx\\\")\"\n revert(_1, /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ 100)\n }\n default /// @src 18:4784:5121 \"if (_transaction.txType == EIP_2930_TX_TYPE) {...\"\n {\n /// @src 18:4843:4899 \"resultHash = _encodeHashEIP2930Transaction(_transaction)\"\n var_resultHash := /** @src 18:4856:4899 \"_encodeHashEIP2930Transaction(_transaction)\" */ fun_encodeHashEIP2930Transaction(var_transaction_3792_offset)\n }\n }\n default /// @src 18:4652:5121 \"if (_transaction.txType == EIP_1559_TX_TYPE) {...\"\n {\n /// @src 18:4711:4767 \"resultHash = _encodeHashEIP1559Transaction(_transaction)\"\n var_resultHash := /** @src 18:4724:4767 \"_encodeHashEIP1559Transaction(_transaction)\" */ fun_encodeHashEIP1559Transaction(var_transaction_3792_offset)\n }\n }\n default /// @src 18:4522:5121 \"if (_transaction.txType == EIP_712_TX_TYPE) {...\"\n {\n /// @src 18:4580:4635 \"resultHash = _encodeHashEIP712Transaction(_transaction)\"\n var_resultHash := /** @src 18:4593:4635 \"_encodeHashEIP712Transaction(_transaction)\" */ fun_encodeHashEIP712Transaction(var_transaction_3792_offset)\n }\n }\n default /// @src 18:4393:5121 \"if (_transaction.txType == LEGACY_TX_TYPE) {...\"\n {\n /// @src 18:4450:4505 \"resultHash = _encodeHashLegacyTransaction(_transaction)\"\n var_resultHash := /** @src 18:4463:4505 \"_encodeHashLegacyTransaction(_transaction)\" */ fun_encodeHashLegacyTransaction(var_transaction_3792_offset)\n }\n }\n /// @src 18:3317:3601 \"keccak256(...\"\n function access_calldata_tail_array_bytes32_dyn_calldata(base_ref, ptr_to_tail) -> addr, length\n {\n let rel_offset_of_tail := calldataload(ptr_to_tail)\n if iszero(slt(rel_offset_of_tail, add(sub(calldatasize(), base_ref), /** @src 18:662:666 \"0x01\" */ not(30))))\n /// @src 18:3317:3601 \"keccak256(...\"\n {\n /// @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\"\n revert(0, 0)\n }\n /// @src 18:3317:3601 \"keccak256(...\"\n let addr_1 := add(base_ref, rel_offset_of_tail)\n length := calldataload(addr_1)\n if gt(length, 0xffffffffffffffff)\n {\n /// @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\"\n revert(0, 0)\n }\n /// @src 18:3317:3601 \"keccak256(...\"\n addr := add(addr_1, 0x20)\n if sgt(addr, sub(calldatasize(), shl(5, length)))\n {\n /// @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\"\n revert(0, 0)\n }\n }\n /// @src 18:3317:3601 \"keccak256(...\"\n function abi_encode_array_bytes32_dyn_calldata(start, length, pos) -> end\n {\n if gt(length, sub(shl(251, /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ 1), 1))\n /// @src 18:3317:3601 \"keccak256(...\"\n {\n /// @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\"\n revert(0, 0)\n }\n /// @src 18:3317:3601 \"keccak256(...\"\n let length_1 := shl(5, length)\n calldatacopy(pos, start, length_1)\n end := add(pos, length_1)\n }\n function abi_encode_bytes32_uint256_uint256_uint256_uint256_uint256_uint256_uint256_uint256_uint256_uint256_bytes32_bytes32_bytes32(headStart, value1, value2, value3, value4, value5, value6, value7, value8, value9, value10, value11, value12, value13) -> tail\n {\n tail := add(headStart, 448)\n /// @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\"\n mstore(headStart, /** @src 18:3317:3601 \"keccak256(...\" */ 0x848e1bfa1ac4e3576b728bda6721b215c70a7799a5b4866282a71bab954baac8)\n /// @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\"\n mstore(/** @src 18:3317:3601 \"keccak256(...\" */ add(headStart, 32), /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ value1)\n mstore(/** @src 18:3317:3601 \"keccak256(...\" */ add(headStart, 64), /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ value2)\n mstore(/** @src 18:3317:3601 \"keccak256(...\" */ add(headStart, 96), /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ value3)\n mstore(/** @src 18:3317:3601 \"keccak256(...\" */ add(headStart, 128), /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ value4)\n mstore(/** @src 18:3317:3601 \"keccak256(...\" */ add(headStart, 160), /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ value5)\n mstore(/** @src 18:3317:3601 \"keccak256(...\" */ add(headStart, 192), /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ value6)\n mstore(/** @src 18:3317:3601 \"keccak256(...\" */ add(headStart, 224), /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ value7)\n mstore(/** @src 18:3317:3601 \"keccak256(...\" */ add(headStart, 256), /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ value8)\n mstore(/** @src 18:3317:3601 \"keccak256(...\" */ add(headStart, 288), /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ value9)\n mstore(/** @src 18:3317:3601 \"keccak256(...\" */ add(headStart, 320), /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ value10)\n mstore(/** @src 18:3317:3601 \"keccak256(...\" */ add(headStart, 352), /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ value11)\n mstore(/** @src 18:3317:3601 \"keccak256(...\" */ add(headStart, 384), /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ value12)\n mstore(/** @src 18:3317:3601 \"keccak256(...\" */ add(headStart, 416), /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ value13)\n }\n /// @src 18:3185:3254 \"keccak256(\\\"EIP712Domain(string name,string version,uint256 chainId)\\\")\"\n function abi_encode_bytes32_bytes32_bytes32_uint256(headStart, value3) -> tail\n {\n tail := add(headStart, 128)\n /// @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\"\n mstore(headStart, /** @src 18:3185:3254 \"keccak256(\\\"EIP712Domain(string name,string version,uint256 chainId)\\\")\" */ 0xc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6e)\n /// @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\"\n mstore(/** @src 18:3185:3254 \"keccak256(\\\"EIP712Domain(string name,string version,uint256 chainId)\\\")\" */ add(headStart, 32), /** @src 18:6215:6234 \"keccak256(\\\"zkSync\\\")\" */ 0x19b453ce45aaaaf3a300f5a9ec95869b4f28ab10430b572ee218c3a6a5e07d6f)\n /// @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\"\n mstore(/** @src 18:3185:3254 \"keccak256(\\\"EIP712Domain(string name,string version,uint256 chainId)\\\")\" */ add(headStart, 64), /** @src 18:6236:6250 \"keccak256(\\\"2\\\")\" */ 0xad7c5bef027816a800da1736444fb58a807ef4c9603b7848673f7e3a68eb14a5)\n /// @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\"\n mstore(/** @src 18:3185:3254 \"keccak256(\\\"EIP712Domain(string name,string version,uint256 chainId)\\\")\" */ add(headStart, 96), /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ value3)\n }\n /// @src 18:3185:3254 \"keccak256(\\\"EIP712Domain(string name,string version,uint256 chainId)\\\")\"\n function abi_encode_packed_stringliteral_301a_bytes32_bytes32(pos, value0, value1) -> end\n {\n mstore(pos, shl(240, 6401))\n /// @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\"\n mstore(/** @src 18:3185:3254 \"keccak256(\\\"EIP712Domain(string name,string version,uint256 chainId)\\\")\" */ add(pos, 2), /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ value0)\n mstore(/** @src 18:3185:3254 \"keccak256(\\\"EIP712Domain(string name,string version,uint256 chainId)\\\")\" */ add(pos, 34), /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ value1)\n /// @src 18:3185:3254 \"keccak256(\\\"EIP712Domain(string name,string version,uint256 chainId)\\\")\"\n end := add(pos, 66)\n }\n /// @ast-id 3933 @src 18:5284:6369 \"function _encodeHashEIP712Transaction(Transaction calldata _transaction) private view returns (bytes32) {...\"\n function fun_encodeHashEIP712Transaction(var_transaction_3855_offset) -> var_\n {\n /// @src 18:5940:5957 \"_transaction.data\"\n let expr_3889_offset, expr_3889_length := access_calldata_tail_bytes_calldata(var_transaction_3855_offset, add(var_transaction_3855_offset, 448))\n /// @src 18:5919:5958 \"EfficientCall.keccak(_transaction.data)\"\n let expr := fun_keccak(expr_3889_offset, expr_3889_length)\n /// @src 18:6003:6027 \"_transaction.factoryDeps\"\n let expr_3895_offset, expr_3895_length := access_calldata_tail_array_bytes32_dyn_calldata(var_transaction_3855_offset, add(var_transaction_3855_offset, 512))\n /// @src 18:5986:6028 \"abi.encodePacked(_transaction.factoryDeps)\"\n let expr_3896_mpos := /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ mload(/** @src 18:5588:5603 \"_transaction.to\" */ 64)\n /// @src 18:5986:6028 \"abi.encodePacked(_transaction.factoryDeps)\"\n let _1 := add(expr_3896_mpos, /** @src 18:5553:5570 \"_transaction.from\" */ 32)\n /// @src 18:5986:6028 \"abi.encodePacked(_transaction.factoryDeps)\"\n let _2 := sub(/** @src 18:3317:3601 \"keccak256(...\" */ abi_encode_array_bytes32_dyn_calldata(/** @src 18:5986:6028 \"abi.encodePacked(_transaction.factoryDeps)\" */ expr_3895_offset, expr_3895_length, _1), expr_3896_mpos)\n let _3 := /** @src 18:662:666 \"0x01\" */ not(31)\n /// @src 18:5986:6028 \"abi.encodePacked(_transaction.factoryDeps)\"\n mstore(expr_3896_mpos, add(_2, _3))\n finalize_allocation(expr_3896_mpos, _2)\n /// @src 18:5976:6029 \"keccak256(abi.encodePacked(_transaction.factoryDeps))\"\n let expr_1 := keccak256(/** @src 18:662:666 \"0x01\" */ _1, mload(/** @src 18:5976:6029 \"keccak256(abi.encodePacked(_transaction.factoryDeps))\" */ expr_3896_mpos))\n /// @src 18:6068:6095 \"_transaction.paymasterInput\"\n let expr_3901_offset, expr_3901_length := access_calldata_tail_bytes_calldata(var_transaction_3855_offset, add(var_transaction_3855_offset, 544))\n /// @src 18:6047:6096 \"EfficientCall.keccak(_transaction.paymasterInput)\"\n let expr_2 := fun_keccak(expr_3901_offset, expr_3901_length)\n /// @src 18:5442:6110 \"abi.encode(...\"\n let expr_3903_mpos := /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ mload(/** @src 18:5588:5603 \"_transaction.to\" */ 64)\n /// @src 18:5442:6110 \"abi.encode(...\"\n let _4 := add(expr_3903_mpos, /** @src 18:5553:5570 \"_transaction.from\" */ 32)\n /// @src 18:5442:6110 \"abi.encode(...\"\n let _5 := sub(abi_encode_bytes32_uint256_uint256_uint256_uint256_uint256_uint256_uint256_uint256_uint256_uint256_bytes32_bytes32_bytes32(_4, /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ calldataload(/** @src 18:5516:5535 \"_transaction.txType\" */ var_transaction_3855_offset), /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ calldataload(/** @src 18:5553:5570 \"_transaction.from\" */ add(var_transaction_3855_offset, 32)), /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ calldataload(/** @src 18:5588:5603 \"_transaction.to\" */ add(var_transaction_3855_offset, 64)), /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ calldataload(/** @src 18:5621:5642 \"_transaction.gasLimit\" */ add(var_transaction_3855_offset, 96)), /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ calldataload(/** @src 18:5660:5695 \"_transaction.gasPerPubdataByteLimit\" */ add(var_transaction_3855_offset, 128)), /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ calldataload(/** @src 18:5713:5738 \"_transaction.maxFeePerGas\" */ add(var_transaction_3855_offset, 160)), /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ calldataload(/** @src 18:5756:5789 \"_transaction.maxPriorityFeePerGas\" */ add(var_transaction_3855_offset, 192)), /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ calldataload(/** @src 18:5807:5829 \"_transaction.paymaster\" */ add(var_transaction_3855_offset, 224)), /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ calldataload(/** @src 18:5847:5865 \"_transaction.nonce\" */ add(var_transaction_3855_offset, 256)), /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ calldataload(/** @src 18:5883:5901 \"_transaction.value\" */ add(var_transaction_3855_offset, 288)), /** @src 18:5442:6110 \"abi.encode(...\" */ expr, expr_1, expr_2), expr_3903_mpos)\n mstore(expr_3903_mpos, add(_5, /** @src 18:5986:6028 \"abi.encodePacked(_transaction.factoryDeps)\" */ _3))\n /// @src 18:5442:6110 \"abi.encode(...\"\n finalize_allocation(expr_3903_mpos, _5)\n /// @src 18:5419:6120 \"keccak256(...\"\n let expr_3 := keccak256(/** @src 18:662:666 \"0x01\" */ _4, mload(/** @src 18:5419:6120 \"keccak256(...\" */ expr_3903_mpos))\n /// @src 18:6180:6266 \"abi.encode(EIP712_DOMAIN_TYPEHASH, keccak256(\\\"zkSync\\\"), keccak256(\\\"2\\\"), block.chainid)\"\n let expr_mpos := /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ mload(/** @src 18:5588:5603 \"_transaction.to\" */ 64)\n /// @src 18:6180:6266 \"abi.encode(EIP712_DOMAIN_TYPEHASH, keccak256(\\\"zkSync\\\"), keccak256(\\\"2\\\"), block.chainid)\"\n let _6 := add(expr_mpos, /** @src 18:5553:5570 \"_transaction.from\" */ 32)\n /// @src 18:6180:6266 \"abi.encode(EIP712_DOMAIN_TYPEHASH, keccak256(\\\"zkSync\\\"), keccak256(\\\"2\\\"), block.chainid)\"\n let _7 := sub(abi_encode_bytes32_bytes32_bytes32_uint256(_6, /** @src 18:6252:6265 \"block.chainid\" */ chainid()), /** @src 18:6180:6266 \"abi.encode(EIP712_DOMAIN_TYPEHASH, keccak256(\\\"zkSync\\\"), keccak256(\\\"2\\\"), block.chainid)\" */ expr_mpos)\n mstore(expr_mpos, add(_7, /** @src 18:5986:6028 \"abi.encodePacked(_transaction.factoryDeps)\" */ _3))\n /// @src 18:6180:6266 \"abi.encode(EIP712_DOMAIN_TYPEHASH, keccak256(\\\"zkSync\\\"), keccak256(\\\"2\\\"), block.chainid)\"\n finalize_allocation(expr_mpos, _7)\n /// @src 18:6157:6276 \"keccak256(...\"\n let expr_4 := keccak256(/** @src 18:662:666 \"0x01\" */ _6, mload(/** @src 18:6157:6276 \"keccak256(...\" */ expr_mpos))\n /// @src 18:6304:6361 \"abi.encodePacked(\\\"\\\\x19\\\\x01\\\", domainSeparator, structHash)\"\n let expr_3929_mpos := /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ mload(/** @src 18:5588:5603 \"_transaction.to\" */ 64)\n /// @src 18:6304:6361 \"abi.encodePacked(\\\"\\\\x19\\\\x01\\\", domainSeparator, structHash)\"\n let _8 := add(expr_3929_mpos, /** @src 18:5553:5570 \"_transaction.from\" */ 32)\n /// @src 18:6304:6361 \"abi.encodePacked(\\\"\\\\x19\\\\x01\\\", domainSeparator, structHash)\"\n let _9 := sub(abi_encode_packed_stringliteral_301a_bytes32_bytes32(_8, expr_4, expr_3), expr_3929_mpos)\n mstore(expr_3929_mpos, add(_9, /** @src 18:5986:6028 \"abi.encodePacked(_transaction.factoryDeps)\" */ _3))\n /// @src 18:6304:6361 \"abi.encodePacked(\\\"\\\\x19\\\\x01\\\", domainSeparator, structHash)\"\n finalize_allocation(expr_3929_mpos, _9)\n /// @src 18:6287:6362 \"return keccak256(abi.encodePacked(\\\"\\\\x19\\\\x01\\\", domainSeparator, structHash))\"\n var_ := /** @src 18:6294:6362 \"keccak256(abi.encodePacked(\\\"\\\\x19\\\\x01\\\", domainSeparator, structHash))\" */ keccak256(/** @src 18:662:666 \"0x01\" */ _8, mload(/** @src 18:6294:6362 \"keccak256(abi.encodePacked(\\\"\\\\x19\\\\x01\\\", domainSeparator, structHash))\" */ expr_3929_mpos))\n }\n /// @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\"\n function bytes_concat_bytes_stringliteral_d329(param) -> outPtr\n {\n outPtr := mload(64)\n let pos := abi_encode_bytes(param, add(outPtr, 0x20))\n mstore(pos, shl(247, 257))\n let _1 := sub(pos, outPtr)\n mstore(outPtr, add(_1, not(29)))\n finalize_allocation(outPtr, add(_1, 2))\n }\n function bytes_concat_bytes_bytes_bytes_bytes_bytes_bytes_bytes_calldata_bytes(param, param_1, param_2, param_3, param_4, param_5, param_6, param_7, param_8) -> outPtr\n {\n outPtr := mload(64)\n let _1 := abi_encode_bytes(param_5, abi_encode_bytes(param_4, abi_encode_bytes(param_3, abi_encode_bytes(param_2, abi_encode_bytes(param_1, abi_encode_bytes(param, add(outPtr, 0x20)))))))\n calldatacopy(_1, param_6, param_7)\n let _2 := add(_1, param_7)\n mstore(_2, /** @src -1:-1:-1 */ 0)\n /// @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\"\n let _3 := sub(abi_encode_bytes(param_8, _2), outPtr)\n mstore(outPtr, add(_3, /** @src 18:662:666 \"0x01\" */ not(31)))\n /// @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\"\n finalize_allocation(outPtr, _3)\n }\n /// @ast-id 4117 @src 18:6521:9798 \"function _encodeHashLegacyTransaction(Transaction calldata _transaction) private view returns (bytes32) {...\"\n function fun_encodeHashLegacyTransaction(var_transaction_3937_offset) -> var\n {\n /// @src 18:7058:7102 \"RLPEncoder.encodeUint256(_transaction.nonce)\"\n let expr_3948_mpos := fun_encodeUint256(/** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ calldataload(/** @src 18:7083:7101 \"_transaction.nonce\" */ add(var_transaction_3937_offset, 256)))\n /// @src 18:7283:7334 \"RLPEncoder.encodeUint256(_transaction.maxFeePerGas)\"\n let expr_3959_mpos := fun_encodeUint256(/** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ calldataload(/** @src 18:7308:7333 \"_transaction.maxFeePerGas\" */ add(var_transaction_3937_offset, 160)))\n /// @src 18:7458:7504 \"bytes.concat(encodedGasPrice, encodedGasLimit)\"\n let expr_3975_mpos := bytes_concat_bytes_bytes(expr_3959_mpos, /** @src 18:7379:7426 \"RLPEncoder.encodeUint256(_transaction.gasLimit)\" */ fun_encodeUint256(/** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ calldataload(/** @src 18:7404:7425 \"_transaction.gasLimit\" */ add(var_transaction_3937_offset, /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ 96))))\n /// @src 18:7550:7609 \"RLPEncoder.encodeAddress(address(uint160(_transaction.to)))\"\n let expr_3991_mpos := fun_encodeAddress(/** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ and(calldataload(/** @src 18:7591:7606 \"_transaction.to\" */ add(var_transaction_3937_offset, 64)), /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ sub(shl(160, 1), 1)))\n /// @src 18:7647:7691 \"RLPEncoder.encodeUint256(_transaction.value)\"\n let expr_3999_mpos := fun_encodeUint256(/** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ calldataload(/** @src 18:7672:7690 \"_transaction.value\" */ add(var_transaction_3937_offset, 288)))\n /// @src 18:7867:7897 \"bytes memory encodedDataLength\"\n let var_encodedDataLength_4002_mpos := /** @src -1:-1:-1 */ 0\n /// @src 18:7867:7897 \"bytes memory encodedDataLength\"\n var_encodedDataLength_4002_mpos := /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ 96\n /// @src 18:8035:8052 \"_transaction.data\"\n let _1 := add(var_transaction_3937_offset, 448)\n let expr_4009_offset, expr_length := access_calldata_tail_bytes_calldata(var_transaction_3937_offset, _1)\n /// @src 18:8028:8060 \"uint64(_transaction.data.length)\"\n let expr := /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ and(/** @src 18:8035:8059 \"_transaction.data.length\" */ expr_length, /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ 0xffffffffffffffff)\n /// @src 18:8074:8515 \"if (txDataLen != 1) {...\"\n switch /** @src 18:8078:8092 \"txDataLen != 1\" */ iszero(eq(/** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ expr, /** @src 18:8091:8092 \"1\" */ 0x01))\n case /** @src 18:8074:8515 \"if (txDataLen != 1) {...\" */ 0 {\n /// @src 18:8313:8330 \"_transaction.data\"\n let expr_4025_offset, expr_4025_length := access_calldata_tail_bytes_calldata(var_transaction_3937_offset, _1)\n /// @src 18:8309:8515 \"if (_transaction.data[0] >= 0x80) {...\"\n if /** @src 18:8313:8341 \"_transaction.data[0] >= 0x80\" */ iszero(lt(/** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ and(/** @src 18:8313:8333 \"_transaction.data[0]\" */ cleanup_bytes1(calldataload(calldata_array_index_access_bytes_calldata_5129(expr_4025_offset, expr_4025_length))), /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ shl(248, 255)), shl(255, 1)))\n /// @src 18:8309:8515 \"if (_transaction.data[0] >= 0x80) {...\"\n {\n /// @src 18:8473:8500 \"encodedDataLength = hex\\\"81\\\"\"\n var_encodedDataLength_4002_mpos := /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ copy_literal_to_memory_1fed454f35701d8970ad2ac06907e973314989ab6eb948eda79c00e416c4bdeb()\n }\n }\n default /// @src 18:8074:8515 \"if (txDataLen != 1) {...\"\n {\n /// @src 18:8223:8288 \"encodedDataLength = RLPEncoder.encodeNonSingleBytesLen(txDataLen)\"\n var_encodedDataLength_4002_mpos := /** @src 18:8243:8288 \"RLPEncoder.encodeNonSingleBytesLen(txDataLen)\" */ fun_encodeNonSingleBytesLen(expr)\n }\n /// @src 18:8703:8730 \"bytes memory encodedChainId\"\n let var_encodedChainId_mpos := /** @src -1:-1:-1 */ 0\n /// @src 18:8703:8730 \"bytes memory encodedChainId\"\n var_encodedChainId_mpos := /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ 96\n /// @src 18:8740:8882 \"if (_transaction.reserved[0] != 0) {...\"\n if /** @src 18:8744:8773 \"_transaction.reserved[0] != 0\" */ iszero(iszero(/** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ calldataload(/** @src 18:8744:8765 \"_transaction.reserved\" */ add(var_transaction_3937_offset, 320))))\n /// @src 18:8740:8882 \"if (_transaction.reserved[0] != 0) {...\"\n {\n /// @src 18:8789:8871 \"encodedChainId = bytes.concat(RLPEncoder.encodeUint256(block.chainid), hex\\\"80_80\\\")\"\n var_encodedChainId_mpos := /** @src 18:8806:8871 \"bytes.concat(RLPEncoder.encodeUint256(block.chainid), hex\\\"80_80\\\")\" */ bytes_concat_bytes_stringliteral_d329(/** @src 18:8819:8858 \"RLPEncoder.encodeUint256(block.chainid)\" */ fun_encodeUint256(/** @src 18:8844:8857 \"block.chainid\" */ chainid()))\n }\n /// @src 18:8977:8996 \"encodedNonce.length\"\n let expr_1 := /** @src 18:662:666 \"0x01\" */ mload(/** @src 18:8977:8996 \"encodedNonce.length\" */ expr_3948_mpos)\n /// @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\"\n let sum := add(expr_1, /** @src 18:662:666 \"0x01\" */ mload(/** @src 18:9015:9037 \"encodedGasParam.length\" */ expr_3975_mpos))\n /// @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\"\n let sum_1 := add(sum, /** @src 18:662:666 \"0x01\" */ mload(/** @src 18:9056:9072 \"encodedTo.length\" */ expr_3991_mpos))\n /// @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\"\n let sum_2 := add(sum_1, /** @src 18:662:666 \"0x01\" */ mload(/** @src 18:9091:9110 \"encodedValue.length\" */ expr_3999_mpos))\n /// @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\"\n let sum_3 := add(sum_2, /** @src 18:662:666 \"0x01\" */ mload(/** @src 18:9129:9153 \"encodedDataLength.length\" */ var_encodedDataLength_4002_mpos))\n /// @src 18:9172:9189 \"_transaction.data\"\n let expr_4082_offset, expr_4082_length := access_calldata_tail_bytes_calldata(var_transaction_3937_offset, _1)\n /// @src 15:2164:2196 \"return _encodeLength(_len, 0xc0)\"\n let var_mpos := /** @src 15:2171:2196 \"_encodeLength(_len, 0xc0)\" */ fun_encodeLength(/** @src 18:9372:9390 \"uint64(listLength)\" */ convert_uint256_to_uint64(/** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ add(add(/** @src 18:8977:9196 \"encodedNonce.length +...\" */ sum_3, /** @src 18:9172:9196 \"_transaction.data.length\" */ expr_4082_length), /** @src 18:662:666 \"0x01\" */ mload(/** @src 18:9215:9236 \"encodedChainId.length\" */ var_encodedChainId_mpos))))\n /// @src 18:9706:9723 \"_transaction.data\"\n let expr_4111_offset, expr_4111_length := access_calldata_tail_bytes_calldata(var_transaction_3937_offset, _1)\n /// @src 18:9458:9777 \"bytes.concat(...\"\n let expr_4113_mpos := bytes_concat_bytes_bytes_bytes_bytes_bytes_bytes_bytes_calldata_bytes(var_mpos, expr_3948_mpos, expr_3975_mpos, expr_3991_mpos, expr_3999_mpos, var_encodedDataLength_4002_mpos, expr_4111_offset, expr_4111_length, var_encodedChainId_mpos)\n /// @src 18:9412:9791 \"return...\"\n var := /** @src 18:9431:9791 \"keccak256(...\" */ keccak256(/** @src 18:662:666 \"0x01\" */ add(/** @src 18:9431:9791 \"keccak256(...\" */ expr_4113_mpos, /** @src 18:662:666 \"0x01\" */ 0x20), mload(/** @src 18:9431:9791 \"keccak256(...\" */ expr_4113_mpos))\n }\n /// @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\"\n function bytes_concat_stringliteral_5fe7_bytes_bytes_bytes_bytes_calldata_bytes(param, param_1, param_2, param_3, param_4, param_5) -> outPtr\n {\n outPtr := mload(64)\n mstore(add(outPtr, 0x20), shl(248, 1))\n let _1 := abi_encode_bytes(param_2, abi_encode_bytes(param_1, abi_encode_bytes(param, add(outPtr, 33))))\n calldatacopy(_1, param_3, param_4)\n let _2 := add(_1, param_4)\n mstore(_2, /** @src -1:-1:-1 */ 0)\n /// @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\"\n let _3 := sub(abi_encode_bytes(param_5, _2), outPtr)\n mstore(outPtr, add(_3, /** @src 18:662:666 \"0x01\" */ not(31)))\n /// @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\"\n finalize_allocation(outPtr, _3)\n }\n /// @ast-id 4285 @src 18:9951:13087 \"function _encodeHashEIP2930Transaction(Transaction calldata _transaction) private view returns (bytes32) {...\"\n function fun_encodeHashEIP2930Transaction(var_transaction_4121_offset) -> var\n {\n /// @src 18:10509:10548 \"RLPEncoder.encodeUint256(block.chainid)\"\n let expr_4135_mpos := fun_encodeUint256(/** @src 18:10534:10547 \"block.chainid\" */ chainid())\n /// @src 18:10590:10634 \"RLPEncoder.encodeUint256(_transaction.nonce)\"\n let expr_4143_mpos := fun_encodeUint256(/** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ calldataload(/** @src 18:10615:10633 \"_transaction.nonce\" */ add(var_transaction_4121_offset, 256)))\n /// @src 18:10679:10730 \"RLPEncoder.encodeUint256(_transaction.maxFeePerGas)\"\n let expr_4151_mpos := fun_encodeUint256(/** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ calldataload(/** @src 18:10704:10729 \"_transaction.maxFeePerGas\" */ add(var_transaction_4121_offset, 160)))\n /// @src 18:10775:10822 \"RLPEncoder.encodeUint256(_transaction.gasLimit)\"\n let expr_4159_mpos := fun_encodeUint256(/** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ calldataload(/** @src 18:10800:10821 \"_transaction.gasLimit\" */ add(var_transaction_4121_offset, /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ 96)))\n /// @src 18:10861:10920 \"RLPEncoder.encodeAddress(address(uint160(_transaction.to)))\"\n let expr_4173_mpos := fun_encodeAddress(/** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ and(calldataload(/** @src 18:10902:10917 \"_transaction.to\" */ add(var_transaction_4121_offset, 64)), /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ sub(shl(160, 1), 1)))\n /// @src 18:11047:11258 \"bytes.concat(...\"\n let expr_4193_mpos := bytes_concat_bytes_bytes_bytes_bytes_bytes_bytes(expr_4135_mpos, expr_4143_mpos, expr_4151_mpos, expr_4159_mpos, expr_4173_mpos, /** @src 18:10962:11006 \"RLPEncoder.encodeUint256(_transaction.value)\" */ fun_encodeUint256(/** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ calldataload(/** @src 18:10987:11005 \"_transaction.value\" */ add(var_transaction_4121_offset, 288))))\n /// @src 18:11445:11475 \"bytes memory encodedDataLength\"\n let var_encodedDataLength_4198_mpos := /** @src -1:-1:-1 */ 0\n /// @src 18:11445:11475 \"bytes memory encodedDataLength\"\n var_encodedDataLength_4198_mpos := /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ 96\n /// @src 18:11613:11630 \"_transaction.data\"\n let _1 := add(var_transaction_4121_offset, 448)\n let expr_4205_offset, expr_4205_length := access_calldata_tail_bytes_calldata(var_transaction_4121_offset, _1)\n /// @src 18:11606:11638 \"uint64(_transaction.data.length)\"\n let expr := /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ and(/** @src 18:11613:11637 \"_transaction.data.length\" */ expr_4205_length, /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ 0xffffffffffffffff)\n /// @src 18:11652:12093 \"if (txDataLen != 1) {...\"\n switch /** @src 18:11656:11670 \"txDataLen != 1\" */ iszero(eq(/** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ expr, /** @src 18:11669:11670 \"1\" */ 0x01))\n case /** @src 18:11652:12093 \"if (txDataLen != 1) {...\" */ 0 {\n /// @src 18:11891:11908 \"_transaction.data\"\n let expr_4221_offset, expr_4221_length := access_calldata_tail_bytes_calldata(var_transaction_4121_offset, _1)\n /// @src 18:11887:12093 \"if (_transaction.data[0] >= 0x80) {...\"\n if /** @src 18:11891:11919 \"_transaction.data[0] >= 0x80\" */ iszero(lt(/** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ and(/** @src 18:11891:11911 \"_transaction.data[0]\" */ cleanup_bytes1(calldataload(calldata_array_index_access_bytes_calldata_5129(expr_4221_offset, expr_4221_length))), /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ shl(248, 255)), shl(255, 1)))\n /// @src 18:11887:12093 \"if (_transaction.data[0] >= 0x80) {...\"\n {\n /// @src 18:12051:12078 \"encodedDataLength = hex\\\"81\\\"\"\n var_encodedDataLength_4198_mpos := /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ copy_literal_to_memory_1fed454f35701d8970ad2ac06907e973314989ab6eb948eda79c00e416c4bdeb()\n }\n }\n default /// @src 18:11652:12093 \"if (txDataLen != 1) {...\"\n {\n /// @src 18:11801:11866 \"encodedDataLength = RLPEncoder.encodeNonSingleBytesLen(txDataLen)\"\n var_encodedDataLength_4198_mpos := /** @src 18:11821:11866 \"RLPEncoder.encodeNonSingleBytesLen(txDataLen)\" */ fun_encodeNonSingleBytesLen(expr)\n }\n /// @src 18:12289:12316 \"RLPEncoder.encodeListLen(0)\"\n let expr_4239_mpos := /** @src 15:2171:2196 \"_encodeLength(_len, 0xc0)\" */ fun_encodeLength_5137()\n /// @src 18:12412:12443 \"encodedFixedLengthParams.length\"\n let expr_1 := /** @src 18:662:666 \"0x01\" */ mload(/** @src 18:12412:12443 \"encodedFixedLengthParams.length\" */ expr_4193_mpos)\n /// @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\"\n let sum := add(expr_1, /** @src 18:662:666 \"0x01\" */ mload(/** @src 18:12462:12486 \"encodedDataLength.length\" */ var_encodedDataLength_4198_mpos))\n /// @src 18:12505:12522 \"_transaction.data\"\n let expr_4252_offset, expr_4252_length := access_calldata_tail_bytes_calldata(var_transaction_4121_offset, _1)\n /// @src 15:2164:2196 \"return _encodeLength(_len, 0xc0)\"\n let var_mpos := /** @src 15:2171:2196 \"_encodeLength(_len, 0xc0)\" */ fun_encodeLength(/** @src 18:12714:12732 \"uint64(listLength)\" */ convert_uint256_to_uint64(/** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ add(add(/** @src 18:12412:12529 \"encodedFixedLengthParams.length +...\" */ sum, /** @src 18:12505:12529 \"_transaction.data.length\" */ expr_4252_length), /** @src 18:662:666 \"0x01\" */ mload(/** @src 18:12548:12578 \"encodedAccessListLength.length\" */ expr_4239_mpos))))\n /// @src 18:12986:13003 \"_transaction.data\"\n let expr_4279_offset, expr_4279_length := access_calldata_tail_bytes_calldata(var_transaction_4121_offset, _1)\n /// @src 18:12800:13066 \"bytes.concat(...\"\n let expr_4281_mpos := bytes_concat_stringliteral_5fe7_bytes_bytes_bytes_bytes_calldata_bytes(var_mpos, expr_4193_mpos, var_encodedDataLength_4198_mpos, expr_4279_offset, expr_4279_length, expr_4239_mpos)\n /// @src 18:12754:13080 \"return...\"\n var := /** @src 18:12773:13080 \"keccak256(...\" */ keccak256(/** @src 18:662:666 \"0x01\" */ add(/** @src 18:12773:13080 \"keccak256(...\" */ expr_4281_mpos, /** @src 18:662:666 \"0x01\" */ 0x20), mload(/** @src 18:12773:13080 \"keccak256(...\" */ expr_4281_mpos))\n }\n /// @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\"\n function bytes_concat_stringliteral_f2ee_bytes_bytes_bytes_bytes_calldata_bytes(param, param_1, param_2, param_3, param_4, param_5) -> outPtr\n {\n outPtr := mload(64)\n mstore(add(outPtr, 0x20), shl(249, 1))\n let _1 := abi_encode_bytes(param_2, abi_encode_bytes(param_1, abi_encode_bytes(param, add(outPtr, 33))))\n calldatacopy(_1, param_3, param_4)\n let _2 := add(_1, param_4)\n mstore(_2, /** @src -1:-1:-1 */ 0)\n /// @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\"\n let _3 := sub(abi_encode_bytes(param_5, _2), outPtr)\n mstore(outPtr, add(_3, /** @src 18:662:666 \"0x01\" */ not(31)))\n /// @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\"\n finalize_allocation(outPtr, _3)\n }\n /// @ast-id 4462 @src 18:13240:16577 \"function _encodeHashEIP1559Transaction(Transaction calldata _transaction) private view returns (bytes32) {...\"\n function fun_encodeHashEIP1559Transaction(var__transaction_offset) -> var\n {\n /// @src 18:13830:13869 \"RLPEncoder.encodeUint256(block.chainid)\"\n let expr_4303_mpos := fun_encodeUint256(/** @src 18:13855:13868 \"block.chainid\" */ chainid())\n /// @src 18:13911:13955 \"RLPEncoder.encodeUint256(_transaction.nonce)\"\n let expr_4311_mpos := fun_encodeUint256(/** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ calldataload(/** @src 18:13936:13954 \"_transaction.nonce\" */ add(var__transaction_offset, 256)))\n /// @src 18:14012:14071 \"RLPEncoder.encodeUint256(_transaction.maxPriorityFeePerGas)\"\n let expr_4319_mpos := fun_encodeUint256(/** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ calldataload(/** @src 18:14037:14070 \"_transaction.maxPriorityFeePerGas\" */ add(var__transaction_offset, 192)))\n /// @src 18:14120:14171 \"RLPEncoder.encodeUint256(_transaction.maxFeePerGas)\"\n let expr_4327_mpos := fun_encodeUint256(/** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ calldataload(/** @src 18:14145:14170 \"_transaction.maxFeePerGas\" */ add(var__transaction_offset, 160)))\n /// @src 18:14216:14263 \"RLPEncoder.encodeUint256(_transaction.gasLimit)\"\n let expr_4335_mpos := fun_encodeUint256(/** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ calldataload(/** @src 18:14241:14262 \"_transaction.gasLimit\" */ add(var__transaction_offset, /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ 96)))\n /// @src 18:14302:14361 \"RLPEncoder.encodeAddress(address(uint160(_transaction.to)))\"\n let expr_4349_mpos := fun_encodeAddress(/** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ and(calldataload(/** @src 18:14343:14358 \"_transaction.to\" */ add(var__transaction_offset, 64)), /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ sub(shl(160, 1), 1)))\n /// @src 18:14488:14748 \"bytes.concat(...\"\n let expr_4370_mpos := bytes_concat_bytes_bytes_bytes_bytes_bytes_bytes_bytes(expr_4303_mpos, expr_4311_mpos, expr_4319_mpos, expr_4327_mpos, expr_4335_mpos, expr_4349_mpos, /** @src 18:14403:14447 \"RLPEncoder.encodeUint256(_transaction.value)\" */ fun_encodeUint256(/** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ calldataload(/** @src 18:14428:14446 \"_transaction.value\" */ add(var__transaction_offset, 288))))\n /// @src 18:14935:14965 \"bytes memory encodedDataLength\"\n let var_encodedDataLength_4375_mpos := /** @src -1:-1:-1 */ 0\n /// @src 18:14935:14965 \"bytes memory encodedDataLength\"\n var_encodedDataLength_4375_mpos := /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ 96\n /// @src 18:15103:15120 \"_transaction.data\"\n let _1 := add(var__transaction_offset, 448)\n let expr_4382_offset, expr_4382_length := access_calldata_tail_bytes_calldata(var__transaction_offset, _1)\n /// @src 18:15096:15128 \"uint64(_transaction.data.length)\"\n let expr := /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ and(/** @src 18:15103:15127 \"_transaction.data.length\" */ expr_4382_length, /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ 0xffffffffffffffff)\n /// @src 18:15142:15583 \"if (txDataLen != 1) {...\"\n switch /** @src 18:15146:15160 \"txDataLen != 1\" */ iszero(eq(/** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ expr, /** @src 18:15159:15160 \"1\" */ 0x01))\n case /** @src 18:15142:15583 \"if (txDataLen != 1) {...\" */ 0 {\n /// @src 18:15381:15398 \"_transaction.data\"\n let expr_4398_offset, expr_4398_length := access_calldata_tail_bytes_calldata(var__transaction_offset, _1)\n /// @src 18:15377:15583 \"if (_transaction.data[0] >= 0x80) {...\"\n if /** @src 18:15381:15409 \"_transaction.data[0] >= 0x80\" */ iszero(lt(/** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ and(/** @src 18:15381:15401 \"_transaction.data[0]\" */ cleanup_bytes1(calldataload(calldata_array_index_access_bytes_calldata_5129(expr_4398_offset, expr_4398_length))), /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ shl(248, 255)), shl(255, 1)))\n /// @src 18:15377:15583 \"if (_transaction.data[0] >= 0x80) {...\"\n {\n /// @src 18:15541:15568 \"encodedDataLength = hex\\\"81\\\"\"\n var_encodedDataLength_4375_mpos := /** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ copy_literal_to_memory_1fed454f35701d8970ad2ac06907e973314989ab6eb948eda79c00e416c4bdeb()\n }\n }\n default /// @src 18:15142:15583 \"if (txDataLen != 1) {...\"\n {\n /// @src 18:15291:15356 \"encodedDataLength = RLPEncoder.encodeNonSingleBytesLen(txDataLen)\"\n var_encodedDataLength_4375_mpos := /** @src 18:15311:15356 \"RLPEncoder.encodeNonSingleBytesLen(txDataLen)\" */ fun_encodeNonSingleBytesLen(expr)\n }\n /// @src 18:15779:15806 \"RLPEncoder.encodeListLen(0)\"\n let expr_4416_mpos := /** @src 15:2171:2196 \"_encodeLength(_len, 0xc0)\" */ fun_encodeLength_5137()\n /// @src 18:15902:15933 \"encodedFixedLengthParams.length\"\n let expr_1 := /** @src 18:662:666 \"0x01\" */ mload(/** @src 18:15902:15933 \"encodedFixedLengthParams.length\" */ expr_4370_mpos)\n /// @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\"\n let sum := add(expr_1, /** @src 18:662:666 \"0x01\" */ mload(/** @src 18:15952:15976 \"encodedDataLength.length\" */ var_encodedDataLength_4375_mpos))\n /// @src 18:15995:16012 \"_transaction.data\"\n let expr_4429_offset, expr_4429_length := access_calldata_tail_bytes_calldata(var__transaction_offset, _1)\n /// @src 15:2164:2196 \"return _encodeLength(_len, 0xc0)\"\n let var_mpos := /** @src 15:2171:2196 \"_encodeLength(_len, 0xc0)\" */ fun_encodeLength(/** @src 18:16204:16222 \"uint64(listLength)\" */ convert_uint256_to_uint64(/** @src 0:373:13903 \"contract BootloaderUtilities is IBootloaderUtilities {...\" */ add(add(/** @src 18:15902:16019 \"encodedFixedLengthParams.length +...\" */ sum, /** @src 18:15995:16019 \"_transaction.data.length\" */ expr_4429_length), /** @src 18:662:666 \"0x01\" */ mload(/** @src 18:16038:16068 \"encodedAccessListLength.length\" */ expr_4416_mpos))))\n /// @src 18:16476:16493 \"_transaction.data\"\n let expr_4456_offset, expr_4456_length := access_calldata_tail_bytes_calldata(var__transaction_offset, _1)\n /// @src 18:16290:16556 \"bytes.concat(...\"\n let expr_4458_mpos := bytes_concat_stringliteral_f2ee_bytes_bytes_bytes_bytes_calldata_bytes(var_mpos, expr_4370_mpos, var_encodedDataLength_4375_mpos, expr_4456_offset, expr_4456_length, expr_4416_mpos)\n /// @src 18:16244:16570 \"return...\"\n var := /** @src 18:16263:16570 \"keccak256(...\" */ keccak256(/** @src 18:662:666 \"0x01\" */ add(/** @src 18:16263:16570 \"keccak256(...\" */ expr_4458_mpos, /** @src 18:662:666 \"0x01\" */ 0x20), mload(/** @src 18:16263:16570 \"keccak256(...\" */ expr_4458_mpos))\n }\n }\n data \".metadata\" hex\"a26469706673582212201ec62201581e0bc2ce1269f0fb33fcd1a9bb5abf856e4634e565726ba47cf39864736f6c63430008120033\"\n }\n}\n","hash":"010009c565794fbb81804c8d188e9526a70ae6f6364d25c5fc6d0d62d1ada08e","factoryDependencies":{}}},"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IAccountCodeStorage.sol":{"IAccountCodeStorage":{"abi":[{"inputs":[{"internalType":"uint256","name":"_input","type":"uint256"}],"name":"getCodeHash","outputs":[{"internalType":"bytes32","name":"codeHash","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_input","type":"uint256"}],"name":"getCodeSize","outputs":[{"internalType":"uint256","name":"codeSize","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"getRawCodeHash","outputs":[{"internalType":"bytes32","name":"codeHash","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"markAccountCodeHashAsConstructed","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bytes32","name":"_hash","type":"bytes32"}],"name":"storeAccountConstructedCodeHash","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bytes32","name":"_hash","type":"bytes32"}],"name":"storeAccountConstructingCodeHash","outputs":[],"stateMutability":"nonpayable","type":"function"}],"metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_input\",\"type\":\"uint256\"}],\"name\":\"getCodeHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"codeHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_input\",\"type\":\"uint256\"}],\"name\":\"getCodeSize\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"codeSize\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"getRawCodeHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"codeHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"markAccountCodeHashAsConstructed\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_address\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_hash\",\"type\":\"bytes32\"}],\"name\":\"storeAccountConstructedCodeHash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_address\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_hash\",\"type\":\"bytes32\"}],\"name\":\"storeAccountConstructingCodeHash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IAccountCodeStorage.sol\":\"IAccountCodeStorage\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IAccountCodeStorage.sol\":{\"keccak256\":\"0xc75d1bd8895832daeb7d59734cf0afcc47628c2c343b95cc5359d6975dc3ccaa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5be4ef8c557cd5216127b14b53b881a410707387fe9b7522a95e83f3b56b0368\",\"dweb:/ipfs/QmeAnw5BjgR4Vrz5eBkWdEMajevVaDyMbSXRPALfyHYnbe\"]}},\"version\":1}","evm":{"legacyAssembly":null,"assembly":null,"bytecode":null,"methodIdentifiers":{"getCodeHash(uint256)":"e03fe177","getCodeSize(uint256)":"1806aa18","getRawCodeHash(address)":"4de2e468","markAccountCodeHashAsConstructed(address)":"c2e4ff97","storeAccountConstructedCodeHash(address,bytes32)":"0d4651aa","storeAccountConstructingCodeHash(address,bytes32)":"4f1e1be0"}},"irOptimized":""}},"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBootloaderUtilities.sol":{"IBootloaderUtilities":{"abi":[{"inputs":[{"components":[{"internalType":"uint256","name":"txType","type":"uint256"},{"internalType":"uint256","name":"from","type":"uint256"},{"internalType":"uint256","name":"to","type":"uint256"},{"internalType":"uint256","name":"gasLimit","type":"uint256"},{"internalType":"uint256","name":"gasPerPubdataByteLimit","type":"uint256"},{"internalType":"uint256","name":"maxFeePerGas","type":"uint256"},{"internalType":"uint256","name":"maxPriorityFeePerGas","type":"uint256"},{"internalType":"uint256","name":"paymaster","type":"uint256"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256[4]","name":"reserved","type":"uint256[4]"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"bytes32[]","name":"factoryDeps","type":"bytes32[]"},{"internalType":"bytes","name":"paymasterInput","type":"bytes"},{"internalType":"bytes","name":"reservedDynamic","type":"bytes"}],"internalType":"struct Transaction","name":"_transaction","type":"tuple"}],"name":"getTransactionHashes","outputs":[{"internalType":"bytes32","name":"txHash","type":"bytes32"},{"internalType":"bytes32","name":"signedTxHash","type":"bytes32"}],"stateMutability":"view","type":"function"}],"metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"txType\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"from\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"to\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasPerPubdataByteLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPriorityFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymaster\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256[4]\",\"name\":\"reserved\",\"type\":\"uint256[4]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"factoryDeps\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes\",\"name\":\"paymasterInput\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"reservedDynamic\",\"type\":\"bytes\"}],\"internalType\":\"struct Transaction\",\"name\":\"_transaction\",\"type\":\"tuple\"}],\"name\":\"getTransactionHashes\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"signedTxHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBootloaderUtilities.sol\":\"IBootloaderUtilities\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@matterlabs/zksync-contracts/l2/system-contracts/BootloaderUtilities.sol\":{\"keccak256\":\"0xc41e925966405a28c4eb0e2469a29eadd62754859fe61166fda0ceac5610c8f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6781f926f24839f6d0f5bf5927de8a7ddcf36d7b5a047faa53d530022ecf5df\",\"dweb:/ipfs/QmRtScb3y57Ygy9xctaa448ZkRA7ouaJfxhBwdKLRN6a3z\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/Constants.sol\":{\"keccak256\":\"0x29a24f62d17d95b1f8d2d79505d056e1e99d64c1d5725a4b46fbe91a965b0c60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b56691f9a23d9b0f17ea5c6e1dcce28b780a461c34eb9340f74621dad25c5468\",\"dweb:/ipfs/QmXVJTkTBWfuiGhwvxP9Ldv7oDmAd66ruLhoQemE15F6KS\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IAccountCodeStorage.sol\":{\"keccak256\":\"0xc75d1bd8895832daeb7d59734cf0afcc47628c2c343b95cc5359d6975dc3ccaa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5be4ef8c557cd5216127b14b53b881a410707387fe9b7522a95e83f3b56b0368\",\"dweb:/ipfs/QmeAnw5BjgR4Vrz5eBkWdEMajevVaDyMbSXRPALfyHYnbe\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBootloaderUtilities.sol\":{\"keccak256\":\"0xeea7b6ea35e94ae1ee84697df2053ca660e750c90e8d9e340a515200e5de52f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9e55744cabfc9ae67d43b136c9f1be3e347dd6c9d9d2777bb699fed9bc630c5\",\"dweb:/ipfs/QmQcACmf7PfijgFjLbcNi8SRZh1bUvN4abpWUGWCRnszpS\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBytecodeCompressor.sol\":{\"keccak256\":\"0xfbe695ca62333019f21a12a1636736a1e3ffaba62059d35fe24a7694cf99a1ac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e6d6bece56e8be5391e77af4b4a1eaf18ceefb500b0fd15123878ecee1ec3f8d\",\"dweb:/ipfs/QmNfy59uBQAsyfG2Vfdy38M6TYj3nLnkbb1P2euQqQEteZ\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IContractDeployer.sol\":{\"keccak256\":\"0xcd0cb526a3c1b6c8689ca2b4ff4da2f8cb2b134dce1b983b2368e4b8ff585ad3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e853769ee9769d16a4398a4351e82214801592b711c3cc6789de36e4b84cfa71\",\"dweb:/ipfs/QmeXAc1mRQVhhaXjj15XWH2YS4tjpYqMwgdQ8xLAozcdmU\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IEthToken.sol\":{\"keccak256\":\"0x12d57fed82ecc9d955e592e65d36c0256da4f8f3ce46c59e9828664bb623be2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e95d99c4202b2fbe10706e358e09135cb9ec43563db7e72fe81913f2798f4b5\",\"dweb:/ipfs/QmbPcrDDHSQsKKXq5itMttMQnRXpYpGYMLYp9BDXoVwa7k\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IImmutableSimulator.sol\":{\"keccak256\":\"0xe71d8c877f89fb8f2e3cc83d31dea978de99c35d07354052388abb6af9e9dbcc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://47b7c0601463321723b2623873fd91365a451f7d2b26216ea48d0503c38f91e8\",\"dweb:/ipfs/QmbFjjH95ekfzeR94z3AEsak1dfmZ5R8aHsbDpGwBzjSzD\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IKnownCodesStorage.sol\":{\"keccak256\":\"0xbc460f4e40c05b0b958d94bdcc23cc64f1efe887ef722c7bd4afc66583d92846\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6956ef37fb2a64c065251fdd3dc3b8ab9abb56a23c64b4ed7a3f32dce3af2472\",\"dweb:/ipfs/QmcVUbnZ6AXbmWm8CbLWM6p2pGnpy5VmgsEjQrHqWheBM5\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IL1Messenger.sol\":{\"keccak256\":\"0x13b3d1e55c9a1752885d7101a8e6886ff04c70259dff6bb672f79ce0c63952d9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35600fe3cc1ccd2029b47e2740bfd3f100a5896acd13e9eeafd583727abc4922\",\"dweb:/ipfs/QmNWWpGGpZ9r46Cw8hNVJG3vobFwk6hHhsWjRiJUo4xB4h\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/INonceHolder.sol\":{\"keccak256\":\"0x4895f2828cac4b6c3891c59214d70d3cd31cee4324a6e70c87caf90a234776fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0b7cfe1caf4c91b44111eb2ff9ffd693ad4ec3f4f09ffd6a8c65645de1c4d23e\",\"dweb:/ipfs/QmNnzanCJq3JR6JYhGhZzUAa5VQznuBN6A8bg5nNwq9wSU\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymasterFlow.sol\":{\"keccak256\":\"0xbc73dbaf894a3fa41b52195227c73a855fdfcee713fa5ab3fba0773abe61a017\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e3fc1a2b1d3e2662a378ff3499457097e9ee1918faa830e741a38102ffa534f7\",\"dweb:/ipfs/QmatFh5y3B4XFnMZWjDuyUNCZAzh1dYF2uqEJvebxmzu6R\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/ISystemContext.sol\":{\"keccak256\":\"0xeb17460013b7bd75015f14c7aa296f7613dd331ffb2dccb4e725e708aa942ffb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7b4a3d7369d59deda677a7f2997151a146084d4d8487733ddec97924455c17d7\",\"dweb:/ipfs/QmQnCanKcV8UnBWHAV5BzDxnFd3sAQPQZbRAC44JCsgN4v\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/EfficientCall.sol\":{\"keccak256\":\"0x60a1780ada0ebad3ca24743399fb56c60bed23e1218371ec56855d214d152ea6\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2c7b490a8218a2d505b25d87c3aeb40e8867ed424e6eceb7ceb7bc557a32301a\",\"dweb:/ipfs/QmWRiRc11dHg2Vjbstxp1QCLqP23FsgtJS6R1jSfWiaBrC\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/RLPEncoder.sol\":{\"keccak256\":\"0x90e89a3db5d1d31cb60835b554c751c995339c7f7204314bc546683cad733439\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://234b0b0f64b3c984689f3c8d55ab2bf2e2a51c926aa8708aa72e365e884a4c28\",\"dweb:/ipfs/QmR2FLvaUCyBS6HnhZt5cp5nmjdefjdSVSymuYVG9qToBF\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractHelper.sol\":{\"keccak256\":\"0x5eb2c2a098cf0c4cd39be7842682a20ef575dccbb5d10713f98313788212411a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e1c1a52053dcf3b347a7161655f4e8a396be0c663d0d30b60953cf4e81e68848\",\"dweb:/ipfs/Qmat7quKhUTrjLDyPcAqMdpg4KP2jQhbuoCTGq7YENXHZ4\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractsCaller.sol\":{\"keccak256\":\"0x5033a1008942cb59413e47ea876f99bc5cd2b4b72308db003579ee1add07571f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11866ee670865a59e96ee25971d32abbe6a012a65ee0eca8a37aa11fe463e81f\",\"dweb:/ipfs/Qme3fnqFJgtnpRHf21Xj8qrE46P3nKwMZTywJytRbMjBZg\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/TransactionHelper.sol\":{\"keccak256\":\"0xb8ad21ccd87317971347a7a07388a1647944f62de02dbf2594632497e3dec330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://56369664918121fd8276ef09e35e1c5d64b8616ee38ad8d88fd45fbb0ddf381d\",\"dweb:/ipfs/QmPENE5H4Lg94MCpQ7gjah26Muqhc7QYAcyXQ9sFHxViGq\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/Utils.sol\":{\"keccak256\":\"0x323d26123de797a41955a05e68be86a6fe55aa62134ec59a8f89faa5bd04c416\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e0fd70642c2ded7d486bc5a3faac55d3357c20bb10d4243fef61962cf70e641\",\"dweb:/ipfs/QmWqQ3x27z2iCNNaAfXVAJ3FX2tHvUYu1t1Ze27pdbCRbK\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x35e258421ae206f3db37281cea70871b4c3553914734aa76139a41af60ac1abb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ef94b6bc4ee356db612a1849c615f7dd4b15542d6c8584c86bb9243a7913cf0\",\"dweb:/ipfs/QmaxFj5NFpAjjitZtHPNS9PPtCuBATaRz9ktDDRCQCQ83y\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x84d04bd9b87928b261736f90a86cbb15d8cf6f80560151366370fa79313f3cb5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7fd52b96d25ba9ca6ba26a591d2726c0256185b1c107b9a06834ca9ce0bae240\",\"dweb:/ipfs/QmYbgPqwwX1hUi6HfqcPM82bqgbjLYWDCXv83NxCvivL43\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/utils/Address.sol\":{\"keccak256\":\"0xef97d5bcb540814e1371a1e355a170919412e0d6754fdaa003b6a602e6a7ea4d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41a8f093a740cdcb224e48b2c4c2868f8e86dcdd3bc96ded6b10d29714b6f9a4\",\"dweb:/ipfs/QmSsgQmcY8n1a2bCFxdpWGS3YV63TZyZD77ycNHdpMDySL\"]}},\"version\":1}","evm":{"legacyAssembly":null,"assembly":null,"bytecode":null,"methodIdentifiers":{"getTransactionHashes((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256[4],bytes,bytes,bytes32[],bytes,bytes))":"ebe4a3d7"}},"irOptimized":""}},"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBytecodeCompressor.sol":{"IBytecodeCompressor":{"abi":[{"inputs":[{"internalType":"bytes","name":"_bytecode","type":"bytes"},{"internalType":"bytes","name":"_rawCompressedData","type":"bytes"}],"name":"publishCompressedBytecode","outputs":[{"internalType":"bytes32","name":"bytecodeHash","type":"bytes32"}],"stateMutability":"payable","type":"function"}],"metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_bytecode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_rawCompressedData\",\"type\":\"bytes\"}],\"name\":\"publishCompressedBytecode\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"bytecodeHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBytecodeCompressor.sol\":\"IBytecodeCompressor\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBytecodeCompressor.sol\":{\"keccak256\":\"0xfbe695ca62333019f21a12a1636736a1e3ffaba62059d35fe24a7694cf99a1ac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e6d6bece56e8be5391e77af4b4a1eaf18ceefb500b0fd15123878ecee1ec3f8d\",\"dweb:/ipfs/QmNfy59uBQAsyfG2Vfdy38M6TYj3nLnkbb1P2euQqQEteZ\"]}},\"version\":1}","evm":{"legacyAssembly":null,"assembly":null,"bytecode":null,"methodIdentifiers":{"publishCompressedBytecode(bytes,bytes)":"f5e69a47"}},"irOptimized":""}},"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IContractDeployer.sol":{"IContractDeployer":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"accountAddress","type":"address"},{"indexed":false,"internalType":"enum IContractDeployer.AccountNonceOrdering","name":"nonceOrdering","type":"uint8"}],"name":"AccountNonceOrderingUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"accountAddress","type":"address"},{"indexed":false,"internalType":"enum IContractDeployer.AccountAbstractionVersion","name":"aaVersion","type":"uint8"}],"name":"AccountVersionUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"deployerAddress","type":"address"},{"indexed":true,"internalType":"bytes32","name":"bytecodeHash","type":"bytes32"},{"indexed":true,"internalType":"address","name":"contractAddress","type":"address"}],"name":"ContractDeployed","type":"event"},{"inputs":[{"internalType":"bytes32","name":"_salt","type":"bytes32"},{"internalType":"bytes32","name":"_bytecodeHash","type":"bytes32"},{"internalType":"bytes","name":"_input","type":"bytes"}],"name":"create","outputs":[{"internalType":"address","name":"newAddress","type":"address"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_salt","type":"bytes32"},{"internalType":"bytes32","name":"_bytecodeHash","type":"bytes32"},{"internalType":"bytes","name":"_input","type":"bytes"}],"name":"create2","outputs":[{"internalType":"address","name":"newAddress","type":"address"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_salt","type":"bytes32"},{"internalType":"bytes32","name":"_bytecodeHash","type":"bytes32"},{"internalType":"bytes","name":"_input","type":"bytes"},{"internalType":"enum IContractDeployer.AccountAbstractionVersion","name":"_aaVersion","type":"uint8"}],"name":"create2Account","outputs":[{"internalType":"address","name":"newAddress","type":"address"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_salt","type":"bytes32"},{"internalType":"bytes32","name":"_bytecodeHash","type":"bytes32"},{"internalType":"bytes","name":"_input","type":"bytes"},{"internalType":"enum IContractDeployer.AccountAbstractionVersion","name":"_aaVersion","type":"uint8"}],"name":"createAccount","outputs":[{"internalType":"address","name":"newAddress","type":"address"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"getAccountInfo","outputs":[{"components":[{"internalType":"enum IContractDeployer.AccountAbstractionVersion","name":"supportedAAVersion","type":"uint8"},{"internalType":"enum IContractDeployer.AccountNonceOrdering","name":"nonceOrdering","type":"uint8"}],"internalType":"struct IContractDeployer.AccountInfo","name":"info","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"internalType":"uint256","name":"_senderNonce","type":"uint256"}],"name":"getNewAddressCreate","outputs":[{"internalType":"address","name":"newAddress","type":"address"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"internalType":"bytes32","name":"_bytecodeHash","type":"bytes32"},{"internalType":"bytes32","name":"_salt","type":"bytes32"},{"internalType":"bytes","name":"_input","type":"bytes"}],"name":"getNewAddressCreate2","outputs":[{"internalType":"address","name":"newAddress","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"enum IContractDeployer.AccountAbstractionVersion","name":"_version","type":"uint8"}],"name":"updateAccountVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"enum IContractDeployer.AccountNonceOrdering","name":"_nonceOrdering","type":"uint8"}],"name":"updateNonceOrdering","outputs":[],"stateMutability":"nonpayable","type":"function"}],"metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"accountAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"enum IContractDeployer.AccountNonceOrdering\",\"name\":\"nonceOrdering\",\"type\":\"uint8\"}],\"name\":\"AccountNonceOrderingUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"accountAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"enum IContractDeployer.AccountAbstractionVersion\",\"name\":\"aaVersion\",\"type\":\"uint8\"}],\"name\":\"AccountVersionUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"deployerAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"bytecodeHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"}],\"name\":\"ContractDeployed\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_bytecodeHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_input\",\"type\":\"bytes\"}],\"name\":\"create\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"newAddress\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_bytecodeHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_input\",\"type\":\"bytes\"}],\"name\":\"create2\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"newAddress\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_bytecodeHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_input\",\"type\":\"bytes\"},{\"internalType\":\"enum IContractDeployer.AccountAbstractionVersion\",\"name\":\"_aaVersion\",\"type\":\"uint8\"}],\"name\":\"create2Account\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"newAddress\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_bytecodeHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_input\",\"type\":\"bytes\"},{\"internalType\":\"enum IContractDeployer.AccountAbstractionVersion\",\"name\":\"_aaVersion\",\"type\":\"uint8\"}],\"name\":\"createAccount\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"newAddress\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"getAccountInfo\",\"outputs\":[{\"components\":[{\"internalType\":\"enum IContractDeployer.AccountAbstractionVersion\",\"name\":\"supportedAAVersion\",\"type\":\"uint8\"},{\"internalType\":\"enum IContractDeployer.AccountNonceOrdering\",\"name\":\"nonceOrdering\",\"type\":\"uint8\"}],\"internalType\":\"struct IContractDeployer.AccountInfo\",\"name\":\"info\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_senderNonce\",\"type\":\"uint256\"}],\"name\":\"getNewAddressCreate\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"newAddress\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_bytecodeHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_input\",\"type\":\"bytes\"}],\"name\":\"getNewAddressCreate2\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"newAddress\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum IContractDeployer.AccountAbstractionVersion\",\"name\":\"_version\",\"type\":\"uint8\"}],\"name\":\"updateAccountVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum IContractDeployer.AccountNonceOrdering\",\"name\":\"_nonceOrdering\",\"type\":\"uint8\"}],\"name\":\"updateNonceOrdering\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"create(bytes32,bytes32,bytes)\":{\"details\":\"While the `_salt` parameter is not used anywhere here, it is still needed for consistency between `create` and `create2` functions (required by the compiler).\"},\"createAccount(bytes32,bytes32,bytes,uint8)\":{\"details\":\"While `_salt` is never used here, we leave it here as a parameter for the consistency with the `create` function.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getAccountInfo(address)\":{\"notice\":\"Returns the information about a certain AA.\"},\"updateAccountVersion(uint8)\":{\"notice\":\"Can be called by an account to update its account version\"},\"updateNonceOrdering(uint8)\":{\"notice\":\"Can be called by an account to update its nonce ordering\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IContractDeployer.sol\":\"IContractDeployer\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IContractDeployer.sol\":{\"keccak256\":\"0xcd0cb526a3c1b6c8689ca2b4ff4da2f8cb2b134dce1b983b2368e4b8ff585ad3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e853769ee9769d16a4398a4351e82214801592b711c3cc6789de36e4b84cfa71\",\"dweb:/ipfs/QmeXAc1mRQVhhaXjj15XWH2YS4tjpYqMwgdQ8xLAozcdmU\"]}},\"version\":1}","evm":{"legacyAssembly":null,"assembly":null,"bytecode":null,"methodIdentifiers":{"create(bytes32,bytes32,bytes)":"9c4d535b","create2(bytes32,bytes32,bytes)":"3cda3351","create2Account(bytes32,bytes32,bytes,uint8)":"5d382700","createAccount(bytes32,bytes32,bytes,uint8)":"ecf95b8a","getAccountInfo(address)":"7b510fe8","getNewAddressCreate(address,uint256)":"187598a5","getNewAddressCreate2(address,bytes32,bytes32,bytes)":"84da1fb4","updateAccountVersion(uint8)":"57180981","updateNonceOrdering(uint8)":"ec8067c7"}},"irOptimized":""}},"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IEthToken.sol":{"IEthToken":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_l2Sender","type":"address"},{"indexed":true,"internalType":"address","name":"_l1Receiver","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"Withdrawal","type":"event"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"_account","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":"pure","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","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":"_amount","type":"uint256"}],"name":"transferFromTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_l1Receiver","type":"address"}],"name":"withdraw","outputs":[],"stateMutability":"payable","type":"function"}],"metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Mint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_l2Sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_l1Receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"Withdrawal\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_account\",\"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\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"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\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"transferFromTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_l1Receiver\",\"type\":\"address\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IEthToken.sol\":\"IEthToken\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IEthToken.sol\":{\"keccak256\":\"0x12d57fed82ecc9d955e592e65d36c0256da4f8f3ce46c59e9828664bb623be2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e95d99c4202b2fbe10706e358e09135cb9ec43563db7e72fe81913f2798f4b5\",\"dweb:/ipfs/QmbPcrDDHSQsKKXq5itMttMQnRXpYpGYMLYp9BDXoVwa7k\"]}},\"version\":1}","evm":{"legacyAssembly":null,"assembly":null,"bytecode":null,"methodIdentifiers":{"balanceOf(uint256)":"9cc7f708","decimals()":"313ce567","mint(address,uint256)":"40c10f19","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transferFromTo(address,address,uint256)":"579952fc","withdraw(address)":"51cff8d9"}},"irOptimized":""}},"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IImmutableSimulator.sol":{"IImmutableSimulator":{"abi":[{"inputs":[{"internalType":"address","name":"_dest","type":"address"},{"internalType":"uint256","name":"_index","type":"uint256"}],"name":"getImmutable","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_dest","type":"address"},{"components":[{"internalType":"uint256","name":"index","type":"uint256"},{"internalType":"bytes32","name":"value","type":"bytes32"}],"internalType":"struct ImmutableData[]","name":"_immutables","type":"tuple[]"}],"name":"setImmutables","outputs":[],"stateMutability":"nonpayable","type":"function"}],"metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_dest\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_index\",\"type\":\"uint256\"}],\"name\":\"getImmutable\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_dest\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"internalType\":\"struct ImmutableData[]\",\"name\":\"_immutables\",\"type\":\"tuple[]\"}],\"name\":\"setImmutables\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IImmutableSimulator.sol\":\"IImmutableSimulator\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IImmutableSimulator.sol\":{\"keccak256\":\"0xe71d8c877f89fb8f2e3cc83d31dea978de99c35d07354052388abb6af9e9dbcc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://47b7c0601463321723b2623873fd91365a451f7d2b26216ea48d0503c38f91e8\",\"dweb:/ipfs/QmbFjjH95ekfzeR94z3AEsak1dfmZ5R8aHsbDpGwBzjSzD\"]}},\"version\":1}","evm":{"legacyAssembly":null,"assembly":null,"bytecode":null,"methodIdentifiers":{"getImmutable(address,uint256)":"310ab089","setImmutables(address,(uint256,bytes32)[])":"ad7e232e"}},"irOptimized":""}},"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IKnownCodesStorage.sol":{"IKnownCodesStorage":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"bytecodeHash","type":"bytes32"},{"indexed":true,"internalType":"bool","name":"sendBytecodeToL1","type":"bool"}],"name":"MarkedAsKnown","type":"event"},{"inputs":[{"internalType":"bytes32","name":"_hash","type":"bytes32"}],"name":"getMarker","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_bytecodeHash","type":"bytes32"},{"internalType":"bytes32","name":"_l1PreimageHash","type":"bytes32"},{"internalType":"uint256","name":"_l1PreimageBytesLen","type":"uint256"}],"name":"markBytecodeAsPublished","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_shouldSendToL1","type":"bool"},{"internalType":"bytes32[]","name":"_hashes","type":"bytes32[]"}],"name":"markFactoryDeps","outputs":[],"stateMutability":"nonpayable","type":"function"}],"metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"bytecodeHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bool\",\"name\":\"sendBytecodeToL1\",\"type\":\"bool\"}],\"name\":\"MarkedAsKnown\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_hash\",\"type\":\"bytes32\"}],\"name\":\"getMarker\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_bytecodeHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_l1PreimageHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_l1PreimageBytesLen\",\"type\":\"uint256\"}],\"name\":\"markBytecodeAsPublished\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"_shouldSendToL1\",\"type\":\"bool\"},{\"internalType\":\"bytes32[]\",\"name\":\"_hashes\",\"type\":\"bytes32[]\"}],\"name\":\"markFactoryDeps\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IKnownCodesStorage.sol\":\"IKnownCodesStorage\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IKnownCodesStorage.sol\":{\"keccak256\":\"0xbc460f4e40c05b0b958d94bdcc23cc64f1efe887ef722c7bd4afc66583d92846\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6956ef37fb2a64c065251fdd3dc3b8ab9abb56a23c64b4ed7a3f32dce3af2472\",\"dweb:/ipfs/QmcVUbnZ6AXbmWm8CbLWM6p2pGnpy5VmgsEjQrHqWheBM5\"]}},\"version\":1}","evm":{"legacyAssembly":null,"assembly":null,"bytecode":null,"methodIdentifiers":{"getMarker(bytes32)":"4c6314f0","markBytecodeAsPublished(bytes32,bytes32,uint256)":"24a55db9","markFactoryDeps(bool,bytes32[])":"e516761e"}},"irOptimized":""}},"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IL1Messenger.sol":{"IL1Messenger":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_sender","type":"address"},{"indexed":true,"internalType":"bytes32","name":"_hash","type":"bytes32"},{"indexed":false,"internalType":"bytes","name":"_message","type":"bytes"}],"name":"L1MessageSent","type":"event"},{"inputs":[{"internalType":"bytes","name":"_message","type":"bytes"}],"name":"sendToL1","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"}],"metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_hash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"}],\"name\":\"L1MessageSent\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"}],\"name\":\"sendToL1\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IL1Messenger.sol\":\"IL1Messenger\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IL1Messenger.sol\":{\"keccak256\":\"0x13b3d1e55c9a1752885d7101a8e6886ff04c70259dff6bb672f79ce0c63952d9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35600fe3cc1ccd2029b47e2740bfd3f100a5896acd13e9eeafd583727abc4922\",\"dweb:/ipfs/QmNWWpGGpZ9r46Cw8hNVJG3vobFwk6hHhsWjRiJUo4xB4h\"]}},\"version\":1}","evm":{"legacyAssembly":null,"assembly":null,"bytecode":null,"methodIdentifiers":{"sendToL1(bytes)":"62f84b24"}},"irOptimized":""}},"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/INonceHolder.sol":{"INonceHolder":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"accountAddress","type":"address"},{"indexed":true,"internalType":"uint256","name":"key","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"ValueSetUnderNonce","type":"event"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"getDeploymentNonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"getMinNonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"getRawNonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_key","type":"uint256"}],"name":"getValueUnderNonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"increaseMinNonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"incrementDeploymentNonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_expectedNonce","type":"uint256"}],"name":"incrementMinNonceIfEquals","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"uint256","name":"_nonce","type":"uint256"}],"name":"isNonceUsed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_key","type":"uint256"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"setValueUnderNonce","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"uint256","name":"_key","type":"uint256"},{"internalType":"bool","name":"_shouldBeUsed","type":"bool"}],"name":"validateNonceUsage","outputs":[],"stateMutability":"view","type":"function"}],"metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"accountAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"key\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"ValueSetUnderNonce\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"getDeploymentNonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"getMinNonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"getRawNonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_key\",\"type\":\"uint256\"}],\"name\":\"getValueUnderNonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"increaseMinNonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"incrementDeploymentNonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_expectedNonce\",\"type\":\"uint256\"}],\"name\":\"incrementMinNonceIfEquals\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_address\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"isNonceUsed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_key\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"setValueUnderNonce\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_address\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_key\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"_shouldBeUsed\",\"type\":\"bool\"}],\"name\":\"validateNonceUsage\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Matter Labs\",\"details\":\"Interface of the nonce holder contract -- a contract used by the system to ensure that there is always a unique identifier for a transaction with a particular account (we call it nonce). In other words, the pair of (address, nonce) should always be unique.Custom accounts should use methods of this contract to store nonces or other possible unique identifiers for the transaction.\",\"kind\":\"dev\",\"methods\":{\"getDeploymentNonce(address)\":{\"details\":\"Returns the deployment nonce for the accounts used for CREATE opcode.\"},\"getMinNonce(address)\":{\"details\":\"Returns the current minimal nonce for account.\"},\"getRawNonce(address)\":{\"details\":\"Returns the raw version of the current minimal nonce (equal to minNonce + 2^128 * deployment nonce).\"},\"getValueUnderNonce(uint256)\":{\"details\":\"Gets the value stored inside a custom nonce.\"},\"increaseMinNonce(uint256)\":{\"details\":\"Increases the minimal nonce for the msg.sender.\"},\"incrementDeploymentNonce(address)\":{\"details\":\"Increments the deployment nonce for the account and returns the previous one.\"},\"incrementMinNonceIfEquals(uint256)\":{\"details\":\"A convenience method to increment the minimal nonce if it is equal to the `_expectedNonce`.\"},\"isNonceUsed(address,uint256)\":{\"details\":\"Returns whether a nonce has been used for an account.\"},\"setValueUnderNonce(uint256,uint256)\":{\"details\":\"Sets the nonce value `key` as used.\"},\"validateNonceUsage(address,uint256,bool)\":{\"details\":\"Determines whether a certain nonce has been already used for an account.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/INonceHolder.sol\":\"INonceHolder\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/INonceHolder.sol\":{\"keccak256\":\"0x4895f2828cac4b6c3891c59214d70d3cd31cee4324a6e70c87caf90a234776fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0b7cfe1caf4c91b44111eb2ff9ffd693ad4ec3f4f09ffd6a8c65645de1c4d23e\",\"dweb:/ipfs/QmNnzanCJq3JR6JYhGhZzUAa5VQznuBN6A8bg5nNwq9wSU\"]}},\"version\":1}","evm":{"legacyAssembly":null,"assembly":null,"bytecode":null,"methodIdentifiers":{"getDeploymentNonce(address)":"fb1a9a57","getMinNonce(address)":"896909dc","getRawNonce(address)":"5aa9b6b5","getValueUnderNonce(uint256)":"55d35d18","increaseMinNonce(uint256)":"38a78092","incrementDeploymentNonce(address)":"306395c6","incrementMinNonceIfEquals(uint256)":"e1239cd8","isNonceUsed(address,uint256)":"cab7e8eb","setValueUnderNonce(uint256,uint256)":"155fd27a","validateNonceUsage(address,uint256,bool)":"6ee1dc20"}},"irOptimized":""}},"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymaster.sol":{"IPaymaster":{"abi":[{"inputs":[{"internalType":"bytes","name":"_context","type":"bytes"},{"components":[{"internalType":"uint256","name":"txType","type":"uint256"},{"internalType":"uint256","name":"from","type":"uint256"},{"internalType":"uint256","name":"to","type":"uint256"},{"internalType":"uint256","name":"gasLimit","type":"uint256"},{"internalType":"uint256","name":"gasPerPubdataByteLimit","type":"uint256"},{"internalType":"uint256","name":"maxFeePerGas","type":"uint256"},{"internalType":"uint256","name":"maxPriorityFeePerGas","type":"uint256"},{"internalType":"uint256","name":"paymaster","type":"uint256"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256[4]","name":"reserved","type":"uint256[4]"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"bytes32[]","name":"factoryDeps","type":"bytes32[]"},{"internalType":"bytes","name":"paymasterInput","type":"bytes"},{"internalType":"bytes","name":"reservedDynamic","type":"bytes"}],"internalType":"struct Transaction","name":"_transaction","type":"tuple"},{"internalType":"bytes32","name":"_txHash","type":"bytes32"},{"internalType":"bytes32","name":"_suggestedSignedHash","type":"bytes32"},{"internalType":"enum ExecutionResult","name":"_txResult","type":"uint8"},{"internalType":"uint256","name":"_maxRefundedGas","type":"uint256"}],"name":"postTransaction","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_txHash","type":"bytes32"},{"internalType":"bytes32","name":"_suggestedSignedHash","type":"bytes32"},{"components":[{"internalType":"uint256","name":"txType","type":"uint256"},{"internalType":"uint256","name":"from","type":"uint256"},{"internalType":"uint256","name":"to","type":"uint256"},{"internalType":"uint256","name":"gasLimit","type":"uint256"},{"internalType":"uint256","name":"gasPerPubdataByteLimit","type":"uint256"},{"internalType":"uint256","name":"maxFeePerGas","type":"uint256"},{"internalType":"uint256","name":"maxPriorityFeePerGas","type":"uint256"},{"internalType":"uint256","name":"paymaster","type":"uint256"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256[4]","name":"reserved","type":"uint256[4]"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"bytes32[]","name":"factoryDeps","type":"bytes32[]"},{"internalType":"bytes","name":"paymasterInput","type":"bytes"},{"internalType":"bytes","name":"reservedDynamic","type":"bytes"}],"internalType":"struct Transaction","name":"_transaction","type":"tuple"}],"name":"validateAndPayForPaymasterTransaction","outputs":[{"internalType":"bytes4","name":"magic","type":"bytes4"},{"internalType":"bytes","name":"context","type":"bytes"}],"stateMutability":"payable","type":"function"}],"metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_context\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"txType\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"from\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"to\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasPerPubdataByteLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPriorityFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymaster\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256[4]\",\"name\":\"reserved\",\"type\":\"uint256[4]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"factoryDeps\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes\",\"name\":\"paymasterInput\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"reservedDynamic\",\"type\":\"bytes\"}],\"internalType\":\"struct Transaction\",\"name\":\"_transaction\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"_txHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_suggestedSignedHash\",\"type\":\"bytes32\"},{\"internalType\":\"enum ExecutionResult\",\"name\":\"_txResult\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"_maxRefundedGas\",\"type\":\"uint256\"}],\"name\":\"postTransaction\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_txHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_suggestedSignedHash\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"txType\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"from\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"to\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasPerPubdataByteLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPriorityFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymaster\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256[4]\",\"name\":\"reserved\",\"type\":\"uint256[4]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"factoryDeps\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes\",\"name\":\"paymasterInput\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"reservedDynamic\",\"type\":\"bytes\"}],\"internalType\":\"struct Transaction\",\"name\":\"_transaction\",\"type\":\"tuple\"}],\"name\":\"validateAndPayForPaymasterTransaction\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"magic\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"context\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"postTransaction(bytes,(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256[4],bytes,bytes,bytes32[],bytes,bytes),bytes32,bytes32,uint8,uint256)\":{\"details\":\"Called by the bootloader after the execution of the transaction. Please note that there is no guarantee that this method will be called at all. Unlike the original EIP4337, this method won't be called if the transaction execution results in out-of-gas.The exact amount refunded depends on the gas spent by the \\\"postOp\\\" itself and so the developers should take that into account.\",\"params\":{\"_context\":\", the context of the execution, returned by the \\\"validateAndPayForPaymasterTransaction\\\" method.\",\"_maxRefundedGas\":\", the upper bound on the amout of gas that could be refunded to the paymaster.\",\"_transaction\":\", the users' transaction.\",\"_txResult\":\", the result of the transaction execution (success or failure).\"}},\"validateAndPayForPaymasterTransaction(bytes32,bytes32,(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256[4],bytes,bytes,bytes32[],bytes,bytes))\":{\"details\":\"Called by the bootloader to verify that the paymaster agrees to pay for the fee for the transaction. This transaction should also send the necessary amount of funds onto the bootloader address.The developer should strive to preserve as many steps as possible both for valid and invalid transactions as this very method is also used during the gas fee estimation (without some of the necessary data, e.g. signature).\",\"params\":{\"_suggestedSignedHash\":\"The hash of the transaction that is signed by an EOA\",\"_transaction\":\"The transaction itself.\",\"_txHash\":\"The hash of the transaction\"},\"returns\":{\"context\":\"The \\\"context\\\" of the transaction: an array of bytes of length at most 1024 bytes, which will be passed to the `postTransaction` method of the account.\",\"magic\":\"The value that should be equal to the signature of the validateAndPayForPaymasterTransaction if the paymaster agrees to pay for the transaction.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymaster.sol\":\"IPaymaster\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@matterlabs/zksync-contracts/l2/system-contracts/BootloaderUtilities.sol\":{\"keccak256\":\"0xc41e925966405a28c4eb0e2469a29eadd62754859fe61166fda0ceac5610c8f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6781f926f24839f6d0f5bf5927de8a7ddcf36d7b5a047faa53d530022ecf5df\",\"dweb:/ipfs/QmRtScb3y57Ygy9xctaa448ZkRA7ouaJfxhBwdKLRN6a3z\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/Constants.sol\":{\"keccak256\":\"0x29a24f62d17d95b1f8d2d79505d056e1e99d64c1d5725a4b46fbe91a965b0c60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b56691f9a23d9b0f17ea5c6e1dcce28b780a461c34eb9340f74621dad25c5468\",\"dweb:/ipfs/QmXVJTkTBWfuiGhwvxP9Ldv7oDmAd66ruLhoQemE15F6KS\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IAccountCodeStorage.sol\":{\"keccak256\":\"0xc75d1bd8895832daeb7d59734cf0afcc47628c2c343b95cc5359d6975dc3ccaa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5be4ef8c557cd5216127b14b53b881a410707387fe9b7522a95e83f3b56b0368\",\"dweb:/ipfs/QmeAnw5BjgR4Vrz5eBkWdEMajevVaDyMbSXRPALfyHYnbe\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBootloaderUtilities.sol\":{\"keccak256\":\"0xeea7b6ea35e94ae1ee84697df2053ca660e750c90e8d9e340a515200e5de52f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9e55744cabfc9ae67d43b136c9f1be3e347dd6c9d9d2777bb699fed9bc630c5\",\"dweb:/ipfs/QmQcACmf7PfijgFjLbcNi8SRZh1bUvN4abpWUGWCRnszpS\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBytecodeCompressor.sol\":{\"keccak256\":\"0xfbe695ca62333019f21a12a1636736a1e3ffaba62059d35fe24a7694cf99a1ac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e6d6bece56e8be5391e77af4b4a1eaf18ceefb500b0fd15123878ecee1ec3f8d\",\"dweb:/ipfs/QmNfy59uBQAsyfG2Vfdy38M6TYj3nLnkbb1P2euQqQEteZ\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IContractDeployer.sol\":{\"keccak256\":\"0xcd0cb526a3c1b6c8689ca2b4ff4da2f8cb2b134dce1b983b2368e4b8ff585ad3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e853769ee9769d16a4398a4351e82214801592b711c3cc6789de36e4b84cfa71\",\"dweb:/ipfs/QmeXAc1mRQVhhaXjj15XWH2YS4tjpYqMwgdQ8xLAozcdmU\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IEthToken.sol\":{\"keccak256\":\"0x12d57fed82ecc9d955e592e65d36c0256da4f8f3ce46c59e9828664bb623be2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e95d99c4202b2fbe10706e358e09135cb9ec43563db7e72fe81913f2798f4b5\",\"dweb:/ipfs/QmbPcrDDHSQsKKXq5itMttMQnRXpYpGYMLYp9BDXoVwa7k\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IImmutableSimulator.sol\":{\"keccak256\":\"0xe71d8c877f89fb8f2e3cc83d31dea978de99c35d07354052388abb6af9e9dbcc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://47b7c0601463321723b2623873fd91365a451f7d2b26216ea48d0503c38f91e8\",\"dweb:/ipfs/QmbFjjH95ekfzeR94z3AEsak1dfmZ5R8aHsbDpGwBzjSzD\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IKnownCodesStorage.sol\":{\"keccak256\":\"0xbc460f4e40c05b0b958d94bdcc23cc64f1efe887ef722c7bd4afc66583d92846\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6956ef37fb2a64c065251fdd3dc3b8ab9abb56a23c64b4ed7a3f32dce3af2472\",\"dweb:/ipfs/QmcVUbnZ6AXbmWm8CbLWM6p2pGnpy5VmgsEjQrHqWheBM5\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IL1Messenger.sol\":{\"keccak256\":\"0x13b3d1e55c9a1752885d7101a8e6886ff04c70259dff6bb672f79ce0c63952d9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35600fe3cc1ccd2029b47e2740bfd3f100a5896acd13e9eeafd583727abc4922\",\"dweb:/ipfs/QmNWWpGGpZ9r46Cw8hNVJG3vobFwk6hHhsWjRiJUo4xB4h\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/INonceHolder.sol\":{\"keccak256\":\"0x4895f2828cac4b6c3891c59214d70d3cd31cee4324a6e70c87caf90a234776fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0b7cfe1caf4c91b44111eb2ff9ffd693ad4ec3f4f09ffd6a8c65645de1c4d23e\",\"dweb:/ipfs/QmNnzanCJq3JR6JYhGhZzUAa5VQznuBN6A8bg5nNwq9wSU\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymaster.sol\":{\"keccak256\":\"0xeac1f3eecbd9a12dd729a1813d9aabdaf6501fab82c4e11bdcf4380b20e36352\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b9796ea25da7821f9438c4c2199edeeb85040c04b146b58995a157e2eabed90a\",\"dweb:/ipfs/QmSM87mwrEDxC13mS8k9ZWREFibk2fbQd5obvt5PXPWToR\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymasterFlow.sol\":{\"keccak256\":\"0xbc73dbaf894a3fa41b52195227c73a855fdfcee713fa5ab3fba0773abe61a017\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e3fc1a2b1d3e2662a378ff3499457097e9ee1918faa830e741a38102ffa534f7\",\"dweb:/ipfs/QmatFh5y3B4XFnMZWjDuyUNCZAzh1dYF2uqEJvebxmzu6R\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/ISystemContext.sol\":{\"keccak256\":\"0xeb17460013b7bd75015f14c7aa296f7613dd331ffb2dccb4e725e708aa942ffb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7b4a3d7369d59deda677a7f2997151a146084d4d8487733ddec97924455c17d7\",\"dweb:/ipfs/QmQnCanKcV8UnBWHAV5BzDxnFd3sAQPQZbRAC44JCsgN4v\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/EfficientCall.sol\":{\"keccak256\":\"0x60a1780ada0ebad3ca24743399fb56c60bed23e1218371ec56855d214d152ea6\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2c7b490a8218a2d505b25d87c3aeb40e8867ed424e6eceb7ceb7bc557a32301a\",\"dweb:/ipfs/QmWRiRc11dHg2Vjbstxp1QCLqP23FsgtJS6R1jSfWiaBrC\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/RLPEncoder.sol\":{\"keccak256\":\"0x90e89a3db5d1d31cb60835b554c751c995339c7f7204314bc546683cad733439\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://234b0b0f64b3c984689f3c8d55ab2bf2e2a51c926aa8708aa72e365e884a4c28\",\"dweb:/ipfs/QmR2FLvaUCyBS6HnhZt5cp5nmjdefjdSVSymuYVG9qToBF\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractHelper.sol\":{\"keccak256\":\"0x5eb2c2a098cf0c4cd39be7842682a20ef575dccbb5d10713f98313788212411a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e1c1a52053dcf3b347a7161655f4e8a396be0c663d0d30b60953cf4e81e68848\",\"dweb:/ipfs/Qmat7quKhUTrjLDyPcAqMdpg4KP2jQhbuoCTGq7YENXHZ4\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractsCaller.sol\":{\"keccak256\":\"0x5033a1008942cb59413e47ea876f99bc5cd2b4b72308db003579ee1add07571f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11866ee670865a59e96ee25971d32abbe6a012a65ee0eca8a37aa11fe463e81f\",\"dweb:/ipfs/Qme3fnqFJgtnpRHf21Xj8qrE46P3nKwMZTywJytRbMjBZg\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/TransactionHelper.sol\":{\"keccak256\":\"0xb8ad21ccd87317971347a7a07388a1647944f62de02dbf2594632497e3dec330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://56369664918121fd8276ef09e35e1c5d64b8616ee38ad8d88fd45fbb0ddf381d\",\"dweb:/ipfs/QmPENE5H4Lg94MCpQ7gjah26Muqhc7QYAcyXQ9sFHxViGq\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/Utils.sol\":{\"keccak256\":\"0x323d26123de797a41955a05e68be86a6fe55aa62134ec59a8f89faa5bd04c416\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e0fd70642c2ded7d486bc5a3faac55d3357c20bb10d4243fef61962cf70e641\",\"dweb:/ipfs/QmWqQ3x27z2iCNNaAfXVAJ3FX2tHvUYu1t1Ze27pdbCRbK\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x35e258421ae206f3db37281cea70871b4c3553914734aa76139a41af60ac1abb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ef94b6bc4ee356db612a1849c615f7dd4b15542d6c8584c86bb9243a7913cf0\",\"dweb:/ipfs/QmaxFj5NFpAjjitZtHPNS9PPtCuBATaRz9ktDDRCQCQ83y\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x84d04bd9b87928b261736f90a86cbb15d8cf6f80560151366370fa79313f3cb5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7fd52b96d25ba9ca6ba26a591d2726c0256185b1c107b9a06834ca9ce0bae240\",\"dweb:/ipfs/QmYbgPqwwX1hUi6HfqcPM82bqgbjLYWDCXv83NxCvivL43\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/utils/Address.sol\":{\"keccak256\":\"0xef97d5bcb540814e1371a1e355a170919412e0d6754fdaa003b6a602e6a7ea4d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41a8f093a740cdcb224e48b2c4c2868f8e86dcdd3bc96ded6b10d29714b6f9a4\",\"dweb:/ipfs/QmSsgQmcY8n1a2bCFxdpWGS3YV63TZyZD77ycNHdpMDySL\"]}},\"version\":1}","evm":{"legacyAssembly":null,"assembly":null,"bytecode":null,"methodIdentifiers":{"postTransaction(bytes,(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256[4],bytes,bytes,bytes32[],bytes,bytes),bytes32,bytes32,uint8,uint256)":"817b17f0","validateAndPayForPaymasterTransaction(bytes32,bytes32,(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256[4],bytes,bytes,bytes32[],bytes,bytes))":"038a24bc"}},"irOptimized":""}},"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymasterFlow.sol":{"IPaymasterFlow":{"abi":[{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_minAllowance","type":"uint256"},{"internalType":"bytes","name":"_innerInput","type":"bytes"}],"name":"approvalBased","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"input","type":"bytes"}],"name":"general","outputs":[],"stateMutability":"nonpayable","type":"function"}],"metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_minAllowance\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_innerInput\",\"type\":\"bytes\"}],\"name\":\"approvalBased\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"input\",\"type\":\"bytes\"}],\"name\":\"general\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Matter Labs\",\"details\":\"The interface that is used for encoding/decoding of different types of paymaster flows.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"This is NOT an interface to be implementated by contracts. It is just used for encoding.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymasterFlow.sol\":\"IPaymasterFlow\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymasterFlow.sol\":{\"keccak256\":\"0xbc73dbaf894a3fa41b52195227c73a855fdfcee713fa5ab3fba0773abe61a017\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e3fc1a2b1d3e2662a378ff3499457097e9ee1918faa830e741a38102ffa534f7\",\"dweb:/ipfs/QmatFh5y3B4XFnMZWjDuyUNCZAzh1dYF2uqEJvebxmzu6R\"]}},\"version\":1}","evm":{"legacyAssembly":null,"assembly":null,"bytecode":null,"methodIdentifiers":{"approvalBased(address,uint256,bytes)":"949431dc","general(bytes)":"8c5a3445"}},"irOptimized":""}},"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/ISystemContext.sol":{"ISystemContext":{"abi":[{"inputs":[],"name":"baseFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"blockGasLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_block","type":"uint256"}],"name":"blockHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"chainId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"coinbase","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"difficulty","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"gasPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_block","type":"uint256"}],"name":"getBlockHashEVM","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBlockNumber","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBlockNumberAndTimestamp","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"uint256","name":"blockTimestamp","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBlockTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"origin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"baseFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"blockGasLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_block\",\"type\":\"uint256\"}],\"name\":\"blockHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"chainId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"coinbase\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"difficulty\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gasPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_block\",\"type\":\"uint256\"}],\"name\":\"getBlockHashEVM\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBlockNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBlockNumberAndTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"blockTimestamp\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBlockTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"origin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Matter Labs\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Contract that stores some of the context variables, that may be either block-scoped, tx-scoped or system-wide.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/ISystemContext.sol\":\"ISystemContext\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/ISystemContext.sol\":{\"keccak256\":\"0xeb17460013b7bd75015f14c7aa296f7613dd331ffb2dccb4e725e708aa942ffb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7b4a3d7369d59deda677a7f2997151a146084d4d8487733ddec97924455c17d7\",\"dweb:/ipfs/QmQnCanKcV8UnBWHAV5BzDxnFd3sAQPQZbRAC44JCsgN4v\"]}},\"version\":1}","evm":{"legacyAssembly":null,"assembly":null,"bytecode":null,"methodIdentifiers":{"baseFee()":"6ef25c3a","blockGasLimit()":"7877a797","blockHash(uint256)":"85df51fd","chainId()":"9a8a0592","coinbase()":"a6ae0aac","difficulty()":"19cae462","gasPrice()":"fe173b97","getBlockHashEVM(uint256)":"80b41246","getBlockNumber()":"42cbb15c","getBlockNumberAndTimestamp()":"d4a4ca0d","getBlockTimestamp()":"796b89b9","origin()":"938b5f32"}},"irOptimized":""}},"@matterlabs/zksync-contracts/l2/system-contracts/libraries/EfficientCall.sol":{"EfficientCall":{"abi":[],"metadata":{"optimizer_settings":"M3B3","solc_metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"Matter Labs\",\"details\":\"EVM calls always accept a memory slice as input and return a memory slice as output. Therefore, even if the user has a ready-made calldata slice, they still need to copy it to memory before calling. This is especially inefficient for large inputs (proxies, multi-calls, etc.). In turn, zkEVM operates over a fat pointer, which is a set of (memory page, offset, start, length) in the memory/calldata/returndata. This allows forwarding the calldata slice as is, without copying it to memory.Fat pointer is not just an integer, it is an extended data type supported on the VM level. zkEVM creates the wellformed fat pointers for all the calldata/returndata regions, later the contract may manipulate the already created fat pointers to forward a slice of the data, but not to create new fat pointers!The allowed operation on fat pointers are: 1. `ptr.add` - Transforms `ptr.offset` into `ptr.offset + u32(_value)`. If overflow happens then it panics. 2. `ptr.sub` - Transforms `ptr.offset` into `ptr.offset - u32(_value)`. If underflow happens then it panics. 3. `ptr.pack` - Do the concatenation between the lowest 128 bits of the pointer itself and the highest 128 bits of `_value`. It is typically used to prepare the ABI for external calls. 4. `ptr.shrink` - Transforms `ptr.length` into `ptr.length - u32(_shrink)`. If underflow happens then it panics.The call opcodes accept the fat pointer and change it to its canonical form before passing it to the child call 1. `ptr.start` is transformed into `ptr.offset + ptr.start` 2. `ptr.length` is transformed into `ptr.length - ptr.offset` 3. `ptr.offset` is transformed into `0`\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"This library is used to perform ultra-efficient calls using zkEVM-specific features.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/EfficientCall.sol\":\"EfficientCall\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@matterlabs/zksync-contracts/l2/system-contracts/BootloaderUtilities.sol\":{\"keccak256\":\"0xc41e925966405a28c4eb0e2469a29eadd62754859fe61166fda0ceac5610c8f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6781f926f24839f6d0f5bf5927de8a7ddcf36d7b5a047faa53d530022ecf5df\",\"dweb:/ipfs/QmRtScb3y57Ygy9xctaa448ZkRA7ouaJfxhBwdKLRN6a3z\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/Constants.sol\":{\"keccak256\":\"0x29a24f62d17d95b1f8d2d79505d056e1e99d64c1d5725a4b46fbe91a965b0c60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b56691f9a23d9b0f17ea5c6e1dcce28b780a461c34eb9340f74621dad25c5468\",\"dweb:/ipfs/QmXVJTkTBWfuiGhwvxP9Ldv7oDmAd66ruLhoQemE15F6KS\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IAccountCodeStorage.sol\":{\"keccak256\":\"0xc75d1bd8895832daeb7d59734cf0afcc47628c2c343b95cc5359d6975dc3ccaa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5be4ef8c557cd5216127b14b53b881a410707387fe9b7522a95e83f3b56b0368\",\"dweb:/ipfs/QmeAnw5BjgR4Vrz5eBkWdEMajevVaDyMbSXRPALfyHYnbe\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBootloaderUtilities.sol\":{\"keccak256\":\"0xeea7b6ea35e94ae1ee84697df2053ca660e750c90e8d9e340a515200e5de52f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9e55744cabfc9ae67d43b136c9f1be3e347dd6c9d9d2777bb699fed9bc630c5\",\"dweb:/ipfs/QmQcACmf7PfijgFjLbcNi8SRZh1bUvN4abpWUGWCRnszpS\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBytecodeCompressor.sol\":{\"keccak256\":\"0xfbe695ca62333019f21a12a1636736a1e3ffaba62059d35fe24a7694cf99a1ac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e6d6bece56e8be5391e77af4b4a1eaf18ceefb500b0fd15123878ecee1ec3f8d\",\"dweb:/ipfs/QmNfy59uBQAsyfG2Vfdy38M6TYj3nLnkbb1P2euQqQEteZ\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IContractDeployer.sol\":{\"keccak256\":\"0xcd0cb526a3c1b6c8689ca2b4ff4da2f8cb2b134dce1b983b2368e4b8ff585ad3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e853769ee9769d16a4398a4351e82214801592b711c3cc6789de36e4b84cfa71\",\"dweb:/ipfs/QmeXAc1mRQVhhaXjj15XWH2YS4tjpYqMwgdQ8xLAozcdmU\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IEthToken.sol\":{\"keccak256\":\"0x12d57fed82ecc9d955e592e65d36c0256da4f8f3ce46c59e9828664bb623be2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e95d99c4202b2fbe10706e358e09135cb9ec43563db7e72fe81913f2798f4b5\",\"dweb:/ipfs/QmbPcrDDHSQsKKXq5itMttMQnRXpYpGYMLYp9BDXoVwa7k\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IImmutableSimulator.sol\":{\"keccak256\":\"0xe71d8c877f89fb8f2e3cc83d31dea978de99c35d07354052388abb6af9e9dbcc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://47b7c0601463321723b2623873fd91365a451f7d2b26216ea48d0503c38f91e8\",\"dweb:/ipfs/QmbFjjH95ekfzeR94z3AEsak1dfmZ5R8aHsbDpGwBzjSzD\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IKnownCodesStorage.sol\":{\"keccak256\":\"0xbc460f4e40c05b0b958d94bdcc23cc64f1efe887ef722c7bd4afc66583d92846\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6956ef37fb2a64c065251fdd3dc3b8ab9abb56a23c64b4ed7a3f32dce3af2472\",\"dweb:/ipfs/QmcVUbnZ6AXbmWm8CbLWM6p2pGnpy5VmgsEjQrHqWheBM5\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IL1Messenger.sol\":{\"keccak256\":\"0x13b3d1e55c9a1752885d7101a8e6886ff04c70259dff6bb672f79ce0c63952d9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35600fe3cc1ccd2029b47e2740bfd3f100a5896acd13e9eeafd583727abc4922\",\"dweb:/ipfs/QmNWWpGGpZ9r46Cw8hNVJG3vobFwk6hHhsWjRiJUo4xB4h\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/INonceHolder.sol\":{\"keccak256\":\"0x4895f2828cac4b6c3891c59214d70d3cd31cee4324a6e70c87caf90a234776fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0b7cfe1caf4c91b44111eb2ff9ffd693ad4ec3f4f09ffd6a8c65645de1c4d23e\",\"dweb:/ipfs/QmNnzanCJq3JR6JYhGhZzUAa5VQznuBN6A8bg5nNwq9wSU\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymasterFlow.sol\":{\"keccak256\":\"0xbc73dbaf894a3fa41b52195227c73a855fdfcee713fa5ab3fba0773abe61a017\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e3fc1a2b1d3e2662a378ff3499457097e9ee1918faa830e741a38102ffa534f7\",\"dweb:/ipfs/QmatFh5y3B4XFnMZWjDuyUNCZAzh1dYF2uqEJvebxmzu6R\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/ISystemContext.sol\":{\"keccak256\":\"0xeb17460013b7bd75015f14c7aa296f7613dd331ffb2dccb4e725e708aa942ffb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7b4a3d7369d59deda677a7f2997151a146084d4d8487733ddec97924455c17d7\",\"dweb:/ipfs/QmQnCanKcV8UnBWHAV5BzDxnFd3sAQPQZbRAC44JCsgN4v\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/EfficientCall.sol\":{\"keccak256\":\"0x60a1780ada0ebad3ca24743399fb56c60bed23e1218371ec56855d214d152ea6\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2c7b490a8218a2d505b25d87c3aeb40e8867ed424e6eceb7ceb7bc557a32301a\",\"dweb:/ipfs/QmWRiRc11dHg2Vjbstxp1QCLqP23FsgtJS6R1jSfWiaBrC\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/RLPEncoder.sol\":{\"keccak256\":\"0x90e89a3db5d1d31cb60835b554c751c995339c7f7204314bc546683cad733439\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://234b0b0f64b3c984689f3c8d55ab2bf2e2a51c926aa8708aa72e365e884a4c28\",\"dweb:/ipfs/QmR2FLvaUCyBS6HnhZt5cp5nmjdefjdSVSymuYVG9qToBF\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractHelper.sol\":{\"keccak256\":\"0x5eb2c2a098cf0c4cd39be7842682a20ef575dccbb5d10713f98313788212411a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e1c1a52053dcf3b347a7161655f4e8a396be0c663d0d30b60953cf4e81e68848\",\"dweb:/ipfs/Qmat7quKhUTrjLDyPcAqMdpg4KP2jQhbuoCTGq7YENXHZ4\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractsCaller.sol\":{\"keccak256\":\"0x5033a1008942cb59413e47ea876f99bc5cd2b4b72308db003579ee1add07571f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11866ee670865a59e96ee25971d32abbe6a012a65ee0eca8a37aa11fe463e81f\",\"dweb:/ipfs/Qme3fnqFJgtnpRHf21Xj8qrE46P3nKwMZTywJytRbMjBZg\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/TransactionHelper.sol\":{\"keccak256\":\"0xb8ad21ccd87317971347a7a07388a1647944f62de02dbf2594632497e3dec330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://56369664918121fd8276ef09e35e1c5d64b8616ee38ad8d88fd45fbb0ddf381d\",\"dweb:/ipfs/QmPENE5H4Lg94MCpQ7gjah26Muqhc7QYAcyXQ9sFHxViGq\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/Utils.sol\":{\"keccak256\":\"0x323d26123de797a41955a05e68be86a6fe55aa62134ec59a8f89faa5bd04c416\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e0fd70642c2ded7d486bc5a3faac55d3357c20bb10d4243fef61962cf70e641\",\"dweb:/ipfs/QmWqQ3x27z2iCNNaAfXVAJ3FX2tHvUYu1t1Ze27pdbCRbK\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x35e258421ae206f3db37281cea70871b4c3553914734aa76139a41af60ac1abb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ef94b6bc4ee356db612a1849c615f7dd4b15542d6c8584c86bb9243a7913cf0\",\"dweb:/ipfs/QmaxFj5NFpAjjitZtHPNS9PPtCuBATaRz9ktDDRCQCQ83y\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x84d04bd9b87928b261736f90a86cbb15d8cf6f80560151366370fa79313f3cb5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7fd52b96d25ba9ca6ba26a591d2726c0256185b1c107b9a06834ca9ce0bae240\",\"dweb:/ipfs/QmYbgPqwwX1hUi6HfqcPM82bqgbjLYWDCXv83NxCvivL43\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/utils/Address.sol\":{\"keccak256\":\"0xef97d5bcb540814e1371a1e355a170919412e0d6754fdaa003b6a602e6a7ea4d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41a8f093a740cdcb224e48b2c4c2868f8e86dcdd3bc96ded6b10d29714b6f9a4\",\"dweb:/ipfs/QmSsgQmcY8n1a2bCFxdpWGS3YV63TZyZD77ycNHdpMDySL\"]}},\"version\":1}","zk_version":"1.3.9"},"evm":{"legacyAssembly":null,"assembly":"\t.text\n\t.file\t\"EfficientCall.sol:EfficientCall\"\n\t.globl\t__entry\n__entry:\n.func_begin0:\n\tand!\t1, r2, r1\n\tjump.eq\t@.BB0_2\n\tadd\t128, r0, r1\n\tst.1\t64, r1\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tadd\t32, r0, r1\n\tst.2\t256, r1\n\tst.2\t288, r0\n\tadd\t@CPI0_0[0], r0, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_2:\n\tadd\tr0, r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.func_end0:\n\n\t.note.GNU-stack\n\t.rodata\nCPI0_0:\n\t.cell 53919893334301279589334030174039261352344891250716429051063678533632\n","bytecode":{"object":"00000001012001900000000c0000613d0000008001000039000000400010043f0000000001000416000000000110004c0000000c0000c13d00000020010000390000010000100443000001200000044300000005010000410000000f0001042e000000000100001900000010000104300000000e000004320000000f0001042e00000010000104300000000000000000000000000000000000000000000000000000000200000000000000000000000000000040000001000000000000000000c93c837758aca2b30e52b1ee52996fdab25a7b5916dda3d71f04cf086bcf340f"},"methodIdentifiers":{}},"irOptimized":"/// @use-src 14:\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/EfficientCall.sol\"\nobject \"EfficientCall_2170\" {\n code {\n {\n /// @src 14:2048:12735 \"library EfficientCall {...\"\n let _1 := memoryguard(0x80)\n mstore(64, _1)\n if callvalue() { revert(0, 0) }\n let _2 := datasize(\"EfficientCall_2170_deployed\")\n codecopy(_1, dataoffset(\"EfficientCall_2170_deployed\"), _2)\n setimmutable(_1, \"library_deploy_address\", address())\n return(_1, _2)\n }\n }\n /// @use-src 14:\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/EfficientCall.sol\"\n object \"EfficientCall_2170_deployed\" {\n code {\n {\n /// @src 14:2048:12735 \"library EfficientCall {...\"\n revert(0, 0)\n }\n }\n data \".metadata\" hex\"a264697066735822122025c78a7eb7061c43ae12416b82bd02b6699e007a7905bcb61261fe4900c10d3464736f6c63430008120033\"\n }\n}\n","hash":"010000072403413be8631353a391947d9374a71c0f78e49558c34209f58af595","factoryDependencies":{}}},"@matterlabs/zksync-contracts/l2/system-contracts/libraries/RLPEncoder.sol":{"RLPEncoder":{"abi":[],"metadata":{"optimizer_settings":"M3B3","solc_metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/RLPEncoder.sol\":\"RLPEncoder\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/RLPEncoder.sol\":{\"keccak256\":\"0x90e89a3db5d1d31cb60835b554c751c995339c7f7204314bc546683cad733439\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://234b0b0f64b3c984689f3c8d55ab2bf2e2a51c926aa8708aa72e365e884a4c28\",\"dweb:/ipfs/QmR2FLvaUCyBS6HnhZt5cp5nmjdefjdSVSymuYVG9qToBF\"]}},\"version\":1}","zk_version":"1.3.9"},"evm":{"legacyAssembly":null,"assembly":"\t.text\n\t.file\t\"RLPEncoder.sol:RLPEncoder\"\n\t.globl\t__entry\n__entry:\n.func_begin0:\n\tand!\t1, r2, r1\n\tjump.eq\t@.BB0_2\n\tadd\t128, r0, r1\n\tst.1\t64, r1\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tadd\t32, r0, r1\n\tst.2\t256, r1\n\tst.2\t288, r0\n\tadd\t@CPI0_0[0], r0, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_2:\n\tadd\tr0, r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.func_end0:\n\n\t.note.GNU-stack\n\t.rodata\nCPI0_0:\n\t.cell 53919893334301279589334030174039261352344891250716429051063678533632\n","bytecode":{"object":"00000001012001900000000c0000613d0000008001000039000000400010043f0000000001000416000000000110004c0000000c0000c13d00000020010000390000010000100443000001200000044300000005010000410000000f0001042e000000000100001900000010000104300000000e000004320000000f0001042e000000100001043000000000000000000000000000000000000000000000000000000002000000000000000000000000000000400000010000000000000000007d9fa76a5819bc2f496706b159807ab8dfbbaeb695aabc4182b8ceb6b09e0b06"},"methodIdentifiers":{}},"irOptimized":"/// @use-src 15:\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/RLPEncoder.sol\"\nobject \"RLPEncoder_2503\" {\n code {\n {\n /// @src 15:58:3765 \"library RLPEncoder {...\"\n let _1 := memoryguard(0x80)\n mstore(64, _1)\n if callvalue() { revert(0, 0) }\n let _2 := datasize(\"RLPEncoder_2503_deployed\")\n codecopy(_1, dataoffset(\"RLPEncoder_2503_deployed\"), _2)\n setimmutable(_1, \"library_deploy_address\", address())\n return(_1, _2)\n }\n }\n /// @use-src 15:\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/RLPEncoder.sol\"\n object \"RLPEncoder_2503_deployed\" {\n code {\n {\n /// @src 15:58:3765 \"library RLPEncoder {...\"\n revert(0, 0)\n }\n }\n data \".metadata\" hex\"a26469706673582212204bea743b455214c7175807a495f4fb38a8690a1e1f6c4d8b74d230b571dacb0864736f6c63430008120033\"\n }\n}\n","hash":"01000007301481083b4da2b30026d9751de6bb0aec07c7d56c9ed24e8a1ae936","factoryDependencies":{}}},"@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractHelper.sol":{"ISystemContract":{"abi":[],"metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Solidity does not allow exporting modifiers via libraries, so the only way to do reuse modifiers is to have a base contract\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractHelper.sol\":\"ISystemContract\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@matterlabs/zksync-contracts/l2/system-contracts/BootloaderUtilities.sol\":{\"keccak256\":\"0xc41e925966405a28c4eb0e2469a29eadd62754859fe61166fda0ceac5610c8f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6781f926f24839f6d0f5bf5927de8a7ddcf36d7b5a047faa53d530022ecf5df\",\"dweb:/ipfs/QmRtScb3y57Ygy9xctaa448ZkRA7ouaJfxhBwdKLRN6a3z\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/Constants.sol\":{\"keccak256\":\"0x29a24f62d17d95b1f8d2d79505d056e1e99d64c1d5725a4b46fbe91a965b0c60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b56691f9a23d9b0f17ea5c6e1dcce28b780a461c34eb9340f74621dad25c5468\",\"dweb:/ipfs/QmXVJTkTBWfuiGhwvxP9Ldv7oDmAd66ruLhoQemE15F6KS\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IAccountCodeStorage.sol\":{\"keccak256\":\"0xc75d1bd8895832daeb7d59734cf0afcc47628c2c343b95cc5359d6975dc3ccaa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5be4ef8c557cd5216127b14b53b881a410707387fe9b7522a95e83f3b56b0368\",\"dweb:/ipfs/QmeAnw5BjgR4Vrz5eBkWdEMajevVaDyMbSXRPALfyHYnbe\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBootloaderUtilities.sol\":{\"keccak256\":\"0xeea7b6ea35e94ae1ee84697df2053ca660e750c90e8d9e340a515200e5de52f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9e55744cabfc9ae67d43b136c9f1be3e347dd6c9d9d2777bb699fed9bc630c5\",\"dweb:/ipfs/QmQcACmf7PfijgFjLbcNi8SRZh1bUvN4abpWUGWCRnszpS\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBytecodeCompressor.sol\":{\"keccak256\":\"0xfbe695ca62333019f21a12a1636736a1e3ffaba62059d35fe24a7694cf99a1ac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e6d6bece56e8be5391e77af4b4a1eaf18ceefb500b0fd15123878ecee1ec3f8d\",\"dweb:/ipfs/QmNfy59uBQAsyfG2Vfdy38M6TYj3nLnkbb1P2euQqQEteZ\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IContractDeployer.sol\":{\"keccak256\":\"0xcd0cb526a3c1b6c8689ca2b4ff4da2f8cb2b134dce1b983b2368e4b8ff585ad3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e853769ee9769d16a4398a4351e82214801592b711c3cc6789de36e4b84cfa71\",\"dweb:/ipfs/QmeXAc1mRQVhhaXjj15XWH2YS4tjpYqMwgdQ8xLAozcdmU\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IEthToken.sol\":{\"keccak256\":\"0x12d57fed82ecc9d955e592e65d36c0256da4f8f3ce46c59e9828664bb623be2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e95d99c4202b2fbe10706e358e09135cb9ec43563db7e72fe81913f2798f4b5\",\"dweb:/ipfs/QmbPcrDDHSQsKKXq5itMttMQnRXpYpGYMLYp9BDXoVwa7k\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IImmutableSimulator.sol\":{\"keccak256\":\"0xe71d8c877f89fb8f2e3cc83d31dea978de99c35d07354052388abb6af9e9dbcc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://47b7c0601463321723b2623873fd91365a451f7d2b26216ea48d0503c38f91e8\",\"dweb:/ipfs/QmbFjjH95ekfzeR94z3AEsak1dfmZ5R8aHsbDpGwBzjSzD\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IKnownCodesStorage.sol\":{\"keccak256\":\"0xbc460f4e40c05b0b958d94bdcc23cc64f1efe887ef722c7bd4afc66583d92846\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6956ef37fb2a64c065251fdd3dc3b8ab9abb56a23c64b4ed7a3f32dce3af2472\",\"dweb:/ipfs/QmcVUbnZ6AXbmWm8CbLWM6p2pGnpy5VmgsEjQrHqWheBM5\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IL1Messenger.sol\":{\"keccak256\":\"0x13b3d1e55c9a1752885d7101a8e6886ff04c70259dff6bb672f79ce0c63952d9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35600fe3cc1ccd2029b47e2740bfd3f100a5896acd13e9eeafd583727abc4922\",\"dweb:/ipfs/QmNWWpGGpZ9r46Cw8hNVJG3vobFwk6hHhsWjRiJUo4xB4h\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/INonceHolder.sol\":{\"keccak256\":\"0x4895f2828cac4b6c3891c59214d70d3cd31cee4324a6e70c87caf90a234776fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0b7cfe1caf4c91b44111eb2ff9ffd693ad4ec3f4f09ffd6a8c65645de1c4d23e\",\"dweb:/ipfs/QmNnzanCJq3JR6JYhGhZzUAa5VQznuBN6A8bg5nNwq9wSU\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymasterFlow.sol\":{\"keccak256\":\"0xbc73dbaf894a3fa41b52195227c73a855fdfcee713fa5ab3fba0773abe61a017\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e3fc1a2b1d3e2662a378ff3499457097e9ee1918faa830e741a38102ffa534f7\",\"dweb:/ipfs/QmatFh5y3B4XFnMZWjDuyUNCZAzh1dYF2uqEJvebxmzu6R\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/ISystemContext.sol\":{\"keccak256\":\"0xeb17460013b7bd75015f14c7aa296f7613dd331ffb2dccb4e725e708aa942ffb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7b4a3d7369d59deda677a7f2997151a146084d4d8487733ddec97924455c17d7\",\"dweb:/ipfs/QmQnCanKcV8UnBWHAV5BzDxnFd3sAQPQZbRAC44JCsgN4v\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/EfficientCall.sol\":{\"keccak256\":\"0x60a1780ada0ebad3ca24743399fb56c60bed23e1218371ec56855d214d152ea6\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2c7b490a8218a2d505b25d87c3aeb40e8867ed424e6eceb7ceb7bc557a32301a\",\"dweb:/ipfs/QmWRiRc11dHg2Vjbstxp1QCLqP23FsgtJS6R1jSfWiaBrC\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/RLPEncoder.sol\":{\"keccak256\":\"0x90e89a3db5d1d31cb60835b554c751c995339c7f7204314bc546683cad733439\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://234b0b0f64b3c984689f3c8d55ab2bf2e2a51c926aa8708aa72e365e884a4c28\",\"dweb:/ipfs/QmR2FLvaUCyBS6HnhZt5cp5nmjdefjdSVSymuYVG9qToBF\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractHelper.sol\":{\"keccak256\":\"0x5eb2c2a098cf0c4cd39be7842682a20ef575dccbb5d10713f98313788212411a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e1c1a52053dcf3b347a7161655f4e8a396be0c663d0d30b60953cf4e81e68848\",\"dweb:/ipfs/Qmat7quKhUTrjLDyPcAqMdpg4KP2jQhbuoCTGq7YENXHZ4\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractsCaller.sol\":{\"keccak256\":\"0x5033a1008942cb59413e47ea876f99bc5cd2b4b72308db003579ee1add07571f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11866ee670865a59e96ee25971d32abbe6a012a65ee0eca8a37aa11fe463e81f\",\"dweb:/ipfs/Qme3fnqFJgtnpRHf21Xj8qrE46P3nKwMZTywJytRbMjBZg\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/TransactionHelper.sol\":{\"keccak256\":\"0xb8ad21ccd87317971347a7a07388a1647944f62de02dbf2594632497e3dec330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://56369664918121fd8276ef09e35e1c5d64b8616ee38ad8d88fd45fbb0ddf381d\",\"dweb:/ipfs/QmPENE5H4Lg94MCpQ7gjah26Muqhc7QYAcyXQ9sFHxViGq\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/Utils.sol\":{\"keccak256\":\"0x323d26123de797a41955a05e68be86a6fe55aa62134ec59a8f89faa5bd04c416\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e0fd70642c2ded7d486bc5a3faac55d3357c20bb10d4243fef61962cf70e641\",\"dweb:/ipfs/QmWqQ3x27z2iCNNaAfXVAJ3FX2tHvUYu1t1Ze27pdbCRbK\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x35e258421ae206f3db37281cea70871b4c3553914734aa76139a41af60ac1abb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ef94b6bc4ee356db612a1849c615f7dd4b15542d6c8584c86bb9243a7913cf0\",\"dweb:/ipfs/QmaxFj5NFpAjjitZtHPNS9PPtCuBATaRz9ktDDRCQCQ83y\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x84d04bd9b87928b261736f90a86cbb15d8cf6f80560151366370fa79313f3cb5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7fd52b96d25ba9ca6ba26a591d2726c0256185b1c107b9a06834ca9ce0bae240\",\"dweb:/ipfs/QmYbgPqwwX1hUi6HfqcPM82bqgbjLYWDCXv83NxCvivL43\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/utils/Address.sol\":{\"keccak256\":\"0xef97d5bcb540814e1371a1e355a170919412e0d6754fdaa003b6a602e6a7ea4d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41a8f093a740cdcb224e48b2c4c2868f8e86dcdd3bc96ded6b10d29714b6f9a4\",\"dweb:/ipfs/QmSsgQmcY8n1a2bCFxdpWGS3YV63TZyZD77ycNHdpMDySL\"]}},\"version\":1}","evm":{"legacyAssembly":null,"assembly":null,"bytecode":null,"methodIdentifiers":{}},"irOptimized":""},"SystemContractHelper":{"abi":[],"metadata":{"optimizer_settings":"M3B3","solc_metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"Matter Labs\",\"details\":\"While this library will be eventually available to public, some of the provided methods won't work for non-system contracts. We will not recommend this library for external use.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Library used for accessing zkEVM-specific opcodes, needed for the development of system contracts.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractHelper.sol\":\"SystemContractHelper\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@matterlabs/zksync-contracts/l2/system-contracts/BootloaderUtilities.sol\":{\"keccak256\":\"0xc41e925966405a28c4eb0e2469a29eadd62754859fe61166fda0ceac5610c8f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6781f926f24839f6d0f5bf5927de8a7ddcf36d7b5a047faa53d530022ecf5df\",\"dweb:/ipfs/QmRtScb3y57Ygy9xctaa448ZkRA7ouaJfxhBwdKLRN6a3z\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/Constants.sol\":{\"keccak256\":\"0x29a24f62d17d95b1f8d2d79505d056e1e99d64c1d5725a4b46fbe91a965b0c60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b56691f9a23d9b0f17ea5c6e1dcce28b780a461c34eb9340f74621dad25c5468\",\"dweb:/ipfs/QmXVJTkTBWfuiGhwvxP9Ldv7oDmAd66ruLhoQemE15F6KS\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IAccountCodeStorage.sol\":{\"keccak256\":\"0xc75d1bd8895832daeb7d59734cf0afcc47628c2c343b95cc5359d6975dc3ccaa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5be4ef8c557cd5216127b14b53b881a410707387fe9b7522a95e83f3b56b0368\",\"dweb:/ipfs/QmeAnw5BjgR4Vrz5eBkWdEMajevVaDyMbSXRPALfyHYnbe\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBootloaderUtilities.sol\":{\"keccak256\":\"0xeea7b6ea35e94ae1ee84697df2053ca660e750c90e8d9e340a515200e5de52f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9e55744cabfc9ae67d43b136c9f1be3e347dd6c9d9d2777bb699fed9bc630c5\",\"dweb:/ipfs/QmQcACmf7PfijgFjLbcNi8SRZh1bUvN4abpWUGWCRnszpS\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBytecodeCompressor.sol\":{\"keccak256\":\"0xfbe695ca62333019f21a12a1636736a1e3ffaba62059d35fe24a7694cf99a1ac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e6d6bece56e8be5391e77af4b4a1eaf18ceefb500b0fd15123878ecee1ec3f8d\",\"dweb:/ipfs/QmNfy59uBQAsyfG2Vfdy38M6TYj3nLnkbb1P2euQqQEteZ\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IContractDeployer.sol\":{\"keccak256\":\"0xcd0cb526a3c1b6c8689ca2b4ff4da2f8cb2b134dce1b983b2368e4b8ff585ad3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e853769ee9769d16a4398a4351e82214801592b711c3cc6789de36e4b84cfa71\",\"dweb:/ipfs/QmeXAc1mRQVhhaXjj15XWH2YS4tjpYqMwgdQ8xLAozcdmU\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IEthToken.sol\":{\"keccak256\":\"0x12d57fed82ecc9d955e592e65d36c0256da4f8f3ce46c59e9828664bb623be2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e95d99c4202b2fbe10706e358e09135cb9ec43563db7e72fe81913f2798f4b5\",\"dweb:/ipfs/QmbPcrDDHSQsKKXq5itMttMQnRXpYpGYMLYp9BDXoVwa7k\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IImmutableSimulator.sol\":{\"keccak256\":\"0xe71d8c877f89fb8f2e3cc83d31dea978de99c35d07354052388abb6af9e9dbcc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://47b7c0601463321723b2623873fd91365a451f7d2b26216ea48d0503c38f91e8\",\"dweb:/ipfs/QmbFjjH95ekfzeR94z3AEsak1dfmZ5R8aHsbDpGwBzjSzD\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IKnownCodesStorage.sol\":{\"keccak256\":\"0xbc460f4e40c05b0b958d94bdcc23cc64f1efe887ef722c7bd4afc66583d92846\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6956ef37fb2a64c065251fdd3dc3b8ab9abb56a23c64b4ed7a3f32dce3af2472\",\"dweb:/ipfs/QmcVUbnZ6AXbmWm8CbLWM6p2pGnpy5VmgsEjQrHqWheBM5\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IL1Messenger.sol\":{\"keccak256\":\"0x13b3d1e55c9a1752885d7101a8e6886ff04c70259dff6bb672f79ce0c63952d9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35600fe3cc1ccd2029b47e2740bfd3f100a5896acd13e9eeafd583727abc4922\",\"dweb:/ipfs/QmNWWpGGpZ9r46Cw8hNVJG3vobFwk6hHhsWjRiJUo4xB4h\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/INonceHolder.sol\":{\"keccak256\":\"0x4895f2828cac4b6c3891c59214d70d3cd31cee4324a6e70c87caf90a234776fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0b7cfe1caf4c91b44111eb2ff9ffd693ad4ec3f4f09ffd6a8c65645de1c4d23e\",\"dweb:/ipfs/QmNnzanCJq3JR6JYhGhZzUAa5VQznuBN6A8bg5nNwq9wSU\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymasterFlow.sol\":{\"keccak256\":\"0xbc73dbaf894a3fa41b52195227c73a855fdfcee713fa5ab3fba0773abe61a017\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e3fc1a2b1d3e2662a378ff3499457097e9ee1918faa830e741a38102ffa534f7\",\"dweb:/ipfs/QmatFh5y3B4XFnMZWjDuyUNCZAzh1dYF2uqEJvebxmzu6R\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/ISystemContext.sol\":{\"keccak256\":\"0xeb17460013b7bd75015f14c7aa296f7613dd331ffb2dccb4e725e708aa942ffb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7b4a3d7369d59deda677a7f2997151a146084d4d8487733ddec97924455c17d7\",\"dweb:/ipfs/QmQnCanKcV8UnBWHAV5BzDxnFd3sAQPQZbRAC44JCsgN4v\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/EfficientCall.sol\":{\"keccak256\":\"0x60a1780ada0ebad3ca24743399fb56c60bed23e1218371ec56855d214d152ea6\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2c7b490a8218a2d505b25d87c3aeb40e8867ed424e6eceb7ceb7bc557a32301a\",\"dweb:/ipfs/QmWRiRc11dHg2Vjbstxp1QCLqP23FsgtJS6R1jSfWiaBrC\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/RLPEncoder.sol\":{\"keccak256\":\"0x90e89a3db5d1d31cb60835b554c751c995339c7f7204314bc546683cad733439\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://234b0b0f64b3c984689f3c8d55ab2bf2e2a51c926aa8708aa72e365e884a4c28\",\"dweb:/ipfs/QmR2FLvaUCyBS6HnhZt5cp5nmjdefjdSVSymuYVG9qToBF\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractHelper.sol\":{\"keccak256\":\"0x5eb2c2a098cf0c4cd39be7842682a20ef575dccbb5d10713f98313788212411a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e1c1a52053dcf3b347a7161655f4e8a396be0c663d0d30b60953cf4e81e68848\",\"dweb:/ipfs/Qmat7quKhUTrjLDyPcAqMdpg4KP2jQhbuoCTGq7YENXHZ4\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractsCaller.sol\":{\"keccak256\":\"0x5033a1008942cb59413e47ea876f99bc5cd2b4b72308db003579ee1add07571f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11866ee670865a59e96ee25971d32abbe6a012a65ee0eca8a37aa11fe463e81f\",\"dweb:/ipfs/Qme3fnqFJgtnpRHf21Xj8qrE46P3nKwMZTywJytRbMjBZg\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/TransactionHelper.sol\":{\"keccak256\":\"0xb8ad21ccd87317971347a7a07388a1647944f62de02dbf2594632497e3dec330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://56369664918121fd8276ef09e35e1c5d64b8616ee38ad8d88fd45fbb0ddf381d\",\"dweb:/ipfs/QmPENE5H4Lg94MCpQ7gjah26Muqhc7QYAcyXQ9sFHxViGq\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/Utils.sol\":{\"keccak256\":\"0x323d26123de797a41955a05e68be86a6fe55aa62134ec59a8f89faa5bd04c416\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e0fd70642c2ded7d486bc5a3faac55d3357c20bb10d4243fef61962cf70e641\",\"dweb:/ipfs/QmWqQ3x27z2iCNNaAfXVAJ3FX2tHvUYu1t1Ze27pdbCRbK\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x35e258421ae206f3db37281cea70871b4c3553914734aa76139a41af60ac1abb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ef94b6bc4ee356db612a1849c615f7dd4b15542d6c8584c86bb9243a7913cf0\",\"dweb:/ipfs/QmaxFj5NFpAjjitZtHPNS9PPtCuBATaRz9ktDDRCQCQ83y\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x84d04bd9b87928b261736f90a86cbb15d8cf6f80560151366370fa79313f3cb5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7fd52b96d25ba9ca6ba26a591d2726c0256185b1c107b9a06834ca9ce0bae240\",\"dweb:/ipfs/QmYbgPqwwX1hUi6HfqcPM82bqgbjLYWDCXv83NxCvivL43\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/utils/Address.sol\":{\"keccak256\":\"0xef97d5bcb540814e1371a1e355a170919412e0d6754fdaa003b6a602e6a7ea4d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41a8f093a740cdcb224e48b2c4c2868f8e86dcdd3bc96ded6b10d29714b6f9a4\",\"dweb:/ipfs/QmSsgQmcY8n1a2bCFxdpWGS3YV63TZyZD77ycNHdpMDySL\"]}},\"version\":1}","zk_version":"1.3.9"},"evm":{"legacyAssembly":null,"assembly":"\t.text\n\t.file\t\"SystemContractHelper.sol:SystemContractHelper\"\n\t.globl\t__entry\n__entry:\n.func_begin0:\n\tand!\t1, r2, r1\n\tjump.eq\t@.BB0_2\n\tadd\t128, r0, r1\n\tst.1\t64, r1\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tadd\t32, r0, r1\n\tst.2\t256, r1\n\tst.2\t288, r0\n\tadd\t@CPI0_0[0], r0, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_2:\n\tadd\tr0, r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.func_end0:\n\n\t.note.GNU-stack\n\t.rodata\nCPI0_0:\n\t.cell 53919893334301279589334030174039261352344891250716429051063678533632\n","bytecode":{"object":"00000001012001900000000c0000613d0000008001000039000000400010043f0000000001000416000000000110004c0000000c0000c13d00000020010000390000010000100443000001200000044300000005010000410000000f0001042e000000000100001900000010000104300000000e000004320000000f0001042e00000010000104300000000000000000000000000000000000000000000000000000000200000000000000000000000000000040000001000000000000000000fd1073a5e73312d60704f23c55926a71d49a3efb53baa0aa6e09e69148bbf05e"},"methodIdentifiers":{}},"irOptimized":"/// @use-src 16:\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractHelper.sol\"\nobject \"SystemContractHelper_3048\" {\n code {\n {\n /// @src 16:1151:15939 \"library SystemContractHelper {...\"\n let _1 := memoryguard(0x80)\n mstore(64, _1)\n if callvalue() { revert(0, 0) }\n let _2 := datasize(\"SystemContractHelper_3048_deployed\")\n codecopy(_1, dataoffset(\"SystemContractHelper_3048_deployed\"), _2)\n setimmutable(_1, \"library_deploy_address\", address())\n return(_1, _2)\n }\n }\n /// @use-src 16:\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractHelper.sol\"\n object \"SystemContractHelper_3048_deployed\" {\n code {\n {\n /// @src 16:1151:15939 \"library SystemContractHelper {...\"\n revert(0, 0)\n }\n }\n data \".metadata\" hex\"a2646970667358221220f4be7bf0462d852cb2e7f145f68daeca7172c05981b602bb2ea3871e65c7d6e664736f6c63430008120033\"\n }\n}\n","hash":"0100000771b32803b0c606c60e5f69d8557ca587fd530ccda2359e56dfeffa3b","factoryDependencies":{}}},"@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractsCaller.sol":{"SystemContractsCaller":{"abi":[],"metadata":{"optimizer_settings":"M3B3","solc_metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"Matter Labs\",\"details\":\"It is needed to call ContractDeployer and NonceHolder.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"A library that allows calling contracts with the `isSystem` flag.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractsCaller.sol\":\"SystemContractsCaller\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@matterlabs/zksync-contracts/l2/system-contracts/BootloaderUtilities.sol\":{\"keccak256\":\"0xc41e925966405a28c4eb0e2469a29eadd62754859fe61166fda0ceac5610c8f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6781f926f24839f6d0f5bf5927de8a7ddcf36d7b5a047faa53d530022ecf5df\",\"dweb:/ipfs/QmRtScb3y57Ygy9xctaa448ZkRA7ouaJfxhBwdKLRN6a3z\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/Constants.sol\":{\"keccak256\":\"0x29a24f62d17d95b1f8d2d79505d056e1e99d64c1d5725a4b46fbe91a965b0c60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b56691f9a23d9b0f17ea5c6e1dcce28b780a461c34eb9340f74621dad25c5468\",\"dweb:/ipfs/QmXVJTkTBWfuiGhwvxP9Ldv7oDmAd66ruLhoQemE15F6KS\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IAccountCodeStorage.sol\":{\"keccak256\":\"0xc75d1bd8895832daeb7d59734cf0afcc47628c2c343b95cc5359d6975dc3ccaa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5be4ef8c557cd5216127b14b53b881a410707387fe9b7522a95e83f3b56b0368\",\"dweb:/ipfs/QmeAnw5BjgR4Vrz5eBkWdEMajevVaDyMbSXRPALfyHYnbe\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBootloaderUtilities.sol\":{\"keccak256\":\"0xeea7b6ea35e94ae1ee84697df2053ca660e750c90e8d9e340a515200e5de52f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9e55744cabfc9ae67d43b136c9f1be3e347dd6c9d9d2777bb699fed9bc630c5\",\"dweb:/ipfs/QmQcACmf7PfijgFjLbcNi8SRZh1bUvN4abpWUGWCRnszpS\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBytecodeCompressor.sol\":{\"keccak256\":\"0xfbe695ca62333019f21a12a1636736a1e3ffaba62059d35fe24a7694cf99a1ac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e6d6bece56e8be5391e77af4b4a1eaf18ceefb500b0fd15123878ecee1ec3f8d\",\"dweb:/ipfs/QmNfy59uBQAsyfG2Vfdy38M6TYj3nLnkbb1P2euQqQEteZ\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IContractDeployer.sol\":{\"keccak256\":\"0xcd0cb526a3c1b6c8689ca2b4ff4da2f8cb2b134dce1b983b2368e4b8ff585ad3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e853769ee9769d16a4398a4351e82214801592b711c3cc6789de36e4b84cfa71\",\"dweb:/ipfs/QmeXAc1mRQVhhaXjj15XWH2YS4tjpYqMwgdQ8xLAozcdmU\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IEthToken.sol\":{\"keccak256\":\"0x12d57fed82ecc9d955e592e65d36c0256da4f8f3ce46c59e9828664bb623be2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e95d99c4202b2fbe10706e358e09135cb9ec43563db7e72fe81913f2798f4b5\",\"dweb:/ipfs/QmbPcrDDHSQsKKXq5itMttMQnRXpYpGYMLYp9BDXoVwa7k\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IImmutableSimulator.sol\":{\"keccak256\":\"0xe71d8c877f89fb8f2e3cc83d31dea978de99c35d07354052388abb6af9e9dbcc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://47b7c0601463321723b2623873fd91365a451f7d2b26216ea48d0503c38f91e8\",\"dweb:/ipfs/QmbFjjH95ekfzeR94z3AEsak1dfmZ5R8aHsbDpGwBzjSzD\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IKnownCodesStorage.sol\":{\"keccak256\":\"0xbc460f4e40c05b0b958d94bdcc23cc64f1efe887ef722c7bd4afc66583d92846\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6956ef37fb2a64c065251fdd3dc3b8ab9abb56a23c64b4ed7a3f32dce3af2472\",\"dweb:/ipfs/QmcVUbnZ6AXbmWm8CbLWM6p2pGnpy5VmgsEjQrHqWheBM5\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IL1Messenger.sol\":{\"keccak256\":\"0x13b3d1e55c9a1752885d7101a8e6886ff04c70259dff6bb672f79ce0c63952d9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35600fe3cc1ccd2029b47e2740bfd3f100a5896acd13e9eeafd583727abc4922\",\"dweb:/ipfs/QmNWWpGGpZ9r46Cw8hNVJG3vobFwk6hHhsWjRiJUo4xB4h\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/INonceHolder.sol\":{\"keccak256\":\"0x4895f2828cac4b6c3891c59214d70d3cd31cee4324a6e70c87caf90a234776fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0b7cfe1caf4c91b44111eb2ff9ffd693ad4ec3f4f09ffd6a8c65645de1c4d23e\",\"dweb:/ipfs/QmNnzanCJq3JR6JYhGhZzUAa5VQznuBN6A8bg5nNwq9wSU\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymasterFlow.sol\":{\"keccak256\":\"0xbc73dbaf894a3fa41b52195227c73a855fdfcee713fa5ab3fba0773abe61a017\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e3fc1a2b1d3e2662a378ff3499457097e9ee1918faa830e741a38102ffa534f7\",\"dweb:/ipfs/QmatFh5y3B4XFnMZWjDuyUNCZAzh1dYF2uqEJvebxmzu6R\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/ISystemContext.sol\":{\"keccak256\":\"0xeb17460013b7bd75015f14c7aa296f7613dd331ffb2dccb4e725e708aa942ffb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7b4a3d7369d59deda677a7f2997151a146084d4d8487733ddec97924455c17d7\",\"dweb:/ipfs/QmQnCanKcV8UnBWHAV5BzDxnFd3sAQPQZbRAC44JCsgN4v\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/EfficientCall.sol\":{\"keccak256\":\"0x60a1780ada0ebad3ca24743399fb56c60bed23e1218371ec56855d214d152ea6\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2c7b490a8218a2d505b25d87c3aeb40e8867ed424e6eceb7ceb7bc557a32301a\",\"dweb:/ipfs/QmWRiRc11dHg2Vjbstxp1QCLqP23FsgtJS6R1jSfWiaBrC\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/RLPEncoder.sol\":{\"keccak256\":\"0x90e89a3db5d1d31cb60835b554c751c995339c7f7204314bc546683cad733439\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://234b0b0f64b3c984689f3c8d55ab2bf2e2a51c926aa8708aa72e365e884a4c28\",\"dweb:/ipfs/QmR2FLvaUCyBS6HnhZt5cp5nmjdefjdSVSymuYVG9qToBF\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractHelper.sol\":{\"keccak256\":\"0x5eb2c2a098cf0c4cd39be7842682a20ef575dccbb5d10713f98313788212411a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e1c1a52053dcf3b347a7161655f4e8a396be0c663d0d30b60953cf4e81e68848\",\"dweb:/ipfs/Qmat7quKhUTrjLDyPcAqMdpg4KP2jQhbuoCTGq7YENXHZ4\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractsCaller.sol\":{\"keccak256\":\"0x5033a1008942cb59413e47ea876f99bc5cd2b4b72308db003579ee1add07571f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11866ee670865a59e96ee25971d32abbe6a012a65ee0eca8a37aa11fe463e81f\",\"dweb:/ipfs/Qme3fnqFJgtnpRHf21Xj8qrE46P3nKwMZTywJytRbMjBZg\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/TransactionHelper.sol\":{\"keccak256\":\"0xb8ad21ccd87317971347a7a07388a1647944f62de02dbf2594632497e3dec330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://56369664918121fd8276ef09e35e1c5d64b8616ee38ad8d88fd45fbb0ddf381d\",\"dweb:/ipfs/QmPENE5H4Lg94MCpQ7gjah26Muqhc7QYAcyXQ9sFHxViGq\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/Utils.sol\":{\"keccak256\":\"0x323d26123de797a41955a05e68be86a6fe55aa62134ec59a8f89faa5bd04c416\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e0fd70642c2ded7d486bc5a3faac55d3357c20bb10d4243fef61962cf70e641\",\"dweb:/ipfs/QmWqQ3x27z2iCNNaAfXVAJ3FX2tHvUYu1t1Ze27pdbCRbK\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x35e258421ae206f3db37281cea70871b4c3553914734aa76139a41af60ac1abb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ef94b6bc4ee356db612a1849c615f7dd4b15542d6c8584c86bb9243a7913cf0\",\"dweb:/ipfs/QmaxFj5NFpAjjitZtHPNS9PPtCuBATaRz9ktDDRCQCQ83y\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x84d04bd9b87928b261736f90a86cbb15d8cf6f80560151366370fa79313f3cb5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7fd52b96d25ba9ca6ba26a591d2726c0256185b1c107b9a06834ca9ce0bae240\",\"dweb:/ipfs/QmYbgPqwwX1hUi6HfqcPM82bqgbjLYWDCXv83NxCvivL43\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/utils/Address.sol\":{\"keccak256\":\"0xef97d5bcb540814e1371a1e355a170919412e0d6754fdaa003b6a602e6a7ea4d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41a8f093a740cdcb224e48b2c4c2868f8e86dcdd3bc96ded6b10d29714b6f9a4\",\"dweb:/ipfs/QmSsgQmcY8n1a2bCFxdpWGS3YV63TZyZD77ycNHdpMDySL\"]}},\"version\":1}","zk_version":"1.3.9"},"evm":{"legacyAssembly":null,"assembly":"\t.text\n\t.file\t\"SystemContractsCaller.sol:SystemContractsCaller\"\n\t.globl\t__entry\n__entry:\n.func_begin0:\n\tand!\t1, r2, r1\n\tjump.eq\t@.BB0_2\n\tadd\t128, r0, r1\n\tst.1\t64, r1\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tadd\t32, r0, r1\n\tst.2\t256, r1\n\tst.2\t288, r0\n\tadd\t@CPI0_0[0], r0, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_2:\n\tadd\tr0, r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.func_end0:\n\n\t.note.GNU-stack\n\t.rodata\nCPI0_0:\n\t.cell 53919893334301279589334030174039261352344891250716429051063678533632\n","bytecode":{"object":"00000001012001900000000c0000613d0000008001000039000000400010043f0000000001000416000000000110004c0000000c0000c13d00000020010000390000010000100443000001200000044300000005010000410000000f0001042e000000000100001900000010000104300000000e000004320000000f0001042e000000100001043000000000000000000000000000000000000000000000000000000002000000000000000000000000000000400000010000000000000000006aba34187e0726c82074b221ce9892df7c126f562440ba7eb94d08e52521ce05"},"methodIdentifiers":{}},"irOptimized":"/// @use-src 17:\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractsCaller.sol\"\nobject \"SystemContractsCaller_3683\" {\n code {\n {\n /// @src 17:3385:11654 \"library SystemContractsCaller {...\"\n let _1 := memoryguard(0x80)\n mstore(64, _1)\n if callvalue() { revert(0, 0) }\n let _2 := datasize(\"SystemContractsCaller_3683_deployed\")\n codecopy(_1, dataoffset(\"SystemContractsCaller_3683_deployed\"), _2)\n setimmutable(_1, \"library_deploy_address\", address())\n return(_1, _2)\n }\n }\n /// @use-src 17:\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractsCaller.sol\"\n object \"SystemContractsCaller_3683_deployed\" {\n code {\n {\n /// @src 17:3385:11654 \"library SystemContractsCaller {...\"\n revert(0, 0)\n }\n }\n data \".metadata\" hex\"a264697066735822122039d99a6780026d2a89898e0998e4ac3137b9f7747e676e1187e2899a1fbb071c64736f6c63430008120033\"\n }\n}\n","hash":"01000007922927b83a76294e1b1d4cfe901babd1d3906827f1c687913ca4217a","factoryDependencies":{}}},"@matterlabs/zksync-contracts/l2/system-contracts/libraries/TransactionHelper.sol":{"TransactionHelper":{"abi":[],"metadata":{"optimizer_settings":"M3B3","solc_metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"Matter Labs\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Library is used to help custom accounts to work with common methods for the Transaction type.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/TransactionHelper.sol\":\"TransactionHelper\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@matterlabs/zksync-contracts/l2/system-contracts/BootloaderUtilities.sol\":{\"keccak256\":\"0xc41e925966405a28c4eb0e2469a29eadd62754859fe61166fda0ceac5610c8f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6781f926f24839f6d0f5bf5927de8a7ddcf36d7b5a047faa53d530022ecf5df\",\"dweb:/ipfs/QmRtScb3y57Ygy9xctaa448ZkRA7ouaJfxhBwdKLRN6a3z\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/Constants.sol\":{\"keccak256\":\"0x29a24f62d17d95b1f8d2d79505d056e1e99d64c1d5725a4b46fbe91a965b0c60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b56691f9a23d9b0f17ea5c6e1dcce28b780a461c34eb9340f74621dad25c5468\",\"dweb:/ipfs/QmXVJTkTBWfuiGhwvxP9Ldv7oDmAd66ruLhoQemE15F6KS\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IAccountCodeStorage.sol\":{\"keccak256\":\"0xc75d1bd8895832daeb7d59734cf0afcc47628c2c343b95cc5359d6975dc3ccaa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5be4ef8c557cd5216127b14b53b881a410707387fe9b7522a95e83f3b56b0368\",\"dweb:/ipfs/QmeAnw5BjgR4Vrz5eBkWdEMajevVaDyMbSXRPALfyHYnbe\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBootloaderUtilities.sol\":{\"keccak256\":\"0xeea7b6ea35e94ae1ee84697df2053ca660e750c90e8d9e340a515200e5de52f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9e55744cabfc9ae67d43b136c9f1be3e347dd6c9d9d2777bb699fed9bc630c5\",\"dweb:/ipfs/QmQcACmf7PfijgFjLbcNi8SRZh1bUvN4abpWUGWCRnszpS\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBytecodeCompressor.sol\":{\"keccak256\":\"0xfbe695ca62333019f21a12a1636736a1e3ffaba62059d35fe24a7694cf99a1ac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e6d6bece56e8be5391e77af4b4a1eaf18ceefb500b0fd15123878ecee1ec3f8d\",\"dweb:/ipfs/QmNfy59uBQAsyfG2Vfdy38M6TYj3nLnkbb1P2euQqQEteZ\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IContractDeployer.sol\":{\"keccak256\":\"0xcd0cb526a3c1b6c8689ca2b4ff4da2f8cb2b134dce1b983b2368e4b8ff585ad3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e853769ee9769d16a4398a4351e82214801592b711c3cc6789de36e4b84cfa71\",\"dweb:/ipfs/QmeXAc1mRQVhhaXjj15XWH2YS4tjpYqMwgdQ8xLAozcdmU\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IEthToken.sol\":{\"keccak256\":\"0x12d57fed82ecc9d955e592e65d36c0256da4f8f3ce46c59e9828664bb623be2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e95d99c4202b2fbe10706e358e09135cb9ec43563db7e72fe81913f2798f4b5\",\"dweb:/ipfs/QmbPcrDDHSQsKKXq5itMttMQnRXpYpGYMLYp9BDXoVwa7k\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IImmutableSimulator.sol\":{\"keccak256\":\"0xe71d8c877f89fb8f2e3cc83d31dea978de99c35d07354052388abb6af9e9dbcc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://47b7c0601463321723b2623873fd91365a451f7d2b26216ea48d0503c38f91e8\",\"dweb:/ipfs/QmbFjjH95ekfzeR94z3AEsak1dfmZ5R8aHsbDpGwBzjSzD\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IKnownCodesStorage.sol\":{\"keccak256\":\"0xbc460f4e40c05b0b958d94bdcc23cc64f1efe887ef722c7bd4afc66583d92846\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6956ef37fb2a64c065251fdd3dc3b8ab9abb56a23c64b4ed7a3f32dce3af2472\",\"dweb:/ipfs/QmcVUbnZ6AXbmWm8CbLWM6p2pGnpy5VmgsEjQrHqWheBM5\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IL1Messenger.sol\":{\"keccak256\":\"0x13b3d1e55c9a1752885d7101a8e6886ff04c70259dff6bb672f79ce0c63952d9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35600fe3cc1ccd2029b47e2740bfd3f100a5896acd13e9eeafd583727abc4922\",\"dweb:/ipfs/QmNWWpGGpZ9r46Cw8hNVJG3vobFwk6hHhsWjRiJUo4xB4h\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/INonceHolder.sol\":{\"keccak256\":\"0x4895f2828cac4b6c3891c59214d70d3cd31cee4324a6e70c87caf90a234776fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0b7cfe1caf4c91b44111eb2ff9ffd693ad4ec3f4f09ffd6a8c65645de1c4d23e\",\"dweb:/ipfs/QmNnzanCJq3JR6JYhGhZzUAa5VQznuBN6A8bg5nNwq9wSU\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymasterFlow.sol\":{\"keccak256\":\"0xbc73dbaf894a3fa41b52195227c73a855fdfcee713fa5ab3fba0773abe61a017\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e3fc1a2b1d3e2662a378ff3499457097e9ee1918faa830e741a38102ffa534f7\",\"dweb:/ipfs/QmatFh5y3B4XFnMZWjDuyUNCZAzh1dYF2uqEJvebxmzu6R\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/ISystemContext.sol\":{\"keccak256\":\"0xeb17460013b7bd75015f14c7aa296f7613dd331ffb2dccb4e725e708aa942ffb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7b4a3d7369d59deda677a7f2997151a146084d4d8487733ddec97924455c17d7\",\"dweb:/ipfs/QmQnCanKcV8UnBWHAV5BzDxnFd3sAQPQZbRAC44JCsgN4v\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/EfficientCall.sol\":{\"keccak256\":\"0x60a1780ada0ebad3ca24743399fb56c60bed23e1218371ec56855d214d152ea6\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2c7b490a8218a2d505b25d87c3aeb40e8867ed424e6eceb7ceb7bc557a32301a\",\"dweb:/ipfs/QmWRiRc11dHg2Vjbstxp1QCLqP23FsgtJS6R1jSfWiaBrC\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/RLPEncoder.sol\":{\"keccak256\":\"0x90e89a3db5d1d31cb60835b554c751c995339c7f7204314bc546683cad733439\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://234b0b0f64b3c984689f3c8d55ab2bf2e2a51c926aa8708aa72e365e884a4c28\",\"dweb:/ipfs/QmR2FLvaUCyBS6HnhZt5cp5nmjdefjdSVSymuYVG9qToBF\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractHelper.sol\":{\"keccak256\":\"0x5eb2c2a098cf0c4cd39be7842682a20ef575dccbb5d10713f98313788212411a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e1c1a52053dcf3b347a7161655f4e8a396be0c663d0d30b60953cf4e81e68848\",\"dweb:/ipfs/Qmat7quKhUTrjLDyPcAqMdpg4KP2jQhbuoCTGq7YENXHZ4\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractsCaller.sol\":{\"keccak256\":\"0x5033a1008942cb59413e47ea876f99bc5cd2b4b72308db003579ee1add07571f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11866ee670865a59e96ee25971d32abbe6a012a65ee0eca8a37aa11fe463e81f\",\"dweb:/ipfs/Qme3fnqFJgtnpRHf21Xj8qrE46P3nKwMZTywJytRbMjBZg\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/TransactionHelper.sol\":{\"keccak256\":\"0xb8ad21ccd87317971347a7a07388a1647944f62de02dbf2594632497e3dec330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://56369664918121fd8276ef09e35e1c5d64b8616ee38ad8d88fd45fbb0ddf381d\",\"dweb:/ipfs/QmPENE5H4Lg94MCpQ7gjah26Muqhc7QYAcyXQ9sFHxViGq\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/Utils.sol\":{\"keccak256\":\"0x323d26123de797a41955a05e68be86a6fe55aa62134ec59a8f89faa5bd04c416\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e0fd70642c2ded7d486bc5a3faac55d3357c20bb10d4243fef61962cf70e641\",\"dweb:/ipfs/QmWqQ3x27z2iCNNaAfXVAJ3FX2tHvUYu1t1Ze27pdbCRbK\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x35e258421ae206f3db37281cea70871b4c3553914734aa76139a41af60ac1abb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ef94b6bc4ee356db612a1849c615f7dd4b15542d6c8584c86bb9243a7913cf0\",\"dweb:/ipfs/QmaxFj5NFpAjjitZtHPNS9PPtCuBATaRz9ktDDRCQCQ83y\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x84d04bd9b87928b261736f90a86cbb15d8cf6f80560151366370fa79313f3cb5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7fd52b96d25ba9ca6ba26a591d2726c0256185b1c107b9a06834ca9ce0bae240\",\"dweb:/ipfs/QmYbgPqwwX1hUi6HfqcPM82bqgbjLYWDCXv83NxCvivL43\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/utils/Address.sol\":{\"keccak256\":\"0xef97d5bcb540814e1371a1e355a170919412e0d6754fdaa003b6a602e6a7ea4d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41a8f093a740cdcb224e48b2c4c2868f8e86dcdd3bc96ded6b10d29714b6f9a4\",\"dweb:/ipfs/QmSsgQmcY8n1a2bCFxdpWGS3YV63TZyZD77ycNHdpMDySL\"]}},\"version\":1}","zk_version":"1.3.9"},"evm":{"legacyAssembly":null,"assembly":"\t.text\n\t.file\t\"TransactionHelper.sol:TransactionHelper\"\n\t.globl\t__entry\n__entry:\n.func_begin0:\n\tand!\t1, r2, r1\n\tjump.eq\t@.BB0_2\n\tadd\t128, r0, r1\n\tst.1\t64, r1\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tadd\t32, r0, r1\n\tst.2\t256, r1\n\tst.2\t288, r0\n\tadd\t@CPI0_0[0], r0, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_2:\n\tadd\tr0, r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.func_end0:\n\n\t.note.GNU-stack\n\t.rodata\nCPI0_0:\n\t.cell 53919893334301279589334030174039261352344891250716429051063678533632\n","bytecode":{"object":"00000001012001900000000c0000613d0000008001000039000000400010043f0000000001000416000000000110004c0000000c0000c13d00000020010000390000010000100443000001200000044300000005010000410000000f0001042e000000000100001900000010000104300000000e000004320000000f0001042e00000010000104300000000000000000000000000000000000000000000000000000000200000000000000000000000000000040000001000000000000000000baa4882ae8c35bb14ccccf81b9cf7d54e874fbe731d6df96ea9e7293e4b789ea"},"methodIdentifiers":{}},"irOptimized":"/// @use-src 18:\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/TransactionHelper.sol\"\nobject \"TransactionHelper_4646\" {\n code {\n {\n /// @src 18:3015:19591 \"library TransactionHelper {...\"\n let _1 := memoryguard(0x80)\n mstore(64, _1)\n if callvalue() { revert(0, 0) }\n let _2 := datasize(\"TransactionHelper_4646_deployed\")\n codecopy(_1, dataoffset(\"TransactionHelper_4646_deployed\"), _2)\n setimmutable(_1, \"library_deploy_address\", address())\n return(_1, _2)\n }\n }\n /// @use-src 18:\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/TransactionHelper.sol\"\n object \"TransactionHelper_4646_deployed\" {\n code {\n {\n /// @src 18:3015:19591 \"library TransactionHelper {...\"\n revert(0, 0)\n }\n }\n data \".metadata\" hex\"a2646970667358221220023c79b805f279cf37dab836c1123895007f802f4551fc0402e993ba4ad51dbd64736f6c63430008120033\"\n }\n}\n","hash":"010000075c7e9d4cf5d1c843d61a363636034202afc87854bf1b5b60d6eb0be6","factoryDependencies":{}}},"@matterlabs/zksync-contracts/l2/system-contracts/libraries/Utils.sol":{"Utils":{"abi":[],"metadata":{"optimizer_settings":"M3B3","solc_metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"Matter Labs\",\"details\":\"Common utilities used in zkSync system contracts\",\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"IS_CONSTRUCTOR_BYTECODE_HASH_BIT_MASK\":{\"details\":\"Bit mask of bytecode hash \\\"isConstructor\\\" marker\"},\"SET_IS_CONSTRUCTOR_MARKER_BIT_MASK\":{\"details\":\"Bit mask to set the \\\"isConstructor\\\" marker in the bytecode hash\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/Utils.sol\":\"Utils\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@matterlabs/zksync-contracts/l2/system-contracts/BootloaderUtilities.sol\":{\"keccak256\":\"0xc41e925966405a28c4eb0e2469a29eadd62754859fe61166fda0ceac5610c8f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6781f926f24839f6d0f5bf5927de8a7ddcf36d7b5a047faa53d530022ecf5df\",\"dweb:/ipfs/QmRtScb3y57Ygy9xctaa448ZkRA7ouaJfxhBwdKLRN6a3z\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/Constants.sol\":{\"keccak256\":\"0x29a24f62d17d95b1f8d2d79505d056e1e99d64c1d5725a4b46fbe91a965b0c60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b56691f9a23d9b0f17ea5c6e1dcce28b780a461c34eb9340f74621dad25c5468\",\"dweb:/ipfs/QmXVJTkTBWfuiGhwvxP9Ldv7oDmAd66ruLhoQemE15F6KS\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IAccountCodeStorage.sol\":{\"keccak256\":\"0xc75d1bd8895832daeb7d59734cf0afcc47628c2c343b95cc5359d6975dc3ccaa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5be4ef8c557cd5216127b14b53b881a410707387fe9b7522a95e83f3b56b0368\",\"dweb:/ipfs/QmeAnw5BjgR4Vrz5eBkWdEMajevVaDyMbSXRPALfyHYnbe\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBootloaderUtilities.sol\":{\"keccak256\":\"0xeea7b6ea35e94ae1ee84697df2053ca660e750c90e8d9e340a515200e5de52f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9e55744cabfc9ae67d43b136c9f1be3e347dd6c9d9d2777bb699fed9bc630c5\",\"dweb:/ipfs/QmQcACmf7PfijgFjLbcNi8SRZh1bUvN4abpWUGWCRnszpS\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBytecodeCompressor.sol\":{\"keccak256\":\"0xfbe695ca62333019f21a12a1636736a1e3ffaba62059d35fe24a7694cf99a1ac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e6d6bece56e8be5391e77af4b4a1eaf18ceefb500b0fd15123878ecee1ec3f8d\",\"dweb:/ipfs/QmNfy59uBQAsyfG2Vfdy38M6TYj3nLnkbb1P2euQqQEteZ\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IContractDeployer.sol\":{\"keccak256\":\"0xcd0cb526a3c1b6c8689ca2b4ff4da2f8cb2b134dce1b983b2368e4b8ff585ad3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e853769ee9769d16a4398a4351e82214801592b711c3cc6789de36e4b84cfa71\",\"dweb:/ipfs/QmeXAc1mRQVhhaXjj15XWH2YS4tjpYqMwgdQ8xLAozcdmU\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IEthToken.sol\":{\"keccak256\":\"0x12d57fed82ecc9d955e592e65d36c0256da4f8f3ce46c59e9828664bb623be2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e95d99c4202b2fbe10706e358e09135cb9ec43563db7e72fe81913f2798f4b5\",\"dweb:/ipfs/QmbPcrDDHSQsKKXq5itMttMQnRXpYpGYMLYp9BDXoVwa7k\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IImmutableSimulator.sol\":{\"keccak256\":\"0xe71d8c877f89fb8f2e3cc83d31dea978de99c35d07354052388abb6af9e9dbcc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://47b7c0601463321723b2623873fd91365a451f7d2b26216ea48d0503c38f91e8\",\"dweb:/ipfs/QmbFjjH95ekfzeR94z3AEsak1dfmZ5R8aHsbDpGwBzjSzD\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IKnownCodesStorage.sol\":{\"keccak256\":\"0xbc460f4e40c05b0b958d94bdcc23cc64f1efe887ef722c7bd4afc66583d92846\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6956ef37fb2a64c065251fdd3dc3b8ab9abb56a23c64b4ed7a3f32dce3af2472\",\"dweb:/ipfs/QmcVUbnZ6AXbmWm8CbLWM6p2pGnpy5VmgsEjQrHqWheBM5\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IL1Messenger.sol\":{\"keccak256\":\"0x13b3d1e55c9a1752885d7101a8e6886ff04c70259dff6bb672f79ce0c63952d9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35600fe3cc1ccd2029b47e2740bfd3f100a5896acd13e9eeafd583727abc4922\",\"dweb:/ipfs/QmNWWpGGpZ9r46Cw8hNVJG3vobFwk6hHhsWjRiJUo4xB4h\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/INonceHolder.sol\":{\"keccak256\":\"0x4895f2828cac4b6c3891c59214d70d3cd31cee4324a6e70c87caf90a234776fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0b7cfe1caf4c91b44111eb2ff9ffd693ad4ec3f4f09ffd6a8c65645de1c4d23e\",\"dweb:/ipfs/QmNnzanCJq3JR6JYhGhZzUAa5VQznuBN6A8bg5nNwq9wSU\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymasterFlow.sol\":{\"keccak256\":\"0xbc73dbaf894a3fa41b52195227c73a855fdfcee713fa5ab3fba0773abe61a017\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e3fc1a2b1d3e2662a378ff3499457097e9ee1918faa830e741a38102ffa534f7\",\"dweb:/ipfs/QmatFh5y3B4XFnMZWjDuyUNCZAzh1dYF2uqEJvebxmzu6R\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/ISystemContext.sol\":{\"keccak256\":\"0xeb17460013b7bd75015f14c7aa296f7613dd331ffb2dccb4e725e708aa942ffb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7b4a3d7369d59deda677a7f2997151a146084d4d8487733ddec97924455c17d7\",\"dweb:/ipfs/QmQnCanKcV8UnBWHAV5BzDxnFd3sAQPQZbRAC44JCsgN4v\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/EfficientCall.sol\":{\"keccak256\":\"0x60a1780ada0ebad3ca24743399fb56c60bed23e1218371ec56855d214d152ea6\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2c7b490a8218a2d505b25d87c3aeb40e8867ed424e6eceb7ceb7bc557a32301a\",\"dweb:/ipfs/QmWRiRc11dHg2Vjbstxp1QCLqP23FsgtJS6R1jSfWiaBrC\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/RLPEncoder.sol\":{\"keccak256\":\"0x90e89a3db5d1d31cb60835b554c751c995339c7f7204314bc546683cad733439\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://234b0b0f64b3c984689f3c8d55ab2bf2e2a51c926aa8708aa72e365e884a4c28\",\"dweb:/ipfs/QmR2FLvaUCyBS6HnhZt5cp5nmjdefjdSVSymuYVG9qToBF\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractHelper.sol\":{\"keccak256\":\"0x5eb2c2a098cf0c4cd39be7842682a20ef575dccbb5d10713f98313788212411a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e1c1a52053dcf3b347a7161655f4e8a396be0c663d0d30b60953cf4e81e68848\",\"dweb:/ipfs/Qmat7quKhUTrjLDyPcAqMdpg4KP2jQhbuoCTGq7YENXHZ4\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractsCaller.sol\":{\"keccak256\":\"0x5033a1008942cb59413e47ea876f99bc5cd2b4b72308db003579ee1add07571f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11866ee670865a59e96ee25971d32abbe6a012a65ee0eca8a37aa11fe463e81f\",\"dweb:/ipfs/Qme3fnqFJgtnpRHf21Xj8qrE46P3nKwMZTywJytRbMjBZg\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/TransactionHelper.sol\":{\"keccak256\":\"0xb8ad21ccd87317971347a7a07388a1647944f62de02dbf2594632497e3dec330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://56369664918121fd8276ef09e35e1c5d64b8616ee38ad8d88fd45fbb0ddf381d\",\"dweb:/ipfs/QmPENE5H4Lg94MCpQ7gjah26Muqhc7QYAcyXQ9sFHxViGq\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/Utils.sol\":{\"keccak256\":\"0x323d26123de797a41955a05e68be86a6fe55aa62134ec59a8f89faa5bd04c416\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e0fd70642c2ded7d486bc5a3faac55d3357c20bb10d4243fef61962cf70e641\",\"dweb:/ipfs/QmWqQ3x27z2iCNNaAfXVAJ3FX2tHvUYu1t1Ze27pdbCRbK\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x35e258421ae206f3db37281cea70871b4c3553914734aa76139a41af60ac1abb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ef94b6bc4ee356db612a1849c615f7dd4b15542d6c8584c86bb9243a7913cf0\",\"dweb:/ipfs/QmaxFj5NFpAjjitZtHPNS9PPtCuBATaRz9ktDDRCQCQ83y\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x84d04bd9b87928b261736f90a86cbb15d8cf6f80560151366370fa79313f3cb5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7fd52b96d25ba9ca6ba26a591d2726c0256185b1c107b9a06834ca9ce0bae240\",\"dweb:/ipfs/QmYbgPqwwX1hUi6HfqcPM82bqgbjLYWDCXv83NxCvivL43\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/utils/Address.sol\":{\"keccak256\":\"0xef97d5bcb540814e1371a1e355a170919412e0d6754fdaa003b6a602e6a7ea4d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41a8f093a740cdcb224e48b2c4c2868f8e86dcdd3bc96ded6b10d29714b6f9a4\",\"dweb:/ipfs/QmSsgQmcY8n1a2bCFxdpWGS3YV63TZyZD77ycNHdpMDySL\"]}},\"version\":1}","zk_version":"1.3.9"},"evm":{"legacyAssembly":null,"assembly":"\t.text\n\t.file\t\"Utils.sol:Utils\"\n\t.globl\t__entry\n__entry:\n.func_begin0:\n\tand!\t1, r2, r1\n\tjump.eq\t@.BB0_2\n\tadd\t128, r0, r1\n\tst.1\t64, r1\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tadd\t32, r0, r1\n\tst.2\t256, r1\n\tst.2\t288, r0\n\tadd\t@CPI0_0[0], r0, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_2:\n\tadd\tr0, r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.func_end0:\n\n\t.note.GNU-stack\n\t.rodata\nCPI0_0:\n\t.cell 53919893334301279589334030174039261352344891250716429051063678533632\n","bytecode":{"object":"00000001012001900000000c0000613d0000008001000039000000400010043f0000000001000416000000000110004c0000000c0000c13d00000020010000390000010000100443000001200000044300000005010000410000000f0001042e000000000100001900000010000104300000000e000004320000000f0001042e00000010000104300000000000000000000000000000000000000000000000000000000200000000000000000000000000000040000001000000000000000000dd52e824b72a73a0eed9ea0f76098605e20f61ec93b169953e0111479912f142"},"methodIdentifiers":{}},"irOptimized":"/// @use-src 19:\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/Utils.sol\"\nobject \"Utils_4920\" {\n code {\n {\n /// @src 19:177:4386 \"library Utils {...\"\n let _1 := memoryguard(0x80)\n mstore(64, _1)\n if callvalue() { revert(0, 0) }\n let _2 := datasize(\"Utils_4920_deployed\")\n codecopy(_1, dataoffset(\"Utils_4920_deployed\"), _2)\n setimmutable(_1, \"library_deploy_address\", address())\n return(_1, _2)\n }\n }\n /// @use-src 19:\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/Utils.sol\"\n object \"Utils_4920_deployed\" {\n code {\n {\n /// @src 19:177:4386 \"library Utils {...\"\n revert(0, 0)\n }\n }\n data \".metadata\" hex\"a2646970667358221220cda790b0fda0c8de3ee1bda342d1bc887c69410acffc03bcf629d72bcc2cadbe64736f6c63430008120033\"\n }\n}\n","hash":"01000007639ce794331deea2c3b8d46ce12a00dadaea5e2eae61b19658531849","factoryDependencies":{}}},"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/IERC20.sol":{"IERC20":{"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"}],"metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"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\":{\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/IERC20.sol\":\"IERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]}},\"version\":1}","evm":{"legacyAssembly":null,"assembly":null,"bytecode":null,"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"irOptimized":""}},"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/extensions/IERC20Permit.sol":{"IERC20Permit":{"abi":[{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"}],"metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in https://eips.ethereum.org/EIPS/eip-2612[EIP-2612]. Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't need to send a transaction, and thus is not required to hold Ether at all.\",\"kind\":\"dev\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"details\":\"Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}.\"},\"nonces(address)\":{\"details\":\"Returns the current nonce for `owner`. This value must be included whenever a signature is generated for {permit}. Every successful call to {permit} increases ``owner``'s nonce by one. This prevents a signature from being used multiple times.\"},\"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Sets `value` as the allowance of `spender` over ``owner``'s tokens, given ``owner``'s signed approval. IMPORTANT: The same issues {IERC20-approve} has related to transaction ordering also apply here. Emits an {Approval} event. Requirements: - `spender` cannot be the zero address. - `deadline` must be a timestamp in the future. - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner` over the EIP712-formatted function arguments. - the signature must use ``owner``'s current nonce (see {nonces}). For more information on the signature format, see the https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP section].\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/extensions/IERC20Permit.sol\":\"IERC20Permit\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x35e258421ae206f3db37281cea70871b4c3553914734aa76139a41af60ac1abb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ef94b6bc4ee356db612a1849c615f7dd4b15542d6c8584c86bb9243a7913cf0\",\"dweb:/ipfs/QmaxFj5NFpAjjitZtHPNS9PPtCuBATaRz9ktDDRCQCQ83y\"]}},\"version\":1}","evm":{"legacyAssembly":null,"assembly":null,"bytecode":null,"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","nonces(address)":"7ecebe00","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf"}},"irOptimized":""}},"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/utils/SafeERC20.sol":{"SafeERC20":{"abi":[],"metadata":{"optimizer_settings":"M3B3","solc_metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Wrappers around ERC20 operations that throw on failure (when the token contract returns false). Tokens that return no value (and instead revert or throw on failure) are also supported, non-reverting calls are assumed to be successful. To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract, which allows you to call the safe operations as `token.safeTransfer(...)`, etc.\",\"kind\":\"dev\",\"methods\":{},\"title\":\"SafeERC20\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/utils/SafeERC20.sol\":\"SafeERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x35e258421ae206f3db37281cea70871b4c3553914734aa76139a41af60ac1abb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ef94b6bc4ee356db612a1849c615f7dd4b15542d6c8584c86bb9243a7913cf0\",\"dweb:/ipfs/QmaxFj5NFpAjjitZtHPNS9PPtCuBATaRz9ktDDRCQCQ83y\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x84d04bd9b87928b261736f90a86cbb15d8cf6f80560151366370fa79313f3cb5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7fd52b96d25ba9ca6ba26a591d2726c0256185b1c107b9a06834ca9ce0bae240\",\"dweb:/ipfs/QmYbgPqwwX1hUi6HfqcPM82bqgbjLYWDCXv83NxCvivL43\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/utils/Address.sol\":{\"keccak256\":\"0xef97d5bcb540814e1371a1e355a170919412e0d6754fdaa003b6a602e6a7ea4d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41a8f093a740cdcb224e48b2c4c2868f8e86dcdd3bc96ded6b10d29714b6f9a4\",\"dweb:/ipfs/QmSsgQmcY8n1a2bCFxdpWGS3YV63TZyZD77ycNHdpMDySL\"]}},\"version\":1}","zk_version":"1.3.9"},"evm":{"legacyAssembly":null,"assembly":"\t.text\n\t.file\t\"SafeERC20.sol:SafeERC20\"\n\t.globl\t__entry\n__entry:\n.func_begin0:\n\tand!\t1, r2, r1\n\tjump.eq\t@.BB0_2\n\tadd\t128, r0, r1\n\tst.1\t64, r1\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tadd\t32, r0, r1\n\tst.2\t256, r1\n\tst.2\t288, r0\n\tadd\t@CPI0_0[0], r0, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_2:\n\tadd\tr0, r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.func_end0:\n\n\t.note.GNU-stack\n\t.rodata\nCPI0_0:\n\t.cell 53919893334301279589334030174039261352344891250716429051063678533632\n","bytecode":{"object":"00000001012001900000000c0000613d0000008001000039000000400010043f0000000001000416000000000110004c0000000c0000c13d00000020010000390000010000100443000001200000044300000005010000410000000f0001042e000000000100001900000010000104300000000e000004320000000f0001042e00000010000104300000000000000000000000000000000000000000000000000000000200000000000000000000000000000040000001000000000000000000c41c06100bf1e4ba96aa6dd3f611d2b1efed955ea2d4b293638af23b4462d2e6"},"methodIdentifiers":{}},"irOptimized":"/// @use-src 22:\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/utils/SafeERC20.sol\"\nobject \"SafeERC20_5315\" {\n code {\n {\n /// @src 22:701:4931 \"library SafeERC20 {...\"\n let _1 := memoryguard(0x80)\n mstore(64, _1)\n if callvalue() { revert(0, 0) }\n let _2 := datasize(\"SafeERC20_5315_deployed\")\n codecopy(_1, dataoffset(\"SafeERC20_5315_deployed\"), _2)\n setimmutable(_1, \"library_deploy_address\", address())\n return(_1, _2)\n }\n }\n /// @use-src 22:\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/utils/SafeERC20.sol\"\n object \"SafeERC20_5315_deployed\" {\n code {\n {\n /// @src 22:701:4931 \"library SafeERC20 {...\"\n revert(0, 0)\n }\n }\n data \".metadata\" hex\"a2646970667358221220f9f1240120c242b1326825687e71c6462d02eccd50c82b79c3efe417d5c04edc64736f6c63430008120033\"\n }\n}\n","hash":"01000007b8437f7f1a7f7be55ac9c15a2d5da05ec49687a696816fd03daa350b","factoryDependencies":{}}},"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/utils/Address.sol":{"Address":{"abi":[],"metadata":{"optimizer_settings":"M3B3","solc_metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"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\":{\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/utils/Address.sol\":\"Address\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/utils/Address.sol\":{\"keccak256\":\"0xef97d5bcb540814e1371a1e355a170919412e0d6754fdaa003b6a602e6a7ea4d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41a8f093a740cdcb224e48b2c4c2868f8e86dcdd3bc96ded6b10d29714b6f9a4\",\"dweb:/ipfs/QmSsgQmcY8n1a2bCFxdpWGS3YV63TZyZD77ycNHdpMDySL\"]}},\"version\":1}","zk_version":"1.3.9"},"evm":{"legacyAssembly":null,"assembly":"\t.text\n\t.file\t\"Address.sol:Address\"\n\t.globl\t__entry\n__entry:\n.func_begin0:\n\tand!\t1, r2, r1\n\tjump.eq\t@.BB0_2\n\tadd\t128, r0, r1\n\tst.1\t64, r1\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tadd\t32, r0, r1\n\tst.2\t256, r1\n\tst.2\t288, r0\n\tadd\t@CPI0_0[0], r0, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_2:\n\tadd\tr0, r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.func_end0:\n\n\t.note.GNU-stack\n\t.rodata\nCPI0_0:\n\t.cell 53919893334301279589334030174039261352344891250716429051063678533632\n","bytecode":{"object":"00000001012001900000000c0000613d0000008001000039000000400010043f0000000001000416000000000110004c0000000c0000c13d00000020010000390000010000100443000001200000044300000005010000410000000f0001042e000000000100001900000010000104300000000e000004320000000f0001042e00000010000104300000000000000000000000000000000000000000000000000000000200000000000000000000000000000040000001000000000000000000f0b97e8249a35a6ef256f181be80ba90e42fc3fd690287b649b4e9938d2f156f"},"methodIdentifiers":{}},"irOptimized":"/// @use-src 23:\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/utils/Address.sol\"\nobject \"Address_5645\" {\n code {\n {\n /// @src 23:194:9967 \"library Address {...\"\n let _1 := memoryguard(0x80)\n mstore(64, _1)\n if callvalue() { revert(0, 0) }\n let _2 := datasize(\"Address_5645_deployed\")\n codecopy(_1, dataoffset(\"Address_5645_deployed\"), _2)\n setimmutable(_1, \"library_deploy_address\", address())\n return(_1, _2)\n }\n }\n /// @use-src 23:\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/utils/Address.sol\"\n object \"Address_5645_deployed\" {\n code {\n {\n /// @src 23:194:9967 \"library Address {...\"\n revert(0, 0)\n }\n }\n data \".metadata\" hex\"a2646970667358221220fa930808715f13d9e1cd9184730fc8baebb074123b08e81ffed2c39ebd282d2564736f6c63430008120033\"\n }\n}\n","hash":"01000007ff3bc8c1c8620e1f9da5af89c4bd069591a1aea252a14f88c4a6bcec","factoryDependencies":{}}},"@openzeppelin/contracts/access/Ownable.sol":{"Ownable":{"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"}],"metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"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\":{\"@openzeppelin/contracts/access/Ownable.sol\":\"Ownable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0x24e0364e503a9bbde94c715d26573a76f14cd2a202d45f96f52134ab806b67b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e12cbaa7378fd9b62280e4e1d164bedcb4399ce238f5f98fc0eefb7e50577981\",\"dweb:/ipfs/QmXRoFGUgfsaRkoPT5bxNMtSayKTQ8GZATLPXf69HcRA51\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]}},\"version\":1}","evm":{"legacyAssembly":null,"assembly":null,"bytecode":null,"methodIdentifiers":{"owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b"}},"irOptimized":""}},"@openzeppelin/contracts/token/ERC20/ERC20.sol":{"ERC20":{"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"}],"metadata":{"optimizer_settings":"M3B3","solc_metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"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\":{\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":\"ERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xe0c8b625a79bac0fe80f17cfb521e072805cc9cef1c96a5caf45b264e74812fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12fd1efc9ad061ef675bd50fb0c8e3c6f2952a09f8df0e3c688b8d81b8918838\",\"dweb:/ipfs/QmawN6PjTwy91pU7ANjCSgbsLc8TDA6hwu9GsFFaNSuhb5\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]}},\"version\":1}","zk_version":"1.3.9"},"evm":{"legacyAssembly":null,"assembly":"\t.text\n\t.file\t\"ERC20.sol:ERC20\"\n\t.globl\t__entry\n__entry:\n.func_begin0:\n\tnop\tstack+=[8]\n\tptr.add\tr1, r0, stack[@ptr_calldata]\n\tshr.s\t96, r1, r1\n\tand\t@CPI0_0[0], r1, stack[@calldatasize]\n\tadd\t128, r0, r1\n\tst.1\t64, r1\n\tand!\t1, r2, r1\n\tjump.ne\t@.BB0_1\n\tadd\tstack[@calldatasize], r0, r1\n\tsub.s!\t4, r1, r1\n\tjump.lt\t@.BB0_2\n\tptr.add\tstack[@ptr_calldata], r0, r1\n\tld\tr1, r1\n\tshr.s\t224, r1, r1\n\tsub.s!\t@CPI0_5[0], r1, r2\n\tjump.le\t@.BB0_69\n\tsub.s!\t@CPI0_6[0], r1, r2\n\tjump.gt\t@.BB0_79\n\tsub.s!\t@CPI0_10[0], r1, r2\n\tjump.eq\t@.BB0_120\n\tsub.s!\t@CPI0_11[0], r1, r2\n\tjump.eq\t@.BB0_128\n\tsub.s!\t@CPI0_12[0], r1, r1\n\tjump.ne\t@.BB0_2\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tsub.s\t4, r0, r1\n\tadd\tstack[@calldatasize], r1, r1\n\tadd\t@CPI0_2[0], r0, r2\n\tsub.s!\t0, r1, r3\n\tadd\t0, r0, r3\n\tadd.lt\tr2, r0, r3\n\tand\t@CPI0_2[0], r1, r1\n\tsub.s!\t0, r1, r4\n\tadd.le\t0, r0, r2\n\tsub.s!\t@CPI0_2[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tadd\t4, r0, r5\n\tsload\tr5, r4\n\tand!\t1, r4, r6\n\tshr.s\t1, r4, r1\n\tand\t127, r1, r2\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t31, r1, r2\n\tadd\t0, r0, r2\n\tadd.gt\t1, r0, r2\n\txor\tr4, r2, r2\n\tand!\t1, r2, r2\n\tjump.ne\t@.BB0_31\n\tld.1\t64, r2\n\tst.1.inc\tr2, r1, r3\n\tsub.s!\t0, r6, r6\n\tjump.ne\t@.BB0_139\n\tsub.s\t256, r0, r5\n\tand\tr4, r5, r4\n\tst.1\tr3, r4\n\tsub.s!\t0, r1, r1\n\tadd\t32, r0, r4\n\tadd.eq\t0, r0, r4\n\tjump\t@.BB0_136\n.BB0_1:\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tadd\tstack[@calldatasize], r0, r2\n\tadd\t31, r2, r1\n\tsub.s\t32, r0, r10\n\tand\tr1, r10, r4\n\tld.1\t64, r1\n\tadd\tr4, r1, r3\n\tsub!\tr3, r4, r4\n\tadd\t0, r0, r4\n\tadd.lt\t1, r0, r4\n\tsub.s!\t@CPI0_1[0], r3, r5\n\tjump.gt\t@.BB0_5\n\tand!\t1, r4, r4\n\tjump.ne\t@.BB0_5\n\tst.1\t64, r3\n\tand\t31, r2, r3\n\tptr.add\tstack[@ptr_calldata], r0, r4\n\tshr.s!\t5, r2, r5\n\tjump.eq\t@.BB0_160\n\tadd\tr0, r0, r6\n.BB0_8:\n\tshl.s\t5, r6, r7\n\tadd\tr1, r7, r8\n\tptr.add\tr4, r7, r7\n\tld\tr7, r7\n\tst.1\tr8, r7\n\tadd\t1, r6, r6\n\tsub!\tr6, r5, r7\n\tjump.lt\t@.BB0_8\n.BB0_160:\n\tsub.s!\t0, r3, r6\n\tjump.eq\t@.BB0_10\n\tshl.s\t5, r5, r5\n\tptr.add\tr4, r5, r4\n\tadd\tr1, r5, r5\n\tshl.s\t3, r3, r3\n\tld.1\tr5, r6\n\tshl\tr6, r3, r6\n\tshr\tr6, r3, r6\n\tld\tr4, r4\n\tsub\t256, r3, r3\n\tshr\tr4, r3, r4\n\tshl\tr4, r3, r3\n\tor\tr3, r6, r3\n\tst.1\tr5, r3\n.BB0_10:\n\tadd\t@CPI0_2[0], r0, r3\n\tsub.s!\t64, r2, r4\n\tadd\t0, r0, r4\n\tadd.lt\tr3, r0, r4\n\tand\t@CPI0_2[0], r2, r5\n\tsub.s!\t0, r5, r6\n\tadd.le\t0, r0, r3\n\tsub.s!\t@CPI0_2[0], r5, r5\n\tadd.ne\tr4, r0, r3\n\tsub.s!\t0, r3, r3\n\tjump.ne\t@.BB0_2\n\tld.1.inc\tr1, r4, r3\n\tsub.s!\t@CPI0_1[0], r4, r5\n\tjump.gt\t@.BB0_2\n\tadd\tr1, r2, r2\n\tadd\tr4, r1, r4\n\tadd\t31, r4, r5\n\tadd\t@CPI0_2[0], r0, r6\n\tsub!\tr5, r2, r7\n\tadd\t0, r0, r7\n\tadd.ge\tr6, r0, r7\n\tand\t@CPI0_2[0], r5, r5\n\tand\t@CPI0_2[0], r2, r8\n\tsub!\tr5, r8, r9\n\tadd.ge\t0, r0, r6\n\txor\tr5, r8, r5\n\tsub.s!\t@CPI0_2[0], r5, r5\n\tadd\tr7, r0, r5\n\tadd.eq\tr6, r0, r5\n\tsub.s!\t0, r5, r5\n\tjump.ne\t@.BB0_2\n\tld.1\tr4, r5\n\tsub.s!\t@CPI0_1[0], r5, r6\n\tjump.gt\t@.BB0_5\n\tadd\t63, r5, r6\n\tand\tr6, r10, r6\n\tld.1\t64, r11\n\tadd\tr11, r6, r6\n\tsub!\tr6, r11, r7\n\tadd\t0, r0, r7\n\tadd.lt\t1, r0, r7\n\tsub.s!\t@CPI0_1[0], r6, r8\n\tjump.gt\t@.BB0_5\n\tand!\t1, r7, r7\n\tjump.ne\t@.BB0_5\n\tst.1\t64, r6\n\tst.1.inc\tr11, r5, r12\n\tadd\t32, r5, r6\n\tadd\tr6, r4, r7\n\tsub!\tr7, r2, r7\n\tjump.gt\t@.BB0_2\n\tsub.s!\t0, r5, r7\n\tjump.eq\t@.BB0_20\n\tadd\tr0, r0, r7\n.BB0_19:\n\tadd\t32, r7, r7\n\tadd\tr7, r11, r8\n\tadd\tr7, r4, r9\n\tld.1\tr9, r9\n\tst.1\tr8, r9\n\tsub!\tr7, r5, r8\n\tjump.lt\t@.BB0_19\n.BB0_20:\n\tadd\tr11, r6, r4\n\tst.1\tr4, r0\n\tld.1\tr3, r3\n\tsub.s!\t@CPI0_1[0], r3, r4\n\tjump.gt\t@.BB0_2\n\tadd\tr3, r1, r1\n\tadd\t31, r1, r3\n\tadd\t@CPI0_2[0], r0, r4\n\tsub!\tr3, r2, r5\n\tadd\t0, r0, r5\n\tadd.ge\tr4, r0, r5\n\tand\t@CPI0_2[0], r3, r3\n\tand\t@CPI0_2[0], r2, r6\n\tsub!\tr3, r6, r7\n\tadd.ge\t0, r0, r4\n\txor\tr3, r6, r3\n\tsub.s!\t@CPI0_2[0], r3, r3\n\tadd\tr5, r0, r3\n\tadd.eq\tr4, r0, r3\n\tsub.s!\t0, r3, r3\n\tjump.ne\t@.BB0_2\n\tld.1\tr1, r3\n\tsub.s!\t@CPI0_1[0], r3, r4\n\tjump.gt\t@.BB0_5\n\tadd\t63, r3, r4\n\tand\tr4, r10, r4\n\tld.1\t64, r7\n\tadd\tr7, r4, r4\n\tsub!\tr4, r7, r5\n\tadd\t0, r0, r5\n\tadd.lt\t1, r0, r5\n\tsub.s!\t@CPI0_1[0], r4, r6\n\tjump.gt\t@.BB0_5\n\tand!\t1, r5, r5\n\tjump.ne\t@.BB0_5\n\tst.1\t64, r4\n\tst.1.inc\tr7, r3, r4\n\tadd\tr4, r0, stack-[7]\n\tadd\t32, r3, r4\n\tadd\tr4, r1, r5\n\tsub!\tr5, r2, r2\n\tjump.gt\t@.BB0_2\n\tadd\tr12, r0, stack-[4]\n\tadd\tr11, r0, stack-[8]\n\tadd\tr10, r0, stack-[5]\n\tsub.s!\t0, r3, r2\n\tjump.eq\t@.BB0_29\n\tadd\tr0, r0, r2\n.BB0_28:\n\tadd\t32, r2, r2\n\tadd\tr2, r7, r5\n\tadd\tr2, r1, r6\n\tld.1\tr6, r6\n\tst.1\tr5, r6\n\tsub!\tr2, r3, r5\n\tjump.lt\t@.BB0_28\n.BB0_29:\n\tadd\tr7, r4, r1\n\tst.1\tr1, r0\n\tadd\tstack-[8], r0, r1\n\tld.1\tr1, r1\n\tadd\tr1, r0, stack-[6]\n\tsub.s!\t@CPI0_1[0], r1, r1\n\tjump.gt\t@.BB0_5\n\tadd\tr7, r0, stack-[1]\n\tadd\t3, r0, r1\n\tadd\tr1, r0, stack-[3]\n\tsload\tr1, r1\n\tand!\t1, r1, r2\n\tshr.s\t1, r1, r1\n\tand\t127, r1, r3\n\tadd.eq\tr3, r0, r1\n\tadd\tr1, r0, stack-[2]\n\tsub.s!\t31, r1, r1\n\tadd\t0, r0, r1\n\tadd.gt\t1, r0, r1\n\tand\t1, r1, r1\n\tsub!\tr2, r1, r1\n\tjump.ne\t@.BB0_31\n\tadd\tstack-[2], r0, r1\n\tsub.s!\t32, r1, r1\n\tjump.lt\t@.BB0_36\n\tadd\tstack-[3], r0, r1\n\tst.1\t0, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI0_3[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_2\n\tadd\tstack-[6], r0, r3\n\tadd\t31, r3, r2\n\tshr.s\t5, r2, r2\n\tsub.s!\t32, r3, r3\n\tadd.lt\t0, r0, r2\n\tld\tr1, r3\n\tadd\tstack-[2], r0, r1\n\tadd\t31, r1, r1\n\tshr.s\t5, r1, r1\n\tadd\tr3, r1, r1\n\tadd\tr3, r2, r2\n\tsub!\tr2, r1, r3\n\tjump.ge\t@.BB0_36\n.BB0_37:\n\tsstore\tr2, r0\n\tadd\t1, r2, r2\n\tsub!\tr2, r1, r3\n\tjump.lt\t@.BB0_37\n.BB0_36:\n\tadd\tstack-[6], r0, r1\n\tsub.s!\t31, r1, r1\n\tjump.le\t@.BB0_46\n\tadd\tstack-[3], r0, r1\n\tst.1\t0, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI0_3[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tadd\tstack-[5], r0, r2\n\tadd\tstack-[8], r0, r6\n\tjump.eq\t@.BB0_2\n\tadd\tstack-[6], r0, r3\n\tand!\tr3, r2, r3\n\tadd\t32, r0, r2\n\tld\tr1, r1\n\tjump.eq\t@.BB0_43\n\tadd\t32, r0, r2\n\tadd\tr0, r0, r4\n.BB0_42:\n\tadd\tr2, r6, r5\n\tld.1\tr5, r5\n\tsstore\tr1, r5\n\tadd\t32, r2, r2\n\tadd\t1, r1, r1\n\tadd\t32, r4, r4\n\tsub!\tr4, r3, r5\n\tjump.lt\t@.BB0_42\n.BB0_43:\n\tadd\tstack-[6], r0, r4\n\tsub!\tr3, r4, r3\n\tjump.ge\t@.BB0_45\n\tadd\tstack-[6], r0, r3\n\tshl.s\t3, r3, r3\n\tand\t248, r3, r3\n\tsub.s\t1, r0, r4\n\tshr\tr4, r3, r3\n\txor\tr3, r4, r3\n\tadd\tstack-[8], r0, r4\n\tadd\tr2, r4, r2\n\tld.1\tr2, r2\n\tand\tr2, r3, r2\n\tsstore\tr1, r2\n.BB0_45:\n\tadd\t1, r0, r1\n\tadd\tstack-[6], r0, r2\n\tshl.s\t1, r2, r2\n\tjump\t@.BB0_38\n.BB0_69:\n\tsub.s!\t@CPI0_13[0], r1, r2\n\tjump.le\t@.BB0_70\n\tsub.s!\t@CPI0_14[0], r1, r2\n\tjump.eq\t@.BB0_97\n\tsub.s!\t@CPI0_15[0], r1, r2\n\tjump.eq\t@.BB0_100\n\tsub.s!\t@CPI0_16[0], r1, r1\n\tjump.ne\t@.BB0_2\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tsub.s\t4, r0, r1\n\tadd\tstack[@calldatasize], r1, r1\n\tadd\t@CPI0_2[0], r0, r2\n\tsub.s!\t0, r1, r3\n\tadd\t0, r0, r3\n\tadd.lt\tr2, r0, r3\n\tand\t@CPI0_2[0], r1, r1\n\tsub.s!\t0, r1, r4\n\tadd.le\t0, r0, r2\n\tsub.s!\t@CPI0_2[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tld.1\t64, r1\n\tadd\t18, r0, r2\n\tst.1\tr1, r2\n\tadd\t@CPI0_0[0], r0, r2\n\tsub.s!\t@CPI0_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI0_20[0], r1, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_79:\n\tsub.s!\t@CPI0_7[0], r1, r2\n\tjump.eq\t@.BB0_143\n\tsub.s!\t@CPI0_8[0], r1, r2\n\tjump.eq\t@.BB0_151\n\tsub.s!\t@CPI0_9[0], r1, r1\n\tjump.ne\t@.BB0_2\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tsub.s\t4, r0, r1\n\tadd\tstack[@calldatasize], r1, r1\n\tadd\t@CPI0_2[0], r0, r2\n\tsub.s!\t64, r1, r3\n\tadd\t0, r0, r3\n\tadd.lt\tr2, r0, r3\n\tand\t@CPI0_2[0], r1, r1\n\tsub.s!\t0, r1, r4\n\tadd.le\t0, r0, r2\n\tsub.s!\t@CPI0_2[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tptr.add\tstack[@ptr_calldata], r0, r2\n\tptr.add.s\t4, r2, r1\n\tld\tr1, r1\n\tsub.s!\t@CPI0_19[0], r1, r3\n\tjump.gt\t@.BB0_2\n\tptr.add.s\t36, r2, r2\n\tld\tr2, r3\n\tsub.s!\t@CPI0_19[0], r3, r2\n\tjump.gt\t@.BB0_2\n\tst.1\t0, r1\n\tadd\t1, r0, r1\n\tst.1\t32, r1\n\tadd\t64, r0, r2\n\tadd\tr2, r0, stack-[8]\n\tadd\tr0, r0, r1\n\tadd\tr3, r0, stack-[7]\n\tnear_call\tr0, @__keccak256, @DEFAULT_UNWIND\n\tadd\tstack-[7], r0, r2\n\tst.1\t0, r2\n\tst.1\t32, r1\n\tadd\tr0, r0, r1\n\tadd\tstack-[8], r0, r2\n\tnear_call\tr0, @__keccak256, @DEFAULT_UNWIND\n\tsload\tr1, r1\n\tld.1\t64, r2\n\tst.1\tr2, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI0_20[0], r1, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_70:\n\tsub.s!\t@CPI0_17[0], r1, r2\n\tjump.eq\t@.BB0_82\n\tsub.s!\t@CPI0_18[0], r1, r1\n\tjump.ne\t@.BB0_2\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tsub.s\t4, r0, r1\n\tadd\tstack[@calldatasize], r1, r1\n\tadd\t@CPI0_2[0], r0, r2\n\tsub.s!\t64, r1, r3\n\tadd\t0, r0, r3\n\tadd.lt\tr2, r0, r3\n\tand\t@CPI0_2[0], r1, r1\n\tsub.s!\t0, r1, r4\n\tadd.le\t0, r0, r2\n\tsub.s!\t@CPI0_2[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tptr.add\tstack[@ptr_calldata], r0, r1\n\tptr.add.s\t4, r1, r2\n\tld\tr2, r2\n\tsub.s!\t@CPI0_19[0], r2, r3\n\tjump.gt\t@.BB0_2\n\tptr.add.s\t36, r1, r1\n\tld\tr1, r3\n\tcontext.caller\tr1\n\tnear_call\tr0, @fun_approve, @DEFAULT_UNWIND\n\tadd\t1, r0, r1\n\tld.1\t64, r2\n\tst.1\tr2, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI0_20[0], r1, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_120:\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tsub.s\t4, r0, r1\n\tadd\tstack[@calldatasize], r1, r1\n\tadd\t@CPI0_2[0], r0, r2\n\tsub.s!\t64, r1, r3\n\tadd\t0, r0, r3\n\tadd.lt\tr2, r0, r3\n\tand\t@CPI0_2[0], r1, r1\n\tsub.s!\t0, r1, r4\n\tadd.le\t0, r0, r2\n\tsub.s!\t@CPI0_2[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tadd\t4, r0, r1\n\tptr.add\tstack[@ptr_calldata], r1, r1\n\tld\tr1, r1\n\tadd\tr1, r0, stack-[8]\n\tsub.s!\t@CPI0_19[0], r1, r1\n\tjump.gt\t@.BB0_2\n\tcontext.caller\tr1\n\tadd\tr1, r0, stack-[6]\n\tst.1\t0, r1\n\tadd\t1, r0, r1\n\tadd\tr1, r0, stack-[7]\n\tst.1\t32, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI0_21[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_2\n\tld\tr1, r1\n\tadd\tstack-[8], r0, r2\n\tst.1\t0, r2\n\tst.1\t32, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI0_21[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_2\n\tld\tr1, r1\n\tsload\tr1, r1\n\tadd\t36, r0, r2\n\tptr.add\tstack[@ptr_calldata], r2, r2\n\tld\tr2, r2\n\tadd\tr2, r1, r3\n\tsub!\tr3, r2, r1\n\tadd\t0, r0, r1\n\tadd.lt\t1, r0, r1\n\tand!\t1, r1, r1\n\tjump.eq\t@.BB0_127\n\tadd\t@CPI0_27[0], r0, r1\n\tst.1\t0, r1\n\tadd\t17, r0, r1\n\tst.1\t4, r1\n\tadd\t@CPI0_28[0], r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB0_128:\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tsub.s\t4, r0, r1\n\tadd\tstack[@calldatasize], r1, r1\n\tadd\t@CPI0_2[0], r0, r2\n\tsub.s!\t32, r1, r3\n\tadd\t0, r0, r3\n\tadd.lt\tr2, r0, r3\n\tand\t@CPI0_2[0], r1, r1\n\tsub.s!\t0, r1, r4\n\tadd.le\t0, r0, r2\n\tsub.s!\t@CPI0_2[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tadd\t4, r0, r1\n\tptr.add\tstack[@ptr_calldata], r1, r1\n\tld\tr1, r1\n\tsub.s!\t@CPI0_19[0], r1, r2\n\tjump.gt\t@.BB0_2\n\tst.1\t0, r1\n\tst.1\t32, r0\n\tadd\t64, r0, r2\n\tadd\tr0, r0, r1\n\tnear_call\tr0, @__keccak256, @DEFAULT_UNWIND\n\tsload\tr1, r1\n\tld.1\t64, r2\n\tst.1\tr2, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI0_20[0], r1, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_97:\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tsub.s\t4, r0, r1\n\tadd\tstack[@calldatasize], r1, r1\n\tadd\t@CPI0_2[0], r0, r2\n\tsub.s!\t0, r1, r3\n\tadd\t0, r0, r3\n\tadd.lt\tr2, r0, r3\n\tand\t@CPI0_2[0], r1, r1\n\tsub.s!\t0, r1, r4\n\tadd.le\t0, r0, r2\n\tsub.s!\t@CPI0_2[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tadd\t2, r0, r1\n\tsload\tr1, r1\n\tld.1\t64, r2\n\tst.1\tr2, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI0_20[0], r1, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_100:\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tsub.s\t4, r0, r1\n\tadd\tstack[@calldatasize], r1, r1\n\tadd\t@CPI0_2[0], r0, r2\n\tsub.s!\t96, r1, r3\n\tadd\t0, r0, r3\n\tadd.lt\tr2, r0, r3\n\tand\t@CPI0_2[0], r1, r1\n\tsub.s!\t0, r1, r4\n\tadd.le\t0, r0, r2\n\tsub.s!\t@CPI0_2[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tptr.add\tstack[@ptr_calldata], r0, r1\n\tptr.add.s\t4, r1, r2\n\tld\tr2, r4\n\tsub.s!\t@CPI0_19[0], r4, r2\n\tjump.gt\t@.BB0_2\n\tptr.add.s\t36, r1, r2\n\tld\tr2, r2\n\tadd\tr2, r0, stack-[8]\n\tsub.s!\t@CPI0_19[0], r2, r2\n\tjump.gt\t@.BB0_2\n\tptr.add.s\t68, r1, r1\n\tld\tr1, r1\n\tadd\tr1, r0, stack-[6]\n\tst.1\t0, r4\n\tadd\t1, r0, r1\n\tadd\tr1, r0, stack-[5]\n\tst.1\t32, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI0_21[0], r1, r1\n\tadd\t32784, r0, r2\n\tadd\tr4, r0, stack-[7]\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_2\n\tld\tr1, r1\n\tcontext.caller\tr2\n\tadd\tr2, r0, stack-[4]\n\tst.1\t0, r2\n\tst.1\t32, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI0_21[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tadd\tstack-[7], r0, r3\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_2\n\tld\tr1, r1\n\tsload\tr1, r2\n\tsub.s\t1, r0, r1\n\tsub!\tr2, r1, r1\n\tjump.ne\t@.BB0_107\n.BB0_108:\n\tadd\tr3, r0, r1\n\tadd\tstack-[8], r0, r2\n\tadd\tstack-[6], r0, r3\n\tnear_call\tr0, @fun_transfer, @DEFAULT_UNWIND\n\tld.1\t64, r1\n\tadd\tstack-[5], r0, r2\n\tst.1\tr1, r2\n\tadd\t@CPI0_0[0], r0, r2\n\tsub.s!\t@CPI0_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI0_20[0], r1, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_143:\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tsub.s\t4, r0, r1\n\tadd\tstack[@calldatasize], r1, r1\n\tadd\t@CPI0_2[0], r0, r2\n\tsub.s!\t64, r1, r3\n\tadd\t0, r0, r3\n\tadd.lt\tr2, r0, r3\n\tand\t@CPI0_2[0], r1, r1\n\tsub.s!\t0, r1, r4\n\tadd.le\t0, r0, r2\n\tsub.s!\t@CPI0_2[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tptr.add\tstack[@ptr_calldata], r0, r1\n\tptr.add.s\t4, r1, r2\n\tld\tr2, r2\n\tadd\tr2, r0, stack-[8]\n\tsub.s!\t@CPI0_19[0], r2, r2\n\tjump.gt\t@.BB0_2\n\tptr.add.s\t36, r1, r1\n\tld\tr1, r1\n\tadd\tr1, r0, stack-[7]\n\tcontext.caller\tr1\n\tadd\tr1, r0, stack-[5]\n\tst.1\t0, r1\n\tadd\t1, r0, r1\n\tadd\tr1, r0, stack-[6]\n\tst.1\t32, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI0_21[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_2\n\tld\tr1, r1\n\tadd\tstack-[8], r0, r2\n\tst.1\t0, r2\n\tst.1\t32, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI0_21[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_2\n\tld\tr1, r1\n\tsload\tr1, r1\n\tadd\tstack-[7], r0, r3\n\tsub!\tr1, r3, r2\n\tjump.ge\t@.BB0_150\n\tld.1\t64, r1\n\tadd\t100, r1, r2\n\tadd\t@CPI0_22[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t68, r1, r2\n\tadd\t@CPI0_23[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t37, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI0_24[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI0_0[0], r0, r2\n\tsub.s!\t@CPI0_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI0_25[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB0_151:\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tsub.s\t4, r0, r1\n\tadd\tstack[@calldatasize], r1, r1\n\tadd\t@CPI0_2[0], r0, r2\n\tsub.s!\t64, r1, r3\n\tadd\t0, r0, r3\n\tadd.lt\tr2, r0, r3\n\tand\t@CPI0_2[0], r1, r1\n\tsub.s!\t0, r1, r4\n\tadd.le\t0, r0, r2\n\tsub.s!\t@CPI0_2[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tptr.add\tstack[@ptr_calldata], r0, r1\n\tptr.add.s\t4, r1, r2\n\tld\tr2, r2\n\tsub.s!\t@CPI0_19[0], r2, r3\n\tjump.gt\t@.BB0_2\n\tptr.add.s\t36, r1, r1\n\tld\tr1, r3\n\tcontext.caller\tr1\n\tnear_call\tr0, @fun_transfer, @DEFAULT_UNWIND\n\tadd\t1, r0, r1\n\tld.1\t64, r2\n\tst.1\tr2, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI0_20[0], r1, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_82:\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tsub.s\t4, r0, r1\n\tadd\tstack[@calldatasize], r1, r1\n\tadd\t@CPI0_2[0], r0, r2\n\tsub.s!\t0, r1, r3\n\tadd\t0, r0, r3\n\tadd.lt\tr2, r0, r3\n\tand\t@CPI0_2[0], r1, r1\n\tsub.s!\t0, r1, r4\n\tadd.le\t0, r0, r2\n\tsub.s!\t@CPI0_2[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.eq\t@.BB0_84\n.BB0_2:\n\tadd\tr0, r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB0_84:\n\tadd\t3, r0, r3\n\tsload\tr3, r2\n\tand!\t1, r2, r4\n\tshr.s\t1, r2, r1\n\tand\t127, r1, r5\n\tadd\tr1, r0, r6\n\tadd.eq\tr5, r0, r6\n\tsub.s!\t31, r6, r5\n\tadd\t0, r0, r5\n\tadd.gt\t1, r0, r5\n\txor\tr2, r5, r5\n\tand!\t1, r5, r5\n\tjump.eq\t@.BB0_85\n.BB0_31:\n\tadd\t@CPI0_27[0], r0, r1\n\tst.1\t0, r1\n\tadd\t34, r0, r1\n\tst.1\t4, r1\n\tadd\t@CPI0_28[0], r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB0_85:\n\tst.1\t128, r6\n\tsub.s!\t0, r4, r4\n\tjump.ne\t@.BB0_88\n\tsub.s\t256, r0, r3\n\tand\tr2, r3, r2\n\tst.1\t160, r2\n\tsub.s!\t0, r6, r1\n\tadd\t192, r0, r1\n\tadd.eq\t160, r0, r1\n\tjump\t@.BB0_86\n.BB0_139:\n\tst.1\t0, r5\n\tsub.s!\t0, r1, r4\n\tadd\tr0, r0, r4\n\tjump.eq\t@.BB0_136\n\tadd\t@CPI0_26[0], r0, r5\n\tadd\tr0, r0, r4\n.BB0_141:\n\tadd\tr3, r4, r6\n\tsload\tr5, r7\n\tst.1\tr6, r7\n\tadd\t1, r5, r5\n\tadd\t32, r4, r4\n\tsub!\tr4, r1, r6\n\tjump.lt\t@.BB0_141\n.BB0_136:\n\tadd\t63, r4, r1\n\tsub.s\t32, r0, r3\n\tand\tr1, r3, r3\n\tadd\tr3, r2, r1\n\tsub!\tr1, r3, r3\n\tadd\t0, r0, r4\n\tadd.lt\t1, r0, r4\n\tsub.s!\t@CPI0_1[0], r1, r3\n\tjump.gt\t@.BB0_5\n\tand!\t1, r4, r3\n\tjump.ne\t@.BB0_5\n\tst.1\t64, r1\n\tadd\tr1, r0, stack-[8]\n\tnear_call\tr0, @abi_encode_string, @DEFAULT_UNWIND\n\tadd\tstack-[8], r0, r4\n\tsub\tr1, r4, r1\n\tadd\t@CPI0_0[0], r0, r2\n\tsub.s!\t@CPI0_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tsub.s!\t@CPI0_0[0], r4, r3\n\tadd.lt\tr4, r0, r2\n\tshl.s\t64, r2, r2\n\tshl.s\t96, r1, r1\n\tor\tr1, r2, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_88:\n\tst.1\t0, r3\n\tadd\t160, r0, r1\n\tsub.s!\t0, r6, r2\n\tjump.eq\t@.BB0_92\n\tadd\t@CPI0_36[0], r0, r2\n\tadd\tr0, r0, r4\n.BB0_90:\n\tadd\tr4, r0, r3\n\tsload\tr2, r4\n\tadd\t160, r3, r5\n\tst.1\tr5, r4\n\tadd\t1, r2, r2\n\tadd\t32, r3, r4\n\tsub!\tr4, r6, r5\n\tjump.lt\t@.BB0_90\n\tadd\t192, r3, r1\n.BB0_86:\n\tadd\t31, r1, r1\n\tsub.s\t32, r0, r2\n\tand\tr1, r2, r1\n\tadd\t@CPI0_37[0], r1, r2\n\tsub.s!\t@CPI0_38[0], r2, r2\n\tjump.ge\t@.BB0_92\n.BB0_5:\n\tadd\t@CPI0_27[0], r0, r1\n\tst.1\t0, r1\n\tadd\t65, r0, r1\n\tst.1\t4, r1\n\tadd\t@CPI0_28[0], r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB0_92:\n\tadd\tr1, r0, stack-[8]\n\tst.1\t64, r1\n\tadd\t128, r0, r2\n\tnear_call\tr0, @abi_encode_string, @DEFAULT_UNWIND\n\tadd\tstack-[8], r0, r4\n\tsub\tr1, r4, r1\n\tadd\t@CPI0_0[0], r0, r2\n\tsub.s!\t@CPI0_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tsub.s!\t@CPI0_0[0], r4, r3\n\tadd.lt\tr4, r0, r2\n\tshl.s\t64, r2, r2\n\tshl.s\t96, r1, r1\n\tor\tr1, r2, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_127:\n\tadd\tstack-[6], r0, r1\n\tadd\tstack-[8], r0, r2\n\tnear_call\tr0, @fun_approve, @DEFAULT_UNWIND\n\tld.1\t64, r1\n\tadd\tstack-[7], r0, r2\n\tst.1\tr1, r2\n\tadd\t@CPI0_0[0], r0, r2\n\tsub.s!\t@CPI0_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI0_20[0], r1, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_150:\n\tsub\tr1, r3, r3\n\tadd\tstack-[5], r0, r1\n\tadd\tstack-[8], r0, r2\n\tnear_call\tr0, @fun_approve, @DEFAULT_UNWIND\n\tld.1\t64, r1\n\tadd\tstack-[6], r0, r2\n\tst.1\tr1, r2\n\tadd\t@CPI0_0[0], r0, r2\n\tsub.s!\t@CPI0_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI0_20[0], r1, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_107:\n\tadd\tstack-[6], r0, r1\n\tsub!\tr2, r1, r1\n\tjump.ge\t@.BB0_110\n\tld.1\t64, r1\n\tadd\t68, r1, r2\n\tadd\t@CPI0_34[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t29, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI0_24[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI0_0[0], r0, r2\n\tsub.s!\t@CPI0_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI0_35[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB0_110:\n\tadd\tr2, r0, stack-[3]\n\tsub.s!\t0, r3, r1\n\tjump.ne\t@.BB0_112\n\tld.1\t64, r1\n\tadd\t100, r1, r2\n\tadd\t@CPI0_32[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t68, r1, r2\n\tadd\t@CPI0_33[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t36, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI0_24[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI0_0[0], r0, r2\n\tsub.s!\t@CPI0_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI0_25[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB0_112:\n\tadd\tstack-[4], r0, r1\n\tand!\t@CPI0_19[0], r1, r1\n\tadd\tr1, r0, stack-[4]\n\tjump.ne\t@.BB0_114\n\tld.1\t64, r1\n\tadd\t100, r1, r2\n\tadd\t@CPI0_30[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t68, r1, r2\n\tadd\t@CPI0_31[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t34, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI0_24[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI0_0[0], r0, r2\n\tsub.s!\t@CPI0_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI0_25[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB0_114:\n\tadd\tstack-[7], r0, r1\n\tst.1\t0, r1\n\tadd\tstack-[5], r0, r1\n\tst.1\t32, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI0_21[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_2\n\tld\tr1, r1\n\tadd\tstack-[4], r0, r2\n\tst.1\t0, r2\n\tst.1\t32, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI0_21[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tadd\tstack-[3], r0, r3\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_2\n\tadd\tstack-[6], r0, r2\n\tsub\tr3, r2, r2\n\tld\tr1, r1\n\tsstore\tr1, r2\n\tld.1\t64, r1\n\tst.1\tr1, r2\n\tadd\t@CPI0_0[0], r0, r2\n\tcontext.gas_left\tr3\n\tsub.s!\t@CPI0_0[0], r3, r4\n\tadd.ge\tr2, r0, r3\n\tsub.s!\t@CPI0_0[0], r1, r4\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tshl.s\t192, r3, r2\n\tor\tr2, r1, r1\n\tor\t@CPI0_3[0], r1, r1\n\tadd\t32781, r0, r2\n\tadd\t3, r0, r3\n\tadd\t@CPI0_29[0], r0, r4\n\tadd\tstack-[7], r0, r5\n\tadd\tstack-[4], r0, r6\n\tnear_call\tr0, @__farcall, @DEFAULT_UNWIND\n\tadd\tstack-[7], r0, r3\n\tand!\t1, r2, r1\n\tjump.ne\t@.BB0_108\n\tjump\t@.BB0_2\n.BB0_46:\n\tadd\tstack-[6], r0, r1\n\tsub.s!\t0, r1, r1\n\tadd\tr0, r0, r1\n\tjump.eq\t@.BB0_48\n\tadd\tstack-[4], r0, r1\n\tld.1\tr1, r1\n.BB0_48:\n\tadd\tstack-[6], r0, r4\n\tshl.s\t3, r4, r2\n\tsub.s\t1, r0, r3\n\tshr\tr3, r2, r2\n\txor\tr2, r3, r2\n\tand\tr1, r2, r2\n\tshl.s\t1, r4, r1\n.BB0_38:\n\tor\tr2, r1, r1\n\tadd\tstack-[3], r0, r2\n\tsstore\tr2, r1\n\tadd\tstack-[1], r0, r1\n\tld.1\tr1, r1\n\tadd\tr1, r0, stack-[8]\n\tsub.s!\t@CPI0_1[0], r1, r1\n\tjump.gt\t@.BB0_5\n\tadd\t4, r0, r1\n\tadd\tr1, r0, stack-[6]\n\tsload\tr1, r1\n\tand!\t1, r1, r2\n\tshr.s\t1, r1, r2\n\tand\t127, r2, r3\n\tadd.eq\tr3, r0, r2\n\tadd\tr2, r0, stack-[4]\n\tsub.s!\t31, r2, r2\n\tadd\t0, r0, r2\n\tadd.gt\t1, r0, r2\n\txor\tr1, r2, r1\n\tand!\t1, r1, r1\n\tjump.ne\t@.BB0_31\n\tadd\tstack-[4], r0, r1\n\tsub.s!\t32, r1, r1\n\tjump.lt\t@.BB0_54\n\tadd\tstack-[6], r0, r1\n\tst.1\t0, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI0_3[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_2\n\tadd\tstack-[8], r0, r3\n\tadd\t31, r3, r2\n\tshr.s\t5, r2, r2\n\tsub.s!\t32, r3, r3\n\tadd.lt\t0, r0, r2\n\tld\tr1, r3\n\tadd\tstack-[4], r0, r1\n\tadd\t31, r1, r1\n\tshr.s\t5, r1, r1\n\tadd\tr3, r1, r1\n\tadd\tr3, r2, r2\n\tsub!\tr2, r1, r3\n\tjump.ge\t@.BB0_54\n.BB0_55:\n\tsstore\tr2, r0\n\tadd\t1, r2, r2\n\tsub!\tr2, r1, r3\n\tjump.lt\t@.BB0_55\n.BB0_54:\n\tadd\tstack-[8], r0, r1\n\tsub.s!\t31, r1, r1\n\tjump.le\t@.BB0_64\n\tadd\tstack-[6], r0, r1\n\tst.1\t0, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI0_3[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tadd\tstack-[5], r0, r2\n\tadd\tstack-[1], r0, r6\n\tjump.eq\t@.BB0_2\n\tadd\tstack-[8], r0, r3\n\tand!\tr3, r2, r3\n\tadd\t32, r0, r2\n\tld\tr1, r1\n\tjump.eq\t@.BB0_61\n\tadd\t32, r0, r2\n\tadd\tr0, r0, r4\n.BB0_60:\n\tadd\tr2, r6, r5\n\tld.1\tr5, r5\n\tsstore\tr1, r5\n\tadd\t32, r2, r2\n\tadd\t1, r1, r1\n\tadd\t32, r4, r4\n\tsub!\tr4, r3, r5\n\tjump.lt\t@.BB0_60\n.BB0_61:\n\tadd\tstack-[8], r0, r4\n\tsub!\tr3, r4, r3\n\tjump.ge\t@.BB0_63\n\tadd\tstack-[8], r0, r3\n\tshl.s\t3, r3, r3\n\tand\t248, r3, r3\n\tsub.s\t1, r0, r4\n\tshr\tr4, r3, r3\n\txor\tr3, r4, r3\n\tadd\tstack-[1], r0, r4\n\tadd\tr2, r4, r2\n\tld.1\tr2, r2\n\tand\tr2, r3, r2\n\tsstore\tr1, r2\n.BB0_63:\n\tadd\t1, r0, r1\n\tadd\tstack-[8], r0, r2\n\tshl.s\t1, r2, r2\n\tjump\t@.BB0_56\n.BB0_64:\n\tadd\tstack-[8], r0, r1\n\tsub.s!\t0, r1, r1\n\tadd\tr0, r0, r1\n\tjump.eq\t@.BB0_66\n\tadd\tstack-[7], r0, r1\n\tld.1\tr1, r1\n.BB0_66:\n\tadd\tstack-[8], r0, r4\n\tshl.s\t3, r4, r2\n\tsub.s\t1, r0, r3\n\tshr\tr3, r2, r2\n\txor\tr2, r3, r2\n\tand\tr1, r2, r2\n\tshl.s\t1, r4, r1\n.BB0_56:\n\tor\tr2, r1, r1\n\tadd\tstack-[6], r0, r2\n\tsstore\tr2, r1\n\tadd\t32, r0, r1\n\tst.2\t256, r1\n\tst.2\t288, r0\n\tadd\t@CPI0_4[0], r0, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.func_end0:\n\n__keccak256:\n.func_begin1:\n\tadd\t@CPI1_0[0], r0, r3\n\tsub.s!\t@CPI1_0[0], r1, r4\n\tadd.ge\tr3, r0, r1\n\tshl.s\t64, r1, r1\n\tsub.s!\t@CPI1_0[0], r2, r4\n\tadd.ge\tr3, r0, r2\n\tshl.s\t96, r2, r2\n\tor\tr2, r1, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI1_0[0], r2, r4\n\tadd.ge\tr3, r0, r2\n\tshl.s\t192, r2, r2\n\tor\tr2, r1, r1\n\tor\t@CPI1_1[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB1_2\n\tld\tr1, r1\n\tret\n.BB1_2:\n\tadd\tr0, r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.func_end1:\n\nabi_encode_string:\n.func_begin2:\n\tadd\t32, r0, r3\n\tst.1.inc\tr1, r3, r4\n\tld.1\tr2, r3\n\tst.1\tr4, r3\n\tadd\t64, r1, r1\n\tsub.s!\t0, r3, r4\n\tjump.eq\t@.BB2_3\n\tadd\tr0, r0, r4\n.BB2_2:\n\tadd\tr1, r4, r5\n\tadd\t32, r4, r4\n\tadd\tr4, r2, r6\n\tld.1\tr6, r6\n\tst.1\tr5, r6\n\tsub!\tr4, r3, r5\n\tjump.lt\t@.BB2_2\n.BB2_3:\n\tadd\tr1, r3, r2\n\tst.1\tr2, r0\n\tadd\t31, r3, r2\n\tsub.s\t32, r0, r3\n\tand\tr2, r3, r2\n\tadd\tr1, r2, r1\n\tret\n.func_end2:\n\nfun_transfer:\n.func_begin3:\n\tnop\tstack+=[4]\n\tand!\t@CPI3_0[0], r1, r1\n\tjump.eq\t@.BB3_1\n\tadd\tr3, r0, stack-[4]\n\tand!\t@CPI3_0[0], r2, r2\n\tadd\tr2, r0, stack-[2]\n\tjump.eq\t@.BB3_3\n\tadd\tr1, r0, stack-[3]\n\tst.1\t0, r1\n\tst.1\t32, r0\n\tadd\t@CPI3_1[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI3_1[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI3_2[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB3_5\n\tld\tr1, r1\n\tsload\tr1, r2\n\tadd\tstack-[4], r0, r1\n\tadd\tr2, r0, stack-[1]\n\tsub!\tr2, r1, r1\n\tjump.lt\t@.BB3_7\n\tadd\tstack-[3], r0, r1\n\tst.1\t0, r1\n\tst.1\t32, r0\n\tadd\t@CPI3_1[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI3_1[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI3_2[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB3_5\n\tadd\tstack-[4], r0, r2\n\tadd\tstack-[1], r0, r3\n\tsub\tr3, r2, r2\n\tld\tr1, r1\n\tsstore\tr1, r2\n\tadd\tstack-[2], r0, r1\n\tst.1\t0, r1\n\tadd\t@CPI3_1[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI3_1[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI3_2[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB3_5\n\tld\tr1, r1\n\tsload\tr1, r3\n\tadd\tstack-[4], r0, r4\n\tadd\tr3, r4, r2\n\tsub!\tr2, r3, r3\n\tadd\t0, r0, r3\n\tadd.lt\t1, r0, r3\n\tand!\t1, r3, r3\n\tjump.ne\t@.BB3_11\n\tsstore\tr1, r2\n\tld.1\t64, r1\n\tst.1\tr1, r4\n\tadd\t@CPI3_1[0], r0, r2\n\tcontext.gas_left\tr3\n\tsub.s!\t@CPI3_1[0], r3, r4\n\tadd.ge\tr2, r0, r3\n\tsub.s!\t@CPI3_1[0], r1, r4\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tshl.s\t192, r3, r2\n\tor\tr2, r1, r1\n\tor\t@CPI3_3[0], r1, r1\n\tadd\t32781, r0, r2\n\tadd\t3, r0, r3\n\tadd\t@CPI3_4[0], r0, r4\n\tadd\tstack-[3], r0, r5\n\tadd\tstack-[2], r0, r6\n\tnear_call\tr0, @__farcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r1\n\tjump.eq\t@.BB3_5\n\tret\n.BB3_5:\n\tadd\tr0, r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB3_1:\n\tld.1\t64, r1\n\tadd\t100, r1, r2\n\tadd\t@CPI3_13[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t68, r1, r2\n\tadd\t@CPI3_14[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t37, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI3_9[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI3_1[0], r0, r2\n\tsub.s!\t@CPI3_1[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI3_10[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB3_3:\n\tld.1\t64, r1\n\tadd\t100, r1, r2\n\tadd\t@CPI3_11[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t68, r1, r2\n\tadd\t@CPI3_12[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t35, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI3_9[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI3_1[0], r0, r2\n\tsub.s!\t@CPI3_1[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI3_10[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB3_7:\n\tld.1\t64, r1\n\tadd\t100, r1, r2\n\tadd\t@CPI3_7[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t68, r1, r2\n\tadd\t@CPI3_8[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t38, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI3_9[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI3_1[0], r0, r2\n\tsub.s!\t@CPI3_1[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI3_10[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB3_11:\n\tadd\t@CPI3_5[0], r0, r1\n\tst.1\t0, r1\n\tadd\t17, r0, r1\n\tst.1\t4, r1\n\tadd\t@CPI3_6[0], r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.func_end3:\n\nfun_approve:\n.func_begin4:\n\tnop\tstack+=[3]\n\tand!\t@CPI4_0[0], r1, r1\n\tjump.eq\t@.BB4_1\n\tadd\tr3, r0, stack-[2]\n\tand!\t@CPI4_0[0], r2, r2\n\tadd\tr2, r0, stack-[3]\n\tjump.eq\t@.BB4_3\n\tadd\tr1, r0, stack-[1]\n\tst.1\t0, r1\n\tadd\t1, r0, r1\n\tst.1\t32, r1\n\tadd\t@CPI4_1[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI4_1[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI4_2[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tadd\tstack-[3], r0, r4\n\tjump.eq\t@.BB4_5\n\tld\tr1, r1\n\tst.1\t0, r4\n\tst.1\t32, r1\n\tadd\t@CPI4_1[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI4_1[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI4_2[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tadd\tstack-[3], r0, r6\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB4_5\n\tld\tr1, r1\n\tadd\tstack-[2], r0, r2\n\tsstore\tr1, r2\n\tld.1\t64, r1\n\tst.1\tr1, r2\n\tadd\t@CPI4_1[0], r0, r2\n\tcontext.gas_left\tr3\n\tsub.s!\t@CPI4_1[0], r3, r4\n\tadd.ge\tr2, r0, r3\n\tsub.s!\t@CPI4_1[0], r1, r4\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tshl.s\t192, r3, r2\n\tor\tr2, r1, r1\n\tor\t@CPI4_3[0], r1, r1\n\tadd\t32781, r0, r2\n\tadd\t3, r0, r3\n\tadd\t@CPI4_4[0], r0, r4\n\tadd\tstack-[1], r0, r5\n\tnear_call\tr0, @__farcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r1\n\tjump.eq\t@.BB4_5\n\tret\n.BB4_5:\n\tadd\tr0, r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB4_1:\n\tld.1\t64, r1\n\tadd\t100, r1, r2\n\tadd\t@CPI4_9[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t68, r1, r2\n\tadd\t@CPI4_10[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t36, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI4_7[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI4_1[0], r0, r2\n\tsub.s!\t@CPI4_1[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI4_8[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB4_3:\n\tld.1\t64, r1\n\tadd\t100, r1, r2\n\tadd\t@CPI4_5[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t68, r1, r2\n\tadd\t@CPI4_6[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t34, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI4_7[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI4_1[0], r0, r2\n\tsub.s!\t@CPI4_1[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI4_8[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.func_end4:\n\n__farcall:\n.func_begin5:\n.tmp0:\n\tfar_call\tr1, r2, @.BB5_2\n.tmp1:\n\tadd\t1, r0, r2\n\tret\n.BB5_2:\n.tmp2:\n\tadd\tr0, r0, r2\n\tret\n.func_end5:\n\n__staticcall:\n.func_begin6:\n.tmp3:\n\tfar_call.static\tr1, r2, @.BB6_2\n.tmp4:\n\tadd\t1, r0, r2\n\tret\n.BB6_2:\n.tmp5:\n\tadd\tr0, r0, r2\n\tret\n.func_end6:\n\n\t.data\n\t.p2align\t5\ncalldatasize:\n\t.cell 0\n\n\t.p2align\t5\nptr_calldata:\n.cell\t0\n\n\t.note.GNU-stack\n\t.rodata\nCPI0_0:\nCPI1_0:\nCPI3_1:\nCPI4_1:\n\t.cell 4294967295\nCPI0_1:\n\t.cell 18446744073709551615\nCPI0_2:\n\t.cell -57896044618658097711785492504343953926634992332820282019728792003956564819968\nCPI0_3:\nCPI3_3:\nCPI4_3:\n\t.cell 904625697166532776746648320380374280103671757735618107014721178055227736064\nCPI0_4:\n\t.cell 53919893334301279589334030174039261352344891250716429051063678533632\nCPI0_5:\n\t.cell 961581904\nCPI0_6:\n\t.cell 2757214934\nCPI0_7:\n\t.cell 2757214935\nCPI0_8:\n\t.cell 2835717307\nCPI0_9:\n\t.cell 3714247998\nCPI0_10:\n\t.cell 961581905\nCPI0_11:\n\t.cell 1889567281\nCPI0_12:\n\t.cell 2514000705\nCPI0_13:\n\t.cell 404098524\nCPI0_14:\n\t.cell 404098525\nCPI0_15:\n\t.cell 599290589\nCPI0_16:\n\t.cell 826074471\nCPI0_17:\n\t.cell 117300739\nCPI0_18:\n\t.cell 157198259\nCPI0_19:\nCPI3_0:\nCPI4_0:\n\t.cell 1461501637330902918203684832716283019655932542975\nCPI0_20:\n\t.cell 2535301200456458802993406410752\nCPI0_21:\nCPI3_2:\nCPI4_2:\n\t.cell 904625697166532776746648320380374280103671760270919307471179981048634146816\nCPI0_22:\n\t.cell 14690266658072097593480850647027335513285713462661904985951319567533531463680\nCPI0_23:\n\t.cell 31354931781638678506476475496475743842680577777870365728514456330491174612855\nCPI0_24:\nCPI3_9:\nCPI4_7:\n\t.cell 3963877391197344453575983046348115674221700746820753546331534351508065746944\nCPI0_25:\nCPI3_10:\nCPI4_8:\n\t.cell 10458117451882892562347801444352\nCPI0_26:\n\t.cell -53278079350709166316280423202849322519190186591071851114874353210178472783461\nCPI0_27:\nCPI3_5:\n\t.cell 35408467139433450592217433187231851964531694900788300625387963629091585785856\nCPI0_28:\nCPI3_6:\n\t.cell 2852213850513516153367582212096\nCPI0_29:\nCPI4_4:\n\t.cell -52305948261162578668367882225327028569797882979485679342215860919519743330011\nCPI0_30:\nCPI4_5:\n\t.cell 52219164999525148860834357634456956735281286572158918307284071279203377479680\nCPI0_31:\nCPI4_6:\n\t.cell 31354931781638678487916134672869638488806705378895508030211234510262059168357\nCPI0_32:\nCPI4_9:\n\t.cell 51742913093258732729005998692887265601192425265805909375210916622055285719040\nCPI0_33:\nCPI4_10:\n\t.cell 31354931781638678487916134672869638484047149969764982831501014746446650500196\nCPI0_34:\n\t.cell 31354931781638678538084197150757782427756587561754988975511141185730285404160\nCPI0_35:\n\t.cell 7922816251426433759354395033600\nCPI0_36:\n\t.cell -27889059366240281169193357100633332908378892778709981755071813198463099602853\nCPI0_37:\n\t.cell -18446744073709551616\nCPI0_38:\n\t.cell -18446744073709551488\nCPI1_1:\n\t.cell 904625697166532776746648320380374280103671755200316906558262375061821325312\nCPI3_4:\n\t.cell -15402802100530019096323380498944738953123845089667699673314898783681816316945\nCPI3_7:\n\t.cell 44065838241030143116324720188876985940908656145555552347773292252211112312832\nCPI3_8:\n\t.cell 31354931781638678607228669297131712859100820671745083778533502622993977909346\nCPI3_11:\n\t.cell 45887578820189300338443374388718498632482616163288499555830078344056365121536\nCPI3_12:\n\t.cell 31354931781638678607228669297131712859126084785867252355217498662940140921970\nCPI3_13:\n\t.cell 45433405612597180762055095701412804886438245671210399661410036396145969725440\nCPI3_14:\n\t.cell 31354931781638678607228669297131712859107492772550336241160036866987736981860\n","bytecode":{"object":"00020000000000020008000000000002000100000001035500000060011002700000017d0010019d0000008001000039000000400010043f0000000101200190000000410000c13d0000000001000031000000040110008c000003240000413d0000000101000367000000000101043b000000e001100270000001820210009c0000014a0000a13d000001830210009c0000016c0000213d000001870210009c000001ca0000613d000001880210009c000002100000613d000001890110009c000003240000c13d0000000001000416000000000110004c000003240000c13d000000040100008a00000000011000310000017f02000041000000000310004c000000000300001900000000030240190000017f01100197000000000410004c000000000200a0190000017f0110009c00000000010300190000000001026019000000000110004c000003240000c13d0000000405000039000000000405041a000000010640019000000001014002700000007f0210018f00000000010260190000001f0210008c00000000020000190000000102002039000000000224013f0000000102200190000003330000c13d000000400200043d0000000003120436000000000660004c000003430000c13d000001000500008a000000000454016f0000000000430435000000000110004c00000020040000390000000004006019000003500000013d0000000001000416000000000110004c000003240000c13d00000000020000310000001f01200039000000200a00008a0000000004a1016f000000400100043d0000000003140019000000000443004b000000000400001900000001040040390000017e0530009c0000037e0000213d00000001044001900000037e0000c13d000000400030043f0000001f0320018f000000010400036700000005052002720000005f0000613d000000000600001900000005076002100000000008710019000000000774034f000000000707043b00000000007804350000000106600039000000000756004b000000570000413d000000000630004c0000006e0000613d0000000505500210000000000454034f00000000055100190000000303300210000000000605043300000000063601cf000000000636022f000000000404043b0000010003300089000000000434022f00000000033401cf000000000363019f00000000003504350000017f03000041000000400420008c000000000400001900000000040340190000017f05200197000000000650004c000000000300a0190000017f0550009c000000000304c019000000000330004c000003240000c13d00000000340104340000017e0540009c000003240000213d000000000221001900000000041400190000001f054000390000017f06000041000000000725004b000000000700001900000000070680190000017f055001970000017f08200197000000000985004b0000000006008019000000000585013f0000017f0550009c00000000050700190000000005066019000000000550004c000003240000c13d00000000050404330000017e0650009c0000037e0000213d0000003f065000390000000006a6016f000000400b00043d00000000066b00190000000007b6004b000000000700001900000001070040390000017e0860009c0000037e0000213d00000001077001900000037e0000c13d000000400060043f000000000c5b043600000020065000390000000007460019000000000727004b000003240000213d000000000750004c000000ab0000613d000000000700001900000020077000390000000008b70019000000000947001900000000090904330000000000980435000000000857004b000000a40000413d00000000046b0019000000000004043500000000030304330000017e0430009c000003240000213d00000000011300190000001f031000390000017f04000041000000000523004b000000000500001900000000050480190000017f033001970000017f06200197000000000763004b0000000004008019000000000363013f0000017f0330009c00000000030500190000000003046019000000000330004c000003240000c13d00000000030104330000017e0430009c0000037e0000213d0000003f043000390000000004a4016f000000400700043d0000000004470019000000000574004b000000000500001900000001050040390000017e0640009c0000037e0000213d00000001055001900000037e0000c13d000000400040043f0000000004370436000700000004001d00000020043000390000000005140019000000000225004b000003240000213d00040000000c001d00080000000b001d00050000000a001d000000000230004c000000e20000613d000000000200001900000020022000390000000005720019000000000612001900000000060604330000000000650435000000000532004b000000db0000413d0000000001470019000000000001043500000008010000290000000001010433000600000001001d0000017e0110009c0000037e0000213d000100000007001d0000000301000039000300000001001d000000000101041a000000010210019000000001011002700000007f0310018f0000000001036019000200000001001d0000001f0110008c00000000010000190000000101002039000000010110018f000000000112004b000003330000c13d0000000201000029000000200110008c000001180000413d000000030100002900000000001004350000017d0100004100000000020004140000017d0320009c0000000001024019000000c00110021000000180011001c7000080100200003905ee05e90000040f0000000102200190000003240000613d00000006030000290000001f023000390000000502200270000000200330008c0000000002004019000000000301043b00000002010000290000001f01100039000000050110027000000000011300190000000002230019000000000312004b000001180000813d000000000002041b0000000102200039000000000312004b000001140000413d00000006010000290000001f0110008c000004290000a13d000000030100002900000000001004350000017d0100004100000000020004140000017d0320009c0000000001024019000000c00110021000000180011001c7000080100200003905ee05e90000040f000000010220019000000005020000290000000806000029000003240000613d000000060300002900000000032301700000002002000039000000000101043b000001380000613d0000002002000039000000000400001900000000056200190000000005050433000000000051041b000000200220003900000001011000390000002004400039000000000534004b000001300000413d0000000604000029000000000343004b000001460000813d00000006030000290000000303300210000000f80330018f000000010400008a000000000334022f000000000343013f000000080400002900000000024200190000000002020433000000000232016f000000000021041b000000010100003900000006020000290000000102200210000004360000013d0000018a0210009c000001a30000a13d0000018b0210009c000002340000613d0000018c0210009c0000024f0000613d0000018d0110009c000003240000c13d0000000001000416000000000110004c000003240000c13d000000040100008a00000000011000310000017f02000041000000000310004c000000000300001900000000030240190000017f01100197000000000410004c000000000200a0190000017f0110009c00000000010300190000000001026019000000000110004c000003240000c13d000000400100043d000000120200003900000000002104350000017d020000410000017d0310009c0000000001028019000000400110021000000191011001c7000005ef0001042e000001840210009c0000029e0000613d000001850210009c000002f00000613d000001860110009c000003240000c13d0000000001000416000000000110004c000003240000c13d000000040100008a00000000011000310000017f02000041000000400310008c000000000300001900000000030240190000017f01100197000000000410004c000000000200a0190000017f0110009c00000000010300190000000001026019000000000110004c000003240000c13d00000001020003670000000401200370000000000101043b000001900310009c000003240000213d0000002402200370000000000302043b000001900230009c000003240000213d00000000001004350000000101000039000000200010043f0000004002000039000800000002001d0000000001000019000700000003001d05ee04b30000040f00000007020000290000000000200435000000200010043f0000000001000019000000080200002905ee04b30000040f000000000101041a000000400200043d00000000001204350000017d010000410000017d0320009c0000000001024019000000400110021000000191011001c7000005ef0001042e0000018e0210009c000003130000613d0000018f0110009c000003240000c13d0000000001000416000000000110004c000003240000c13d000000040100008a00000000011000310000017f02000041000000400310008c000000000300001900000000030240190000017f01100197000000000410004c000000000200a0190000017f0110009c00000000010300190000000001026019000000000110004c000003240000c13d00000001010003670000000402100370000000000202043b000001900320009c000003240000213d0000002401100370000000000301043b000000000100041105ee057d0000040f0000000101000039000000400200043d00000000001204350000017d010000410000017d0320009c0000000001024019000000400110021000000191011001c7000005ef0001042e0000000001000416000000000110004c000003240000c13d000000040100008a00000000011000310000017f02000041000000400310008c000000000300001900000000030240190000017f01100197000000000410004c000000000200a0190000017f0110009c00000000010300190000000001026019000000000110004c000003240000c13d00000004010000390000000101100367000000000101043b000800000001001d000001900110009c000003240000213d0000000001000411000600000001001d00000000001004350000000101000039000700000001001d000000200010043f0000017d0100004100000000020004140000017d0320009c0000000001024019000000c00110021000000192011001c7000080100200003905ee05e90000040f0000000102200190000003240000613d000000000101043b00000008020000290000000000200435000000200010043f0000017d0100004100000000020004140000017d0320009c0000000001024019000000c00110021000000192011001c7000080100200003905ee05e90000040f0000000102200190000003240000613d000000000101043b000000000101041a00000024020000390000000102200367000000000202043b0000000003120019000000000123004b000000000100001900000001010040390000000101100190000003930000613d000001980100004100000000001004350000001101000039000000040010043f0000019901000041000005f0000104300000000001000416000000000110004c000003240000c13d000000040100008a00000000011000310000017f02000041000000200310008c000000000300001900000000030240190000017f01100197000000000410004c000000000200a0190000017f0110009c00000000010300190000000001026019000000000110004c000003240000c13d00000004010000390000000101100367000000000101043b000001900210009c000003240000213d0000000000100435000000200000043f0000004002000039000000000100001905ee04b30000040f000000000101041a000000400200043d00000000001204350000017d010000410000017d0320009c0000000001024019000000400110021000000191011001c7000005ef0001042e0000000001000416000000000110004c000003240000c13d000000040100008a00000000011000310000017f02000041000000000310004c000000000300001900000000030240190000017f01100197000000000410004c000000000200a0190000017f0110009c00000000010300190000000001026019000000000110004c000003240000c13d0000000201000039000000000101041a000000400200043d00000000001204350000017d010000410000017d0320009c0000000001024019000000400110021000000191011001c7000005ef0001042e0000000001000416000000000110004c000003240000c13d000000040100008a00000000011000310000017f02000041000000600310008c000000000300001900000000030240190000017f01100197000000000410004c000000000200a0190000017f0110009c00000000010300190000000001026019000000000110004c000003240000c13d00000001010003670000000402100370000000000402043b000001900240009c000003240000213d0000002402100370000000000202043b000800000002001d000001900220009c000003240000213d0000004401100370000000000101043b000600000001001d00000000004004350000000101000039000500000001001d000000200010043f0000017d0100004100000000020004140000017d0320009c0000000001024019000000c00110021000000192011001c70000801002000039000700000004001d05ee05e90000040f0000000102200190000003240000613d000000000101043b0000000002000411000400000002001d0000000000200435000000200010043f0000017d0100004100000000020004140000017d0320009c0000000001024019000000c00110021000000192011001c7000080100200003905ee05e90000040f00000007030000290000000102200190000003240000613d000000000101043b000000000201041a000000010100008a000000000112004b000003ac0000c13d00000000010300190000000802000029000000060300002905ee04df0000040f000000400100043d000000050200002900000000002104350000017d020000410000017d0310009c0000000001028019000000400110021000000191011001c7000005ef0001042e0000000001000416000000000110004c000003240000c13d000000040100008a00000000011000310000017f02000041000000400310008c000000000300001900000000030240190000017f01100197000000000410004c000000000200a0190000017f0110009c00000000010300190000000001026019000000000110004c000003240000c13d00000001010003670000000402100370000000000202043b000800000002001d000001900220009c000003240000213d0000002401100370000000000101043b000700000001001d0000000001000411000500000001001d00000000001004350000000101000039000600000001001d000000200010043f0000017d0100004100000000020004140000017d0320009c0000000001024019000000c00110021000000192011001c7000080100200003905ee05e90000040f0000000102200190000003240000613d000000000101043b00000008020000290000000000200435000000200010043f0000017d0100004100000000020004140000017d0320009c0000000001024019000000c00110021000000192011001c7000080100200003905ee05e90000040f0000000102200190000003240000613d000000000101043b000000000101041a0000000703000029000000000231004b0000039f0000813d000000400100043d000000640210003900000193030000410000000000320435000000440210003900000194030000410000000000320435000000240210003900000025030000390000000000320435000001950200004100000000002104350000000402100039000000200300003900000000003204350000017d020000410000017d0310009c0000000001028019000000400110021000000196011001c7000005f0000104300000000001000416000000000110004c000003240000c13d000000040100008a00000000011000310000017f02000041000000400310008c000000000300001900000000030240190000017f01100197000000000410004c000000000200a0190000017f0110009c00000000010300190000000001026019000000000110004c000003240000c13d00000001010003670000000402100370000000000202043b000001900320009c000003240000213d0000002401100370000000000301043b000000000100041105ee04df0000040f0000000101000039000000400200043d00000000001204350000017d010000410000017d0320009c0000000001024019000000400110021000000191011001c7000005ef0001042e0000000001000416000000000110004c000003240000c13d000000040100008a00000000011000310000017f02000041000000000310004c000000000300001900000000030240190000017f01100197000000000410004c000000000200a0190000017f0110009c00000000010300190000000001026019000000000110004c000003260000613d0000000001000019000005f0000104300000000303000039000000000203041a000000010420019000000001012002700000007f0510018f000000000601001900000000060560190000001f0560008c00000000050000190000000105002039000000000552013f0000000105500190000003390000613d000001980100004100000000001004350000002201000039000000040010043f0000019901000041000005f000010430000000800060043f000000000440004c000003690000c13d000001000300008a000000000232016f000000a00020043f000000000160004c000000c001000039000000a001006039000003780000013d0000000000500435000000000410004c0000000004000019000003500000613d000001970500004100000000040000190000000006430019000000000705041a000000000076043500000001055000390000002004400039000000000614004b000003490000413d0000003f01400039000000200300008a000000000331016f0000000001230019000000000331004b000000000400001900000001040040390000017e0310009c0000037e0000213d00000001034001900000037e0000c13d000000400010043f000800000001001d05ee04c90000040f000000080400002900000000014100490000017d020000410000017d0310009c00000000010280190000017d0340009c000000000204401900000040022002100000006001100210000000000121019f000005ef0001042e0000000000300435000000a001000039000000000260004c000003840000613d000001a10200004100000000040000190000000003040019000000000402041a000000a005300039000000000045043500000001022000390000002004300039000000000564004b0000036f0000413d000000c0013000390000001f01100039000000200200008a000000000121016f000001a202100041000001a30220009c000003840000813d000001980100004100000000001004350000004101000039000000040010043f0000019901000041000005f000010430000800000001001d000000400010043f000000800200003905ee04c90000040f000000080400002900000000014100490000017d020000410000017d0310009c00000000010280190000017d0340009c000000000204401900000040022002100000006001100210000000000121019f000005ef0001042e0000000601000029000000080200002905ee057d0000040f000000400100043d000000070200002900000000002104350000017d020000410000017d0310009c0000000001028019000000400110021000000191011001c7000005ef0001042e00000000033100490000000501000029000000080200002905ee057d0000040f000000400100043d000000060200002900000000002104350000017d020000410000017d0310009c0000000001028019000000400110021000000191011001c7000005ef0001042e0000000601000029000000000112004b000003c10000813d000000400100043d00000044021000390000019f03000041000000000032043500000024021000390000001d030000390000000000320435000001950200004100000000002104350000000402100039000000200300003900000000003204350000017d020000410000017d0310009c00000000010280190000004001100210000001a0011001c7000005f000010430000300000002001d000000000130004c000003d90000c13d000000400100043d00000064021000390000019d03000041000000000032043500000044021000390000019e030000410000000000320435000000240210003900000024030000390000000000320435000001950200004100000000002104350000000402100039000000200300003900000000003204350000017d020000410000017d0310009c0000000001028019000000400110021000000196011001c7000005f00001043000000004010000290000019001100198000400000001001d000003f20000c13d000000400100043d00000064021000390000019b03000041000000000032043500000044021000390000019c030000410000000000320435000000240210003900000022030000390000000000320435000001950200004100000000002104350000000402100039000000200300003900000000003204350000017d020000410000017d0310009c0000000001028019000000400110021000000196011001c7000005f000010430000000070100002900000000001004350000000501000029000000200010043f0000017d0100004100000000020004140000017d0320009c0000000001024019000000c00110021000000192011001c7000080100200003905ee05e90000040f0000000102200190000003240000613d000000000101043b00000004020000290000000000200435000000200010043f0000017d0100004100000000020004140000017d0320009c0000000001024019000000c00110021000000192011001c7000080100200003905ee05e90000040f00000003030000290000000102200190000003240000613d00000006020000290000000002230049000000000101043b000000000021041b000000400100043d00000000002104350000017d0200004100000000030004140000017d0430009c00000000030280190000017d0410009c00000000010280190000004001100210000000c002300210000000000112019f00000180011001c70000800d0200003900000003030000390000019a040000410000000705000029000000040600002905ee05e40000040f00000007030000290000000101200190000002910000c13d000003240000013d0000000601000029000000000110004c00000000010000190000042f0000613d0000000401000029000000000101043300000006040000290000000302400210000000010300008a000000000223022f000000000232013f000000000221016f0000000101400210000000000112019f0000000302000029000000000012041b00000001010000290000000001010433000800000001001d0000017e0110009c0000037e0000213d0000000401000039000600000001001d000000000101041a000000010210019000000001021002700000007f0320018f0000000002036019000400000002001d0000001f0220008c00000000020000190000000102002039000000000121013f0000000101100190000003330000c13d0000000401000029000000200110008c0000046c0000413d000000060100002900000000001004350000017d0100004100000000020004140000017d0320009c0000000001024019000000c00110021000000180011001c7000080100200003905ee05e90000040f0000000102200190000003240000613d00000008030000290000001f023000390000000502200270000000200330008c0000000002004019000000000301043b00000004010000290000001f01100039000000050110027000000000011300190000000002230019000000000312004b0000046c0000813d000000000002041b0000000102200039000000000312004b000004680000413d00000008010000290000001f0110008c0000049e0000a13d000000060100002900000000001004350000017d0100004100000000020004140000017d0320009c0000000001024019000000c00110021000000180011001c7000080100200003905ee05e90000040f000000010220019000000005020000290000000106000029000003240000613d000000080300002900000000032301700000002002000039000000000101043b0000048c0000613d0000002002000039000000000400001900000000056200190000000005050433000000000051041b000000200220003900000001011000390000002004400039000000000534004b000004840000413d0000000804000029000000000343004b0000049a0000813d00000008030000290000000303300210000000f80330018f000000010400008a000000000334022f000000000343013f000000010400002900000000024200190000000002020433000000000232016f000000000021041b000000010100003900000008020000290000000102200210000004ab0000013d0000000801000029000000000110004c0000000001000019000004a40000613d0000000701000029000000000101043300000008040000290000000302400210000000010300008a000000000223022f000000000232013f000000000221016f0000000101400210000000000112019f0000000602000029000000000012041b0000002001000039000001000010044300000120000004430000018101000041000005ef0001042e0000017d030000410000017d0410009c000000000103801900000040011002100000017d0420009c00000000020380190000006002200210000000000112019f00000000020004140000017d0420009c0000000002038019000000c002200210000000000112019f000001a4011001c7000080100200003905ee05e90000040f0000000102200190000004c70000613d000000000101043b000000000001042d0000000001000019000005f00001043000000020030000390000000004310436000000000302043300000000003404350000004001100039000000000430004c000004d80000613d000000000400001900000000054100190000002004400039000000000624001900000000060604330000000000650435000000000534004b000004d10000413d000000000231001900000000000204350000001f02300039000000200300008a000000000232016f0000000001210019000000000001042d00040000000000020000019001100198000005380000613d000400000003001d0000019002200198000200000002001d0000054d0000613d000300000001001d0000000000100435000000200000043f0000017d0100004100000000020004140000017d0320009c0000000001024019000000c00110021000000192011001c7000080100200003905ee05e90000040f0000000102200190000005360000613d000000000101043b000000000201041a0000000401000029000100000002001d000000000112004b000005620000413d00000003010000290000000000100435000000200000043f0000017d0100004100000000020004140000017d0320009c0000000001024019000000c00110021000000192011001c7000080100200003905ee05e90000040f0000000102200190000005360000613d000000040200002900000001030000290000000002230049000000000101043b000000000021041b000000020100002900000000001004350000017d0100004100000000020004140000017d0320009c0000000001024019000000c00110021000000192011001c7000080100200003905ee05e90000040f0000000102200190000005360000613d000000000101043b000000000301041a00000004040000290000000002430019000000000332004b000000000300001900000001030040390000000103300190000005770000c13d000000000021041b000000400100043d00000000004104350000017d0200004100000000030004140000017d0430009c00000000030280190000017d0410009c00000000010280190000004001100210000000c002300210000000000112019f00000180011001c70000800d020000390000000303000039000001a5040000410000000305000029000000020600002905ee05e40000040f0000000101200190000005360000613d000000000001042d0000000001000019000005f000010430000000400100043d0000006402100039000001aa0300004100000000003204350000004402100039000001ab030000410000000000320435000000240210003900000025030000390000000000320435000001950200004100000000002104350000000402100039000000200300003900000000003204350000017d020000410000017d0310009c0000000001028019000000400110021000000196011001c7000005f000010430000000400100043d0000006402100039000001a80300004100000000003204350000004402100039000001a9030000410000000000320435000000240210003900000023030000390000000000320435000001950200004100000000002104350000000402100039000000200300003900000000003204350000017d020000410000017d0310009c0000000001028019000000400110021000000196011001c7000005f000010430000000400100043d0000006402100039000001a60300004100000000003204350000004402100039000001a7030000410000000000320435000000240210003900000026030000390000000000320435000001950200004100000000002104350000000402100039000000200300003900000000003204350000017d020000410000017d0310009c0000000001028019000000400110021000000196011001c7000005f000010430000001980100004100000000001004350000001101000039000000040010043f0000019901000041000005f00001043000030000000000020000019001100198000005ba0000613d000200000003001d0000019002200198000300000002001d000005cf0000613d000100000001001d00000000001004350000000101000039000000200010043f0000017d0100004100000000020004140000017d0320009c0000000001024019000000c00110021000000192011001c7000080100200003905ee05e90000040f00000001022001900000000304000029000005b80000613d000000000101043b0000000000400435000000200010043f0000017d0100004100000000020004140000017d0320009c0000000001024019000000c00110021000000192011001c7000080100200003905ee05e90000040f00000003060000290000000102200190000005b80000613d000000000101043b0000000202000029000000000021041b000000400100043d00000000002104350000017d0200004100000000030004140000017d0430009c00000000030280190000017d0410009c00000000010280190000004001100210000000c002300210000000000112019f00000180011001c70000800d0200003900000003030000390000019a04000041000000010500002905ee05e40000040f0000000101200190000005b80000613d000000000001042d0000000001000019000005f000010430000000400100043d00000064021000390000019d03000041000000000032043500000044021000390000019e030000410000000000320435000000240210003900000024030000390000000000320435000001950200004100000000002104350000000402100039000000200300003900000000003204350000017d020000410000017d0310009c0000000001028019000000400110021000000196011001c7000005f000010430000000400100043d00000064021000390000019b03000041000000000032043500000044021000390000019c030000410000000000320435000000240210003900000022030000390000000000320435000001950200004100000000002104350000000402100039000000200300003900000000003204350000017d020000410000017d0310009c0000000001028019000000400110021000000196011001c7000005f000010430000005e7002104210000000102000039000000000001042d0000000002000019000000000001042d000005ec002104230000000102000039000000000001042d0000000002000019000000000001042d000005ee00000432000005ef0001042e000005f00001043000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff000000000000000000000000000000000000000000000000ffffffffffffffff800000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000200000000000000000000000000000000200000000000000000000000000000040000001000000000000000000000000000000000000000000000000000000000000000000000000003950935000000000000000000000000000000000000000000000000000000000a457c2d600000000000000000000000000000000000000000000000000000000a457c2d700000000000000000000000000000000000000000000000000000000a9059cbb00000000000000000000000000000000000000000000000000000000dd62ed3e00000000000000000000000000000000000000000000000000000000395093510000000000000000000000000000000000000000000000000000000070a082310000000000000000000000000000000000000000000000000000000095d89b410000000000000000000000000000000000000000000000000000000018160ddc0000000000000000000000000000000000000000000000000000000018160ddd0000000000000000000000000000000000000000000000000000000023b872dd00000000000000000000000000000000000000000000000000000000313ce5670000000000000000000000000000000000000000000000000000000006fdde0300000000000000000000000000000000000000000000000000000000095ea7b3000000000000000000000000ffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000200000000000000000000000000200000000000000000000000000000000000040000000000000000000000000207a65726f00000000000000000000000000000000000000000000000000000045524332303a2064656372656173656420616c6c6f77616e63652062656c6f7708c379a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000840000000000000000000000008a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b4e487b710000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000000000000000000000008c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925737300000000000000000000000000000000000000000000000000000000000045524332303a20617070726f766520746f20746865207a65726f206164647265726573730000000000000000000000000000000000000000000000000000000045524332303a20617070726f76652066726f6d20746865207a65726f2061646445524332303a20696e73756666696369656e7420616c6c6f77616e63650000000000000000000000000000000000000000000064000000000000000000000000c2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85bffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff00000000000000800200000000000000000000000000000000000000000000000000000000000000ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef616c616e6365000000000000000000000000000000000000000000000000000045524332303a207472616e7366657220616d6f756e7420657863656564732062657373000000000000000000000000000000000000000000000000000000000045524332303a207472616e7366657220746f20746865207a65726f2061646472647265737300000000000000000000000000000000000000000000000000000045524332303a207472616e736665722066726f6d20746865207a65726f20616495f053a375f41aa4ff047f1d5053c1c866c82db245cabc25796cd9cb10e57b4a"},"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"}},"irOptimized":"/// @use-src 25:\"@openzeppelin/contracts/token/ERC20/ERC20.sol\", 26:\"@openzeppelin/contracts/token/ERC20/IERC20.sol\", 27:\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\", 35:\"@openzeppelin/contracts/utils/Context.sol\"\nobject \"ERC20_6336\" {\n code {\n {\n /// @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\"\n mstore(64, memoryguard(0x80))\n if callvalue() { revert(0, 0) }\n let programSize := datasize(\"ERC20_6336\")\n let argSize := sub(codesize(), programSize)\n let memoryDataOffset := allocate_memory(argSize)\n codecopy(memoryDataOffset, programSize, argSize)\n let _1 := add(memoryDataOffset, argSize)\n if slt(sub(_1, memoryDataOffset), 64)\n {\n revert(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\"\n let offset := mload(memoryDataOffset)\n let _2 := sub(shl(64, 1), 1)\n if gt(offset, _2)\n {\n revert(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\"\n let value0 := abi_decode_string_fromMemory(add(memoryDataOffset, offset), _1)\n let _3 := 32\n let offset_1 := mload(add(memoryDataOffset, _3))\n if gt(offset_1, _2)\n {\n revert(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\"\n let value1 := abi_decode_string_fromMemory(add(memoryDataOffset, offset_1), _1)\n let newLen := mload(value0)\n if gt(newLen, _2)\n {\n mstore(/** @src -1:-1:-1 */ 0, /** @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\" */ shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(/** @src -1:-1:-1 */ 0, /** @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\" */ 0x24)\n }\n /// @src 25:2044:2057 \"_name = name_\"\n let _4 := 0x03\n /// @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\"\n let _5 := sload(/** @src 25:2044:2057 \"_name = name_\" */ _4)\n /// @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\"\n let length := /** @src -1:-1:-1 */ 0\n /// @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\"\n let _6 := 1\n length := shr(_6, _5)\n let outOfPlaceEncoding := and(_5, _6)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, _3))\n {\n mstore(/** @src -1:-1:-1 */ 0, /** @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\" */ shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(/** @src -1:-1:-1 */ 0, /** @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\" */ 0x24)\n }\n let _7 := 31\n if gt(length, _7)\n {\n mstore(/** @src -1:-1:-1 */ 0, /** @src 25:2044:2057 \"_name = name_\" */ _4)\n /// @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\"\n let data := keccak256(/** @src -1:-1:-1 */ 0, /** @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\" */ _3)\n let deleteStart := add(data, shr(5, add(newLen, _7)))\n if lt(newLen, _3) { deleteStart := data }\n let _8 := add(data, shr(5, add(length, _7)))\n let start := deleteStart\n for { } lt(start, _8) { start := add(start, _6) }\n {\n sstore(start, /** @src -1:-1:-1 */ 0)\n }\n }\n /// @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\"\n let srcOffset := /** @src -1:-1:-1 */ 0\n /// @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\"\n srcOffset := _3\n switch gt(newLen, _7)\n case 1 {\n let loopEnd := and(newLen, not(31))\n mstore(/** @src -1:-1:-1 */ 0, /** @src 25:2044:2057 \"_name = name_\" */ _4)\n /// @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\"\n let dstPtr := keccak256(/** @src -1:-1:-1 */ 0, /** @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\" */ _3)\n let i := /** @src -1:-1:-1 */ 0\n /// @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\"\n for { } lt(i, loopEnd) { i := add(i, _3) }\n {\n sstore(dstPtr, mload(add(value0, srcOffset)))\n dstPtr := add(dstPtr, _6)\n srcOffset := add(srcOffset, _3)\n }\n if lt(loopEnd, newLen)\n {\n let lastValue := mload(add(value0, srcOffset))\n sstore(dstPtr, and(lastValue, not(shr(and(shl(/** @src 25:2044:2057 \"_name = name_\" */ _4, /** @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\" */ newLen), 248), not(0)))))\n }\n sstore(/** @src 25:2044:2057 \"_name = name_\" */ _4, /** @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\" */ add(shl(_6, newLen), _6))\n }\n default {\n let value := /** @src -1:-1:-1 */ 0\n /// @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\"\n if newLen\n {\n value := mload(add(value0, srcOffset))\n }\n sstore(/** @src 25:2044:2057 \"_name = name_\" */ _4, /** @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\" */ or(and(value, not(shr(shl(/** @src 25:2044:2057 \"_name = name_\" */ _4, /** @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\" */ newLen), not(0)))), shl(_6, newLen)))\n }\n let newLen_1 := mload(value1)\n if gt(newLen_1, _2)\n {\n mstore(/** @src -1:-1:-1 */ 0, /** @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\" */ shl(224, 0x4e487b71))\n mstore(/** @src 25:2067:2084 \"_symbol = symbol_\" */ 0x04, /** @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\" */ 0x41)\n revert(/** @src -1:-1:-1 */ 0, /** @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\" */ 0x24)\n }\n /// @src 25:2067:2084 \"_symbol = symbol_\"\n let _9 := 0x04\n /// @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\"\n let _10 := sload(/** @src 25:2067:2084 \"_symbol = symbol_\" */ _9)\n /// @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\"\n let length_1 := /** @src -1:-1:-1 */ 0\n /// @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\"\n length_1 := shr(_6, _10)\n let outOfPlaceEncoding_1 := and(_10, _6)\n if iszero(outOfPlaceEncoding_1)\n {\n length_1 := and(length_1, 0x7f)\n }\n if eq(outOfPlaceEncoding_1, lt(length_1, _3))\n {\n mstore(/** @src -1:-1:-1 */ 0, /** @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\" */ shl(224, 0x4e487b71))\n mstore(/** @src 25:2067:2084 \"_symbol = symbol_\" */ _9, /** @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\" */ 0x22)\n revert(/** @src -1:-1:-1 */ 0, /** @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\" */ 0x24)\n }\n if gt(length_1, _7)\n {\n mstore(/** @src -1:-1:-1 */ 0, /** @src 25:2067:2084 \"_symbol = symbol_\" */ _9)\n /// @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\"\n let data_1 := keccak256(/** @src -1:-1:-1 */ 0, /** @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\" */ _3)\n let deleteStart_1 := add(data_1, shr(5, add(newLen_1, _7)))\n if lt(newLen_1, _3) { deleteStart_1 := data_1 }\n let _11 := add(data_1, shr(5, add(length_1, _7)))\n let start_1 := deleteStart_1\n for { } lt(start_1, _11) { start_1 := add(start_1, _6) }\n {\n sstore(start_1, /** @src -1:-1:-1 */ 0)\n }\n }\n /// @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\"\n let srcOffset_1 := /** @src -1:-1:-1 */ 0\n /// @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\"\n srcOffset_1 := _3\n switch gt(newLen_1, _7)\n case 1 {\n let loopEnd_1 := and(newLen_1, not(31))\n mstore(/** @src -1:-1:-1 */ 0, /** @src 25:2067:2084 \"_symbol = symbol_\" */ _9)\n /// @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\"\n let dstPtr_1 := keccak256(/** @src -1:-1:-1 */ 0, /** @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\" */ _3)\n let i_1 := /** @src -1:-1:-1 */ 0\n /// @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\"\n for { } lt(i_1, loopEnd_1) { i_1 := add(i_1, _3) }\n {\n sstore(dstPtr_1, mload(add(value1, srcOffset_1)))\n dstPtr_1 := add(dstPtr_1, _6)\n srcOffset_1 := add(srcOffset_1, _3)\n }\n if lt(loopEnd_1, newLen_1)\n {\n let lastValue_1 := mload(add(value1, srcOffset_1))\n sstore(dstPtr_1, and(lastValue_1, not(shr(and(shl(/** @src 25:2044:2057 \"_name = name_\" */ _4, /** @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\" */ newLen_1), 248), not(0)))))\n }\n sstore(/** @src 25:2067:2084 \"_symbol = symbol_\" */ _9, /** @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\" */ add(shl(_6, newLen_1), _6))\n }\n default {\n let value_1 := /** @src -1:-1:-1 */ 0\n /// @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\"\n if newLen_1\n {\n value_1 := mload(add(value1, srcOffset_1))\n }\n sstore(/** @src 25:2067:2084 \"_symbol = symbol_\" */ _9, /** @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\" */ or(and(value_1, not(shr(shl(/** @src 25:2044:2057 \"_name = name_\" */ _4, /** @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\" */ newLen_1), not(0)))), shl(_6, newLen_1)))\n }\n let _12 := mload(64)\n let _13 := datasize(\"ERC20_6336_deployed\")\n codecopy(_12, dataoffset(\"ERC20_6336_deployed\"), _13)\n return(_12, _13)\n }\n function allocate_memory(size) -> memPtr\n {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n if or(gt(newFreePtr, sub(shl(64, 1), 1)), lt(newFreePtr, memPtr))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n mstore(64, newFreePtr)\n }\n function abi_decode_string_fromMemory(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let _1 := mload(offset)\n if gt(_1, sub(shl(64, 1), 1))\n {\n mstore(/** @src -1:-1:-1 */ 0, /** @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\" */ shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(/** @src -1:-1:-1 */ 0, /** @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\" */ 0x24)\n }\n let _2 := 0x20\n let array_1 := allocate_memory(add(and(add(_1, 0x1f), not(31)), _2))\n mstore(array_1, _1)\n if gt(add(add(offset, _1), _2), end)\n {\n revert(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\"\n let i := /** @src -1:-1:-1 */ 0\n /// @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\"\n for { } lt(i, _1) { i := add(i, _2) }\n {\n mstore(add(add(array_1, i), _2), mload(add(add(offset, i), _2)))\n }\n mstore(add(add(array_1, _1), _2), /** @src -1:-1:-1 */ 0)\n /// @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\"\n array := array_1\n }\n }\n /// @use-src 25:\"@openzeppelin/contracts/token/ERC20/ERC20.sol\", 35:\"@openzeppelin/contracts/utils/Context.sol\"\n object \"ERC20_6336_deployed\" {\n code {\n {\n /// @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\"\n let _1 := memoryguard(0x80)\n let _2 := 64\n mstore(_2, _1)\n let _3 := 4\n if iszero(lt(calldatasize(), _3))\n {\n let _4 := 0\n switch shr(224, calldataload(_4))\n case 0x06fdde03 {\n if callvalue() { revert(_4, _4) }\n if slt(add(calldatasize(), not(3)), _4) { revert(_4, _4) }\n let ret := _4\n let slotValue := sload(/** @src 25:2242:2247 \"_name\" */ 0x03)\n /// @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\"\n let length := _4\n let _5 := 1\n length := shr(_5, slotValue)\n let outOfPlaceEncoding := and(slotValue, _5)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n let _6 := 32\n if eq(outOfPlaceEncoding, lt(length, _6))\n {\n mstore(_4, shl(224, 0x4e487b71))\n mstore(_3, 0x22)\n revert(_4, 0x24)\n }\n mstore(_1, length)\n switch outOfPlaceEncoding\n case 0 {\n mstore(add(_1, _6), and(slotValue, not(255)))\n ret := add(add(_1, shl(5, iszero(iszero(length)))), _6)\n }\n case 1 {\n mstore(_4, /** @src 25:2242:2247 \"_name\" */ 0x03)\n /// @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\"\n let dataPos := 87903029871075914254377627908054574944891091886930582284385770809450030037083\n let i := _4\n for { } lt(i, length) { i := add(i, _6) }\n {\n mstore(add(add(_1, i), _6), sload(dataPos))\n dataPos := add(dataPos, _5)\n }\n ret := add(add(_1, i), _6)\n }\n let newFreePtr := add(_1, and(add(sub(ret, _1), 31), not(31)))\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, _1))\n {\n mstore(_4, shl(224, 0x4e487b71))\n mstore(_3, 0x41)\n revert(_4, 0x24)\n }\n mstore(_2, newFreePtr)\n return(newFreePtr, sub(abi_encode_string(newFreePtr, _1), newFreePtr))\n }\n case 0x095ea7b3 {\n if callvalue() { revert(_4, _4) }\n if slt(add(calldatasize(), not(3)), _2) { revert(_4, _4) }\n let value0 := abi_decode_address_4723()\n /// @src 25:4595:4601 \"amount\"\n fun_approve(/** @src 35:719:729 \"msg.sender\" */ caller(), /** @src 25:4595:4601 \"amount\" */ value0, /** @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\" */ calldataload(36))\n let memPos := mload(_2)\n mstore(memPos, 1)\n return(memPos, 32)\n }\n case 0x18160ddd {\n if callvalue() { revert(_4, _4) }\n if slt(add(calldatasize(), not(3)), _4) { revert(_4, _4) }\n let _7 := sload(/** @src 25:3331:3343 \"_totalSupply\" */ 0x02)\n /// @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\"\n let memPos_1 := mload(_2)\n mstore(memPos_1, _7)\n return(memPos_1, 32)\n }\n case 0x23b872dd {\n if callvalue() { revert(_4, _4) }\n if slt(add(calldatasize(), not(3)), 96) { revert(_4, _4) }\n let value0_1 := abi_decode_address_4723()\n let value1 := abi_decode_address()\n let value := calldataload(68)\n mstore(_4, and(value0_1, sub(shl(160, 1), 1)))\n mstore(32, 1)\n let _8 := keccak256(_4, _2)\n mstore(_4, /** @src 35:719:729 \"msg.sender\" */ caller())\n /// @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\"\n mstore(32, _8)\n let _9 := sload(keccak256(_4, _2))\n /// @src 25:10962:11205 \"if (currentAllowance != type(uint256).max) {...\"\n if /** @src 25:10966:11003 \"currentAllowance != type(uint256).max\" */ iszero(eq(_9, /** @src 25:10986:11003 \"type(uint256).max\" */ not(0)))\n /// @src 25:10962:11205 \"if (currentAllowance != type(uint256).max) {...\"\n {\n /// @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\"\n if /** @src 25:11027:11053 \"currentAllowance >= amount\" */ lt(_9, value)\n /// @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\"\n {\n let memPtr := mload(_2)\n mstore(memPtr, shl(229, 4594637))\n mstore(add(memPtr, _3), 32)\n mstore(add(memPtr, 36), 29)\n mstore(add(memPtr, 68), \"ERC20: insufficient allowance\")\n revert(memPtr, 100)\n }\n /// @src 25:11154:11179 \"currentAllowance - amount\"\n fun_approve(value0_1, /** @src 35:719:729 \"msg.sender\" */ caller(), /** @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\" */ sub(/** @src 25:11154:11179 \"currentAllowance - amount\" */ _9, value))\n }\n /// @src 25:5443:5449 \"amount\"\n fun_transfer(value0_1, value1, value)\n /// @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\"\n let memPos_2 := mload(_2)\n mstore(memPos_2, 1)\n return(memPos_2, 32)\n }\n case 0x313ce567 {\n if callvalue() { revert(_4, _4) }\n if slt(add(calldatasize(), not(3)), _4) { revert(_4, _4) }\n let memPos_3 := mload(_2)\n mstore(memPos_3, /** @src 25:3175:3177 \"18\" */ 0x12)\n /// @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\"\n return(memPos_3, 32)\n }\n case 0x39509351 {\n if callvalue() { revert(_4, _4) }\n if slt(add(calldatasize(), not(3)), _2) { revert(_4, _4) }\n let value0_2 := abi_decode_address_4723()\n mstore(_4, /** @src 35:719:729 \"msg.sender\" */ caller())\n /// @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\"\n mstore(32, 1)\n let _10 := keccak256(_4, _2)\n mstore(_4, and(value0_2, sub(shl(160, 1), 1)))\n mstore(32, _10)\n /// @src 25:6040:6078 \"allowance(owner, spender) + addedValue\"\n fun_approve(/** @src 35:719:729 \"msg.sender\" */ caller(), /** @src 25:6040:6078 \"allowance(owner, spender) + addedValue\" */ value0_2, checked_add_uint256(/** @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\" */ sload(keccak256(_4, _2)), calldataload(36)))\n let memPos_4 := mload(_2)\n mstore(memPos_4, 1)\n return(memPos_4, 32)\n }\n case 0x70a08231 {\n if callvalue() { revert(_4, _4) }\n if slt(add(calldatasize(), not(3)), 32) { revert(_4, _4) }\n mstore(_4, and(abi_decode_address_4723(), sub(shl(160, 1), 1)))\n mstore(32, _4)\n let _11 := sload(keccak256(_4, _2))\n let memPos_5 := mload(_2)\n mstore(memPos_5, _11)\n return(memPos_5, 32)\n }\n case 0x95d89b41 {\n if callvalue() { revert(_4, _4) }\n if slt(add(calldatasize(), not(3)), _4) { revert(_4, _4) }\n let memPtr_1 := mload(_2)\n let ret_1 := _4\n let slotValue_1 := sload(_3)\n let length_1 := _4\n let _12 := 1\n length_1 := shr(_12, slotValue_1)\n let outOfPlaceEncoding_1 := and(slotValue_1, _12)\n if iszero(outOfPlaceEncoding_1)\n {\n length_1 := and(length_1, 0x7f)\n }\n let _13 := 32\n if eq(outOfPlaceEncoding_1, lt(length_1, _13))\n {\n mstore(_4, shl(224, 0x4e487b71))\n mstore(_3, 0x22)\n revert(_4, 0x24)\n }\n mstore(memPtr_1, length_1)\n switch outOfPlaceEncoding_1\n case 0 {\n mstore(add(memPtr_1, _13), and(slotValue_1, not(255)))\n ret_1 := add(add(memPtr_1, shl(5, iszero(iszero(length_1)))), _13)\n }\n case 1 {\n mstore(_4, _3)\n let dataPos_1 := 62514009886607029107290561805838585334079798074568712924583230797734656856475\n let i_1 := _4\n for { } lt(i_1, length_1) { i_1 := add(i_1, _13) }\n {\n mstore(add(add(memPtr_1, i_1), _13), sload(dataPos_1))\n dataPos_1 := add(dataPos_1, _12)\n }\n ret_1 := add(add(memPtr_1, i_1), _13)\n }\n let newFreePtr_1 := add(memPtr_1, and(add(sub(ret_1, memPtr_1), 31), not(31)))\n if or(gt(newFreePtr_1, 0xffffffffffffffff), lt(newFreePtr_1, memPtr_1))\n {\n mstore(_4, shl(224, 0x4e487b71))\n mstore(_3, 0x41)\n revert(_4, 0x24)\n }\n mstore(_2, newFreePtr_1)\n return(newFreePtr_1, sub(abi_encode_string(newFreePtr_1, memPtr_1), newFreePtr_1))\n }\n case 0xa457c2d7 {\n if callvalue() { revert(_4, _4) }\n if slt(add(calldatasize(), not(3)), _2) { revert(_4, _4) }\n let value0_3 := abi_decode_address_4723()\n let value_1 := calldataload(36)\n mstore(_4, /** @src 35:719:729 \"msg.sender\" */ caller())\n /// @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\"\n mstore(32, 1)\n let _14 := keccak256(_4, _2)\n mstore(_4, and(value0_3, sub(shl(160, 1), 1)))\n mstore(32, _14)\n let _15 := sload(keccak256(_4, _2))\n if /** @src 25:6811:6846 \"currentAllowance >= subtractedValue\" */ lt(_15, value_1)\n /// @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\"\n {\n let memPtr_2 := mload(_2)\n mstore(memPtr_2, shl(229, 4594637))\n mstore(add(memPtr_2, _3), 32)\n mstore(add(memPtr_2, 36), 37)\n mstore(add(memPtr_2, 68), \"ERC20: decreased allowance below\")\n mstore(add(memPtr_2, 100), \" zero\")\n revert(memPtr_2, 132)\n }\n /// @src 25:6947:6981 \"currentAllowance - subtractedValue\"\n fun_approve(/** @src 35:719:729 \"msg.sender\" */ caller(), /** @src 25:6947:6981 \"currentAllowance - subtractedValue\" */ value0_3, /** @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\" */ sub(/** @src 25:6947:6981 \"currentAllowance - subtractedValue\" */ _15, value_1))\n /// @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\"\n let memPos_6 := mload(_2)\n mstore(memPos_6, 1)\n return(memPos_6, 32)\n }\n case 0xa9059cbb {\n if callvalue() { revert(_4, _4) }\n if slt(add(calldatasize(), not(3)), _2) { revert(_4, _4) }\n let value0_4 := abi_decode_address_4723()\n /// @src 25:3883:3889 \"amount\"\n fun_transfer(/** @src 35:719:729 \"msg.sender\" */ caller(), /** @src 25:3883:3889 \"amount\" */ value0_4, /** @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\" */ calldataload(36))\n let memPos_7 := mload(_2)\n mstore(memPos_7, 1)\n return(memPos_7, 32)\n }\n case 0xdd62ed3e {\n if callvalue() { revert(_4, _4) }\n if slt(add(calldatasize(), not(3)), _2) { revert(_4, _4) }\n let value0_5 := abi_decode_address_4723()\n let value1_1 := abi_decode_address()\n let _16 := sub(shl(160, 1), 1)\n mstore(_4, and(value0_5, _16))\n mstore(32, /** @src 25:4091:4102 \"_allowances\" */ 0x01)\n /// @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\"\n let _17 := keccak256(_4, _2)\n mstore(_4, and(value1_1, _16))\n mstore(32, _17)\n let _18 := sload(keccak256(_4, _2))\n let memPos_8 := mload(_2)\n mstore(memPos_8, _18)\n return(memPos_8, 32)\n }\n }\n revert(0, 0)\n }\n function abi_encode_string(headStart, value0) -> tail\n {\n let _1 := 32\n mstore(headStart, _1)\n let length := mload(value0)\n mstore(add(headStart, _1), length)\n let i := 0\n for { } lt(i, length) { i := add(i, _1) }\n {\n mstore(add(add(headStart, i), 64), mload(add(add(value0, i), _1)))\n }\n mstore(add(add(headStart, length), 64), 0)\n tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n }\n function abi_decode_address_4723() -> value\n {\n value := calldataload(4)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_address() -> value\n {\n value := calldataload(36)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function checked_add_uint256(x, y) -> sum\n {\n sum := add(x, y)\n if gt(x, sum)\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n }\n /// @ast-id 6097 @src 25:7484:8135 \"function _transfer(...\"\n function fun_transfer(var_from, var_to, var_amount)\n {\n /// @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\"\n let _1 := sub(shl(160, 1), 1)\n let _2 := and(/** @src 25:7610:7628 \"from != address(0)\" */ var_from, /** @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\" */ _1)\n if /** @src 25:7610:7628 \"from != address(0)\" */ iszero(/** @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\" */ _2)\n {\n let memPtr := mload(64)\n mstore(memPtr, shl(229, 4594637))\n mstore(add(memPtr, 4), 32)\n mstore(add(memPtr, 36), 37)\n mstore(add(memPtr, 68), \"ERC20: transfer from the zero ad\")\n mstore(add(memPtr, 100), \"dress\")\n revert(memPtr, 132)\n }\n let _3 := and(/** @src 25:7688:7704 \"to != address(0)\" */ var_to, /** @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\" */ _1)\n if /** @src 25:7688:7704 \"to != address(0)\" */ iszero(/** @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\" */ _3)\n {\n let memPtr_1 := mload(64)\n mstore(memPtr_1, shl(229, 4594637))\n mstore(add(memPtr_1, 4), 32)\n mstore(add(memPtr_1, 36), 35)\n mstore(add(memPtr_1, 68), \"ERC20: transfer to the zero addr\")\n mstore(add(memPtr_1, 100), \"ess\")\n revert(memPtr_1, 132)\n }\n /// @src 25:7626:7627 \"0\"\n let _4 := 0x00\n /// @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\"\n mstore(/** @src 25:7626:7627 \"0\" */ _4, /** @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\" */ _2)\n mstore(0x20, /** @src 25:7626:7627 \"0\" */ _4)\n /// @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\"\n let _5 := sload(keccak256(/** @src 25:7626:7627 \"0\" */ _4, /** @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\" */ 0x40))\n if /** @src 25:7859:7880 \"fromBalance >= amount\" */ lt(_5, var_amount)\n /// @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\"\n {\n let memPtr_2 := mload(0x40)\n mstore(memPtr_2, shl(229, 4594637))\n mstore(add(memPtr_2, 4), 0x20)\n mstore(add(memPtr_2, 36), 38)\n mstore(add(memPtr_2, 68), \"ERC20: transfer amount exceeds b\")\n mstore(add(memPtr_2, 100), \"alance\")\n revert(memPtr_2, 132)\n }\n mstore(/** @src 25:7626:7627 \"0\" */ _4, /** @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\" */ _2)\n mstore(0x20, /** @src 25:7626:7627 \"0\" */ _4)\n /// @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\"\n sstore(keccak256(/** @src 25:7626:7627 \"0\" */ _4, /** @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\" */ 0x40), sub(/** @src 25:7975:7995 \"fromBalance - amount\" */ _5, var_amount))\n /// @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\"\n mstore(/** @src 25:7626:7627 \"0\" */ _4, /** @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\" */ _3)\n let dataSlot := keccak256(/** @src 25:7626:7627 \"0\" */ _4, /** @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\" */ 0x40)\n sstore(dataSlot, /** @src 25:8015:8038 \"_balances[to] += amount\" */ checked_add_uint256(/** @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\" */ sload(/** @src 25:8015:8038 \"_balances[to] += amount\" */ dataSlot), var_amount))\n /// @src 25:8054:8080 \"Transfer(from, to, amount)\"\n let _6 := /** @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\" */ mload(0x40)\n mstore(_6, var_amount)\n /// @src 25:8054:8080 \"Transfer(from, to, amount)\"\n log3(_6, /** @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\" */ 0x20, /** @src 25:8054:8080 \"Transfer(from, to, amount)\" */ 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef, _2, _3)\n }\n /// @ast-id 6270 @src 25:10119:10489 \"function _approve(...\"\n function fun_approve(var_owner, var_spender, var_amount)\n {\n /// @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\"\n let _1 := sub(shl(160, 1), 1)\n let _2 := and(/** @src 25:10250:10269 \"owner != address(0)\" */ var_owner, /** @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\" */ _1)\n if /** @src 25:10250:10269 \"owner != address(0)\" */ iszero(/** @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\" */ _2)\n {\n let memPtr := mload(64)\n mstore(memPtr, shl(229, 4594637))\n mstore(add(memPtr, 4), 32)\n mstore(add(memPtr, 36), 36)\n mstore(add(memPtr, 68), \"ERC20: approve from the zero add\")\n mstore(add(memPtr, 100), \"ress\")\n revert(memPtr, 132)\n }\n let _3 := and(/** @src 25:10328:10349 \"spender != address(0)\" */ var_spender, /** @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\" */ _1)\n if /** @src 25:10328:10349 \"spender != address(0)\" */ iszero(/** @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\" */ _3)\n {\n let memPtr_1 := mload(64)\n mstore(memPtr_1, shl(229, 4594637))\n mstore(add(memPtr_1, 4), 32)\n mstore(add(memPtr_1, 36), 34)\n mstore(add(memPtr_1, 68), \"ERC20: approve to the zero addre\")\n mstore(add(memPtr_1, 100), \"ss\")\n revert(memPtr_1, 132)\n }\n mstore(/** @src 25:10267:10268 \"0\" */ 0x00, /** @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\" */ _2)\n mstore(0x20, /** @src 25:10399:10410 \"_allowances\" */ 0x01)\n /// @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\"\n let _4 := keccak256(/** @src 25:10267:10268 \"0\" */ 0x00, /** @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\" */ 0x40)\n mstore(/** @src 25:10267:10268 \"0\" */ 0x00, /** @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\" */ _3)\n mstore(0x20, _4)\n sstore(keccak256(/** @src 25:10267:10268 \"0\" */ 0x00, /** @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\" */ 0x40), var_amount)\n /// @src 25:10450:10482 \"Approval(owner, spender, amount)\"\n let _5 := /** @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\" */ mload(0x40)\n mstore(_5, var_amount)\n /// @src 25:10450:10482 \"Approval(owner, spender, amount)\"\n log3(_5, /** @src 25:1403:12626 \"contract ERC20 is Context, IERC20, IERC20Metadata {...\" */ 0x20, /** @src 25:10450:10482 \"Approval(owner, spender, amount)\" */ 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925, _2, _3)\n }\n }\n data \".metadata\" hex\"a264697066735822122089f98b8f1179a8eb361b949e7a7cbb83915b4eeb0aa0229e65cdabb14559f42664736f6c63430008120033\"\n }\n}\n","hash":"010001ada4c2a560751e67e3567b5a158f3cf08ab8815341a10a3184ee23b6e4","factoryDependencies":{}}},"@openzeppelin/contracts/token/ERC20/IERC20.sol":{"IERC20":{"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"}],"metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"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\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":\"IERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]}},\"version\":1}","evm":{"legacyAssembly":null,"assembly":null,"bytecode":null,"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"irOptimized":""}},"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"IERC20Metadata":{"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"}],"metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"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\":{\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":\"IERC20Metadata\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]}},\"version\":1}","evm":{"legacyAssembly":null,"assembly":null,"bytecode":null,"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"}},"irOptimized":""}},"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"SafeERC20":{"abi":[],"metadata":{"optimizer_settings":"M3B3","solc_metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Wrappers around ERC20 operations that throw on failure (when the token contract returns false). Tokens that return no value (and instead revert or throw on failure) are also supported, non-reverting calls are assumed to be successful. To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract, which allows you to call the safe operations as `token.safeTransfer(...)`, etc.\",\"kind\":\"dev\",\"methods\":{},\"title\":\"SafeERC20\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":\"SafeERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xc3d946432c0ddbb1f846a0d3985be71299df331b91d06732152117f62f0be2b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4632c341a06ba5c079b51ca5a915efab4e6ab57735b37839b3e8365ff806a43e\",\"dweb:/ipfs/QmTHT3xHYed2wajEoA5qu7ii2BxLpPhQZHwAhtLK5Z7ANK\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x2ccf9d2313a313d41a791505f2b5abfdc62191b5d4334f7f7a82691c088a1c87\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3a57d0854b2fdce6ebff933a48dca2445643d1eccfc27f00292e937f26c6a58\",\"dweb:/ipfs/QmW45rZooS9TqR4YXUbjRbtf2Bpb5ouSarBvfW1LdGprvV\"]}},\"version\":1}","zk_version":"1.3.9"},"evm":{"legacyAssembly":null,"assembly":"\t.text\n\t.file\t\"SafeERC20.sol:SafeERC20\"\n\t.globl\t__entry\n__entry:\n.func_begin0:\n\tand!\t1, r2, r1\n\tjump.eq\t@.BB0_2\n\tadd\t128, r0, r1\n\tst.1\t64, r1\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tadd\t32, r0, r1\n\tst.2\t256, r1\n\tst.2\t288, r0\n\tadd\t@CPI0_0[0], r0, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_2:\n\tadd\tr0, r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.func_end0:\n\n\t.note.GNU-stack\n\t.rodata\nCPI0_0:\n\t.cell 53919893334301279589334030174039261352344891250716429051063678533632\n","bytecode":{"object":"00000001012001900000000c0000613d0000008001000039000000400010043f0000000001000416000000000110004c0000000c0000c13d00000020010000390000010000100443000001200000044300000005010000410000000f0001042e000000000100001900000010000104300000000e000004320000000f0001042e00000010000104300000000000000000000000000000000000000000000000000000000200000000000000000000000000000040000001000000000000000000457f3a95284cdc3b1b211b7a4274ad0da67d291c79948148f7fff3b563f244d7"},"methodIdentifiers":{}},"irOptimized":"/// @use-src 28:\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\"\nobject \"SafeERC20_6663\" {\n code {\n {\n /// @src 28:645:3915 \"library SafeERC20 {...\"\n let _1 := memoryguard(0x80)\n mstore(64, _1)\n if callvalue() { revert(0, 0) }\n let _2 := datasize(\"SafeERC20_6663_deployed\")\n codecopy(_1, dataoffset(\"SafeERC20_6663_deployed\"), _2)\n setimmutable(_1, \"library_deploy_address\", address())\n return(_1, _2)\n }\n }\n /// @use-src 28:\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\"\n object \"SafeERC20_6663_deployed\" {\n code {\n {\n /// @src 28:645:3915 \"library SafeERC20 {...\"\n revert(0, 0)\n }\n }\n data \".metadata\" hex\"a264697066735822122087f908664cc8239262fe5e2f6316e73010cb9af19451a913cabcddca895132cd64736f6c63430008120033\"\n }\n}\n","hash":"01000007229643d8a0cdc3b76dfaf76e17d77f1c31ea9b8f41e94b2263ae2207","factoryDependencies":{}}},"@openzeppelin/contracts/token/ERC721/ERC721.sol":{"ERC721":{"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":"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":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"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":"","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":"nonpayable","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":"nonpayable","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":"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":"nonpayable","type":"function"}],"metadata":{"optimizer_settings":"M3B3","solc_metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"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\":\"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\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"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\":\"\",\"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\":\"nonpayable\",\"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\":\"nonpayable\",\"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\":\"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\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including the Metadata extension, but not including the Enumerable extension, which is available separately as {ERC721Enumerable}.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"constructor\":{\"details\":\"Initializes the contract by setting a `name` and a `symbol` to the token collection.\"},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":\"ERC721\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x921f012325281f7d81e29c53a13824cf6c2c5d77232065d0d4f3f912e97af6ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7dbcedc364fce0ab5e54d21d4cbd91a97959f52c0674cf5c36a314bb58308f62\",\"dweb:/ipfs/QmfYpqHKtu3bSQ9FGvLwzdxRNykStpVPtoLNTaM1KBKj6E\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x0d4de01fe5360c38b4ad2b0822a12722958428f5138a7ff47c1720eb6fa52bba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77724cecdfba8814632ab58737c2b0f2d4ad2d532bc614aee559b5593c1152f0\",\"dweb:/ipfs/QmUcE6gXyv7CQh4sUdcDABYKGTovTe1zLMZSEq95nkc3ph\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146\",\"dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x2ccf9d2313a313d41a791505f2b5abfdc62191b5d4334f7f7a82691c088a1c87\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3a57d0854b2fdce6ebff933a48dca2445643d1eccfc27f00292e937f26c6a58\",\"dweb:/ipfs/QmW45rZooS9TqR4YXUbjRbtf2Bpb5ouSarBvfW1LdGprvV\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x32c202bd28995dd20c4347b7c6467a6d3241c74c8ad3edcbb610cd9205916c45\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8179c356adb19e70d6b31a1eedc8c5c7f0c00e669e2540f4099e3844c6074d30\",\"dweb:/ipfs/QmWFbivarEobbqhS1go64ootVuHfVohBseerYy9FTEd1W2\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}","zk_version":"1.3.9"},"evm":{"legacyAssembly":null,"assembly":"\t.text\n\t.file\t\"ERC721.sol:ERC721\"\n\t.globl\t__entry\n__entry:\n.func_begin0:\n\tnop\tstack+=[7]\n\tadd\tr1, r0, r3\n\tshr.s\t96, r3, r3\n\tand\t@CPI0_0[0], r3, r4\n\tptr.add\tr1, r4, stack[@ptr_return_data]\n\tptr.add\tr1, r0, stack[@ptr_calldata]\n\tand\t@CPI0_0[0], r3, stack[@calldatasize]\n\tadd\t0, r0, stack[@returndatasize]\n\tadd\t128, r0, r1\n\tst.1\t64, r1\n\tand!\t1, r2, r1\n\tjump.ne\t@.BB0_1\n\tadd\tstack[@calldatasize], r0, r1\n\tsub.s!\t4, r1, r1\n\tjump.lt\t@.BB0_2\n\tptr.add\tstack[@ptr_calldata], r0, r1\n\tld\tr1, r1\n\tshr.s\t224, r1, r1\n\tsub.s!\t@CPI0_5[0], r1, r2\n\tjump.le\t@.BB0_69\n\tsub.s!\t@CPI0_6[0], r1, r2\n\tjump.le\t@.BB0_77\n\tsub.s!\t@CPI0_7[0], r1, r2\n\tjump.gt\t@.BB0_83\n\tsub.s!\t@CPI0_10[0], r1, r2\n\tjump.eq\t@.BB0_139\n\tsub.s!\t@CPI0_11[0], r1, r1\n\tjump.ne\t@.BB0_2\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tadd\tstack[@calldatasize], r0, r3\n\tsub.s\t4, r3, r1\n\tadd\t@CPI0_2[0], r0, r2\n\tsub.s!\t128, r1, r4\n\tadd\t0, r0, r4\n\tadd.lt\tr2, r0, r4\n\tand\t@CPI0_2[0], r1, r1\n\tsub.s!\t0, r1, r5\n\tadd.le\t0, r0, r2\n\tsub.s!\t@CPI0_2[0], r1, r1\n\tadd\tr4, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tptr.add\tstack[@ptr_calldata], r0, r4\n\tptr.add.s\t4, r4, r1\n\tld\tr1, r1\n\tsub.s!\t@CPI0_22[0], r1, r2\n\tjump.gt\t@.BB0_2\n\tptr.add.s\t36, r4, r2\n\tld\tr2, r2\n\tsub.s!\t@CPI0_22[0], r2, r5\n\tjump.gt\t@.BB0_2\n\tptr.add.s\t100, r4, r5\n\tld\tr5, r6\n\tsub.s!\t@CPI0_1[0], r6, r5\n\tjump.gt\t@.BB0_2\n\tadd\t35, r6, r5\n\tadd\t@CPI0_2[0], r0, r7\n\tsub!\tr5, r3, r8\n\tadd\t0, r0, r8\n\tadd.ge\tr7, r0, r8\n\tand\t@CPI0_2[0], r3, r3\n\tand\t@CPI0_2[0], r5, r5\n\tsub!\tr5, r3, r9\n\tadd.ge\t0, r0, r7\n\txor\tr5, r3, r3\n\tsub.s!\t@CPI0_2[0], r3, r3\n\tadd\tr8, r0, r3\n\tadd.eq\tr7, r0, r3\n\tsub.s!\t0, r3, r3\n\tjump.ne\t@.BB0_2\n\tadd\t4, r6, r3\n\tptr.add\tr4, r3, r3\n\tld\tr3, r3\n\tsub.s!\t@CPI0_1[0], r3, r4\n\tjump.gt\t@.BB0_5\n\tadd\t63, r3, r4\n\tsub.s\t32, r0, r5\n\tand\tr4, r5, r5\n\tld.1\t64, r4\n\tadd\tr4, r5, r5\n\tsub!\tr5, r4, r7\n\tadd\t0, r0, r7\n\tadd.lt\t1, r0, r7\n\tsub.s!\t@CPI0_1[0], r5, r8\n\tjump.gt\t@.BB0_5\n\tand!\t1, r7, r7\n\tjump.ne\t@.BB0_5\n\tst.1\t64, r5\n\tst.1.inc\tr4, r3, r5\n\tadd\t36, r6, r7\n\tadd\tr3, r7, r6\n\tadd\tstack[@calldatasize], r0, r8\n\tsub!\tr6, r8, r6\n\tjump.gt\t@.BB0_2\n\tand\t31, r3, r6\n\tptr.add\tstack[@ptr_calldata], r7, r7\n\tshr.s!\t5, r3, r8\n\tjump.eq\t@.BB0_177\n\tadd\tr0, r0, r9\n.BB0_161:\n\tshl.s\t5, r9, r10\n\tadd\tr5, r10, r11\n\tptr.add\tr7, r10, r10\n\tld\tr10, r10\n\tst.1\tr11, r10\n\tadd\t1, r9, r9\n\tsub!\tr9, r8, r10\n\tjump.lt\t@.BB0_161\n.BB0_177:\n\tsub.s!\t0, r6, r9\n\tjump.eq\t@.BB0_163\n\tshl.s\t5, r8, r8\n\tptr.add\tr7, r8, r7\n\tadd\tr5, r8, r8\n\tshl.s\t3, r6, r6\n\tld.1\tr8, r9\n\tshl\tr9, r6, r9\n\tshr\tr9, r6, r9\n\tld\tr7, r7\n\tsub\t256, r6, r6\n\tshr\tr7, r6, r7\n\tshl\tr7, r6, r6\n\tor\tr6, r9, r6\n\tst.1\tr8, r6\n.BB0_163:\n\tadd\tr5, r3, r3\n\tst.1\tr3, r0\n\tadd\t68, r0, r3\n\tptr.add\tstack[@ptr_calldata], r3, r3\n\tld\tr3, r3\n\tnear_call\tr0, @fun_safeTransferFrom, @DEFAULT_UNWIND\n\tadd\tr0, r0, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_1:\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tadd\tstack[@calldatasize], r0, r2\n\tadd\t31, r2, r1\n\tsub.s\t32, r0, r10\n\tand\tr1, r10, r4\n\tld.1\t64, r1\n\tadd\tr4, r1, r3\n\tsub!\tr3, r4, r4\n\tadd\t0, r0, r4\n\tadd.lt\t1, r0, r4\n\tsub.s!\t@CPI0_1[0], r3, r5\n\tjump.gt\t@.BB0_5\n\tand!\t1, r4, r4\n\tjump.ne\t@.BB0_5\n\tst.1\t64, r3\n\tand\t31, r2, r3\n\tptr.add\tstack[@ptr_calldata], r0, r4\n\tshr.s!\t5, r2, r5\n\tjump.eq\t@.BB0_178\n\tadd\tr0, r0, r6\n.BB0_8:\n\tshl.s\t5, r6, r7\n\tadd\tr1, r7, r8\n\tptr.add\tr4, r7, r7\n\tld\tr7, r7\n\tst.1\tr8, r7\n\tadd\t1, r6, r6\n\tsub!\tr6, r5, r7\n\tjump.lt\t@.BB0_8\n.BB0_178:\n\tsub.s!\t0, r3, r6\n\tjump.eq\t@.BB0_10\n\tshl.s\t5, r5, r5\n\tptr.add\tr4, r5, r4\n\tadd\tr1, r5, r5\n\tshl.s\t3, r3, r3\n\tld.1\tr5, r6\n\tshl\tr6, r3, r6\n\tshr\tr6, r3, r6\n\tld\tr4, r4\n\tsub\t256, r3, r3\n\tshr\tr4, r3, r4\n\tshl\tr4, r3, r3\n\tor\tr3, r6, r3\n\tst.1\tr5, r3\n.BB0_10:\n\tadd\t@CPI0_2[0], r0, r3\n\tsub.s!\t64, r2, r4\n\tadd\t0, r0, r4\n\tadd.lt\tr3, r0, r4\n\tand\t@CPI0_2[0], r2, r5\n\tsub.s!\t0, r5, r6\n\tadd.le\t0, r0, r3\n\tsub.s!\t@CPI0_2[0], r5, r5\n\tadd.ne\tr4, r0, r3\n\tsub.s!\t0, r3, r3\n\tjump.ne\t@.BB0_2\n\tld.1.inc\tr1, r4, r3\n\tsub.s!\t@CPI0_1[0], r4, r5\n\tjump.gt\t@.BB0_2\n\tadd\tr1, r2, r2\n\tadd\tr4, r1, r4\n\tadd\t31, r4, r5\n\tadd\t@CPI0_2[0], r0, r6\n\tsub!\tr5, r2, r7\n\tadd\t0, r0, r7\n\tadd.ge\tr6, r0, r7\n\tand\t@CPI0_2[0], r5, r5\n\tand\t@CPI0_2[0], r2, r8\n\tsub!\tr5, r8, r9\n\tadd.ge\t0, r0, r6\n\txor\tr5, r8, r5\n\tsub.s!\t@CPI0_2[0], r5, r5\n\tadd\tr7, r0, r5\n\tadd.eq\tr6, r0, r5\n\tsub.s!\t0, r5, r5\n\tjump.ne\t@.BB0_2\n\tld.1\tr4, r5\n\tsub.s!\t@CPI0_1[0], r5, r6\n\tjump.gt\t@.BB0_5\n\tadd\t63, r5, r6\n\tand\tr6, r10, r6\n\tld.1\t64, r11\n\tadd\tr11, r6, r6\n\tsub!\tr6, r11, r7\n\tadd\t0, r0, r7\n\tadd.lt\t1, r0, r7\n\tsub.s!\t@CPI0_1[0], r6, r8\n\tjump.gt\t@.BB0_5\n\tand!\t1, r7, r7\n\tjump.ne\t@.BB0_5\n\tst.1\t64, r6\n\tst.1.inc\tr11, r5, r12\n\tadd\t32, r5, r6\n\tadd\tr6, r4, r7\n\tsub!\tr7, r2, r7\n\tjump.gt\t@.BB0_2\n\tsub.s!\t0, r5, r7\n\tjump.eq\t@.BB0_20\n\tadd\tr0, r0, r7\n.BB0_19:\n\tadd\t32, r7, r7\n\tadd\tr7, r11, r8\n\tadd\tr7, r4, r9\n\tld.1\tr9, r9\n\tst.1\tr8, r9\n\tsub!\tr7, r5, r8\n\tjump.lt\t@.BB0_19\n.BB0_20:\n\tadd\tr11, r6, r4\n\tst.1\tr4, r0\n\tld.1\tr3, r3\n\tsub.s!\t@CPI0_1[0], r3, r4\n\tjump.gt\t@.BB0_2\n\tadd\tr3, r1, r1\n\tadd\t31, r1, r3\n\tadd\t@CPI0_2[0], r0, r4\n\tsub!\tr3, r2, r5\n\tadd\t0, r0, r5\n\tadd.ge\tr4, r0, r5\n\tand\t@CPI0_2[0], r3, r3\n\tand\t@CPI0_2[0], r2, r6\n\tsub!\tr3, r6, r7\n\tadd.ge\t0, r0, r4\n\txor\tr3, r6, r3\n\tsub.s!\t@CPI0_2[0], r3, r3\n\tadd\tr5, r0, r3\n\tadd.eq\tr4, r0, r3\n\tsub.s!\t0, r3, r3\n\tjump.ne\t@.BB0_2\n\tld.1\tr1, r3\n\tsub.s!\t@CPI0_1[0], r3, r4\n\tjump.gt\t@.BB0_5\n\tadd\t63, r3, r4\n\tand\tr4, r10, r4\n\tld.1\t64, r7\n\tadd\tr7, r4, r4\n\tsub!\tr4, r7, r5\n\tadd\t0, r0, r5\n\tadd.lt\t1, r0, r5\n\tsub.s!\t@CPI0_1[0], r4, r6\n\tjump.gt\t@.BB0_5\n\tand!\t1, r5, r5\n\tjump.ne\t@.BB0_5\n\tst.1\t64, r4\n\tst.1.inc\tr7, r3, r4\n\tadd\tr4, r0, stack-[6]\n\tadd\t32, r3, r4\n\tadd\tr4, r1, r5\n\tsub!\tr5, r2, r2\n\tjump.gt\t@.BB0_2\n\tadd\tr12, r0, stack-[3]\n\tadd\tr11, r0, stack-[7]\n\tadd\tr10, r0, stack-[4]\n\tsub.s!\t0, r3, r2\n\tjump.eq\t@.BB0_29\n\tadd\tr0, r0, r2\n.BB0_28:\n\tadd\t32, r2, r2\n\tadd\tr2, r7, r5\n\tadd\tr2, r1, r6\n\tld.1\tr6, r6\n\tst.1\tr5, r6\n\tsub!\tr2, r3, r5\n\tjump.lt\t@.BB0_28\n.BB0_29:\n\tadd\tr7, r4, r1\n\tst.1\tr1, r0\n\tadd\tstack-[7], r0, r1\n\tld.1\tr1, r1\n\tadd\tr1, r0, stack-[5]\n\tsub.s!\t@CPI0_1[0], r1, r1\n\tjump.gt\t@.BB0_5\n\tadd\tr7, r0, stack-[1]\n\tsload\tr0, r1\n\tand!\t1, r1, r2\n\tshr.s\t1, r1, r1\n\tand\t127, r1, r3\n\tadd.eq\tr3, r0, r1\n\tadd\tr1, r0, stack-[2]\n\tsub.s!\t31, r1, r1\n\tadd\t0, r0, r1\n\tadd.gt\t1, r0, r1\n\tand\t1, r1, r1\n\tsub!\tr2, r1, r1\n\tjump.ne\t@.BB0_31\n\tadd\tstack-[2], r0, r1\n\tsub.s!\t32, r1, r1\n\tjump.lt\t@.BB0_36\n\tst.1\t0, r0\n\tadd\t@CPI0_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI0_3[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_2\n\tadd\tstack-[5], r0, r3\n\tadd\t31, r3, r2\n\tshr.s\t5, r2, r2\n\tsub.s!\t32, r3, r3\n\tadd.lt\t0, r0, r2\n\tld\tr1, r3\n\tadd\tstack-[2], r0, r1\n\tadd\t31, r1, r1\n\tshr.s\t5, r1, r1\n\tadd\tr3, r1, r1\n\tadd\tr3, r2, r2\n\tsub!\tr2, r1, r3\n\tjump.ge\t@.BB0_36\n.BB0_37:\n\tsstore\tr2, r0\n\tadd\t1, r2, r2\n\tsub!\tr2, r1, r3\n\tjump.lt\t@.BB0_37\n.BB0_36:\n\tadd\tstack-[5], r0, r1\n\tsub.s!\t31, r1, r1\n\tjump.le\t@.BB0_46\n\tst.1\t0, r0\n\tadd\t@CPI0_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI0_3[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tadd\tstack-[4], r0, r2\n\tadd\tstack-[7], r0, r6\n\tjump.eq\t@.BB0_2\n\tadd\tstack-[5], r0, r3\n\tand!\tr3, r2, r3\n\tadd\t32, r0, r2\n\tld\tr1, r1\n\tjump.eq\t@.BB0_43\n\tadd\t32, r0, r2\n\tadd\tr0, r0, r4\n.BB0_42:\n\tadd\tr2, r6, r5\n\tld.1\tr5, r5\n\tsstore\tr1, r5\n\tadd\t32, r2, r2\n\tadd\t1, r1, r1\n\tadd\t32, r4, r4\n\tsub!\tr4, r3, r5\n\tjump.lt\t@.BB0_42\n.BB0_43:\n\tadd\tstack-[5], r0, r4\n\tsub!\tr3, r4, r3\n\tjump.ge\t@.BB0_45\n\tadd\tstack-[5], r0, r3\n\tshl.s\t3, r3, r3\n\tand\t248, r3, r3\n\tsub.s\t1, r0, r4\n\tshr\tr4, r3, r3\n\txor\tr3, r4, r3\n\tadd\tstack-[7], r0, r4\n\tadd\tr2, r4, r2\n\tld.1\tr2, r2\n\tand\tr2, r3, r2\n\tsstore\tr1, r2\n.BB0_45:\n\tadd\t1, r0, r1\n\tadd\tstack-[5], r0, r2\n\tshl.s\t1, r2, r2\n\tjump\t@.BB0_38\n.BB0_69:\n\tsub.s!\t@CPI0_15[0], r1, r2\n\tjump.gt\t@.BB0_73\n\tsub.s!\t@CPI0_19[0], r1, r2\n\tjump.eq\t@.BB0_85\n\tsub.s!\t@CPI0_20[0], r1, r2\n\tjump.eq\t@.BB0_92\n\tsub.s!\t@CPI0_21[0], r1, r1\n\tjump.ne\t@.BB0_2\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tsub.s\t4, r0, r1\n\tadd\tstack[@calldatasize], r1, r1\n\tadd\t@CPI0_2[0], r0, r2\n\tsub.s!\t32, r1, r3\n\tadd\t0, r0, r3\n\tadd.lt\tr2, r0, r3\n\tand\t@CPI0_2[0], r1, r1\n\tsub.s!\t0, r1, r4\n\tadd.le\t0, r0, r2\n\tsub.s!\t@CPI0_2[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tadd\t4, r0, r1\n\tptr.add\tstack[@ptr_calldata], r1, r1\n\tld\tr1, r1\n\tnear_call\tr0, @fun_getApproved, @DEFAULT_UNWIND\n\tand\t@CPI0_22[0], r1, r1\n\tld.1\t64, r2\n\tst.1\tr2, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI0_23[0], r1, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_77:\n\tsub.s!\t@CPI0_12[0], r1, r2\n\tjump.eq\t@.BB0_121\n\tsub.s!\t@CPI0_13[0], r1, r2\n\tjump.eq\t@.BB0_124\n\tsub.s!\t@CPI0_14[0], r1, r1\n\tjump.ne\t@.BB0_2\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tsub.s\t4, r0, r1\n\tadd\tstack[@calldatasize], r1, r1\n\tadd\t@CPI0_2[0], r0, r2\n\tsub.s!\t0, r1, r3\n\tadd\t0, r0, r3\n\tadd.lt\tr2, r0, r3\n\tand\t@CPI0_2[0], r1, r1\n\tsub.s!\t0, r1, r4\n\tadd.le\t0, r0, r2\n\tsub.s!\t@CPI0_2[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tadd\t1, r0, r4\n\tsload\tr4, r3\n\tand!\t1, r3, r5\n\tshr.s\t1, r3, r1\n\tand\t127, r1, r2\n\tadd\tr1, r0, r7\n\tadd.eq\tr2, r0, r7\n\tsub.s!\t31, r7, r2\n\tadd\t0, r0, r2\n\tadd.gt\t1, r0, r2\n\txor\tr3, r2, r2\n\tand!\t1, r2, r2\n\tjump.ne\t@.BB0_31\n\tld.1\t64, r1\n\tst.1.inc\tr1, r7, r2\n\tsub.s!\t0, r5, r5\n\tjump.ne\t@.BB0_136\n\tsub.s\t256, r0, r4\n\tand\tr3, r4, r3\n\tst.1\tr2, r3\n\tsub.s!\t0, r7, r2\n\tadd\t32, r0, r3\n\tadd.eq\t0, r0, r3\n\tjump\t@.BB0_134\n.BB0_73:\n\tsub.s!\t@CPI0_16[0], r1, r2\n\tjump.eq\t@.BB0_104\n\tsub.s!\t@CPI0_17[0], r1, r2\n\tjump.eq\t@.BB0_117\n\tsub.s!\t@CPI0_18[0], r1, r1\n\tjump.ne\t@.BB0_2\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tadd\tstack[@calldatasize], r0, r1\n\tnear_call\tr0, @abi_decode_addresst_addresst_uint256, @DEFAULT_UNWIND\n\tadd\tr1, r0, stack-[7]\n\tadd\tr2, r0, stack-[6]\n\tadd\tr3, r0, stack-[5]\n\tld.1\t64, r1\n\tadd\tr1, r0, stack-[4]\n\tnear_call\tr0, @finalize_allocation_7804, @DEFAULT_UNWIND\n\tadd\tstack-[4], r0, r4\n\tst.1\tr4, r0\n\tadd\tstack-[7], r0, r1\n\tadd\tstack-[6], r0, r2\n\tadd\tstack-[5], r0, r3\n\tnear_call\tr0, @fun_safeTransferFrom, @DEFAULT_UNWIND\n\tadd\tr0, r0, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_83:\n\tsub.s!\t@CPI0_8[0], r1, r2\n\tjump.eq\t@.BB0_164\n\tsub.s!\t@CPI0_9[0], r1, r1\n\tjump.ne\t@.BB0_2\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tsub.s\t4, r0, r1\n\tadd\tstack[@calldatasize], r1, r1\n\tadd\t@CPI0_2[0], r0, r2\n\tsub.s!\t64, r1, r3\n\tadd\t0, r0, r3\n\tadd.lt\tr2, r0, r3\n\tand\t@CPI0_2[0], r1, r1\n\tsub.s!\t0, r1, r4\n\tadd.le\t0, r0, r2\n\tsub.s!\t@CPI0_2[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tptr.add\tstack[@ptr_calldata], r0, r2\n\tptr.add.s\t4, r2, r1\n\tld\tr1, r1\n\tsub.s!\t@CPI0_22[0], r1, r3\n\tjump.gt\t@.BB0_2\n\tptr.add.s\t36, r2, r2\n\tld\tr2, r3\n\tsub.s!\t@CPI0_22[0], r3, r2\n\tjump.gt\t@.BB0_2\n\tst.1\t0, r1\n\tadd\t5, r0, r1\n\tst.1\t32, r1\n\tadd\t64, r0, r2\n\tadd\tr0, r0, r1\n\tadd\tr3, r0, stack-[7]\n\tnear_call\tr0, @__keccak256, @DEFAULT_UNWIND\n\tadd\tstack-[7], r0, r2\n\tnear_call\tr0, @mapping_index_access_mapping_address_uint256_of_address, @DEFAULT_UNWIND\n\tsload\tr1, r1\n\tand!\t255, r1, r1\n\tadd\t0, r0, r1\n\tadd.ne\t1, r0, r1\n\tld.1\t64, r2\n\tst.1\tr2, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI0_23[0], r1, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_139:\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tsub.s\t4, r0, r1\n\tadd\tstack[@calldatasize], r1, r1\n\tadd\t@CPI0_2[0], r0, r2\n\tsub.s!\t64, r1, r3\n\tadd\t0, r0, r3\n\tadd.lt\tr2, r0, r3\n\tand\t@CPI0_2[0], r1, r1\n\tsub.s!\t0, r1, r4\n\tadd.le\t0, r0, r2\n\tsub.s!\t@CPI0_2[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tptr.add\tstack[@ptr_calldata], r0, r1\n\tptr.add.s\t4, r1, r2\n\tld\tr2, r4\n\tsub.s!\t@CPI0_22[0], r4, r2\n\tjump.gt\t@.BB0_2\n\tptr.add.s\t36, r1, r1\n\tld\tr1, r5\n\tsub.s!\t0, r5, r1\n\tadd\t0, r0, r1\n\tadd.ne\t1, r0, r1\n\tsub!\tr5, r1, r1\n\tjump.ne\t@.BB0_2\n\tcontext.caller\tr2\n\tsub!\tr2, r4, r1\n\tjump.ne\t@.BB0_145\n\tld.1\t64, r1\n\tadd\t68, r1, r2\n\tadd\t@CPI0_33[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t25, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI0_28[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI0_0[0], r0, r2\n\tsub.s!\t@CPI0_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI0_34[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB0_85:\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tsub.s\t4, r0, r1\n\tadd\tstack[@calldatasize], r1, r1\n\tadd\t@CPI0_2[0], r0, r2\n\tsub.s!\t32, r1, r3\n\tadd\t0, r0, r3\n\tadd.lt\tr2, r0, r3\n\tand\t@CPI0_2[0], r1, r1\n\tsub.s!\t0, r1, r4\n\tadd.le\t0, r0, r2\n\tsub.s!\t@CPI0_2[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tadd\t4, r0, r1\n\tptr.add\tstack[@ptr_calldata], r1, r1\n\tld\tr1, r1\n\tand\t@CPI0_43[0], r1, r2\n\tsub!\tr2, r1, r2\n\tjump.ne\t@.BB0_2\n\tadd\t1, r0, r2\n\tsub.s!\t@CPI0_44[0], r1, r3\n\tjump.eq\t@.BB0_91\n\tsub.s!\t@CPI0_45[0], r1, r3\n\tjump.eq\t@.BB0_91\n\tsub.s!\t@CPI0_46[0], r1, r1\n\tadd\t0, r0, r2\n\tadd.eq\t1, r0, r2\n.BB0_91:\n\tand\t1, r2, r1\n\tld.1\t64, r2\n\tst.1\tr2, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI0_23[0], r1, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_92:\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tsub.s\t4, r0, r1\n\tadd\tstack[@calldatasize], r1, r1\n\tadd\t@CPI0_2[0], r0, r2\n\tsub.s!\t0, r1, r3\n\tadd\t0, r0, r3\n\tadd.lt\tr2, r0, r3\n\tand\t@CPI0_2[0], r1, r1\n\tsub.s!\t0, r1, r4\n\tadd.le\t0, r0, r2\n\tsub.s!\t@CPI0_2[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tsload\tr0, r3\n\tand!\t1, r3, r4\n\tshr.s\t1, r3, r1\n\tand\t127, r1, r2\n\tadd\tr1, r0, r7\n\tadd.eq\tr2, r0, r7\n\tsub.s!\t31, r7, r2\n\tadd\t0, r0, r2\n\tadd.gt\t1, r0, r2\n\txor\tr3, r2, r2\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_95\n.BB0_31:\n\tadd\t@CPI0_30[0], r0, r1\n\tst.1\t0, r1\n\tadd\t34, r0, r1\n\tst.1\t4, r1\n\tadd\t@CPI0_31[0], r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB0_121:\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tsub.s\t4, r0, r1\n\tadd\tstack[@calldatasize], r1, r1\n\tadd\t@CPI0_2[0], r0, r2\n\tsub.s!\t32, r1, r3\n\tadd\t0, r0, r3\n\tadd.lt\tr2, r0, r3\n\tand\t@CPI0_2[0], r1, r1\n\tsub.s!\t0, r1, r4\n\tadd.le\t0, r0, r2\n\tsub.s!\t@CPI0_2[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tadd\t4, r0, r1\n\tptr.add\tstack[@ptr_calldata], r1, r1\n\tld\tr1, r1\n\tnear_call\tr0, @fun_ownerOf, @DEFAULT_UNWIND\n\tand\t@CPI0_22[0], r1, r1\n\tld.1\t64, r2\n\tst.1\tr2, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI0_23[0], r1, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_124:\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tsub.s\t4, r0, r1\n\tadd\tstack[@calldatasize], r1, r1\n\tadd\t@CPI0_2[0], r0, r2\n\tsub.s!\t32, r1, r3\n\tadd\t0, r0, r3\n\tadd.lt\tr2, r0, r3\n\tand\t@CPI0_2[0], r1, r1\n\tsub.s!\t0, r1, r4\n\tadd.le\t0, r0, r2\n\tsub.s!\t@CPI0_2[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tadd\t4, r0, r1\n\tptr.add\tstack[@ptr_calldata], r1, r1\n\tld\tr1, r1\n\tsub.s!\t@CPI0_22[0], r1, r2\n\tjump.gt\t@.BB0_2\n\tsub.s!\t0, r1, r2\n\tjump.ne\t@.BB0_129\n\tld.1\t64, r1\n\tadd\t100, r1, r2\n\tadd\t@CPI0_36[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t68, r1, r2\n\tadd\t@CPI0_37[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t42, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI0_28[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI0_0[0], r0, r2\n\tsub.s!\t@CPI0_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI0_29[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB0_104:\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tsub.s\t4, r0, r1\n\tadd\tstack[@calldatasize], r1, r1\n\tadd\t@CPI0_2[0], r0, r2\n\tsub.s!\t64, r1, r3\n\tadd\t0, r0, r3\n\tadd.lt\tr2, r0, r3\n\tand\t@CPI0_2[0], r1, r1\n\tsub.s!\t0, r1, r4\n\tadd.le\t0, r0, r2\n\tsub.s!\t@CPI0_2[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tptr.add\tstack[@ptr_calldata], r0, r1\n\tptr.add.s\t4, r1, r2\n\tld\tr2, r2\n\tadd\tr2, r0, stack-[7]\n\tsub.s!\t@CPI0_22[0], r2, r2\n\tjump.gt\t@.BB0_2\n\tptr.add.s\t36, r1, r1\n\tld\tr1, r1\n\tadd\tr1, r0, stack-[6]\n\tst.1\t0, r1\n\tadd\t2, r0, r1\n\tst.1\t32, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI0_24[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_2\n\tld\tr1, r1\n\tsload\tr1, r1\n\tand!\t@CPI0_22[0], r1, r2\n\tjump.ne\t@.BB0_110\n\tld.1\t64, r1\n\tadd\t100, r1, r2\n\tadd\t@CPI0_40[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t68, r1, r2\n\tadd\t@CPI0_41[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t41, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI0_28[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI0_0[0], r0, r2\n\tsub.s!\t@CPI0_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI0_29[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB0_117:\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tadd\tstack[@calldatasize], r0, r1\n\tnear_call\tr0, @abi_decode_addresst_addresst_uint256, @DEFAULT_UNWIND\n\tadd\tr1, r0, stack-[7]\n\tadd\tr2, r0, stack-[6]\n\tadd\tr3, r0, r2\n\tadd\tr2, r0, stack-[5]\n\tcontext.caller\tr1\n\tnear_call\tr0, @fun_isApprovedOrOwner, @DEFAULT_UNWIND\n\tnear_call\tr0, @require_helper_stringliteral_c868, @DEFAULT_UNWIND\n\tadd\tstack-[7], r0, r1\n\tadd\tstack-[6], r0, r2\n\tadd\tstack-[5], r0, r3\n\tnear_call\tr0, @fun_transfer, @DEFAULT_UNWIND\n\tadd\tr0, r0, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_164:\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tsub.s\t4, r0, r1\n\tadd\tstack[@calldatasize], r1, r1\n\tadd\t@CPI0_2[0], r0, r2\n\tsub.s!\t32, r1, r3\n\tadd\t0, r0, r3\n\tadd.lt\tr2, r0, r3\n\tand\t@CPI0_2[0], r1, r1\n\tsub.s!\t0, r1, r4\n\tadd.le\t0, r0, r2\n\tsub.s!\t@CPI0_2[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tadd\t4, r0, r1\n\tptr.add\tstack[@ptr_calldata], r1, r1\n\tld\tr1, r1\n\tst.1\t0, r1\n\tadd\t2, r0, r1\n\tst.1\t32, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI0_24[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_2\n\tld.1\t64, r2\n\tld\tr1, r1\n\tsload\tr1, r1\n\tand!\t@CPI0_22[0], r1, r1\n\tjump.ne\t@.BB0_169\n\tadd\t100, r2, r1\n\tadd\t@CPI0_26[0], r0, r3\n\tst.1\tr1, r3\n\tadd\t68, r2, r1\n\tadd\t@CPI0_27[0], r0, r3\n\tst.1\tr1, r3\n\tadd\t36, r2, r1\n\tadd\t47, r0, r3\n\tst.1\tr1, r3\n\tadd\t@CPI0_28[0], r0, r1\n\tst.1\tr2, r1\n\tadd\t4, r2, r1\n\tadd\t32, r0, r3\n\tst.1\tr1, r3\n\tadd\t@CPI0_0[0], r0, r1\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI0_29[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB0_95:\n\tld.1\t64, r1\n\tst.1.inc\tr1, r7, r2\n\tsub.s!\t0, r4, r4\n\tjump.ne\t@.BB0_98\n\tsub.s\t256, r0, r4\n\tand\tr3, r4, r3\n\tst.1\tr2, r3\n\tsub.s!\t0, r7, r2\n\tadd\t32, r0, r3\n\tadd.eq\t0, r0, r3\n\tjump\t@.BB0_96\n.BB0_136:\n\tst.1\t0, r4\n\tsub.s!\t0, r7, r3\n\tadd\tr0, r0, r3\n\tjump.eq\t@.BB0_134\n\tadd\t@CPI0_35[0], r0, r4\n\tadd\tr0, r0, r3\n.BB0_138:\n\tadd\tr3, r2, r5\n\tsload\tr4, r6\n\tst.1\tr5, r6\n\tadd\t1, r4, r4\n\tadd\t32, r3, r3\n\tsub!\tr3, r7, r5\n\tjump.lt\t@.BB0_138\n.BB0_134:\n\tadd\t32, r3, r2\n\tadd\tr1, r0, stack-[7]\n\tnear_call\tr0, @finalize_allocation, @DEFAULT_UNWIND\n\tld.1\t64, r1\n\tadd\tr1, r0, stack-[6]\n\tadd\tstack-[7], r0, r2\n\tnear_call\tr0, @abi_encode_string, @DEFAULT_UNWIND\n\tadd\tstack-[6], r0, r4\n\tsub\tr1, r4, r1\n\tadd\t@CPI0_0[0], r0, r2\n\tsub.s!\t@CPI0_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tsub.s!\t@CPI0_0[0], r4, r3\n\tadd.lt\tr4, r0, r2\n\tshl.s\t64, r2, r2\n\tshl.s\t96, r1, r1\n\tor\tr1, r2, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_129:\n\tst.1\t0, r1\n\tadd\t3, r0, r1\n\tst.1\t32, r1\n\tadd\t64, r0, r2\n\tadd\tr0, r0, r1\n\tnear_call\tr0, @__keccak256, @DEFAULT_UNWIND\n\tsload\tr1, r1\n\tld.1\t64, r2\n\tst.1\tr2, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI0_23[0], r1, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_169:\n\tsub.s!\t@CPI0_25[0], r2, r1\n\tjump.gt\t@.BB0_5\n\tadd\t32, r2, r1\n\tst.1\t64, r1\n\tst.1\tr2, r0\n\tld.1\t64, r2\n\tsub.s!\t@CPI0_25[0], r2, r1\n\tjump.le\t@.BB0_170\n.BB0_5:\n\tadd\t@CPI0_30[0], r0, r1\n\tst.1\t0, r1\n\tadd\t65, r0, r1\n\tst.1\t4, r1\n\tadd\t@CPI0_31[0], r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB0_98:\n\tst.1\t0, r0\n\tsub.s!\t0, r7, r3\n\tadd\tr0, r0, r3\n\tjump.eq\t@.BB0_96\n\tadd\t@CPI0_42[0], r0, r4\n\tadd\tr0, r0, r3\n.BB0_100:\n\tadd\tr3, r2, r5\n\tsload\tr4, r6\n\tst.1\tr5, r6\n\tadd\t1, r4, r4\n\tadd\t32, r3, r3\n\tsub!\tr3, r7, r5\n\tjump.lt\t@.BB0_100\n.BB0_96:\n\tadd\t32, r3, r2\n\tadd\tr1, r0, stack-[7]\n\tnear_call\tr0, @finalize_allocation, @DEFAULT_UNWIND\n\tld.1\t64, r1\n\tadd\tr1, r0, stack-[6]\n\tadd\tstack-[7], r0, r2\n\tnear_call\tr0, @abi_encode_string, @DEFAULT_UNWIND\n\tadd\tstack-[6], r0, r4\n\tsub\tr1, r4, r1\n\tadd\t@CPI0_0[0], r0, r2\n\tsub.s!\t@CPI0_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tsub.s!\t@CPI0_0[0], r4, r3\n\tadd.lt\tr4, r0, r2\n\tshl.s\t64, r2, r2\n\tshl.s\t96, r1, r1\n\tor\tr1, r2, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_145:\n\tadd\tr2, r0, stack-[5]\n\tst.1\t0, r2\n\tadd\t5, r0, r1\n\tst.1\t32, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI0_24[0], r1, r1\n\tadd\t32784, r0, r2\n\tadd\tr4, r0, stack-[7]\n\tadd\tr5, r0, stack-[6]\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tadd\tstack-[7], r0, r3\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_2\n\tld\tr1, r1\n\tst.1\t0, r3\n\tst.1\t32, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI0_24[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tadd\tstack-[6], r0, r4\n\tadd\tstack-[7], r0, r6\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_2\n\tld\tr1, r1\n\tsload\tr1, r2\n\tsub.s\t256, r0, r3\n\tand\tr2, r3, r2\n\tor\tr2, r4, r2\n\tsstore\tr1, r2\n\tld.1\t64, r1\n\tst.1\tr1, r4\n\tadd\t@CPI0_0[0], r0, r2\n\tcontext.gas_left\tr3\n\tsub.s!\t@CPI0_0[0], r3, r4\n\tadd.ge\tr2, r0, r3\n\tsub.s!\t@CPI0_0[0], r1, r4\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tshl.s\t192, r3, r2\n\tor\tr2, r1, r1\n\tor\t@CPI0_3[0], r1, r1\n\tadd\t32781, r0, r2\n\tadd\t3, r0, r3\n\tadd\t@CPI0_32[0], r0, r4\n\tadd\tstack-[5], r0, r5\n\tnear_call\tr0, @__farcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r1\n\tjump.eq\t@.BB0_2\n\tadd\tr0, r0, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_110:\n\tadd\tstack-[7], r0, r1\n\tsub!\tr1, r2, r1\n\tjump.ne\t@.BB0_112\n\tld.1\t64, r1\n\tadd\t100, r1, r2\n\tadd\t@CPI0_38[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t68, r1, r2\n\tadd\t@CPI0_39[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t33, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI0_28[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI0_0[0], r0, r2\n\tsub.s!\t@CPI0_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI0_29[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB0_170:\n\tadd\t32, r2, r1\n\tst.1\t64, r1\n\tst.1\tr2, r0\n\tld.1\t64, r1\n\tadd\tr1, r0, stack-[7]\n\tnear_call\tr0, @abi_encode_string, @DEFAULT_UNWIND\n\tadd\tstack-[7], r0, r4\n\tsub\tr1, r4, r1\n\tadd\t@CPI0_0[0], r0, r2\n\tsub.s!\t@CPI0_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tsub.s!\t@CPI0_0[0], r4, r3\n\tadd.lt\tr4, r0, r2\n\tshl.s\t64, r2, r2\n\tshl.s\t96, r1, r1\n\tor\tr1, r2, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_112:\n\tadd\t1, r0, r1\n\tcontext.caller\tr4\n\tsub!\tr4, r2, r3\n\tjump.eq\t@.BB0_116\n\tadd\tr4, r0, stack-[5]\n\tst.1\t0, r2\n\tadd\t5, r0, r1\n\tst.1\t32, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI0_24[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_2\n\tld\tr1, r1\n\tadd\tstack-[5], r0, r2\n\tand\t@CPI0_22[0], r2, r2\n\tst.1\t0, r2\n\tst.1\t32, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI0_24[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_2\n\tld\tr1, r1\n\tsload\tr1, r1\n\tand\t255, r1, r1\n.BB0_116:\n\tnear_call\tr0, @require_helper_stringliteral_6d83, @DEFAULT_UNWIND\n\tadd\tstack-[7], r0, r1\n\tadd\tstack-[6], r0, r2\n\tnear_call\tr0, @fun_approve, @DEFAULT_UNWIND\n\tadd\tr0, r0, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_46:\n\tadd\tstack-[5], r0, r1\n\tsub.s!\t0, r1, r1\n\tadd\tr0, r0, r1\n\tjump.eq\t@.BB0_48\n\tadd\tstack-[3], r0, r1\n\tld.1\tr1, r1\n.BB0_48:\n\tadd\tstack-[5], r0, r4\n\tshl.s\t3, r4, r2\n\tsub.s\t1, r0, r3\n\tshr\tr3, r2, r2\n\txor\tr2, r3, r2\n\tand\tr1, r2, r2\n\tshl.s\t1, r4, r1\n.BB0_38:\n\tor\tr2, r1, r1\n\tsstore\tr0, r1\n\tadd\tstack-[1], r0, r1\n\tld.1\tr1, r1\n\tadd\tr1, r0, stack-[7]\n\tsub.s!\t@CPI0_1[0], r1, r1\n\tjump.gt\t@.BB0_5\n\tadd\t1, r0, r1\n\tadd\tr1, r0, stack-[3]\n\tsload\tr1, r1\n\tand!\t1, r1, r2\n\tshr.s\t1, r1, r2\n\tand\t127, r2, r3\n\tadd.eq\tr3, r0, r2\n\tadd\tr2, r0, stack-[5]\n\tsub.s!\t31, r2, r2\n\tadd\t0, r0, r2\n\tadd.gt\t1, r0, r2\n\txor\tr1, r2, r1\n\tand!\t1, r1, r1\n\tjump.ne\t@.BB0_31\n\tadd\tstack-[5], r0, r1\n\tsub.s!\t32, r1, r1\n\tjump.lt\t@.BB0_54\n\tadd\t1, r0, r1\n\tst.1\t0, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI0_3[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_2\n\tadd\tstack-[7], r0, r3\n\tadd\t31, r3, r2\n\tshr.s\t5, r2, r2\n\tsub.s!\t32, r3, r3\n\tadd.lt\t0, r0, r2\n\tld\tr1, r3\n\tadd\tstack-[5], r0, r1\n\tadd\t31, r1, r1\n\tshr.s\t5, r1, r1\n\tadd\tr3, r1, r1\n\tadd\tr3, r2, r2\n\tsub!\tr2, r1, r3\n\tjump.ge\t@.BB0_54\n.BB0_55:\n\tsstore\tr2, r0\n\tadd\t1, r2, r2\n\tsub!\tr2, r1, r3\n\tjump.lt\t@.BB0_55\n.BB0_54:\n\tadd\tstack-[7], r0, r1\n\tsub.s!\t31, r1, r1\n\tjump.le\t@.BB0_64\n\tadd\tstack-[3], r0, r1\n\tst.1\t0, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI0_3[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tadd\tstack-[4], r0, r2\n\tadd\tstack-[1], r0, r6\n\tjump.eq\t@.BB0_2\n\tadd\tstack-[7], r0, r3\n\tand!\tr3, r2, r3\n\tadd\t32, r0, r2\n\tld\tr1, r1\n\tjump.eq\t@.BB0_61\n\tadd\t32, r0, r2\n\tadd\tr0, r0, r4\n.BB0_60:\n\tadd\tr2, r6, r5\n\tld.1\tr5, r5\n\tsstore\tr1, r5\n\tadd\t32, r2, r2\n\tadd\t1, r1, r1\n\tadd\t32, r4, r4\n\tsub!\tr4, r3, r5\n\tjump.lt\t@.BB0_60\n.BB0_61:\n\tadd\tstack-[7], r0, r4\n\tsub!\tr3, r4, r3\n\tjump.ge\t@.BB0_63\n\tadd\tstack-[7], r0, r3\n\tshl.s\t3, r3, r3\n\tand\t248, r3, r3\n\tsub.s\t1, r0, r4\n\tshr\tr4, r3, r3\n\txor\tr3, r4, r3\n\tadd\tstack-[1], r0, r4\n\tadd\tr2, r4, r2\n\tld.1\tr2, r2\n\tand\tr2, r3, r2\n\tsstore\tr1, r2\n.BB0_63:\n\tadd\tstack-[7], r0, r1\n\tshl.s\t1, r1, r1\n\tadd\tstack-[3], r0, r2\n\tjump\t@.BB0_56\n.BB0_2:\n\tadd\tr0, r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB0_64:\n\tadd\tstack-[7], r0, r1\n\tsub.s!\t0, r1, r1\n\tadd\tr0, r0, r1\n\tjump.eq\t@.BB0_66\n\tadd\tstack-[6], r0, r1\n\tld.1\tr1, r1\n.BB0_66:\n\tadd\tstack-[7], r0, r4\n\tshl.s\t3, r4, r2\n\tsub.s\t1, r0, r3\n\tshr\tr3, r2, r2\n\txor\tr2, r3, r2\n\tand\tr1, r2, r1\n\tshl.s\t1, r4, r2\n.BB0_56:\n\tor\tr1, r2, r1\n\tadd\tstack-[3], r0, r2\n\tsstore\tr2, r1\n\tadd\t32, r0, r1\n\tst.2\t256, r1\n\tst.2\t288, r0\n\tadd\t@CPI0_4[0], r0, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.func_end0:\n\n__keccak256:\n.func_begin1:\n\tadd\t@CPI1_0[0], r0, r3\n\tsub.s!\t@CPI1_0[0], r1, r4\n\tadd.ge\tr3, r0, r1\n\tshl.s\t64, r1, r1\n\tsub.s!\t@CPI1_0[0], r2, r4\n\tadd.ge\tr3, r0, r2\n\tshl.s\t96, r2, r2\n\tor\tr2, r1, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI1_0[0], r2, r4\n\tadd.ge\tr3, r0, r2\n\tshl.s\t192, r2, r2\n\tor\tr2, r1, r1\n\tor\t@CPI1_1[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB1_2\n\tld\tr1, r1\n\tret\n.BB1_2:\n\tadd\tr0, r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.func_end1:\n\nabi_encode_string:\n.func_begin2:\n\tadd\t32, r0, r3\n\tst.1.inc\tr1, r3, r4\n\tld.1\tr2, r3\n\tst.1\tr4, r3\n\tadd\t64, r1, r1\n\tsub.s!\t0, r3, r4\n\tjump.eq\t@.BB2_3\n\tadd\tr0, r0, r4\n.BB2_2:\n\tadd\tr4, r1, r5\n\tadd\t32, r4, r4\n\tadd\tr4, r2, r6\n\tld.1\tr6, r6\n\tst.1\tr5, r6\n\tsub!\tr4, r3, r5\n\tjump.lt\t@.BB2_2\n.BB2_3:\n\tadd\tr3, r1, r2\n\tst.1\tr2, r0\n\tadd\t31, r3, r2\n\tsub.s\t32, r0, r3\n\tand\tr2, r3, r2\n\tadd\tr2, r1, r1\n\tret\n.func_end2:\n\nabi_decode_addresst_addresst_uint256:\n.func_begin3:\n\tsub.s\t4, r1, r1\n\tadd\t@CPI3_0[0], r0, r2\n\tsub.s!\t95, r1, r3\n\tadd\t0, r0, r3\n\tadd.gt\tr2, r0, r3\n\tand\t@CPI3_0[0], r1, r1\n\tsub.s!\t0, r1, r4\n\tadd.ge\t0, r0, r2\n\tsub.s!\t@CPI3_0[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.eq\t@.BB3_1\n\tptr.add\tstack[@ptr_calldata], r0, r3\n\tptr.add.s\t4, r3, r1\n\tld\tr1, r1\n\tsub.s!\t@CPI3_1[0], r1, r2\n\tjump.gt\t@.BB3_1\n\tptr.add.s\t36, r3, r2\n\tld\tr2, r2\n\tsub.s!\t@CPI3_1[0], r2, r4\n\tjump.gt\t@.BB3_1\n\tptr.add.s\t68, r3, r3\n\tld\tr3, r3\n\tret\n.BB3_1:\n\tadd\tr0, r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.func_end3:\n\nfinalize_allocation_7804:\n.func_begin4:\n\tsub.s!\t@CPI4_0[0], r1, r2\n\tjump.ge\t@.BB4_1\n\tadd\t32, r1, r1\n\tst.1\t64, r1\n\tret\n.BB4_1:\n\tadd\t@CPI4_1[0], r0, r1\n\tst.1\t0, r1\n\tadd\t65, r0, r1\n\tst.1\t4, r1\n\tadd\t@CPI4_2[0], r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.func_end4:\n\nfinalize_allocation:\n.func_begin5:\n\tadd\t31, r2, r2\n\tsub.s\t32, r0, r3\n\tand\tr2, r3, r2\n\tadd\tr2, r1, r1\n\tsub!\tr1, r2, r2\n\tadd\t0, r0, r2\n\tadd.lt\t1, r0, r2\n\tsub.s!\t@CPI5_0[0], r1, r3\n\tjump.gt\t@.BB5_2\n\tand!\t1, r2, r2\n\tjump.ne\t@.BB5_2\n\tst.1\t64, r1\n\tret\n.BB5_2:\n\tadd\t@CPI5_1[0], r0, r1\n\tst.1\t0, r1\n\tadd\t65, r0, r1\n\tst.1\t4, r1\n\tadd\t@CPI5_2[0], r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.func_end5:\n\nmapping_index_access_mapping_address_uint256_of_address:\n.func_begin6:\n\tand\t@CPI6_0[0], r2, r2\n\tst.1\t0, r2\n\tst.1\t32, r1\n\tadd\t@CPI6_1[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI6_1[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI6_2[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB6_1\n\tld\tr1, r1\n\tret\n.BB6_1:\n\tadd\tr0, r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.func_end6:\n\nfun_ownerOf:\n.func_begin7:\n\tst.1\t0, r1\n\tadd\t2, r0, r1\n\tst.1\t32, r1\n\tadd\t@CPI7_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI7_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI7_1[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB7_1\n\tld\tr1, r1\n\tsload\tr1, r1\n\tand!\t@CPI7_2[0], r1, r1\n\tjump.eq\t@.BB7_3\n\tret\n.BB7_1:\n\tadd\tr0, r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB7_3:\n\tld.1\t64, r1\n\tadd\t100, r1, r2\n\tadd\t@CPI7_3[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t68, r1, r2\n\tadd\t@CPI7_4[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t41, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI7_5[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI7_0[0], r0, r2\n\tsub.s!\t@CPI7_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI7_6[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.func_end7:\n\nrequire_helper_stringliteral_6d83:\n.func_begin8:\n\tsub.s!\t0, r1, r1\n\tjump.eq\t@.BB8_1\n\tret\n.BB8_1:\n\tld.1\t64, r1\n\tadd\t100, r1, r2\n\tadd\t@CPI8_0[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t68, r1, r2\n\tadd\t@CPI8_1[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t56, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI8_2[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI8_3[0], r0, r2\n\tsub.s!\t@CPI8_3[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI8_4[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.func_end8:\n\nfun_getApproved:\n.func_begin9:\n\tnop\tstack+=[1]\n\tadd\tr1, r0, stack-[1]\n\tst.1\t0, r1\n\tadd\t2, r0, r1\n\tst.1\t32, r1\n\tadd\t@CPI9_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI9_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI9_1[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB9_1\n\tld\tr1, r1\n\tsload\tr1, r1\n\tand!\t@CPI9_2[0], r1, r1\n\tjump.eq\t@.BB9_3\n\tadd\tstack-[1], r0, r1\n\tst.1\t0, r1\n\tadd\t4, r0, r1\n\tst.1\t32, r1\n\tadd\t@CPI9_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI9_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI9_1[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB9_1\n\tld\tr1, r1\n\tsload\tr1, r1\n\tand\t@CPI9_2[0], r1, r1\n\tret\n.BB9_1:\n\tadd\tr0, r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB9_3:\n\tld.1\t64, r1\n\tadd\t100, r1, r2\n\tadd\t@CPI9_3[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t68, r1, r2\n\tadd\t@CPI9_4[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t44, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI9_5[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI9_0[0], r0, r2\n\tsub.s!\t@CPI9_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI9_6[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.func_end9:\n\nrequire_helper_stringliteral_c868:\n.func_begin10:\n\tsub.s!\t0, r1, r1\n\tjump.eq\t@.BB10_1\n\tret\n.BB10_1:\n\tld.1\t64, r1\n\tadd\t100, r1, r2\n\tadd\t@CPI10_0[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t68, r1, r2\n\tadd\t@CPI10_1[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t49, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI10_2[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI10_3[0], r0, r2\n\tsub.s!\t@CPI10_3[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI10_4[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.func_end10:\n\nfun_safeTransferFrom:\n.func_begin11:\n\tnop\tstack+=[8]\n\tadd\tr4, r0, stack-[2]\n\tadd\tr2, r0, stack-[4]\n\tadd\tr1, r0, stack-[5]\n\tadd\tr3, r0, stack-[8]\n\tst.1\t0, r3\n\tadd\t2, r0, r1\n\tadd\tr1, r0, stack-[7]\n\tst.1\t32, r1\n\tadd\t@CPI11_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI11_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI11_1[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB11_1\n\tld\tr1, r1\n\tsload\tr1, r1\n\tand!\t@CPI11_2[0], r1, r1\n\tjump.eq\t@.BB11_3\n\tadd\tstack-[8], r0, r1\n\tst.1\t0, r1\n\tadd\tstack-[7], r0, r1\n\tst.1\t32, r1\n\tadd\t@CPI11_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI11_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI11_1[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB11_1\n\tld\tr1, r1\n\tsload\tr1, r1\n\tand!\t@CPI11_2[0], r1, r1\n\tjump.eq\t@.BB11_6\n\tcontext.caller\tr2\n\tand\t@CPI11_2[0], r2, r2\n\tadd\tr2, r0, stack-[6]\n\tsub!\tr2, r1, r2\n\tjump.eq\t@.BB11_17\n\tst.1\t0, r1\n\tadd\t5, r0, r1\n\tst.1\t32, r1\n\tadd\t@CPI11_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI11_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI11_1[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB11_1\n\tld\tr1, r1\n\tadd\tstack-[6], r0, r2\n\tst.1\t0, r2\n\tst.1\t32, r1\n\tadd\t@CPI11_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI11_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI11_1[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB11_1\n\tld\tr1, r1\n\tsload\tr1, r1\n\tand!\t255, r1, r1\n\tjump.ne\t@.BB11_17\n\tadd\tstack-[8], r0, r1\n\tst.1\t0, r1\n\tadd\tstack-[7], r0, r1\n\tst.1\t32, r1\n\tadd\t@CPI11_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI11_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI11_1[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB11_1\n\tld\tr1, r1\n\tsload\tr1, r1\n\tand!\t@CPI11_2[0], r1, r1\n\tjump.eq\t@.BB11_13\n\tadd\tstack-[8], r0, r1\n\tst.1\t0, r1\n\tadd\t4, r0, r1\n\tst.1\t32, r1\n\tadd\t@CPI11_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI11_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI11_1[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB11_1\n\tld\tr1, r1\n\tsload\tr1, r1\n\tand\t@CPI11_2[0], r1, r1\n\tadd\tstack-[6], r0, r2\n\tsub!\tr1, r2, r1\n\tjump.ne\t@.BB11_16\n.BB11_17:\n\tadd\tstack-[8], r0, r1\n\tst.1\t0, r1\n\tadd\tstack-[7], r0, r1\n\tst.1\t32, r1\n\tadd\t@CPI11_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI11_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI11_1[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB11_1\n\tld\tr1, r1\n\tsload\tr1, r1\n\tand!\t@CPI11_2[0], r1, r1\n\tadd\tr1, r0, stack-[6]\n\tjump.eq\t@.BB11_6\n\tadd\tstack-[5], r0, r1\n\tand\t@CPI11_2[0], r1, r1\n\tadd\tstack-[6], r0, r2\n\tsub!\tr2, r1, r1\n\tjump.ne\t@.BB11_20\n\tadd\tstack-[4], r0, r1\n\tand!\t@CPI11_2[0], r1, r1\n\tadd\tr1, r0, stack-[3]\n\tjump.eq\t@.BB11_22\n\tadd\tstack-[8], r0, r1\n\tst.1\t0, r1\n\tadd\t4, r0, r1\n\tst.1\t32, r1\n\tadd\t@CPI11_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI11_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI11_1[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB11_1\n\tld\tr1, r1\n\tsload\tr1, r2\n\tand\t@CPI11_11[0], r2, r2\n\tsstore\tr1, r2\n\tadd\tstack-[8], r0, r1\n\tst.1\t0, r1\n\tadd\tstack-[7], r0, r1\n\tst.1\t32, r1\n\tadd\t@CPI11_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI11_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI11_1[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB11_1\n\tld\tr1, r1\n\tsload\tr1, r1\n\tand!\t@CPI11_2[0], r1, r5\n\tjump.eq\t@.BB11_6\n\tadd\t@CPI11_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI11_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI11_12[0], r1, r1\n\tadd\t32781, r0, r2\n\tadd\t4, r0, r3\n\tadd\t@CPI11_13[0], r0, r4\n\tadd\tr0, r0, r6\n\tadd\tstack-[8], r0, r7\n\tnear_call\tr0, @__farcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r1\n\tjump.eq\t@.BB11_1\n\tadd\tstack-[6], r0, r1\n\tst.1\t0, r1\n\tadd\t3, r0, r1\n\tadd\tr1, r0, stack-[1]\n\tst.1\t32, r1\n\tadd\t@CPI11_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI11_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI11_1[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB11_1\n\tld\tr1, r1\n\tsload\tr1, r2\n\tsub.s!\t0, r2, r3\n\tjump.eq\t@.BB11_29\n\tsub.s\t1, r2, r2\n\tsstore\tr1, r2\n\tadd\tstack-[3], r0, r1\n\tst.1\t0, r1\n\tadd\tstack-[1], r0, r1\n\tst.1\t32, r1\n\tadd\t@CPI11_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI11_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI11_1[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB11_1\n\tld\tr1, r1\n\tsload\tr1, r2\n\tsub.s\t1, r0, r3\n\tsub!\tr2, r3, r3\n\tjump.eq\t@.BB11_29\n\tadd\t1, r2, r2\n\tsstore\tr1, r2\n\tadd\tstack-[8], r0, r1\n\tst.1\t0, r1\n\tadd\tstack-[7], r0, r1\n\tst.1\t32, r1\n\tadd\t@CPI11_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI11_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI11_1[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB11_1\n\tld\tr1, r1\n\tsload\tr1, r2\n\tand\t@CPI11_11[0], r2, r2\n\tadd\tstack-[3], r0, r6\n\tor\tr2, r6, r2\n\tsstore\tr1, r2\n\tadd\t@CPI11_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI11_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI11_12[0], r1, r1\n\tadd\t32781, r0, r2\n\tadd\t4, r0, r3\n\tadd\t@CPI11_14[0], r0, r4\n\tadd\tstack-[6], r0, r5\n\tadd\tstack-[8], r0, r7\n\tnear_call\tr0, @__farcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r1\n\tjump.eq\t@.BB11_1\n\tadd\tstack-[5], r0, r1\n\tadd\tstack-[4], r0, r2\n\tadd\tstack-[8], r0, r3\n\tadd\tstack-[2], r0, r4\n\tnear_call\tr0, @fun_checkOnERC721Received, @DEFAULT_UNWIND\n\tsub.s!\t0, r1, r1\n\tjump.eq\t@.BB11_35\n\tret\n.BB11_1:\n\tadd\tr0, r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB11_6:\n\tld.1\t64, r1\n\tadd\t100, r1, r2\n\tadd\t@CPI11_19[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t68, r1, r2\n\tadd\t@CPI11_20[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t41, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI11_5[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI11_0[0], r0, r2\n\tsub.s!\t@CPI11_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI11_6[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB11_29:\n\tadd\t@CPI11_15[0], r0, r1\n\tst.1\t0, r1\n\tadd\t17, r0, r1\n\tst.1\t4, r1\n\tadd\t@CPI11_16[0], r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB11_3:\n\tld.1\t64, r1\n\tadd\t100, r1, r2\n\tadd\t@CPI11_7[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t68, r1, r2\n\tadd\t@CPI11_21[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t44, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI11_5[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI11_0[0], r0, r2\n\tsub.s!\t@CPI11_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI11_6[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB11_20:\n\tld.1\t64, r1\n\tadd\t100, r1, r2\n\tadd\t@CPI11_9[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t68, r1, r2\n\tadd\t@CPI11_10[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t37, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI11_5[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI11_0[0], r0, r2\n\tsub.s!\t@CPI11_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI11_6[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB11_22:\n\tld.1\t64, r1\n\tadd\t100, r1, r2\n\tadd\t@CPI11_17[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t68, r1, r2\n\tadd\t@CPI11_18[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t36, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI11_5[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI11_0[0], r0, r2\n\tsub.s!\t@CPI11_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI11_6[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB11_35:\n\tld.1\t64, r2\n\tadd\tr2, r0, stack-[8]\n\tadd\t@CPI11_5[0], r0, r1\n\tst.1\tr2, r1\n\tadd\t4, r2, r1\n\tnear_call\tr0, @abi_encode_stringliteral_1e76, @DEFAULT_UNWIND\n\tadd\tstack-[8], r0, r4\n\tsub\tr1, r4, r1\n\tadd\t@CPI11_0[0], r0, r2\n\tsub.s!\t@CPI11_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tsub.s!\t@CPI11_0[0], r4, r3\n\tadd.lt\tr4, r0, r2\n\tshl.s\t64, r2, r2\n\tshl.s\t96, r1, r1\n\tor\tr1, r2, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB11_13:\n\tld.1\t64, r1\n\tadd\t100, r1, r2\n\tadd\t@CPI11_7[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t68, r1, r2\n\tadd\t@CPI11_8[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t44, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI11_5[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI11_0[0], r0, r2\n\tsub.s!\t@CPI11_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI11_6[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB11_16:\n\tld.1\t64, r1\n\tadd\t100, r1, r2\n\tadd\t@CPI11_3[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t68, r1, r2\n\tadd\t@CPI11_4[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t49, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI11_5[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI11_0[0], r0, r2\n\tsub.s!\t@CPI11_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI11_6[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.func_end11:\n\nabi_encode_stringliteral_1e76:\n.func_begin12:\n\tadd\t96, r1, r2\n\tadd\t@CPI12_0[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t64, r1, r2\n\tadd\t@CPI12_1[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t32, r1, r2\n\tadd\t50, r0, r3\n\tst.1\tr2, r3\n\tadd\t32, r0, r2\n\tst.1\tr1, r2\n\tadd\t128, r1, r1\n\tret\n.func_end12:\n\nfun_isApprovedOrOwner:\n.func_begin13:\n\tnop\tstack+=[3]\n\tadd\tr1, r0, stack-[1]\n\tadd\tr2, r0, stack-[3]\n\tst.1\t0, r2\n\tadd\t2, r0, r1\n\tadd\tr1, r0, stack-[2]\n\tst.1\t32, r1\n\tadd\t@CPI13_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI13_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI13_1[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB13_1\n\tld\tr1, r1\n\tsload\tr1, r1\n\tand!\t@CPI13_2[0], r1, r1\n\tjump.eq\t@.BB13_3\n\tadd\tstack-[3], r0, r1\n\tst.1\t0, r1\n\tadd\tstack-[2], r0, r1\n\tst.1\t32, r1\n\tadd\t@CPI13_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI13_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI13_1[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB13_1\n\tld\tr1, r1\n\tsload\tr1, r1\n\tand!\t@CPI13_2[0], r1, r2\n\tjump.eq\t@.BB13_6\n\tadd\t1, r0, r1\n\tadd\tstack-[1], r0, r3\n\tand\t@CPI13_2[0], r3, r3\n\tadd\tr3, r0, stack-[1]\n\tsub!\tr3, r2, r3\n\tjump.eq\t@.BB13_16\n\tst.1\t0, r2\n\tadd\t5, r0, r1\n\tst.1\t32, r1\n\tadd\t@CPI13_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI13_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI13_1[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB13_1\n\tld\tr1, r1\n\tadd\tstack-[1], r0, r2\n\tst.1\t0, r2\n\tst.1\t32, r1\n\tadd\t@CPI13_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI13_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI13_1[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB13_1\n\tld\tr1, r1\n\tsload\tr1, r1\n\tand!\t255, r1, r1\n\tjump.ne\t@.BB13_16\n\tadd\tstack-[3], r0, r1\n\tst.1\t0, r1\n\tadd\tstack-[2], r0, r1\n\tst.1\t32, r1\n\tadd\t@CPI13_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI13_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI13_1[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB13_1\n\tld\tr1, r1\n\tsload\tr1, r1\n\tand!\t@CPI13_2[0], r1, r1\n\tjump.eq\t@.BB13_13\n\tadd\tstack-[3], r0, r1\n\tst.1\t0, r1\n\tadd\t4, r0, r1\n\tst.1\t32, r1\n\tadd\t@CPI13_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI13_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI13_1[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB13_1\n\tld\tr1, r1\n\tsload\tr1, r1\n\tand\t@CPI13_2[0], r1, r1\n\tadd\tstack-[1], r0, r2\n\tsub!\tr1, r2, r1\n\tadd\t0, r0, r1\n\tadd.eq\t1, r0, r1\n.BB13_16:\n\tret\n.BB13_1:\n\tadd\tr0, r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB13_3:\n\tld.1\t64, r1\n\tadd\t100, r1, r2\n\tadd\t@CPI13_3[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t68, r1, r2\n\tadd\t@CPI13_9[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t44, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI13_5[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI13_0[0], r0, r2\n\tsub.s!\t@CPI13_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI13_6[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB13_6:\n\tld.1\t64, r1\n\tadd\t100, r1, r2\n\tadd\t@CPI13_7[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t68, r1, r2\n\tadd\t@CPI13_8[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t41, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI13_5[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI13_0[0], r0, r2\n\tsub.s!\t@CPI13_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI13_6[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB13_13:\n\tld.1\t64, r1\n\tadd\t100, r1, r2\n\tadd\t@CPI13_3[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t68, r1, r2\n\tadd\t@CPI13_4[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t44, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI13_5[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI13_0[0], r0, r2\n\tsub.s!\t@CPI13_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI13_6[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.func_end13:\n\nfun_transfer:\n.func_begin14:\n\tnop\tstack+=[5]\n\tadd\tr2, r0, stack-[1]\n\tadd\tr1, r0, stack-[2]\n\tadd\tr3, r0, stack-[5]\n\tst.1\t0, r3\n\tadd\t2, r0, r1\n\tadd\tr1, r0, stack-[3]\n\tst.1\t32, r1\n\tadd\t@CPI14_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI14_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI14_1[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB14_1\n\tld\tr1, r1\n\tsload\tr1, r1\n\tand!\t@CPI14_2[0], r1, r1\n\tadd\tr1, r0, stack-[4]\n\tjump.eq\t@.BB14_3\n\tadd\tstack-[2], r0, r1\n\tand\t@CPI14_2[0], r1, r1\n\tadd\tstack-[4], r0, r2\n\tsub!\tr2, r1, r1\n\tjump.ne\t@.BB14_5\n\tadd\tstack-[1], r0, r1\n\tand!\t@CPI14_2[0], r1, r1\n\tadd\tr1, r0, stack-[2]\n\tjump.eq\t@.BB14_7\n\tadd\tstack-[5], r0, r1\n\tst.1\t0, r1\n\tadd\t4, r0, r1\n\tst.1\t32, r1\n\tadd\t@CPI14_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI14_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI14_1[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB14_1\n\tld\tr1, r1\n\tsload\tr1, r2\n\tand\t@CPI14_7[0], r2, r2\n\tsstore\tr1, r2\n\tadd\tstack-[5], r0, r1\n\tst.1\t0, r1\n\tadd\tstack-[3], r0, r1\n\tst.1\t32, r1\n\tadd\t@CPI14_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI14_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI14_1[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB14_1\n\tld\tr1, r1\n\tsload\tr1, r1\n\tand!\t@CPI14_2[0], r1, r5\n\tjump.eq\t@.BB14_3\n\tadd\t@CPI14_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI14_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI14_8[0], r1, r1\n\tadd\t32781, r0, r2\n\tadd\t4, r0, r3\n\tadd\t@CPI14_9[0], r0, r4\n\tadd\tr0, r0, r6\n\tadd\tstack-[5], r0, r7\n\tnear_call\tr0, @__farcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r1\n\tjump.eq\t@.BB14_1\n\tadd\tstack-[4], r0, r1\n\tst.1\t0, r1\n\tadd\t3, r0, r1\n\tadd\tr1, r0, stack-[1]\n\tst.1\t32, r1\n\tadd\t@CPI14_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI14_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI14_1[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB14_1\n\tld\tr1, r1\n\tsload\tr1, r2\n\tsub.s!\t0, r2, r3\n\tjump.eq\t@.BB14_14\n\tsub.s\t1, r2, r2\n\tsstore\tr1, r2\n\tadd\tstack-[2], r0, r1\n\tst.1\t0, r1\n\tadd\tstack-[1], r0, r1\n\tst.1\t32, r1\n\tadd\t@CPI14_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI14_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI14_1[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB14_1\n\tld\tr1, r1\n\tsload\tr1, r2\n\tsub.s\t1, r0, r3\n\tsub!\tr2, r3, r3\n\tjump.eq\t@.BB14_14\n\tadd\t1, r2, r2\n\tsstore\tr1, r2\n\tadd\tstack-[5], r0, r1\n\tst.1\t0, r1\n\tadd\tstack-[3], r0, r1\n\tst.1\t32, r1\n\tadd\t@CPI14_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI14_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI14_1[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB14_1\n\tld\tr1, r1\n\tsload\tr1, r2\n\tand\t@CPI14_7[0], r2, r2\n\tadd\tstack-[2], r0, r6\n\tor\tr2, r6, r2\n\tsstore\tr1, r2\n\tadd\t@CPI14_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI14_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI14_8[0], r1, r1\n\tadd\t32781, r0, r2\n\tadd\t4, r0, r3\n\tadd\t@CPI14_10[0], r0, r4\n\tadd\tstack-[4], r0, r5\n\tadd\tstack-[5], r0, r7\n\tnear_call\tr0, @__farcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r1\n\tjump.eq\t@.BB14_1\n\tret\n.BB14_1:\n\tadd\tr0, r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB14_3:\n\tld.1\t64, r1\n\tadd\t100, r1, r2\n\tadd\t@CPI14_15[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t68, r1, r2\n\tadd\t@CPI14_16[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t41, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI14_5[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI14_0[0], r0, r2\n\tsub.s!\t@CPI14_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI14_6[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB14_14:\n\tadd\t@CPI14_11[0], r0, r1\n\tst.1\t0, r1\n\tadd\t17, r0, r1\n\tst.1\t4, r1\n\tadd\t@CPI14_12[0], r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB14_5:\n\tld.1\t64, r1\n\tadd\t100, r1, r2\n\tadd\t@CPI14_3[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t68, r1, r2\n\tadd\t@CPI14_4[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t37, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI14_5[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI14_0[0], r0, r2\n\tsub.s!\t@CPI14_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI14_6[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB14_7:\n\tld.1\t64, r1\n\tadd\t100, r1, r2\n\tadd\t@CPI14_13[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t68, r1, r2\n\tadd\t@CPI14_14[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t36, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI14_5[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI14_0[0], r0, r2\n\tsub.s!\t@CPI14_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI14_6[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.func_end14:\n\nfun_approve:\n.func_begin15:\n\tnop\tstack+=[2]\n\tadd\tr1, r0, stack-[1]\n\tadd\tr2, r0, stack-[2]\n\tst.1\t0, r2\n\tadd\t4, r0, r1\n\tst.1\t32, r1\n\tadd\t@CPI15_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI15_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI15_1[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB15_1\n\tadd\tstack-[1], r0, r2\n\tand\t@CPI15_2[0], r2, r3\n\tld\tr1, r1\n\tsload\tr1, r2\n\tand\t@CPI15_3[0], r2, r2\n\tadd\tr3, r0, stack-[1]\n\tor\tr2, r3, r2\n\tsstore\tr1, r2\n\tadd\tstack-[2], r0, r1\n\tst.1\t0, r1\n\tadd\t2, r0, r1\n\tst.1\t32, r1\n\tadd\t@CPI15_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI15_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI15_1[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB15_1\n\tadd\tstack-[2], r0, r7\n\tld\tr1, r1\n\tsload\tr1, r1\n\tand!\t@CPI15_2[0], r1, r5\n\tjump.eq\t@.BB15_4\n\tadd\t@CPI15_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI15_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI15_4[0], r1, r1\n\tadd\t32781, r0, r2\n\tadd\t4, r0, r3\n\tadd\t@CPI15_5[0], r0, r4\n\tadd\tstack-[1], r0, r6\n\tnear_call\tr0, @__farcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r1\n\tjump.eq\t@.BB15_1\n\tret\n.BB15_1:\n\tadd\tr0, r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB15_4:\n\tld.1\t64, r1\n\tadd\t100, r1, r2\n\tadd\t@CPI15_6[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t68, r1, r2\n\tadd\t@CPI15_7[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t41, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI15_8[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI15_0[0], r0, r2\n\tsub.s!\t@CPI15_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI15_9[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.func_end15:\n\nfun_checkOnERC721Received:\n.func_begin16:\n\tnop\tstack+=[6]\n\tadd\tr4, r0, stack-[4]\n\tadd\tr3, r0, stack-[2]\n\tadd\tr1, r0, stack-[1]\n\tadd\t@CPI16_0[0], r0, r1\n\tst.2\t0, r1\n\tadd\tr2, r0, stack-[3]\n\tst.2\t4, r2\n\tadd\t@CPI16_1[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI16_1[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI16_2[0], r1, r1\n\tadd\t32770, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tptr.add\tr1, r0, r3\n\tand!\t1, r2, r1\n\tjump.eq\t@.BB16_1\n\tadd\t1, r0, r1\n\tld\tr3, r2\n\tsub.s!\t0, r2, r2\n\tjump.eq\t@.BB16_3\n\tld.1\t64, r10\n\tadd\t@CPI16_3[0], r0, r1\n\tst.1\tr10, r1\n\tadd\t100, r10, r2\n\tcontext.gas_left\tr1\n\tadd\t128, r0, r3\n\tst.1\tr2, r3\n\tadd\t68, r10, r2\n\tadd\tstack-[2], r0, r3\n\tst.1\tr2, r3\n\tadd\tstack-[1], r0, r2\n\tand\t@CPI16_4[0], r2, r2\n\tadd\t36, r10, r3\n\tst.1\tr3, r2\n\tcontext.caller\tr2\n\tand\t@CPI16_4[0], r2, r2\n\tadd\t4, r10, r3\n\tst.1\tr3, r2\n\tadd\tstack-[4], r0, r8\n\tld.1\tr8, r3\n\tadd\t132, r10, r2\n\tst.1\tr2, r3\n\tadd\t164, r10, r4\n\tadd\tstack-[3], r0, r2\n\tand\t@CPI16_4[0], r2, r2\n\tsub.s!\t0, r3, r5\n\tjump.eq\t@.BB16_7\n\tadd\tr0, r0, r5\n.BB16_6:\n\tadd\tr5, r4, r6\n\tadd\t32, r5, r5\n\tadd\tr5, r8, r7\n\tld.1\tr7, r7\n\tst.1\tr6, r7\n\tsub!\tr5, r3, r6\n\tjump.lt\t@.BB16_6\n.BB16_7:\n\tadd\tr3, r4, r4\n\tst.1\tr4, r0\n\tsub.s!\t4, r2, r4\n\tjump.ne\t@.BB16_9\n\tcontext.sp\tr1\n\tsub.s\t6, r1, r1\n\tmul\t32, r1, r1, r0\n\tadd\tstack[@returndatasize], r0, r3\n\tsub.s!\t32, r3, r2\n\tadd\t32, r0, r4\n\tadd.lt\tr3, r0, r4\n\tadd\t0, r0, stack-[6]\n\tjump\t@.BB16_14\n.BB16_9:\n\tadd\t31, r3, r3\n\tsub.s\t32, r0, r4\n\tand\tr3, r4, r3\n\tadd\t@CPI16_1[0], r0, r4\n\tsub.s!\t@CPI16_1[0], r10, r5\n\tadd\tr4, r0, r5\n\tadd.lt\tr10, r0, r5\n\tshl.s\t64, r5, r5\n\tadd\t164, r3, r3\n\tsub.s!\t@CPI16_1[0], r3, r6\n\tadd.ge\tr4, r0, r3\n\tshl.s\t96, r3, r3\n\tor\tr3, r5, r3\n\tsub.s!\t@CPI16_1[0], r1, r5\n\tadd.ge\tr4, r0, r1\n\tshl.s\t192, r1, r1\n\tor\tr3, r1, r1\n\tadd\tr10, r0, stack-[4]\n\tnear_call\tr0, @__farcall, @DEFAULT_UNWIND\n\tadd\tstack-[4], r0, r10\n\tadd\tr1, r0, r3\n\tshr.s\t96, r3, r3\n\tand\t@CPI16_1[0], r3, r3\n\tsub.s!\t32, r3, r4\n\tadd\t32, r0, r4\n\tadd.lt\tr3, r0, r4\n\tand\t31, r4, r5\n\tshr.s!\t5, r4, r6\n\tjump.eq\t@.BB16_31\n\tadd\tr0, r0, r7\n.BB16_11:\n\tshl.s\t5, r7, r8\n\tadd\tr10, r8, r9\n\tptr.add\tr1, r8, r8\n\tld\tr8, r8\n\tst.1\tr9, r8\n\tadd\t1, r7, r7\n\tsub!\tr7, r6, r8\n\tjump.lt\t@.BB16_11\n.BB16_31:\n\tsub.s!\t0, r5, r7\n\tjump.eq\t@.BB16_13\n\tshl.s\t5, r6, r6\n\tptr.add\tr1, r6, r7\n\tadd\tr10, r6, r6\n\tshl.s\t3, r5, r5\n\tld.1\tr6, r8\n\tshl\tr8, r5, r8\n\tshr\tr8, r5, r8\n\tld\tr7, r7\n\tsub\t256, r5, r5\n\tshr\tr7, r5, r7\n\tshl\tr7, r5, r5\n\tor\tr5, r8, r5\n\tst.1\tr6, r5\n.BB16_13:\n\tadd\tr3, r0, stack[@returndatasize]\n\tptr.add\tr1, r0, stack[@ptr_return_data]\n\tcontext.sp\tr1\n\tsub.s\t5, r1, r1\n\tmul\t32, r1, r1, r0\n\tadd\t0, r0, stack-[5]\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB16_20\n.BB16_14:\n\tadd\t31, r4, r2\n\tand\t96, r2, r4\n\tadd\tr4, r10, r2\n\tsub!\tr2, r4, r4\n\tadd\t0, r0, r4\n\tadd.lt\t1, r0, r4\n\tsub.s!\t@CPI16_6[0], r2, r5\n\tjump.gt\t@.BB16_16\n\tand!\t1, r4, r4\n\tjump.ne\t@.BB16_16\n\tst.1\t64, r2\n\tsub.s!\t32, r3, r2\n\tjump.lt\t@.BB16_1\n\tld.1\tr10, r2\n\tand\t@CPI16_8[0], r2, r3\n\tsub!\tr3, r2, r3\n\tjump.ne\t@.BB16_1\n\tdiv.s\t32, r1, r1, r0\n\tadd\tr2, r0, stack[r1]\n\tsub.s!\t@CPI16_3[0], r2, r1\n\tadd\t0, r0, r1\n\tadd.eq\t1, r0, r1\n.BB16_3:\n\tret\n.BB16_1:\n\tadd\tr0, r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB16_20:\n\tadd\t96, r0, r1\n\tsub.s!\t0, r3, r2\n\tjump.ne\t@.BB16_21\n.BB16_27:\n\tld.1.inc\tr1, r1, r2\n\tsub.s!\t0, r1, r3\n\tjump.ne\t@.BB16_28\n\tld.1\t64, r2\n\tadd\tr2, r0, stack-[4]\n\tadd\t@CPI16_7[0], r0, r1\n\tst.1\tr2, r1\n\tadd\t4, r2, r1\n\tnear_call\tr0, @abi_encode_stringliteral_1e76, @DEFAULT_UNWIND\n\tadd\tstack-[4], r0, r4\n\tsub\tr1, r4, r1\n\tadd\t@CPI16_1[0], r0, r2\n\tsub.s!\t@CPI16_1[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tsub.s!\t@CPI16_1[0], r4, r3\n\tadd.lt\tr4, r0, r2\n\tshl.s\t64, r2, r2\n\tshl.s\t96, r1, r1\n\tor\tr1, r2, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB16_21:\n\tadd\t63, r3, r1\n\tand\t@CPI16_5[0], r1, r2\n\tld.1\t64, r1\n\tadd\tr1, r2, r2\n\tsub!\tr2, r1, r4\n\tadd\t0, r0, r4\n\tadd.lt\t1, r0, r4\n\tsub.s!\t@CPI16_6[0], r2, r5\n\tjump.gt\t@.BB16_16\n\tand!\t1, r4, r4\n\tjump.ne\t@.BB16_16\n\tst.1\t64, r2\n\tst.1.inc\tr1, r3, r2\n\tptr.add\tstack[@ptr_return_data], r0, r3\n\tadd\tstack[@returndatasize], r0, r5\n\tand\t31, r5, r4\n\tshr.s!\t5, r5, r5\n\tjump.eq\t@.BB16_30\n\tadd\tr0, r0, r6\n.BB16_25:\n\tshl.s\t5, r6, r7\n\tadd\tr2, r7, r8\n\tptr.add\tr3, r7, r7\n\tld\tr7, r7\n\tst.1\tr8, r7\n\tadd\t1, r6, r6\n\tsub!\tr6, r5, r7\n\tjump.lt\t@.BB16_25\n.BB16_30:\n\tsub.s!\t0, r4, r6\n\tjump.eq\t@.BB16_27\n\tshl.s\t5, r5, r5\n\tptr.add\tr3, r5, r3\n\tadd\tr2, r5, r2\n\tshl.s\t3, r4, r4\n\tld.1\tr2, r5\n\tshl\tr5, r4, r5\n\tshr\tr5, r4, r5\n\tld\tr3, r3\n\tsub\t256, r4, r4\n\tshr\tr3, r4, r3\n\tshl\tr3, r4, r3\n\tor\tr3, r5, r3\n\tst.1\tr2, r3\n\tjump\t@.BB16_27\n.BB16_16:\n\tadd\t@CPI16_9[0], r0, r1\n\tst.1\t0, r1\n\tadd\t65, r0, r1\n\tst.1\t4, r1\n\tadd\t@CPI16_10[0], r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB16_28:\n\tadd\t@CPI16_1[0], r0, r3\n\tsub.s!\t@CPI16_1[0], r2, r4\n\tadd.ge\tr3, r0, r2\n\tsub.s!\t@CPI16_1[0], r1, r4\n\tadd.ge\tr3, r0, r1\n\tshl.s\t96, r1, r1\n\tshl.s\t64, r2, r2\n\tor\tr1, r2, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.func_end16:\n\n__farcall:\n.func_begin17:\n.tmp0:\n\tfar_call\tr1, r2, @.BB17_2\n.tmp1:\n\tadd\t1, r0, r2\n\tret\n.BB17_2:\n.tmp2:\n\tadd\tr0, r0, r2\n\tret\n.func_end17:\n\n__staticcall:\n.func_begin18:\n.tmp3:\n\tfar_call.static\tr1, r2, @.BB18_2\n.tmp4:\n\tadd\t1, r0, r2\n\tret\n.BB18_2:\n.tmp5:\n\tadd\tr0, r0, r2\n\tret\n.func_end18:\n\n\t.data\n\t.p2align\t5\ncalldatasize:\n\t.cell 0\n\n\t.p2align\t5\nreturndatasize:\n\t.cell 0\n\n\t.p2align\t5\nptr_calldata:\n.cell\t0\n\n\t.p2align\t5\nptr_return_data:\n.cell\t0\n\n\t.note.GNU-stack\n\t.rodata\nCPI0_0:\nCPI1_0:\nCPI6_1:\nCPI7_0:\nCPI8_3:\nCPI9_0:\nCPI10_3:\nCPI11_0:\nCPI13_0:\nCPI14_0:\nCPI15_0:\nCPI16_1:\n\t.cell 4294967295\nCPI0_1:\nCPI5_0:\nCPI16_6:\n\t.cell 18446744073709551615\nCPI0_2:\nCPI3_0:\n\t.cell -57896044618658097711785492504343953926634992332820282019728792003956564819968\nCPI0_3:\n\t.cell 904625697166532776746648320380374280103671757735618107014721178055227736064\nCPI0_4:\n\t.cell 53919893334301279589334030174039261352344891250716429051063678533632\nCPI0_5:\n\t.cell 1666326813\nCPI0_6:\n\t.cell 2720838756\nCPI0_7:\n\t.cell 3363526364\nCPI0_8:\n\t.cell 3363526365\nCPI0_9:\n\t.cell 3917867461\nCPI0_10:\n\t.cell 2720838757\nCPI0_11:\n\t.cell 3096268766\nCPI0_12:\n\t.cell 1666326814\nCPI0_13:\n\t.cell 1889567281\nCPI0_14:\n\t.cell 2514000705\nCPI0_15:\n\t.cell 157198258\nCPI0_16:\n\t.cell 157198259\nCPI0_17:\n\t.cell 599290589\nCPI0_18:\n\t.cell 1115958798\nCPI0_19:\n\t.cell 33540519\nCPI0_20:\n\t.cell 117300739\nCPI0_21:\n\t.cell 135795452\nCPI0_22:\nCPI3_1:\nCPI6_0:\nCPI7_2:\nCPI9_2:\nCPI11_2:\nCPI13_2:\nCPI14_2:\nCPI15_2:\nCPI16_4:\n\t.cell 1461501637330902918203684832716283019655932542975\nCPI0_23:\n\t.cell 2535301200456458802993406410752\nCPI0_24:\nCPI6_2:\nCPI7_1:\nCPI9_1:\nCPI11_1:\nCPI13_1:\nCPI14_1:\nCPI15_1:\n\t.cell 904625697166532776746648320380374280103671760270919307471179981048634146816\nCPI0_25:\n\t.cell 18446744073709551583\nCPI0_26:\n\t.cell 49933695950216730624942714053792707997088209755498743882059886291794889015296\nCPI0_27:\n\t.cell 31354931916645406359169511643666282793569254592747070802456731253464641859183\nCPI0_28:\nCPI7_5:\nCPI8_2:\nCPI9_5:\nCPI10_2:\nCPI11_5:\nCPI13_5:\nCPI14_5:\nCPI15_8:\nCPI16_7:\n\t.cell 3963877391197344453575983046348115674221700746820753546331534351508065746944\nCPI0_29:\nCPI7_6:\nCPI8_4:\nCPI9_6:\nCPI10_4:\nCPI11_6:\nCPI13_6:\nCPI14_6:\nCPI15_9:\n\t.cell 10458117451882892562347801444352\nCPI0_30:\nCPI4_1:\nCPI5_1:\nCPI11_15:\nCPI14_11:\nCPI16_9:\n\t.cell 35408467139433450592217433187231851964531694900788300625387963629091585785856\nCPI0_31:\nCPI4_2:\nCPI5_2:\nCPI11_16:\nCPI14_12:\nCPI16_10:\n\t.cell 2852213850513516153367582212096\nCPI0_32:\n\t.cell 10488878412788366941768124514102328501031624832915735463117339209566108871729\nCPI0_33:\n\t.cell 31354931916645375393762213565866891172307618523953520621822726397682830540800\nCPI0_34:\n\t.cell 7922816251426433759354395033600\nCPI0_35:\n\t.cell -35707666377435648211887908874984608119992236509074197713628505308453184860938\nCPI0_36:\n\t.cell 51760008244253243555339834505836909231457839317500661056268430958216697872384\nCPI0_37:\n\t.cell 31354931916645375393785295258521846456833152225125956258475365221073749572197\nCPI0_38:\n\t.cell 51563664738492368274558954261681333965909290046418063673820955378523815542784\nCPI0_39:\n\t.cell 31354931916645375393762213565866890849608307089744918678309194418033790512741\nCPI0_40:\nCPI7_3:\nCPI11_19:\nCPI13_7:\nCPI14_15:\nCPI15_6:\n\t.cell 45878752361592109720253219027881625235748152392964139204686589122341653970944\nCPI0_41:\nCPI7_4:\nCPI11_20:\nCPI13_8:\nCPI14_16:\nCPI15_7:\n\t.cell 31354931916645375394106162266546829686708297189091808258728121542906766521204\nCPI0_42:\n\t.cell 18569430475105882587588266137607568536673111973893317399460219858819262702947\nCPI0_43:\nCPI16_8:\n\t.cell -26959946667150639794667015087019630673637144422540572481103610249216\nCPI0_44:\n\t.cell -57591534043048631271602713168962198724648561309353517944097662808962438791168\nCPI0_45:\n\t.cell 41326688264978518566617017154793646184809722027297161851759941631668658372608\nCPI0_46:\n\t.cell 904250603428552709895185118199468575982109441609966099573332780532423983104\nCPI1_1:\nCPI11_12:\nCPI14_8:\nCPI15_4:\n\t.cell 904625697166532776746648320380374280103671755200316906558262375061821325312\nCPI4_0:\n\t.cell 18446744073709551584\nCPI8_0:\n\t.cell 49933652571133945240646269341346773441232908056919510700755594923042897133568\nCPI8_1:\n\t.cell 31354931916645375393762213565866891172284950498046585739320112041512459595639\nCPI9_3:\nCPI11_7:\nCPI13_3:\n\t.cell 47696839850855449933311899423999770536344418734008620142241006894201008291840\nCPI9_4:\nCPI11_8:\nCPI13_4:\n\t.cell 31354931916645375393762213565866891195335176431693669511405079535027810624888\nCPI10_0:\nCPI11_3:\n\t.cell 54020282311764692190021849552246905499923117250381298616038159743020431310848\nCPI10_1:\nCPI11_4:\n\t.cell 31354931916645375394228278154242914900316590054129571697333944605927305125999\nCPI11_9:\nCPI14_3:\n\t.cell 50417742920509558439106150551775209266858149941038353264781520106005609840640\nCPI11_10:\nCPI14_4:\n\t.cell 31354931916645375394228278154242914900316605976059021079503402663591234728992\nCPI11_11:\nCPI14_7:\nCPI15_3:\n\t.cell -1461501637330902918203684832716283019655932542976\nCPI11_13:\nCPI14_9:\nCPI15_5:\n\t.cell -52305948261162578668367882225327028569797882979485679342215860919519743330011\nCPI11_14:\nCPI14_10:\n\t.cell -15402802100530019096323380498944738953123845089667699673314898783681816316945\nCPI11_17:\nCPI14_13:\n\t.cell 51742913093258732729005998692887265601192425265805909375210916622055285719040\nCPI11_18:\nCPI14_14:\n\t.cell 31354931916645375394228278154242914900316678601111040334909412358260906878052\nCPI11_21:\nCPI13_9:\n\t.cell 31354931916645375394105488451352269979389710144108907708483216252301827007864\nCPI12_0:\n\t.cell 44958151438609599421424650306347963631972141104775375727422033337783813144576\nCPI12_1:\n\t.cell 31354931916645375394228278154242914900316678601109191929828695483653754540645\nCPI16_0:\n\t.cell 10867283408178898638301172343726954674910073630256871736220740970449699113859\nCPI16_2:\n\t.cell 904625751086426111047927909714404454142933105326819602152923490636624035840\nCPI16_3:\n\t.cell 9518847204935358166548570266051330015907116135037852959641967396525866745856\nCPI16_5:\n\t.cell 8589934560\n","bytecode":{"object":"0004000000000002000700000000000200000000030100190000006003300270000002ab0430019700030000004103550002000000010355000002ab0030019d000100000000001f0000008001000039000000400010043f0000000101200190000000860000c13d0000000001000031000000040110008c000004e80000413d0000000201000367000000000101043b000000e001100270000002b00210009c0000018b0000a13d000002b10210009c000001b10000a13d000002b20210009c000001f90000213d000002b50210009c0000022c0000613d000002b60110009c000004e80000c13d0000000001000416000000000110004c000004e80000c13d0000000003000031000000040130008a000002ad02000041000000800410008c00000000040000190000000004024019000002ad01100197000000000510004c000000000200a019000002ad0110009c00000000010400190000000001026019000000000110004c000004e80000c13d00000002040003670000000401400370000000000101043b000002c10210009c000004e80000213d0000002402400370000000000202043b000002c10520009c000004e80000213d0000006405400370000000000605043b000002ac0560009c000004e80000213d0000002305600039000002ad07000041000000000835004b00000000080000190000000008078019000002ad03300197000002ad05500197000000000935004b0000000007008019000000000335013f000002ad0330009c00000000030800190000000003076019000000000330004c000004e80000c13d0000000403600039000000000334034f000000000303043b000002ac0430009c000003c10000213d0000003f04300039000000200500008a000000000554016f000000400400043d0000000005540019000000000745004b00000000070000190000000107004039000002ac0850009c000003c10000213d0000000107700190000003c10000c13d000000400050043f0000000005340436000000240760003900000000067300190000000008000031000000000686004b000004e80000213d0000001f0630018f000000020770036700000005083002720000006f0000613d0000000009000019000000050a900210000000000ba50019000000000aa7034f000000000a0a043b0000000000ab04350000000109900039000000000a89004b000000670000413d000000000960004c0000007e0000613d0000000508800210000000000787034f00000000088500190000000306600210000000000908043300000000096901cf000000000969022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000696019f00000000006804350000000003350019000000000003043500000044030000390000000203300367000000000303043b0aa6060a0000040f000000000100001900000aa70001042e0000000001000416000000000110004c000004e80000c13d00000000020000310000001f01200039000000200a00008a0000000004a1016f000000400100043d0000000003140019000000000443004b00000000040000190000000104004039000002ac0530009c000003c10000213d0000000104400190000003c10000c13d000000400030043f0000001f0320018f00000002040003670000000505200272000000a40000613d000000000600001900000005076002100000000008710019000000000774034f000000000707043b00000000007804350000000106600039000000000756004b0000009c0000413d000000000630004c000000b30000613d0000000505500210000000000454034f00000000055100190000000303300210000000000605043300000000063601cf000000000636022f000000000404043b0000010003300089000000000434022f00000000033401cf000000000363019f0000000000350435000002ad03000041000000400420008c00000000040000190000000004034019000002ad05200197000000000650004c000000000300a019000002ad0550009c000000000304c019000000000330004c000004e80000c13d0000000034010434000002ac0540009c000004e80000213d000000000221001900000000041400190000001f05400039000002ad06000041000000000725004b00000000070000190000000007068019000002ad05500197000002ad08200197000000000985004b0000000006008019000000000585013f000002ad0550009c00000000050700190000000005066019000000000550004c000004e80000c13d0000000005040433000002ac0650009c000003c10000213d0000003f065000390000000006a6016f000000400b00043d00000000066b00190000000007b6004b00000000070000190000000107004039000002ac0860009c000003c10000213d0000000107700190000003c10000c13d000000400060043f000000000c5b043600000020065000390000000007460019000000000727004b000004e80000213d000000000750004c000000f00000613d000000000700001900000020077000390000000008b70019000000000947001900000000090904330000000000980435000000000857004b000000e90000413d00000000046b001900000000000404350000000003030433000002ac0430009c000004e80000213d00000000011300190000001f03100039000002ad04000041000000000523004b00000000050000190000000005048019000002ad03300197000002ad06200197000000000763004b0000000004008019000000000363013f000002ad0330009c00000000030500190000000003046019000000000330004c000004e80000c13d0000000003010433000002ac0430009c000003c10000213d0000003f043000390000000004a4016f000000400700043d0000000004470019000000000574004b00000000050000190000000105004039000002ac0640009c000003c10000213d0000000105500190000003c10000c13d000000400040043f0000000004370436000600000004001d00000020043000390000000005140019000000000225004b000004e80000213d00030000000c001d00070000000b001d00040000000a001d000000000230004c000001270000613d000000000200001900000020022000390000000005720019000000000612001900000000060604330000000000650435000000000532004b000001200000413d0000000001470019000000000001043500000007010000290000000001010433000500000001001d000002ac0110009c000003c10000213d000100000007001d000000000100041a000000010210019000000001011002700000007f0310018f0000000001036019000200000001001d0000001f0110008c00000000010000190000000101002039000000010110018f000000000112004b000002a30000c13d0000000201000029000000200110008c0000015a0000413d0000000000000435000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002ae011001c700008010020000390aa60aa10000040f0000000102200190000004e80000613d00000005030000290000001f023000390000000502200270000000200330008c0000000002004019000000000301043b00000002010000290000001f01100039000000050110027000000000011300190000000002230019000000000312004b0000015a0000813d000000000002041b0000000102200039000000000312004b000001560000413d00000005010000290000001f0110008c000004740000a13d0000000000000435000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002ae011001c700008010020000390aa60aa10000040f000000010220019000000004020000290000000706000029000004e80000613d000000050300002900000000032301700000002002000039000000000101043b000001790000613d0000002002000039000000000400001900000000056200190000000005050433000000000051041b000000200220003900000001011000390000002004400039000000000534004b000001710000413d0000000504000029000000000343004b000001870000813d00000005030000290000000303300210000000f80330018f000000010400008a000000000334022f000000000343013f000000070400002900000000024200190000000002020433000000000232016f000000000021041b000000010100003900000005020000290000000102200210000004810000013d000002ba0210009c000001e00000213d000002be0210009c0000025e0000613d000002bf0210009c000002860000613d000002c00110009c000004e80000c13d0000000001000416000000000110004c000004e80000c13d000000040100008a0000000001100031000002ad02000041000000200310008c00000000030000190000000003024019000002ad01100197000000000410004c000000000200a019000002ad0110009c00000000010300190000000001026019000000000110004c000004e80000c13d00000004010000390000000201100367000000000101043b0aa605b60000040f000002c101100197000000400200043d0000000000120435000002ab01000041000002ab0320009c00000000010240190000004001100210000002c2011001c700000aa70001042e000002b70210009c000002a90000613d000002b80210009c000002c70000613d000002b90110009c000004e80000c13d0000000001000416000000000110004c000004e80000c13d000000040100008a0000000001100031000002ad02000041000000000310004c00000000030000190000000003024019000002ad01100197000000000410004c000000000200a019000002ad0110009c00000000010300190000000001026019000000000110004c000004e80000c13d0000000104000039000000000304041a000000010530019000000001013002700000007f0210018f000000000701001900000000070260190000001f0270008c00000000020000190000000102002039000000000223013f0000000102200190000002a30000c13d000000400100043d0000000002710436000000000550004c0000038b0000c13d000001000400008a000000000343016f0000000000320435000000000270004c00000020030000390000000003006019000003980000013d000002bb0210009c000002f40000613d000002bc0210009c000003340000613d000002bd0110009c000004e80000c13d0000000001000416000000000110004c000004e80000c13d00000000010000310aa6052b0000040f000700000001001d000600000002001d000500000003001d000000400100043d000400000001001d0aa605460000040f000000040400002900000000000404350000000701000029000000060200002900000005030000290aa6060a0000040f000000000100001900000aa70001042e000002b30210009c000003460000613d000002b40110009c000004e80000c13d0000000001000416000000000110004c000004e80000c13d000000040100008a0000000001100031000002ad02000041000000400310008c00000000030000190000000003024019000002ad01100197000000000410004c000000000200a019000002ad0110009c00000000010300190000000001026019000000000110004c000004e80000c13d00000002020003670000000401200370000000000101043b000002c10310009c000004e80000213d0000002402200370000000000302043b000002c10230009c000004e80000213d00000000001004350000000501000039000000200010043f00000040020000390000000001000019000700000003001d0aa604ff0000040f00000007020000290aa605640000040f000000000101041a000000ff011001900000000001000019000000010100c039000000400200043d0000000000120435000002ab01000041000002ab0320009c00000000010240190000004001100210000002c2011001c700000aa70001042e0000000001000416000000000110004c000004e80000c13d000000040100008a0000000001100031000002ad02000041000000400310008c00000000030000190000000003024019000002ad01100197000000000410004c000000000200a019000002ad0110009c00000000010300190000000001026019000000000110004c000004e80000c13d00000002010003670000000402100370000000000402043b000002c10240009c000004e80000213d0000002401100370000000000501043b000000000150004c0000000001000019000000010100c039000000000115004b000004e80000c13d0000000002000411000000000142004b000003e60000c13d000000400100043d0000004402100039000002cc030000410000000000320435000000240210003900000019030000390000000000320435000002c7020000410000000000210435000000040210003900000020030000390000000000320435000002ab02000041000002ab0310009c00000000010280190000004001100210000002cd011001c700000aa8000104300000000001000416000000000110004c000004e80000c13d000000040100008a0000000001100031000002ad02000041000000200310008c00000000030000190000000003024019000002ad01100197000000000410004c000000000200a019000002ad0110009c00000000010300190000000001026019000000000110004c000004e80000c13d00000004010000390000000201100367000000000101043b000002d602100197000000000212004b000004e80000c13d0000000102000039000002d70310009c0000027d0000613d000002d80310009c0000027d0000613d000002d90110009c00000000020000190000000102006039000000010120018f000000400200043d0000000000120435000002ab01000041000002ab0320009c00000000010240190000004001100210000002c2011001c700000aa70001042e0000000001000416000000000110004c000004e80000c13d000000040100008a0000000001100031000002ad02000041000000000310004c00000000030000190000000003024019000002ad01100197000000000410004c000000000200a019000002ad0110009c00000000010300190000000001026019000000000110004c000004e80000c13d000000000300041a000000010430019000000001013002700000007f0210018f000000000701001900000000070260190000001f0270008c00000000020000190000000102002039000000000223013f0000000102200190000003800000613d000002c90100004100000000001004350000002201000039000000040010043f000002ca0100004100000aa8000104300000000001000416000000000110004c000004e80000c13d000000040100008a0000000001100031000002ad02000041000000200310008c00000000030000190000000003024019000002ad01100197000000000410004c000000000200a019000002ad0110009c00000000010300190000000001026019000000000110004c000004e80000c13d00000004010000390000000201100367000000000101043b0aa605750000040f000002c101100197000000400200043d0000000000120435000002ab01000041000002ab0320009c00000000010240190000004001100210000002c2011001c700000aa70001042e0000000001000416000000000110004c000004e80000c13d000000040100008a0000000001100031000002ad02000041000000200310008c00000000030000190000000003024019000002ad01100197000000000410004c000000000200a019000002ad0110009c00000000010300190000000001026019000000000110004c000004e80000c13d00000004010000390000000201100367000000000101043b000002c10210009c000004e80000213d000000000210004c000003aa0000c13d000000400100043d0000006402100039000002cf0300004100000000003204350000004402100039000002d003000041000000000032043500000024021000390000002a030000390000000000320435000002c7020000410000000000210435000000040210003900000020030000390000000000320435000002ab02000041000002ab0310009c00000000010280190000004001100210000002c8011001c700000aa8000104300000000001000416000000000110004c000004e80000c13d000000040100008a0000000001100031000002ad02000041000000400310008c00000000030000190000000003024019000002ad01100197000000000410004c000000000200a019000002ad0110009c00000000010300190000000001026019000000000110004c000004e80000c13d00000002010003670000000402100370000000000202043b000700000002001d000002c10220009c000004e80000213d0000002401100370000000000101043b000600000001001d00000000001004350000000201000039000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f0000000102200190000004e80000613d000000000101043b000000000101041a000002c102100198000004210000c13d000000400100043d0000006402100039000002d30300004100000000003204350000004402100039000002d4030000410000000000320435000000240210003900000029030000390000000000320435000002c7020000410000000000210435000000040210003900000020030000390000000000320435000002ab02000041000002ab0310009c00000000010280190000004001100210000002c8011001c700000aa8000104300000000001000416000000000110004c000004e80000c13d00000000010000310aa6052b0000040f000700000001001d000600000002001d0000000002030019000500000002001d00000000010004110aa607c30000040f0aa605f20000040f0000000701000029000000060200002900000005030000290aa608780000040f000000000100001900000aa70001042e0000000001000416000000000110004c000004e80000c13d000000040100008a0000000001100031000002ad02000041000000200310008c00000000030000190000000003024019000002ad01100197000000000410004c000000000200a019000002ad0110009c00000000010300190000000001026019000000000110004c000004e80000c13d00000004010000390000000201100367000000000101043b00000000001004350000000201000039000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f0000000102200190000004e80000613d000000400200043d000000000101043b000000000101041a000002c101100198000003b90000c13d0000006401200039000002c50300004100000000003104350000004401200039000002c603000041000000000031043500000024012000390000002f030000390000000000310435000002c7010000410000000000120435000000040120003900000020030000390000000000310435000002ab01000041000002ab0320009c00000000010240190000004001100210000002c8011001c700000aa800010430000000400100043d0000000002710436000000000440004c000003c70000c13d000001000400008a000000000343016f0000000000320435000000000270004c00000020030000390000000003006019000003d40000013d0000000000400435000000000370004c0000000003000019000003980000613d000002ce0400004100000000030000190000000005230019000000000604041a000000000065043500000001044000390000002003300039000000000573004b000003910000413d0000002002300039000700000001001d0aa605510000040f000000400100043d000600000001001d00000007020000290aa605150000040f00000006040000290000000001410049000002ab02000041000002ab0310009c0000000001028019000002ab0340009c000000000204401900000040022002100000006001100210000000000121019f00000aa70001042e00000000001004350000000301000039000000200010043f000000400200003900000000010000190aa604ff0000040f000000000101041a000000400200043d0000000000120435000002ab01000041000002ab0320009c00000000010240190000004001100210000002c2011001c700000aa70001042e000002c40120009c000003c10000213d0000002001200039000000400010043f0000000000020435000000400200043d000002c40120009c000004390000a13d000002c90100004100000000001004350000004101000039000000040010043f000002ca0100004100000aa8000104300000000000000435000000000370004c0000000003000019000003d40000613d000002d50400004100000000030000190000000005230019000000000604041a000000000065043500000001044000390000002003300039000000000573004b000003cd0000413d0000002002300039000700000001001d0aa605510000040f000000400100043d000600000001001d00000007020000290aa605150000040f00000006040000290000000001410049000002ab02000041000002ab0310009c0000000001028019000002ab0340009c000000000204401900000040022002100000006001100210000000000121019f00000aa70001042e000500000002001d00000000002004350000000501000039000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c70000801002000039000700000004001d000600000005001d0aa60aa10000040f00000007030000290000000102200190000004e80000613d000000000101043b0000000000300435000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f000000060400002900000007060000290000000102200190000004e80000613d000000000101043b000000000201041a000001000300008a000000000232016f000000000242019f000000000021041b000000400100043d0000000000410435000002ab020000410000000003000414000002ab0430009c0000000003028019000002ab0410009c00000000010280190000004001100210000000c002300210000000000112019f000002ae011001c70000800d020000390000000303000039000002cb0400004100000005050000290aa60a9c0000040f0000000101200190000004e80000613d000000000100001900000aa70001042e0000000701000029000000000121004b0000044a0000c13d000000400100043d0000006402100039000002d10300004100000000003204350000004402100039000002d2030000410000000000320435000000240210003900000021030000390000000000320435000002c7020000410000000000210435000000040210003900000020030000390000000000320435000002ab02000041000002ab0310009c00000000010280190000004001100210000002c8011001c700000aa8000104300000002001200039000000400010043f0000000000020435000000400100043d000700000001001d0aa605150000040f00000007040000290000000001410049000002ab02000041000002ab0310009c0000000001028019000002ab0340009c000000000204401900000040022002100000006001100210000000000121019f00000aa70001042e00000001010000390000000004000411000000000324004b0000046e0000613d000500000004001d00000000002004350000000501000039000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f0000000102200190000004e80000613d000000000101043b0000000502000029000002c1022001970000000000200435000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f0000000102200190000004e80000613d000000000101043b000000000101041a000000ff0110018f0aa6059e0000040f000000070100002900000006020000290aa6095e0000040f000000000100001900000aa70001042e0000000501000029000000000110004c00000000010000190000047a0000613d0000000301000029000000000101043300000005040000290000000302400210000000010300008a000000000223022f000000000232013f000000000221016f0000000101400210000000000112019f000000000010041b00000001010000290000000001010433000700000001001d000002ac0110009c000003c10000213d0000000101000039000300000001001d000000000101041a000000010210019000000001021002700000007f0320018f0000000002036019000500000002001d0000001f0220008c00000000020000190000000102002039000000000121013f0000000101100190000002a30000c13d0000000501000029000000200110008c000004b60000413d00000001010000390000000000100435000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002ae011001c700008010020000390aa60aa10000040f0000000102200190000004e80000613d00000007030000290000001f023000390000000502200270000000200330008c0000000002004019000000000301043b00000005010000290000001f01100039000000050110027000000000011300190000000002230019000000000312004b000004b60000813d000000000002041b0000000102200039000000000312004b000004b20000413d00000007010000290000001f0110008c000004ea0000a13d00000003010000290000000000100435000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002ae011001c700008010020000390aa60aa10000040f000000010220019000000004020000290000000106000029000004e80000613d000000070300002900000000032301700000002002000039000000000101043b000004d60000613d0000002002000039000000000400001900000000056200190000000005050433000000000051041b000000200220003900000001011000390000002004400039000000000534004b000004ce0000413d0000000704000029000000000343004b000004e40000813d00000007030000290000000303300210000000f80330018f000000010400008a000000000334022f000000000343013f000000010400002900000000024200190000000002020433000000000232016f000000000021041b000000070100002900000001011002100000000302000029000004f70000013d000000000100001900000aa8000104300000000701000029000000000110004c0000000001000019000004f00000613d0000000601000029000000000101043300000007040000290000000302400210000000010300008a000000000223022f000000000232013f000000000121016f0000000102400210000000000121019f0000000302000029000000000012041b000000200100003900000100001004430000012000000443000002af0100004100000aa70001042e000002ab03000041000002ab0410009c00000000010380190000004001100210000002ab0420009c00000000020380190000006002200210000000000112019f0000000002000414000002ab0420009c0000000002038019000000c002200210000000000112019f000002da011001c700008010020000390aa60aa10000040f0000000102200190000005130000613d000000000101043b000000000001042d000000000100001900000aa80001043000000020030000390000000004310436000000000302043300000000003404350000004001100039000000000430004c000005240000613d000000000400001900000000051400190000002004400039000000000624001900000000060604330000000000650435000000000534004b0000051d0000413d000000000213001900000000000204350000001f02300039000000200300008a000000000232016f0000000001120019000000000001042d000000040110008a000002ad020000410000005f0310008c00000000030000190000000003022019000002ad01100197000000000410004c0000000002008019000002ad0110009c00000000010300190000000001026019000000000110004c000005440000613d00000002030003670000000401300370000000000101043b000002c10210009c000005440000213d0000002402300370000000000202043b000002c10420009c000005440000213d0000004403300370000000000303043b000000000001042d000000000100001900000aa800010430000002db0210009c0000054b0000813d0000002001100039000000400010043f000000000001042d000002c90100004100000000001004350000004101000039000000040010043f000002ca0100004100000aa8000104300000001f02200039000000200300008a000000000232016f0000000001120019000000000221004b00000000020000190000000102004039000002ac0310009c0000055e0000213d00000001022001900000055e0000c13d000000400010043f000000000001042d000002c90100004100000000001004350000004101000039000000040010043f000002ca0100004100000aa800010430000002c1022001970000000000200435000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f0000000102200190000005730000613d000000000101043b000000000001042d000000000100001900000aa80001043000000000001004350000000201000039000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f0000000102200190000005870000613d000000000101043b000000000101041a000002c101100198000005890000613d000000000001042d000000000100001900000aa800010430000000400100043d0000006402100039000002d30300004100000000003204350000004402100039000002d4030000410000000000320435000000240210003900000029030000390000000000320435000002c7020000410000000000210435000000040210003900000020030000390000000000320435000002ab02000041000002ab0310009c00000000010280190000004001100210000002c8011001c700000aa800010430000000000110004c000005a10000613d000000000001042d000000400100043d0000006402100039000002dc0300004100000000003204350000004402100039000002dd030000410000000000320435000000240210003900000038030000390000000000320435000002c7020000410000000000210435000000040210003900000020030000390000000000320435000002ab02000041000002ab0310009c00000000010280190000004001100210000002c8011001c700000aa8000104300001000000000002000100000001001d00000000001004350000000201000039000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f0000000102200190000005db0000613d000000000101043b000000000101041a000002c101100198000005dd0000613d000000010100002900000000001004350000000401000039000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f0000000102200190000005db0000613d000000000101043b000000000101041a000002c101100197000000000001042d000000000100001900000aa800010430000000400100043d0000006402100039000002de0300004100000000003204350000004402100039000002df03000041000000000032043500000024021000390000002c030000390000000000320435000002c7020000410000000000210435000000040210003900000020030000390000000000320435000002ab02000041000002ab0310009c00000000010280190000004001100210000002c8011001c700000aa800010430000000000110004c000005f50000613d000000000001042d000000400100043d0000006402100039000002e00300004100000000003204350000004402100039000002e1030000410000000000320435000000240210003900000031030000390000000000320435000002c7020000410000000000210435000000040210003900000020030000390000000000320435000002ab02000041000002ab0310009c00000000010280190000004001100210000002c8011001c700000aa8000104300008000000000002000200000004001d000400000002001d000500000001001d000800000003001d00000000003004350000000201000039000700000001001d000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f00000001022001900000071f0000613d000000000101043b000000000101041a000002c1011001980000073c0000613d000000080100002900000000001004350000000701000029000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f00000001022001900000071f0000613d000000000101043b000000000101041a000002c101100198000007210000613d0000000002000411000002c102200197000600000002001d000000000212004b0000067d0000613d00000000001004350000000501000039000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f00000001022001900000071f0000613d000000000101043b00000006020000290000000000200435000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f00000001022001900000071f0000613d000000000101043b000000000101041a000000ff011001900000067d0000c13d000000080100002900000000001004350000000701000029000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f00000001022001900000071f0000613d000000000101043b000000000101041a000002c1011001980000078c0000613d000000080100002900000000001004350000000401000039000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f00000001022001900000071f0000613d000000000101043b000000000101041a000002c1011001970000000602000029000000000121004b000007a10000c13d000000080100002900000000001004350000000701000029000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f00000001022001900000071f0000613d000000000101043b000000000101041a000002c101100198000600000001001d000007210000613d0000000501000029000002c1011001970000000602000029000000000112004b000007510000c13d0000000401000029000002c101100198000300000001001d000007660000613d000000080100002900000000001004350000000401000039000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f00000001022001900000071f0000613d000000000101043b000000000201041a000002e402200197000000000021041b000000080100002900000000001004350000000701000029000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f00000001022001900000071f0000613d000000000101043b000000000101041a000002c105100198000007210000613d000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002da011001c70000800d020000390000000403000039000002e504000041000000000600001900000008070000290aa60a9c0000040f00000001012001900000071f0000613d000000060100002900000000001004350000000301000039000100000001001d000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f00000001022001900000071f0000613d000000000101043b000000000201041a000000000320004c000007360000613d000000010220008a000000000021041b000000030100002900000000001004350000000101000029000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f00000001022001900000071f0000613d000000000101043b000000000201041a000000010300008a000000000332004b000007360000613d0000000102200039000000000021041b000000080100002900000000001004350000000701000029000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f00000001022001900000071f0000613d000000000101043b000000000201041a000002e4022001970000000306000029000000000262019f000000000021041b000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002da011001c70000800d020000390000000403000039000002e604000041000000060500002900000008070000290aa60a9c0000040f00000001012001900000071f0000613d00000005010000290000000402000029000000080300002900000002040000290aa609ae0000040f000000000110004c0000077b0000613d000000000001042d000000000100001900000aa800010430000000400100043d0000006402100039000002d30300004100000000003204350000004402100039000002d4030000410000000000320435000000240210003900000029030000390000000000320435000002c7020000410000000000210435000000040210003900000020030000390000000000320435000002ab02000041000002ab0310009c00000000010280190000004001100210000002c8011001c700000aa800010430000002c90100004100000000001004350000001101000039000000040010043f000002ca0100004100000aa800010430000000400100043d0000006402100039000002de0300004100000000003204350000004402100039000002e903000041000000000032043500000024021000390000002c030000390000000000320435000002c7020000410000000000210435000000040210003900000020030000390000000000320435000002ab02000041000002ab0310009c00000000010280190000004001100210000002c8011001c700000aa800010430000000400100043d0000006402100039000002e20300004100000000003204350000004402100039000002e3030000410000000000320435000000240210003900000025030000390000000000320435000002c7020000410000000000210435000000040210003900000020030000390000000000320435000002ab02000041000002ab0310009c00000000010280190000004001100210000002c8011001c700000aa800010430000000400100043d0000006402100039000002e70300004100000000003204350000004402100039000002e8030000410000000000320435000000240210003900000024030000390000000000320435000002c7020000410000000000210435000000040210003900000020030000390000000000320435000002ab02000041000002ab0310009c00000000010280190000004001100210000002c8011001c700000aa800010430000000400200043d000800000002001d000002c701000041000000000012043500000004012000390aa607b60000040f00000008040000290000000001410049000002ab02000041000002ab0310009c0000000001028019000002ab0340009c000000000204401900000040022002100000006001100210000000000121019f00000aa800010430000000400100043d0000006402100039000002de0300004100000000003204350000004402100039000002df03000041000000000032043500000024021000390000002c030000390000000000320435000002c7020000410000000000210435000000040210003900000020030000390000000000320435000002ab02000041000002ab0310009c00000000010280190000004001100210000002c8011001c700000aa800010430000000400100043d0000006402100039000002e00300004100000000003204350000004402100039000002e1030000410000000000320435000000240210003900000031030000390000000000320435000002c7020000410000000000210435000000040210003900000020030000390000000000320435000002ab02000041000002ab0310009c00000000010280190000004001100210000002c8011001c700000aa8000104300000006002100039000002ea0300004100000000003204350000004002100039000002eb030000410000000000320435000000200210003900000032030000390000000000320435000000200200003900000000002104350000008001100039000000000001042d0003000000000002000100000001001d000300000002001d00000000002004350000000201000039000200000001001d000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f0000000102200190000008370000613d000000000101043b000000000101041a000002c101100198000008390000613d000000030100002900000000001004350000000201000029000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f0000000102200190000008370000613d000000000101043b000000000101041a000002c1021001980000084e0000613d00000001010000390000000103000029000002c103300197000100000003001d000000000323004b000008360000613d00000000002004350000000501000039000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f0000000102200190000008370000613d000000000101043b00000001020000290000000000200435000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f0000000102200190000008370000613d000000000101043b000000000101041a000000ff01100190000008360000c13d000000030100002900000000001004350000000201000029000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f0000000102200190000008370000613d000000000101043b000000000101041a000002c101100198000008630000613d000000030100002900000000001004350000000401000039000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f0000000102200190000008370000613d000000000101043b000000000101041a000002c1011001970000000102000029000000000121004b00000000010000190000000101006039000000000001042d000000000100001900000aa800010430000000400100043d0000006402100039000002de0300004100000000003204350000004402100039000002e903000041000000000032043500000024021000390000002c030000390000000000320435000002c7020000410000000000210435000000040210003900000020030000390000000000320435000002ab02000041000002ab0310009c00000000010280190000004001100210000002c8011001c700000aa800010430000000400100043d0000006402100039000002d30300004100000000003204350000004402100039000002d4030000410000000000320435000000240210003900000029030000390000000000320435000002c7020000410000000000210435000000040210003900000020030000390000000000320435000002ab02000041000002ab0310009c00000000010280190000004001100210000002c8011001c700000aa800010430000000400100043d0000006402100039000002de0300004100000000003204350000004402100039000002df03000041000000000032043500000024021000390000002c030000390000000000320435000002c7020000410000000000210435000000040210003900000020030000390000000000320435000002ab02000041000002ab0310009c00000000010280190000004001100210000002c8011001c700000aa8000104300005000000000002000100000002001d000200000001001d000500000003001d00000000003004350000000201000039000300000001001d000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f0000000102200190000009170000613d000000000101043b000000000101041a000002c101100198000400000001001d000009190000613d0000000201000029000002c1011001970000000402000029000000000112004b000009340000c13d0000000101000029000002c101100198000200000001001d000009490000613d000000050100002900000000001004350000000401000039000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f0000000102200190000009170000613d000000000101043b000000000201041a000002e402200197000000000021041b000000050100002900000000001004350000000301000029000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f0000000102200190000009170000613d000000000101043b000000000101041a000002c105100198000009190000613d000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002da011001c70000800d020000390000000403000039000002e504000041000000000600001900000005070000290aa60a9c0000040f0000000101200190000009170000613d000000040100002900000000001004350000000301000039000100000001001d000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f0000000102200190000009170000613d000000000101043b000000000201041a000000000320004c0000092e0000613d000000010220008a000000000021041b000000020100002900000000001004350000000101000029000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f0000000102200190000009170000613d000000000101043b000000000201041a000000010300008a000000000332004b0000092e0000613d0000000102200039000000000021041b000000050100002900000000001004350000000301000029000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f0000000102200190000009170000613d000000000101043b000000000201041a000002e4022001970000000206000029000000000262019f000000000021041b000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002da011001c70000800d020000390000000403000039000002e604000041000000040500002900000005070000290aa60a9c0000040f0000000101200190000009170000613d000000000001042d000000000100001900000aa800010430000000400100043d0000006402100039000002d30300004100000000003204350000004402100039000002d4030000410000000000320435000000240210003900000029030000390000000000320435000002c7020000410000000000210435000000040210003900000020030000390000000000320435000002ab02000041000002ab0310009c00000000010280190000004001100210000002c8011001c700000aa800010430000002c90100004100000000001004350000001101000039000000040010043f000002ca0100004100000aa800010430000000400100043d0000006402100039000002e20300004100000000003204350000004402100039000002e3030000410000000000320435000000240210003900000025030000390000000000320435000002c7020000410000000000210435000000040210003900000020030000390000000000320435000002ab02000041000002ab0310009c00000000010280190000004001100210000002c8011001c700000aa800010430000000400100043d0000006402100039000002e70300004100000000003204350000004402100039000002e8030000410000000000320435000000240210003900000024030000390000000000320435000002c7020000410000000000210435000000040210003900000020030000390000000000320435000002ab02000041000002ab0310009c00000000010280190000004001100210000002c8011001c700000aa8000104300002000000000002000100000001001d000200000002001d00000000002004350000000401000039000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f0000000102200190000009970000613d0000000102000029000002c103200197000000000101043b000000000201041a000002e402200197000100000003001d000000000232019f000000000021041b000000020100002900000000001004350000000201000039000000200010043f000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002c3011001c700008010020000390aa60aa10000040f0000000102200190000009970000613d0000000207000029000000000101043b000000000101041a000002c105100198000009990000613d000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002da011001c70000800d020000390000000403000039000002e50400004100000001060000290aa60a9c0000040f0000000101200190000009970000613d000000000001042d000000000100001900000aa800010430000000400100043d0000006402100039000002d30300004100000000003204350000004402100039000002d4030000410000000000320435000000240210003900000029030000390000000000320435000002c7020000410000000000210435000000040210003900000020030000390000000000320435000002ab02000041000002ab0310009c00000000010280190000004001100210000002c8011001c700000aa8000104300006000000000002000400000004001d000200000003001d000100000001001d000002ec010000410000000000100439000300000002001d0000000400200443000002ab010000410000000002000414000002ab0320009c0000000001024019000000c001100210000002ed011001c700008002020000390aa60aa10000040f000000000301034f000000010120019000000a490000613d0000000101000039000000000203043b000000000220004c00000a480000613d000000400a00043d000002ee0100004100000000001a04350000006402a000390000000001000414000000800300003900000000003204350000004402a00039000000020300002900000000003204350000000102000029000002c1022001970000002403a0003900000000002304350000000002000411000002c1022001970000000403a000390000000000230435000000040800002900000000030804330000008402a000390000000000320435000000a404a000390000000302000029000002c102200197000000000530004c000009e80000613d000000000500001900000000064500190000002005500039000000000785001900000000070704330000000000760435000000000635004b000009e10000413d00000000044300190000000000040435000000040420008c000009f50000c13d0000000001000415000000060110008a00000020011000c90000000103000031000000200230008c00000020040000390000000004034019000600000000001d00000a320000013d0000001f03300039000000200400008a000000000343016f000002ab04000041000002ab05a0009c000000000504001900000000050a40190000004005500210000000a403300039000002ab0630009c00000000030480190000006003300210000000000353019f000002ab0510009c0000000001048019000000c001100210000000000113019f00040000000a001d0aa60a9c0000040f000000040a00002900000000030100190000006003300270000002ab03300197000000200430008c000000200400003900000000040340190000001f0540018f000000050640027200000a1b0000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b00000a130000413d000000000750004c00000a2a0000613d0000000506600210000000000761034f00000000066a00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f00030000000103550000000001000415000000050110008a00000020011000c9000500000000001d000000010220019000000a4b0000613d0000001f02400039000000600420018f0000000002a40019000000000442004b00000000040000190000000104004039000002ac0520009c00000a8d0000213d000000010440019000000a8d0000c13d000000400020043f000000200230008c00000a490000413d00000000020a0433000002d603200197000000000323004b00000a490000c13d000000200110011a000000000102001f000002ee0120009c00000000010000190000000101006039000000000001042d000000000100001900000aa8000104300000006001000039000000000230004c00000a620000c13d0000000021010434000000000310004c00000a930000c13d000000400200043d000400000002001d000002c701000041000000000012043500000004012000390aa607b60000040f00000004040000290000000001410049000002ab02000041000002ab0310009c0000000001028019000002ab0340009c000000000204401900000040022002100000006001100210000000000121019f00000aa8000104300000003f01300039000002ef02100197000000400100043d0000000002210019000000000412004b00000000040000190000000104004039000002ac0520009c00000a8d0000213d000000010440019000000a8d0000c13d000000400020043f0000000002310436000000030300036700000001050000310000001f0450018f000000050550027200000a7d0000613d000000000600001900000005076002100000000008720019000000000773034f000000000707043b00000000007804350000000106600039000000000756004b00000a750000413d000000000640004c00000a4e0000613d0000000505500210000000000353034f00000000025200190000000304400210000000000502043300000000054501cf000000000545022f000000000303043b0000010004400089000000000343022f00000000034301cf000000000353019f000000000032043500000a4e0000013d000002c90100004100000000001004350000004101000039000000040010043f000002ca0100004100000aa800010430000002ab03000041000002ab0420009c0000000002038019000002ab0410009c000000000103801900000060011002100000004002200210000000000121019f00000aa80001043000000a9f002104210000000102000039000000000001042d0000000002000019000000000001042d00000aa4002104230000000102000039000000000001042d0000000002000019000000000001042d00000aa60000043200000aa70001042e00000aa80001043000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff000000000000000000000000000000000000000000000000ffffffffffffffff800000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000200000000000000000000000000000000200000000000000000000000000000040000001000000000000000000000000000000000000000000000000000000000000000000000000006352211d00000000000000000000000000000000000000000000000000000000a22cb46400000000000000000000000000000000000000000000000000000000c87b56dc00000000000000000000000000000000000000000000000000000000c87b56dd00000000000000000000000000000000000000000000000000000000e985e9c500000000000000000000000000000000000000000000000000000000a22cb46500000000000000000000000000000000000000000000000000000000b88d4fde000000000000000000000000000000000000000000000000000000006352211e0000000000000000000000000000000000000000000000000000000070a082310000000000000000000000000000000000000000000000000000000095d89b4100000000000000000000000000000000000000000000000000000000095ea7b200000000000000000000000000000000000000000000000000000000095ea7b30000000000000000000000000000000000000000000000000000000023b872dd0000000000000000000000000000000000000000000000000000000042842e0e0000000000000000000000000000000000000000000000000000000001ffc9a70000000000000000000000000000000000000000000000000000000006fdde0300000000000000000000000000000000000000000000000000000000081812fc000000000000000000000000ffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000200000000000000000000000000200000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffdf6e6578697374656e7420746f6b656e00000000000000000000000000000000004552433732314d657461646174613a2055524920717565727920666f72206e6f08c379a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000840000000000000000000000004e487b7100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002400000000000000000000000017307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c314552433732313a20617070726f766520746f2063616c6c6572000000000000000000000000000000000000000000000000000064000000000000000000000000b10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6726f2061646472657373000000000000000000000000000000000000000000004552433732313a2062616c616e636520717565727920666f7220746865207a6572000000000000000000000000000000000000000000000000000000000000004552433732313a20617070726f76616c20746f2063757272656e74206f776e65656e7420746f6b656e00000000000000000000000000000000000000000000004552433732313a206f776e657220717565727920666f72206e6f6e6578697374290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563ffffffff0000000000000000000000000000000000000000000000000000000080ac58cd000000000000000000000000000000000000000000000000000000005b5e139f0000000000000000000000000000000000000000000000000000000001ffc9a7000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffe06e6572206e6f7220617070726f76656420666f7220616c6c00000000000000004552433732313a20617070726f76652063616c6c6572206973206e6f74206f77697374656e7420746f6b656e00000000000000000000000000000000000000004552433732313a20617070726f76656420717565727920666f72206e6f6e6578776e6572206e6f7220617070726f7665640000000000000000000000000000004552433732313a207472616e736665722063616c6c6572206973206e6f74206f6f776e65720000000000000000000000000000000000000000000000000000004552433732313a207472616e736665722066726f6d20696e636f727265637420ffffffffffffffffffffffff00000000000000000000000000000000000000008c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef72657373000000000000000000000000000000000000000000000000000000004552433732313a207472616e7366657220746f20746865207a65726f206164644552433732313a206f70657261746f7220717565727920666f72206e6f6e657863656976657220696d706c656d656e74657200000000000000000000000000004552433732313a207472616e7366657220746f206e6f6e2045524337323152651806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b830200000200000000000000000000000000000024000000000000000000000000150b7a020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001ffffffe033dae5398c21bf07288f60369cb8f9fe4288fbf119aef8a44b5dd643a9bf0b3a"},"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"}},"irOptimized":"/// @use-src 29:\"@openzeppelin/contracts/token/ERC721/ERC721.sol\", 30:\"@openzeppelin/contracts/token/ERC721/IERC721.sol\", 33:\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\", 35:\"@openzeppelin/contracts/utils/Context.sol\", 38:\"@openzeppelin/contracts/utils/introspection/ERC165.sol\", 39:\"@openzeppelin/contracts/utils/introspection/IERC165.sol\"\nobject \"ERC721_7529\" {\n code {\n {\n /// @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\"\n mstore(64, memoryguard(0x80))\n if callvalue() { revert(0, 0) }\n let programSize := datasize(\"ERC721_7529\")\n let argSize := sub(codesize(), programSize)\n let memoryDataOffset := allocate_memory(argSize)\n codecopy(memoryDataOffset, programSize, argSize)\n let _1 := add(memoryDataOffset, argSize)\n if slt(sub(_1, memoryDataOffset), 64)\n {\n revert(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\"\n let offset := mload(memoryDataOffset)\n let _2 := sub(shl(64, 1), 1)\n if gt(offset, _2)\n {\n revert(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\"\n let value0 := abi_decode_string_fromMemory(add(memoryDataOffset, offset), _1)\n let _3 := 32\n let offset_1 := mload(add(memoryDataOffset, _3))\n if gt(offset_1, _2)\n {\n revert(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\"\n let value1 := abi_decode_string_fromMemory(add(memoryDataOffset, offset_1), _1)\n let newLen := mload(value0)\n if gt(newLen, _2)\n {\n mstore(/** @src -1:-1:-1 */ 0, /** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(/** @src -1:-1:-1 */ 0, /** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ 0x24)\n }\n /// @src -1:-1:-1\n let _4 := 0\n /// @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\"\n let _5 := sload(/** @src -1:-1:-1 */ _4)\n /// @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\"\n let length := /** @src -1:-1:-1 */ _4\n /// @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\"\n let _6 := 1\n length := shr(_6, _5)\n let outOfPlaceEncoding := and(_5, _6)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, _3))\n {\n mstore(/** @src -1:-1:-1 */ _4, /** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(/** @src -1:-1:-1 */ _4, /** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ 0x24)\n }\n let _7 := 31\n if gt(length, _7)\n {\n mstore(/** @src -1:-1:-1 */ _4, _4)\n /// @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\"\n let data := keccak256(/** @src -1:-1:-1 */ _4, /** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ _3)\n let deleteStart := add(data, shr(5, add(newLen, _7)))\n if lt(newLen, _3) { deleteStart := data }\n let _8 := add(data, shr(5, add(length, _7)))\n let start := deleteStart\n for { } lt(start, _8) { start := add(start, _6) }\n {\n sstore(start, /** @src -1:-1:-1 */ _4)\n }\n }\n /// @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\"\n let srcOffset := /** @src -1:-1:-1 */ _4\n /// @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\"\n srcOffset := _3\n switch gt(newLen, _7)\n case 1 {\n let loopEnd := and(newLen, not(31))\n mstore(/** @src -1:-1:-1 */ _4, _4)\n /// @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\"\n let dstPtr := keccak256(/** @src -1:-1:-1 */ _4, /** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ _3)\n let i := /** @src -1:-1:-1 */ _4\n /// @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\"\n for { } lt(i, loopEnd) { i := add(i, _3) }\n {\n sstore(dstPtr, mload(add(value0, srcOffset)))\n dstPtr := add(dstPtr, _6)\n srcOffset := add(srcOffset, _3)\n }\n if lt(loopEnd, newLen)\n {\n let lastValue := mload(add(value0, srcOffset))\n sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), not(0)))))\n }\n sstore(/** @src -1:-1:-1 */ _4, /** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ add(shl(_6, newLen), _6))\n }\n default {\n let value := /** @src -1:-1:-1 */ _4\n /// @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\"\n if newLen\n {\n value := mload(add(value0, srcOffset))\n }\n sstore(/** @src -1:-1:-1 */ _4, /** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ or(and(value, not(shr(shl(3, newLen), not(0)))), shl(_6, newLen)))\n }\n let newLen_1 := mload(value1)\n if gt(newLen_1, _2)\n {\n mstore(/** @src -1:-1:-1 */ _4, /** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(/** @src -1:-1:-1 */ _4, /** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ 0x24)\n }\n let _9 := sload(_6)\n let length_1 := /** @src -1:-1:-1 */ _4\n /// @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\"\n length_1 := shr(_6, _9)\n let outOfPlaceEncoding_1 := and(_9, _6)\n if iszero(outOfPlaceEncoding_1)\n {\n length_1 := and(length_1, 0x7f)\n }\n if eq(outOfPlaceEncoding_1, lt(length_1, _3))\n {\n mstore(/** @src -1:-1:-1 */ _4, /** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(/** @src -1:-1:-1 */ _4, /** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ 0x24)\n }\n if gt(length_1, _7)\n {\n mstore(/** @src -1:-1:-1 */ _4, /** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ _6)\n let data_1 := keccak256(/** @src -1:-1:-1 */ _4, /** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ _3)\n let deleteStart_1 := add(data_1, shr(5, add(newLen_1, _7)))\n if lt(newLen_1, _3) { deleteStart_1 := data_1 }\n let _10 := add(data_1, shr(5, add(length_1, _7)))\n let start_1 := deleteStart_1\n for { } lt(start_1, _10) { start_1 := add(start_1, _6) }\n {\n sstore(start_1, /** @src -1:-1:-1 */ _4)\n }\n }\n /// @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\"\n let srcOffset_1 := /** @src -1:-1:-1 */ _4\n /// @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\"\n srcOffset_1 := _3\n switch gt(newLen_1, _7)\n case 1 {\n let loopEnd_1 := and(newLen_1, not(31))\n mstore(/** @src -1:-1:-1 */ _4, /** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ _6)\n let dstPtr_1 := keccak256(/** @src -1:-1:-1 */ _4, /** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ _3)\n let i_1 := /** @src -1:-1:-1 */ _4\n /// @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\"\n for { } lt(i_1, loopEnd_1) { i_1 := add(i_1, _3) }\n {\n sstore(dstPtr_1, mload(add(value1, srcOffset_1)))\n dstPtr_1 := add(dstPtr_1, _6)\n srcOffset_1 := add(srcOffset_1, _3)\n }\n if lt(loopEnd_1, newLen_1)\n {\n let lastValue_1 := mload(add(value1, srcOffset_1))\n sstore(dstPtr_1, and(lastValue_1, not(shr(and(shl(3, newLen_1), 248), not(0)))))\n }\n sstore(_6, add(shl(_6, newLen_1), _6))\n }\n default {\n let value_1 := /** @src -1:-1:-1 */ _4\n /// @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\"\n if newLen_1\n {\n value_1 := mload(add(value1, srcOffset_1))\n }\n sstore(_6, or(and(value_1, not(shr(shl(3, newLen_1), not(0)))), shl(_6, newLen_1)))\n }\n let _11 := mload(64)\n let _12 := datasize(\"ERC721_7529_deployed\")\n codecopy(_11, dataoffset(\"ERC721_7529_deployed\"), _12)\n return(_11, _12)\n }\n function allocate_memory(size) -> memPtr\n {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n if or(gt(newFreePtr, sub(shl(64, 1), 1)), lt(newFreePtr, memPtr))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n mstore(64, newFreePtr)\n }\n function abi_decode_string_fromMemory(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let _1 := mload(offset)\n if gt(_1, sub(shl(64, 1), 1))\n {\n mstore(/** @src -1:-1:-1 */ 0, /** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(/** @src -1:-1:-1 */ 0, /** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ 0x24)\n }\n let _2 := 0x20\n let array_1 := allocate_memory(add(and(add(_1, 0x1f), not(31)), _2))\n mstore(array_1, _1)\n if gt(add(add(offset, _1), _2), end)\n {\n revert(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\"\n let i := /** @src -1:-1:-1 */ 0\n /// @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\"\n for { } lt(i, _1) { i := add(i, _2) }\n {\n mstore(add(add(array_1, i), _2), mload(add(add(offset, i), _2)))\n }\n mstore(add(add(array_1, _1), _2), /** @src -1:-1:-1 */ 0)\n /// @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\"\n array := array_1\n }\n }\n /// @use-src 29:\"@openzeppelin/contracts/token/ERC721/ERC721.sol\", 34:\"@openzeppelin/contracts/utils/Address.sol\", 35:\"@openzeppelin/contracts/utils/Context.sol\", 37:\"@openzeppelin/contracts/utils/Strings.sol\", 38:\"@openzeppelin/contracts/utils/introspection/ERC165.sol\"\n object \"ERC721_7529_deployed\" {\n code {\n {\n /// @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\"\n mstore(64, 128)\n if iszero(lt(calldatasize(), 4))\n {\n switch shr(224, calldataload(0))\n case 0x01ffc9a7 {\n external_fun_supportsInterface()\n }\n case 0x06fdde03 { external_fun_name() }\n case 0x081812fc { external_fun_getApproved() }\n case 0x095ea7b3 { external_fun_approve() }\n case 0x23b872dd { external_fun_transferFrom() }\n case 0x42842e0e {\n external_fun_safeTransferFrom_7025()\n }\n case 0x6352211e { external_fun_ownerOf() }\n case 0x70a08231 { external_fun_balanceOf() }\n case 0x95d89b41 { external_fun_symbol() }\n case 0xa22cb465 {\n external_fun_setApprovalForAll()\n }\n case 0xb88d4fde {\n external_fun_safeTransferFrom()\n }\n case 0xc87b56dd { external_fun_tokenURI() }\n case 0xe985e9c5 {\n external_fun_isApprovedForAll()\n }\n }\n revert(0, 0)\n }\n function validator_revert_bytes4(value)\n {\n if iszero(eq(value, and(value, shl(224, 0xffffffff)))) { revert(0, 0) }\n }\n function abi_encode_bool(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function external_fun_supportsInterface()\n {\n if callvalue() { revert(0, 0) }\n if slt(add(calldatasize(), not(3)), 32)\n {\n revert(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\"\n let value := calldataload(4)\n validator_revert_bytes4(value)\n /// @src 29:1707:1747 \"interfaceId == type(IERC721).interfaceId\"\n let _1 := /** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ and(/** @src 29:1707:1747 \"interfaceId == type(IERC721).interfaceId\" */ value, /** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ shl(224, 0xffffffff))\n /// @src 29:1707:1811 \"interfaceId == type(IERC721).interfaceId ||...\"\n let expr := /** @src 29:1707:1747 \"interfaceId == type(IERC721).interfaceId\" */ eq(_1, /** @src 29:1722:1747 \"type(IERC721).interfaceId\" */ shl(224, 0x80ac58cd))\n /// @src 29:1707:1811 \"interfaceId == type(IERC721).interfaceId ||...\"\n if iszero(expr)\n {\n expr := /** @src 29:1763:1811 \"interfaceId == type(IERC721Metadata).interfaceId\" */ eq(_1, /** @src 29:1778:1811 \"type(IERC721Metadata).interfaceId\" */ shl(224, 0x5b5e139f))\n }\n /// @src 29:1707:1863 \"interfaceId == type(IERC721).interfaceId ||...\"\n let expr_1 := expr\n if iszero(expr)\n {\n expr_1 := /** @src 38:937:977 \"interfaceId == type(IERC165).interfaceId\" */ eq(_1, /** @src 38:952:977 \"type(IERC165).interfaceId\" */ shl(224, 0x01ffc9a7))\n }\n /// @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\"\n let memPos := mload(64)\n mstore(memPos, iszero(iszero(expr_1)))\n return(memPos, 32)\n }\n function array_storeLengthForEncoding_string(pos, length) -> updated_pos\n {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n function copy_memory_to_memory_with_cleanup(src, dst, length)\n {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n function abi_encode_string_to_string(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), add(pos, 0x20), length)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_string(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_string_to_string(value0, add(headStart, 32))\n }\n function external_fun_name()\n {\n if callvalue() { revert(0, 0) }\n let _1 := 0\n if slt(add(calldatasize(), not(3)), _1) { revert(_1, _1) }\n let memPtr := mload(64)\n let ret := _1\n let slotValue := sload(_1)\n let length := _1\n let _2 := 1\n length := shr(_2, slotValue)\n let outOfPlaceEncoding := and(slotValue, _2)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n let _3 := 32\n if eq(outOfPlaceEncoding, lt(length, _3))\n {\n mstore(_1, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(_1, 0x24)\n }\n let pos := array_storeLengthForEncoding_string(memPtr, length)\n switch outOfPlaceEncoding\n case 0 {\n mstore(pos, and(slotValue, not(255)))\n ret := add(pos, shl(5, iszero(iszero(length))))\n }\n case 1 {\n let dataPos := array_dataslot_string_storage()\n let i := _1\n for { } lt(i, length) { i := add(i, _3) }\n {\n mstore(add(pos, i), sload(dataPos))\n dataPos := add(dataPos, _2)\n }\n ret := add(pos, i)\n }\n finalize_allocation(memPtr, sub(ret, memPtr))\n let memPos := mload(64)\n return(memPos, sub(abi_encode_string(memPos, memPtr), memPos))\n }\n function external_fun_getApproved()\n {\n if callvalue() { revert(0, 0) }\n if slt(add(calldatasize(), not(3)), 32)\n {\n revert(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\"\n let ret := fun_getApproved(calldataload(4))\n let memPos := mload(64)\n mstore(memPos, and(ret, sub(shl(160, 1), 1)))\n return(memPos, 32)\n }\n function abi_decode_address_5349() -> value\n {\n value := calldataload(4)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_address() -> value\n {\n value := calldataload(36)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function external_fun_approve()\n {\n if callvalue() { revert(0, 0) }\n if slt(add(calldatasize(), not(3)), 64)\n {\n revert(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\"\n let value0 := abi_decode_address_5349()\n let value1 := calldataload(36)\n /// @src 29:3634:3657 \"ERC721.ownerOf(tokenId)\"\n let expr := fun_ownerOf(value1)\n /// @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\"\n let _1 := sub(shl(160, 1), 1)\n /// @src 29:3675:3686 \"to != owner\"\n let _2 := /** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ and(/** @src 29:3675:3686 \"to != owner\" */ expr, /** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ _1)\n if /** @src 29:3675:3686 \"to != owner\" */ eq(/** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ and(/** @src 29:3675:3686 \"to != owner\" */ value0, /** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ _1), /** @src 29:3675:3686 \"to != owner\" */ _2)\n /// @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\"\n {\n let memPtr := mload(64)\n mstore(memPtr, shl(229, 4594637))\n mstore(add(memPtr, 4), 32)\n mstore(add(memPtr, 36), 33)\n mstore(add(memPtr, 68), \"ERC721: approval to current owne\")\n mstore(add(memPtr, 100), \"r\")\n revert(memPtr, 132)\n }\n /// @src 29:3756:3818 \"_msgSender() == owner || isApprovedForAll(owner, _msgSender())\"\n let expr_1 := /** @src 29:3756:3777 \"_msgSender() == owner\" */ eq(/** @src 35:719:729 \"msg.sender\" */ caller(), /** @src 29:3756:3777 \"_msgSender() == owner\" */ _2)\n /// @src 29:3756:3818 \"_msgSender() == owner || isApprovedForAll(owner, _msgSender())\"\n if iszero(expr_1)\n {\n expr_1 := /** @src 29:4623:4658 \"_operatorApprovals[owner][operator]\" */ read_from_storage_split_offset_bool(mapping_index_access_mapping_address_uint256_of_address(/** @src 29:4623:4648 \"_operatorApprovals[owner]\" */ mapping_index_access_mapping_address_uint256_of_address_5351(/** @src 29:3781:3818 \"isApprovedForAll(owner, _msgSender())\" */ expr), /** @src 35:719:729 \"msg.sender\" */ caller()))\n }\n /// @src 29:3735:3900 \"require(...\"\n require_helper_stringliteral_6d83(expr_1)\n /// @src 29:3924:3931 \"tokenId\"\n fun_approve(value0, value1)\n /// @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\"\n return(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\"\n function abi_decode_addresst_addresst_uint256(dataEnd) -> value0, value1, value2\n {\n if slt(add(dataEnd, not(3)), 96) { revert(0, 0) }\n let value := calldataload(4)\n let _1 := sub(shl(160, 1), 1)\n if iszero(eq(value, and(value, _1)))\n {\n revert(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\"\n value0 := value\n let value_1 := calldataload(36)\n if iszero(eq(value_1, and(value_1, _1)))\n {\n revert(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\"\n value1 := value_1\n value2 := calldataload(68)\n }\n function external_fun_transferFrom()\n {\n if callvalue() { revert(0, 0) }\n let param, param_1, param_2 := abi_decode_addresst_addresst_uint256(calldatasize())\n /// @src 29:4908:5011 \"require(_isApprovedOrOwner(_msgSender(), tokenId), \\\"ERC721: transfer caller is not owner nor approved\\\")\"\n require_helper_stringliteral_c868(/** @src 29:4916:4957 \"_isApprovedOrOwner(_msgSender(), tokenId)\" */ fun_isApprovedOrOwner(/** @src 35:719:729 \"msg.sender\" */ caller(), /** @src 29:4916:4957 \"_isApprovedOrOwner(_msgSender(), tokenId)\" */ param_2))\n /// @src 29:5042:5049 \"tokenId\"\n fun_transfer(param, param_1, param_2)\n /// @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\"\n return(0, 0)\n }\n function external_fun_safeTransferFrom_7025()\n {\n if callvalue() { revert(0, 0) }\n let param, param_1, param_2 := abi_decode_addresst_addresst_uint256(calldatasize())\n let memPtr := mload(64)\n finalize_allocation_7804(memPtr)\n mstore(memPtr, 0)\n /// @src 29:5256:5295 \"safeTransferFrom(from, to, tokenId, \\\"\\\")\"\n fun_safeTransferFrom(param, param_1, param_2, /** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ memPtr)\n return(0, 0)\n }\n function external_fun_ownerOf()\n {\n if callvalue() { revert(0, 0) }\n if slt(add(calldatasize(), not(3)), 32)\n {\n revert(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\"\n let ret := fun_ownerOf(calldataload(4))\n let memPos := mload(64)\n mstore(memPos, and(ret, sub(shl(160, 1), 1)))\n return(memPos, 32)\n }\n function abi_encode_uint256(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function external_fun_balanceOf()\n {\n if callvalue() { revert(0, 0) }\n if slt(add(calldatasize(), not(3)), 32)\n {\n revert(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\"\n let _1 := and(abi_decode_address_5349(), sub(shl(160, 1), 1))\n if /** @src 29:2028:2047 \"owner != address(0)\" */ iszero(/** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ _1)\n {\n let memPtr := mload(64)\n mstore(memPtr, shl(229, 4594637))\n mstore(add(memPtr, 4), 32)\n mstore(add(memPtr, 36), 42)\n mstore(add(memPtr, 68), \"ERC721: balance query for the ze\")\n mstore(add(memPtr, 100), \"ro address\")\n revert(memPtr, 132)\n }\n mstore(/** @src -1:-1:-1 */ 0, /** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ _1)\n mstore(32, /** @src 29:2111:2120 \"_balances\" */ 0x03)\n /// @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\"\n let _2 := sload(keccak256(/** @src -1:-1:-1 */ 0, /** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ 0x40))\n let memPos := mload(0x40)\n return(memPos, sub(abi_encode_uint256(memPos, _2), memPos))\n }\n function external_fun_symbol()\n {\n if callvalue() { revert(0, 0) }\n let _1 := 0\n if slt(add(calldatasize(), not(3)), _1) { revert(_1, _1) }\n let memPtr := mload(64)\n let ret := _1\n /// @src 29:2738:2745 \"_symbol\"\n let _2 := 0x01\n /// @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\"\n let slotValue := sload(/** @src 29:2738:2745 \"_symbol\" */ _2)\n /// @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\"\n let length := _1\n length := shr(/** @src 29:2738:2745 \"_symbol\" */ _2, /** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ slotValue)\n let outOfPlaceEncoding := and(slotValue, /** @src 29:2738:2745 \"_symbol\" */ _2)\n /// @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\"\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n let _3 := 32\n if eq(outOfPlaceEncoding, lt(length, _3))\n {\n mstore(_1, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(_1, 0x24)\n }\n let pos := array_storeLengthForEncoding_string(memPtr, length)\n switch outOfPlaceEncoding\n case 0 {\n mstore(pos, and(slotValue, not(255)))\n ret := add(pos, shl(5, iszero(iszero(length))))\n }\n case 1 {\n let dataPos := array_dataslot_string_storage_5357()\n let i := _1\n for { } lt(i, length) { i := add(i, _3) }\n {\n mstore(add(pos, i), sload(dataPos))\n dataPos := add(dataPos, /** @src 29:2738:2745 \"_symbol\" */ _2)\n }\n /// @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\"\n ret := add(pos, i)\n }\n finalize_allocation(memPtr, sub(ret, memPtr))\n let memPos := mload(64)\n return(memPos, sub(abi_encode_string(memPos, memPtr), memPos))\n }\n function external_fun_setApprovalForAll()\n {\n if callvalue() { revert(0, 0) }\n if slt(add(calldatasize(), not(3)), 64)\n {\n revert(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\"\n let value0 := abi_decode_address_5349()\n let value := calldataload(36)\n if iszero(eq(value, iszero(iszero(value))))\n {\n revert(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\"\n let _1 := and(/** @src 29:11616:11633 \"owner != operator\" */ value0, /** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ sub(shl(160, 1), 1))\n if /** @src 29:11616:11633 \"owner != operator\" */ eq(/** @src 35:719:729 \"msg.sender\" */ caller(), /** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ _1)\n {\n let memPtr := mload(64)\n mstore(memPtr, shl(229, 4594637))\n mstore(add(memPtr, 4), 32)\n mstore(add(memPtr, 36), 25)\n mstore(add(memPtr, 68), \"ERC721: approve to caller\")\n revert(memPtr, 100)\n }\n mstore(/** @src -1:-1:-1 */ 0, /** @src 35:719:729 \"msg.sender\" */ caller())\n /// @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\"\n mstore(32, /** @src 29:11673:11691 \"_operatorApprovals\" */ 0x05)\n /// @src 29:11673:11719 \"_operatorApprovals[owner][operator] = approved\"\n update_storage_value_offsett_bool_to_bool(/** @src 29:11673:11708 \"_operatorApprovals[owner][operator]\" */ mapping_index_access_mapping_address_uint256_of_address(/** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ keccak256(/** @src -1:-1:-1 */ 0, /** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ 64), /** @src 29:11673:11708 \"_operatorApprovals[owner][operator]\" */ value0), /** @src 29:11673:11719 \"_operatorApprovals[owner][operator] = approved\" */ value)\n /// @src 29:11734:11775 \"ApprovalForAll(owner, operator, approved)\"\n let _2 := /** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ mload(64)\n /// @src 29:11734:11775 \"ApprovalForAll(owner, operator, approved)\"\n log3(_2, sub(abi_encode_bool(_2, value), _2), 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31, /** @src 35:719:729 \"msg.sender\" */ caller(), /** @src 29:11734:11775 \"ApprovalForAll(owner, operator, approved)\" */ _1)\n /// @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\"\n return(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\"\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function finalize_allocation_7804(memPtr)\n {\n let newFreePtr := add(memPtr, 0x20)\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n function finalize_allocation_7807(memPtr)\n {\n let newFreePtr := add(memPtr, 64)\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n function finalize_allocation(memPtr, size)\n {\n let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n function array_allocation_size_bytes(length) -> size\n {\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n size := add(and(add(length, 31), not(31)), 0x20)\n }\n function external_fun_safeTransferFrom()\n {\n if callvalue() { revert(0, 0) }\n if slt(add(calldatasize(), not(3)), 128)\n {\n revert(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\"\n let value0 := abi_decode_address_5349()\n let value1 := abi_decode_address()\n let offset := calldataload(100)\n if gt(offset, 0xffffffffffffffff)\n {\n revert(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\"\n if iszero(slt(add(offset, 35), calldatasize()))\n {\n revert(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\"\n let _1 := calldataload(add(4, offset))\n let _2 := array_allocation_size_bytes(_1)\n let memPtr := mload(64)\n finalize_allocation(memPtr, _2)\n mstore(memPtr, _1)\n if gt(add(add(offset, _1), 36), calldatasize())\n {\n revert(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\"\n calldatacopy(add(memPtr, 32), add(offset, 36), _1)\n mstore(add(add(memPtr, _1), 32), /** @src -1:-1:-1 */ 0)\n /// @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\"\n fun_safeTransferFrom(value0, value1, calldataload(68), memPtr)\n return(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\"\n function external_fun_tokenURI()\n {\n if callvalue() { revert(0, 0) }\n if slt(add(calldatasize(), not(3)), 32)\n {\n revert(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\"\n let value0 := calldataload(4)\n if iszero(/** @src 29:2924:2940 \"_exists(tokenId)\" */ fun_exists(value0))\n /// @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\"\n {\n let memPtr := mload(64)\n mstore(memPtr, shl(229, 4594637))\n mstore(add(memPtr, 4), 32)\n mstore(add(memPtr, 36), 47)\n mstore(add(memPtr, 68), \"ERC721Metadata: URI query for no\")\n mstore(add(memPtr, 100), \"nexistent token\")\n revert(memPtr, 132)\n }\n let converted := allocate_memory_array_string()\n /// @src 29:3054:3079 \"bytes(baseURI).length > 0\"\n let expr := iszero(iszero(/** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ mload(/** @src 29:3054:3068 \"bytes(baseURI)\" */ converted)))\n /// @src 29:3054:3140 \"bytes(baseURI).length > 0 ? string(abi.encodePacked(baseURI, tokenId.toString())) : \\\"\\\"\"\n let expr_mpos := /** @src -1:-1:-1 */ 0\n /// @src 29:3054:3140 \"bytes(baseURI).length > 0 ? string(abi.encodePacked(baseURI, tokenId.toString())) : \\\"\\\"\"\n switch expr\n case 0 {\n expr_mpos := /** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ allocate_memory_array_string()\n }\n default /// @src 29:3054:3140 \"bytes(baseURI).length > 0 ? string(abi.encodePacked(baseURI, tokenId.toString())) : \\\"\\\"\"\n {\n /// @src 29:3115:3133 \"tokenId.toString()\"\n let expr_mpos_1 := fun_toString(value0)\n /// @src 29:3089:3134 \"abi.encodePacked(baseURI, tokenId.toString())\"\n let expr_mpos_2 := /** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ mload(64)\n /// @src 29:3089:3134 \"abi.encodePacked(baseURI, tokenId.toString())\"\n let _1 := sub(/** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ abi_encode_string_memory_ptr(/** @src 29:3089:3134 \"abi.encodePacked(baseURI, tokenId.toString())\" */ expr_mpos_1, /** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ abi_encode_string_memory_ptr(/** @src 29:3089:3134 \"abi.encodePacked(baseURI, tokenId.toString())\" */ converted, add(expr_mpos_2, /** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ 32))), /** @src 29:3089:3134 \"abi.encodePacked(baseURI, tokenId.toString())\" */ expr_mpos_2)\n mstore(expr_mpos_2, add(_1, /** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ not(31)))\n /// @src 29:3089:3134 \"abi.encodePacked(baseURI, tokenId.toString())\"\n finalize_allocation(expr_mpos_2, _1)\n /// @src 29:3054:3140 \"bytes(baseURI).length > 0 ? string(abi.encodePacked(baseURI, tokenId.toString())) : \\\"\\\"\"\n expr_mpos := expr_mpos_2\n }\n /// @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\"\n let memPos := mload(64)\n return(memPos, sub(abi_encode_string(memPos, expr_mpos), memPos))\n }\n function external_fun_isApprovedForAll()\n {\n if callvalue() { revert(0, 0) }\n if slt(add(calldatasize(), not(3)), 64)\n {\n revert(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\"\n let value0 := abi_decode_address_5349()\n let value1 := abi_decode_address()\n mstore(/** @src -1:-1:-1 */ 0, /** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ and(value0, sub(shl(160, 1), 1)))\n mstore(32, /** @src 29:4623:4641 \"_operatorApprovals\" */ 0x05)\n /// @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\"\n let value := and(sload(/** @src 29:4623:4658 \"_operatorApprovals[owner][operator]\" */ mapping_index_access_mapping_address_uint256_of_address(/** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ keccak256(/** @src -1:-1:-1 */ 0, /** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ 64), value1)), 0xff)\n let memPos := mload(64)\n mstore(memPos, iszero(iszero(value)))\n return(memPos, 32)\n }\n function mapping_index_access_mapping_address_uint256_of_address_5351(key) -> dataSlot\n {\n mstore(0, and(key, sub(shl(160, 1), 1)))\n mstore(0x20, /** @src 29:4623:4641 \"_operatorApprovals\" */ 0x05)\n /// @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\"\n dataSlot := keccak256(0, 0x40)\n }\n function mapping_index_access_mapping_address_uint256_of_address_5374(key) -> dataSlot\n {\n mstore(0, and(key, sub(shl(160, 1), 1)))\n mstore(0x20, /** @src 29:10880:10889 \"_balances\" */ 0x03)\n /// @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\"\n dataSlot := keccak256(0, 0x40)\n }\n function mapping_index_access_mapping_address_uint256_of_address(slot, key) -> dataSlot\n {\n mstore(0, and(key, sub(shl(160, 1), 1)))\n mstore(0x20, slot)\n dataSlot := keccak256(0, 0x40)\n }\n function mapping_index_access_mapping_uint256_address_of_uint256(key) -> dataSlot\n {\n mstore(0, key)\n mstore(0x20, /** @src 29:10938:10945 \"_owners\" */ 0x02)\n /// @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\"\n dataSlot := keccak256(0, 0x40)\n }\n /// @ast-id 6809 @src 29:2191:2426 \"function ownerOf(uint256 tokenId) public view virtual override returns (address) {...\"\n function fun_ownerOf(var_tokenId) -> var\n {\n /// @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\"\n mstore(/** @src -1:-1:-1 */ 0, /** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ var_tokenId)\n mstore(0x20, /** @src 29:2298:2305 \"_owners\" */ 0x02)\n /// @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\"\n let cleaned := and(sload(keccak256(/** @src -1:-1:-1 */ 0, /** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ 0x40)), sub(shl(160, 1), 1))\n if /** @src 29:2332:2351 \"owner != address(0)\" */ iszero(/** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ cleaned)\n {\n let memPtr := mload(0x40)\n mstore(memPtr, shl(229, 4594637))\n mstore(add(memPtr, 4), 0x20)\n mstore(add(memPtr, 36), 41)\n mstore(add(memPtr, 68), \"ERC721: owner query for nonexist\")\n mstore(add(memPtr, 100), \"ent token\")\n revert(memPtr, 132)\n }\n /// @src 29:2407:2419 \"return owner\"\n var := cleaned\n }\n /// @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\"\n function array_dataslot_string_storage() -> data\n {\n mstore(0, 0)\n data := 18569430475105882587588266137607568536673111973893317399460219858819262702947\n }\n function array_dataslot_string_storage_5357() -> data\n {\n mstore(0, /** @src 29:2738:2745 \"_symbol\" */ 0x01)\n /// @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\"\n data := 80084422859880547211683076133703299733277748156566366325829078699459944778998\n }\n function allocate_memory_array_string() -> memPtr\n {\n let memPtr_1 := mload(64)\n finalize_allocation_7804(memPtr_1)\n memPtr := memPtr_1\n mstore(memPtr_1, /** @src -1:-1:-1 */ 0)\n }\n /// @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\"\n function abi_encode_string_memory_ptr(value, pos) -> end\n {\n let length := mload(value)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, length)\n }\n function require_helper_stringliteral_6d83(condition)\n {\n if iszero(condition)\n {\n let memPtr := mload(64)\n mstore(memPtr, shl(229, 4594637))\n mstore(add(memPtr, 4), 32)\n mstore(add(memPtr, 36), 56)\n mstore(add(memPtr, 68), \"ERC721: approve caller is not ow\")\n mstore(add(memPtr, 100), \"ner nor approved for all\")\n revert(memPtr, 132)\n }\n }\n /// @ast-id 6944 @src 29:4000:4217 \"function getApproved(uint256 tokenId) public view virtual override returns (address) {...\"\n function fun_getApproved(var_tokenId) -> var\n {\n /// @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\"\n if iszero(/** @src 29:4103:4119 \"_exists(tokenId)\" */ fun_exists(var_tokenId))\n /// @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\"\n {\n let memPtr := mload(64)\n mstore(memPtr, shl(229, 4594637))\n mstore(add(memPtr, 4), 32)\n mstore(add(memPtr, 36), 44)\n mstore(add(memPtr, 68), \"ERC721: approved query for nonex\")\n mstore(add(memPtr, 100), \"istent token\")\n revert(memPtr, 132)\n }\n mstore(/** @src -1:-1:-1 */ 0, /** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ var_tokenId)\n mstore(0x20, /** @src 29:4186:4201 \"_tokenApprovals\" */ 0x04)\n /// @src 29:4179:4210 \"return _tokenApprovals[tokenId]\"\n var := /** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ and(sload(keccak256(/** @src -1:-1:-1 */ 0, /** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ 0x40)), sub(shl(160, 1), 1))\n }\n function extract_from_storage_value_offsett_bool(slot_value) -> value\n {\n value := and(slot_value, 0xff)\n }\n function read_from_storage_split_offset_bool(slot) -> value\n {\n value := and(sload(slot), 0xff)\n }\n function require_helper_stringliteral_c868(condition)\n {\n if iszero(condition)\n {\n let memPtr := mload(64)\n mstore(memPtr, shl(229, 4594637))\n mstore(add(memPtr, 4), 32)\n mstore(add(memPtr, 36), 49)\n mstore(add(memPtr, 68), \"ERC721: transfer caller is not o\")\n mstore(add(memPtr, 100), \"wner nor approved\")\n revert(memPtr, 132)\n }\n }\n /// @ast-id 7055 @src 29:5368:5688 \"function safeTransferFrom(...\"\n function fun_safeTransferFrom(var_from, var_to, var_tokenId, var_data_mpos)\n {\n /// @src 29:5529:5632 \"require(_isApprovedOrOwner(_msgSender(), tokenId), \\\"ERC721: transfer caller is not owner nor approved\\\")\"\n require_helper_stringliteral_c868(/** @src 29:5537:5578 \"_isApprovedOrOwner(_msgSender(), tokenId)\" */ fun_isApprovedOrOwner(/** @src 35:719:729 \"msg.sender\" */ caller(), /** @src 29:5537:5578 \"_isApprovedOrOwner(_msgSender(), tokenId)\" */ var_tokenId))\n /// @src 29:6721:6728 \"tokenId\"\n fun_transfer(var_from, var_to, var_tokenId)\n /// @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\"\n if iszero(/** @src 29:6747:6795 \"_checkOnERC721Received(from, to, tokenId, _data)\" */ fun_checkOnERC721Received(var_from, var_to, var_tokenId, var_data_mpos))\n /// @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\"\n {\n let memPtr := mload(64)\n mstore(memPtr, shl(229, 4594637))\n revert(memPtr, sub(abi_encode_stringliteral_1e76(add(memPtr, 4)), memPtr))\n }\n }\n function abi_encode_stringliteral_1e76(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 50)\n mstore(add(headStart, 64), \"ERC721: transfer to non ERC721Re\")\n mstore(add(headStart, 96), \"ceiver implementer\")\n tail := add(headStart, 128)\n }\n /// @ast-id 7102 @src 29:7160:7285 \"function _exists(uint256 tokenId) internal view virtual returns (bool) {...\"\n function fun_exists(var_tokenId) -> var\n {\n /// @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\"\n mstore(/** @src -1:-1:-1 */ 0, /** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ var_tokenId)\n mstore(0x20, /** @src 29:7248:7255 \"_owners\" */ 0x02)\n /// @src 29:7241:7278 \"return _owners[tokenId] != address(0)\"\n var := /** @src 29:7248:7278 \"_owners[tokenId] != address(0)\" */ iszero(iszero(/** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ and(sload(keccak256(/** @src -1:-1:-1 */ 0, /** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ 0x40)), sub(shl(160, 1), 1))))\n }\n /// @ast-id 7143 @src 29:7443:7787 \"function _isApprovedOrOwner(address spender, uint256 tokenId) internal view virtual returns (bool) {...\"\n function fun_isApprovedOrOwner(var_spender, var_tokenId) -> var\n {\n /// @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\"\n if iszero(/** @src 29:7560:7576 \"_exists(tokenId)\" */ fun_exists(var_tokenId))\n /// @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\"\n {\n let memPtr := mload(64)\n mstore(memPtr, shl(229, 4594637))\n mstore(add(memPtr, 4), 32)\n mstore(add(memPtr, 36), 44)\n mstore(add(memPtr, 68), \"ERC721: operator query for nonex\")\n mstore(add(memPtr, 100), \"istent token\")\n revert(memPtr, 132)\n }\n /// @src 29:7651:7674 \"ERC721.ownerOf(tokenId)\"\n let expr := fun_ownerOf(var_tokenId)\n /// @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\"\n let _1 := sub(shl(160, 1), 1)\n /// @src 29:7692:7708 \"spender == owner\"\n let _2 := /** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ and(/** @src 29:7692:7708 \"spender == owner\" */ var_spender, /** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ _1)\n /// @src 29:7692:7744 \"spender == owner || isApprovedForAll(owner, spender)\"\n let expr_1 := /** @src 29:7692:7708 \"spender == owner\" */ eq(_2, /** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ and(/** @src 29:7692:7708 \"spender == owner\" */ expr, /** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ _1))\n /// @src 29:7692:7744 \"spender == owner || isApprovedForAll(owner, spender)\"\n if iszero(expr_1)\n {\n expr_1 := /** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ and(sload(/** @src 29:4623:4658 \"_operatorApprovals[owner][operator]\" */ mapping_index_access_mapping_address_uint256_of_address(/** @src 29:4623:4648 \"_operatorApprovals[owner]\" */ mapping_index_access_mapping_address_uint256_of_address_5351(/** @src 29:7712:7744 \"isApprovedForAll(owner, spender)\" */ expr), var_spender)), /** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ 0xff)\n }\n /// @src 29:7692:7779 \"spender == owner || isApprovedForAll(owner, spender) || getApproved(tokenId) == spender\"\n let expr_2 := expr_1\n if iszero(expr_1)\n {\n expr_2 := /** @src 29:7748:7779 \"getApproved(tokenId) == spender\" */ eq(/** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ and(/** @src 29:7748:7768 \"getApproved(tokenId)\" */ fun_getApproved(var_tokenId), /** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ _1), /** @src 29:7748:7779 \"getApproved(tokenId) == spender\" */ _2)\n }\n /// @src 29:7684:7780 \"return (spender == owner || isApprovedForAll(owner, spender) || getApproved(tokenId) == spender)\"\n var := expr_2\n }\n /// @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\"\n function require_helper_stringliteral_455f(condition)\n {\n if iszero(condition)\n {\n let memPtr := mload(64)\n mstore(memPtr, shl(229, 4594637))\n mstore(add(memPtr, 4), 32)\n mstore(add(memPtr, 36), 36)\n mstore(add(memPtr, 68), \"ERC721: transfer to the zero add\")\n mstore(add(memPtr, 100), \"ress\")\n revert(memPtr, 132)\n }\n }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function checked_sub_uint256(x) -> diff\n {\n diff := add(x, not(0))\n if gt(diff, x) { panic_error_0x11() }\n }\n function checked_add_uint256_5377(x) -> sum\n {\n sum := add(x, /** @src 29:10899:10900 \"1\" */ 0x01)\n /// @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\"\n if gt(x, sum) { panic_error_0x11() }\n }\n function checked_add_uint256(y) -> sum\n {\n sum := add(/** @src 37:932:934 \"48\" */ 0x30, /** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ y)\n if gt(/** @src 37:932:934 \"48\" */ 0x30, /** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ sum) { panic_error_0x11() }\n }\n function update_storage_value_offsett_address_to_address(slot, value)\n {\n sstore(slot, or(and(sload(slot), shl(160, 0xffffffffffffffffffffffff)), and(value, sub(shl(160, 1), 1))))\n }\n /// @ast-id 7388 @src 29:10453:11058 \"function _transfer(...\"\n function fun_transfer(var_from, var_to, var_tokenId)\n {\n /// @src 29:10580:10603 \"ERC721.ownerOf(tokenId)\"\n let expr := fun_ownerOf(var_tokenId)\n /// @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\"\n let _1 := sub(shl(160, 1), 1)\n let _2 := and(/** @src 29:10580:10611 \"ERC721.ownerOf(tokenId) == from\" */ var_from, /** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ _1)\n if iszero(/** @src 29:10580:10611 \"ERC721.ownerOf(tokenId) == from\" */ eq(/** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ and(/** @src 29:10580:10611 \"ERC721.ownerOf(tokenId) == from\" */ expr, /** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ _1), _2))\n {\n let memPtr := mload(64)\n mstore(memPtr, shl(229, 4594637))\n mstore(add(memPtr, 4), 32)\n mstore(add(memPtr, 36), 37)\n mstore(add(memPtr, 68), \"ERC721: transfer from incorrect \")\n mstore(add(memPtr, 100), \"owner\")\n revert(memPtr, 132)\n }\n let _3 := and(/** @src 29:10671:10687 \"to != address(0)\" */ var_to, /** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ _1)\n /// @src 29:10663:10728 \"require(to != address(0), \\\"ERC721: transfer to the zero address\\\")\"\n require_helper_stringliteral_455f(/** @src 29:10671:10687 \"to != address(0)\" */ iszero(iszero(/** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ _3)))\n /// @src 29:10861:10868 \"tokenId\"\n fun_approve_5373(var_tokenId)\n /// @src 29:10880:10895 \"_balances[from]\"\n let _4 := mapping_index_access_mapping_address_uint256_of_address_5374(var_from)\n /// @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\"\n sstore(_4, /** @src 29:10880:10900 \"_balances[from] -= 1\" */ checked_sub_uint256(/** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ sload(/** @src 29:10880:10900 \"_balances[from] -= 1\" */ _4)))\n /// @src 29:10910:10923 \"_balances[to]\"\n let _5 := mapping_index_access_mapping_address_uint256_of_address_5374(var_to)\n /// @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\"\n sstore(_5, /** @src 29:10910:10928 \"_balances[to] += 1\" */ checked_add_uint256_5377(/** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ sload(/** @src 29:10910:10928 \"_balances[to] += 1\" */ _5)))\n /// @src 29:10938:10959 \"_owners[tokenId] = to\"\n update_storage_value_offsett_address_to_address(/** @src 29:10938:10954 \"_owners[tokenId]\" */ mapping_index_access_mapping_uint256_address_of_uint256(var_tokenId), /** @src 29:10938:10959 \"_owners[tokenId] = to\" */ var_to)\n /// @src 29:10975:11002 \"Transfer(from, to, tokenId)\"\n log4(/** @src 29:10685:10686 \"0\" */ 0x00, 0x00, /** @src 29:10975:11002 \"Transfer(from, to, tokenId)\" */ 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef, _2, _3, var_tokenId)\n }\n /// @ast-id 7412 @src 29:11169:11340 \"function _approve(address to, uint256 tokenId) internal virtual {...\"\n function fun_approve_5373(var_tokenId)\n {\n /// @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\"\n mstore(0, var_tokenId)\n mstore(0x20, /** @src 29:11243:11258 \"_tokenApprovals\" */ 0x04)\n /// @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\"\n let _1 := keccak256(0, 0x40)\n sstore(_1, and(sload(_1), shl(160, 0xffffffffffffffffffffffff)))\n /// @src 29:11287:11333 \"Approval(ERC721.ownerOf(tokenId), to, tokenId)\"\n log4(/** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ 0, 0, /** @src 29:11287:11333 \"Approval(ERC721.ownerOf(tokenId), to, tokenId)\" */ 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925, /** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ and(/** @src 29:11296:11319 \"ERC721.ownerOf(tokenId)\" */ fun_ownerOf(var_tokenId), /** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ sub(shl(160, 1), 1)), 0, /** @src 29:11287:11333 \"Approval(ERC721.ownerOf(tokenId), to, tokenId)\" */ var_tokenId)\n }\n /// @ast-id 7412 @src 29:11169:11340 \"function _approve(address to, uint256 tokenId) internal virtual {...\"\n function fun_approve(var_to, var_tokenId)\n {\n /// @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\"\n mstore(/** @src -1:-1:-1 */ 0, /** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ var_tokenId)\n mstore(0x20, /** @src 29:11243:11258 \"_tokenApprovals\" */ 0x04)\n /// @src 29:11243:11272 \"_tokenApprovals[tokenId] = to\"\n update_storage_value_offsett_address_to_address(/** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ keccak256(/** @src -1:-1:-1 */ 0, /** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ 0x40), /** @src 29:11243:11272 \"_tokenApprovals[tokenId] = to\" */ var_to)\n /// @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\"\n let _1 := sub(shl(160, 1), 1)\n let _2 := and(/** @src 29:11296:11319 \"ERC721.ownerOf(tokenId)\" */ fun_ownerOf(var_tokenId), /** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ _1)\n /// @src 29:11287:11333 \"Approval(ERC721.ownerOf(tokenId), to, tokenId)\"\n log4(/** @src -1:-1:-1 */ 0, 0, /** @src 29:11287:11333 \"Approval(ERC721.ownerOf(tokenId), to, tokenId)\" */ 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925, _2, /** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ and(/** @src 29:11287:11333 \"Approval(ERC721.ownerOf(tokenId), to, tokenId)\" */ var_to, /** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ _1), /** @src 29:11287:11333 \"Approval(ERC721.ownerOf(tokenId), to, tokenId)\" */ var_tokenId)\n }\n /// @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\"\n function update_storage_value_offsett_bool_to_bool(slot, value)\n {\n let value_1 := and(sload(slot), not(255))\n sstore(slot, or(value_1, and(iszero(iszero(value)), 255)))\n }\n function abi_decode_bytes4_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n validator_revert_bytes4(value)\n value0 := value\n }\n function abi_encode_address_address_uint256_bytes(headStart, value0, value1, value2, value3) -> tail\n {\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), 128)\n tail := abi_encode_string_to_string(value3, add(headStart, 128))\n }\n function extract_returndata() -> data\n {\n switch returndatasize()\n case 0 { data := 96 }\n default {\n let _1 := returndatasize()\n let _2 := array_allocation_size_bytes(_1)\n let memPtr := mload(64)\n finalize_allocation(memPtr, _2)\n mstore(memPtr, _1)\n data := memPtr\n returndatacopy(add(memPtr, 0x20), /** @src -1:-1:-1 */ 0, /** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ returndatasize())\n }\n }\n /// @ast-id 7506 @src 29:12335:13113 \"function _checkOnERC721Received(...\"\n function fun_checkOnERC721Received(var_from, var_to, var_tokenId, var_data_7453_mpos) -> var\n {\n /// @src 29:12485:12489 \"bool\"\n var := /** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ 0\n /// @src 29:12501:13107 \"if (to.isContract()) {...\"\n switch /** @src 34:1465:1488 \"account.code.length > 0\" */ iszero(iszero(/** @src 34:1465:1484 \"account.code.length\" */ extcodesize(/** @src 29:12505:12520 \"to.isContract()\" */ var_to)))\n case /** @src 29:12501:13107 \"if (to.isContract()) {...\" */ 0 {\n /// @src 29:13085:13096 \"return true\"\n var := /** @src 29:13092:13096 \"true\" */ 0x01\n /// @src 29:13085:13096 \"return true\"\n leave\n }\n default /// @src 29:12501:13107 \"if (to.isContract()) {...\"\n {\n /// @src 29:12540:12612 \"IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, _data)\"\n let _1 := /** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ mload(64)\n let _2 := shl(225, 0x0a85bd01)\n /// @src 29:12540:12612 \"IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, _data)\"\n mstore(_1, /** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ _2)\n /// @src 29:12540:12612 \"IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, _data)\"\n let trySuccessCondition := call(gas(), /** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ and(/** @src 29:12540:12559 \"IERC721Receiver(to)\" */ var_to, /** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ sub(shl(160, 1), 1)), 0, /** @src 29:12540:12612 \"IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, _data)\" */ _1, sub(abi_encode_address_address_uint256_bytes(add(_1, 4), /** @src 35:719:729 \"msg.sender\" */ caller(), /** @src 29:12540:12612 \"IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, _data)\" */ var_from, var_tokenId, var_data_7453_mpos), _1), _1, 32)\n let expr := /** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ 0\n /// @src 29:12540:12612 \"IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, _data)\"\n if trySuccessCondition\n {\n let _3 := 32\n if gt(_3, returndatasize()) { _3 := returndatasize() }\n finalize_allocation(_1, _3)\n expr := abi_decode_bytes4_fromMemory(_1, add(_1, _3))\n }\n /// @src 29:12536:13055 \"try IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, _data) returns (bytes4 retval) {...\"\n switch iszero(trySuccessCondition)\n case 0 {\n /// @src 29:12655:12713 \"return retval == IERC721Receiver.onERC721Received.selector\"\n var := /** @src 29:12662:12713 \"retval == IERC721Receiver.onERC721Received.selector\" */ eq(/** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ and(/** @src 29:12662:12713 \"retval == IERC721Receiver.onERC721Received.selector\" */ expr, /** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ shl(224, 0xffffffff)), _2)\n /// @src 29:12655:12713 \"return retval == IERC721Receiver.onERC721Received.selector\"\n leave\n }\n default /// @src 29:12536:13055 \"try IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, _data) returns (bytes4 retval) {...\"\n {\n /// @src 29:12729:13055 \"catch (bytes memory reason) {...\"\n let var_reason_mpos := extract_returndata()\n /// @src 29:12779:12792 \"reason.length\"\n let expr_1 := /** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ mload(/** @src 29:12779:12792 \"reason.length\" */ var_reason_mpos)\n /// @src 29:12775:13041 \"if (reason.length == 0) {...\"\n switch /** @src 29:12779:12797 \"reason.length == 0\" */ iszero(expr_1)\n case /** @src 29:12775:13041 \"if (reason.length == 0) {...\" */ 0 {\n /// @src 29:12928:13023 \"assembly {...\"\n revert(add(/** @src 29:12540:12612 \"IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, _data)\" */ 32, /** @src 29:12928:13023 \"assembly {...\" */ var_reason_mpos), expr_1)\n }\n default /// @src 29:12775:13041 \"if (reason.length == 0) {...\"\n {\n /// @src 29:12821:12881 \"revert(\\\"ERC721: transfer to non ERC721Receiver implementer\\\")\"\n let _4 := /** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ mload(64)\n /// @src 29:12821:12881 \"revert(\\\"ERC721: transfer to non ERC721Receiver implementer\\\")\"\n mstore(_4, /** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ shl(229, 4594637))\n /// @src 29:12821:12881 \"revert(\\\"ERC721: transfer to non ERC721Receiver implementer\\\")\"\n revert(_4, sub(abi_encode_stringliteral_1e76(add(_4, /** @src 29:12540:12612 \"IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, _data)\" */ 4)), /** @src 29:12821:12881 \"revert(\\\"ERC721: transfer to non ERC721Receiver implementer\\\")\" */ _4))\n }\n }\n }\n }\n /// @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\"\n function increment_uint256(value) -> ret\n {\n if eq(value, not(0)) { panic_error_0x11() }\n ret := add(value, 1)\n }\n function allocate_and_zero_memory_array_bytes(length) -> memPtr\n {\n let _1 := array_allocation_size_bytes(length)\n let memPtr_1 := mload(64)\n finalize_allocation(memPtr_1, _1)\n mstore(memPtr_1, length)\n memPtr := memPtr_1\n calldatacopy(add(memPtr_1, 32), calldatasize(), add(array_allocation_size_bytes(length), not(31)))\n }\n function convert_uint8_to_bytes1(value) -> converted\n {\n converted := and(shl(248, value), shl(248, 255))\n }\n function memory_array_index_access_bytes(baseRef, index) -> addr\n {\n if iszero(lt(index, mload(baseRef)))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n addr := add(add(baseRef, index), 32)\n }\n /// @ast-id 8294 @src 37:328:1031 \"function toString(uint256 value) internal pure returns (string memory) {...\"\n function fun_toString(var_value) -> var_mpos\n {\n /// @src 37:597:648 \"if (value == 0) {...\"\n if /** @src 37:601:611 \"value == 0\" */ iszero(var_value)\n /// @src 37:597:648 \"if (value == 0) {...\"\n {\n /// @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\"\n let memPtr := mload(64)\n finalize_allocation_7807(memPtr)\n mstore(memPtr, 1)\n mstore(add(memPtr, 32), \"0\")\n /// @src 37:627:637 \"return \\\"0\\\"\"\n var_mpos := memPtr\n leave\n }\n /// @src 37:657:677 \"uint256 temp = value\"\n let var_temp := var_value\n /// @src 37:687:701 \"uint256 digits\"\n let var_digits := /** @src 37:610:611 \"0\" */ 0x00\n /// @src 37:687:701 \"uint256 digits\"\n let var_digits_1 := /** @src 37:610:611 \"0\" */ var_digits\n /// @src 37:711:786 \"while (temp != 0) {...\"\n for { }\n /** @src 37:718:727 \"temp != 0\" */ var_temp\n /// @src 37:711:786 \"while (temp != 0) {...\"\n { }\n {\n /// @src 37:743:751 \"digits++\"\n var_digits_1 := increment_uint256(var_digits_1)\n /// @src 37:765:775 \"temp /= 10\"\n var_temp := /** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ div(/** @src 37:765:775 \"temp /= 10\" */ var_temp, /** @src 37:773:775 \"10\" */ 0x0a)\n }\n /// @src 37:795:834 \"bytes memory buffer = new bytes(digits)\"\n let var_buffer_mpos := /** @src 37:817:834 \"new bytes(digits)\" */ allocate_and_zero_memory_array_bytes(var_digits_1)\n /// @src 37:844:994 \"while (value != 0) {...\"\n for { }\n /** @src 37:851:861 \"value != 0\" */ var_value\n /// @src 37:844:994 \"while (value != 0) {...\"\n { }\n {\n /// @src 37:877:888 \"digits -= 1\"\n let expr := checked_sub_uint256(var_digits_1)\n let var_digits_2 := expr\n var_digits_1 := expr\n /// @src 37:773:775 \"10\"\n let _1 := 0x0a\n /// @src 37:902:958 \"buffer[digits] = bytes1(uint8(48 + uint256(value % 10)))\"\n mstore8(memory_array_index_access_bytes(var_buffer_mpos, var_digits_2), byte(/** @src 37:610:611 \"0\" */ var_digits, /** @src 37:919:958 \"bytes1(uint8(48 + uint256(value % 10)))\" */ convert_uint8_to_bytes1(/** @src 37:926:957 \"uint8(48 + uint256(value % 10))\" */ extract_from_storage_value_offsett_bool(/** @src 37:932:956 \"48 + uint256(value % 10)\" */ checked_add_uint256(/** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ mod(/** @src 37:945:955 \"value % 10\" */ var_value, /** @src 37:773:775 \"10\" */ _1))))))\n /// @src 37:972:983 \"value /= 10\"\n var_value := /** @src 29:628:14286 \"contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {...\" */ div(/** @src 37:972:983 \"value /= 10\" */ var_value, /** @src 37:773:775 \"10\" */ _1)\n }\n /// @src 37:1003:1024 \"return string(buffer)\"\n var_mpos := var_buffer_mpos\n }\n }\n data \".metadata\" hex\"a26469706673582212201f806aae0a9b76f74c0e2e628ee4298ae6cc78505b14b8a17d7ce1d9e564234a64736f6c63430008120033\"\n }\n}\n","hash":"010002f114db606b74a9b22256b60a719cda5ef182de7abd38fb25fe10e57209","factoryDependencies":{}}},"@openzeppelin/contracts/token/ERC721/IERC721.sol":{"IERC721":{"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":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"operator","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":"owner","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":"nonpayable","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":"nonpayable","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":"nonpayable","type":"function"}],"metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"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\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"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\":\"owner\",\"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\":\"nonpayable\",\"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\":\"nonpayable\",\"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\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Required interface of an ERC721 compliant contract.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":\"IERC721\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x0d4de01fe5360c38b4ad2b0822a12722958428f5138a7ff47c1720eb6fa52bba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77724cecdfba8814632ab58737c2b0f2d4ad2d532bc614aee559b5593c1152f0\",\"dweb:/ipfs/QmUcE6gXyv7CQh4sUdcDABYKGTovTe1zLMZSEq95nkc3ph\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}","evm":{"legacyAssembly":null,"assembly":null,"bytecode":null,"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"}},"irOptimized":""}},"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol":{"IERC721Receiver":{"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"}],"metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"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\":\"Interface for any contract that wants to support safeTransfers from ERC721 asset contracts.\",\"kind\":\"dev\",\"methods\":{\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} by `operator` from `from`, this function is called. It must return its Solidity selector to confirm the token transfer. If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`.\"}},\"title\":\"ERC721 token receiver interface\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":\"IERC721Receiver\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]}},\"version\":1}","evm":{"legacyAssembly":null,"assembly":null,"bytecode":null,"methodIdentifiers":{"onERC721Received(address,address,uint256,bytes)":"150b7a02"}},"irOptimized":""}},"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol":{"ERC721URIStorage":{"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":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"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":"","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":"nonpayable","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":"nonpayable","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":"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":"nonpayable","type":"function"}],"metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"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\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"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\":\"\",\"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\":\"nonpayable\",\"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\":\"nonpayable\",\"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\":\"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\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"ERC721 token with storage based token URI management.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol\":\"ERC721URIStorage\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x921f012325281f7d81e29c53a13824cf6c2c5d77232065d0d4f3f912e97af6ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7dbcedc364fce0ab5e54d21d4cbd91a97959f52c0674cf5c36a314bb58308f62\",\"dweb:/ipfs/QmfYpqHKtu3bSQ9FGvLwzdxRNykStpVPtoLNTaM1KBKj6E\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x0d4de01fe5360c38b4ad2b0822a12722958428f5138a7ff47c1720eb6fa52bba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77724cecdfba8814632ab58737c2b0f2d4ad2d532bc614aee559b5593c1152f0\",\"dweb:/ipfs/QmUcE6gXyv7CQh4sUdcDABYKGTovTe1zLMZSEq95nkc3ph\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol\":{\"keccak256\":\"0x1cbe42915bc66227970fe99bc0f783eb1de30f2b48f984af01ad45edb9658698\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2baa08eb67d9da46e6c4c049f17b7684a1c68c5268d0f466cfa0eb23ce2bf9b0\",\"dweb:/ipfs/Qmdnj8zj4PfErB2HM2eKmDt7FrqrhggsZ6Qd8MpD593tgj\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146\",\"dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x2ccf9d2313a313d41a791505f2b5abfdc62191b5d4334f7f7a82691c088a1c87\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3a57d0854b2fdce6ebff933a48dca2445643d1eccfc27f00292e937f26c6a58\",\"dweb:/ipfs/QmW45rZooS9TqR4YXUbjRbtf2Bpb5ouSarBvfW1LdGprvV\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x32c202bd28995dd20c4347b7c6467a6d3241c74c8ad3edcbb610cd9205916c45\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8179c356adb19e70d6b31a1eedc8c5c7f0c00e669e2540f4099e3844c6074d30\",\"dweb:/ipfs/QmWFbivarEobbqhS1go64ootVuHfVohBseerYy9FTEd1W2\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}","evm":{"legacyAssembly":null,"assembly":null,"bytecode":null,"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"}},"irOptimized":""}},"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"IERC721Metadata":{"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":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"operator","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":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","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":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","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":"nonpayable","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":"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":"nonpayable","type":"function"}],"metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"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\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"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\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"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\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\":\"nonpayable\",\"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\":\"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\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"See https://eips.ethereum.org/EIPS/eip-721\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"name()\":{\"details\":\"Returns the token collection name.\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"symbol()\":{\"details\":\"Returns the token collection symbol.\"},\"tokenURI(uint256)\":{\"details\":\"Returns the Uniform Resource Identifier (URI) for `tokenId` token.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"title\":\"ERC-721 Non-Fungible Token Standard, optional metadata extension\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":\"IERC721Metadata\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x0d4de01fe5360c38b4ad2b0822a12722958428f5138a7ff47c1720eb6fa52bba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77724cecdfba8814632ab58737c2b0f2d4ad2d532bc614aee559b5593c1152f0\",\"dweb:/ipfs/QmUcE6gXyv7CQh4sUdcDABYKGTovTe1zLMZSEq95nkc3ph\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146\",\"dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}","evm":{"legacyAssembly":null,"assembly":null,"bytecode":null,"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"}},"irOptimized":""}},"@openzeppelin/contracts/utils/Address.sol":{"Address":{"abi":[],"metadata":{"optimizer_settings":"M3B3","solc_metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"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\":{\"@openzeppelin/contracts/utils/Address.sol\":\"Address\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x2ccf9d2313a313d41a791505f2b5abfdc62191b5d4334f7f7a82691c088a1c87\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3a57d0854b2fdce6ebff933a48dca2445643d1eccfc27f00292e937f26c6a58\",\"dweb:/ipfs/QmW45rZooS9TqR4YXUbjRbtf2Bpb5ouSarBvfW1LdGprvV\"]}},\"version\":1}","zk_version":"1.3.9"},"evm":{"legacyAssembly":null,"assembly":"\t.text\n\t.file\t\"Address.sol:Address\"\n\t.globl\t__entry\n__entry:\n.func_begin0:\n\tand!\t1, r2, r1\n\tjump.eq\t@.BB0_2\n\tadd\t128, r0, r1\n\tst.1\t64, r1\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tadd\t32, r0, r1\n\tst.2\t256, r1\n\tst.2\t288, r0\n\tadd\t@CPI0_0[0], r0, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_2:\n\tadd\tr0, r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.func_end0:\n\n\t.note.GNU-stack\n\t.rodata\nCPI0_0:\n\t.cell 53919893334301279589334030174039261352344891250716429051063678533632\n","bytecode":{"object":"00000001012001900000000c0000613d0000008001000039000000400010043f0000000001000416000000000110004c0000000c0000c13d00000020010000390000010000100443000001200000044300000005010000410000000f0001042e000000000100001900000010000104300000000e000004320000000f0001042e0000001000010430000000000000000000000000000000000000000000000000000000020000000000000000000000000000004000000100000000000000000075a02678df72152a956a174413430d4055bd7836b8469a375bf6ec00883453a0"},"methodIdentifiers":{}},"irOptimized":"/// @use-src 34:\"@openzeppelin/contracts/utils/Address.sol\"\nobject \"Address_8113\" {\n code {\n {\n /// @src 34:194:8255 \"library Address {...\"\n let _1 := memoryguard(0x80)\n mstore(64, _1)\n if callvalue() { revert(0, 0) }\n let _2 := datasize(\"Address_8113_deployed\")\n codecopy(_1, dataoffset(\"Address_8113_deployed\"), _2)\n setimmutable(_1, \"library_deploy_address\", address())\n return(_1, _2)\n }\n }\n /// @use-src 34:\"@openzeppelin/contracts/utils/Address.sol\"\n object \"Address_8113_deployed\" {\n code {\n {\n /// @src 34:194:8255 \"library Address {...\"\n revert(0, 0)\n }\n }\n data \".metadata\" hex\"a2646970667358221220ac43faee7ca38d4cdd1c70b68eaef36126725ad73108bf35bfdddf3a813602f964736f6c63430008120033\"\n }\n}\n","hash":"01000007f7a3be36b37f39e7ee332ce35326e8eca8ea80a92cc262794d107300","factoryDependencies":{}}},"@openzeppelin/contracts/utils/Context.sol":{"Context":{"abi":[],"metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"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\":{\"@openzeppelin/contracts/utils/Context.sol\":\"Context\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]}},\"version\":1}","evm":{"legacyAssembly":null,"assembly":null,"bytecode":null,"methodIdentifiers":{}},"irOptimized":""}},"@openzeppelin/contracts/utils/Counters.sol":{"Counters":{"abi":[],"metadata":{"optimizer_settings":"M3B3","solc_metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"Matt Condon (@shrugs)\",\"details\":\"Provides counters that can only be incremented, decremented or reset. This can be used e.g. to track the number of elements in a mapping, issuing ERC721 ids, or counting request ids. Include with `using Counters for Counters.Counter;`\",\"kind\":\"dev\",\"methods\":{},\"title\":\"Counters\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Counters.sol\":\"Counters\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@openzeppelin/contracts/utils/Counters.sol\":{\"keccak256\":\"0xf0018c2440fbe238dd3a8732fa8e17a0f9dce84d31451dc8a32f6d62b349c9f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59e1c62884d55b70f3ae5432b44bb3166ad71ae3acd19c57ab6ddc3c87c325ee\",\"dweb:/ipfs/QmezuXg5GK5oeA4F91EZhozBFekhq5TD966bHPH18cCqhu\"]}},\"version\":1}","zk_version":"1.3.9"},"evm":{"legacyAssembly":null,"assembly":"\t.text\n\t.file\t\"Counters.sol:Counters\"\n\t.globl\t__entry\n__entry:\n.func_begin0:\n\tand!\t1, r2, r1\n\tjump.eq\t@.BB0_2\n\tadd\t128, r0, r1\n\tst.1\t64, r1\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tadd\t32, r0, r1\n\tst.2\t256, r1\n\tst.2\t288, r0\n\tadd\t@CPI0_0[0], r0, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_2:\n\tadd\tr0, r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.func_end0:\n\n\t.note.GNU-stack\n\t.rodata\nCPI0_0:\n\t.cell 53919893334301279589334030174039261352344891250716429051063678533632\n","bytecode":{"object":"00000001012001900000000c0000613d0000008001000039000000400010043f0000000001000416000000000110004c0000000c0000c13d00000020010000390000010000100443000001200000044300000005010000410000000f0001042e000000000100001900000010000104300000000e000004320000000f0001042e00000010000104300000000000000000000000000000000000000000000000000000000200000000000000000000000000000040000001000000000000000000dd7c7f14f4bda4945a306625d6857efbba27ee6817d49e5f7e648fc5a6842b02"},"methodIdentifiers":{}},"irOptimized":"/// @use-src 36:\"@openzeppelin/contracts/utils/Counters.sol\"\nobject \"Counters_8209\" {\n code {\n {\n /// @src 36:424:1395 \"library Counters {...\"\n let _1 := memoryguard(0x80)\n mstore(64, _1)\n if callvalue() { revert(0, 0) }\n let _2 := datasize(\"Counters_8209_deployed\")\n codecopy(_1, dataoffset(\"Counters_8209_deployed\"), _2)\n setimmutable(_1, \"library_deploy_address\", address())\n return(_1, _2)\n }\n }\n /// @use-src 36:\"@openzeppelin/contracts/utils/Counters.sol\"\n object \"Counters_8209_deployed\" {\n code {\n {\n /// @src 36:424:1395 \"library Counters {...\"\n revert(0, 0)\n }\n }\n data \".metadata\" hex\"a26469706673582212201ab5e9bac94912824cc03ae7702411d9f1763cc09f043182d066a3951912758964736f6c63430008120033\"\n }\n}\n","hash":"01000007fad0544dca55b6f61c125c8f3f09ebc56abf0c0cb43e7721d4e76fd7","factoryDependencies":{}}},"@openzeppelin/contracts/utils/Strings.sol":{"Strings":{"abi":[],"metadata":{"optimizer_settings":"M3B3","solc_metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"String operations.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Strings.sol\":\"Strings\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x32c202bd28995dd20c4347b7c6467a6d3241c74c8ad3edcbb610cd9205916c45\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8179c356adb19e70d6b31a1eedc8c5c7f0c00e669e2540f4099e3844c6074d30\",\"dweb:/ipfs/QmWFbivarEobbqhS1go64ootVuHfVohBseerYy9FTEd1W2\"]}},\"version\":1}","zk_version":"1.3.9"},"evm":{"legacyAssembly":null,"assembly":"\t.text\n\t.file\t\"Strings.sol:Strings\"\n\t.globl\t__entry\n__entry:\n.func_begin0:\n\tand!\t1, r2, r1\n\tjump.eq\t@.BB0_2\n\tadd\t128, r0, r1\n\tst.1\t64, r1\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tadd\t32, r0, r1\n\tst.2\t256, r1\n\tst.2\t288, r0\n\tadd\t@CPI0_0[0], r0, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_2:\n\tadd\tr0, r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.func_end0:\n\n\t.note.GNU-stack\n\t.rodata\nCPI0_0:\n\t.cell 53919893334301279589334030174039261352344891250716429051063678533632\n","bytecode":{"object":"00000001012001900000000c0000613d0000008001000039000000400010043f0000000001000416000000000110004c0000000c0000c13d00000020010000390000010000100443000001200000044300000005010000410000000f0001042e000000000100001900000010000104300000000e000004320000000f0001042e00000010000104300000000000000000000000000000000000000000000000000000000200000000000000000000000000000040000001000000000000000000df0cdf37261618c06f38f09546430a6585ed1a2ef7f100067368b0ded0082c0e"},"methodIdentifiers":{}},"irOptimized":"/// @use-src 37:\"@openzeppelin/contracts/utils/Strings.sol\"\nobject \"Strings_8412\" {\n code {\n {\n /// @src 37:146:2031 \"library Strings {...\"\n let _1 := memoryguard(0x80)\n mstore(64, _1)\n if callvalue() { revert(0, 0) }\n let _2 := datasize(\"Strings_8412_deployed\")\n codecopy(_1, dataoffset(\"Strings_8412_deployed\"), _2)\n setimmutable(_1, \"library_deploy_address\", address())\n return(_1, _2)\n }\n }\n /// @use-src 37:\"@openzeppelin/contracts/utils/Strings.sol\"\n object \"Strings_8412_deployed\" {\n code {\n {\n /// @src 37:146:2031 \"library Strings {...\"\n revert(0, 0)\n }\n }\n data \".metadata\" hex\"a2646970667358221220dd915b48356224801e0798b666bc79756a6226faf0c5e85aea7d83184b1a65df64736f6c63430008120033\"\n }\n}\n","hash":"01000007a4846e2de0dfb64f4b9d7b576bcd0fccb33eea259b4e4dca2e7f49e3","factoryDependencies":{}}},"@openzeppelin/contracts/utils/introspection/ERC165.sol":{"ERC165":{"abi":[{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC165} interface. Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check for the additional interface id that will be supported. For example: ```solidity function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId); } ``` Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":\"ERC165\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}","evm":{"legacyAssembly":null,"assembly":null,"bytecode":null,"methodIdentifiers":{"supportsInterface(bytes4)":"01ffc9a7"}},"irOptimized":""}},"@openzeppelin/contracts/utils/introspection/IERC165.sol":{"IERC165":{"abi":[{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC165 standard, as defined in the https://eips.ethereum.org/EIPS/eip-165[EIP]. Implementers can declare support of contract interfaces, which can then be queried by others ({ERC165Checker}). For an implementation, see {ERC165}.\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":\"IERC165\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}","evm":{"legacyAssembly":null,"assembly":null,"bytecode":null,"methodIdentifiers":{"supportsInterface(bytes4)":"01ffc9a7"}},"irOptimized":""}},"contracts/Caller.sol":{"GCaller":{"abi":[{"inputs":[{"internalType":"address","name":"_callAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"callAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"myAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"newCallGreeter","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_greeting","type":"string"}],"name":"newSetGreet","outputs":[],"stateMutability":"nonpayable","type":"function"}],"metadata":{"optimizer_settings":"M3B3","solc_metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_callAddress\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"callAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"myAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"newCallGreeter\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_greeting\",\"type\":\"string\"}],\"name\":\"newSetGreet\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Caller.sol\":\"GCaller\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"contracts/Caller.sol\":{\"keccak256\":\"0xacce13b84a5ad11718762299753c4c8443cf5532dc0c70a1e949da7b956f3a73\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://32761e9c6e61589e2bba1e4c553acb5741640c8a6dd12708d7f5581243f78795\",\"dweb:/ipfs/QmaMmTC3pQfP4fc7LVtjPkVLQa6YesfWja6nmSu23cmsqy\"]}},\"version\":1}","zk_version":"1.3.9"},"evm":{"legacyAssembly":null,"assembly":"\t.text\n\t.file\t\"Caller.sol:GCaller\"\n\t.globl\t__entry\n__entry:\n.func_begin0:\n\tnop\tstack+=[4]\n\tadd\tr1, r0, r3\n\tshr.s\t96, r3, r3\n\tand\t@CPI0_0[0], r3, r4\n\tptr.add\tr1, r4, stack[@ptr_return_data]\n\tptr.add\tr1, r0, stack[@ptr_calldata]\n\tand\t@CPI0_0[0], r3, stack[@calldatasize]\n\tadd\t0, r0, stack[@returndatasize]\n\tand!\t1, r2, r1\n\tjump.ne\t@.BB0_1\n\tadd\t128, r0, r1\n\tst.1\t64, r1\n\tadd\tstack[@calldatasize], r0, r1\n\tsub.s!\t4, r1, r1\n\tjump.lt\t@.BB0_2\n\tptr.add\tstack[@ptr_calldata], r0, r1\n\tld\tr1, r1\n\tshr.s\t224, r1, r1\n\tsub.s!\t@CPI0_7[0], r1, r2\n\tjump.gt\t@.BB0_23\n\tsub.s!\t@CPI0_10[0], r1, r2\n\tjump.eq\t@.BB0_25\n\tsub.s!\t@CPI0_11[0], r1, r1\n\tjump.ne\t@.BB0_2\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tsub.s\t4, r0, r1\n\tadd\tstack[@calldatasize], r1, r1\n\tadd\t@CPI0_1[0], r0, r2\n\tsub.s!\t0, r1, r3\n\tadd\t0, r0, r3\n\tadd.lt\tr2, r0, r3\n\tand\t@CPI0_1[0], r1, r1\n\tsub.s!\t0, r1, r4\n\tadd.le\t0, r0, r2\n\tsub.s!\t@CPI0_1[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tadd\t1, r0, r1\n\tsload\tr1, r1\n\tand\t@CPI0_2[0], r1, r1\n\tld.1\t64, r2\n\tst.1\tr2, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI0_21[0], r1, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_1:\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tadd\tstack[@calldatasize], r0, r1\n\tadd\t159, r1, r2\n\tsub.s\t32, r0, r3\n\tand\tr2, r3, r2\n\tsub.s!\t127, r2, r3\n\tjump.gt\t@.BB0_5\n.BB0_4:\n\tadd\t@CPI0_19[0], r0, r1\n\tst.1\t0, r1\n\tadd\t65, r0, r1\n\tst.1\t4, r1\n\tadd\t@CPI0_20[0], r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB0_23:\n\tsub.s!\t@CPI0_8[0], r1, r2\n\tjump.eq\t@.BB0_31\n\tsub.s!\t@CPI0_9[0], r1, r1\n\tjump.ne\t@.BB0_2\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tsub.s\t4, r0, r1\n\tadd\tstack[@calldatasize], r1, r1\n\tadd\t@CPI0_1[0], r0, r2\n\tsub.s!\t0, r1, r3\n\tadd\t0, r0, r3\n\tadd.lt\tr2, r0, r3\n\tand\t@CPI0_1[0], r1, r1\n\tsub.s!\t0, r1, r4\n\tadd.le\t0, r0, r2\n\tsub.s!\t@CPI0_1[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tadd\t1, r0, r1\n\tsload\tr1, r2\n\tld.1\t64, r8\n\tadd\t@CPI0_12[0], r0, r1\n\tst.1\tr8, r1\n\tcontext.gas_left\tr1\n\tand\t@CPI0_2[0], r2, r2\n\tsub.s!\t4, r2, r3\n\tjump.ne\t@.BB0_71\n\tptr.add\tstack[@ptr_return_data], r0, r1\n\tadd\tstack[@returndatasize], r0, r3\n\tjump\t@.BB0_78\n.BB0_5:\n\tst.1\t64, r2\n\tand\t31, r1, r2\n\tptr.add\tstack[@ptr_calldata], r0, r3\n\tshr.s!\t5, r1, r4\n\tjump.eq\t@.BB0_97\n\tadd\tr0, r0, r5\n.BB0_7:\n\tshl.s\t5, r5, r6\n\tptr.add\tr3, r6, r7\n\tld\tr7, r7\n\tadd\t128, r6, r6\n\tst.1\tr6, r7\n\tadd\t1, r5, r5\n\tsub!\tr5, r4, r6\n\tjump.lt\t@.BB0_7\n.BB0_97:\n\tsub.s!\t0, r2, r5\n\tjump.eq\t@.BB0_9\n\tshl.s\t5, r4, r4\n\tptr.add\tr3, r4, r3\n\tshl.s\t3, r2, r2\n\tadd\t128, r4, r4\n\tld.1\tr4, r5\n\tshl\tr5, r2, r5\n\tshr\tr5, r2, r5\n\tld\tr3, r3\n\tsub\t256, r2, r2\n\tshr\tr3, r2, r3\n\tshl\tr3, r2, r2\n\tor\tr2, r5, r2\n\tst.1\tr4, r2\n.BB0_9:\n\tadd\t@CPI0_1[0], r0, r2\n\tsub.s!\t32, r1, r3\n\tadd\t0, r0, r3\n\tadd.lt\tr2, r0, r3\n\tand\t@CPI0_1[0], r1, r1\n\tsub.s!\t0, r1, r4\n\tadd.le\t0, r0, r2\n\tsub.s!\t@CPI0_1[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tld.1\t128, r4\n\tsub.s!\t@CPI0_2[0], r4, r1\n\tjump.gt\t@.BB0_2\n\tadd\t2, r0, r5\n\tsload\tr5, r1\n\tand!\t1, r1, r2\n\tshr.s\t1, r1, r1\n\tand\t127, r1, r3\n\tadd.ne\tr1, r0, r3\n\tsub.s!\t31, r3, r1\n\tadd\t0, r0, r1\n\tadd.gt\t1, r0, r1\n\tand\t1, r1, r1\n\tsub!\tr2, r1, r1\n\tjump.eq\t@.BB0_13\n.BB0_12:\n\tadd\t@CPI0_19[0], r0, r1\n\tst.1\t0, r1\n\tadd\t34, r0, r1\n\tst.1\t4, r1\n\tadd\t@CPI0_20[0], r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB0_25:\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tsub.s\t4, r0, r1\n\tadd\tstack[@calldatasize], r1, r1\n\tadd\t@CPI0_1[0], r0, r2\n\tsub.s!\t0, r1, r3\n\tadd\t0, r0, r3\n\tadd.lt\tr2, r0, r3\n\tand\t@CPI0_1[0], r1, r1\n\tsub.s!\t0, r1, r4\n\tadd.le\t0, r0, r2\n\tsub.s!\t@CPI0_1[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tsload\tr0, r1\n\tand\t@CPI0_2[0], r1, r1\n\tst.1\t128, r1\n\tadd\t@CPI0_22[0], r0, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_31:\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tadd\tstack[@calldatasize], r0, r1\n\tsub.s\t4, r1, r2\n\tadd\t@CPI0_1[0], r0, r3\n\tsub.s!\t32, r2, r4\n\tadd\t0, r0, r4\n\tadd.lt\tr3, r0, r4\n\tand\t@CPI0_1[0], r2, r2\n\tsub.s!\t0, r2, r5\n\tadd.le\t0, r0, r3\n\tsub.s!\t@CPI0_1[0], r2, r2\n\tadd\tr4, r0, r2\n\tadd.eq\tr3, r0, r2\n\tsub.s!\t0, r2, r2\n\tjump.ne\t@.BB0_2\n\tptr.add\tstack[@ptr_calldata], r0, r2\n\tptr.add.s\t4, r2, r3\n\tld\tr3, r3\n\tsub.s!\t@CPI0_14[0], r3, r4\n\tjump.gt\t@.BB0_2\n\tadd\t35, r3, r4\n\tadd\t@CPI0_1[0], r0, r5\n\tsub!\tr4, r1, r6\n\tadd\t0, r0, r6\n\tadd.ge\tr5, r0, r6\n\tand\t@CPI0_1[0], r1, r1\n\tand\t@CPI0_1[0], r4, r4\n\tsub!\tr4, r1, r7\n\tadd.ge\t0, r0, r5\n\txor\tr4, r1, r1\n\tsub.s!\t@CPI0_1[0], r1, r1\n\tadd\tr6, r0, r1\n\tadd.eq\tr5, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tadd\t4, r3, r1\n\tptr.add\tr2, r1, r1\n\tld\tr1, r1\n\tsub.s!\t@CPI0_14[0], r1, r2\n\tjump.gt\t@.BB0_4\n\tadd\t63, r1, r2\n\tsub.s\t32, r0, r6\n\tand\tr2, r6, r2\n\tld.1\t64, r9\n\tadd\tr9, r2, r2\n\tsub!\tr2, r9, r4\n\tadd\t0, r0, r4\n\tadd.lt\t1, r0, r4\n\tsub.s!\t@CPI0_14[0], r2, r5\n\tjump.gt\t@.BB0_4\n\tand!\t1, r4, r4\n\tjump.ne\t@.BB0_4\n\tst.1\t64, r2\n\tst.1.inc\tr9, r1, r2\n\tadd\t36, r3, r4\n\tadd\tr1, r4, r3\n\tadd\tstack[@calldatasize], r0, r5\n\tsub!\tr3, r5, r3\n\tjump.gt\t@.BB0_2\n\tadd\tr6, r0, stack-[4]\n\tand\t31, r1, r3\n\tptr.add\tstack[@ptr_calldata], r4, r4\n\tshr.s!\t5, r1, r5\n\tjump.eq\t@.BB0_94\n\tadd\tr0, r0, r6\n.BB0_41:\n\tshl.s\t5, r6, r7\n\tadd\tr2, r7, r8\n\tptr.add\tr4, r7, r7\n\tld\tr7, r7\n\tst.1\tr8, r7\n\tadd\t1, r6, r6\n\tsub!\tr6, r5, r7\n\tjump.lt\t@.BB0_41\n.BB0_94:\n\tsub.s!\t0, r3, r6\n\tjump.eq\t@.BB0_43\n\tshl.s\t5, r5, r5\n\tptr.add\tr4, r5, r4\n\tadd\tr2, r5, r5\n\tshl.s\t3, r3, r3\n\tld.1\tr5, r6\n\tshl\tr6, r3, r6\n\tshr\tr6, r3, r6\n\tld\tr4, r4\n\tsub\t256, r3, r3\n\tshr\tr4, r3, r4\n\tshl\tr4, r3, r3\n\tor\tr3, r6, r3\n\tst.1\tr5, r3\n.BB0_43:\n\tadd\tr2, r1, r1\n\tst.1\tr1, r0\n\tld.1\tr9, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_44\n\tadd\t2, r0, r4\n\tsload\tr4, r3\n\tand!\t1, r3, r5\n\tshr.s\t1, r3, r1\n\tand\t127, r1, r2\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t31, r1, r2\n\tadd\t0, r0, r2\n\tadd.gt\t1, r0, r2\n\txor\tr3, r2, r2\n\tand!\t1, r2, r2\n\tjump.ne\t@.BB0_12\n\tld.1\t64, r9\n\tst.1.inc\tr9, r1, r2\n\tsub.s!\t0, r5, r5\n\tjump.ne\t@.BB0_52\n\tsub.s\t256, r0, r4\n\tand\tr3, r4, r3\n\tst.1\tr2, r3\n\tsub.s!\t0, r1, r1\n\tadd\t32, r0, r3\n\tadd.eq\t0, r0, r3\n\tjump\t@.BB0_48\n.BB0_13:\n\tsub.s!\t32, r3, r1\n\tjump.lt\t@.BB0_17\n\tadd\tr3, r0, stack-[2]\n\tadd\tr5, r0, stack-[3]\n\tst.1\t0, r5\n\tadd\t@CPI0_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI0_3[0], r1, r1\n\tadd\t32784, r0, r2\n\tadd\tr4, r0, stack-[4]\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tadd\tstack-[4], r0, r4\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_2\n\tld\tr1, r1\n\tadd\tstack-[2], r0, r2\n\tadd\t31, r2, r2\n\tshr.s\t5, r2, r2\n\tadd\tr1, r2, r2\n\tsub!\tr1, r2, r3\n\tadd\tstack-[3], r0, r5\n\tjump.ge\t@.BB0_17\n.BB0_18:\n\tsstore\tr1, r0\n\tadd\t1, r1, r1\n\tsub!\tr1, r2, r3\n\tjump.lt\t@.BB0_18\n.BB0_17:\n\tadd\t@CPI0_4[0], r0, r1\n\tsstore\tr5, r1\n\tsload\tr0, r1\n\tand\t@CPI0_5[0], r1, r1\n\tcontext.this\tr2\n\tor\tr1, r2, r1\n\tsstore\tr0, r1\n\tand\t@CPI0_2[0], r4, r1\n\tadd\t1, r0, r2\n\tsload\tr2, r3\n\tand\t@CPI0_5[0], r3, r3\n\tor\tr3, r1, r1\n\tsstore\tr2, r1\n\tadd\t32, r0, r1\n\tst.2\t256, r1\n\tst.2\t288, r0\n\tadd\t@CPI0_6[0], r0, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_71:\n\tadd\t@CPI0_0[0], r0, r3\n\tsub.s!\t@CPI0_0[0], r1, r4\n\tadd.ge\tr3, r0, r1\n\tsub.s!\t@CPI0_0[0], r8, r4\n\tadd.lt\tr8, r0, r3\n\tshl.s\t64, r3, r3\n\tshl.s\t192, r1, r1\n\tor\tr1, r3, r1\n\tor\t@CPI0_13[0], r1, r1\n\tadd\tr8, r0, stack-[4]\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tadd\tstack-[4], r0, r8\n\tadd\tr1, r0, r3\n\tshr.s\t96, r3, r3\n\tand\t@CPI0_0[0], r3, stack[@returndatasize]\n\tand\t@CPI0_0[0], r3, r3\n\tptr.add\tr1, r0, stack[@ptr_return_data]\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_72\n.BB0_78:\n\tand\t31, r3, r2\n\tshr.s!\t5, r3, r4\n\tjump.eq\t@.BB0_95\n\tadd\tr0, r0, r5\n.BB0_80:\n\tshl.s\t5, r5, r6\n\tadd\tr8, r6, r7\n\tptr.add\tr1, r6, r6\n\tld\tr6, r6\n\tst.1\tr7, r6\n\tadd\t1, r5, r5\n\tsub!\tr5, r4, r6\n\tjump.lt\t@.BB0_80\n.BB0_95:\n\tsub.s!\t0, r2, r5\n\tjump.eq\t@.BB0_82\n\tshl.s\t5, r4, r4\n\tptr.add\tr1, r4, r1\n\tadd\tr8, r4, r4\n\tshl.s\t3, r2, r2\n\tld.1\tr4, r5\n\tshl\tr5, r2, r5\n\tshr\tr5, r2, r5\n\tld\tr1, r1\n\tsub\t256, r2, r2\n\tshr\tr1, r2, r1\n\tshl\tr1, r2, r1\n\tor\tr1, r5, r1\n\tst.1\tr4, r1\n.BB0_82:\n\tadd\t31, r3, r2\n\tsub.s\t32, r0, r1\n\tand\tr2, r1, r4\n\tadd\tr4, r8, r2\n\tsub!\tr2, r4, r4\n\tadd\t0, r0, r4\n\tadd.lt\t1, r0, r4\n\tsub.s!\t@CPI0_14[0], r2, r5\n\tjump.gt\t@.BB0_4\n\tand!\t1, r4, r4\n\tjump.ne\t@.BB0_4\n\tadd\t@CPI0_1[0], r0, r4\n\tsub.s!\t32, r3, r5\n\tadd\t0, r0, r5\n\tadd.lt\tr4, r0, r5\n\tand\t@CPI0_1[0], r3, r6\n\tsub.s!\t0, r6, r7\n\tadd.le\t0, r0, r4\n\tsub.s!\t@CPI0_1[0], r6, r6\n\tadd.ne\tr5, r0, r4\n\tst.1\t64, r2\n\tsub.s!\t0, r4, r4\n\tjump.ne\t@.BB0_2\n\tld.1\tr8, r4\n\tsub.s!\t@CPI0_14[0], r4, r5\n\tjump.gt\t@.BB0_2\n\tadd\tr3, r8, r5\n\tadd\tr4, r8, r3\n\tadd\t31, r3, r4\n\tadd\t@CPI0_1[0], r0, r6\n\tsub!\tr4, r5, r7\n\tadd\t0, r0, r7\n\tadd.ge\tr6, r0, r7\n\tand\t@CPI0_1[0], r4, r4\n\tand\t@CPI0_1[0], r5, r8\n\tsub!\tr4, r8, r9\n\tadd.ge\t0, r0, r6\n\txor\tr4, r8, r4\n\tsub.s!\t@CPI0_1[0], r4, r4\n\tadd\tr7, r0, r4\n\tadd.eq\tr6, r0, r4\n\tsub.s!\t0, r4, r4\n\tjump.ne\t@.BB0_2\n\tld.1.inc\tr3, r3, r4\n\tsub.s!\t@CPI0_14[0], r3, r6\n\tjump.gt\t@.BB0_4\n\tadd\t63, r3, r6\n\tand\tr6, r1, r1\n\tadd\tr1, r2, r1\n\tsub.s!\t@CPI0_14[0], r1, r6\n\tjump.gt\t@.BB0_4\n\tst.1\t64, r1\n\tst.1.inc\tr2, r3, r1\n\tadd\tr3, r4, r6\n\tsub!\tr6, r5, r5\n\tjump.gt\t@.BB0_2\n\tsub.s!\t0, r3, r5\n\tjump.eq\t@.BB0_77\n\tadd\tr0, r0, r5\n.BB0_92:\n\tadd\tr5, r1, r6\n\tadd\tr5, r4, r7\n\tld.1\tr7, r7\n\tst.1\tr6, r7\n\tadd\t32, r5, r5\n\tsub!\tr5, r3, r6\n\tjump.lt\t@.BB0_92\n.BB0_77:\n\tadd\tr3, r1, r1\n\tst.1\tr1, r0\n\tld.1\t64, r1\n\tadd\tr1, r0, stack-[4]\n\tnear_call\tr0, @abi_encode_string, @DEFAULT_UNWIND\n\tadd\tstack-[4], r0, r4\n\tsub\tr1, r4, r1\n\tadd\t@CPI0_0[0], r0, r2\n\tsub.s!\t@CPI0_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tsub.s!\t@CPI0_0[0], r4, r3\n\tadd.lt\tr4, r0, r2\n\tshl.s\t64, r2, r2\n\tshl.s\t96, r1, r1\n\tor\tr1, r2, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_72:\n\tld.1\t64, r2\n\tand\t31, r3, r4\n\tshr.s!\t5, r3, r3\n\tjump.eq\t@.BB0_96\n\tadd\tr0, r0, r5\n.BB0_74:\n\tshl.s\t5, r5, r6\n\tadd\tr2, r6, r7\n\tptr.add\tr1, r6, r6\n\tld\tr6, r6\n\tst.1\tr7, r6\n\tadd\t1, r5, r5\n\tsub!\tr5, r3, r6\n\tjump.lt\t@.BB0_74\n.BB0_96:\n\tsub.s!\t0, r4, r5\n\tjump.eq\t@.BB0_76\n\tshl.s\t5, r3, r3\n\tptr.add\tr1, r3, r1\n\tadd\tr2, r3, r3\n\tshl.s\t3, r4, r4\n\tld.1\tr3, r5\n\tshl\tr5, r4, r5\n\tshr\tr5, r4, r5\n\tld\tr1, r1\n\tsub\t256, r4, r4\n\tshr\tr1, r4, r1\n\tshl\tr1, r4, r1\n\tor\tr1, r5, r1\n\tst.1\tr3, r1\n.BB0_76:\n\tadd\t@CPI0_0[0], r0, r1\n\tadd\tstack[@returndatasize], r0, r3\n\tsub.s!\t@CPI0_0[0], r3, r4\n\tadd.ge\tr1, r0, r3\n\tsub.s!\t@CPI0_0[0], r2, r4\n\tadd.lt\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tshl.s\t96, r3, r2\n\tor\tr2, r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB0_52:\n\tst.1\t0, r4\n\tsub.s!\t0, r1, r3\n\tadd\tr0, r0, r3\n\tjump.eq\t@.BB0_48\n\tadd\t@CPI0_15[0], r0, r4\n\tadd\tr0, r0, r3\n.BB0_54:\n\tadd\tr2, r3, r5\n\tsload\tr4, r6\n\tst.1\tr5, r6\n\tadd\t1, r4, r4\n\tadd\t32, r3, r3\n\tsub!\tr3, r1, r5\n\tjump.lt\t@.BB0_54\n.BB0_48:\n\tadd\t63, r3, r1\n\tadd\tstack-[4], r0, r2\n\tand\tr1, r2, r2\n\tadd\tr2, r9, r1\n\tsub!\tr1, r2, r2\n\tadd\t0, r0, r2\n\tadd.lt\t1, r0, r2\n\tsub.s!\t@CPI0_14[0], r1, r3\n\tjump.gt\t@.BB0_4\n\tand!\t1, r2, r2\n\tjump.ne\t@.BB0_4\n\tst.1\t64, r1\n.BB0_44:\n\tadd\tr9, r0, stack-[3]\n\tadd\t1, r0, r1\n\tsload\tr1, r1\n\tadd\t@CPI0_16[0], r0, r2\n\tst.2\t0, r2\n\tand\t@CPI0_2[0], r1, r1\n\tadd\tr1, r0, stack-[2]\n\tst.2\t4, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI0_17[0], r1, r1\n\tadd\t32770, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tadd\tstack-[3], r0, r7\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_2\n\tld\tr1, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_55\n.BB0_2:\n\tadd\tr0, r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB0_55:\n\tld.1\t64, r4\n\tadd\t@CPI0_18[0], r0, r1\n\tst.1\tr4, r1\n\tadd\t4, r4, r2\n\tcontext.gas_left\tr1\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tld.1\tr7, r8\n\tadd\t36, r4, r3\n\tst.1\tr3, r8\n\tadd\tr4, r0, stack-[1]\n\tadd\t68, r4, r3\n\tsub.s!\t0, r8, r4\n\tjump.eq\t@.BB0_58\n\tadd\tr0, r0, r4\n.BB0_57:\n\tadd\tr4, r3, r5\n\tadd\t32, r4, r4\n\tadd\tr4, r7, r6\n\tld.1\tr6, r6\n\tst.1\tr5, r6\n\tsub!\tr4, r8, r5\n\tjump.lt\t@.BB0_57\n.BB0_58:\n\tadd\tr8, r3, r3\n\tst.1\tr3, r0\n\tadd\tstack-[2], r0, r2\n\tsub.s!\t4, r2, r3\n\tjump.eq\t@.BB0_65\n\tadd\t31, r8, r4\n\tadd\tstack-[4], r0, r3\n\tand\tr4, r3, r5\n\tadd\t@CPI0_0[0], r0, r3\n\tadd\tstack-[1], r0, r6\n\tsub.s!\t@CPI0_0[0], r6, r4\n\tadd\tr3, r0, r4\n\tadd.lt\tr6, r0, r4\n\tshl.s\t64, r4, r4\n\tadd\t68, r5, r6\n\tsub.s!\t@CPI0_0[0], r6, r5\n\tadd\tr3, r0, r5\n\tadd.lt\tr6, r0, r5\n\tshl.s\t96, r5, r5\n\tor\tr5, r4, r5\n\tsub.s!\t@CPI0_0[0], r1, r4\n\tadd.ge\tr3, r0, r1\n\tshl.s\t192, r1, r1\n\tor\tr5, r1, r1\n\tnear_call\tr0, @__farcall, @DEFAULT_UNWIND\n\tadd\tr1, r0, r3\n\tshr.s\t96, r3, r3\n\tand\t@CPI0_0[0], r3, stack[@returndatasize]\n\tand\t@CPI0_0[0], r3, r4\n\tptr.add\tr1, r0, stack[@ptr_return_data]\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_60\n.BB0_65:\n\tadd\tstack-[1], r0, r2\n\tsub.s!\t@CPI0_14[0], r2, r1\n\tjump.gt\t@.BB0_4\n\tst.1\t64, r2\n\tadd\tr0, r0, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_60:\n\tld.1\t64, r2\n\tand\t31, r4, r3\n\tshr.s!\t5, r4, r4\n\tjump.eq\t@.BB0_93\n\tadd\tr0, r0, r5\n.BB0_62:\n\tshl.s\t5, r5, r6\n\tadd\tr2, r6, r7\n\tptr.add\tr1, r6, r6\n\tld\tr6, r6\n\tst.1\tr7, r6\n\tadd\t1, r5, r5\n\tsub!\tr5, r4, r6\n\tjump.lt\t@.BB0_62\n.BB0_93:\n\tsub.s!\t0, r3, r5\n\tjump.eq\t@.BB0_64\n\tshl.s\t5, r4, r4\n\tptr.add\tr1, r4, r1\n\tadd\tr2, r4, r4\n\tshl.s\t3, r3, r3\n\tld.1\tr4, r5\n\tshl\tr5, r3, r5\n\tshr\tr5, r3, r5\n\tld\tr1, r1\n\tsub\t256, r3, r3\n\tshr\tr1, r3, r1\n\tshl\tr1, r3, r1\n\tor\tr1, r5, r1\n\tst.1\tr4, r1\n.BB0_64:\n\tadd\t@CPI0_0[0], r0, r1\n\tadd\tstack[@returndatasize], r0, r3\n\tsub.s!\t@CPI0_0[0], r3, r4\n\tadd.ge\tr1, r0, r3\n\tsub.s!\t@CPI0_0[0], r2, r4\n\tadd.lt\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tshl.s\t96, r3, r2\n\tor\tr2, r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.func_end0:\n\nabi_encode_string:\n.func_begin1:\n\tadd\t32, r0, r3\n\tst.1.inc\tr1, r3, r4\n\tld.1\tr2, r3\n\tst.1\tr4, r3\n\tadd\t64, r1, r1\n\tsub.s!\t0, r3, r4\n\tjump.eq\t@.BB1_3\n\tadd\tr0, r0, r4\n.BB1_2:\n\tadd\tr4, r1, r5\n\tadd\t32, r4, r4\n\tadd\tr4, r2, r6\n\tld.1\tr6, r6\n\tst.1\tr5, r6\n\tsub!\tr4, r3, r5\n\tjump.lt\t@.BB1_2\n.BB1_3:\n\tadd\tr3, r1, r2\n\tst.1\tr2, r0\n\tadd\t31, r3, r2\n\tsub.s\t32, r0, r3\n\tand\tr2, r3, r2\n\tadd\tr1, r2, r1\n\tret\n.func_end1:\n\n__farcall:\n.func_begin2:\n.tmp0:\n\tfar_call\tr1, r2, @.BB2_2\n.tmp1:\n\tadd\t1, r0, r2\n\tret\n.BB2_2:\n.tmp2:\n\tadd\tr0, r0, r2\n\tret\n.func_end2:\n\n__staticcall:\n.func_begin3:\n.tmp3:\n\tfar_call.static\tr1, r2, @.BB3_2\n.tmp4:\n\tadd\t1, r0, r2\n\tret\n.BB3_2:\n.tmp5:\n\tadd\tr0, r0, r2\n\tret\n.func_end3:\n\n\t.data\n\t.p2align\t5\ncalldatasize:\n\t.cell 0\n\n\t.p2align\t5\nreturndatasize:\n\t.cell 0\n\n\t.p2align\t5\nptr_calldata:\n.cell\t0\n\n\t.p2align\t5\nptr_return_data:\n.cell\t0\n\n\t.note.GNU-stack\n\t.rodata\nCPI0_0:\n\t.cell 4294967295\nCPI0_1:\n\t.cell -57896044618658097711785492504343953926634992332820282019728792003956564819968\nCPI0_2:\n\t.cell 1461501637330902918203684832716283019655932542975\nCPI0_3:\n\t.cell 904625697166532776746648320380374280103671757735618107014721178055227736064\nCPI0_4:\n\t.cell 32752267657646007025339471793084214752789782069514630880501147961455261253660\nCPI0_5:\n\t.cell -1461501637330902918203684832716283019655932542976\nCPI0_6:\n\t.cell 53919893334301279589334030174039261352344891250716429051063678533632\nCPI0_7:\n\t.cell 1234177771\nCPI0_8:\n\t.cell 1234177772\nCPI0_9:\n\t.cell 1881300935\nCPI0_10:\n\t.cell 649617121\nCPI0_11:\n\t.cell 1042542147\nCPI0_12:\n\t.cell -18226510593775087650648097941997171614683114522860982354997698438140402860032\nCPI0_13:\n\t.cell 316912650057057350374175801344\nCPI0_14:\n\t.cell 18446744073709551615\nCPI0_15:\n\t.cell 29102676481673041902632991033461445430619272659676223336789171408008386403022\nCPI0_16:\n\t.cell 10867283408178898638301172343726954674910073630256871736220740970449699113859\nCPI0_17:\n\t.cell 904625751086426111047927909714404454142933105326819602152923490636624035840\nCPI0_18:\n\t.cell -47676543097294855039846942252629400703784723785245471391019724957399964975104\nCPI0_19:\n\t.cell 35408467139433450592217433187231851964531694900788300625387963629091585785856\nCPI0_20:\n\t.cell 2852213850513516153367582212096\nCPI0_21:\n\t.cell 2535301200456458802993406410752\nCPI0_22:\n\t.cell 2535301202817642044428229017600\n","bytecode":{"object":"0004000000000002000400000000000200000000030100190000006003300270000000af0430019700030000004103550002000000010355000000af0030019d000100000000001f0000000101200190000000350000c13d0000008001000039000000400010043f0000000001000031000000040110008c000002330000413d0000000201000367000000000101043b000000e001100270000000b60210009c000000440000213d000000b90210009c000000a30000613d000000ba0110009c000002330000c13d0000000001000416000000000110004c000002330000c13d000000040100008a0000000001100031000000b002000041000000000310004c00000000030000190000000003024019000000b001100197000000000410004c000000000200a019000000b00110009c00000000010300190000000001026019000000000110004c000002330000c13d0000000101000039000000000101041a000000b101100197000000400200043d0000000000120435000000af01000041000000af0320009c00000000010240190000004001100210000000c4011001c7000002b80001042e0000000001000416000000000110004c000002330000c13d00000000010000310000009f02100039000000200300008a000000000232016f0000007f0320008c000000650000213d000000c20100004100000000001004350000004101000039000000040010043f000000c301000041000002b900010430000000b70210009c000000b90000613d000000b80110009c000002330000c13d0000000001000416000000000110004c000002330000c13d000000040100008a0000000001100031000000b002000041000000000310004c00000000030000190000000003024019000000b001100197000000000410004c000000000200a019000000b00110009c00000000010300190000000001026019000000000110004c000002330000c13d0000000101000039000000000201041a000000400800043d000000bb0100004100000000001804350000000001000414000000b102200197000000040320008c0000015e0000c13d00000003010003670000000103000031000001710000013d000000400020043f0000001f0210018f00000002030003670000000504100272000000730000613d00000000050000190000000506500210000000000763034f000000000707043b000000800660003900000000007604350000000105500039000000000645004b0000006b0000413d000000000520004c000000820000613d0000000504400210000000000343034f00000003022002100000008004400039000000000504043300000000052501cf000000000525022f000000000303043b0000010002200089000000000323022f00000000022301cf000000000252019f0000000000240435000000b002000041000000200310008c00000000030000190000000003024019000000b001100197000000000410004c000000000200a019000000b00110009c00000000010300190000000001026019000000000110004c000002330000c13d000000800400043d000000b10140009c000002330000213d0000000205000039000000000105041a000000010210019000000001011002700000007f0310018f000000000301c0190000001f0130008c00000000010000190000000101002039000000010110018f000000000112004b0000012f0000613d000000c20100004100000000001004350000002201000039000000040010043f000000c301000041000002b9000104300000000001000416000000000110004c000002330000c13d000000040100008a0000000001100031000000b002000041000000000310004c00000000030000190000000003024019000000b001100197000000000410004c000000000200a019000000b00110009c00000000010300190000000001026019000000000110004c000002330000c13d000000000100041a000000b101100197000000800010043f000000c501000041000002b80001042e0000000001000416000000000110004c000002330000c13d0000000001000031000000040210008a000000b003000041000000200420008c00000000040000190000000004034019000000b002200197000000000520004c000000000300a019000000b00220009c00000000020400190000000002036019000000000220004c000002330000c13d00000002020003670000000403200370000000000303043b000000bd0430009c000002330000213d0000002304300039000000b005000041000000000614004b00000000060000190000000006058019000000b001100197000000b004400197000000000714004b0000000005008019000000000114013f000000b00110009c00000000010600190000000001056019000000000110004c000002330000c13d0000000401300039000000000112034f000000000101043b000000bd0210009c0000003e0000213d0000003f02100039000000200600008a000000000262016f000000400900043d0000000002290019000000000492004b00000000040000190000000104004039000000bd0520009c0000003e0000213d00000001044001900000003e0000c13d000000400020043f0000000002190436000000240430003900000000034100190000000005000031000000000353004b000002330000213d000400000006001d0000001f0310018f00000002044003670000000505100272000001040000613d000000000600001900000005076002100000000008720019000000000774034f000000000707043b00000000007804350000000106600039000000000756004b000000fc0000413d000000000630004c000001130000613d0000000505500210000000000454034f00000000055200190000000303300210000000000605043300000000063601cf000000000636022f000000000404043b0000010003300089000000000434022f00000000033401cf000000000363019f0000000000350435000000000112001900000000000104350000000001090433000000000110004c0000021d0000c13d0000000204000039000000000304041a000000010530019000000001013002700000007f0210018f00000000010260190000001f0210008c00000000020000190000000102002039000000000223013f00000001022001900000009d0000c13d000000400900043d0000000002190436000000000550004c000002040000c13d000001000400008a000000000343016f0000000000320435000000000110004c00000020030000390000000003006019000002110000013d000000200130008c0000014c0000413d000200000003001d000300000005001d0000000000500435000000af010000410000000002000414000000af0320009c0000000001024019000000c001100210000000b2011001c70000801002000039000400000004001d02b702b20000040f00000004040000290000000102200190000002330000613d000000000101043b00000002020000290000001f0220003900000005022002700000000002210019000000000321004b00000003050000290000014c0000813d000000000001041b0000000101100039000000000321004b000001480000413d000000b301000041000000000015041b000000000100041a000000b4011001970000000002000410000000000121019f000000000010041b000000b1014001970000000102000039000000000302041a000000b403300197000000000113019f000000000012041b000000200100003900000100001004430000012000000443000000b501000041000002b80001042e000000af03000041000000af0410009c0000000001038019000000af0480009c00000000030840190000004003300210000000c001100210000000000131019f000000bc011001c7000400000008001d02b702b20000040f000000040800002900000000030100190000006003300270000100af0030019d000000af0330019700030000000103550000000102200190000001de0000613d0000001f0230018f00000005043002720000017d0000613d000000000500001900000005065002100000000007680019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b000001750000413d000000000520004c0000018c0000613d0000000504400210000000000141034f00000000044800190000000302200210000000000504043300000000052501cf000000000525022f000000000101043b0000010002200089000000000121022f00000000012101cf000000000151019f00000000001404350000001f02300039000000200100008a000000000412016f0000000002840019000000000442004b00000000040000190000000104004039000000bd0520009c0000003e0000213d00000001044001900000003e0000c13d000000b004000041000000200530008c00000000050000190000000005044019000000b006300197000000000760004c000000000400a019000000b00660009c000000000405c019000000400020043f000000000440004c000002330000c13d0000000004080433000000bd0540009c000002330000213d000000000583001900000000038400190000001f04300039000000b006000041000000000754004b00000000070000190000000007068019000000b004400197000000b008500197000000000984004b0000000006008019000000000484013f000000b00440009c00000000040700190000000004066019000000000440004c000002330000c13d0000000043030434000000bd0630009c0000003e0000213d0000003f06300039000000000116016f0000000001210019000000bd0610009c0000003e0000213d000000400010043f00000000013204360000000006430019000000000556004b000002330000213d000000000530004c000001ce0000613d000000000500001900000000061500190000000007450019000000000707043300000000007604350000002005500039000000000635004b000001c70000413d00000000011300190000000000010435000000400100043d000400000001001d02b702970000040f00000004040000290000000001410049000000af02000041000000af0310009c0000000001028019000000af0340009c000000000204401900000040022002100000006001100210000000000121019f000002b80001042e000000400200043d0000001f0430018f0000000503300272000001eb0000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b000001e30000413d000000000540004c000001fa0000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000000af010000410000000103000031000000af0430009c0000000003018019000000af0420009c000000000102401900000040011002100000006002300210000000000112019f000002b9000104300000000000400435000000000310004c0000000003000019000002110000613d000000be0400004100000000030000190000000005320019000000000604041a000000000065043500000001044000390000002003300039000000000513004b0000020a0000413d0000003f013000390000000402000029000000000221016f0000000001920019000000000221004b00000000020000190000000102004039000000bd0310009c0000003e0000213d00000001022001900000003e0000c13d000000400010043f000300000009001d0000000101000039000000000101041a000000bf020000410000000000200439000000b101100197000200000001001d0000000400100443000000af010000410000000002000414000000af0320009c0000000001024019000000c001100210000000c0011001c7000080020200003902b702b20000040f00000003070000290000000102200190000002330000613d000000000101043b000000000110004c000002350000c13d0000000001000019000002b900010430000000400400043d000000c10100004100000000001404350000000402400039000000000100041400000020030000390000000000320435000000000807043300000024034000390000000000830435000100000004001d0000004403400039000000000480004c0000024b0000613d000000000400001900000000053400190000002004400039000000000674001900000000060604330000000000650435000000000584004b000002440000413d000000000338001900000000000304350000000202000029000000040320008c0000026b0000613d0000001f048000390000000403000029000000000534016f000000af030000410000000106000029000000af0460009c0000000004030019000000000406401900000040044002100000004406500039000000af0560009c000000000503001900000000050640190000006005500210000000000545019f000000af0410009c0000000001038019000000c001100210000000000115019f02b702ad0000040f00000000030100190000006003300270000100af0030019d000000af0430019700030000000103550000000102200190000002710000613d0000000102000029000000bd0120009c0000003e0000213d000000400020043f0000000001000019000002b80001042e000000400200043d0000001f0340018f00000005044002720000027e0000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b000002760000413d000000000530004c0000028d0000613d0000000504400210000000000141034f00000000044200190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000140435000000af010000410000000103000031000000af0430009c0000000003018019000000af0420009c000000000102401900000040011002100000006002300210000000000112019f000002b90001043000000020030000390000000004310436000000000302043300000000003404350000004001100039000000000430004c000002a60000613d000000000400001900000000051400190000002004400039000000000624001900000000060604330000000000650435000000000534004b0000029f0000413d000000000213001900000000000204350000001f02300039000000200300008a000000000232016f0000000001210019000000000001042d000002b0002104210000000102000039000000000001042d0000000002000019000000000001042d000002b5002104230000000102000039000000000001042d0000000002000019000000000001042d000002b700000432000002b80001042e000002b9000104300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff020000000000000000000000000000000000002000000000000000000000000048692066726f6d2043616c6c657200000000000000000000000000000000001cffffffffffffffffffffffff000000000000000000000000000000000000000000000002000000000000000000000000000000400000010000000000000000000000000000000000000000000000000000000000000000000000000049900eeb0000000000000000000000000000000000000000000000000000000049900eec0000000000000000000000000000000000000000000000000000000070225fc70000000000000000000000000000000000000000000000000000000026b85ee1000000000000000000000000000000000000000000000000000000003e23ee43d7b4291c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace1806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b8302000002000000000000000000000000000000240000000000000000000000009698086b000000000000000000000000000000000000000000000000000000004e487b7100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002400000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000800000000000000000cc2c06b03a25f680e937a0e2d9c04767d4fa358d58a9829409ce909ca97d1029"},"methodIdentifiers":{"callAddress()":"3e23ee43","myAddress()":"26b85ee1","newCallGreeter()":"70225fc7","newSetGreet(string)":"49900eec"}},"irOptimized":"/// @use-src 40:\"contracts/Caller.sol\"\nobject \"GCaller_8529\" {\n code {\n {\n /// @src 40:210:860 \"contract GCaller {...\"\n let _1 := memoryguard(0x80)\n if callvalue() { revert(0, 0) }\n let programSize := datasize(\"GCaller_8529\")\n let argSize := sub(codesize(), programSize)\n let newFreePtr := add(_1, and(add(argSize, 31), not(31)))\n if or(gt(newFreePtr, sub(shl(64, 1), 1)), lt(newFreePtr, _1))\n {\n mstore(/** @src -1:-1:-1 */ 0, /** @src 40:210:860 \"contract GCaller {...\" */ shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(/** @src -1:-1:-1 */ 0, /** @src 40:210:860 \"contract GCaller {...\" */ 0x24)\n }\n mstore(64, newFreePtr)\n codecopy(_1, programSize, argSize)\n if slt(sub(add(_1, argSize), _1), 32)\n {\n revert(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 40:210:860 \"contract GCaller {...\"\n let value := mload(_1)\n let _2 := and(value, sub(shl(160, 1), 1))\n if iszero(eq(value, _2))\n {\n revert(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 40:210:860 \"contract GCaller {...\"\n let _3 := sload(/** @src 40:328:344 \"\\\"Hi from Caller\\\"\" */ 0x02)\n /// @src 40:210:860 \"contract GCaller {...\"\n let length := /** @src -1:-1:-1 */ 0\n /// @src 40:210:860 \"contract GCaller {...\"\n let _4 := 1\n length := shr(_4, _3)\n let outOfPlaceEncoding := and(_3, _4)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(/** @src -1:-1:-1 */ 0, /** @src 40:210:860 \"contract GCaller {...\" */ shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(/** @src -1:-1:-1 */ 0, /** @src 40:210:860 \"contract GCaller {...\" */ 0x24)\n }\n if gt(length, 31)\n {\n mstore(/** @src -1:-1:-1 */ 0, /** @src 40:328:344 \"\\\"Hi from Caller\\\"\" */ 0x02)\n /// @src 40:210:860 \"contract GCaller {...\"\n let data := keccak256(/** @src -1:-1:-1 */ 0, /** @src 40:210:860 \"contract GCaller {...\" */ 32)\n let _5 := add(data, shr(5, add(length, 31)))\n let start := data\n for { } lt(start, _5) { start := add(start, _4) }\n {\n sstore(start, /** @src -1:-1:-1 */ 0)\n }\n }\n /// @src 40:210:860 \"contract GCaller {...\"\n sstore(/** @src 40:328:344 \"\\\"Hi from Caller\\\"\" */ 0x02, /** @src 40:210:860 \"contract GCaller {...\" */ add(\"Hi from Caller\", 28))\n let _6 := not(sub(shl(160, 1), 1))\n sstore(/** @src -1:-1:-1 */ 0, /** @src 40:210:860 \"contract GCaller {...\" */ or(and(sload(/** @src -1:-1:-1 */ 0), /** @src 40:210:860 \"contract GCaller {...\" */ _6), /** @src 40:415:419 \"this\" */ address()))\n /// @src 40:210:860 \"contract GCaller {...\"\n sstore(_4, or(and(sload(_4), _6), _2))\n let _7 := mload(64)\n let _8 := datasize(\"GCaller_8529_deployed\")\n codecopy(_7, dataoffset(\"GCaller_8529_deployed\"), _8)\n return(_7, _8)\n }\n }\n /// @use-src 40:\"contracts/Caller.sol\"\n object \"GCaller_8529_deployed\" {\n code {\n {\n /// @src 40:210:860 \"contract GCaller {...\"\n let _1 := memoryguard(0x80)\n let _2 := 64\n mstore(_2, _1)\n let _3 := 4\n if iszero(lt(calldatasize(), _3))\n {\n let _4 := 0\n switch shr(224, calldataload(_4))\n case 0x26b85ee1 {\n if callvalue() { revert(_4, _4) }\n if slt(add(calldatasize(), not(3)), _4) { revert(_4, _4) }\n mstore(_1, and(sload(_4), sub(shl(160, 1), 1)))\n return(_1, 32)\n }\n case 0x3e23ee43 {\n if callvalue() { revert(_4, _4) }\n if slt(add(calldatasize(), not(3)), _4) { revert(_4, _4) }\n let value := and(sload(/** @src 40:263:289 \"address public callAddress\" */ 1), /** @src 40:210:860 \"contract GCaller {...\" */ sub(shl(160, 1), 1))\n let memPos := mload(_2)\n mstore(memPos, value)\n return(memPos, 32)\n }\n case 0x49900eec {\n if callvalue() { revert(_4, _4) }\n let _5 := 32\n if slt(add(calldatasize(), not(3)), _5) { revert(_4, _4) }\n let offset := calldataload(_3)\n let _6 := 0xffffffffffffffff\n if gt(offset, _6) { revert(_4, _4) }\n if iszero(slt(add(offset, 35), calldatasize())) { revert(_4, _4) }\n let _7 := calldataload(add(_3, offset))\n let _8 := array_allocation_size_string(_7)\n let memPtr := mload(_2)\n finalize_allocation(memPtr, _8)\n mstore(memPtr, _7)\n if gt(add(add(offset, _7), 36), calldatasize()) { revert(_4, _4) }\n calldatacopy(add(memPtr, _5), add(offset, 36), _7)\n mstore(add(add(memPtr, _7), _5), _4)\n /// @src 40:615:639 \"greetingBytes.length > 0\"\n let expr := iszero(iszero(/** @src 40:210:860 \"contract GCaller {...\" */ mload(/** @src 40:563:579 \"bytes(_greeting)\" */ memPtr)))\n /// @src 40:614:670 \"(greetingBytes.length > 0) ? _greeting : defaultGreeting\"\n let expr_mpos := /** @src 40:210:860 \"contract GCaller {...\" */ _4\n /// @src 40:614:670 \"(greetingBytes.length > 0) ? _greeting : defaultGreeting\"\n switch expr\n case 0 {\n /// @src 40:210:860 \"contract GCaller {...\"\n let memPtr_1 := mload(_2)\n let ret := _4\n let slotValue := sload(/** @src 40:655:670 \"defaultGreeting\" */ 0x02)\n /// @src 40:210:860 \"contract GCaller {...\"\n let length := _4\n let _9 := 1\n length := shr(_9, slotValue)\n let outOfPlaceEncoding := and(slotValue, _9)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, _5))\n {\n mstore(_4, shl(224, 0x4e487b71))\n mstore(_3, 0x22)\n revert(_4, 36)\n }\n mstore(memPtr_1, length)\n switch outOfPlaceEncoding\n case 0 {\n mstore(add(memPtr_1, _5), and(slotValue, not(255)))\n ret := add(add(memPtr_1, shl(5, iszero(iszero(length)))), _5)\n }\n case 1 {\n mstore(_4, /** @src 40:655:670 \"defaultGreeting\" */ 0x02)\n /// @src 40:210:860 \"contract GCaller {...\"\n let dataPos := 29102676481673041902632991033461445430619272659676223336789171408008386403022\n let i := _4\n for { } lt(i, length) { i := add(i, _5) }\n {\n mstore(add(add(memPtr_1, i), _5), sload(dataPos))\n dataPos := add(dataPos, _9)\n }\n ret := add(add(memPtr_1, i), _5)\n }\n finalize_allocation(memPtr_1, sub(ret, memPtr_1))\n /// @src 40:614:670 \"(greetingBytes.length > 0) ? _greeting : defaultGreeting\"\n expr_mpos := memPtr_1\n }\n default { expr_mpos := memPtr }\n /// @src 40:210:860 \"contract GCaller {...\"\n let value_1 := and(sload(/** @src 40:690:701 \"callAddress\" */ 0x01), /** @src 40:210:860 \"contract GCaller {...\" */ sub(shl(160, 1), 1))\n /// @src 40:680:721 \"IGreeter2(callAddress).setGreet(greeting)\"\n if iszero(extcodesize(value_1))\n {\n /// @src 40:210:860 \"contract GCaller {...\"\n revert(_4, _4)\n }\n /// @src 40:680:721 \"IGreeter2(callAddress).setGreet(greeting)\"\n let _10 := /** @src 40:210:860 \"contract GCaller {...\" */ mload(_2)\n /// @src 40:680:721 \"IGreeter2(callAddress).setGreet(greeting)\"\n mstore(_10, /** @src 40:210:860 \"contract GCaller {...\" */ shl(224, 0x9698086b))\n /// @src 40:680:721 \"IGreeter2(callAddress).setGreet(greeting)\"\n let _11 := call(gas(), value_1, /** @src 40:210:860 \"contract GCaller {...\" */ _4, /** @src 40:680:721 \"IGreeter2(callAddress).setGreet(greeting)\" */ _10, sub(abi_encode_string(add(_10, /** @src 40:210:860 \"contract GCaller {...\" */ _3), /** @src 40:680:721 \"IGreeter2(callAddress).setGreet(greeting)\" */ expr_mpos), _10), _10, /** @src 40:210:860 \"contract GCaller {...\" */ _4)\n /// @src 40:680:721 \"IGreeter2(callAddress).setGreet(greeting)\"\n if iszero(_11)\n {\n /// @src 40:210:860 \"contract GCaller {...\"\n let pos := mload(_2)\n returndatacopy(pos, _4, returndatasize())\n revert(pos, returndatasize())\n }\n /// @src 40:680:721 \"IGreeter2(callAddress).setGreet(greeting)\"\n if _11\n {\n /// @src 40:210:860 \"contract GCaller {...\"\n if gt(_10, _6)\n {\n mstore(_4, shl(224, 0x4e487b71))\n mstore(_3, 0x41)\n revert(_4, 36)\n }\n mstore(_2, _10)\n _4 := _4\n }\n return(_4, _4)\n }\n case 0x70225fc7 {\n if callvalue() { revert(_4, _4) }\n if slt(add(calldatasize(), not(3)), _4) { revert(_4, _4) }\n let value_2 := and(sload(/** @src 40:825:836 \"callAddress\" */ 0x01), /** @src 40:210:860 \"contract GCaller {...\" */ sub(shl(160, 1), 1))\n /// @src 40:815:851 \"IGreeter2(callAddress).callGreeter()\"\n let _12 := /** @src 40:210:860 \"contract GCaller {...\" */ mload(_2)\n /// @src 40:815:851 \"IGreeter2(callAddress).callGreeter()\"\n mstore(_12, /** @src 40:210:860 \"contract GCaller {...\" */ shl(226, 0x35ed0a47))\n /// @src 40:815:851 \"IGreeter2(callAddress).callGreeter()\"\n let _13 := staticcall(gas(), value_2, _12, /** @src 40:210:860 \"contract GCaller {...\" */ _3, /** @src 40:815:851 \"IGreeter2(callAddress).callGreeter()\" */ _12, /** @src 40:210:860 \"contract GCaller {...\" */ _4)\n /// @src 40:815:851 \"IGreeter2(callAddress).callGreeter()\"\n if iszero(_13)\n {\n /// @src 40:210:860 \"contract GCaller {...\"\n let pos_1 := mload(_2)\n returndatacopy(pos_1, _4, returndatasize())\n revert(pos_1, returndatasize())\n }\n /// @src 40:815:851 \"IGreeter2(callAddress).callGreeter()\"\n let expr_mpos_1 := _4\n if _13\n {\n let _14 := returndatasize()\n returndatacopy(_12, /** @src 40:210:860 \"contract GCaller {...\" */ _4, /** @src 40:815:851 \"IGreeter2(callAddress).callGreeter()\" */ _14)\n finalize_allocation(_12, _14)\n let _15 := add(_12, _14)\n /// @src 40:210:860 \"contract GCaller {...\"\n if slt(sub(_15, _12), 32) { revert(_4, _4) }\n let offset_1 := mload(_12)\n if gt(offset_1, 0xffffffffffffffff) { revert(_4, _4) }\n let _16 := add(_12, offset_1)\n if iszero(slt(add(_16, 0x1f), _15)) { revert(_4, _4) }\n let _17 := mload(_16)\n let _18 := array_allocation_size_string(_17)\n let memPtr_2 := mload(_2)\n finalize_allocation(memPtr_2, _18)\n mstore(memPtr_2, _17)\n if gt(add(add(_16, _17), 32), _15) { revert(_4, _4) }\n copy_memory_to_memory_with_cleanup(add(_16, 32), add(memPtr_2, 32), _17)\n /// @src 40:815:851 \"IGreeter2(callAddress).callGreeter()\"\n expr_mpos_1 := memPtr_2\n }\n /// @src 40:210:860 \"contract GCaller {...\"\n let memPos_1 := mload(_2)\n return(memPos_1, sub(abi_encode_string(memPos_1, expr_mpos_1), memPos_1))\n }\n }\n revert(0, 0)\n }\n function finalize_allocation(memPtr, size)\n {\n let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n mstore(64, newFreePtr)\n }\n function array_allocation_size_string(length) -> size\n {\n if gt(length, 0xffffffffffffffff)\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n size := add(and(add(length, 31), not(31)), 0x20)\n }\n function copy_memory_to_memory_with_cleanup(src, dst, length)\n {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n function abi_encode_string(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n let length := mload(value0)\n mstore(add(headStart, 32), length)\n copy_memory_to_memory_with_cleanup(add(value0, 32), add(headStart, 64), length)\n tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n }\n }\n data \".metadata\" hex\"a264697066735822122023ed7494a3c851b54638a538e10284a07eb2354f9ff1fd3f11d3ecdb081936c464736f6c63430008120033\"\n }\n}\n","hash":"010000c7c84739d81f74401318baf670e006c2fcf1af2b73eeecd995dd439e5d","factoryDependencies":{}},"IGreeter2":{"abi":[{"inputs":[],"name":"callGreeter","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"greeting","type":"string"}],"name":"setGreet","outputs":[],"stateMutability":"nonpayable","type":"function"}],"metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"callGreeter\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"greeting\",\"type\":\"string\"}],\"name\":\"setGreet\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Caller.sol\":\"IGreeter2\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"contracts/Caller.sol\":{\"keccak256\":\"0xacce13b84a5ad11718762299753c4c8443cf5532dc0c70a1e949da7b956f3a73\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://32761e9c6e61589e2bba1e4c553acb5741640c8a6dd12708d7f5581243f78795\",\"dweb:/ipfs/QmaMmTC3pQfP4fc7LVtjPkVLQa6YesfWja6nmSu23cmsqy\"]}},\"version\":1}","evm":{"legacyAssembly":null,"assembly":null,"bytecode":null,"methodIdentifiers":{"callGreeter()":"d7b4291c","setGreet(string)":"9698086b"}},"irOptimized":""}},"contracts/Greeter.sol":{"Greeter":{"abi":[{"inputs":[{"internalType":"string","name":"_greeting","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"greeting","type":"string"}],"name":"SetGreeting","type":"event"},{"inputs":[],"name":"greet","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_greeting","type":"string"}],"name":"setGreeting","outputs":[],"stateMutability":"nonpayable","type":"function"}],"metadata":{"optimizer_settings":"M3B3","solc_metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_greeting\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"greeting\",\"type\":\"string\"}],\"name\":\"SetGreeting\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"greet\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_greeting\",\"type\":\"string\"}],\"name\":\"setGreeting\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Greeter.sol\":\"Greeter\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"contracts/Greeter.sol\":{\"keccak256\":\"0x375b6ab84b732f75ff95e85a809c665b17784764a5878ace7fde8f49940a89df\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://a5301bb97fe4994265c18bc74bb884c6803dee0f9189d12940b6a8a36db306d3\",\"dweb:/ipfs/QmbeTs6V2bRra1Kau41vJu45iNhrBNWz4DvMaRtnGRWDic\"]}},\"version\":1}","zk_version":"1.3.9"},"evm":{"legacyAssembly":null,"assembly":"\t.text\n\t.file\t\"Greeter.sol:Greeter\"\n\t.globl\t__entry\n__entry:\n.func_begin0:\n\tnop\tstack+=[5]\n\tptr.add\tr1, r0, stack[@ptr_calldata]\n\tshr.s\t96, r1, r1\n\tand\t@CPI0_0[0], r1, stack[@calldatasize]\n\tadd\t128, r0, r1\n\tst.1\t64, r1\n\tand!\t1, r2, r1\n\tjump.ne\t@.BB0_1\n\tadd\tstack[@calldatasize], r0, r1\n\tsub.s!\t4, r1, r1\n\tjump.lt\t@.BB0_2\n\tptr.add\tstack[@ptr_calldata], r0, r1\n\tld\tr1, r1\n\tshr.s\t224, r1, r1\n\tsub.s!\t@CPI0_5[0], r1, r2\n\tjump.eq\t@.BB0_76\n\tsub.s!\t@CPI0_6[0], r1, r1\n\tjump.ne\t@.BB0_2\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tadd\tstack[@calldatasize], r0, r1\n\tsub.s\t4, r1, r2\n\tadd\t@CPI0_2[0], r0, r3\n\tsub.s!\t32, r2, r4\n\tadd\t0, r0, r4\n\tadd.lt\tr3, r0, r4\n\tand\t@CPI0_2[0], r2, r2\n\tsub.s!\t0, r2, r5\n\tadd.le\t0, r0, r3\n\tsub.s!\t@CPI0_2[0], r2, r2\n\tadd\tr4, r0, r2\n\tadd.eq\tr3, r0, r2\n\tsub.s!\t0, r2, r2\n\tjump.ne\t@.BB0_2\n\tptr.add\tstack[@ptr_calldata], r0, r2\n\tptr.add.s\t4, r2, r3\n\tld\tr3, r3\n\tsub.s!\t@CPI0_1[0], r3, r4\n\tjump.gt\t@.BB0_2\n\tadd\t35, r3, r4\n\tadd\t@CPI0_2[0], r0, r5\n\tsub!\tr4, r1, r6\n\tadd\t0, r0, r6\n\tadd.ge\tr5, r0, r6\n\tand\t@CPI0_2[0], r1, r1\n\tand\t@CPI0_2[0], r4, r4\n\tsub!\tr4, r1, r7\n\tadd.ge\t0, r0, r5\n\txor\tr4, r1, r1\n\tsub.s!\t@CPI0_2[0], r1, r1\n\tadd\tr6, r0, r1\n\tadd.eq\tr5, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tadd\t4, r3, r1\n\tptr.add\tr2, r1, r1\n\tld\tr1, r2\n\tsub.s!\t@CPI0_1[0], r2, r1\n\tjump.gt\t@.BB0_5\n\tadd\t191, r2, r4\n\tsub.s\t32, r0, r1\n\tand\tr4, r1, r4\n\tsub.s!\t@CPI0_1[0], r4, r5\n\tjump.gt\t@.BB0_5\n\tst.1\t64, r4\n\tst.1\t128, r2\n\tadd\t36, r3, r4\n\tadd\tr2, r4, r3\n\tadd\tstack[@calldatasize], r0, r5\n\tsub!\tr3, r5, r3\n\tjump.gt\t@.BB0_2\n\tand\t31, r2, r3\n\tptr.add\tstack[@ptr_calldata], r4, r4\n\tshr.s!\t5, r2, r5\n\tjump.eq\t@.BB0_85\n\tadd\tr0, r0, r6\n.BB0_52:\n\tshl.s\t5, r6, r7\n\tptr.add\tr4, r7, r8\n\tld\tr8, r8\n\tadd\t160, r7, r7\n\tst.1\tr7, r8\n\tadd\t1, r6, r6\n\tsub!\tr6, r5, r7\n\tjump.lt\t@.BB0_52\n.BB0_85:\n\tsub.s!\t0, r3, r6\n\tjump.eq\t@.BB0_54\n\tshl.s\t5, r5, r5\n\tptr.add\tr4, r5, r4\n\tshl.s\t3, r3, r3\n\tadd\t160, r5, r5\n\tld.1\tr5, r6\n\tshl\tr6, r3, r6\n\tshr\tr6, r3, r6\n\tld\tr4, r4\n\tsub\t256, r3, r3\n\tshr\tr4, r3, r4\n\tshl\tr4, r3, r3\n\tor\tr3, r6, r3\n\tst.1\tr5, r3\n.BB0_54:\n\tadd\t160, r2, r2\n\tst.1\tr2, r0\n\tld.1\t128, r2\n\tsub.s!\t@CPI0_1[0], r2, r3\n\tjump.gt\t@.BB0_5\n\tsload\tr0, r4\n\tand!\t1, r4, r3\n\tshr.s\t1, r4, r3\n\tand\t127, r3, r5\n\tadd.eq\tr5, r0, r3\n\tsub.s!\t31, r3, r5\n\tadd\t0, r0, r5\n\tadd.gt\t1, r0, r5\n\txor\tr4, r5, r4\n\tand!\t1, r4, r4\n\tjump.ne\t@.BB0_22\n\tsub.s!\t32, r3, r4\n\tjump.lt\t@.BB0_59\n\tadd\t31, r2, r4\n\tshr.s\t5, r4, r4\n\tadd\t@CPI0_7[0], r4, r4\n\tadd\t@CPI0_7[0], r0, r5\n\tsub.s!\t32, r2, r6\n\tadd.lt\tr5, r0, r4\n\tst.1\t0, r0\n\tadd\t31, r3, r3\n\tshr.s\t5, r3, r3\n\tadd\t@CPI0_7[0], r3, r3\n\tsub!\tr4, r3, r5\n\tjump.ge\t@.BB0_59\n.BB0_60:\n\tsstore\tr4, r0\n\tadd\t1, r4, r4\n\tsub!\tr4, r3, r5\n\tjump.lt\t@.BB0_60\n.BB0_59:\n\tsub.s!\t31, r2, r3\n\tjump.le\t@.BB0_72\n\tand!\tr2, r1, r4\n\tadd\t@CPI0_7[0], r0, r3\n\tadd\t160, r0, r5\n\tst.1\t0, r0\n\tjump.eq\t@.BB0_69\n\tadd\t32, r0, r7\n\tadd\t@CPI0_7[0], r0, r3\n\tadd\tr0, r0, r5\n.BB0_67:\n\tadd\tr7, r0, r6\n\tadd\t128, r6, r7\n\tld.1\tr7, r7\n\tsstore\tr3, r7\n\tadd\t32, r6, r7\n\tadd\t1, r3, r3\n\tadd\t32, r5, r5\n\tsub!\tr5, r4, r8\n\tjump.lt\t@.BB0_67\n\tadd\t160, r6, r5\n.BB0_69:\n\tsub!\tr4, r2, r4\n\tjump.ge\t@.BB0_71\n\tshl.s\t3, r2, r4\n\tand\t248, r4, r4\n\tsub.s\t1, r0, r6\n\tshr\tr6, r4, r4\n\txor\tr4, r6, r4\n\tld.1\tr5, r5\n\tand\tr5, r4, r4\n\tsstore\tr3, r4\n.BB0_71:\n\tadd\t1, r0, r3\n\tshl.s\t1, r2, r4\n\tjump\t@.BB0_61\n.BB0_1:\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tadd\tstack[@calldatasize], r0, r1\n\tadd\t31, r1, r2\n\tsub.s\t32, r0, r9\n\tand\tr2, r9, r4\n\tld.1\t64, r2\n\tadd\tr4, r2, r3\n\tsub!\tr3, r4, r4\n\tadd\t0, r0, r4\n\tadd.lt\t1, r0, r4\n\tsub.s!\t@CPI0_1[0], r3, r5\n\tjump.gt\t@.BB0_5\n\tand!\t1, r4, r4\n\tjump.ne\t@.BB0_5\n\tst.1\t64, r3\n\tand\t31, r1, r3\n\tptr.add\tstack[@ptr_calldata], r0, r4\n\tshr.s!\t5, r1, r5\n\tjump.eq\t@.BB0_86\n\tadd\tr0, r0, r6\n.BB0_8:\n\tshl.s\t5, r6, r7\n\tadd\tr2, r7, r8\n\tptr.add\tr4, r7, r7\n\tld\tr7, r7\n\tst.1\tr8, r7\n\tadd\t1, r6, r6\n\tsub!\tr6, r5, r7\n\tjump.lt\t@.BB0_8\n.BB0_86:\n\tsub.s!\t0, r3, r6\n\tjump.eq\t@.BB0_10\n\tshl.s\t5, r5, r5\n\tptr.add\tr4, r5, r4\n\tadd\tr2, r5, r5\n\tshl.s\t3, r3, r3\n\tld.1\tr5, r6\n\tshl\tr6, r3, r6\n\tshr\tr6, r3, r6\n\tld\tr4, r4\n\tsub\t256, r3, r3\n\tshr\tr4, r3, r4\n\tshl\tr4, r3, r3\n\tor\tr3, r6, r3\n\tst.1\tr5, r3\n.BB0_10:\n\tadd\t@CPI0_2[0], r0, r3\n\tsub.s!\t32, r1, r4\n\tadd\t0, r0, r4\n\tadd.lt\tr3, r0, r4\n\tand\t@CPI0_2[0], r1, r5\n\tsub.s!\t0, r5, r6\n\tadd.le\t0, r0, r3\n\tsub.s!\t@CPI0_2[0], r5, r5\n\tadd.ne\tr4, r0, r3\n\tsub.s!\t0, r3, r3\n\tjump.ne\t@.BB0_2\n\tld.1\tr2, r4\n\tsub.s!\t@CPI0_1[0], r4, r3\n\tjump.gt\t@.BB0_2\n\tadd\tr2, r1, r3\n\tadd\tr4, r2, r1\n\tadd\t31, r1, r2\n\tadd\t@CPI0_2[0], r0, r4\n\tsub!\tr2, r3, r5\n\tadd\t0, r0, r5\n\tadd.ge\tr4, r0, r5\n\tand\t@CPI0_2[0], r2, r2\n\tand\t@CPI0_2[0], r3, r6\n\tsub!\tr2, r6, r7\n\tadd.ge\t0, r0, r4\n\txor\tr2, r6, r2\n\tsub.s!\t@CPI0_2[0], r2, r2\n\tadd\tr5, r0, r2\n\tadd.eq\tr4, r0, r2\n\tsub.s!\t0, r2, r2\n\tjump.ne\t@.BB0_2\n\tld.1\tr1, r2\n\tsub.s!\t@CPI0_1[0], r2, r4\n\tjump.le\t@.BB0_14\n.BB0_5:\n\tadd\t@CPI0_10[0], r0, r1\n\tst.1\t0, r1\n\tadd\t65, r0, r1\n\tst.1\t4, r1\n\tadd\t@CPI0_11[0], r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB0_76:\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tsub.s\t4, r0, r1\n\tadd\tstack[@calldatasize], r1, r1\n\tadd\t@CPI0_2[0], r0, r2\n\tsub.s!\t0, r1, r3\n\tadd\t0, r0, r3\n\tadd.lt\tr2, r0, r3\n\tand\t@CPI0_2[0], r1, r1\n\tsub.s!\t0, r1, r4\n\tadd.le\t0, r0, r2\n\tsub.s!\t@CPI0_2[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.eq\t@.BB0_78\n.BB0_2:\n\tadd\tr0, r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB0_78:\n\tsload\tr0, r3\n\tand!\t1, r3, r4\n\tshr.s\t1, r3, r1\n\tand\t127, r1, r2\n\tadd\tr1, r0, r7\n\tadd.eq\tr2, r0, r7\n\tsub.s!\t31, r7, r2\n\tadd\t0, r0, r2\n\tadd.gt\t1, r0, r2\n\txor\tr3, r2, r2\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_79\n.BB0_22:\n\tadd\t@CPI0_10[0], r0, r1\n\tst.1\t0, r1\n\tadd\t34, r0, r1\n\tst.1\t4, r1\n\tadd\t@CPI0_11[0], r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB0_79:\n\tld.1\t64, r1\n\tst.1.inc\tr1, r7, r2\n\tsub.s!\t0, r4, r4\n\tjump.eq\t@.BB0_81\n\tst.1\t0, r0\n\tsub.s!\t0, r7, r3\n\tadd\tr0, r0, r3\n\tjump.eq\t@.BB0_80\n\tadd\t@CPI0_7[0], r0, r4\n\tadd\tr0, r0, r3\n.BB0_84:\n\tadd\tr2, r3, r5\n\tsload\tr4, r6\n\tst.1\tr5, r6\n\tadd\t1, r4, r4\n\tadd\t32, r3, r3\n\tsub!\tr3, r7, r5\n\tjump.lt\t@.BB0_84\n\tjump\t@.BB0_80\n.BB0_14:\n\tadd\t63, r2, r4\n\tand\tr4, r9, r4\n\tld.1\t64, r7\n\tadd\tr7, r4, r4\n\tsub!\tr4, r7, r5\n\tadd\t0, r0, r5\n\tadd.lt\t1, r0, r5\n\tsub.s!\t@CPI0_1[0], r4, r6\n\tjump.gt\t@.BB0_5\n\tand!\t1, r5, r5\n\tjump.ne\t@.BB0_5\n\tst.1\t64, r4\n\tst.1.inc\tr7, r2, r6\n\tadd\tr1, r2, r4\n\tadd\t32, r4, r4\n\tsub!\tr4, r3, r3\n\tjump.gt\t@.BB0_2\n\tsub.s!\t0, r2, r3\n\tjump.eq\t@.BB0_20\n\tadd\tr0, r0, r3\n.BB0_19:\n\tadd\tr3, r6, r4\n\tadd\t32, r3, r3\n\tadd\tr3, r1, r5\n\tld.1\tr5, r5\n\tst.1\tr4, r5\n\tsub!\tr3, r2, r4\n\tjump.lt\t@.BB0_19\n.BB0_20:\n\tadd\tr6, r2, r1\n\tst.1\tr1, r0\n\tld.1\tr7, r4\n\tsub.s!\t@CPI0_1[0], r4, r1\n\tjump.gt\t@.BB0_5\n\tsload\tr0, r1\n\tand!\t1, r1, r2\n\tshr.s\t1, r1, r1\n\tand\t127, r1, r3\n\tadd.ne\tr1, r0, r3\n\tsub.s!\t31, r3, r1\n\tadd\t0, r0, r1\n\tadd.gt\t1, r0, r1\n\tand\t1, r1, r1\n\tsub!\tr2, r1, r1\n\tjump.ne\t@.BB0_22\n\tsub.s!\t32, r3, r1\n\tjump.lt\t@.BB0_27\n\tadd\tr3, r0, stack-[1]\n\tadd\tr4, r0, stack-[3]\n\tst.1\t0, r0\n\tadd\t@CPI0_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI0_3[0], r1, r1\n\tadd\t32784, r0, r2\n\tadd\tr9, r0, stack-[5]\n\tadd\tr7, r0, stack-[4]\n\tadd\tr6, r0, stack-[2]\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tadd\tstack-[2], r0, r6\n\tadd\tstack-[4], r0, r7\n\tadd\tstack-[5], r0, r9\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_2\n\tadd\tstack-[3], r0, r4\n\tadd\t31, r4, r2\n\tshr.s\t5, r2, r2\n\tsub.s!\t32, r4, r3\n\tadd.lt\t0, r0, r2\n\tld\tr1, r3\n\tadd\tstack-[1], r0, r1\n\tadd\t31, r1, r1\n\tshr.s\t5, r1, r1\n\tadd\tr3, r1, r1\n\tadd\tr3, r2, r2\n\tsub!\tr2, r1, r3\n\tjump.ge\t@.BB0_27\n.BB0_28:\n\tsstore\tr2, r0\n\tadd\t1, r2, r2\n\tsub!\tr2, r1, r3\n\tjump.lt\t@.BB0_28\n.BB0_27:\n\tsub.s!\t31, r4, r1\n\tjump.le\t@.BB0_37\n\tadd\tr4, r0, stack-[3]\n\tst.1\t0, r0\n\tadd\t@CPI0_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI0_3[0], r1, r1\n\tadd\t32784, r0, r2\n\tadd\tr9, r0, stack-[5]\n\tadd\tr7, r0, stack-[4]\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tadd\tstack-[4], r0, r6\n\tadd\tstack-[5], r0, r3\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_2\n\tadd\tstack-[3], r0, r7\n\tand!\tr7, r3, r3\n\tadd\t32, r0, r2\n\tld\tr1, r1\n\tjump.eq\t@.BB0_34\n\tadd\t32, r0, r2\n\tadd\tr0, r0, r4\n.BB0_33:\n\tadd\tr2, r6, r5\n\tld.1\tr5, r5\n\tsstore\tr1, r5\n\tadd\t32, r2, r2\n\tadd\t1, r1, r1\n\tadd\t32, r4, r4\n\tsub!\tr4, r3, r5\n\tjump.lt\t@.BB0_33\n.BB0_34:\n\tsub!\tr3, r7, r3\n\tjump.ge\t@.BB0_36\n\tshl.s\t3, r7, r3\n\tand\t248, r3, r3\n\tsub.s\t1, r0, r4\n\tshr\tr4, r3, r3\n\txor\tr3, r4, r3\n\tadd\tr2, r6, r2\n\tld.1\tr2, r2\n\tand\tr2, r3, r2\n\tsstore\tr1, r2\n.BB0_36:\n\tadd\t1, r0, r1\n\tshl.s\t1, r7, r2\n\tjump\t@.BB0_29\n.BB0_81:\n\tsub.s\t256, r0, r4\n\tand\tr3, r4, r3\n\tst.1\tr2, r3\n\tsub.s!\t0, r7, r2\n\tadd\t32, r0, r3\n\tadd.eq\t0, r0, r3\n.BB0_80:\n\tadd\t32, r3, r2\n\tadd\tr1, r0, stack-[5]\n\tnear_call\tr0, @finalize_allocation, @DEFAULT_UNWIND\n\tld.1\t64, r1\n\tadd\tr1, r0, stack-[4]\n\tadd\tstack-[5], r0, r2\n\tnear_call\tr0, @abi_encode_string, @DEFAULT_UNWIND\n\tadd\tstack-[4], r0, r4\n\tsub\tr1, r4, r1\n\tadd\t@CPI0_0[0], r0, r2\n\tsub.s!\t@CPI0_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tsub.s!\t@CPI0_0[0], r4, r3\n\tadd.lt\tr4, r0, r2\n\tshl.s\t64, r2, r2\n\tshl.s\t96, r1, r1\n\tor\tr1, r2, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_37:\n\tsub.s!\t0, r4, r1\n\tadd\tr0, r0, r1\n\tjump.eq\t@.BB0_39\n\tld.1\tr6, r1\n.BB0_39:\n\tshl.s\t3, r4, r2\n\tsub.s\t1, r0, r3\n\tshr\tr3, r2, r2\n\txor\tr2, r3, r2\n\tand\tr1, r2, r2\n\tshl.s\t1, r4, r1\n.BB0_29:\n\tor\tr2, r1, r1\n\tsstore\tr0, r1\n\tadd\t32, r0, r1\n\tst.2\t256, r1\n\tst.2\t288, r0\n\tadd\t@CPI0_4[0], r0, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_72:\n\tsub.s!\t0, r2, r3\n\tadd\tr0, r0, r3\n\tjump.eq\t@.BB0_74\n\tld.1\t160, r3\n.BB0_74:\n\tshl.s\t3, r2, r4\n\tsub.s\t1, r0, r5\n\tshr\tr5, r4, r4\n\txor\tr4, r5, r4\n\tand\tr3, r4, r4\n\tshl.s\t1, r2, r3\n.BB0_61:\n\tor\tr4, r3, r2\n\tsstore\tr0, r2\n\tadd\t32, r0, r3\n\tld.1\t64, r2\n\tst.1.inc\tr2, r3, r4\n\tld.1\t128, r3\n\tst.1\tr4, r3\n\tadd\t64, r2, r4\n\tsub.s!\t0, r3, r5\n\tjump.eq\t@.BB0_64\n\tadd\tr0, r0, r5\n.BB0_63:\n\tadd\tr5, r4, r6\n\tadd\t160, r5, r7\n\tld.1\tr7, r7\n\tst.1\tr6, r7\n\tadd\t32, r5, r5\n\tsub!\tr5, r3, r6\n\tjump.lt\t@.BB0_63\n.BB0_64:\n\tadd\tr3, r4, r4\n\tst.1\tr4, r0\n\tadd\t95, r3, r3\n\tand\tr3, r1, r1\n\tadd\t@CPI0_0[0], r0, r3\n\tsub.s!\t@CPI0_0[0], r2, r4\n\tadd.ge\tr3, r0, r2\n\tshl.s\t64, r2, r2\n\tsub.s!\t@CPI0_0[0], r1, r4\n\tadd.ge\tr3, r0, r1\n\tshl.s\t96, r1, r1\n\tor\tr1, r2, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r4\n\tadd.ge\tr3, r0, r2\n\tshl.s\t192, r2, r2\n\tor\tr2, r1, r1\n\tor\t@CPI0_8[0], r1, r1\n\tadd\t32781, r0, r2\n\tadd\t1, r0, r3\n\tadd\t@CPI0_9[0], r0, r4\n\tnear_call\tr0, @__farcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r1\n\tjump.eq\t@.BB0_2\n\tadd\tr0, r0, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.func_end0:\n\nfinalize_allocation:\n.func_begin1:\n\tadd\t31, r2, r2\n\tsub.s\t32, r0, r3\n\tand\tr2, r3, r2\n\tadd\tr2, r1, r1\n\tsub!\tr1, r2, r2\n\tadd\t0, r0, r2\n\tadd.lt\t1, r0, r2\n\tsub.s!\t@CPI1_0[0], r1, r3\n\tjump.gt\t@.BB1_2\n\tand!\t1, r2, r2\n\tjump.ne\t@.BB1_2\n\tst.1\t64, r1\n\tret\n.BB1_2:\n\tadd\t@CPI1_1[0], r0, r1\n\tst.1\t0, r1\n\tadd\t65, r0, r1\n\tst.1\t4, r1\n\tadd\t@CPI1_2[0], r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.func_end1:\n\nabi_encode_string:\n.func_begin2:\n\tadd\t32, r0, r3\n\tst.1.inc\tr1, r3, r4\n\tld.1\tr2, r3\n\tst.1\tr4, r3\n\tadd\t64, r1, r1\n\tsub.s!\t0, r3, r4\n\tjump.eq\t@.BB2_3\n\tadd\tr0, r0, r4\n.BB2_2:\n\tadd\tr1, r4, r5\n\tadd\t32, r4, r4\n\tadd\tr4, r2, r6\n\tld.1\tr6, r6\n\tst.1\tr5, r6\n\tsub!\tr4, r3, r5\n\tjump.lt\t@.BB2_2\n.BB2_3:\n\tadd\tr1, r3, r2\n\tst.1\tr2, r0\n\tadd\t31, r3, r2\n\tsub.s\t32, r0, r3\n\tand\tr2, r3, r2\n\tadd\tr1, r2, r1\n\tret\n.func_end2:\n\n__farcall:\n.func_begin3:\n.tmp0:\n\tfar_call\tr1, r2, @.BB3_2\n.tmp1:\n\tadd\t1, r0, r2\n\tret\n.BB3_2:\n.tmp2:\n\tadd\tr0, r0, r2\n\tret\n.func_end3:\n\n__staticcall:\n.func_begin4:\n.tmp3:\n\tfar_call.static\tr1, r2, @.BB4_2\n.tmp4:\n\tadd\t1, r0, r2\n\tret\n.BB4_2:\n.tmp5:\n\tadd\tr0, r0, r2\n\tret\n.func_end4:\n\n\t.data\n\t.p2align\t5\ncalldatasize:\n\t.cell 0\n\n\t.p2align\t5\nptr_calldata:\n.cell\t0\n\n\t.note.GNU-stack\n\t.rodata\nCPI0_0:\n\t.cell 4294967295\nCPI0_1:\nCPI1_0:\n\t.cell 18446744073709551615\nCPI0_2:\n\t.cell -57896044618658097711785492504343953926634992332820282019728792003956564819968\nCPI0_3:\n\t.cell 904625697166532776746648320380374280103671757735618107014721178055227736064\nCPI0_4:\n\t.cell 53919893334301279589334030174039261352344891250716429051063678533632\nCPI0_5:\n\t.cell 3484299799\nCPI0_6:\n\t.cell 2752735330\nCPI0_7:\n\t.cell 18569430475105882587588266137607568536673111973893317399460219858819262702947\nCPI0_8:\n\t.cell 904625697166532776746648320380374280103671755200316906558262375061821325312\nCPI0_9:\n\t.cell 35131822852738385190521691112671542401847620160175231689397754584237974187433\nCPI0_10:\nCPI1_1:\n\t.cell 35408467139433450592217433187231851964531694900788300625387963629091585785856\nCPI0_11:\nCPI1_2:\n\t.cell 2852213850513516153367582212096\n","bytecode":{"object":"0002000000000002000500000000000200010000000103550000006001100270000000930010019d0000008001000039000000400010043f0000000101200190000000a80000c13d0000000001000031000000040110008c0000010e0000413d0000000101000367000000000101043b000000e001100270000000980210009c000000fd0000613d000000990110009c0000010e0000c13d0000000001000416000000000110004c0000010e0000c13d0000000001000031000000040210008a0000009503000041000000200420008c000000000400001900000000040340190000009502200197000000000520004c000000000300a019000000950220009c00000000020400190000000002036019000000000220004c0000010e0000c13d00000001020003670000000403200370000000000303043b000000940430009c0000010e0000213d00000023043000390000009505000041000000000614004b0000000006000019000000000605801900000095011001970000009504400197000000000714004b0000000005008019000000000114013f000000950110009c00000000010600190000000001056019000000000110004c0000010e0000c13d0000000401300039000000000112034f000000000201043b000000940120009c000000f70000213d000000bf04200039000000200100008a000000000414016f000000940540009c000000f70000213d000000400040043f000000800020043f000000240430003900000000034200190000000005000031000000000353004b0000010e0000213d0000001f0320018f00000001044003670000000505200272000000560000613d00000000060000190000000507600210000000000874034f000000000808043b000000a00770003900000000008704350000000106600039000000000756004b0000004e0000413d000000000630004c000000650000613d0000000505500210000000000454034f0000000303300210000000a005500039000000000605043300000000063601cf000000000636022f000000000404043b0000010003300089000000000434022f00000000033401cf000000000363019f0000000000350435000000a0022000390000000000020435000000800200043d000000940320009c000000f70000213d000000000400041a000000010340019000000001034002700000007f0530018f00000000030560190000001f0530008c00000000050000190000000105002039000000000454013f00000001044001900000011c0000c13d000000200430008c000000870000413d0000001f0420003900000005044002700000009a044000410000009a05000041000000200620008c000000000405401900000000000004350000001f0330003900000005033002700000009a03300041000000000534004b000000870000813d000000000004041b0000000104400039000000000534004b000000830000413d0000001f0320008c000001dd0000a13d00000000041201700000009a03000041000000a00500003900000000000004350000009b0000613d00000020070000390000009a030000410000000005000019000000000607001900000080076000390000000007070433000000000073041b000000200760003900000001033000390000002005500039000000000845004b000000910000413d000000a005600039000000000424004b000000a50000813d0000000304200210000000f80440018f000000010600008a000000000446022f000000000464013f0000000005050433000000000445016f000000000043041b00000001030000390000000104200210000001e70000013d0000000001000416000000000110004c0000010e0000c13d00000000010000310000001f02100039000000200900008a000000000492016f000000400200043d0000000003240019000000000443004b00000000040000190000000104004039000000940530009c000000f70000213d0000000104400190000000f70000c13d000000400030043f0000001f0310018f00000001040003670000000505100272000000c60000613d000000000600001900000005076002100000000008720019000000000774034f000000000707043b00000000007804350000000106600039000000000756004b000000be0000413d000000000630004c000000d50000613d0000000505500210000000000454034f00000000055200190000000303300210000000000605043300000000063601cf000000000636022f000000000404043b0000010003300089000000000434022f00000000033401cf000000000363019f00000000003504350000009503000041000000200410008c000000000400001900000000040340190000009505100197000000000650004c000000000300a019000000950550009c000000000304c019000000000330004c0000010e0000c13d0000000004020433000000940340009c0000010e0000213d000000000312001900000000012400190000001f021000390000009504000041000000000532004b0000000005000019000000000504801900000095022001970000009506300197000000000762004b0000000004008019000000000262013f000000950220009c00000000020500190000000002046019000000000220004c0000010e0000c13d0000000002010433000000940420009c000001340000a13d0000009d0100004100000000001004350000004101000039000000040010043f0000009e0100004100000248000104300000000001000416000000000110004c0000010e0000c13d000000040100008a00000000011000310000009502000041000000000310004c000000000300001900000000030240190000009501100197000000000410004c000000000200a019000000950110009c00000000010300190000000001026019000000000110004c000001100000613d00000000010000190000024800010430000000000300041a000000010430019000000001013002700000007f0210018f000000000701001900000000070260190000001f0270008c00000000020000190000000102002039000000000223013f0000000102200190000001220000613d0000009d0100004100000000001004350000002201000039000000040010043f0000009e010000410000024800010430000000400100043d0000000002710436000000000440004c000001b40000613d0000000000000435000000000370004c0000000003000019000001ba0000613d0000009a0400004100000000030000190000000005320019000000000604041a000000000065043500000001044000390000002003300039000000000573004b0000012c0000413d000001ba0000013d0000003f04200039000000000494016f000000400700043d0000000004470019000000000574004b00000000050000190000000105004039000000940640009c000000f70000213d0000000105500190000000f70000c13d000000400040043f000000000627043600000000042100190000002004400039000000000334004b0000010e0000213d000000000320004c0000014f0000613d000000000300001900000000046300190000002003300039000000000513001900000000050504330000000000540435000000000423004b000001480000413d000000000126001900000000000104350000000004070433000000940140009c000000f70000213d000000000100041a000000010210019000000001011002700000007f0310018f000000000301c0190000001f0130008c00000000010000190000000101002039000000010110018f000000000112004b0000011c0000c13d000000200130008c000001850000413d000100000003001d000300000004001d000000000000043500000093010000410000000002000414000000930320009c0000000001024019000000c00110021000000096011001c70000801002000039000500000009001d000400000007001d000200000006001d024602410000040f00000002060000290000000407000029000000050900002900000001022001900000010e0000613d00000003040000290000001f024000390000000502200270000000200340008c0000000002004019000000000301043b00000001010000290000001f01100039000000050110027000000000011300190000000002230019000000000312004b000001850000813d000000000002041b0000000102200039000000000312004b000001810000413d0000001f0140008c000001cc0000a13d000300000004001d000000000000043500000093010000410000000002000414000000930320009c0000000001024019000000c00110021000000096011001c70000801002000039000500000009001d000400000007001d024602410000040f0000000406000029000000050300002900000001022001900000010e0000613d000000030700002900000000033701700000002002000039000000000101043b000001a60000613d0000002002000039000000000400001900000000056200190000000005050433000000000051041b000000200220003900000001011000390000002004400039000000000534004b0000019e0000413d000000000373004b000001b10000813d0000000303700210000000f80330018f000000010400008a000000000334022f000000000343013f00000000026200190000000002020433000000000232016f000000000021041b00000001010000390000000102700210000001d60000013d000001000400008a000000000343016f0000000000320435000000000270004c000000200300003900000000030060190000002002300039000500000001001d024602130000040f000000400100043d000400000001001d0000000502000029024602260000040f000000040400002900000000014100490000009302000041000000930310009c0000000001028019000000930340009c000000000204401900000040022002100000006001100210000000000121019f000002470001042e000000000140004c0000000001000019000001d00000613d00000000010604330000000302400210000000010300008a000000000223022f000000000232013f000000000221016f0000000101400210000000000112019f000000000010041b0000002001000039000001000010044300000120000004430000009701000041000002470001042e000000000320004c0000000003000019000001e10000613d000000a00300043d0000000304200210000000010500008a000000000445022f000000000454013f000000000443016f0000000103200210000000000234019f000000000020041b0000002003000039000000400200043d0000000004320436000000800300043d00000000003404350000004004200039000000000530004c000001f90000613d00000000050000190000000006450019000000a007500039000000000707043300000000007604350000002005500039000000000635004b000001f20000413d000000000443001900000000000404350000005f03300039000000000113016f0000009303000041000000930420009c00000000020380190000004002200210000000930410009c00000000010380190000006001100210000000000121019f0000000002000414000000930420009c0000000002038019000000c002200210000000000112019f0000009b011001c70000800d0200003900000001030000390000009c040000410246023c0000040f00000001012001900000010e0000613d0000000001000019000002470001042e0000001f02200039000000200300008a000000000232016f0000000001120019000000000221004b00000000020000190000000102004039000000940310009c000002200000213d0000000102200190000002200000c13d000000400010043f000000000001042d0000009d0100004100000000001004350000004101000039000000040010043f0000009e01000041000002480001043000000020030000390000000004310436000000000302043300000000003404350000004001100039000000000430004c000002350000613d000000000400001900000000054100190000002004400039000000000624001900000000060604330000000000650435000000000534004b0000022e0000413d000000000231001900000000000204350000001f02300039000000200300008a000000000232016f0000000001210019000000000001042d0000023f002104210000000102000039000000000001042d0000000002000019000000000001042d00000244002104230000000102000039000000000001042d0000000002000019000000000001042d0000024600000432000002470001042e000002480001043000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff000000000000000000000000000000000000000000000000ffffffffffffffff80000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000020000000000000000000000000000000020000000000000000000000000000004000000100000000000000000000000000000000000000000000000000000000000000000000000000cfae321700000000000000000000000000000000000000000000000000000000a4136862290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56302000000000000000000000000000000000000000000000000000000000000004dabe8361a35a905ec9d530e301d2e5c6cf44c65cdd7768f522a77a373436da94e487b71000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011daff2aafad75d737db926da0aff783b4537f6a39b6beedf191fe5bc54691ad"},"methodIdentifiers":{"greet()":"cfae3217","setGreeting(string)":"a4136862"}},"irOptimized":"/// @use-src 41:\"contracts/Greeter.sol\"\nobject \"Greeter_8570\" {\n code {\n {\n /// @src 41:62:457 \"contract Greeter {...\"\n mstore(64, memoryguard(0x80))\n if callvalue() { revert(0, 0) }\n let programSize := datasize(\"Greeter_8570\")\n let argSize := sub(codesize(), programSize)\n let memoryDataOffset := allocate_memory(argSize)\n codecopy(memoryDataOffset, programSize, argSize)\n let _1 := add(memoryDataOffset, argSize)\n let _2 := 32\n if slt(sub(_1, memoryDataOffset), _2)\n {\n revert(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 41:62:457 \"contract Greeter {...\"\n let offset := mload(memoryDataOffset)\n let _3 := sub(shl(64, 1), 1)\n if gt(offset, _3)\n {\n revert(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 41:62:457 \"contract Greeter {...\"\n let _4 := add(memoryDataOffset, offset)\n let _5 := 0x1f\n if iszero(slt(add(_4, _5), _1))\n {\n revert(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 41:62:457 \"contract Greeter {...\"\n let _6 := mload(_4)\n if gt(_6, _3)\n {\n mstore(/** @src -1:-1:-1 */ 0, /** @src 41:62:457 \"contract Greeter {...\" */ shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(/** @src -1:-1:-1 */ 0, /** @src 41:62:457 \"contract Greeter {...\" */ 0x24)\n }\n let _7 := not(31)\n let array := allocate_memory(add(and(add(_6, _5), _7), _2))\n mstore(array, _6)\n if gt(add(add(_4, _6), _2), _1)\n {\n revert(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 41:62:457 \"contract Greeter {...\"\n let i := /** @src -1:-1:-1 */ 0\n /// @src 41:62:457 \"contract Greeter {...\"\n for { } lt(i, _6) { i := add(i, _2) }\n {\n mstore(add(add(array, i), _2), mload(add(add(_4, i), _2)))\n }\n mstore(add(add(array, _6), _2), /** @src -1:-1:-1 */ 0)\n /// @src 41:62:457 \"contract Greeter {...\"\n let newLen := mload(array)\n if gt(newLen, _3)\n {\n mstore(/** @src -1:-1:-1 */ 0, /** @src 41:62:457 \"contract Greeter {...\" */ shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(/** @src -1:-1:-1 */ 0, /** @src 41:62:457 \"contract Greeter {...\" */ 0x24)\n }\n let _8 := sload(/** @src -1:-1:-1 */ 0)\n /// @src 41:62:457 \"contract Greeter {...\"\n let length := /** @src -1:-1:-1 */ 0\n /// @src 41:62:457 \"contract Greeter {...\"\n let _9 := 1\n length := shr(_9, _8)\n let outOfPlaceEncoding := and(_8, _9)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, _2))\n {\n mstore(/** @src -1:-1:-1 */ 0, /** @src 41:62:457 \"contract Greeter {...\" */ shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(/** @src -1:-1:-1 */ 0, /** @src 41:62:457 \"contract Greeter {...\" */ 0x24)\n }\n if gt(length, _5)\n {\n mstore(/** @src -1:-1:-1 */ 0, 0)\n /// @src 41:62:457 \"contract Greeter {...\"\n let data := keccak256(/** @src -1:-1:-1 */ 0, /** @src 41:62:457 \"contract Greeter {...\" */ _2)\n let deleteStart := add(data, shr(5, add(newLen, _5)))\n if lt(newLen, _2) { deleteStart := data }\n let _10 := add(data, shr(5, add(length, _5)))\n let start := deleteStart\n for { } lt(start, _10) { start := add(start, _9) }\n {\n sstore(start, /** @src -1:-1:-1 */ 0)\n }\n }\n /// @src 41:62:457 \"contract Greeter {...\"\n let srcOffset := /** @src -1:-1:-1 */ 0\n /// @src 41:62:457 \"contract Greeter {...\"\n srcOffset := _2\n switch gt(newLen, _5)\n case 1 {\n let loopEnd := and(newLen, _7)\n mstore(/** @src -1:-1:-1 */ 0, 0)\n /// @src 41:62:457 \"contract Greeter {...\"\n let dstPtr := keccak256(/** @src -1:-1:-1 */ 0, /** @src 41:62:457 \"contract Greeter {...\" */ _2)\n let i_1 := /** @src -1:-1:-1 */ 0\n /// @src 41:62:457 \"contract Greeter {...\"\n for { } lt(i_1, loopEnd) { i_1 := add(i_1, _2) }\n {\n sstore(dstPtr, mload(add(array, srcOffset)))\n dstPtr := add(dstPtr, _9)\n srcOffset := add(srcOffset, _2)\n }\n if lt(loopEnd, newLen)\n {\n let lastValue := mload(add(array, srcOffset))\n sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), not(0)))))\n }\n sstore(/** @src -1:-1:-1 */ 0, /** @src 41:62:457 \"contract Greeter {...\" */ add(shl(_9, newLen), _9))\n }\n default {\n let value := /** @src -1:-1:-1 */ 0\n /// @src 41:62:457 \"contract Greeter {...\"\n if newLen\n {\n value := mload(add(array, srcOffset))\n }\n sstore(/** @src -1:-1:-1 */ 0, /** @src 41:62:457 \"contract Greeter {...\" */ or(and(value, not(shr(shl(3, newLen), not(0)))), shl(_9, newLen)))\n }\n let _11 := mload(64)\n let _12 := datasize(\"Greeter_8570_deployed\")\n codecopy(_11, dataoffset(\"Greeter_8570_deployed\"), _12)\n return(_11, _12)\n }\n function allocate_memory(size) -> memPtr\n {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n if or(gt(newFreePtr, sub(shl(64, 1), 1)), lt(newFreePtr, memPtr))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n mstore(64, newFreePtr)\n }\n }\n /// @use-src 41:\"contracts/Greeter.sol\"\n object \"Greeter_8570_deployed\" {\n code {\n {\n /// @src 41:62:457 \"contract Greeter {...\"\n let _1 := memoryguard(0x80)\n mstore(64, _1)\n if iszero(lt(calldatasize(), 4))\n {\n let _2 := 0\n switch shr(224, calldataload(_2))\n case 0xa4136862 {\n if callvalue() { revert(_2, _2) }\n let _3 := 32\n if slt(add(calldatasize(), not(3)), _3) { revert(_2, _2) }\n let offset := calldataload(4)\n let _4 := 0xffffffffffffffff\n if gt(offset, _4) { revert(_2, _2) }\n if iszero(slt(add(offset, 35), calldatasize())) { revert(_2, _2) }\n let _5 := calldataload(add(4, offset))\n if gt(_5, _4)\n {\n mstore(_2, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(_2, 36)\n }\n let _6 := not(31)\n finalize_allocation(_1, add(and(add(_5, 0x1f), _6), _3))\n mstore(_1, _5)\n if gt(add(add(offset, _5), 36), calldatasize()) { revert(_2, _2) }\n calldatacopy(add(_1, _3), add(offset, 36), _5)\n mstore(add(add(_1, _5), _3), _2)\n let newLen := mload(_1)\n if gt(newLen, _4)\n {\n mstore(_2, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(_2, 36)\n }\n let _7 := extract_byte_array_length(sload(_2))\n if gt(_7, 0x1f)\n {\n mstore(_2, _2)\n let _8 := 18569430475105882587588266137607568536673111973893317399460219858819262702947\n let deleteStart := add(_8, shr(5, add(newLen, 0x1f)))\n if lt(newLen, _3) { deleteStart := _8 }\n let _9 := add(_8, shr(5, add(_7, 0x1f)))\n let start := deleteStart\n for { } lt(start, _9) { start := add(start, 1) }\n { sstore(start, _2) }\n }\n let srcOffset := _2\n srcOffset := _3\n switch gt(newLen, 0x1f)\n case 1 {\n let loopEnd := and(newLen, _6)\n mstore(_2, _2)\n let dstPtr := 18569430475105882587588266137607568536673111973893317399460219858819262702947\n let i := _2\n for { } lt(i, loopEnd) { i := add(i, _3) }\n {\n sstore(dstPtr, mload(add(_1, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, _3)\n }\n if lt(loopEnd, newLen)\n {\n let lastValue := mload(add(_1, srcOffset))\n sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), not(0)))))\n }\n sstore(_2, add(shl(1, newLen), 1))\n }\n default {\n let value := _2\n if newLen\n {\n value := mload(add(_1, srcOffset))\n }\n sstore(_2, or(and(value, not(shr(shl(3, newLen), not(0)))), shl(1, newLen)))\n }\n /// @src 41:426:448 \"SetGreeting(_greeting)\"\n let _10 := /** @src 41:62:457 \"contract Greeter {...\" */ mload(64)\n /// @src 41:426:448 \"SetGreeting(_greeting)\"\n log1(_10, sub(abi_encode_string(_10, _1), _10), 0x4dabe8361a35a905ec9d530e301d2e5c6cf44c65cdd7768f522a77a373436da9)\n /// @src 41:62:457 \"contract Greeter {...\"\n return(_2, _2)\n }\n case 0xcfae3217 {\n if callvalue() { revert(_2, _2) }\n if slt(add(calldatasize(), not(3)), _2) { revert(_2, _2) }\n let memPtr := mload(64)\n let ret := _2\n let slotValue := sload(_2)\n let length := extract_byte_array_length(slotValue)\n mstore(memPtr, length)\n let _11 := 0x20\n let _12 := 1\n switch and(slotValue, _12)\n case 0 {\n mstore(add(memPtr, _11), and(slotValue, not(255)))\n ret := add(add(memPtr, shl(5, iszero(iszero(length)))), _11)\n }\n case 1 {\n mstore(_2, _2)\n let dataPos := 18569430475105882587588266137607568536673111973893317399460219858819262702947\n let i_1 := _2\n for { } lt(i_1, length) { i_1 := add(i_1, _11) }\n {\n mstore(add(add(memPtr, i_1), _11), sload(dataPos))\n dataPos := add(dataPos, _12)\n }\n ret := add(add(memPtr, i_1), _11)\n }\n finalize_allocation(memPtr, sub(ret, memPtr))\n let memPos := mload(64)\n return(memPos, sub(abi_encode_string(memPos, memPtr), memPos))\n }\n }\n revert(0, 0)\n }\n function finalize_allocation(memPtr, size)\n {\n let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n mstore(64, newFreePtr)\n }\n function abi_encode_string(headStart, value0) -> tail\n {\n let _1 := 32\n mstore(headStart, _1)\n let length := mload(value0)\n mstore(add(headStart, _1), length)\n let i := 0\n for { } lt(i, length) { i := add(i, _1) }\n {\n mstore(add(add(headStart, i), 64), mload(add(add(value0, i), _1)))\n }\n mstore(add(add(headStart, length), 64), 0)\n tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n }\n data \".metadata\" hex\"a26469706673582212205202fe51dd83dc87143aaf4812eb74f95b34eec3501aa105dcaf98250fae7bda64736f6c63430008120033\"\n }\n}\n","hash":"010000a17f8afe26b585d0ba30d0936fd452c648fb955e84549343640e7b131b","factoryDependencies":{}}},"contracts/L1.sol":{"L1":{"abi":[{"inputs":[{"internalType":"address","name":"_recipient","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":[{"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"}],"metadata":{"optimizer_settings":"M3B3","solc_metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_recipient\",\"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\":[{\"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\":{\"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\":{\"contracts/L1.sol\":\"L1\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xe0c8b625a79bac0fe80f17cfb521e072805cc9cef1c96a5caf45b264e74812fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12fd1efc9ad061ef675bd50fb0c8e3c6f2952a09f8df0e3c688b8d81b8918838\",\"dweb:/ipfs/QmawN6PjTwy91pU7ANjCSgbsLc8TDA6hwu9GsFFaNSuhb5\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"contracts/L1.sol\":{\"keccak256\":\"0x10885b5322d6a27339005fb7d11786fcc1d246cddbbb68de5d5fcaf801686010\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://3b6cbfcaaa27313a102ab54478583bfdf4c322d6c707fa2e2ef15a14b637800e\",\"dweb:/ipfs/QmR9XtRrGcyA4DaJ48oKa3MpGFm8XnhWq4HgadzkiqcJ2z\"]}},\"version\":1}","zk_version":"1.3.9"},"evm":{"legacyAssembly":null,"assembly":"\t.text\n\t.file\t\"L1.sol:L1\"\n\t.globl\t__entry\n__entry:\n.func_begin0:\n\tnop\tstack+=[10]\n\tptr.add\tr1, r0, stack[@ptr_calldata]\n\tshr.s\t96, r1, r1\n\tand\t@CPI0_0[0], r1, stack[@calldatasize]\n\tand!\t1, r2, r1\n\tjump.ne\t@.BB0_1\n\tadd\t128, r0, r1\n\tst.1\t64, r1\n\tadd\tstack[@calldatasize], r0, r1\n\tsub.s!\t4, r1, r1\n\tjump.lt\t@.BB0_2\n\tptr.add\tstack[@ptr_calldata], r0, r1\n\tld\tr1, r1\n\tshr.s\t224, r1, r1\n\tsub.s!\t@CPI0_19[0], r1, r2\n\tjump.le\t@.BB0_60\n\tsub.s!\t@CPI0_20[0], r1, r2\n\tjump.gt\t@.BB0_70\n\tsub.s!\t@CPI0_24[0], r1, r2\n\tjump.eq\t@.BB0_111\n\tsub.s!\t@CPI0_25[0], r1, r2\n\tjump.eq\t@.BB0_118\n\tsub.s!\t@CPI0_26[0], r1, r1\n\tjump.ne\t@.BB0_2\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tsub.s\t4, r0, r1\n\tadd\tstack[@calldatasize], r1, r1\n\tadd\t@CPI0_3[0], r0, r2\n\tsub.s!\t0, r1, r3\n\tadd\t0, r0, r3\n\tadd.lt\tr2, r0, r3\n\tand\t@CPI0_3[0], r1, r1\n\tsub.s!\t0, r1, r4\n\tadd.le\t0, r0, r2\n\tsub.s!\t@CPI0_3[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tadd\t4, r0, r5\n\tsload\tr5, r4\n\tand!\t1, r4, r6\n\tshr.s\t1, r4, r1\n\tand\t127, r1, r2\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t31, r1, r2\n\tadd\t0, r0, r2\n\tadd.gt\t1, r0, r2\n\txor\tr4, r2, r2\n\tand!\t1, r2, r2\n\tjump.ne\t@.BB0_15\n\tld.1\t64, r2\n\tst.1.inc\tr2, r1, r3\n\tsub.s!\t0, r6, r6\n\tjump.ne\t@.BB0_129\n\tsub.s\t256, r0, r5\n\tand\tr4, r5, r4\n\tst.1\tr3, r4\n\tsub.s!\t0, r1, r1\n\tadd\t32, r0, r4\n\tadd.eq\t0, r0, r4\n\tjump\t@.BB0_126\n.BB0_1:\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tadd\tstack[@calldatasize], r0, r1\n\tadd\t159, r1, r2\n\tsub.s\t32, r0, r8\n\tand\tr2, r8, r2\n\tadd\t@CPI0_1[0], r2, r3\n\tsub.s!\t@CPI0_2[0], r3, r3\n\tjump.gt\t@.BB0_5\n.BB0_4:\n\tadd\t@CPI0_38[0], r0, r1\n\tst.1\t0, r1\n\tadd\t65, r0, r1\n\tst.1\t4, r1\n\tadd\t@CPI0_39[0], r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB0_5:\n\tst.1\t64, r2\n\tand\t31, r1, r2\n\tptr.add\tstack[@ptr_calldata], r0, r3\n\tshr.s!\t5, r1, r4\n\tjump.eq\t@.BB0_150\n\tadd\tr0, r0, r5\n.BB0_7:\n\tshl.s\t5, r5, r6\n\tptr.add\tr3, r6, r7\n\tld\tr7, r7\n\tadd\t128, r6, r6\n\tst.1\tr6, r7\n\tadd\t1, r5, r5\n\tsub!\tr5, r4, r6\n\tjump.lt\t@.BB0_7\n.BB0_150:\n\tsub.s!\t0, r2, r5\n\tjump.eq\t@.BB0_9\n\tshl.s\t5, r4, r4\n\tptr.add\tr3, r4, r3\n\tshl.s\t3, r2, r2\n\tadd\t128, r4, r4\n\tld.1\tr4, r5\n\tshl\tr5, r2, r5\n\tshr\tr5, r2, r5\n\tld\tr3, r3\n\tsub\t256, r2, r2\n\tshr\tr3, r2, r3\n\tshl\tr3, r2, r2\n\tor\tr2, r5, r2\n\tst.1\tr4, r2\n.BB0_9:\n\tadd\t@CPI0_3[0], r0, r2\n\tsub.s!\t32, r1, r3\n\tadd\t0, r0, r3\n\tadd.lt\tr2, r0, r3\n\tand\t@CPI0_3[0], r1, r1\n\tsub.s!\t0, r1, r4\n\tadd.le\t0, r0, r2\n\tsub.s!\t@CPI0_3[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tld.1\t128, r1\n\tand\t@CPI0_4[0], r1, r4\n\tsub.s!\t@CPI0_4[0], r1, r1\n\tjump.gt\t@.BB0_2\n\tld.1\t64, r11\n\tsub.s!\t@CPI0_5[0], r11, r1\n\tjump.gt\t@.BB0_4\n\tadd\t64, r11, r1\n\tst.1\t64, r1\n\tadd\t14, r0, r1\n\tst.1.inc\tr11, r1, r12\n\tadd\t@CPI0_6[0], r0, r1\n\tst.1\tr12, r1\n\tld.1\t64, r6\n\tsub.s!\t@CPI0_5[0], r6, r1\n\tjump.gt\t@.BB0_4\n\tadd\t64, r6, r1\n\tst.1\t64, r1\n\tadd\t2, r0, r5\n\tst.1.inc\tr6, r5, r7\n\tadd\t@CPI0_7[0], r0, r1\n\tst.1\tr7, r1\n\tld.1\tr11, r10\n\tsub.s!\t@CPI0_8[0], r10, r1\n\tjump.gt\t@.BB0_4\n\tadd\t3, r0, r9\n\tsload\tr9, r1\n\tand!\t1, r1, r2\n\tshr.s\t1, r1, r1\n\tand\t127, r1, r3\n\tadd.ne\tr1, r0, r3\n\tsub.s!\t31, r3, r1\n\tadd\t0, r0, r1\n\tadd.gt\t1, r0, r1\n\tand\t1, r1, r1\n\tsub!\tr2, r1, r1\n\tjump.ne\t@.BB0_15\n\tsub.s!\t32, r3, r1\n\tadd\tr4, r0, stack-[3]\n\tadd\tr6, r0, stack-[8]\n\tadd\tr5, r0, stack-[9]\n\tadd\tr8, r0, stack-[10]\n\tadd\tr7, r0, stack-[7]\n\tjump.lt\t@.BB0_20\n\tadd\tr3, r0, stack-[1]\n\tadd\tr12, r0, stack-[2]\n\tadd\tr11, r0, stack-[4]\n\tadd\tr10, r0, stack-[5]\n\tadd\tr9, r0, stack-[6]\n\tst.1\t0, r9\n\tadd\t@CPI0_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI0_9[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tadd\tstack-[10], r0, r8\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_2\n\tadd\tstack-[5], r0, r10\n\tadd\t31, r10, r2\n\tshr.s\t5, r2, r2\n\tsub.s!\t32, r10, r3\n\tadd.lt\t0, r0, r2\n\tld\tr1, r3\n\tadd\tstack-[1], r0, r1\n\tadd\t31, r1, r1\n\tshr.s\t5, r1, r1\n\tadd\tr3, r1, r1\n\tadd\tr3, r2, r2\n\tsub!\tr2, r1, r3\n\tadd\tstack-[9], r0, r5\n\tadd\tstack-[8], r0, r6\n\tadd\tstack-[7], r0, r7\n\tadd\tstack-[6], r0, r9\n\tadd\tstack-[4], r0, r11\n\tadd\tstack-[2], r0, r12\n\tjump.ge\t@.BB0_20\n.BB0_21:\n\tsstore\tr2, r0\n\tadd\t1, r2, r2\n\tsub!\tr2, r1, r3\n\tjump.lt\t@.BB0_21\n.BB0_20:\n\tsub.s!\t31, r10, r1\n\tjump.le\t@.BB0_30\n\tadd\tr11, r0, stack-[4]\n\tadd\tr10, r0, stack-[5]\n\tadd\tr9, r0, stack-[6]\n\tst.1\t0, r9\n\tadd\t@CPI0_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI0_9[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tadd\tstack-[10], r0, r8\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_2\n\tadd\tstack-[5], r0, r10\n\tand!\tr10, r8, r3\n\tadd\t32, r0, r2\n\tld\tr1, r1\n\tadd\tstack-[8], r0, r6\n\tadd\tstack-[4], r0, r11\n\tjump.eq\t@.BB0_27\n\tadd\t32, r0, r2\n\tadd\tr0, r0, r4\n.BB0_26:\n\tadd\tr2, r11, r5\n\tld.1\tr5, r5\n\tsstore\tr1, r5\n\tadd\t32, r2, r2\n\tadd\t1, r1, r1\n\tadd\t32, r4, r4\n\tsub!\tr4, r3, r5\n\tjump.lt\t@.BB0_26\n.BB0_27:\n\tsub!\tr3, r10, r3\n\tadd\tstack-[7], r0, r7\n\tadd\tstack-[6], r0, r9\n\tjump.ge\t@.BB0_29\n\tshl.s\t3, r10, r3\n\tand\t248, r3, r3\n\tsub.s\t1, r0, r4\n\tshr\tr4, r3, r3\n\txor\tr3, r4, r3\n\tadd\tr2, r11, r2\n\tld.1\tr2, r2\n\tand\tr2, r3, r2\n\tsstore\tr1, r2\n.BB0_29:\n\tadd\t1, r0, r1\n\tshl.s\t1, r10, r2\n\tadd\tstack-[9], r0, r5\n\tjump\t@.BB0_22\n.BB0_60:\n\tsub.s!\t@CPI0_27[0], r1, r2\n\tjump.le\t@.BB0_61\n\tsub.s!\t@CPI0_28[0], r1, r2\n\tjump.eq\t@.BB0_88\n\tsub.s!\t@CPI0_29[0], r1, r2\n\tjump.eq\t@.BB0_91\n\tsub.s!\t@CPI0_30[0], r1, r1\n\tjump.ne\t@.BB0_2\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tsub.s\t4, r0, r1\n\tadd\tstack[@calldatasize], r1, r1\n\tadd\t@CPI0_3[0], r0, r2\n\tsub.s!\t0, r1, r3\n\tadd\t0, r0, r3\n\tadd.lt\tr2, r0, r3\n\tand\t@CPI0_3[0], r1, r1\n\tsub.s!\t0, r1, r4\n\tadd.le\t0, r0, r2\n\tsub.s!\t@CPI0_3[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tld.1\t64, r1\n\tadd\t18, r0, r2\n\tst.1\tr1, r2\n\tadd\t@CPI0_0[0], r0, r2\n\tsub.s!\t@CPI0_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI0_33[0], r1, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_70:\n\tsub.s!\t@CPI0_21[0], r1, r2\n\tjump.eq\t@.BB0_133\n\tsub.s!\t@CPI0_22[0], r1, r2\n\tjump.eq\t@.BB0_141\n\tsub.s!\t@CPI0_23[0], r1, r1\n\tjump.ne\t@.BB0_2\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tsub.s\t4, r0, r1\n\tadd\tstack[@calldatasize], r1, r1\n\tadd\t@CPI0_3[0], r0, r2\n\tsub.s!\t64, r1, r3\n\tadd\t0, r0, r3\n\tadd.lt\tr2, r0, r3\n\tand\t@CPI0_3[0], r1, r1\n\tsub.s!\t0, r1, r4\n\tadd.le\t0, r0, r2\n\tsub.s!\t@CPI0_3[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tptr.add\tstack[@ptr_calldata], r0, r2\n\tptr.add.s\t4, r2, r1\n\tld\tr1, r1\n\tsub.s!\t@CPI0_4[0], r1, r3\n\tjump.gt\t@.BB0_2\n\tptr.add.s\t36, r2, r2\n\tld\tr2, r3\n\tsub.s!\t@CPI0_4[0], r3, r2\n\tjump.gt\t@.BB0_2\n\tst.1\t0, r1\n\tadd\t1, r0, r1\n\tst.1\t32, r1\n\tadd\t64, r0, r2\n\tadd\tr2, r0, stack-[10]\n\tadd\tr0, r0, r1\n\tadd\tr3, r0, stack-[9]\n\tnear_call\tr0, @__keccak256, @DEFAULT_UNWIND\n\tadd\tstack-[9], r0, r2\n\tst.1\t0, r2\n\tst.1\t32, r1\n\tadd\tr0, r0, r1\n\tadd\tstack-[10], r0, r2\n\tnear_call\tr0, @__keccak256, @DEFAULT_UNWIND\n\tsload\tr1, r1\n\tld.1\t64, r2\n\tst.1\tr2, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI0_33[0], r1, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_61:\n\tsub.s!\t@CPI0_31[0], r1, r2\n\tjump.eq\t@.BB0_73\n\tsub.s!\t@CPI0_32[0], r1, r1\n\tjump.ne\t@.BB0_2\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tsub.s\t4, r0, r1\n\tadd\tstack[@calldatasize], r1, r1\n\tadd\t@CPI0_3[0], r0, r2\n\tsub.s!\t64, r1, r3\n\tadd\t0, r0, r3\n\tadd.lt\tr2, r0, r3\n\tand\t@CPI0_3[0], r1, r1\n\tsub.s!\t0, r1, r4\n\tadd.le\t0, r0, r2\n\tsub.s!\t@CPI0_3[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tptr.add\tstack[@ptr_calldata], r0, r1\n\tptr.add.s\t4, r1, r2\n\tld\tr2, r2\n\tsub.s!\t@CPI0_4[0], r2, r3\n\tjump.gt\t@.BB0_2\n\tptr.add.s\t36, r1, r1\n\tld\tr1, r3\n\tcontext.caller\tr1\n\tnear_call\tr0, @fun_approve, @DEFAULT_UNWIND\n\tadd\t1, r0, r1\n\tld.1\t64, r2\n\tst.1\tr2, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI0_33[0], r1, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_111:\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tsub.s\t4, r0, r1\n\tadd\tstack[@calldatasize], r1, r1\n\tadd\t@CPI0_3[0], r0, r2\n\tsub.s!\t64, r1, r3\n\tadd\t0, r0, r3\n\tadd.lt\tr2, r0, r3\n\tand\t@CPI0_3[0], r1, r1\n\tsub.s!\t0, r1, r4\n\tadd.le\t0, r0, r2\n\tsub.s!\t@CPI0_3[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tadd\t4, r0, r1\n\tptr.add\tstack[@ptr_calldata], r1, r1\n\tld\tr1, r1\n\tadd\tr1, r0, stack-[10]\n\tsub.s!\t@CPI0_4[0], r1, r1\n\tjump.gt\t@.BB0_2\n\tcontext.caller\tr1\n\tadd\tr1, r0, stack-[8]\n\tst.1\t0, r1\n\tadd\t1, r0, r1\n\tadd\tr1, r0, stack-[9]\n\tst.1\t32, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI0_12[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_2\n\tld\tr1, r1\n\tadd\tstack-[10], r0, r2\n\tst.1\t0, r2\n\tst.1\t32, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI0_12[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_2\n\tld\tr1, r1\n\tsload\tr1, r1\n\tadd\t36, r0, r2\n\tptr.add\tstack[@ptr_calldata], r2, r2\n\tld\tr2, r2\n\tadd\tr2, r1, r3\n\tsub!\tr3, r2, r1\n\tadd\t0, r0, r1\n\tadd.lt\t1, r0, r1\n\tand!\t1, r1, r1\n\tjump.eq\t@.BB0_117\n.BB0_53:\n\tadd\t@CPI0_38[0], r0, r1\n\tst.1\t0, r1\n\tadd\t17, r0, r1\n\tst.1\t4, r1\n\tadd\t@CPI0_39[0], r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB0_118:\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tsub.s\t4, r0, r1\n\tadd\tstack[@calldatasize], r1, r1\n\tadd\t@CPI0_3[0], r0, r2\n\tsub.s!\t32, r1, r3\n\tadd\t0, r0, r3\n\tadd.lt\tr2, r0, r3\n\tand\t@CPI0_3[0], r1, r1\n\tsub.s!\t0, r1, r4\n\tadd.le\t0, r0, r2\n\tsub.s!\t@CPI0_3[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tadd\t4, r0, r1\n\tptr.add\tstack[@ptr_calldata], r1, r1\n\tld\tr1, r1\n\tsub.s!\t@CPI0_4[0], r1, r2\n\tjump.gt\t@.BB0_2\n\tst.1\t0, r1\n\tst.1\t32, r0\n\tadd\t64, r0, r2\n\tadd\tr0, r0, r1\n\tnear_call\tr0, @__keccak256, @DEFAULT_UNWIND\n\tsload\tr1, r1\n\tld.1\t64, r2\n\tst.1\tr2, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI0_33[0], r1, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_88:\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tsub.s\t4, r0, r1\n\tadd\tstack[@calldatasize], r1, r1\n\tadd\t@CPI0_3[0], r0, r2\n\tsub.s!\t0, r1, r3\n\tadd\t0, r0, r3\n\tadd.lt\tr2, r0, r3\n\tand\t@CPI0_3[0], r1, r1\n\tsub.s!\t0, r1, r4\n\tadd.le\t0, r0, r2\n\tsub.s!\t@CPI0_3[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tadd\t2, r0, r1\n\tsload\tr1, r1\n\tld.1\t64, r2\n\tst.1\tr2, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI0_33[0], r1, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_91:\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tsub.s\t4, r0, r1\n\tadd\tstack[@calldatasize], r1, r1\n\tadd\t@CPI0_3[0], r0, r2\n\tsub.s!\t96, r1, r3\n\tadd\t0, r0, r3\n\tadd.lt\tr2, r0, r3\n\tand\t@CPI0_3[0], r1, r1\n\tsub.s!\t0, r1, r4\n\tadd.le\t0, r0, r2\n\tsub.s!\t@CPI0_3[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tptr.add\tstack[@ptr_calldata], r0, r1\n\tptr.add.s\t4, r1, r2\n\tld\tr2, r4\n\tsub.s!\t@CPI0_4[0], r4, r2\n\tjump.gt\t@.BB0_2\n\tptr.add.s\t36, r1, r2\n\tld\tr2, r2\n\tadd\tr2, r0, stack-[10]\n\tsub.s!\t@CPI0_4[0], r2, r2\n\tjump.gt\t@.BB0_2\n\tptr.add.s\t68, r1, r1\n\tld\tr1, r1\n\tadd\tr1, r0, stack-[8]\n\tst.1\t0, r4\n\tadd\t1, r0, r1\n\tadd\tr1, r0, stack-[7]\n\tst.1\t32, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI0_12[0], r1, r1\n\tadd\t32784, r0, r2\n\tadd\tr4, r0, stack-[9]\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_2\n\tld\tr1, r1\n\tcontext.caller\tr2\n\tadd\tr2, r0, stack-[6]\n\tst.1\t0, r2\n\tst.1\t32, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI0_12[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tadd\tstack-[9], r0, r3\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_2\n\tld\tr1, r1\n\tsload\tr1, r2\n\tsub.s\t1, r0, r1\n\tsub!\tr2, r1, r1\n\tjump.ne\t@.BB0_98\n.BB0_99:\n\tadd\tr3, r0, r1\n\tadd\tstack-[10], r0, r2\n\tadd\tstack-[8], r0, r3\n\tnear_call\tr0, @fun_transfer, @DEFAULT_UNWIND\n\tld.1\t64, r1\n\tadd\tstack-[7], r0, r2\n\tst.1\tr1, r2\n\tadd\t@CPI0_0[0], r0, r2\n\tsub.s!\t@CPI0_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI0_33[0], r1, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_133:\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tsub.s\t4, r0, r1\n\tadd\tstack[@calldatasize], r1, r1\n\tadd\t@CPI0_3[0], r0, r2\n\tsub.s!\t64, r1, r3\n\tadd\t0, r0, r3\n\tadd.lt\tr2, r0, r3\n\tand\t@CPI0_3[0], r1, r1\n\tsub.s!\t0, r1, r4\n\tadd.le\t0, r0, r2\n\tsub.s!\t@CPI0_3[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tptr.add\tstack[@ptr_calldata], r0, r1\n\tptr.add.s\t4, r1, r2\n\tld\tr2, r2\n\tadd\tr2, r0, stack-[10]\n\tsub.s!\t@CPI0_4[0], r2, r2\n\tjump.gt\t@.BB0_2\n\tptr.add.s\t36, r1, r1\n\tld\tr1, r1\n\tadd\tr1, r0, stack-[9]\n\tcontext.caller\tr1\n\tadd\tr1, r0, stack-[7]\n\tst.1\t0, r1\n\tadd\t1, r0, r1\n\tadd\tr1, r0, stack-[8]\n\tst.1\t32, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI0_12[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_2\n\tld\tr1, r1\n\tadd\tstack-[10], r0, r2\n\tst.1\t0, r2\n\tst.1\t32, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI0_12[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_2\n\tld\tr1, r1\n\tsload\tr1, r1\n\tadd\tstack-[9], r0, r3\n\tsub!\tr1, r3, r2\n\tjump.ge\t@.BB0_140\n\tld.1\t64, r1\n\tadd\t100, r1, r2\n\tadd\t@CPI0_34[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t68, r1, r2\n\tadd\t@CPI0_35[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t37, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI0_17[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI0_0[0], r0, r2\n\tsub.s!\t@CPI0_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI0_36[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB0_141:\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tsub.s\t4, r0, r1\n\tadd\tstack[@calldatasize], r1, r1\n\tadd\t@CPI0_3[0], r0, r2\n\tsub.s!\t64, r1, r3\n\tadd\t0, r0, r3\n\tadd.lt\tr2, r0, r3\n\tand\t@CPI0_3[0], r1, r1\n\tsub.s!\t0, r1, r4\n\tadd.le\t0, r0, r2\n\tsub.s!\t@CPI0_3[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tptr.add\tstack[@ptr_calldata], r0, r1\n\tptr.add.s\t4, r1, r2\n\tld\tr2, r2\n\tsub.s!\t@CPI0_4[0], r2, r3\n\tjump.gt\t@.BB0_2\n\tptr.add.s\t36, r1, r1\n\tld\tr1, r3\n\tcontext.caller\tr1\n\tnear_call\tr0, @fun_transfer, @DEFAULT_UNWIND\n\tadd\t1, r0, r1\n\tld.1\t64, r2\n\tst.1\tr2, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI0_33[0], r1, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_73:\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tsub.s\t4, r0, r1\n\tadd\tstack[@calldatasize], r1, r1\n\tadd\t@CPI0_3[0], r0, r2\n\tsub.s!\t0, r1, r3\n\tadd\t0, r0, r3\n\tadd.lt\tr2, r0, r3\n\tand\t@CPI0_3[0], r1, r1\n\tsub.s!\t0, r1, r4\n\tadd.le\t0, r0, r2\n\tsub.s!\t@CPI0_3[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.eq\t@.BB0_75\n.BB0_2:\n\tadd\tr0, r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB0_75:\n\tadd\t3, r0, r3\n\tsload\tr3, r2\n\tand!\t1, r2, r4\n\tshr.s\t1, r2, r1\n\tand\t127, r1, r5\n\tadd\tr1, r0, r6\n\tadd.eq\tr5, r0, r6\n\tsub.s!\t31, r6, r5\n\tadd\t0, r0, r5\n\tadd.gt\t1, r0, r5\n\txor\tr2, r5, r5\n\tand!\t1, r5, r5\n\tjump.eq\t@.BB0_76\n.BB0_15:\n\tadd\t@CPI0_38[0], r0, r1\n\tst.1\t0, r1\n\tadd\t34, r0, r1\n\tst.1\t4, r1\n\tadd\t@CPI0_39[0], r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB0_76:\n\tst.1\t128, r6\n\tsub.s!\t0, r4, r4\n\tjump.ne\t@.BB0_79\n\tsub.s\t256, r0, r3\n\tand\tr2, r3, r2\n\tst.1\t160, r2\n\tsub.s!\t0, r6, r1\n\tadd\t192, r0, r1\n\tadd.eq\t160, r0, r1\n\tjump\t@.BB0_77\n.BB0_129:\n\tst.1\t0, r5\n\tsub.s!\t0, r1, r4\n\tadd\tr0, r0, r4\n\tjump.eq\t@.BB0_126\n\tadd\t@CPI0_37[0], r0, r5\n\tadd\tr0, r0, r4\n.BB0_131:\n\tadd\tr3, r4, r6\n\tsload\tr5, r7\n\tst.1\tr6, r7\n\tadd\t1, r5, r5\n\tadd\t32, r4, r4\n\tsub!\tr4, r1, r6\n\tjump.lt\t@.BB0_131\n.BB0_126:\n\tadd\t63, r4, r1\n\tsub.s\t32, r0, r3\n\tand\tr1, r3, r3\n\tadd\tr3, r2, r1\n\tsub!\tr1, r3, r3\n\tadd\t0, r0, r4\n\tadd.lt\t1, r0, r4\n\tsub.s!\t@CPI0_8[0], r1, r3\n\tjump.gt\t@.BB0_4\n\tand!\t1, r4, r3\n\tjump.ne\t@.BB0_4\n\tst.1\t64, r1\n\tadd\tr1, r0, stack-[10]\n\tnear_call\tr0, @abi_encode_string, @DEFAULT_UNWIND\n\tadd\tstack-[10], r0, r4\n\tsub\tr1, r4, r1\n\tadd\t@CPI0_0[0], r0, r2\n\tsub.s!\t@CPI0_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tsub.s!\t@CPI0_0[0], r4, r3\n\tadd.lt\tr4, r0, r2\n\tshl.s\t64, r2, r2\n\tshl.s\t96, r1, r1\n\tor\tr1, r2, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_79:\n\tst.1\t0, r3\n\tadd\t160, r0, r1\n\tsub.s!\t0, r6, r2\n\tjump.eq\t@.BB0_83\n\tadd\t@CPI0_46[0], r0, r2\n\tadd\tr0, r0, r4\n.BB0_81:\n\tadd\tr4, r0, r3\n\tsload\tr2, r4\n\tadd\t160, r3, r5\n\tst.1\tr5, r4\n\tadd\t1, r2, r2\n\tadd\t32, r3, r4\n\tsub!\tr4, r6, r5\n\tjump.lt\t@.BB0_81\n\tadd\t192, r3, r1\n.BB0_77:\n\tadd\t31, r1, r1\n\tsub.s\t32, r0, r2\n\tand\tr1, r2, r1\n\tadd\t@CPI0_1[0], r1, r2\n\tsub.s!\t@CPI0_47[0], r2, r2\n\tjump.lt\t@.BB0_4\n.BB0_83:\n\tadd\tr1, r0, stack-[10]\n\tst.1\t64, r1\n\tadd\t128, r0, r2\n\tnear_call\tr0, @abi_encode_string, @DEFAULT_UNWIND\n\tadd\tstack-[10], r0, r4\n\tsub\tr1, r4, r1\n\tadd\t@CPI0_0[0], r0, r2\n\tsub.s!\t@CPI0_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tsub.s!\t@CPI0_0[0], r4, r3\n\tadd.lt\tr4, r0, r2\n\tshl.s\t64, r2, r2\n\tshl.s\t96, r1, r1\n\tor\tr1, r2, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_30:\n\tsub.s!\t0, r10, r1\n\tadd\tr0, r0, r1\n\tjump.eq\t@.BB0_32\n\tld.1\tr12, r1\n.BB0_32:\n\tshl.s\t3, r10, r2\n\tsub.s\t1, r0, r3\n\tshr\tr3, r2, r2\n\txor\tr2, r3, r2\n\tand\tr1, r2, r2\n\tshl.s\t1, r10, r1\n.BB0_22:\n\tor\tr2, r1, r1\n\tsstore\tr9, r1\n\tld.1\tr6, r6\n\tsub.s!\t@CPI0_8[0], r6, r1\n\tjump.gt\t@.BB0_4\n\tadd\t4, r0, r4\n\tsload\tr4, r1\n\tand!\t1, r1, r2\n\tshr.s\t1, r1, r2\n\tand\t127, r2, r3\n\tadd.ne\tr2, r0, r3\n\tsub.s!\t31, r3, r2\n\tadd\t0, r0, r2\n\tadd.gt\t1, r0, r2\n\txor\tr1, r2, r1\n\tand!\t1, r1, r1\n\tjump.ne\t@.BB0_15\n\tsub.s!\t32, r3, r1\n\tjump.lt\t@.BB0_38\n\tadd\tr3, r0, stack-[4]\n\tadd\tr6, r0, stack-[6]\n\tadd\tr4, r0, stack-[5]\n\tst.1\t0, r4\n\tadd\t@CPI0_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI0_9[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tadd\tstack-[10], r0, r8\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_2\n\tadd\tstack-[6], r0, r6\n\tadd\t31, r6, r2\n\tshr.s\t5, r2, r2\n\tsub.s!\t32, r6, r3\n\tadd.lt\t0, r0, r2\n\tld\tr1, r3\n\tadd\tstack-[4], r0, r1\n\tadd\t31, r1, r1\n\tshr.s\t5, r1, r1\n\tadd\tr3, r1, r1\n\tadd\tr3, r2, r2\n\tsub!\tr2, r1, r3\n\tadd\tstack-[7], r0, r7\n\tadd\tstack-[5], r0, r4\n\tjump.ge\t@.BB0_38\n.BB0_39:\n\tsstore\tr2, r0\n\tadd\t1, r2, r2\n\tsub!\tr2, r1, r3\n\tjump.lt\t@.BB0_39\n.BB0_38:\n\tsub.s!\t31, r6, r1\n\tjump.le\t@.BB0_48\n\tadd\tr6, r0, stack-[6]\n\tadd\tr4, r0, stack-[5]\n\tst.1\t0, r4\n\tadd\t@CPI0_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI0_9[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tadd\tstack-[10], r0, r2\n\tjump.eq\t@.BB0_2\n\tadd\tstack-[6], r0, r3\n\tand!\tr3, r2, r3\n\tadd\t32, r0, r2\n\tld\tr1, r1\n\tadd\tstack-[8], r0, r6\n\tjump.eq\t@.BB0_45\n\tadd\t32, r0, r2\n\tadd\tr0, r0, r4\n.BB0_44:\n\tadd\tr2, r6, r5\n\tld.1\tr5, r5\n\tsstore\tr1, r5\n\tadd\t32, r2, r2\n\tadd\t1, r1, r1\n\tadd\t32, r4, r4\n\tsub!\tr4, r3, r5\n\tjump.lt\t@.BB0_44\n.BB0_45:\n\tadd\tstack-[6], r0, r5\n\tsub!\tr3, r5, r3\n\tjump.ge\t@.BB0_47\n\tshl.s\t3, r5, r3\n\tand\t248, r3, r3\n\tsub.s\t1, r0, r4\n\tshr\tr4, r3, r3\n\txor\tr3, r4, r3\n\tadd\tstack-[8], r0, r4\n\tadd\tr2, r4, r2\n\tld.1\tr2, r2\n\tand\tr2, r3, r2\n\tsstore\tr1, r2\n.BB0_47:\n\tadd\t1, r0, r1\n\tshl.s\t1, r5, r2\n\tadd\tstack-[3], r0, r3\n\tadd\tstack-[5], r0, r4\n\tjump\t@.BB0_40\n.BB0_117:\n\tadd\tstack-[8], r0, r1\n\tadd\tstack-[10], r0, r2\n\tnear_call\tr0, @fun_approve, @DEFAULT_UNWIND\n\tld.1\t64, r1\n\tadd\tstack-[9], r0, r2\n\tst.1\tr1, r2\n\tadd\t@CPI0_0[0], r0, r2\n\tsub.s!\t@CPI0_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI0_33[0], r1, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_140:\n\tsub\tr1, r3, r3\n\tadd\tstack-[7], r0, r1\n\tadd\tstack-[10], r0, r2\n\tnear_call\tr0, @fun_approve, @DEFAULT_UNWIND\n\tld.1\t64, r1\n\tadd\tstack-[8], r0, r2\n\tst.1\tr1, r2\n\tadd\t@CPI0_0[0], r0, r2\n\tsub.s!\t@CPI0_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI0_33[0], r1, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_98:\n\tadd\tstack-[8], r0, r1\n\tsub!\tr2, r1, r1\n\tjump.ge\t@.BB0_101\n\tld.1\t64, r1\n\tadd\t68, r1, r2\n\tadd\t@CPI0_45[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t29, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI0_17[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI0_0[0], r0, r2\n\tsub.s!\t@CPI0_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI0_18[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB0_48:\n\tsub.s!\t0, r6, r1\n\tadd\tr0, r0, r1\n\tjump.eq\t@.BB0_50\n\tld.1\tr7, r1\n.BB0_50:\n\tshl.s\t3, r6, r2\n\tsub.s\t1, r0, r3\n\tshr\tr3, r2, r2\n\txor\tr2, r3, r2\n\tand\tr1, r2, r2\n\tshl.s\t1, r6, r1\n\tadd\tstack-[3], r0, r3\n.BB0_40:\n\tor\tr2, r1, r1\n\tsstore\tr4, r1\n\tsub.s!\t0, r3, r1\n\tjump.ne\t@.BB0_52\n\tld.1\t64, r1\n\tadd\t68, r1, r2\n\tadd\t@CPI0_16[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t31, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI0_17[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI0_0[0], r0, r2\n\tsub.s!\t@CPI0_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI0_18[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB0_101:\n\tadd\tr2, r0, stack-[5]\n\tsub.s!\t0, r3, r1\n\tjump.ne\t@.BB0_103\n\tld.1\t64, r1\n\tadd\t100, r1, r2\n\tadd\t@CPI0_43[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t68, r1, r2\n\tadd\t@CPI0_44[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t36, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI0_17[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI0_0[0], r0, r2\n\tsub.s!\t@CPI0_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI0_36[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB0_52:\n\tadd\tstack-[9], r0, r1\n\tsload\tr1, r1\n\tsub.s!\t@CPI0_10[0], r1, r2\n\tjump.ge\t@.BB0_53\n\tadd\t@CPI0_11[0], r1, r1\n\tadd\tstack-[9], r0, r2\n\tsstore\tr2, r1\n\tst.1\t0, r3\n\tst.1\t32, r0\n\tadd\t@CPI0_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI0_12[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tadd\tstack-[3], r0, r6\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_2\n\tld\tr1, r1\n\tsload\tr1, r2\n\tsub.s!\t@CPI0_13[0], r2, r3\n\tjump.gt\t@.BB0_53\n\tadd\t@CPI0_11[0], r2, r2\n\tsstore\tr1, r2\n\tadd\t@CPI0_11[0], r0, r1\n\tld.1\t64, r2\n\tst.1\tr2, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tcontext.gas_left\tr3\n\tsub.s!\t@CPI0_0[0], r3, r4\n\tadd.ge\tr1, r0, r3\n\tsub.s!\t@CPI0_0[0], r2, r4\n\tadd.lt\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tshl.s\t192, r3, r2\n\tor\tr1, r2, r1\n\tor\t@CPI0_9[0], r1, r1\n\tadd\t32781, r0, r2\n\tadd\t3, r0, r3\n\tadd\t@CPI0_14[0], r0, r4\n\tadd\tr0, r0, r5\n\tnear_call\tr0, @__farcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r1\n\tjump.eq\t@.BB0_2\n\tadd\t32, r0, r1\n\tst.2\t256, r1\n\tst.2\t288, r0\n\tadd\t@CPI0_15[0], r0, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_103:\n\tadd\tstack-[6], r0, r1\n\tand!\t@CPI0_4[0], r1, r1\n\tadd\tr1, r0, stack-[6]\n\tjump.ne\t@.BB0_105\n\tld.1\t64, r1\n\tadd\t100, r1, r2\n\tadd\t@CPI0_41[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t68, r1, r2\n\tadd\t@CPI0_42[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t34, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI0_17[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI0_0[0], r0, r2\n\tsub.s!\t@CPI0_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI0_36[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB0_105:\n\tadd\tstack-[9], r0, r1\n\tst.1\t0, r1\n\tadd\tstack-[7], r0, r1\n\tst.1\t32, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI0_12[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_2\n\tld\tr1, r1\n\tadd\tstack-[6], r0, r2\n\tst.1\t0, r2\n\tst.1\t32, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI0_12[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tadd\tstack-[5], r0, r3\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_2\n\tadd\tstack-[8], r0, r2\n\tsub\tr3, r2, r2\n\tld\tr1, r1\n\tsstore\tr1, r2\n\tld.1\t64, r1\n\tst.1\tr1, r2\n\tadd\t@CPI0_0[0], r0, r2\n\tcontext.gas_left\tr3\n\tsub.s!\t@CPI0_0[0], r3, r4\n\tadd.ge\tr2, r0, r3\n\tsub.s!\t@CPI0_0[0], r1, r4\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tshl.s\t192, r3, r2\n\tor\tr2, r1, r1\n\tor\t@CPI0_9[0], r1, r1\n\tadd\t32781, r0, r2\n\tadd\t3, r0, r3\n\tadd\t@CPI0_40[0], r0, r4\n\tadd\tstack-[9], r0, r5\n\tadd\tstack-[6], r0, r6\n\tnear_call\tr0, @__farcall, @DEFAULT_UNWIND\n\tadd\tstack-[9], r0, r3\n\tand!\t1, r2, r1\n\tjump.ne\t@.BB0_99\n\tjump\t@.BB0_2\n.func_end0:\n\n__keccak256:\n.func_begin1:\n\tadd\t@CPI1_0[0], r0, r3\n\tsub.s!\t@CPI1_0[0], r1, r4\n\tadd.ge\tr3, r0, r1\n\tshl.s\t64, r1, r1\n\tsub.s!\t@CPI1_0[0], r2, r4\n\tadd.ge\tr3, r0, r2\n\tshl.s\t96, r2, r2\n\tor\tr2, r1, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI1_0[0], r2, r4\n\tadd.ge\tr3, r0, r2\n\tshl.s\t192, r2, r2\n\tor\tr2, r1, r1\n\tor\t@CPI1_1[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB1_2\n\tld\tr1, r1\n\tret\n.BB1_2:\n\tadd\tr0, r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.func_end1:\n\nabi_encode_string:\n.func_begin2:\n\tadd\t32, r0, r3\n\tst.1.inc\tr1, r3, r4\n\tld.1\tr2, r3\n\tst.1\tr4, r3\n\tadd\t64, r1, r1\n\tsub.s!\t0, r3, r4\n\tjump.eq\t@.BB2_3\n\tadd\tr0, r0, r4\n.BB2_2:\n\tadd\tr1, r4, r5\n\tadd\t32, r4, r4\n\tadd\tr4, r2, r6\n\tld.1\tr6, r6\n\tst.1\tr5, r6\n\tsub!\tr4, r3, r5\n\tjump.lt\t@.BB2_2\n.BB2_3:\n\tadd\tr1, r3, r2\n\tst.1\tr2, r0\n\tadd\t31, r3, r2\n\tsub.s\t32, r0, r3\n\tand\tr2, r3, r2\n\tadd\tr1, r2, r1\n\tret\n.func_end2:\n\nfun_transfer:\n.func_begin3:\n\tnop\tstack+=[4]\n\tand!\t@CPI3_0[0], r1, r1\n\tjump.eq\t@.BB3_1\n\tadd\tr3, r0, stack-[4]\n\tand!\t@CPI3_0[0], r2, r2\n\tadd\tr2, r0, stack-[2]\n\tjump.eq\t@.BB3_3\n\tadd\tr1, r0, stack-[3]\n\tst.1\t0, r1\n\tst.1\t32, r0\n\tadd\t@CPI3_1[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI3_1[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI3_2[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB3_5\n\tld\tr1, r1\n\tsload\tr1, r2\n\tadd\tstack-[4], r0, r1\n\tadd\tr2, r0, stack-[1]\n\tsub!\tr2, r1, r1\n\tjump.lt\t@.BB3_7\n\tadd\tstack-[3], r0, r1\n\tst.1\t0, r1\n\tst.1\t32, r0\n\tadd\t@CPI3_1[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI3_1[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI3_2[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB3_5\n\tadd\tstack-[4], r0, r2\n\tadd\tstack-[1], r0, r3\n\tsub\tr3, r2, r2\n\tld\tr1, r1\n\tsstore\tr1, r2\n\tadd\tstack-[2], r0, r1\n\tst.1\t0, r1\n\tadd\t@CPI3_1[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI3_1[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI3_2[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB3_5\n\tld\tr1, r1\n\tsload\tr1, r3\n\tadd\tstack-[4], r0, r4\n\tadd\tr3, r4, r2\n\tsub!\tr2, r3, r3\n\tadd\t0, r0, r3\n\tadd.lt\t1, r0, r3\n\tand!\t1, r3, r3\n\tjump.ne\t@.BB3_11\n\tsstore\tr1, r2\n\tld.1\t64, r1\n\tst.1\tr1, r4\n\tadd\t@CPI3_1[0], r0, r2\n\tcontext.gas_left\tr3\n\tsub.s!\t@CPI3_1[0], r3, r4\n\tadd.ge\tr2, r0, r3\n\tsub.s!\t@CPI3_1[0], r1, r4\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tshl.s\t192, r3, r2\n\tor\tr2, r1, r1\n\tor\t@CPI3_3[0], r1, r1\n\tadd\t32781, r0, r2\n\tadd\t3, r0, r3\n\tadd\t@CPI3_4[0], r0, r4\n\tadd\tstack-[3], r0, r5\n\tadd\tstack-[2], r0, r6\n\tnear_call\tr0, @__farcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r1\n\tjump.eq\t@.BB3_5\n\tret\n.BB3_5:\n\tadd\tr0, r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB3_1:\n\tld.1\t64, r1\n\tadd\t100, r1, r2\n\tadd\t@CPI3_13[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t68, r1, r2\n\tadd\t@CPI3_14[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t37, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI3_9[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI3_1[0], r0, r2\n\tsub.s!\t@CPI3_1[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI3_10[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB3_3:\n\tld.1\t64, r1\n\tadd\t100, r1, r2\n\tadd\t@CPI3_11[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t68, r1, r2\n\tadd\t@CPI3_12[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t35, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI3_9[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI3_1[0], r0, r2\n\tsub.s!\t@CPI3_1[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI3_10[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB3_7:\n\tld.1\t64, r1\n\tadd\t100, r1, r2\n\tadd\t@CPI3_7[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t68, r1, r2\n\tadd\t@CPI3_8[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t38, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI3_9[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI3_1[0], r0, r2\n\tsub.s!\t@CPI3_1[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI3_10[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB3_11:\n\tadd\t@CPI3_5[0], r0, r1\n\tst.1\t0, r1\n\tadd\t17, r0, r1\n\tst.1\t4, r1\n\tadd\t@CPI3_6[0], r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.func_end3:\n\nfun_approve:\n.func_begin4:\n\tnop\tstack+=[3]\n\tand!\t@CPI4_0[0], r1, r1\n\tjump.eq\t@.BB4_1\n\tadd\tr3, r0, stack-[2]\n\tand!\t@CPI4_0[0], r2, r2\n\tadd\tr2, r0, stack-[3]\n\tjump.eq\t@.BB4_3\n\tadd\tr1, r0, stack-[1]\n\tst.1\t0, r1\n\tadd\t1, r0, r1\n\tst.1\t32, r1\n\tadd\t@CPI4_1[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI4_1[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI4_2[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tadd\tstack-[3], r0, r4\n\tjump.eq\t@.BB4_5\n\tld\tr1, r1\n\tst.1\t0, r4\n\tst.1\t32, r1\n\tadd\t@CPI4_1[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI4_1[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI4_2[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tadd\tstack-[3], r0, r6\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB4_5\n\tld\tr1, r1\n\tadd\tstack-[2], r0, r2\n\tsstore\tr1, r2\n\tld.1\t64, r1\n\tst.1\tr1, r2\n\tadd\t@CPI4_1[0], r0, r2\n\tcontext.gas_left\tr3\n\tsub.s!\t@CPI4_1[0], r3, r4\n\tadd.ge\tr2, r0, r3\n\tsub.s!\t@CPI4_1[0], r1, r4\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tshl.s\t192, r3, r2\n\tor\tr2, r1, r1\n\tor\t@CPI4_3[0], r1, r1\n\tadd\t32781, r0, r2\n\tadd\t3, r0, r3\n\tadd\t@CPI4_4[0], r0, r4\n\tadd\tstack-[1], r0, r5\n\tnear_call\tr0, @__farcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r1\n\tjump.eq\t@.BB4_5\n\tret\n.BB4_5:\n\tadd\tr0, r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB4_1:\n\tld.1\t64, r1\n\tadd\t100, r1, r2\n\tadd\t@CPI4_9[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t68, r1, r2\n\tadd\t@CPI4_10[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t36, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI4_7[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI4_1[0], r0, r2\n\tsub.s!\t@CPI4_1[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI4_8[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB4_3:\n\tld.1\t64, r1\n\tadd\t100, r1, r2\n\tadd\t@CPI4_5[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t68, r1, r2\n\tadd\t@CPI4_6[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t34, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI4_7[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI4_1[0], r0, r2\n\tsub.s!\t@CPI4_1[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI4_8[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.func_end4:\n\n__farcall:\n.func_begin5:\n.tmp0:\n\tfar_call\tr1, r2, @.BB5_2\n.tmp1:\n\tadd\t1, r0, r2\n\tret\n.BB5_2:\n.tmp2:\n\tadd\tr0, r0, r2\n\tret\n.func_end5:\n\n__staticcall:\n.func_begin6:\n.tmp3:\n\tfar_call.static\tr1, r2, @.BB6_2\n.tmp4:\n\tadd\t1, r0, r2\n\tret\n.BB6_2:\n.tmp5:\n\tadd\tr0, r0, r2\n\tret\n.func_end6:\n\n\t.data\n\t.p2align\t5\ncalldatasize:\n\t.cell 0\n\n\t.p2align\t5\nptr_calldata:\n.cell\t0\n\n\t.note.GNU-stack\n\t.rodata\nCPI0_0:\nCPI1_0:\nCPI3_1:\nCPI4_1:\n\t.cell 4294967295\nCPI0_1:\n\t.cell -18446744073709551616\nCPI0_2:\n\t.cell -18446744073709551489\nCPI0_3:\n\t.cell -57896044618658097711785492504343953926634992332820282019728792003956564819968\nCPI0_4:\nCPI3_0:\nCPI4_0:\n\t.cell 1461501637330902918203684832716283019655932542975\nCPI0_5:\n\t.cell 18446744073709551551\nCPI0_6:\n\t.cell 34462574723285054447113267251296962815346942546258393188290522702838874767360\nCPI0_7:\n\t.cell 34462351998502386348522217751990625651215073408558947778161928956212548730880\nCPI0_8:\n\t.cell 18446744073709551615\nCPI0_9:\nCPI3_3:\nCPI4_3:\n\t.cell 904625697166532776746648320380374280103671757735618107014721178055227736064\nCPI0_10:\n\t.cell -1000000000000000000000\nCPI0_11:\n\t.cell 1000000000000000000000\nCPI0_12:\nCPI3_2:\nCPI4_2:\n\t.cell 904625697166532776746648320380374280103671760270919307471179981048634146816\nCPI0_13:\n\t.cell -1000000000000000000001\nCPI0_14:\nCPI3_4:\n\t.cell -15402802100530019096323380498944738953123845089667699673314898783681816316945\nCPI0_15:\n\t.cell 53919893334301279589334030174039261352344891250716429051063678533632\nCPI0_16:\n\t.cell 31354931781638678563069525067809233856775101976563302031013534919694566519552\nCPI0_17:\nCPI3_9:\nCPI4_7:\n\t.cell 3963877391197344453575983046348115674221700746820753546331534351508065746944\nCPI0_18:\n\t.cell 7922816251426433759354395033600\nCPI0_19:\n\t.cell 961581904\nCPI0_20:\n\t.cell 2757214934\nCPI0_21:\n\t.cell 2757214935\nCPI0_22:\n\t.cell 2835717307\nCPI0_23:\n\t.cell 3714247998\nCPI0_24:\n\t.cell 961581905\nCPI0_25:\n\t.cell 1889567281\nCPI0_26:\n\t.cell 2514000705\nCPI0_27:\n\t.cell 404098524\nCPI0_28:\n\t.cell 404098525\nCPI0_29:\n\t.cell 599290589\nCPI0_30:\n\t.cell 826074471\nCPI0_31:\n\t.cell 117300739\nCPI0_32:\n\t.cell 157198259\nCPI0_33:\n\t.cell 2535301200456458802993406410752\nCPI0_34:\n\t.cell 14690266658072097593480850647027335513285713462661904985951319567533531463680\nCPI0_35:\n\t.cell 31354931781638678506476475496475743842680577777870365728514456330491174612855\nCPI0_36:\nCPI3_10:\nCPI4_8:\n\t.cell 10458117451882892562347801444352\nCPI0_37:\n\t.cell -53278079350709166316280423202849322519190186591071851114874353210178472783461\nCPI0_38:\nCPI3_5:\n\t.cell 35408467139433450592217433187231851964531694900788300625387963629091585785856\nCPI0_39:\nCPI3_6:\n\t.cell 2852213850513516153367582212096\nCPI0_40:\nCPI4_4:\n\t.cell -52305948261162578668367882225327028569797882979485679342215860919519743330011\nCPI0_41:\nCPI4_5:\n\t.cell 52219164999525148860834357634456956735281286572158918307284071279203377479680\nCPI0_42:\nCPI4_6:\n\t.cell 31354931781638678487916134672869638488806705378895508030211234510262059168357\nCPI0_43:\nCPI4_9:\n\t.cell 51742913093258732729005998692887265601192425265805909375210916622055285719040\nCPI0_44:\nCPI4_10:\n\t.cell 31354931781638678487916134672869638484047149969764982831501014746446650500196\nCPI0_45:\n\t.cell 31354931781638678538084197150757782427756587561754988975511141185730285404160\nCPI0_46:\n\t.cell -27889059366240281169193357100633332908378892778709981755071813198463099602853\nCPI0_47:\n\t.cell -18446744073709551488\nCPI1_1:\n\t.cell 904625697166532776746648320380374280103671755200316906558262375061821325312\nCPI3_7:\n\t.cell 44065838241030143116324720188876985940908656145555552347773292252211112312832\nCPI3_8:\n\t.cell 31354931781638678607228669297131712859100820671745083778533502622993977909346\nCPI3_11:\n\t.cell 45887578820189300338443374388718498632482616163288499555830078344056365121536\nCPI3_12:\n\t.cell 31354931781638678607228669297131712859126084785867252355217498662940140921970\nCPI3_13:\n\t.cell 45433405612597180762055095701412804886438245671210399661410036396145969725440\nCPI3_14:\n\t.cell 31354931781638678607228669297131712859107492772550336241160036866987736981860\n","bytecode":{"object":"0002000000000002000a00000000000200010000000103550000006001100270000001780010019d0000000101200190000000410000c13d0000008001000039000000400010043f0000000001000031000000040110008c000002db0000413d0000000101000367000000000101043b000000e0011002700000018b0210009c000001010000a13d0000018c0210009c000001230000213d000001900210009c000001810000613d000001910210009c000001c70000613d000001920110009c000002db0000c13d0000000001000416000000000110004c000002db0000c13d000000040100008a00000000011000310000017b02000041000000000310004c000000000300001900000000030240190000017b01100197000000000410004c000000000200a0190000017b0110009c00000000010300190000000001026019000000000110004c000002db0000c13d0000000405000039000000000405041a000000010640019000000001014002700000007f0210018f00000000010260190000001f0210008c00000000020000190000000102002039000000000224013f0000000102200190000002ea0000c13d000000400200043d0000000003120436000000000660004c000002fa0000c13d000001000500008a000000000454016f0000000000430435000000000110004c00000020040000390000000004006019000003070000013d0000000001000416000000000110004c000002db0000c13d00000000010000310000009f02100039000000200800008a000000000282016f00000179032000410000017a0330009c000000510000213d0000019e0100004100000000001004350000004101000039000000040010043f0000019f01000041000005dc00010430000000400020043f0000001f0210018f000000010300036700000005041002720000005f0000613d00000000050000190000000506500210000000000763034f000000000707043b000000800660003900000000007604350000000105500039000000000645004b000000570000413d000000000520004c0000006e0000613d0000000504400210000000000343034f00000003022002100000008004400039000000000504043300000000052501cf000000000525022f000000000303043b0000010002200089000000000323022f00000000022301cf000000000252019f00000000002404350000017b02000041000000200310008c000000000300001900000000030240190000017b01100197000000000410004c000000000200a0190000017b0110009c00000000010300190000000001026019000000000110004c000002db0000c13d000000800100043d0000017c041001970000017c0110009c000002db0000213d000000400b00043d0000017d01b0009c0000004b0000213d0000004001b00039000000400010043f0000000e01000039000000000c1b04360000017e0100004100000000001c0435000000400600043d0000017d0160009c0000004b0000213d0000004001600039000000400010043f000000020500003900000000075604360000017f010000410000000000170435000000000a0b04330000018001a0009c0000004b0000213d0000000309000039000000000109041a000000010210019000000001011002700000007f0310018f000000000301c0190000001f0130008c00000000010000190000000101002039000000010110018f000000000112004b000002ea0000c13d000000200130008c000300000004001d000800000006001d000900000005001d000a00000008001d000700000007001d000000ce0000413d000100000003001d00020000000c001d00040000000b001d00050000000a001d000600000009001d000000000090043500000178010000410000000002000414000001780320009c0000000001024019000000c00110021000000181011001c7000080100200003905da05d50000040f0000000a080000290000000102200190000002db0000613d000000050a0000290000001f02a0003900000005022002700000002003a0008c0000000002004019000000000301043b00000001010000290000001f01100039000000050110027000000000011300190000000002230019000000000312004b0000000905000029000000080600002900000007070000290000000609000029000000040b000029000000020c000029000000ce0000813d000000000002041b0000000102200039000000000312004b000000ca0000413d0000001f01a0008c000003440000a13d00040000000b001d00050000000a001d000600000009001d000000000090043500000178010000410000000002000414000001780320009c0000000001024019000000c00110021000000181011001c7000080100200003905da05d50000040f0000000a080000290000000102200190000002db0000613d000000050a00002900000000038a01700000002002000039000000000101043b0000000806000029000000040b000029000000f00000613d000000200200003900000000040000190000000005b200190000000005050433000000000051041b000000200220003900000001011000390000002004400039000000000534004b000000e80000413d0000000003a3004b00000007070000290000000609000029000000fd0000813d0000000303a00210000000f80330018f000000010400008a000000000334022f000000000343013f0000000002b200190000000002020433000000000232016f000000000021041b00000001010000390000000102a0021000000009050000290000034e0000013d000001930210009c0000015a0000a13d000001940210009c000001eb0000613d000001950210009c000002060000613d000001960110009c000002db0000c13d0000000001000416000000000110004c000002db0000c13d000000040100008a00000000011000310000017b02000041000000000310004c000000000300001900000000030240190000017b01100197000000000410004c000000000200a0190000017b0110009c00000000010300190000000001026019000000000110004c000002db0000c13d000000400100043d000000120200003900000000002104350000017802000041000001780310009c0000000001028019000000400110021000000199011001c7000005db0001042e0000018d0210009c000002550000613d0000018e0210009c000002a70000613d0000018f0110009c000002db0000c13d0000000001000416000000000110004c000002db0000c13d000000040100008a00000000011000310000017b02000041000000400310008c000000000300001900000000030240190000017b01100197000000000410004c000000000200a0190000017b0110009c00000000010300190000000001026019000000000110004c000002db0000c13d00000001020003670000000401200370000000000101043b0000017c0310009c000002db0000213d0000002402200370000000000302043b0000017c0230009c000002db0000213d00000000001004350000000101000039000000200010043f0000004002000039000a00000002001d0000000001000019000900000003001d05da049f0000040f00000009020000290000000000200435000000200010043f00000000010000190000000a0200002905da049f0000040f000000000101041a000000400200043d00000000001204350000017801000041000001780320009c0000000001024019000000400110021000000199011001c7000005db0001042e000001970210009c000002ca0000613d000001980110009c000002db0000c13d0000000001000416000000000110004c000002db0000c13d000000040100008a00000000011000310000017b02000041000000400310008c000000000300001900000000030240190000017b01100197000000000410004c000000000200a0190000017b0110009c00000000010300190000000001026019000000000110004c000002db0000c13d00000001010003670000000402100370000000000202043b0000017c0320009c000002db0000213d0000002401100370000000000301043b000000000100041105da05690000040f0000000101000039000000400200043d00000000001204350000017801000041000001780320009c0000000001024019000000400110021000000199011001c7000005db0001042e0000000001000416000000000110004c000002db0000c13d000000040100008a00000000011000310000017b02000041000000400310008c000000000300001900000000030240190000017b01100197000000000410004c000000000200a0190000017b0110009c00000000010300190000000001026019000000000110004c000002db0000c13d00000004010000390000000101100367000000000101043b000a00000001001d0000017c0110009c000002db0000213d0000000001000411000800000001001d00000000001004350000000101000039000900000001001d000000200010043f00000178010000410000000002000414000001780320009c0000000001024019000000c00110021000000184011001c7000080100200003905da05d50000040f0000000102200190000002db0000613d000000000101043b0000000a020000290000000000200435000000200010043f00000178010000410000000002000414000001780320009c0000000001024019000000c00110021000000184011001c7000080100200003905da05d50000040f0000000102200190000002db0000613d000000000101043b000000000101041a00000024020000390000000102200367000000000202043b0000000003120019000000000123004b000000000100001900000001010040390000000101100190000003b50000613d0000019e0100004100000000001004350000001101000039000000040010043f0000019f01000041000005dc000104300000000001000416000000000110004c000002db0000c13d000000040100008a00000000011000310000017b02000041000000200310008c000000000300001900000000030240190000017b01100197000000000410004c000000000200a0190000017b0110009c00000000010300190000000001026019000000000110004c000002db0000c13d00000004010000390000000101100367000000000101043b0000017c0210009c000002db0000213d0000000000100435000000200000043f0000004002000039000000000100001905da049f0000040f000000000101041a000000400200043d00000000001204350000017801000041000001780320009c0000000001024019000000400110021000000199011001c7000005db0001042e0000000001000416000000000110004c000002db0000c13d000000040100008a00000000011000310000017b02000041000000000310004c000000000300001900000000030240190000017b01100197000000000410004c000000000200a0190000017b0110009c00000000010300190000000001026019000000000110004c000002db0000c13d0000000201000039000000000101041a000000400200043d00000000001204350000017801000041000001780320009c0000000001024019000000400110021000000199011001c7000005db0001042e0000000001000416000000000110004c000002db0000c13d000000040100008a00000000011000310000017b02000041000000600310008c000000000300001900000000030240190000017b01100197000000000410004c000000000200a0190000017b0110009c00000000010300190000000001026019000000000110004c000002db0000c13d00000001010003670000000402100370000000000402043b0000017c0240009c000002db0000213d0000002402100370000000000202043b000a00000002001d0000017c0220009c000002db0000213d0000004401100370000000000101043b000800000001001d00000000004004350000000101000039000700000001001d000000200010043f00000178010000410000000002000414000001780320009c0000000001024019000000c00110021000000184011001c70000801002000039000900000004001d05da05d50000040f0000000102200190000002db0000613d000000000101043b0000000002000411000600000002001d0000000000200435000000200010043f00000178010000410000000002000414000001780320009c0000000001024019000000c00110021000000184011001c7000080100200003905da05d50000040f00000009030000290000000102200190000002db0000613d000000000101043b000000000201041a000000010100008a000000000112004b000003ce0000c13d00000000010300190000000a02000029000000080300002905da04cb0000040f000000400100043d000000070200002900000000002104350000017802000041000001780310009c0000000001028019000000400110021000000199011001c7000005db0001042e0000000001000416000000000110004c000002db0000c13d000000040100008a00000000011000310000017b02000041000000400310008c000000000300001900000000030240190000017b01100197000000000410004c000000000200a0190000017b0110009c00000000010300190000000001026019000000000110004c000002db0000c13d00000001010003670000000402100370000000000202043b000a00000002001d0000017c0220009c000002db0000213d0000002401100370000000000101043b000900000001001d0000000001000411000700000001001d00000000001004350000000101000039000800000001001d000000200010043f00000178010000410000000002000414000001780320009c0000000001024019000000c00110021000000184011001c7000080100200003905da05d50000040f0000000102200190000002db0000613d000000000101043b0000000a020000290000000000200435000000200010043f00000178010000410000000002000414000001780320009c0000000001024019000000c00110021000000184011001c7000080100200003905da05d50000040f0000000102200190000002db0000613d000000000101043b000000000101041a0000000903000029000000000231004b000003c10000813d000000400100043d00000064021000390000019a03000041000000000032043500000044021000390000019b030000410000000000320435000000240210003900000025030000390000000000320435000001890200004100000000002104350000000402100039000000200300003900000000003204350000017802000041000001780310009c000000000102801900000040011002100000019c011001c7000005dc000104300000000001000416000000000110004c000002db0000c13d000000040100008a00000000011000310000017b02000041000000400310008c000000000300001900000000030240190000017b01100197000000000410004c000000000200a0190000017b0110009c00000000010300190000000001026019000000000110004c000002db0000c13d00000001010003670000000402100370000000000202043b0000017c0320009c000002db0000213d0000002401100370000000000301043b000000000100041105da04cb0000040f0000000101000039000000400200043d00000000001204350000017801000041000001780320009c0000000001024019000000400110021000000199011001c7000005db0001042e0000000001000416000000000110004c000002db0000c13d000000040100008a00000000011000310000017b02000041000000000310004c000000000300001900000000030240190000017b01100197000000000410004c000000000200a0190000017b0110009c00000000010300190000000001026019000000000110004c000002dd0000613d0000000001000019000005dc000104300000000303000039000000000203041a000000010420019000000001012002700000007f0510018f000000000601001900000000060560190000001f0560008c00000000050000190000000105002039000000000552013f0000000105500190000002f00000613d0000019e0100004100000000001004350000002201000039000000040010043f0000019f01000041000005dc00010430000000800060043f000000000440004c000003200000c13d000001000300008a000000000232016f000000a00020043f000000000160004c000000c001000039000000a0010060390000032f0000013d0000000000500435000000000410004c0000000004000019000003070000613d0000019d0500004100000000040000190000000006430019000000000705041a000000000076043500000001055000390000002004400039000000000614004b000003000000413d0000003f01400039000000200300008a000000000331016f0000000001230019000000000331004b00000000040000190000000104004039000001800310009c0000004b0000213d00000001034001900000004b0000c13d000000400010043f000a00000001001d05da04b50000040f0000000a0400002900000000014100490000017802000041000001780310009c0000000001028019000001780340009c000000000204401900000040022002100000006001100210000000000121019f000005db0001042e0000000000300435000000a001000039000000000260004c000003350000613d000001a60200004100000000040000190000000003040019000000000402041a000000a005300039000000000045043500000001022000390000002004300039000000000564004b000003260000413d000000c0013000390000001f01100039000000200200008a000000000121016f0000017902100041000001a70220009c0000004b0000413d000a00000001001d000000400010043f000000800200003905da04b50000040f0000000a0400002900000000014100490000017802000041000001780310009c0000000001028019000001780340009c000000000204401900000040022002100000006001100210000000000121019f000005db0001042e0000000001a0004c0000000001000019000003480000613d00000000010c04330000000302a00210000000010300008a000000000223022f000000000232013f000000000221016f0000000101a00210000000000112019f000000000019041b0000000006060433000001800160009c0000004b0000213d0000000404000039000000000104041a000000010210019000000001021002700000007f0320018f000000000302c0190000001f0230008c00000000020000190000000102002039000000000121013f0000000101100190000002ea0000c13d000000200130008c000003830000413d000400000003001d000600000006001d000500000004001d000000000040043500000178010000410000000002000414000001780320009c0000000001024019000000c00110021000000181011001c7000080100200003905da05d50000040f0000000a080000290000000102200190000002db0000613d00000006060000290000001f026000390000000502200270000000200360008c0000000002004019000000000301043b00000004010000290000001f01100039000000050110027000000000011300190000000002230019000000000312004b00000007070000290000000504000029000003830000813d000000000002041b0000000102200039000000000312004b0000037f0000413d0000001f0160008c000003e30000a13d000600000006001d000500000004001d000000000040043500000178010000410000000002000414000001780320009c0000000001024019000000c00110021000000181011001c7000080100200003905da05d50000040f00000001022001900000000a02000029000002db0000613d000000060300002900000000032301700000002002000039000000000101043b0000000806000029000003a30000613d0000002002000039000000000400001900000000056200190000000005050433000000000051041b000000200220003900000001011000390000002004400039000000000534004b0000039b0000413d0000000605000029000000000353004b000003b00000813d0000000303500210000000f80330018f000000010400008a000000000334022f000000000343013f000000080400002900000000024200190000000002020433000000000232016f000000000021041b0000000101000039000000010250021000000003030000290000000504000029000003ee0000013d00000008010000290000000a0200002905da05690000040f000000400100043d000000090200002900000000002104350000017802000041000001780310009c0000000001028019000000400110021000000199011001c7000005db0001042e000000000331004900000007010000290000000a0200002905da05690000040f000000400100043d000000080200002900000000002104350000017802000041000001780310009c0000000001028019000000400110021000000199011001c7000005db0001042e0000000801000029000000000112004b000004040000813d000000400100043d0000004402100039000001a503000041000000000032043500000024021000390000001d030000390000000000320435000001890200004100000000002104350000000402100039000000200300003900000000003204350000017802000041000001780310009c000000000102801900000040011002100000018a011001c7000005dc00010430000000000160004c0000000001000019000003e70000613d00000000010704330000000302600210000000010300008a000000000223022f000000000232013f000000000221016f00000001016002100000000303000029000000000112019f000000000014041b000000000130004c0000041c0000c13d000000400100043d00000044021000390000018803000041000000000032043500000024021000390000001f030000390000000000320435000001890200004100000000002104350000000402100039000000200300003900000000003204350000017802000041000001780310009c000000000102801900000040011002100000018a011001c7000005dc00010430000500000002001d000000000130004c0000044f0000c13d000000400100043d0000006402100039000001a30300004100000000003204350000004402100039000001a4030000410000000000320435000000240210003900000024030000390000000000320435000001890200004100000000002104350000000402100039000000200300003900000000003204350000017802000041000001780310009c000000000102801900000040011002100000019c011001c7000005dc000104300000000901000029000000000101041a000001820210009c000001c10000813d00000183011000410000000902000029000000000012041b0000000000300435000000200000043f00000178010000410000000002000414000001780320009c0000000001024019000000c00110021000000184011001c7000080100200003905da05d50000040f00000003060000290000000102200190000002db0000613d000000000101043b000000000201041a000001850320009c000001c10000213d0000018302200041000000000021041b0000018301000041000000400200043d000000000012043500000178010000410000000003000414000001780430009c0000000003018019000001780420009c00000000010240190000004001100210000000c002300210000000000121019f00000181011001c70000800d0200003900000003030000390000018604000041000000000500001905da05d00000040f0000000101200190000002db0000613d0000002001000039000001000010044300000120000004430000018701000041000005db0001042e00000006010000290000017c01100198000600000001001d000004680000c13d000000400100043d0000006402100039000001a10300004100000000003204350000004402100039000001a2030000410000000000320435000000240210003900000022030000390000000000320435000001890200004100000000002104350000000402100039000000200300003900000000003204350000017802000041000001780310009c000000000102801900000040011002100000019c011001c7000005dc00010430000000090100002900000000001004350000000701000029000000200010043f00000178010000410000000002000414000001780320009c0000000001024019000000c00110021000000184011001c7000080100200003905da05d50000040f0000000102200190000002db0000613d000000000101043b00000006020000290000000000200435000000200010043f00000178010000410000000002000414000001780320009c0000000001024019000000c00110021000000184011001c7000080100200003905da05d50000040f00000005030000290000000102200190000002db0000613d00000008020000290000000002230049000000000101043b000000000021041b000000400100043d000000000021043500000178020000410000000003000414000001780430009c0000000003028019000001780410009c00000000010280190000004001100210000000c002300210000000000112019f00000181011001c70000800d020000390000000303000039000001a0040000410000000905000029000000060600002905da05d00000040f00000009030000290000000101200190000002480000c13d000002db0000013d0000017803000041000001780410009c00000000010380190000004001100210000001780420009c00000000020380190000006002200210000000000112019f0000000002000414000001780420009c0000000002038019000000c002200210000000000112019f000001a8011001c7000080100200003905da05d50000040f0000000102200190000004b30000613d000000000101043b000000000001042d0000000001000019000005dc0001043000000020030000390000000004310436000000000302043300000000003404350000004001100039000000000430004c000004c40000613d000000000400001900000000054100190000002004400039000000000624001900000000060604330000000000650435000000000534004b000004bd0000413d000000000231001900000000000204350000001f02300039000000200300008a000000000232016f0000000001210019000000000001042d00040000000000020000017c01100198000005240000613d000400000003001d0000017c02200198000200000002001d000005390000613d000300000001001d0000000000100435000000200000043f00000178010000410000000002000414000001780320009c0000000001024019000000c00110021000000184011001c7000080100200003905da05d50000040f0000000102200190000005220000613d000000000101043b000000000201041a0000000401000029000100000002001d000000000112004b0000054e0000413d00000003010000290000000000100435000000200000043f00000178010000410000000002000414000001780320009c0000000001024019000000c00110021000000184011001c7000080100200003905da05d50000040f0000000102200190000005220000613d000000040200002900000001030000290000000002230049000000000101043b000000000021041b0000000201000029000000000010043500000178010000410000000002000414000001780320009c0000000001024019000000c00110021000000184011001c7000080100200003905da05d50000040f0000000102200190000005220000613d000000000101043b000000000301041a00000004040000290000000002430019000000000332004b000000000300001900000001030040390000000103300190000005630000c13d000000000021041b000000400100043d000000000041043500000178020000410000000003000414000001780430009c0000000003028019000001780410009c00000000010280190000004001100210000000c002300210000000000112019f00000181011001c70000800d02000039000000030300003900000186040000410000000305000029000000020600002905da05d00000040f0000000101200190000005220000613d000000000001042d0000000001000019000005dc00010430000000400100043d0000006402100039000001ad0300004100000000003204350000004402100039000001ae030000410000000000320435000000240210003900000025030000390000000000320435000001890200004100000000002104350000000402100039000000200300003900000000003204350000017802000041000001780310009c000000000102801900000040011002100000019c011001c7000005dc00010430000000400100043d0000006402100039000001ab0300004100000000003204350000004402100039000001ac030000410000000000320435000000240210003900000023030000390000000000320435000001890200004100000000002104350000000402100039000000200300003900000000003204350000017802000041000001780310009c000000000102801900000040011002100000019c011001c7000005dc00010430000000400100043d0000006402100039000001a90300004100000000003204350000004402100039000001aa030000410000000000320435000000240210003900000026030000390000000000320435000001890200004100000000002104350000000402100039000000200300003900000000003204350000017802000041000001780310009c000000000102801900000040011002100000019c011001c7000005dc000104300000019e0100004100000000001004350000001101000039000000040010043f0000019f01000041000005dc0001043000030000000000020000017c01100198000005a60000613d000200000003001d0000017c02200198000300000002001d000005bb0000613d000100000001001d00000000001004350000000101000039000000200010043f00000178010000410000000002000414000001780320009c0000000001024019000000c00110021000000184011001c7000080100200003905da05d50000040f00000001022001900000000304000029000005a40000613d000000000101043b0000000000400435000000200010043f00000178010000410000000002000414000001780320009c0000000001024019000000c00110021000000184011001c7000080100200003905da05d50000040f00000003060000290000000102200190000005a40000613d000000000101043b0000000202000029000000000021041b000000400100043d000000000021043500000178020000410000000003000414000001780430009c0000000003028019000001780410009c00000000010280190000004001100210000000c002300210000000000112019f00000181011001c70000800d020000390000000303000039000001a004000041000000010500002905da05d00000040f0000000101200190000005a40000613d000000000001042d0000000001000019000005dc00010430000000400100043d0000006402100039000001a30300004100000000003204350000004402100039000001a4030000410000000000320435000000240210003900000024030000390000000000320435000001890200004100000000002104350000000402100039000000200300003900000000003204350000017802000041000001780310009c000000000102801900000040011002100000019c011001c7000005dc00010430000000400100043d0000006402100039000001a10300004100000000003204350000004402100039000001a2030000410000000000320435000000240210003900000022030000390000000000320435000001890200004100000000002104350000000402100039000000200300003900000000003204350000017802000041000001780310009c000000000102801900000040011002100000019c011001c7000005dc00010430000005d3002104210000000102000039000000000001042d0000000002000019000000000001042d000005d8002104230000000102000039000000000001042d0000000002000019000000000001042d000005da00000432000005db0001042e000005dc0001043000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff000000000000007f8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000ffffffffffffffbf4c3120455243323020746f6b656e0000000000000000000000000000000000004c31000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff0200000000000000000000000000000000000020000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffc9ca36523a2160000000000000000000000000000000000000000000000000003635c9adc5dea000000200000000000000000000000000000000000040000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffc9ca36523a215fffffddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef000000020000000000000000000000000000004000000100000000000000000045524332303a206d696e7420746f20746865207a65726f20616464726573730008c379a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064000000000000000000000000000000000000000000000000000000000000000000000000000000003950935000000000000000000000000000000000000000000000000000000000a457c2d600000000000000000000000000000000000000000000000000000000a457c2d700000000000000000000000000000000000000000000000000000000a9059cbb00000000000000000000000000000000000000000000000000000000dd62ed3e00000000000000000000000000000000000000000000000000000000395093510000000000000000000000000000000000000000000000000000000070a082310000000000000000000000000000000000000000000000000000000095d89b410000000000000000000000000000000000000000000000000000000018160ddc0000000000000000000000000000000000000000000000000000000018160ddd0000000000000000000000000000000000000000000000000000000023b872dd00000000000000000000000000000000000000000000000000000000313ce5670000000000000000000000000000000000000000000000000000000006fdde0300000000000000000000000000000000000000000000000000000000095ea7b30000000000000000000000000000000000000020000000000000000000000000207a65726f00000000000000000000000000000000000000000000000000000045524332303a2064656372656173656420616c6c6f77616e63652062656c6f7700000000000000000000000000000000000000840000000000000000000000008a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b4e487b710000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000000000000000000000008c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925737300000000000000000000000000000000000000000000000000000000000045524332303a20617070726f766520746f20746865207a65726f206164647265726573730000000000000000000000000000000000000000000000000000000045524332303a20617070726f76652066726f6d20746865207a65726f2061646445524332303a20696e73756666696369656e7420616c6c6f77616e6365000000c2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85bffffffffffffffffffffffffffffffffffffffffffffffff00000000000000800200000000000000000000000000000000000000000000000000000000000000616c616e6365000000000000000000000000000000000000000000000000000045524332303a207472616e7366657220616d6f756e7420657863656564732062657373000000000000000000000000000000000000000000000000000000000045524332303a207472616e7366657220746f20746865207a65726f2061646472647265737300000000000000000000000000000000000000000000000000000045524332303a207472616e736665722066726f6d20746865207a65726f20616400000000000000000000000000000000000000000000000000000000000000006ef210ce4408c02de1c46dffae2168709cb9bcf2c84f9eae0a52bde6a9ee79a0"},"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"}},"irOptimized":"/// @use-src 25:\"@openzeppelin/contracts/token/ERC20/ERC20.sol\", 26:\"@openzeppelin/contracts/token/ERC20/IERC20.sol\", 27:\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\", 35:\"@openzeppelin/contracts/utils/Context.sol\", 42:\"contracts/L1.sol\"\nobject \"L1_8599\" {\n code {\n {\n /// @src 42:119:327 \"contract L1 is ERC20 {...\"\n let _1 := memoryguard(0x80)\n if callvalue() { revert(0, 0) }\n let programSize := datasize(\"L1_8599\")\n let argSize := sub(codesize(), programSize)\n let _2 := not(31)\n let _3 := 31\n let newFreePtr := add(_1, and(add(argSize, _3), _2))\n let _4 := sub(shl(64, 1), 1)\n if or(gt(newFreePtr, _4), lt(newFreePtr, _1))\n {\n mstore(/** @src -1:-1:-1 */ 0, /** @src 42:119:327 \"contract L1 is ERC20 {...\" */ shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(/** @src -1:-1:-1 */ 0, /** @src 42:119:327 \"contract L1 is ERC20 {...\" */ 0x24)\n }\n mstore(64, newFreePtr)\n codecopy(_1, programSize, argSize)\n let _5 := 32\n if slt(sub(add(_1, argSize), _1), _5)\n {\n revert(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 42:119:327 \"contract L1 is ERC20 {...\"\n let value := mload(_1)\n let _6 := and(value, sub(shl(160, 1), 1))\n if iszero(eq(value, _6))\n {\n revert(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 42:119:327 \"contract L1 is ERC20 {...\"\n let memPtr := allocate_memory()\n mstore(memPtr, 14)\n mstore(add(memPtr, _5), \"L1 ERC20 token\")\n let memPtr_1 := allocate_memory()\n mstore(memPtr_1, 2)\n mstore(add(memPtr_1, _5), \"L1\")\n let newLen := mload(memPtr)\n if gt(newLen, _4)\n {\n mstore(/** @src -1:-1:-1 */ 0, /** @src 42:119:327 \"contract L1 is ERC20 {...\" */ shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(/** @src -1:-1:-1 */ 0, /** @src 42:119:327 \"contract L1 is ERC20 {...\" */ 0x24)\n }\n /// @src 25:2044:2057 \"_name = name_\"\n let _7 := 0x03\n /// @src 42:119:327 \"contract L1 is ERC20 {...\"\n let _8 := sload(/** @src 25:2044:2057 \"_name = name_\" */ _7)\n /// @src 42:119:327 \"contract L1 is ERC20 {...\"\n let length := /** @src -1:-1:-1 */ 0\n /// @src 42:119:327 \"contract L1 is ERC20 {...\"\n let _9 := 1\n length := shr(_9, _8)\n let outOfPlaceEncoding := and(_8, _9)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, _5))\n {\n mstore(/** @src -1:-1:-1 */ 0, /** @src 42:119:327 \"contract L1 is ERC20 {...\" */ shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(/** @src -1:-1:-1 */ 0, /** @src 42:119:327 \"contract L1 is ERC20 {...\" */ 0x24)\n }\n if gt(length, _3)\n {\n mstore(/** @src -1:-1:-1 */ 0, /** @src 25:2044:2057 \"_name = name_\" */ _7)\n /// @src 42:119:327 \"contract L1 is ERC20 {...\"\n let data := keccak256(/** @src -1:-1:-1 */ 0, /** @src 42:119:327 \"contract L1 is ERC20 {...\" */ _5)\n let deleteStart := add(data, shr(5, add(newLen, _3)))\n if lt(newLen, _5) { deleteStart := data }\n let _10 := add(data, shr(5, add(length, _3)))\n let start := deleteStart\n for { } lt(start, _10) { start := add(start, _9) }\n {\n sstore(start, /** @src -1:-1:-1 */ 0)\n }\n }\n /// @src 42:119:327 \"contract L1 is ERC20 {...\"\n let srcOffset := /** @src -1:-1:-1 */ 0\n /// @src 42:119:327 \"contract L1 is ERC20 {...\"\n srcOffset := _5\n switch gt(newLen, _3)\n case 1 {\n let loopEnd := and(newLen, _2)\n mstore(/** @src -1:-1:-1 */ 0, /** @src 25:2044:2057 \"_name = name_\" */ _7)\n /// @src 42:119:327 \"contract L1 is ERC20 {...\"\n let dstPtr := keccak256(/** @src -1:-1:-1 */ 0, /** @src 42:119:327 \"contract L1 is ERC20 {...\" */ _5)\n let i := /** @src -1:-1:-1 */ 0\n /// @src 42:119:327 \"contract L1 is ERC20 {...\"\n for { } lt(i, loopEnd) { i := add(i, _5) }\n {\n sstore(dstPtr, mload(add(memPtr, srcOffset)))\n dstPtr := add(dstPtr, _9)\n srcOffset := add(srcOffset, _5)\n }\n if lt(loopEnd, newLen)\n {\n let lastValue := mload(add(memPtr, srcOffset))\n sstore(dstPtr, and(lastValue, not(shr(and(shl(/** @src 25:2044:2057 \"_name = name_\" */ _7, /** @src 42:119:327 \"contract L1 is ERC20 {...\" */ newLen), 248), not(0)))))\n }\n sstore(/** @src 25:2044:2057 \"_name = name_\" */ _7, /** @src 42:119:327 \"contract L1 is ERC20 {...\" */ add(shl(_9, newLen), _9))\n }\n default {\n let value_1 := /** @src -1:-1:-1 */ 0\n /// @src 42:119:327 \"contract L1 is ERC20 {...\"\n if newLen\n {\n value_1 := mload(add(memPtr, srcOffset))\n }\n sstore(/** @src 25:2044:2057 \"_name = name_\" */ _7, /** @src 42:119:327 \"contract L1 is ERC20 {...\" */ or(and(value_1, not(shr(shl(/** @src 25:2044:2057 \"_name = name_\" */ _7, /** @src 42:119:327 \"contract L1 is ERC20 {...\" */ newLen), not(0)))), shl(_9, newLen)))\n }\n let newLen_1 := mload(memPtr_1)\n if gt(newLen_1, _4)\n {\n mstore(/** @src -1:-1:-1 */ 0, /** @src 42:119:327 \"contract L1 is ERC20 {...\" */ shl(224, 0x4e487b71))\n mstore(/** @src 25:2067:2084 \"_symbol = symbol_\" */ 0x04, /** @src 42:119:327 \"contract L1 is ERC20 {...\" */ 0x41)\n revert(/** @src -1:-1:-1 */ 0, /** @src 42:119:327 \"contract L1 is ERC20 {...\" */ 0x24)\n }\n /// @src 25:2067:2084 \"_symbol = symbol_\"\n let _11 := 0x04\n /// @src 42:119:327 \"contract L1 is ERC20 {...\"\n let _12 := sload(/** @src 25:2067:2084 \"_symbol = symbol_\" */ _11)\n /// @src 42:119:327 \"contract L1 is ERC20 {...\"\n let length_1 := /** @src -1:-1:-1 */ 0\n /// @src 42:119:327 \"contract L1 is ERC20 {...\"\n length_1 := shr(_9, _12)\n let outOfPlaceEncoding_1 := and(_12, _9)\n if iszero(outOfPlaceEncoding_1)\n {\n length_1 := and(length_1, 0x7f)\n }\n if eq(outOfPlaceEncoding_1, lt(length_1, _5))\n {\n mstore(/** @src -1:-1:-1 */ 0, /** @src 42:119:327 \"contract L1 is ERC20 {...\" */ shl(224, 0x4e487b71))\n mstore(/** @src 25:2067:2084 \"_symbol = symbol_\" */ _11, /** @src 42:119:327 \"contract L1 is ERC20 {...\" */ 0x22)\n revert(/** @src -1:-1:-1 */ 0, /** @src 42:119:327 \"contract L1 is ERC20 {...\" */ 0x24)\n }\n if gt(length_1, _3)\n {\n mstore(/** @src -1:-1:-1 */ 0, /** @src 25:2067:2084 \"_symbol = symbol_\" */ _11)\n /// @src 42:119:327 \"contract L1 is ERC20 {...\"\n let data_1 := keccak256(/** @src -1:-1:-1 */ 0, /** @src 42:119:327 \"contract L1 is ERC20 {...\" */ _5)\n let deleteStart_1 := add(data_1, shr(5, add(newLen_1, _3)))\n if lt(newLen_1, _5) { deleteStart_1 := data_1 }\n let _13 := add(data_1, shr(5, add(length_1, _3)))\n let start_1 := deleteStart_1\n for { } lt(start_1, _13) { start_1 := add(start_1, _9) }\n {\n sstore(start_1, /** @src -1:-1:-1 */ 0)\n }\n }\n /// @src 42:119:327 \"contract L1 is ERC20 {...\"\n let srcOffset_1 := /** @src -1:-1:-1 */ 0\n /// @src 42:119:327 \"contract L1 is ERC20 {...\"\n srcOffset_1 := _5\n switch gt(newLen_1, _3)\n case 1 {\n let loopEnd_1 := and(newLen_1, _2)\n mstore(/** @src -1:-1:-1 */ 0, /** @src 25:2067:2084 \"_symbol = symbol_\" */ _11)\n /// @src 42:119:327 \"contract L1 is ERC20 {...\"\n let dstPtr_1 := keccak256(/** @src -1:-1:-1 */ 0, /** @src 42:119:327 \"contract L1 is ERC20 {...\" */ _5)\n let i_1 := /** @src -1:-1:-1 */ 0\n /// @src 42:119:327 \"contract L1 is ERC20 {...\"\n for { } lt(i_1, loopEnd_1) { i_1 := add(i_1, _5) }\n {\n sstore(dstPtr_1, mload(add(memPtr_1, srcOffset_1)))\n dstPtr_1 := add(dstPtr_1, _9)\n srcOffset_1 := add(srcOffset_1, _5)\n }\n if lt(loopEnd_1, newLen_1)\n {\n let lastValue_1 := mload(add(memPtr_1, srcOffset_1))\n sstore(dstPtr_1, and(lastValue_1, not(shr(and(shl(/** @src 25:2044:2057 \"_name = name_\" */ _7, /** @src 42:119:327 \"contract L1 is ERC20 {...\" */ newLen_1), 248), not(0)))))\n }\n sstore(/** @src 25:2067:2084 \"_symbol = symbol_\" */ _11, /** @src 42:119:327 \"contract L1 is ERC20 {...\" */ add(shl(_9, newLen_1), _9))\n }\n default {\n let value_2 := /** @src -1:-1:-1 */ 0\n /// @src 42:119:327 \"contract L1 is ERC20 {...\"\n if newLen_1\n {\n value_2 := mload(add(memPtr_1, srcOffset_1))\n }\n sstore(/** @src 25:2067:2084 \"_symbol = symbol_\" */ _11, /** @src 42:119:327 \"contract L1 is ERC20 {...\" */ or(and(value_2, not(shr(shl(/** @src 25:2044:2057 \"_name = name_\" */ _7, /** @src 42:119:327 \"contract L1 is ERC20 {...\" */ newLen_1), not(0)))), shl(_9, newLen_1)))\n }\n if /** @src 25:8494:8515 \"account != address(0)\" */ iszero(/** @src 42:119:327 \"contract L1 is ERC20 {...\" */ _6)\n {\n let memPtr_2 := mload(64)\n mstore(memPtr_2, shl(229, 4594637))\n mstore(add(memPtr_2, /** @src 25:2067:2084 \"_symbol = symbol_\" */ _11), /** @src 42:119:327 \"contract L1 is ERC20 {...\" */ _5)\n mstore(add(memPtr_2, 36), _3)\n mstore(add(memPtr_2, 68), \"ERC20: mint to the zero address\")\n revert(memPtr_2, 100)\n }\n sstore(2, /** @src 25:8622:8644 \"_totalSupply += amount\" */ checked_add_uint256(/** @src 42:119:327 \"contract L1 is ERC20 {...\" */ sload(2)))\n mstore(/** @src -1:-1:-1 */ 0, /** @src 42:119:327 \"contract L1 is ERC20 {...\" */ _6)\n mstore(_5, /** @src -1:-1:-1 */ 0)\n /// @src 42:119:327 \"contract L1 is ERC20 {...\"\n let dataSlot := keccak256(/** @src -1:-1:-1 */ 0, /** @src 42:119:327 \"contract L1 is ERC20 {...\" */ 64)\n sstore(dataSlot, /** @src 25:8654:8682 \"_balances[account] += amount\" */ checked_add_uint256(/** @src 42:119:327 \"contract L1 is ERC20 {...\" */ sload(/** @src 25:8654:8682 \"_balances[account] += amount\" */ dataSlot)))\n /// @src 25:8697:8734 \"Transfer(address(0), account, amount)\"\n let _14 := /** @src 42:119:327 \"contract L1 is ERC20 {...\" */ mload(64)\n mstore(_14, /** @src 42:181:198 \"1000 * (10 ** 18)\" */ 0x3635c9adc5dea00000)\n /// @src 25:8697:8734 \"Transfer(address(0), account, amount)\"\n log3(_14, /** @src 42:119:327 \"contract L1 is ERC20 {...\" */ _5, /** @src 25:8697:8734 \"Transfer(address(0), account, amount)\" */ 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef, /** @src -1:-1:-1 */ 0, /** @src 25:8697:8734 \"Transfer(address(0), account, amount)\" */ _6)\n /// @src 42:119:327 \"contract L1 is ERC20 {...\"\n let _15 := mload(64)\n let _16 := datasize(\"L1_8599_deployed\")\n codecopy(_15, dataoffset(\"L1_8599_deployed\"), _16)\n return(_15, _16)\n }\n function allocate_memory() -> memPtr\n {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, 64)\n if or(gt(newFreePtr, sub(shl(64, 1), 1)), lt(newFreePtr, memPtr))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n mstore(64, newFreePtr)\n }\n function checked_add_uint256(x) -> sum\n {\n sum := add(x, /** @src 42:181:198 \"1000 * (10 ** 18)\" */ 0x3635c9adc5dea00000)\n /// @src 42:119:327 \"contract L1 is ERC20 {...\"\n if gt(x, sum)\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n }\n }\n /// @use-src 25:\"@openzeppelin/contracts/token/ERC20/ERC20.sol\", 35:\"@openzeppelin/contracts/utils/Context.sol\", 42:\"contracts/L1.sol\"\n object \"L1_8599_deployed\" {\n code {\n {\n /// @src 42:119:327 \"contract L1 is ERC20 {...\"\n let _1 := memoryguard(0x80)\n let _2 := 64\n mstore(_2, _1)\n let _3 := 4\n if iszero(lt(calldatasize(), _3))\n {\n let _4 := 0\n switch shr(224, calldataload(_4))\n case 0x06fdde03 {\n if callvalue() { revert(_4, _4) }\n if slt(add(calldatasize(), not(3)), _4) { revert(_4, _4) }\n let ret := _4\n let slotValue := sload(/** @src 25:2242:2247 \"_name\" */ 0x03)\n /// @src 42:119:327 \"contract L1 is ERC20 {...\"\n let length := _4\n let _5 := 1\n length := shr(_5, slotValue)\n let outOfPlaceEncoding := and(slotValue, _5)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n let _6 := 32\n if eq(outOfPlaceEncoding, lt(length, _6))\n {\n mstore(_4, shl(224, 0x4e487b71))\n mstore(_3, 0x22)\n revert(_4, 0x24)\n }\n mstore(_1, length)\n switch outOfPlaceEncoding\n case 0 {\n mstore(add(_1, _6), and(slotValue, not(255)))\n ret := add(add(_1, shl(5, iszero(iszero(length)))), _6)\n }\n case 1 {\n mstore(_4, /** @src 25:2242:2247 \"_name\" */ 0x03)\n /// @src 42:119:327 \"contract L1 is ERC20 {...\"\n let dataPos := 87903029871075914254377627908054574944891091886930582284385770809450030037083\n let i := _4\n for { } lt(i, length) { i := add(i, _6) }\n {\n mstore(add(add(_1, i), _6), sload(dataPos))\n dataPos := add(dataPos, _5)\n }\n ret := add(add(_1, i), _6)\n }\n let newFreePtr := add(_1, and(add(sub(ret, _1), 31), not(31)))\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, _1))\n {\n mstore(_4, shl(224, 0x4e487b71))\n mstore(_3, 0x41)\n revert(_4, 0x24)\n }\n mstore(_2, newFreePtr)\n return(newFreePtr, sub(abi_encode_string(newFreePtr, _1), newFreePtr))\n }\n case 0x095ea7b3 {\n if callvalue() { revert(_4, _4) }\n if slt(add(calldatasize(), not(3)), _2) { revert(_4, _4) }\n let value0 := abi_decode_address_4723()\n /// @src 25:4595:4601 \"amount\"\n fun_approve(/** @src 35:719:729 \"msg.sender\" */ caller(), /** @src 25:4595:4601 \"amount\" */ value0, /** @src 42:119:327 \"contract L1 is ERC20 {...\" */ calldataload(36))\n let memPos := mload(_2)\n mstore(memPos, 1)\n return(memPos, 32)\n }\n case 0x18160ddd {\n if callvalue() { revert(_4, _4) }\n if slt(add(calldatasize(), not(3)), _4) { revert(_4, _4) }\n let _7 := sload(/** @src 25:3331:3343 \"_totalSupply\" */ 0x02)\n /// @src 42:119:327 \"contract L1 is ERC20 {...\"\n let memPos_1 := mload(_2)\n mstore(memPos_1, _7)\n return(memPos_1, 32)\n }\n case 0x23b872dd {\n if callvalue() { revert(_4, _4) }\n if slt(add(calldatasize(), not(3)), 96) { revert(_4, _4) }\n let value0_1 := abi_decode_address_4723()\n let value1 := abi_decode_address()\n let value := calldataload(68)\n mstore(_4, and(value0_1, sub(shl(160, 1), 1)))\n mstore(32, 1)\n let _8 := keccak256(_4, _2)\n mstore(_4, /** @src 35:719:729 \"msg.sender\" */ caller())\n /// @src 42:119:327 \"contract L1 is ERC20 {...\"\n mstore(32, _8)\n let _9 := sload(keccak256(_4, _2))\n /// @src 25:10962:11205 \"if (currentAllowance != type(uint256).max) {...\"\n if /** @src 25:10966:11003 \"currentAllowance != type(uint256).max\" */ iszero(eq(_9, /** @src 25:10986:11003 \"type(uint256).max\" */ not(0)))\n /// @src 25:10962:11205 \"if (currentAllowance != type(uint256).max) {...\"\n {\n /// @src 42:119:327 \"contract L1 is ERC20 {...\"\n if /** @src 25:11027:11053 \"currentAllowance >= amount\" */ lt(_9, value)\n /// @src 42:119:327 \"contract L1 is ERC20 {...\"\n {\n let memPtr := mload(_2)\n mstore(memPtr, shl(229, 4594637))\n mstore(add(memPtr, _3), 32)\n mstore(add(memPtr, 36), 29)\n mstore(add(memPtr, 68), \"ERC20: insufficient allowance\")\n revert(memPtr, 100)\n }\n /// @src 25:11154:11179 \"currentAllowance - amount\"\n fun_approve(value0_1, /** @src 35:719:729 \"msg.sender\" */ caller(), /** @src 42:119:327 \"contract L1 is ERC20 {...\" */ sub(/** @src 25:11154:11179 \"currentAllowance - amount\" */ _9, value))\n }\n /// @src 25:5443:5449 \"amount\"\n fun_transfer(value0_1, value1, value)\n /// @src 42:119:327 \"contract L1 is ERC20 {...\"\n let memPos_2 := mload(_2)\n mstore(memPos_2, 1)\n return(memPos_2, 32)\n }\n case 0x313ce567 {\n if callvalue() { revert(_4, _4) }\n if slt(add(calldatasize(), not(3)), _4) { revert(_4, _4) }\n let memPos_3 := mload(_2)\n mstore(memPos_3, /** @src 25:3175:3177 \"18\" */ 0x12)\n /// @src 42:119:327 \"contract L1 is ERC20 {...\"\n return(memPos_3, 32)\n }\n case 0x39509351 {\n if callvalue() { revert(_4, _4) }\n if slt(add(calldatasize(), not(3)), _2) { revert(_4, _4) }\n let value0_2 := abi_decode_address_4723()\n mstore(_4, /** @src 35:719:729 \"msg.sender\" */ caller())\n /// @src 42:119:327 \"contract L1 is ERC20 {...\"\n mstore(32, 1)\n let _10 := keccak256(_4, _2)\n mstore(_4, and(value0_2, sub(shl(160, 1), 1)))\n mstore(32, _10)\n /// @src 25:6040:6078 \"allowance(owner, spender) + addedValue\"\n fun_approve(/** @src 35:719:729 \"msg.sender\" */ caller(), /** @src 25:6040:6078 \"allowance(owner, spender) + addedValue\" */ value0_2, checked_add_uint256(/** @src 42:119:327 \"contract L1 is ERC20 {...\" */ sload(keccak256(_4, _2)), calldataload(36)))\n let memPos_4 := mload(_2)\n mstore(memPos_4, 1)\n return(memPos_4, 32)\n }\n case 0x70a08231 {\n if callvalue() { revert(_4, _4) }\n if slt(add(calldatasize(), not(3)), 32) { revert(_4, _4) }\n mstore(_4, and(abi_decode_address_4723(), sub(shl(160, 1), 1)))\n mstore(32, _4)\n let _11 := sload(keccak256(_4, _2))\n let memPos_5 := mload(_2)\n mstore(memPos_5, _11)\n return(memPos_5, 32)\n }\n case 0x95d89b41 {\n if callvalue() { revert(_4, _4) }\n if slt(add(calldatasize(), not(3)), _4) { revert(_4, _4) }\n let memPtr_1 := mload(_2)\n let ret_1 := _4\n let slotValue_1 := sload(_3)\n let length_1 := _4\n let _12 := 1\n length_1 := shr(_12, slotValue_1)\n let outOfPlaceEncoding_1 := and(slotValue_1, _12)\n if iszero(outOfPlaceEncoding_1)\n {\n length_1 := and(length_1, 0x7f)\n }\n let _13 := 32\n if eq(outOfPlaceEncoding_1, lt(length_1, _13))\n {\n mstore(_4, shl(224, 0x4e487b71))\n mstore(_3, 0x22)\n revert(_4, 0x24)\n }\n mstore(memPtr_1, length_1)\n switch outOfPlaceEncoding_1\n case 0 {\n mstore(add(memPtr_1, _13), and(slotValue_1, not(255)))\n ret_1 := add(add(memPtr_1, shl(5, iszero(iszero(length_1)))), _13)\n }\n case 1 {\n mstore(_4, _3)\n let dataPos_1 := 62514009886607029107290561805838585334079798074568712924583230797734656856475\n let i_1 := _4\n for { } lt(i_1, length_1) { i_1 := add(i_1, _13) }\n {\n mstore(add(add(memPtr_1, i_1), _13), sload(dataPos_1))\n dataPos_1 := add(dataPos_1, _12)\n }\n ret_1 := add(add(memPtr_1, i_1), _13)\n }\n let newFreePtr_1 := add(memPtr_1, and(add(sub(ret_1, memPtr_1), 31), not(31)))\n if or(gt(newFreePtr_1, 0xffffffffffffffff), lt(newFreePtr_1, memPtr_1))\n {\n mstore(_4, shl(224, 0x4e487b71))\n mstore(_3, 0x41)\n revert(_4, 0x24)\n }\n mstore(_2, newFreePtr_1)\n return(newFreePtr_1, sub(abi_encode_string(newFreePtr_1, memPtr_1), newFreePtr_1))\n }\n case 0xa457c2d7 {\n if callvalue() { revert(_4, _4) }\n if slt(add(calldatasize(), not(3)), _2) { revert(_4, _4) }\n let value0_3 := abi_decode_address_4723()\n let value_1 := calldataload(36)\n mstore(_4, /** @src 35:719:729 \"msg.sender\" */ caller())\n /// @src 42:119:327 \"contract L1 is ERC20 {...\"\n mstore(32, 1)\n let _14 := keccak256(_4, _2)\n mstore(_4, and(value0_3, sub(shl(160, 1), 1)))\n mstore(32, _14)\n let _15 := sload(keccak256(_4, _2))\n if /** @src 25:6811:6846 \"currentAllowance >= subtractedValue\" */ lt(_15, value_1)\n /// @src 42:119:327 \"contract L1 is ERC20 {...\"\n {\n let memPtr_2 := mload(_2)\n mstore(memPtr_2, shl(229, 4594637))\n mstore(add(memPtr_2, _3), 32)\n mstore(add(memPtr_2, 36), 37)\n mstore(add(memPtr_2, 68), \"ERC20: decreased allowance below\")\n mstore(add(memPtr_2, 100), \" zero\")\n revert(memPtr_2, 132)\n }\n /// @src 25:6947:6981 \"currentAllowance - subtractedValue\"\n fun_approve(/** @src 35:719:729 \"msg.sender\" */ caller(), /** @src 25:6947:6981 \"currentAllowance - subtractedValue\" */ value0_3, /** @src 42:119:327 \"contract L1 is ERC20 {...\" */ sub(/** @src 25:6947:6981 \"currentAllowance - subtractedValue\" */ _15, value_1))\n /// @src 42:119:327 \"contract L1 is ERC20 {...\"\n let memPos_6 := mload(_2)\n mstore(memPos_6, 1)\n return(memPos_6, 32)\n }\n case 0xa9059cbb {\n if callvalue() { revert(_4, _4) }\n if slt(add(calldatasize(), not(3)), _2) { revert(_4, _4) }\n let value0_4 := abi_decode_address_4723()\n /// @src 25:3883:3889 \"amount\"\n fun_transfer(/** @src 35:719:729 \"msg.sender\" */ caller(), /** @src 25:3883:3889 \"amount\" */ value0_4, /** @src 42:119:327 \"contract L1 is ERC20 {...\" */ calldataload(36))\n let memPos_7 := mload(_2)\n mstore(memPos_7, 1)\n return(memPos_7, 32)\n }\n case 0xdd62ed3e {\n if callvalue() { revert(_4, _4) }\n if slt(add(calldatasize(), not(3)), _2) { revert(_4, _4) }\n let value0_5 := abi_decode_address_4723()\n let value1_1 := abi_decode_address()\n let _16 := sub(shl(160, 1), 1)\n mstore(_4, and(value0_5, _16))\n mstore(32, /** @src 25:4091:4102 \"_allowances\" */ 0x01)\n /// @src 42:119:327 \"contract L1 is ERC20 {...\"\n let _17 := keccak256(_4, _2)\n mstore(_4, and(value1_1, _16))\n mstore(32, _17)\n let _18 := sload(keccak256(_4, _2))\n let memPos_8 := mload(_2)\n mstore(memPos_8, _18)\n return(memPos_8, 32)\n }\n }\n revert(0, 0)\n }\n function abi_encode_string(headStart, value0) -> tail\n {\n let _1 := 32\n mstore(headStart, _1)\n let length := mload(value0)\n mstore(add(headStart, _1), length)\n let i := 0\n for { } lt(i, length) { i := add(i, _1) }\n {\n mstore(add(add(headStart, i), 64), mload(add(add(value0, i), _1)))\n }\n mstore(add(add(headStart, length), 64), 0)\n tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n }\n function abi_decode_address_4723() -> value\n {\n value := calldataload(4)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_address() -> value\n {\n value := calldataload(36)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function checked_add_uint256(x, y) -> sum\n {\n sum := add(x, y)\n if gt(x, sum)\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n }\n /// @ast-id 6097 @src 25:7484:8135 \"function _transfer(...\"\n function fun_transfer(var_from, var_to, var_amount)\n {\n /// @src 42:119:327 \"contract L1 is ERC20 {...\"\n let _1 := sub(shl(160, 1), 1)\n let _2 := and(/** @src 25:7610:7628 \"from != address(0)\" */ var_from, /** @src 42:119:327 \"contract L1 is ERC20 {...\" */ _1)\n if /** @src 25:7610:7628 \"from != address(0)\" */ iszero(/** @src 42:119:327 \"contract L1 is ERC20 {...\" */ _2)\n {\n let memPtr := mload(64)\n mstore(memPtr, shl(229, 4594637))\n mstore(add(memPtr, 4), 32)\n mstore(add(memPtr, 36), 37)\n mstore(add(memPtr, 68), \"ERC20: transfer from the zero ad\")\n mstore(add(memPtr, 100), \"dress\")\n revert(memPtr, 132)\n }\n let _3 := and(/** @src 25:7688:7704 \"to != address(0)\" */ var_to, /** @src 42:119:327 \"contract L1 is ERC20 {...\" */ _1)\n if /** @src 25:7688:7704 \"to != address(0)\" */ iszero(/** @src 42:119:327 \"contract L1 is ERC20 {...\" */ _3)\n {\n let memPtr_1 := mload(64)\n mstore(memPtr_1, shl(229, 4594637))\n mstore(add(memPtr_1, 4), 32)\n mstore(add(memPtr_1, 36), 35)\n mstore(add(memPtr_1, 68), \"ERC20: transfer to the zero addr\")\n mstore(add(memPtr_1, 100), \"ess\")\n revert(memPtr_1, 132)\n }\n /// @src 25:7626:7627 \"0\"\n let _4 := 0x00\n /// @src 42:119:327 \"contract L1 is ERC20 {...\"\n mstore(/** @src 25:7626:7627 \"0\" */ _4, /** @src 42:119:327 \"contract L1 is ERC20 {...\" */ _2)\n mstore(0x20, /** @src 25:7626:7627 \"0\" */ _4)\n /// @src 42:119:327 \"contract L1 is ERC20 {...\"\n let _5 := sload(keccak256(/** @src 25:7626:7627 \"0\" */ _4, /** @src 42:119:327 \"contract L1 is ERC20 {...\" */ 0x40))\n if /** @src 25:7859:7880 \"fromBalance >= amount\" */ lt(_5, var_amount)\n /// @src 42:119:327 \"contract L1 is ERC20 {...\"\n {\n let memPtr_2 := mload(0x40)\n mstore(memPtr_2, shl(229, 4594637))\n mstore(add(memPtr_2, 4), 0x20)\n mstore(add(memPtr_2, 36), 38)\n mstore(add(memPtr_2, 68), \"ERC20: transfer amount exceeds b\")\n mstore(add(memPtr_2, 100), \"alance\")\n revert(memPtr_2, 132)\n }\n mstore(/** @src 25:7626:7627 \"0\" */ _4, /** @src 42:119:327 \"contract L1 is ERC20 {...\" */ _2)\n mstore(0x20, /** @src 25:7626:7627 \"0\" */ _4)\n /// @src 42:119:327 \"contract L1 is ERC20 {...\"\n sstore(keccak256(/** @src 25:7626:7627 \"0\" */ _4, /** @src 42:119:327 \"contract L1 is ERC20 {...\" */ 0x40), sub(/** @src 25:7975:7995 \"fromBalance - amount\" */ _5, var_amount))\n /// @src 42:119:327 \"contract L1 is ERC20 {...\"\n mstore(/** @src 25:7626:7627 \"0\" */ _4, /** @src 42:119:327 \"contract L1 is ERC20 {...\" */ _3)\n let dataSlot := keccak256(/** @src 25:7626:7627 \"0\" */ _4, /** @src 42:119:327 \"contract L1 is ERC20 {...\" */ 0x40)\n sstore(dataSlot, /** @src 25:8015:8038 \"_balances[to] += amount\" */ checked_add_uint256(/** @src 42:119:327 \"contract L1 is ERC20 {...\" */ sload(/** @src 25:8015:8038 \"_balances[to] += amount\" */ dataSlot), var_amount))\n /// @src 25:8054:8080 \"Transfer(from, to, amount)\"\n let _6 := /** @src 42:119:327 \"contract L1 is ERC20 {...\" */ mload(0x40)\n mstore(_6, var_amount)\n /// @src 25:8054:8080 \"Transfer(from, to, amount)\"\n log3(_6, /** @src 42:119:327 \"contract L1 is ERC20 {...\" */ 0x20, /** @src 25:8054:8080 \"Transfer(from, to, amount)\" */ 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef, _2, _3)\n }\n /// @ast-id 6270 @src 25:10119:10489 \"function _approve(...\"\n function fun_approve(var_owner, var_spender, var_amount)\n {\n /// @src 42:119:327 \"contract L1 is ERC20 {...\"\n let _1 := sub(shl(160, 1), 1)\n let _2 := and(/** @src 25:10250:10269 \"owner != address(0)\" */ var_owner, /** @src 42:119:327 \"contract L1 is ERC20 {...\" */ _1)\n if /** @src 25:10250:10269 \"owner != address(0)\" */ iszero(/** @src 42:119:327 \"contract L1 is ERC20 {...\" */ _2)\n {\n let memPtr := mload(64)\n mstore(memPtr, shl(229, 4594637))\n mstore(add(memPtr, 4), 32)\n mstore(add(memPtr, 36), 36)\n mstore(add(memPtr, 68), \"ERC20: approve from the zero add\")\n mstore(add(memPtr, 100), \"ress\")\n revert(memPtr, 132)\n }\n let _3 := and(/** @src 25:10328:10349 \"spender != address(0)\" */ var_spender, /** @src 42:119:327 \"contract L1 is ERC20 {...\" */ _1)\n if /** @src 25:10328:10349 \"spender != address(0)\" */ iszero(/** @src 42:119:327 \"contract L1 is ERC20 {...\" */ _3)\n {\n let memPtr_1 := mload(64)\n mstore(memPtr_1, shl(229, 4594637))\n mstore(add(memPtr_1, 4), 32)\n mstore(add(memPtr_1, 36), 34)\n mstore(add(memPtr_1, 68), \"ERC20: approve to the zero addre\")\n mstore(add(memPtr_1, 100), \"ss\")\n revert(memPtr_1, 132)\n }\n mstore(/** @src 25:10267:10268 \"0\" */ 0x00, /** @src 42:119:327 \"contract L1 is ERC20 {...\" */ _2)\n mstore(0x20, /** @src 25:10399:10410 \"_allowances\" */ 0x01)\n /// @src 42:119:327 \"contract L1 is ERC20 {...\"\n let _4 := keccak256(/** @src 25:10267:10268 \"0\" */ 0x00, /** @src 42:119:327 \"contract L1 is ERC20 {...\" */ 0x40)\n mstore(/** @src 25:10267:10268 \"0\" */ 0x00, /** @src 42:119:327 \"contract L1 is ERC20 {...\" */ _3)\n mstore(0x20, _4)\n sstore(keccak256(/** @src 25:10267:10268 \"0\" */ 0x00, /** @src 42:119:327 \"contract L1 is ERC20 {...\" */ 0x40), var_amount)\n /// @src 25:10450:10482 \"Approval(owner, spender, amount)\"\n let _5 := /** @src 42:119:327 \"contract L1 is ERC20 {...\" */ mload(0x40)\n mstore(_5, var_amount)\n /// @src 25:10450:10482 \"Approval(owner, spender, amount)\"\n log3(_5, /** @src 42:119:327 \"contract L1 is ERC20 {...\" */ 0x20, /** @src 25:10450:10482 \"Approval(owner, spender, amount)\" */ 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925, _2, _3)\n }\n }\n data \".metadata\" hex\"a2646970667358221220cfaaa9e37635652ffecb0d8e79a0f61f335cb5f3da036f0b3153d0031c12e19664736f6c63430008120033\"\n }\n}\n","hash":"010001b1054270aee34379fd76835176c7ddd52b692a06c3913b296ae6195821","factoryDependencies":{}}},"contracts/L2.sol":{"L2":{"abi":[{"inputs":[],"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"}],"metadata":{"optimizer_settings":"M3B3","solc_metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"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\":{\"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\":{\"contracts/L2.sol\":\"L2\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xe0c8b625a79bac0fe80f17cfb521e072805cc9cef1c96a5caf45b264e74812fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12fd1efc9ad061ef675bd50fb0c8e3c6f2952a09f8df0e3c688b8d81b8918838\",\"dweb:/ipfs/QmawN6PjTwy91pU7ANjCSgbsLc8TDA6hwu9GsFFaNSuhb5\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"contracts/L2.sol\":{\"keccak256\":\"0x41de43e9b7b54e1ffe9232f33a71c4927ac6d4adcb7f690f310244503e081719\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://7f70dcaa48de9418e1c0300dc3f2b3f1390c81bf2334e1472a7681e48777f2ec\",\"dweb:/ipfs/Qmc7wA1CdozJwbWhVBGMMvgo6hQPj5oj4TRLC1N5WQq2cc\"]}},\"version\":1}","zk_version":"1.3.9"},"evm":{"legacyAssembly":null,"assembly":"\t.text\n\t.file\t\"L2.sol:L2\"\n\t.globl\t__entry\n__entry:\n.func_begin0:\n\tnop\tstack+=[6]\n\tptr.add\tr1, r0, stack[@ptr_calldata]\n\tshr.s\t96, r1, r1\n\tand\t@CPI0_0[0], r1, stack[@calldatasize]\n\tand!\t1, r2, r1\n\tjump.ne\t@.BB0_1\n\tadd\t128, r0, r1\n\tst.1\t64, r1\n\tadd\tstack[@calldatasize], r0, r1\n\tsub.s!\t4, r1, r1\n\tjump.lt\t@.BB0_2\n\tptr.add\tstack[@ptr_calldata], r0, r1\n\tld\tr1, r1\n\tshr.s\t224, r1, r1\n\tsub.s!\t@CPI0_15[0], r1, r2\n\tjump.le\t@.BB0_52\n\tsub.s!\t@CPI0_16[0], r1, r2\n\tjump.gt\t@.BB0_62\n\tsub.s!\t@CPI0_20[0], r1, r2\n\tjump.eq\t@.BB0_103\n\tsub.s!\t@CPI0_21[0], r1, r2\n\tjump.eq\t@.BB0_110\n\tsub.s!\t@CPI0_22[0], r1, r1\n\tjump.ne\t@.BB0_2\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tsub.s\t4, r0, r1\n\tadd\tstack[@calldatasize], r1, r1\n\tadd\t@CPI0_29[0], r0, r2\n\tsub.s!\t0, r1, r3\n\tadd\t0, r0, r3\n\tadd.lt\tr2, r0, r3\n\tand\t@CPI0_29[0], r1, r1\n\tsub.s!\t0, r1, r4\n\tadd.le\t0, r0, r2\n\tsub.s!\t@CPI0_29[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tadd\t4, r0, r5\n\tsload\tr5, r4\n\tand!\t1, r4, r6\n\tshr.s\t1, r4, r1\n\tand\t127, r1, r2\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t31, r1, r2\n\tadd\t0, r0, r2\n\tadd.gt\t1, r0, r2\n\txor\tr4, r2, r2\n\tand!\t1, r2, r2\n\tjump.ne\t@.BB0_7\n\tld.1\t64, r2\n\tst.1.inc\tr2, r1, r3\n\tsub.s!\t0, r6, r6\n\tjump.ne\t@.BB0_121\n\tsub.s\t256, r0, r5\n\tand\tr4, r5, r4\n\tst.1\tr3, r4\n\tsub.s!\t0, r1, r1\n\tadd\t32, r0, r4\n\tadd.eq\t0, r0, r4\n\tjump\t@.BB0_118\n.BB0_1:\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tadd\t192, r0, r1\n\tst.1\t64, r1\n\tadd\t14, r0, r1\n\tst.1\t128, r1\n\tadd\t@CPI0_1[0], r0, r1\n\tst.1\t160, r1\n\tld.1\t64, r5\n\tsub.s!\t@CPI0_2[0], r5, r1\n\tjump.ge\t@.BB0_4\n\tadd\t64, r5, r1\n\tst.1\t64, r1\n\tadd\t2, r0, r4\n\tst.1.inc\tr5, r4, r6\n\tadd\t@CPI0_3[0], r0, r1\n\tst.1\tr6, r1\n\tld.1\t128, r8\n\tsub.s!\t@CPI0_4[0], r8, r1\n\tjump.le\t@.BB0_6\n.BB0_4:\n\tadd\t@CPI0_36[0], r0, r1\n\tst.1\t0, r1\n\tadd\t65, r0, r1\n\tst.1\t4, r1\n\tadd\t@CPI0_37[0], r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB0_52:\n\tsub.s!\t@CPI0_23[0], r1, r2\n\tjump.le\t@.BB0_53\n\tsub.s!\t@CPI0_24[0], r1, r2\n\tjump.eq\t@.BB0_80\n\tsub.s!\t@CPI0_25[0], r1, r2\n\tjump.eq\t@.BB0_83\n\tsub.s!\t@CPI0_26[0], r1, r1\n\tjump.ne\t@.BB0_2\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tsub.s\t4, r0, r1\n\tadd\tstack[@calldatasize], r1, r1\n\tadd\t@CPI0_29[0], r0, r2\n\tsub.s!\t0, r1, r3\n\tadd\t0, r0, r3\n\tadd.lt\tr2, r0, r3\n\tand\t@CPI0_29[0], r1, r1\n\tsub.s!\t0, r1, r4\n\tadd.le\t0, r0, r2\n\tsub.s!\t@CPI0_29[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tld.1\t64, r1\n\tadd\t18, r0, r2\n\tst.1\tr1, r2\n\tadd\t@CPI0_0[0], r0, r2\n\tsub.s!\t@CPI0_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI0_31[0], r1, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_62:\n\tsub.s!\t@CPI0_17[0], r1, r2\n\tjump.eq\t@.BB0_125\n\tsub.s!\t@CPI0_18[0], r1, r2\n\tjump.eq\t@.BB0_133\n\tsub.s!\t@CPI0_19[0], r1, r1\n\tjump.ne\t@.BB0_2\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tsub.s\t4, r0, r1\n\tadd\tstack[@calldatasize], r1, r1\n\tadd\t@CPI0_29[0], r0, r2\n\tsub.s!\t64, r1, r3\n\tadd\t0, r0, r3\n\tadd.lt\tr2, r0, r3\n\tand\t@CPI0_29[0], r1, r1\n\tsub.s!\t0, r1, r4\n\tadd.le\t0, r0, r2\n\tsub.s!\t@CPI0_29[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tptr.add\tstack[@ptr_calldata], r0, r2\n\tptr.add.s\t4, r2, r1\n\tld\tr1, r1\n\tsub.s!\t@CPI0_30[0], r1, r3\n\tjump.gt\t@.BB0_2\n\tptr.add.s\t36, r2, r2\n\tld\tr2, r3\n\tsub.s!\t@CPI0_30[0], r3, r2\n\tjump.gt\t@.BB0_2\n\tst.1\t0, r1\n\tadd\t1, r0, r1\n\tst.1\t32, r1\n\tadd\t64, r0, r2\n\tadd\tr2, r0, stack-[6]\n\tadd\tr0, r0, r1\n\tadd\tr3, r0, stack-[5]\n\tnear_call\tr0, @__keccak256, @DEFAULT_UNWIND\n\tadd\tstack-[5], r0, r2\n\tst.1\t0, r2\n\tst.1\t32, r1\n\tadd\tr0, r0, r1\n\tadd\tstack-[6], r0, r2\n\tnear_call\tr0, @__keccak256, @DEFAULT_UNWIND\n\tsload\tr1, r1\n\tld.1\t64, r2\n\tst.1\tr2, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI0_31[0], r1, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_6:\n\tadd\t3, r0, r7\n\tsload\tr7, r1\n\tand!\t1, r1, r2\n\tshr.s\t1, r1, r1\n\tand\t127, r1, r3\n\tadd.ne\tr1, r0, r3\n\tsub.s!\t31, r3, r1\n\tadd\t0, r0, r1\n\tadd.gt\t1, r0, r1\n\tand\t1, r1, r1\n\tsub!\tr2, r1, r1\n\tjump.eq\t@.BB0_8\n.BB0_7:\n\tadd\t@CPI0_36[0], r0, r1\n\tst.1\t0, r1\n\tadd\t34, r0, r1\n\tst.1\t4, r1\n\tadd\t@CPI0_37[0], r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB0_53:\n\tsub.s!\t@CPI0_27[0], r1, r2\n\tjump.eq\t@.BB0_65\n\tsub.s!\t@CPI0_28[0], r1, r1\n\tjump.ne\t@.BB0_2\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tsub.s\t4, r0, r1\n\tadd\tstack[@calldatasize], r1, r1\n\tadd\t@CPI0_29[0], r0, r2\n\tsub.s!\t64, r1, r3\n\tadd\t0, r0, r3\n\tadd.lt\tr2, r0, r3\n\tand\t@CPI0_29[0], r1, r1\n\tsub.s!\t0, r1, r4\n\tadd.le\t0, r0, r2\n\tsub.s!\t@CPI0_29[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tptr.add\tstack[@ptr_calldata], r0, r1\n\tptr.add.s\t4, r1, r2\n\tld\tr2, r2\n\tsub.s!\t@CPI0_30[0], r2, r3\n\tjump.gt\t@.BB0_2\n\tptr.add.s\t36, r1, r1\n\tld\tr1, r3\n\tcontext.caller\tr1\n\tnear_call\tr0, @fun_approve, @DEFAULT_UNWIND\n\tadd\t1, r0, r1\n\tld.1\t64, r2\n\tst.1\tr2, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI0_31[0], r1, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_8:\n\tsub.s!\t32, r3, r1\n\tadd\tr4, r0, stack-[6]\n\tadd\tr5, r0, stack-[5]\n\tadd\tr6, r0, stack-[4]\n\tjump.lt\t@.BB0_12\n\tadd\tr3, r0, stack-[1]\n\tadd\tr8, r0, stack-[2]\n\tadd\tr7, r0, stack-[3]\n\tst.1\t0, r7\n\tadd\t@CPI0_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI0_5[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_2\n\tadd\tstack-[2], r0, r8\n\tadd\t31, r8, r2\n\tshr.s\t5, r2, r2\n\tsub.s!\t32, r8, r3\n\tadd.lt\t0, r0, r2\n\tld\tr1, r3\n\tadd\tstack-[1], r0, r1\n\tadd\t31, r1, r1\n\tshr.s\t5, r1, r1\n\tadd\tr3, r1, r1\n\tadd\tr3, r2, r2\n\tsub!\tr2, r1, r3\n\tadd\tstack-[6], r0, r4\n\tadd\tstack-[5], r0, r5\n\tadd\tstack-[4], r0, r6\n\tadd\tstack-[3], r0, r7\n\tjump.ge\t@.BB0_12\n.BB0_13:\n\tsstore\tr2, r0\n\tadd\t1, r2, r2\n\tsub!\tr2, r1, r3\n\tjump.lt\t@.BB0_13\n.BB0_12:\n\tsub.s!\t31, r8, r1\n\tjump.le\t@.BB0_22\n\tadd\tr8, r0, stack-[2]\n\tadd\tr7, r0, stack-[3]\n\tst.1\t0, r7\n\tadd\t@CPI0_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI0_5[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_2\n\tsub.s\t32, r0, r2\n\tadd\tstack-[2], r0, r8\n\tand!\tr8, r2, r3\n\tadd\t32, r0, r2\n\tld\tr1, r1\n\tjump.eq\t@.BB0_19\n\tadd\t32, r0, r2\n\tadd\tr0, r0, r4\n.BB0_18:\n\tadd\t128, r2, r5\n\tld.1\tr5, r5\n\tsstore\tr1, r5\n\tadd\t32, r2, r2\n\tadd\t1, r1, r1\n\tadd\t32, r4, r4\n\tsub!\tr4, r3, r5\n\tjump.lt\t@.BB0_18\n.BB0_19:\n\tsub!\tr3, r8, r3\n\tadd\tstack-[5], r0, r5\n\tadd\tstack-[4], r0, r6\n\tadd\tstack-[3], r0, r7\n\tjump.ge\t@.BB0_21\n\tshl.s\t3, r8, r3\n\tand\t248, r3, r3\n\tsub.s\t1, r0, r4\n\tshr\tr4, r3, r3\n\txor\tr3, r4, r3\n\tadd\t128, r2, r2\n\tld.1\tr2, r2\n\tand\tr2, r3, r2\n\tsstore\tr1, r2\n.BB0_21:\n\tadd\t1, r0, r1\n\tshl.s\t1, r8, r2\n\tadd\tstack-[6], r0, r4\n\tjump\t@.BB0_14\n.BB0_65:\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tsub.s\t4, r0, r1\n\tadd\tstack[@calldatasize], r1, r1\n\tadd\t@CPI0_29[0], r0, r2\n\tsub.s!\t0, r1, r3\n\tadd\t0, r0, r3\n\tadd.lt\tr2, r0, r3\n\tand\t@CPI0_29[0], r1, r1\n\tsub.s!\t0, r1, r4\n\tadd.le\t0, r0, r2\n\tsub.s!\t@CPI0_29[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tadd\t3, r0, r3\n\tsload\tr3, r2\n\tand!\t1, r2, r4\n\tshr.s\t1, r2, r1\n\tand\t127, r1, r5\n\tadd\tr1, r0, r6\n\tadd.eq\tr5, r0, r6\n\tsub.s!\t31, r6, r5\n\tadd\t0, r0, r5\n\tadd.gt\t1, r0, r5\n\txor\tr2, r5, r5\n\tand!\t1, r5, r5\n\tjump.ne\t@.BB0_7\n\tst.1\t128, r6\n\tsub.s!\t0, r4, r4\n\tjump.ne\t@.BB0_71\n\tsub.s\t256, r0, r3\n\tand\tr2, r3, r2\n\tst.1\t160, r2\n\tsub.s!\t0, r6, r1\n\tadd\t192, r0, r1\n\tadd.eq\t160, r0, r1\n\tjump\t@.BB0_69\n.BB0_103:\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tsub.s\t4, r0, r1\n\tadd\tstack[@calldatasize], r1, r1\n\tadd\t@CPI0_29[0], r0, r2\n\tsub.s!\t64, r1, r3\n\tadd\t0, r0, r3\n\tadd.lt\tr2, r0, r3\n\tand\t@CPI0_29[0], r1, r1\n\tsub.s!\t0, r1, r4\n\tadd.le\t0, r0, r2\n\tsub.s!\t@CPI0_29[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tadd\t4, r0, r1\n\tptr.add\tstack[@ptr_calldata], r1, r1\n\tld\tr1, r1\n\tadd\tr1, r0, stack-[6]\n\tsub.s!\t@CPI0_30[0], r1, r1\n\tjump.gt\t@.BB0_2\n\tcontext.caller\tr1\n\tadd\tr1, r0, stack-[4]\n\tst.1\t0, r1\n\tadd\t1, r0, r1\n\tadd\tr1, r0, stack-[5]\n\tst.1\t32, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI0_8[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_2\n\tld\tr1, r1\n\tadd\tstack-[6], r0, r2\n\tst.1\t0, r2\n\tst.1\t32, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI0_8[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_2\n\tld\tr1, r1\n\tsload\tr1, r1\n\tadd\t36, r0, r2\n\tptr.add\tstack[@ptr_calldata], r2, r2\n\tld\tr2, r2\n\tadd\tr2, r1, r3\n\tsub!\tr3, r2, r1\n\tadd\t0, r0, r1\n\tadd.lt\t1, r0, r1\n\tand!\t1, r1, r1\n\tjump.ne\t@.BB0_45\n\tadd\tstack-[4], r0, r1\n\tadd\tstack-[6], r0, r2\n\tnear_call\tr0, @fun_approve, @DEFAULT_UNWIND\n\tld.1\t64, r1\n\tadd\tstack-[5], r0, r2\n\tst.1\tr1, r2\n\tadd\t@CPI0_0[0], r0, r2\n\tsub.s!\t@CPI0_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI0_31[0], r1, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_110:\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tsub.s\t4, r0, r1\n\tadd\tstack[@calldatasize], r1, r1\n\tadd\t@CPI0_29[0], r0, r2\n\tsub.s!\t32, r1, r3\n\tadd\t0, r0, r3\n\tadd.lt\tr2, r0, r3\n\tand\t@CPI0_29[0], r1, r1\n\tsub.s!\t0, r1, r4\n\tadd.le\t0, r0, r2\n\tsub.s!\t@CPI0_29[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tadd\t4, r0, r1\n\tptr.add\tstack[@ptr_calldata], r1, r1\n\tld\tr1, r1\n\tsub.s!\t@CPI0_30[0], r1, r2\n\tjump.gt\t@.BB0_2\n\tst.1\t0, r1\n\tst.1\t32, r0\n\tadd\t64, r0, r2\n\tadd\tr0, r0, r1\n\tnear_call\tr0, @__keccak256, @DEFAULT_UNWIND\n\tsload\tr1, r1\n\tld.1\t64, r2\n\tst.1\tr2, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI0_31[0], r1, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_80:\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tsub.s\t4, r0, r1\n\tadd\tstack[@calldatasize], r1, r1\n\tadd\t@CPI0_29[0], r0, r2\n\tsub.s!\t0, r1, r3\n\tadd\t0, r0, r3\n\tadd.lt\tr2, r0, r3\n\tand\t@CPI0_29[0], r1, r1\n\tsub.s!\t0, r1, r4\n\tadd.le\t0, r0, r2\n\tsub.s!\t@CPI0_29[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tadd\t2, r0, r1\n\tsload\tr1, r1\n\tld.1\t64, r2\n\tst.1\tr2, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI0_31[0], r1, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_83:\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tsub.s\t4, r0, r1\n\tadd\tstack[@calldatasize], r1, r1\n\tadd\t@CPI0_29[0], r0, r2\n\tsub.s!\t96, r1, r3\n\tadd\t0, r0, r3\n\tadd.lt\tr2, r0, r3\n\tand\t@CPI0_29[0], r1, r1\n\tsub.s!\t0, r1, r4\n\tadd.le\t0, r0, r2\n\tsub.s!\t@CPI0_29[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tptr.add\tstack[@ptr_calldata], r0, r1\n\tptr.add.s\t4, r1, r2\n\tld\tr2, r4\n\tsub.s!\t@CPI0_30[0], r4, r2\n\tjump.gt\t@.BB0_2\n\tptr.add.s\t36, r1, r2\n\tld\tr2, r2\n\tadd\tr2, r0, stack-[6]\n\tsub.s!\t@CPI0_30[0], r2, r2\n\tjump.gt\t@.BB0_2\n\tptr.add.s\t68, r1, r1\n\tld\tr1, r1\n\tadd\tr1, r0, stack-[4]\n\tst.1\t0, r4\n\tadd\t1, r0, r1\n\tadd\tr1, r0, stack-[3]\n\tst.1\t32, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI0_8[0], r1, r1\n\tadd\t32784, r0, r2\n\tadd\tr4, r0, stack-[5]\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_2\n\tld\tr1, r1\n\tcontext.caller\tr2\n\tadd\tr2, r0, stack-[2]\n\tst.1\t0, r2\n\tst.1\t32, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI0_8[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tadd\tstack-[5], r0, r3\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_2\n\tld\tr1, r1\n\tsload\tr1, r2\n\tsub.s\t1, r0, r1\n\tsub!\tr2, r1, r1\n\tjump.ne\t@.BB0_90\n.BB0_91:\n\tadd\tr3, r0, r1\n\tadd\tstack-[6], r0, r2\n\tadd\tstack-[4], r0, r3\n\tnear_call\tr0, @fun_transfer, @DEFAULT_UNWIND\n\tld.1\t64, r1\n\tadd\tstack-[3], r0, r2\n\tst.1\tr1, r2\n\tadd\t@CPI0_0[0], r0, r2\n\tsub.s!\t@CPI0_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI0_31[0], r1, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_125:\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tsub.s\t4, r0, r1\n\tadd\tstack[@calldatasize], r1, r1\n\tadd\t@CPI0_29[0], r0, r2\n\tsub.s!\t64, r1, r3\n\tadd\t0, r0, r3\n\tadd.lt\tr2, r0, r3\n\tand\t@CPI0_29[0], r1, r1\n\tsub.s!\t0, r1, r4\n\tadd.le\t0, r0, r2\n\tsub.s!\t@CPI0_29[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tptr.add\tstack[@ptr_calldata], r0, r1\n\tptr.add.s\t4, r1, r2\n\tld\tr2, r2\n\tadd\tr2, r0, stack-[6]\n\tsub.s!\t@CPI0_30[0], r2, r2\n\tjump.gt\t@.BB0_2\n\tptr.add.s\t36, r1, r1\n\tld\tr1, r1\n\tadd\tr1, r0, stack-[5]\n\tcontext.caller\tr1\n\tadd\tr1, r0, stack-[3]\n\tst.1\t0, r1\n\tadd\t1, r0, r1\n\tadd\tr1, r0, stack-[4]\n\tst.1\t32, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI0_8[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_2\n\tld\tr1, r1\n\tadd\tstack-[6], r0, r2\n\tst.1\t0, r2\n\tst.1\t32, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI0_8[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_2\n\tld\tr1, r1\n\tsload\tr1, r1\n\tadd\tstack-[5], r0, r3\n\tsub!\tr1, r3, r2\n\tjump.ge\t@.BB0_132\n\tld.1\t64, r1\n\tadd\t100, r1, r2\n\tadd\t@CPI0_32[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t68, r1, r2\n\tadd\t@CPI0_33[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t37, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI0_13[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI0_0[0], r0, r2\n\tsub.s!\t@CPI0_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI0_34[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB0_133:\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tsub.s\t4, r0, r1\n\tadd\tstack[@calldatasize], r1, r1\n\tadd\t@CPI0_29[0], r0, r2\n\tsub.s!\t64, r1, r3\n\tadd\t0, r0, r3\n\tadd.lt\tr2, r0, r3\n\tand\t@CPI0_29[0], r1, r1\n\tsub.s!\t0, r1, r4\n\tadd.le\t0, r0, r2\n\tsub.s!\t@CPI0_29[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tptr.add\tstack[@ptr_calldata], r0, r1\n\tptr.add.s\t4, r1, r2\n\tld\tr2, r2\n\tsub.s!\t@CPI0_30[0], r2, r3\n\tjump.gt\t@.BB0_2\n\tptr.add.s\t36, r1, r1\n\tld\tr1, r3\n\tcontext.caller\tr1\n\tnear_call\tr0, @fun_transfer, @DEFAULT_UNWIND\n\tadd\t1, r0, r1\n\tld.1\t64, r2\n\tst.1\tr2, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI0_31[0], r1, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_22:\n\tsub.s!\t0, r8, r1\n\tadd\tr0, r0, r1\n\tjump.eq\t@.BB0_24\n\tld.1\t160, r1\n.BB0_24:\n\tshl.s\t3, r8, r2\n\tsub.s\t1, r0, r3\n\tshr\tr3, r2, r2\n\txor\tr2, r3, r2\n\tand\tr1, r2, r2\n\tshl.s\t1, r8, r1\n.BB0_14:\n\tor\tr2, r1, r1\n\tsstore\tr7, r1\n\tld.1\tr5, r8\n\tsub.s!\t@CPI0_4[0], r8, r1\n\tjump.gt\t@.BB0_4\n\tadd\t4, r0, r7\n\tsload\tr7, r1\n\tand!\t1, r1, r2\n\tshr.s\t1, r1, r2\n\tand\t127, r2, r3\n\tadd.ne\tr2, r0, r3\n\tsub.s!\t31, r3, r2\n\tadd\t0, r0, r2\n\tadd.gt\t1, r0, r2\n\txor\tr1, r2, r1\n\tand!\t1, r1, r1\n\tjump.ne\t@.BB0_7\n\tsub.s!\t32, r3, r1\n\tjump.lt\t@.BB0_30\n\tadd\tr3, r0, stack-[1]\n\tadd\tr8, r0, stack-[2]\n\tadd\tr7, r0, stack-[3]\n\tst.1\t0, r7\n\tadd\t@CPI0_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI0_5[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_2\n\tadd\tstack-[2], r0, r8\n\tadd\t31, r8, r2\n\tshr.s\t5, r2, r2\n\tsub.s!\t32, r8, r3\n\tadd.lt\t0, r0, r2\n\tld\tr1, r3\n\tadd\tstack-[1], r0, r1\n\tadd\t31, r1, r1\n\tshr.s\t5, r1, r1\n\tadd\tr3, r1, r1\n\tadd\tr3, r2, r2\n\tsub!\tr2, r1, r3\n\tadd\tstack-[6], r0, r4\n\tadd\tstack-[5], r0, r5\n\tadd\tstack-[4], r0, r6\n\tadd\tstack-[3], r0, r7\n\tjump.ge\t@.BB0_30\n.BB0_31:\n\tsstore\tr2, r0\n\tadd\t1, r2, r2\n\tsub!\tr2, r1, r3\n\tjump.lt\t@.BB0_31\n.BB0_30:\n\tsub.s!\t31, r8, r1\n\tjump.le\t@.BB0_40\n\tadd\tr8, r0, stack-[2]\n\tadd\tr7, r0, stack-[3]\n\tst.1\t0, r7\n\tadd\t@CPI0_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI0_5[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_2\n\tsub.s\t32, r0, r2\n\tadd\tstack-[2], r0, r8\n\tand!\tr8, r2, r3\n\tadd\t32, r0, r2\n\tld\tr1, r1\n\tadd\tstack-[5], r0, r6\n\tjump.eq\t@.BB0_37\n\tadd\t32, r0, r2\n\tadd\tr0, r0, r4\n.BB0_36:\n\tadd\tr2, r6, r5\n\tld.1\tr5, r5\n\tsstore\tr1, r5\n\tadd\t32, r2, r2\n\tadd\t1, r1, r1\n\tadd\t32, r4, r4\n\tsub!\tr4, r3, r5\n\tjump.lt\t@.BB0_36\n.BB0_37:\n\tsub!\tr3, r8, r3\n\tadd\tstack-[3], r0, r7\n\tjump.ge\t@.BB0_39\n\tshl.s\t3, r8, r3\n\tand\t248, r3, r3\n\tsub.s\t1, r0, r4\n\tshr\tr4, r3, r3\n\txor\tr3, r4, r3\n\tadd\tr2, r6, r2\n\tld.1\tr2, r2\n\tand\tr2, r3, r2\n\tsstore\tr1, r2\n.BB0_39:\n\tadd\t1, r0, r1\n\tshl.s\t1, r8, r2\n\tadd\tstack-[6], r0, r4\n\tjump\t@.BB0_32\n.BB0_40:\n\tsub.s!\t0, r8, r1\n\tadd\tr0, r0, r1\n\tjump.eq\t@.BB0_42\n\tld.1\tr6, r1\n.BB0_42:\n\tshl.s\t3, r8, r2\n\tsub.s\t1, r0, r3\n\tshr\tr3, r2, r2\n\txor\tr2, r3, r2\n\tand\tr1, r2, r2\n\tshl.s\t1, r8, r1\n.BB0_32:\n\tor\tr2, r1, r1\n\tsstore\tr7, r1\n\tcontext.caller\tr3\n\tsub.s!\t0, r3, r1\n\tjump.ne\t@.BB0_44\n\tld.1\t64, r1\n\tadd\t68, r1, r2\n\tadd\t@CPI0_12[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t31, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI0_13[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI0_0[0], r0, r2\n\tsub.s!\t@CPI0_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI0_14[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB0_71:\n\tst.1\t0, r3\n\tadd\t160, r0, r1\n\tsub.s!\t0, r6, r2\n\tjump.eq\t@.BB0_75\n\tadd\t@CPI0_44[0], r0, r2\n\tadd\tr0, r0, r4\n.BB0_73:\n\tadd\tr4, r0, r3\n\tsload\tr2, r4\n\tadd\t160, r3, r5\n\tst.1\tr5, r4\n\tadd\t1, r2, r2\n\tadd\t32, r3, r4\n\tsub!\tr4, r6, r5\n\tjump.lt\t@.BB0_73\n\tadd\t192, r3, r1\n.BB0_69:\n\tadd\t31, r1, r1\n\tsub.s\t32, r0, r2\n\tand\tr1, r2, r1\n\tadd\t@CPI0_45[0], r1, r2\n\tsub.s!\t@CPI0_46[0], r2, r2\n\tjump.lt\t@.BB0_4\n.BB0_75:\n\tadd\tr1, r0, stack-[6]\n\tst.1\t64, r1\n\tadd\t128, r0, r2\n\tnear_call\tr0, @abi_encode_string, @DEFAULT_UNWIND\n\tadd\tstack-[6], r0, r4\n\tsub\tr1, r4, r1\n\tadd\t@CPI0_0[0], r0, r2\n\tsub.s!\t@CPI0_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tsub.s!\t@CPI0_0[0], r4, r3\n\tadd.lt\tr4, r0, r2\n\tshl.s\t64, r2, r2\n\tshl.s\t96, r1, r1\n\tor\tr1, r2, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_121:\n\tst.1\t0, r5\n\tsub.s!\t0, r1, r4\n\tadd\tr0, r0, r4\n\tjump.eq\t@.BB0_118\n\tadd\t@CPI0_35[0], r0, r5\n\tadd\tr0, r0, r4\n.BB0_123:\n\tadd\tr3, r4, r6\n\tsload\tr5, r7\n\tst.1\tr6, r7\n\tadd\t1, r5, r5\n\tadd\t32, r4, r4\n\tsub!\tr4, r1, r6\n\tjump.lt\t@.BB0_123\n.BB0_118:\n\tadd\t63, r4, r1\n\tsub.s\t32, r0, r3\n\tand\tr1, r3, r3\n\tadd\tr3, r2, r1\n\tsub!\tr1, r3, r3\n\tadd\t0, r0, r4\n\tadd.lt\t1, r0, r4\n\tsub.s!\t@CPI0_4[0], r1, r3\n\tjump.gt\t@.BB0_4\n\tand!\t1, r4, r3\n\tjump.ne\t@.BB0_4\n\tst.1\t64, r1\n\tadd\tr1, r0, stack-[6]\n\tnear_call\tr0, @abi_encode_string, @DEFAULT_UNWIND\n\tadd\tstack-[6], r0, r4\n\tsub\tr1, r4, r1\n\tadd\t@CPI0_0[0], r0, r2\n\tsub.s!\t@CPI0_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tsub.s!\t@CPI0_0[0], r4, r3\n\tadd.lt\tr4, r0, r2\n\tshl.s\t64, r2, r2\n\tshl.s\t96, r1, r1\n\tor\tr1, r2, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_44:\n\tsload\tr4, r1\n\tsub.s!\t@CPI0_6[0], r1, r2\n\tjump.lt\t@.BB0_46\n.BB0_45:\n\tadd\t@CPI0_36[0], r0, r1\n\tst.1\t0, r1\n\tadd\t17, r0, r1\n\tst.1\t4, r1\n\tadd\t@CPI0_37[0], r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB0_46:\n\tadd\t@CPI0_7[0], r1, r1\n\tsstore\tr4, r1\n\tadd\tr3, r0, stack-[6]\n\tst.1\t0, r3\n\tst.1\t32, r0\n\tadd\t@CPI0_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI0_8[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_2\n\tld\tr1, r1\n\tsload\tr1, r2\n\tsub.s!\t@CPI0_9[0], r2, r3\n\tadd\tstack-[6], r0, r6\n\tjump.gt\t@.BB0_45\n\tadd\t@CPI0_7[0], r2, r2\n\tsstore\tr1, r2\n\tadd\t@CPI0_7[0], r0, r1\n\tld.1\t64, r2\n\tst.1\tr2, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tcontext.gas_left\tr3\n\tsub.s!\t@CPI0_0[0], r3, r4\n\tadd.ge\tr1, r0, r3\n\tsub.s!\t@CPI0_0[0], r2, r4\n\tadd.lt\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tshl.s\t192, r3, r2\n\tor\tr1, r2, r1\n\tor\t@CPI0_5[0], r1, r1\n\tadd\t32781, r0, r2\n\tadd\t3, r0, r3\n\tadd\t@CPI0_10[0], r0, r4\n\tadd\tr0, r0, r5\n\tnear_call\tr0, @__farcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r1\n\tjump.eq\t@.BB0_2\n\tadd\t32, r0, r1\n\tst.2\t256, r1\n\tst.2\t288, r0\n\tadd\t@CPI0_11[0], r0, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_132:\n\tsub\tr1, r3, r3\n\tadd\tstack-[3], r0, r1\n\tadd\tstack-[6], r0, r2\n\tnear_call\tr0, @fun_approve, @DEFAULT_UNWIND\n\tld.1\t64, r1\n\tadd\tstack-[4], r0, r2\n\tst.1\tr1, r2\n\tadd\t@CPI0_0[0], r0, r2\n\tsub.s!\t@CPI0_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI0_31[0], r1, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_90:\n\tadd\tstack-[4], r0, r1\n\tsub!\tr2, r1, r1\n\tjump.ge\t@.BB0_93\n\tld.1\t64, r1\n\tadd\t68, r1, r2\n\tadd\t@CPI0_43[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t29, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI0_13[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI0_0[0], r0, r2\n\tsub.s!\t@CPI0_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI0_14[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB0_93:\n\tadd\tr2, r0, stack-[1]\n\tsub.s!\t0, r3, r1\n\tjump.ne\t@.BB0_95\n\tld.1\t64, r1\n\tadd\t100, r1, r2\n\tadd\t@CPI0_41[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t68, r1, r2\n\tadd\t@CPI0_42[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t36, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI0_13[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI0_0[0], r0, r2\n\tsub.s!\t@CPI0_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI0_34[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB0_95:\n\tadd\tstack-[2], r0, r1\n\tand!\t@CPI0_30[0], r1, r1\n\tadd\tr1, r0, stack-[2]\n\tjump.ne\t@.BB0_97\n\tld.1\t64, r1\n\tadd\t100, r1, r2\n\tadd\t@CPI0_39[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t68, r1, r2\n\tadd\t@CPI0_40[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t34, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI0_13[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI0_0[0], r0, r2\n\tsub.s!\t@CPI0_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI0_34[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB0_97:\n\tadd\tstack-[5], r0, r1\n\tst.1\t0, r1\n\tadd\tstack-[3], r0, r1\n\tst.1\t32, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI0_8[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_2\n\tld\tr1, r1\n\tadd\tstack-[2], r0, r2\n\tst.1\t0, r2\n\tst.1\t32, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI0_8[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tadd\tstack-[1], r0, r3\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_2\n\tadd\tstack-[4], r0, r2\n\tsub\tr3, r2, r2\n\tld\tr1, r1\n\tsstore\tr1, r2\n\tld.1\t64, r1\n\tst.1\tr1, r2\n\tadd\t@CPI0_0[0], r0, r2\n\tcontext.gas_left\tr3\n\tsub.s!\t@CPI0_0[0], r3, r4\n\tadd.ge\tr2, r0, r3\n\tsub.s!\t@CPI0_0[0], r1, r4\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tshl.s\t192, r3, r2\n\tor\tr2, r1, r1\n\tor\t@CPI0_5[0], r1, r1\n\tadd\t32781, r0, r2\n\tadd\t3, r0, r3\n\tadd\t@CPI0_38[0], r0, r4\n\tadd\tstack-[5], r0, r5\n\tadd\tstack-[2], r0, r6\n\tnear_call\tr0, @__farcall, @DEFAULT_UNWIND\n\tadd\tstack-[5], r0, r3\n\tand!\t1, r2, r1\n\tjump.ne\t@.BB0_91\n.BB0_2:\n\tadd\tr0, r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.func_end0:\n\n__keccak256:\n.func_begin1:\n\tadd\t@CPI1_0[0], r0, r3\n\tsub.s!\t@CPI1_0[0], r1, r4\n\tadd.ge\tr3, r0, r1\n\tshl.s\t64, r1, r1\n\tsub.s!\t@CPI1_0[0], r2, r4\n\tadd.ge\tr3, r0, r2\n\tshl.s\t96, r2, r2\n\tor\tr2, r1, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI1_0[0], r2, r4\n\tadd.ge\tr3, r0, r2\n\tshl.s\t192, r2, r2\n\tor\tr2, r1, r1\n\tor\t@CPI1_1[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB1_2\n\tld\tr1, r1\n\tret\n.BB1_2:\n\tadd\tr0, r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.func_end1:\n\nabi_encode_string:\n.func_begin2:\n\tadd\t32, r0, r3\n\tst.1.inc\tr1, r3, r4\n\tld.1\tr2, r3\n\tst.1\tr4, r3\n\tadd\t64, r1, r1\n\tsub.s!\t0, r3, r4\n\tjump.eq\t@.BB2_3\n\tadd\tr0, r0, r4\n.BB2_2:\n\tadd\tr1, r4, r5\n\tadd\t32, r4, r4\n\tadd\tr4, r2, r6\n\tld.1\tr6, r6\n\tst.1\tr5, r6\n\tsub!\tr4, r3, r5\n\tjump.lt\t@.BB2_2\n.BB2_3:\n\tadd\tr1, r3, r2\n\tst.1\tr2, r0\n\tadd\t31, r3, r2\n\tsub.s\t32, r0, r3\n\tand\tr2, r3, r2\n\tadd\tr1, r2, r1\n\tret\n.func_end2:\n\nfun_transfer:\n.func_begin3:\n\tnop\tstack+=[4]\n\tand!\t@CPI3_0[0], r1, r1\n\tjump.eq\t@.BB3_1\n\tadd\tr3, r0, stack-[4]\n\tand!\t@CPI3_0[0], r2, r2\n\tadd\tr2, r0, stack-[2]\n\tjump.eq\t@.BB3_3\n\tadd\tr1, r0, stack-[3]\n\tst.1\t0, r1\n\tst.1\t32, r0\n\tadd\t@CPI3_1[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI3_1[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI3_2[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB3_5\n\tld\tr1, r1\n\tsload\tr1, r2\n\tadd\tstack-[4], r0, r1\n\tadd\tr2, r0, stack-[1]\n\tsub!\tr2, r1, r1\n\tjump.lt\t@.BB3_7\n\tadd\tstack-[3], r0, r1\n\tst.1\t0, r1\n\tst.1\t32, r0\n\tadd\t@CPI3_1[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI3_1[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI3_2[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB3_5\n\tadd\tstack-[4], r0, r2\n\tadd\tstack-[1], r0, r3\n\tsub\tr3, r2, r2\n\tld\tr1, r1\n\tsstore\tr1, r2\n\tadd\tstack-[2], r0, r1\n\tst.1\t0, r1\n\tadd\t@CPI3_1[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI3_1[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI3_2[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB3_5\n\tld\tr1, r1\n\tsload\tr1, r3\n\tadd\tstack-[4], r0, r4\n\tadd\tr3, r4, r2\n\tsub!\tr2, r3, r3\n\tadd\t0, r0, r3\n\tadd.lt\t1, r0, r3\n\tand!\t1, r3, r3\n\tjump.ne\t@.BB3_11\n\tsstore\tr1, r2\n\tld.1\t64, r1\n\tst.1\tr1, r4\n\tadd\t@CPI3_1[0], r0, r2\n\tcontext.gas_left\tr3\n\tsub.s!\t@CPI3_1[0], r3, r4\n\tadd.ge\tr2, r0, r3\n\tsub.s!\t@CPI3_1[0], r1, r4\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tshl.s\t192, r3, r2\n\tor\tr2, r1, r1\n\tor\t@CPI3_3[0], r1, r1\n\tadd\t32781, r0, r2\n\tadd\t3, r0, r3\n\tadd\t@CPI3_4[0], r0, r4\n\tadd\tstack-[3], r0, r5\n\tadd\tstack-[2], r0, r6\n\tnear_call\tr0, @__farcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r1\n\tjump.eq\t@.BB3_5\n\tret\n.BB3_5:\n\tadd\tr0, r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB3_1:\n\tld.1\t64, r1\n\tadd\t100, r1, r2\n\tadd\t@CPI3_13[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t68, r1, r2\n\tadd\t@CPI3_14[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t37, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI3_9[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI3_1[0], r0, r2\n\tsub.s!\t@CPI3_1[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI3_10[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB3_3:\n\tld.1\t64, r1\n\tadd\t100, r1, r2\n\tadd\t@CPI3_11[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t68, r1, r2\n\tadd\t@CPI3_12[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t35, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI3_9[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI3_1[0], r0, r2\n\tsub.s!\t@CPI3_1[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI3_10[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB3_7:\n\tld.1\t64, r1\n\tadd\t100, r1, r2\n\tadd\t@CPI3_7[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t68, r1, r2\n\tadd\t@CPI3_8[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t38, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI3_9[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI3_1[0], r0, r2\n\tsub.s!\t@CPI3_1[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI3_10[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB3_11:\n\tadd\t@CPI3_5[0], r0, r1\n\tst.1\t0, r1\n\tadd\t17, r0, r1\n\tst.1\t4, r1\n\tadd\t@CPI3_6[0], r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.func_end3:\n\nfun_approve:\n.func_begin4:\n\tnop\tstack+=[3]\n\tand!\t@CPI4_0[0], r1, r1\n\tjump.eq\t@.BB4_1\n\tadd\tr3, r0, stack-[2]\n\tand!\t@CPI4_0[0], r2, r2\n\tadd\tr2, r0, stack-[3]\n\tjump.eq\t@.BB4_3\n\tadd\tr1, r0, stack-[1]\n\tst.1\t0, r1\n\tadd\t1, r0, r1\n\tst.1\t32, r1\n\tadd\t@CPI4_1[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI4_1[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI4_2[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tadd\tstack-[3], r0, r4\n\tjump.eq\t@.BB4_5\n\tld\tr1, r1\n\tst.1\t0, r4\n\tst.1\t32, r1\n\tadd\t@CPI4_1[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI4_1[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI4_2[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tadd\tstack-[3], r0, r6\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB4_5\n\tld\tr1, r1\n\tadd\tstack-[2], r0, r2\n\tsstore\tr1, r2\n\tld.1\t64, r1\n\tst.1\tr1, r2\n\tadd\t@CPI4_1[0], r0, r2\n\tcontext.gas_left\tr3\n\tsub.s!\t@CPI4_1[0], r3, r4\n\tadd.ge\tr2, r0, r3\n\tsub.s!\t@CPI4_1[0], r1, r4\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tshl.s\t192, r3, r2\n\tor\tr2, r1, r1\n\tor\t@CPI4_3[0], r1, r1\n\tadd\t32781, r0, r2\n\tadd\t3, r0, r3\n\tadd\t@CPI4_4[0], r0, r4\n\tadd\tstack-[1], r0, r5\n\tnear_call\tr0, @__farcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r1\n\tjump.eq\t@.BB4_5\n\tret\n.BB4_5:\n\tadd\tr0, r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB4_1:\n\tld.1\t64, r1\n\tadd\t100, r1, r2\n\tadd\t@CPI4_9[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t68, r1, r2\n\tadd\t@CPI4_10[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t36, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI4_7[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI4_1[0], r0, r2\n\tsub.s!\t@CPI4_1[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI4_8[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB4_3:\n\tld.1\t64, r1\n\tadd\t100, r1, r2\n\tadd\t@CPI4_5[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t68, r1, r2\n\tadd\t@CPI4_6[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t34, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI4_7[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI4_1[0], r0, r2\n\tsub.s!\t@CPI4_1[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI4_8[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.func_end4:\n\n__farcall:\n.func_begin5:\n.tmp0:\n\tfar_call\tr1, r2, @.BB5_2\n.tmp1:\n\tadd\t1, r0, r2\n\tret\n.BB5_2:\n.tmp2:\n\tadd\tr0, r0, r2\n\tret\n.func_end5:\n\n__staticcall:\n.func_begin6:\n.tmp3:\n\tfar_call.static\tr1, r2, @.BB6_2\n.tmp4:\n\tadd\t1, r0, r2\n\tret\n.BB6_2:\n.tmp5:\n\tadd\tr0, r0, r2\n\tret\n.func_end6:\n\n\t.data\n\t.p2align\t5\ncalldatasize:\n\t.cell 0\n\n\t.p2align\t5\nptr_calldata:\n.cell\t0\n\n\t.note.GNU-stack\n\t.rodata\nCPI0_0:\nCPI1_0:\nCPI3_1:\nCPI4_1:\n\t.cell 4294967295\nCPI0_1:\n\t.cell 34464341570349832831442850548797705733862770030155268807248644309040167387136\nCPI0_2:\n\t.cell 18446744073709551552\nCPI0_3:\n\t.cell 34464118845567164732851801049491368569730900892455823397120050562413841350656\nCPI0_4:\n\t.cell 18446744073709551615\nCPI0_5:\nCPI3_3:\nCPI4_3:\n\t.cell 904625697166532776746648320380374280103671757735618107014721178055227736064\nCPI0_6:\n\t.cell -1000000000000000000000\nCPI0_7:\n\t.cell 1000000000000000000000\nCPI0_8:\nCPI3_2:\nCPI4_2:\n\t.cell 904625697166532776746648320380374280103671760270919307471179981048634146816\nCPI0_9:\n\t.cell -1000000000000000000001\nCPI0_10:\nCPI3_4:\n\t.cell -15402802100530019096323380498944738953123845089667699673314898783681816316945\nCPI0_11:\n\t.cell 53919893334301279589334030174039261352344891250716429051063678533632\nCPI0_12:\n\t.cell 31354931781638678563069525067809233856775101976563302031013534919694566519552\nCPI0_13:\nCPI3_9:\nCPI4_7:\n\t.cell 3963877391197344453575983046348115674221700746820753546331534351508065746944\nCPI0_14:\n\t.cell 7922816251426433759354395033600\nCPI0_15:\n\t.cell 961581904\nCPI0_16:\n\t.cell 2757214934\nCPI0_17:\n\t.cell 2757214935\nCPI0_18:\n\t.cell 2835717307\nCPI0_19:\n\t.cell 3714247998\nCPI0_20:\n\t.cell 961581905\nCPI0_21:\n\t.cell 1889567281\nCPI0_22:\n\t.cell 2514000705\nCPI0_23:\n\t.cell 404098524\nCPI0_24:\n\t.cell 404098525\nCPI0_25:\n\t.cell 599290589\nCPI0_26:\n\t.cell 826074471\nCPI0_27:\n\t.cell 117300739\nCPI0_28:\n\t.cell 157198259\nCPI0_29:\n\t.cell -57896044618658097711785492504343953926634992332820282019728792003956564819968\nCPI0_30:\nCPI3_0:\nCPI4_0:\n\t.cell 1461501637330902918203684832716283019655932542975\nCPI0_31:\n\t.cell 2535301200456458802993406410752\nCPI0_32:\n\t.cell 14690266658072097593480850647027335513285713462661904985951319567533531463680\nCPI0_33:\n\t.cell 31354931781638678506476475496475743842680577777870365728514456330491174612855\nCPI0_34:\nCPI3_10:\nCPI4_8:\n\t.cell 10458117451882892562347801444352\nCPI0_35:\n\t.cell -53278079350709166316280423202849322519190186591071851114874353210178472783461\nCPI0_36:\nCPI3_5:\n\t.cell 35408467139433450592217433187231851964531694900788300625387963629091585785856\nCPI0_37:\nCPI3_6:\n\t.cell 2852213850513516153367582212096\nCPI0_38:\nCPI4_4:\n\t.cell -52305948261162578668367882225327028569797882979485679342215860919519743330011\nCPI0_39:\nCPI4_5:\n\t.cell 52219164999525148860834357634456956735281286572158918307284071279203377479680\nCPI0_40:\nCPI4_6:\n\t.cell 31354931781638678487916134672869638488806705378895508030211234510262059168357\nCPI0_41:\nCPI4_9:\n\t.cell 51742913093258732729005998692887265601192425265805909375210916622055285719040\nCPI0_42:\nCPI4_10:\n\t.cell 31354931781638678487916134672869638484047149969764982831501014746446650500196\nCPI0_43:\n\t.cell 31354931781638678538084197150757782427756587561754988975511141185730285404160\nCPI0_44:\n\t.cell -27889059366240281169193357100633332908378892778709981755071813198463099602853\nCPI0_45:\n\t.cell -18446744073709551616\nCPI0_46:\n\t.cell -18446744073709551488\nCPI1_1:\n\t.cell 904625697166532776746648320380374280103671755200316906558262375061821325312\nCPI3_7:\n\t.cell 44065838241030143116324720188876985940908656145555552347773292252211112312832\nCPI3_8:\n\t.cell 31354931781638678607228669297131712859100820671745083778533502622993977909346\nCPI3_11:\n\t.cell 45887578820189300338443374388718498632482616163288499555830078344056365121536\nCPI3_12:\n\t.cell 31354931781638678607228669297131712859126084785867252355217498662940140921970\nCPI3_13:\n\t.cell 45433405612597180762055095701412804886438245671210399661410036396145969725440\nCPI3_14:\n\t.cell 31354931781638678607228669297131712859107492772550336241160036866987736981860\n","bytecode":{"object":"0002000000000002000600000000000200010000000103550000006001100270000001670010019d0000000101200190000000410000c13d0000008001000039000000400010043f0000000001000031000000040110008c0000045a0000413d0000000101000367000000000101043b000000e001100270000001760210009c0000005c0000a13d000001770210009c0000007e0000213d0000017b0210009c0000016f0000613d0000017c0210009c000001bb0000613d0000017d0110009c0000045a0000c13d0000000001000416000000000110004c0000045a0000c13d000000040100008a00000000011000310000018402000041000000000310004c000000000300001900000000030240190000018401100197000000000410004c000000000200a019000001840110009c00000000010300190000000001026019000000000110004c0000045a0000c13d0000000405000039000000000405041a000000010640019000000001014002700000007f0210018f00000000010260190000001f0210008c00000000020000190000000102002039000000000224013f0000000102200190000000c10000c13d000000400200043d0000000003120436000000000660004c000003730000c13d000001000500008a000000000454016f0000000000430435000000000110004c00000020040000390000000004006019000003800000013d0000000001000416000000000110004c0000045a0000c13d000000c001000039000000400010043f0000000e01000039000000800010043f0000016801000041000000a00010043f000000400500043d000001690150009c000000560000813d0000004001500039000000400010043f000000020400003900000000064504360000016a010000410000000000160435000000800800043d0000016b0180009c000000b50000a13d0000018b0100004100000000001004350000004101000039000000040010043f0000018c0100004100000599000104300000017e0210009c000000c70000a13d0000017f0210009c000001df0000613d000001800210009c000001fa0000613d000001810110009c0000045a0000c13d0000000001000416000000000110004c0000045a0000c13d000000040100008a00000000011000310000018402000041000000000310004c000000000300001900000000030240190000018401100197000000000410004c000000000200a019000001840110009c00000000010300190000000001026019000000000110004c0000045a0000c13d000000400100043d000000120200003900000000002104350000016702000041000001670310009c0000000001028019000000400110021000000186011001c7000005980001042e000001780210009c000002490000613d000001790210009c0000029b0000613d0000017a0110009c0000045a0000c13d0000000001000416000000000110004c0000045a0000c13d000000040100008a00000000011000310000018402000041000000400310008c000000000300001900000000030240190000018401100197000000000410004c000000000200a019000001840110009c00000000010300190000000001026019000000000110004c0000045a0000c13d00000001020003670000000401200370000000000101043b000001850310009c0000045a0000213d0000002402200370000000000302043b000001850230009c0000045a0000213d00000000001004350000000101000039000000200010043f0000004002000039000600000002001d0000000001000019000500000003001d0597045c0000040f00000005020000290000000000200435000000200010043f000000000100001900000006020000290597045c0000040f000000000101041a000000400200043d00000000001204350000016701000041000001670320009c0000000001024019000000400110021000000186011001c7000005980001042e0000000307000039000000000107041a000000010210019000000001011002700000007f0310018f000000000301c0190000001f0130008c00000000010000190000000101002039000000010110018f000000000112004b000000ee0000613d0000018b0100004100000000001004350000002201000039000000040010043f0000018c010000410000059900010430000001820210009c000001470000613d000001830110009c0000045a0000c13d0000000001000416000000000110004c0000045a0000c13d000000040100008a00000000011000310000018402000041000000400310008c000000000300001900000000030240190000018401100197000000000410004c000000000200a019000001840110009c00000000010300190000000001026019000000000110004c0000045a0000c13d00000001010003670000000402100370000000000202043b000001850320009c0000045a0000213d0000002401100370000000000301043b0000000001000411059705260000040f0000000101000039000000400200043d00000000001204350000016701000041000001670320009c0000000001024019000000400110021000000186011001c7000005980001042e000000200130008c000600000004001d000500000005001d000400000006001d000001160000413d000100000003001d000200000008001d000300000007001d000000000070043500000167010000410000000002000414000001670320009c0000000001024019000000c0011002100000016c011001c70000801002000039059705920000040f00000001022001900000045a0000613d00000002080000290000001f028000390000000502200270000000200380008c0000000002004019000000000301043b00000001010000290000001f01100039000000050110027000000000011300190000000002230019000000000312004b0000000604000029000000050500002900000004060000290000000307000029000001160000813d000000000002041b0000000102200039000000000312004b000001120000413d0000001f0180008c000002be0000a13d000200000008001d000300000007001d000000000070043500000167010000410000000002000414000001670320009c0000000001024019000000c0011002100000016c011001c70000801002000039059705920000040f00000001022001900000045a0000613d000000200200008a000000020800002900000000032801700000002002000039000000000101043b000001350000613d0000002002000039000000000400001900000080052000390000000005050433000000000051041b000000200220003900000001011000390000002004400039000000000534004b0000012d0000413d000000000383004b000000050500002900000004060000290000000307000029000001430000813d0000000303800210000000f80330018f000000010400008a000000000334022f000000000343013f00000080022000390000000002020433000000000232016f000000000021041b000000010100003900000001028002100000000604000029000002c80000013d0000000001000416000000000110004c0000045a0000c13d000000040100008a00000000011000310000018402000041000000000310004c000000000300001900000000030240190000018401100197000000000410004c000000000200a019000001840110009c00000000010300190000000001026019000000000110004c0000045a0000c13d0000000303000039000000000203041a000000010420019000000001012002700000007f0510018f000000000601001900000000060560190000001f0560008c00000000050000190000000105002039000000000552013f0000000105500190000000c10000c13d000000800060043f000000000440004c0000034f0000c13d000001000300008a000000000232016f000000a00020043f000000000160004c000000c001000039000000a0010060390000035e0000013d0000000001000416000000000110004c0000045a0000c13d000000040100008a00000000011000310000018402000041000000400310008c000000000300001900000000030240190000018401100197000000000410004c000000000200a019000001840110009c00000000010300190000000001026019000000000110004c0000045a0000c13d00000004010000390000000101100367000000000101043b000600000001001d000001850110009c0000045a0000213d0000000001000411000400000001001d00000000001004350000000101000039000500000001001d000000200010043f00000167010000410000000002000414000001670320009c0000000001024019000000c0011002100000016f011001c70000801002000039059705920000040f00000001022001900000045a0000613d000000000101043b00000006020000290000000000200435000000200010043f00000167010000410000000002000414000001670320009c0000000001024019000000c0011002100000016f011001c70000801002000039059705920000040f00000001022001900000045a0000613d000000000101043b000000000101041a00000024020000390000000102200367000000000202043b0000000003120019000000000123004b0000000001000019000000010100403900000001011001900000039c0000c13d00000004010000290000000602000029059705260000040f000000400100043d000000050200002900000000002104350000016702000041000001670310009c0000000001028019000000400110021000000186011001c7000005980001042e0000000001000416000000000110004c0000045a0000c13d000000040100008a00000000011000310000018402000041000000200310008c000000000300001900000000030240190000018401100197000000000410004c000000000200a019000001840110009c00000000010300190000000001026019000000000110004c0000045a0000c13d00000004010000390000000101100367000000000101043b000001850210009c0000045a0000213d0000000000100435000000200000043f000000400200003900000000010000190597045c0000040f000000000101041a000000400200043d00000000001204350000016701000041000001670320009c0000000001024019000000400110021000000186011001c7000005980001042e0000000001000416000000000110004c0000045a0000c13d000000040100008a00000000011000310000018402000041000000000310004c000000000300001900000000030240190000018401100197000000000410004c000000000200a019000001840110009c00000000010300190000000001026019000000000110004c0000045a0000c13d0000000201000039000000000101041a000000400200043d00000000001204350000016701000041000001670320009c0000000001024019000000400110021000000186011001c7000005980001042e0000000001000416000000000110004c0000045a0000c13d000000040100008a00000000011000310000018402000041000000600310008c000000000300001900000000030240190000018401100197000000000410004c000000000200a019000001840110009c00000000010300190000000001026019000000000110004c0000045a0000c13d00000001010003670000000402100370000000000402043b000001850240009c0000045a0000213d0000002402100370000000000202043b000600000002001d000001850220009c0000045a0000213d0000004401100370000000000101043b000400000001001d00000000004004350000000101000039000300000001001d000000200010043f00000167010000410000000002000414000001670320009c0000000001024019000000c0011002100000016f011001c70000801002000039000500000004001d059705920000040f00000001022001900000045a0000613d000000000101043b0000000002000411000200000002001d0000000000200435000000200010043f00000167010000410000000002000414000001670320009c0000000001024019000000c0011002100000016f011001c70000801002000039059705920000040f000000050300002900000001022001900000045a0000613d000000000101043b000000000201041a000000010100008a000000000112004b000003de0000c13d000000000103001900000006020000290000000403000029059704880000040f000000400100043d000000030200002900000000002104350000016702000041000001670310009c0000000001028019000000400110021000000186011001c7000005980001042e0000000001000416000000000110004c0000045a0000c13d000000040100008a00000000011000310000018402000041000000400310008c000000000300001900000000030240190000018401100197000000000410004c000000000200a019000001840110009c00000000010300190000000001026019000000000110004c0000045a0000c13d00000001010003670000000402100370000000000202043b000600000002001d000001850220009c0000045a0000213d0000002401100370000000000101043b000500000001001d0000000001000411000300000001001d00000000001004350000000101000039000400000001001d000000200010043f00000167010000410000000002000414000001670320009c0000000001024019000000c0011002100000016f011001c70000801002000039059705920000040f00000001022001900000045a0000613d000000000101043b00000006020000290000000000200435000000200010043f00000167010000410000000002000414000001670320009c0000000001024019000000c0011002100000016f011001c70000801002000039059705920000040f00000001022001900000045a0000613d000000000101043b000000000101041a0000000503000029000000000231004b000003d10000813d000000400100043d000000640210003900000187030000410000000000320435000000440210003900000188030000410000000000320435000000240210003900000025030000390000000000320435000001740200004100000000002104350000000402100039000000200300003900000000003204350000016702000041000001670310009c0000000001028019000000400110021000000189011001c700000599000104300000000001000416000000000110004c0000045a0000c13d000000040100008a00000000011000310000018402000041000000400310008c000000000300001900000000030240190000018401100197000000000410004c000000000200a019000001840110009c00000000010300190000000001026019000000000110004c0000045a0000c13d00000001010003670000000402100370000000000202043b000001850320009c0000045a0000213d0000002401100370000000000301043b0000000001000411059704880000040f0000000101000039000000400200043d00000000001204350000016701000041000001670320009c0000000001024019000000400110021000000186011001c7000005980001042e000000000180004c0000000001000019000002c20000613d000000a00100043d0000000302800210000000010300008a000000000223022f000000000232013f000000000221016f0000000101800210000000000112019f000000000017041b00000000080504330000016b0180009c000000560000213d0000000407000039000000000107041a000000010210019000000001021002700000007f0320018f000000000302c0190000001f0230008c00000000020000190000000102002039000000000121013f0000000101100190000000c10000c13d000000200130008c000002fe0000413d000100000003001d000200000008001d000300000007001d000000000070043500000167010000410000000002000414000001670320009c0000000001024019000000c0011002100000016c011001c70000801002000039059705920000040f00000001022001900000045a0000613d00000002080000290000001f028000390000000502200270000000200380008c0000000002004019000000000301043b00000001010000290000001f01100039000000050110027000000000011300190000000002230019000000000312004b0000000604000029000000050500002900000004060000290000000307000029000002fe0000813d000000000002041b0000000102200039000000000312004b000002fa0000413d0000001f0180008c0000032e0000a13d000200000008001d000300000007001d000000000070043500000167010000410000000002000414000001670320009c0000000001024019000000c0011002100000016c011001c70000801002000039059705920000040f00000001022001900000045a0000613d000000200200008a000000020800002900000000032801700000002002000039000000000101043b00000005060000290000031e0000613d0000002002000039000000000400001900000000056200190000000005050433000000000051041b000000200220003900000001011000390000002004400039000000000534004b000003160000413d000000000383004b00000003070000290000032a0000813d0000000303800210000000f80330018f000000010400008a000000000334022f000000000343013f00000000026200190000000002020433000000000232016f000000000021041b000000010100003900000001028002100000000604000029000003380000013d000000000180004c0000000001000019000003320000613d00000000010604330000000302800210000000010300008a000000000223022f000000000232013f000000000221016f0000000101800210000000000112019f000000000017041b0000000003000411000000000130004c000003990000c13d000000400100043d00000044021000390000017303000041000000000032043500000024021000390000001f030000390000000000320435000001740200004100000000002104350000000402100039000000200300003900000000003204350000016702000041000001670310009c0000000001028019000000400110021000000175011001c700000599000104300000000000300435000000a001000039000000000260004c000003640000613d000001930200004100000000040000190000000003040019000000000402041a000000a005300039000000000045043500000001022000390000002004300039000000000564004b000003550000413d000000c0013000390000001f01100039000000200200008a000000000121016f0000019402100041000001950220009c000000560000413d000600000001001d000000400010043f0000008002000039059704720000040f000000060400002900000000014100490000016702000041000001670310009c0000000001028019000001670340009c000000000204401900000040022002100000006001100210000000000121019f000005980001042e0000000000500435000000000410004c0000000004000019000003800000613d0000018a0500004100000000040000190000000006430019000000000705041a000000000076043500000001055000390000002004400039000000000614004b000003790000413d0000003f01400039000000200300008a000000000331016f0000000001230019000000000331004b000000000400001900000001040040390000016b0310009c000000560000213d0000000103400190000000560000c13d000000400010043f000600000001001d059704720000040f000000060400002900000000014100490000016702000041000001670310009c0000000001028019000001670340009c000000000204401900000040022002100000006001100210000000000121019f000005980001042e000000000104041a0000016d0210009c000003a20000413d0000018b0100004100000000001004350000001101000039000000040010043f0000018c0100004100000599000104300000016e01100041000000000014041b000600000003001d0000000000300435000000200000043f00000167010000410000000002000414000001670320009c0000000001024019000000c0011002100000016f011001c70000801002000039059705920000040f00000001022001900000045a0000613d000000000101043b000000000201041a000001700320009c00000006060000290000039c0000213d0000016e02200041000000000021041b0000016e01000041000000400200043d000000000012043500000167010000410000000003000414000001670430009c0000000003018019000001670420009c00000000010240190000004001100210000000c002300210000000000121019f0000016c011001c70000800d020000390000000303000039000001710400004100000000050000190597058d0000040f00000001012001900000045a0000613d0000002001000039000001000010044300000120000004430000017201000041000005980001042e000000000331004900000003010000290000000602000029059705260000040f000000400100043d000000040200002900000000002104350000016702000041000001670310009c0000000001028019000000400110021000000186011001c7000005980001042e0000000401000029000000000112004b000003f30000813d000000400100043d00000044021000390000019203000041000000000032043500000024021000390000001d030000390000000000320435000001740200004100000000002104350000000402100039000000200300003900000000003204350000016702000041000001670310009c0000000001028019000000400110021000000175011001c70000059900010430000100000002001d000000000130004c0000040b0000c13d000000400100043d000000640210003900000190030000410000000000320435000000440210003900000191030000410000000000320435000000240210003900000024030000390000000000320435000001740200004100000000002104350000000402100039000000200300003900000000003204350000016702000041000001670310009c0000000001028019000000400110021000000189011001c7000005990001043000000002010000290000018501100198000200000001001d000004240000c13d000000400100043d00000064021000390000018e03000041000000000032043500000044021000390000018f030000410000000000320435000000240210003900000022030000390000000000320435000001740200004100000000002104350000000402100039000000200300003900000000003204350000016702000041000001670310009c0000000001028019000000400110021000000189011001c70000059900010430000000050100002900000000001004350000000301000029000000200010043f00000167010000410000000002000414000001670320009c0000000001024019000000c0011002100000016f011001c70000801002000039059705920000040f00000001022001900000045a0000613d000000000101043b00000002020000290000000000200435000000200010043f00000167010000410000000002000414000001670320009c0000000001024019000000c0011002100000016f011001c70000801002000039059705920000040f000000010300002900000001022001900000045a0000613d00000004020000290000000002230049000000000101043b000000000021041b000000400100043d000000000021043500000167020000410000000003000414000001670430009c0000000003028019000001670410009c00000000010280190000004001100210000000c002300210000000000112019f0000016c011001c70000800d0200003900000003030000390000018d04000041000000050500002900000002060000290597058d0000040f000000050300002900000001012001900000023c0000c13d000000000100001900000599000104300000016703000041000001670410009c00000000010380190000004001100210000001670420009c00000000020380190000006002200210000000000112019f0000000002000414000001670420009c0000000002038019000000c002200210000000000112019f00000196011001c70000801002000039059705920000040f0000000102200190000004700000613d000000000101043b000000000001042d0000000001000019000005990001043000000020030000390000000004310436000000000302043300000000003404350000004001100039000000000430004c000004810000613d000000000400001900000000054100190000002004400039000000000624001900000000060604330000000000650435000000000534004b0000047a0000413d000000000231001900000000000204350000001f02300039000000200300008a000000000232016f0000000001210019000000000001042d00040000000000020000018501100198000004e10000613d000400000003001d0000018502200198000200000002001d000004f60000613d000300000001001d0000000000100435000000200000043f00000167010000410000000002000414000001670320009c0000000001024019000000c0011002100000016f011001c70000801002000039059705920000040f0000000102200190000004df0000613d000000000101043b000000000201041a0000000401000029000100000002001d000000000112004b0000050b0000413d00000003010000290000000000100435000000200000043f00000167010000410000000002000414000001670320009c0000000001024019000000c0011002100000016f011001c70000801002000039059705920000040f0000000102200190000004df0000613d000000040200002900000001030000290000000002230049000000000101043b000000000021041b0000000201000029000000000010043500000167010000410000000002000414000001670320009c0000000001024019000000c0011002100000016f011001c70000801002000039059705920000040f0000000102200190000004df0000613d000000000101043b000000000301041a00000004040000290000000002430019000000000332004b000000000300001900000001030040390000000103300190000005200000c13d000000000021041b000000400100043d000000000041043500000167020000410000000003000414000001670430009c0000000003028019000001670410009c00000000010280190000004001100210000000c002300210000000000112019f0000016c011001c70000800d0200003900000003030000390000017104000041000000030500002900000002060000290597058d0000040f0000000101200190000004df0000613d000000000001042d00000000010000190000059900010430000000400100043d00000064021000390000019b03000041000000000032043500000044021000390000019c030000410000000000320435000000240210003900000025030000390000000000320435000001740200004100000000002104350000000402100039000000200300003900000000003204350000016702000041000001670310009c0000000001028019000000400110021000000189011001c70000059900010430000000400100043d00000064021000390000019903000041000000000032043500000044021000390000019a030000410000000000320435000000240210003900000023030000390000000000320435000001740200004100000000002104350000000402100039000000200300003900000000003204350000016702000041000001670310009c0000000001028019000000400110021000000189011001c70000059900010430000000400100043d000000640210003900000197030000410000000000320435000000440210003900000198030000410000000000320435000000240210003900000026030000390000000000320435000001740200004100000000002104350000000402100039000000200300003900000000003204350000016702000041000001670310009c0000000001028019000000400110021000000189011001c700000599000104300000018b0100004100000000001004350000001101000039000000040010043f0000018c01000041000005990001043000030000000000020000018501100198000005630000613d000200000003001d0000018502200198000300000002001d000005780000613d000100000001001d00000000001004350000000101000039000000200010043f00000167010000410000000002000414000001670320009c0000000001024019000000c0011002100000016f011001c70000801002000039059705920000040f00000001022001900000000304000029000005610000613d000000000101043b0000000000400435000000200010043f00000167010000410000000002000414000001670320009c0000000001024019000000c0011002100000016f011001c70000801002000039059705920000040f00000003060000290000000102200190000005610000613d000000000101043b0000000202000029000000000021041b000000400100043d000000000021043500000167020000410000000003000414000001670430009c0000000003028019000001670410009c00000000010280190000004001100210000000c002300210000000000112019f0000016c011001c70000800d0200003900000003030000390000018d0400004100000001050000290597058d0000040f0000000101200190000005610000613d000000000001042d00000000010000190000059900010430000000400100043d000000640210003900000190030000410000000000320435000000440210003900000191030000410000000000320435000000240210003900000024030000390000000000320435000001740200004100000000002104350000000402100039000000200300003900000000003204350000016702000041000001670310009c0000000001028019000000400110021000000189011001c70000059900010430000000400100043d00000064021000390000018e03000041000000000032043500000044021000390000018f030000410000000000320435000000240210003900000022030000390000000000320435000001740200004100000000002104350000000402100039000000200300003900000000003204350000016702000041000001670310009c0000000001028019000000400110021000000189011001c7000005990001043000000590002104210000000102000039000000000001042d0000000002000019000000000001042d00000595002104230000000102000039000000000001042d0000000002000019000000000001042d0000059700000432000005980001042e00000599000104300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff4c3220455243323020746f6b656e000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffc04c32000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff0200000000000000000000000000000000000020000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffc9ca36523a2160000000000000000000000000000000000000000000000000003635c9adc5dea000000200000000000000000000000000000000000040000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffc9ca36523a215fffffddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef000000020000000000000000000000000000004000000100000000000000000045524332303a206d696e7420746f20746865207a65726f20616464726573730008c379a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064000000000000000000000000000000000000000000000000000000000000000000000000000000003950935000000000000000000000000000000000000000000000000000000000a457c2d600000000000000000000000000000000000000000000000000000000a457c2d700000000000000000000000000000000000000000000000000000000a9059cbb00000000000000000000000000000000000000000000000000000000dd62ed3e00000000000000000000000000000000000000000000000000000000395093510000000000000000000000000000000000000000000000000000000070a082310000000000000000000000000000000000000000000000000000000095d89b410000000000000000000000000000000000000000000000000000000018160ddc0000000000000000000000000000000000000000000000000000000018160ddd0000000000000000000000000000000000000000000000000000000023b872dd00000000000000000000000000000000000000000000000000000000313ce5670000000000000000000000000000000000000000000000000000000006fdde0300000000000000000000000000000000000000000000000000000000095ea7b38000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000020000000000000000000000000207a65726f00000000000000000000000000000000000000000000000000000045524332303a2064656372656173656420616c6c6f77616e63652062656c6f7700000000000000000000000000000000000000840000000000000000000000008a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b4e487b710000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000000000000000000000008c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925737300000000000000000000000000000000000000000000000000000000000045524332303a20617070726f766520746f20746865207a65726f206164647265726573730000000000000000000000000000000000000000000000000000000045524332303a20617070726f76652066726f6d20746865207a65726f2061646445524332303a20696e73756666696369656e7420616c6c6f77616e6365000000c2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85bffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff00000000000000800200000000000000000000000000000000000000000000000000000000000000616c616e6365000000000000000000000000000000000000000000000000000045524332303a207472616e7366657220616d6f756e7420657863656564732062657373000000000000000000000000000000000000000000000000000000000045524332303a207472616e7366657220746f20746865207a65726f2061646472647265737300000000000000000000000000000000000000000000000000000045524332303a207472616e736665722066726f6d20746865207a65726f206164000000000000000000000000000000000000000000000000000000000000000050f3f40105524292a21c67a9252a8c9dcd15d3dc829973e79c992d321fcafb2f"},"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"}},"irOptimized":"/// @use-src 25:\"@openzeppelin/contracts/token/ERC20/ERC20.sol\", 26:\"@openzeppelin/contracts/token/ERC20/IERC20.sol\", 27:\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\", 35:\"@openzeppelin/contracts/utils/Context.sol\", 43:\"contracts/L2.sol\"\nobject \"L2_8627\" {\n code {\n {\n /// @src 43:119:302 \"contract L2 is ERC20 {...\"\n let _1 := memoryguard(0x80)\n if callvalue() { revert(0, 0) }\n let _2 := 64\n let newFreePtr := add(_1, _2)\n let _3 := sub(shl(64, 1), 1)\n if or(gt(newFreePtr, _3), lt(newFreePtr, _1))\n {\n mstore(/** @src -1:-1:-1 */ 0, /** @src 43:119:302 \"contract L2 is ERC20 {...\" */ shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(/** @src -1:-1:-1 */ 0, /** @src 43:119:302 \"contract L2 is ERC20 {...\" */ 0x24)\n }\n mstore(_2, newFreePtr)\n mstore(_1, 14)\n let _4 := 32\n mstore(add(_1, _4), \"L2 ERC20 token\")\n let memPtr := mload(_2)\n let newFreePtr_1 := add(memPtr, _2)\n if or(gt(newFreePtr_1, _3), lt(newFreePtr_1, memPtr))\n {\n mstore(/** @src -1:-1:-1 */ 0, /** @src 43:119:302 \"contract L2 is ERC20 {...\" */ shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(/** @src -1:-1:-1 */ 0, /** @src 43:119:302 \"contract L2 is ERC20 {...\" */ 0x24)\n }\n mstore(_2, newFreePtr_1)\n mstore(memPtr, 2)\n mstore(add(memPtr, _4), \"L2\")\n let newLen := mload(_1)\n if gt(newLen, _3)\n {\n mstore(/** @src -1:-1:-1 */ 0, /** @src 43:119:302 \"contract L2 is ERC20 {...\" */ shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(/** @src -1:-1:-1 */ 0, /** @src 43:119:302 \"contract L2 is ERC20 {...\" */ 0x24)\n }\n /// @src 25:2044:2057 \"_name = name_\"\n let _5 := 0x03\n /// @src 43:119:302 \"contract L2 is ERC20 {...\"\n let _6 := sload(/** @src 25:2044:2057 \"_name = name_\" */ _5)\n /// @src 43:119:302 \"contract L2 is ERC20 {...\"\n let length := /** @src -1:-1:-1 */ 0\n /// @src 43:119:302 \"contract L2 is ERC20 {...\"\n let _7 := 1\n length := shr(_7, _6)\n let outOfPlaceEncoding := and(_6, _7)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, _4))\n {\n mstore(/** @src -1:-1:-1 */ 0, /** @src 43:119:302 \"contract L2 is ERC20 {...\" */ shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(/** @src -1:-1:-1 */ 0, /** @src 43:119:302 \"contract L2 is ERC20 {...\" */ 0x24)\n }\n let _8 := 31\n if gt(length, _8)\n {\n mstore(/** @src -1:-1:-1 */ 0, /** @src 25:2044:2057 \"_name = name_\" */ _5)\n /// @src 43:119:302 \"contract L2 is ERC20 {...\"\n let data := keccak256(/** @src -1:-1:-1 */ 0, /** @src 43:119:302 \"contract L2 is ERC20 {...\" */ _4)\n let deleteStart := add(data, shr(5, add(newLen, _8)))\n if lt(newLen, _4) { deleteStart := data }\n let _9 := add(data, shr(5, add(length, _8)))\n let start := deleteStart\n for { } lt(start, _9) { start := add(start, _7) }\n {\n sstore(start, /** @src -1:-1:-1 */ 0)\n }\n }\n /// @src 43:119:302 \"contract L2 is ERC20 {...\"\n let srcOffset := /** @src -1:-1:-1 */ 0\n /// @src 43:119:302 \"contract L2 is ERC20 {...\"\n srcOffset := _4\n switch gt(newLen, _8)\n case 1 {\n let loopEnd := and(newLen, not(31))\n mstore(/** @src -1:-1:-1 */ 0, /** @src 25:2044:2057 \"_name = name_\" */ _5)\n /// @src 43:119:302 \"contract L2 is ERC20 {...\"\n let dstPtr := keccak256(/** @src -1:-1:-1 */ 0, /** @src 43:119:302 \"contract L2 is ERC20 {...\" */ _4)\n let i := /** @src -1:-1:-1 */ 0\n /// @src 43:119:302 \"contract L2 is ERC20 {...\"\n for { } lt(i, loopEnd) { i := add(i, _4) }\n {\n sstore(dstPtr, mload(add(_1, srcOffset)))\n dstPtr := add(dstPtr, _7)\n srcOffset := add(srcOffset, _4)\n }\n if lt(loopEnd, newLen)\n {\n let lastValue := mload(add(_1, srcOffset))\n sstore(dstPtr, and(lastValue, not(shr(and(shl(/** @src 25:2044:2057 \"_name = name_\" */ _5, /** @src 43:119:302 \"contract L2 is ERC20 {...\" */ newLen), 248), not(0)))))\n }\n sstore(/** @src 25:2044:2057 \"_name = name_\" */ _5, /** @src 43:119:302 \"contract L2 is ERC20 {...\" */ add(shl(_7, newLen), _7))\n }\n default {\n let value := /** @src -1:-1:-1 */ 0\n /// @src 43:119:302 \"contract L2 is ERC20 {...\"\n if newLen\n {\n value := mload(add(_1, srcOffset))\n }\n sstore(/** @src 25:2044:2057 \"_name = name_\" */ _5, /** @src 43:119:302 \"contract L2 is ERC20 {...\" */ or(and(value, not(shr(shl(/** @src 25:2044:2057 \"_name = name_\" */ _5, /** @src 43:119:302 \"contract L2 is ERC20 {...\" */ newLen), not(0)))), shl(_7, newLen)))\n }\n let newLen_1 := mload(memPtr)\n if gt(newLen_1, _3)\n {\n mstore(/** @src -1:-1:-1 */ 0, /** @src 43:119:302 \"contract L2 is ERC20 {...\" */ shl(224, 0x4e487b71))\n mstore(/** @src 25:2067:2084 \"_symbol = symbol_\" */ 0x04, /** @src 43:119:302 \"contract L2 is ERC20 {...\" */ 0x41)\n revert(/** @src -1:-1:-1 */ 0, /** @src 43:119:302 \"contract L2 is ERC20 {...\" */ 0x24)\n }\n /// @src 25:2067:2084 \"_symbol = symbol_\"\n let _10 := 0x04\n /// @src 43:119:302 \"contract L2 is ERC20 {...\"\n let _11 := sload(/** @src 25:2067:2084 \"_symbol = symbol_\" */ _10)\n /// @src 43:119:302 \"contract L2 is ERC20 {...\"\n let length_1 := /** @src -1:-1:-1 */ 0\n /// @src 43:119:302 \"contract L2 is ERC20 {...\"\n length_1 := shr(_7, _11)\n let outOfPlaceEncoding_1 := and(_11, _7)\n if iszero(outOfPlaceEncoding_1)\n {\n length_1 := and(length_1, 0x7f)\n }\n if eq(outOfPlaceEncoding_1, lt(length_1, _4))\n {\n mstore(/** @src -1:-1:-1 */ 0, /** @src 43:119:302 \"contract L2 is ERC20 {...\" */ shl(224, 0x4e487b71))\n mstore(/** @src 25:2067:2084 \"_symbol = symbol_\" */ _10, /** @src 43:119:302 \"contract L2 is ERC20 {...\" */ 0x22)\n revert(/** @src -1:-1:-1 */ 0, /** @src 43:119:302 \"contract L2 is ERC20 {...\" */ 0x24)\n }\n if gt(length_1, _8)\n {\n mstore(/** @src -1:-1:-1 */ 0, /** @src 25:2067:2084 \"_symbol = symbol_\" */ _10)\n /// @src 43:119:302 \"contract L2 is ERC20 {...\"\n let data_1 := keccak256(/** @src -1:-1:-1 */ 0, /** @src 43:119:302 \"contract L2 is ERC20 {...\" */ _4)\n let deleteStart_1 := add(data_1, shr(5, add(newLen_1, _8)))\n if lt(newLen_1, _4) { deleteStart_1 := data_1 }\n let _12 := add(data_1, shr(5, add(length_1, _8)))\n let start_1 := deleteStart_1\n for { } lt(start_1, _12) { start_1 := add(start_1, _7) }\n {\n sstore(start_1, /** @src -1:-1:-1 */ 0)\n }\n }\n /// @src 43:119:302 \"contract L2 is ERC20 {...\"\n let srcOffset_1 := /** @src -1:-1:-1 */ 0\n /// @src 43:119:302 \"contract L2 is ERC20 {...\"\n srcOffset_1 := _4\n switch gt(newLen_1, _8)\n case 1 {\n let loopEnd_1 := and(newLen_1, not(31))\n mstore(/** @src -1:-1:-1 */ 0, /** @src 25:2067:2084 \"_symbol = symbol_\" */ _10)\n /// @src 43:119:302 \"contract L2 is ERC20 {...\"\n let dstPtr_1 := keccak256(/** @src -1:-1:-1 */ 0, /** @src 43:119:302 \"contract L2 is ERC20 {...\" */ _4)\n let i_1 := /** @src -1:-1:-1 */ 0\n /// @src 43:119:302 \"contract L2 is ERC20 {...\"\n for { } lt(i_1, loopEnd_1) { i_1 := add(i_1, _4) }\n {\n sstore(dstPtr_1, mload(add(memPtr, srcOffset_1)))\n dstPtr_1 := add(dstPtr_1, _7)\n srcOffset_1 := add(srcOffset_1, _4)\n }\n if lt(loopEnd_1, newLen_1)\n {\n let lastValue_1 := mload(add(memPtr, srcOffset_1))\n sstore(dstPtr_1, and(lastValue_1, not(shr(and(shl(/** @src 25:2044:2057 \"_name = name_\" */ _5, /** @src 43:119:302 \"contract L2 is ERC20 {...\" */ newLen_1), 248), not(0)))))\n }\n sstore(/** @src 25:2067:2084 \"_symbol = symbol_\" */ _10, /** @src 43:119:302 \"contract L2 is ERC20 {...\" */ add(shl(_7, newLen_1), _7))\n }\n default {\n let value_1 := /** @src -1:-1:-1 */ 0\n /// @src 43:119:302 \"contract L2 is ERC20 {...\"\n if newLen_1\n {\n value_1 := mload(add(memPtr, srcOffset_1))\n }\n sstore(/** @src 25:2067:2084 \"_symbol = symbol_\" */ _10, /** @src 43:119:302 \"contract L2 is ERC20 {...\" */ or(and(value_1, not(shr(shl(/** @src 25:2044:2057 \"_name = name_\" */ _5, /** @src 43:119:302 \"contract L2 is ERC20 {...\" */ newLen_1), not(0)))), shl(_7, newLen_1)))\n }\n if /** @src 25:8494:8515 \"account != address(0)\" */ iszero(/** @src 43:265:275 \"msg.sender\" */ caller())\n /// @src 43:119:302 \"contract L2 is ERC20 {...\"\n {\n let memPtr_1 := mload(_2)\n mstore(memPtr_1, shl(229, 4594637))\n mstore(add(memPtr_1, /** @src 25:2067:2084 \"_symbol = symbol_\" */ _10), /** @src 43:119:302 \"contract L2 is ERC20 {...\" */ _4)\n mstore(add(memPtr_1, 36), _8)\n mstore(add(memPtr_1, 68), \"ERC20: mint to the zero address\")\n revert(memPtr_1, 100)\n }\n sstore(2, /** @src 25:8622:8644 \"_totalSupply += amount\" */ checked_add_uint256(/** @src 43:119:302 \"contract L2 is ERC20 {...\" */ sload(2)))\n mstore(/** @src -1:-1:-1 */ 0, /** @src 43:265:275 \"msg.sender\" */ caller())\n /// @src 43:119:302 \"contract L2 is ERC20 {...\"\n mstore(_4, /** @src -1:-1:-1 */ 0)\n /// @src 43:119:302 \"contract L2 is ERC20 {...\"\n let dataSlot := keccak256(/** @src -1:-1:-1 */ 0, /** @src 43:119:302 \"contract L2 is ERC20 {...\" */ _2)\n sstore(dataSlot, /** @src 25:8654:8682 \"_balances[account] += amount\" */ checked_add_uint256(/** @src 43:119:302 \"contract L2 is ERC20 {...\" */ sload(/** @src 25:8654:8682 \"_balances[account] += amount\" */ dataSlot)))\n /// @src 25:8697:8734 \"Transfer(address(0), account, amount)\"\n let _13 := /** @src 43:119:302 \"contract L2 is ERC20 {...\" */ mload(_2)\n mstore(_13, /** @src 43:181:198 \"1000 * (10 ** 18)\" */ 0x3635c9adc5dea00000)\n /// @src 25:8697:8734 \"Transfer(address(0), account, amount)\"\n log3(_13, /** @src 43:119:302 \"contract L2 is ERC20 {...\" */ _4, /** @src 25:8697:8734 \"Transfer(address(0), account, amount)\" */ 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef, /** @src -1:-1:-1 */ 0, /** @src 43:265:275 \"msg.sender\" */ caller())\n /// @src 43:119:302 \"contract L2 is ERC20 {...\"\n let _14 := mload(_2)\n let _15 := datasize(\"L2_8627_deployed\")\n codecopy(_14, dataoffset(\"L2_8627_deployed\"), _15)\n return(_14, _15)\n }\n function checked_add_uint256(x) -> sum\n {\n sum := add(x, /** @src 43:181:198 \"1000 * (10 ** 18)\" */ 0x3635c9adc5dea00000)\n /// @src 43:119:302 \"contract L2 is ERC20 {...\"\n if gt(x, sum)\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n }\n }\n /// @use-src 25:\"@openzeppelin/contracts/token/ERC20/ERC20.sol\", 35:\"@openzeppelin/contracts/utils/Context.sol\", 43:\"contracts/L2.sol\"\n object \"L2_8627_deployed\" {\n code {\n {\n /// @src 43:119:302 \"contract L2 is ERC20 {...\"\n let _1 := memoryguard(0x80)\n let _2 := 64\n mstore(_2, _1)\n let _3 := 4\n if iszero(lt(calldatasize(), _3))\n {\n let _4 := 0\n switch shr(224, calldataload(_4))\n case 0x06fdde03 {\n if callvalue() { revert(_4, _4) }\n if slt(add(calldatasize(), not(3)), _4) { revert(_4, _4) }\n let ret := _4\n let slotValue := sload(/** @src 25:2242:2247 \"_name\" */ 0x03)\n /// @src 43:119:302 \"contract L2 is ERC20 {...\"\n let length := _4\n let _5 := 1\n length := shr(_5, slotValue)\n let outOfPlaceEncoding := and(slotValue, _5)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n let _6 := 32\n if eq(outOfPlaceEncoding, lt(length, _6))\n {\n mstore(_4, shl(224, 0x4e487b71))\n mstore(_3, 0x22)\n revert(_4, 0x24)\n }\n mstore(_1, length)\n switch outOfPlaceEncoding\n case 0 {\n mstore(add(_1, _6), and(slotValue, not(255)))\n ret := add(add(_1, shl(5, iszero(iszero(length)))), _6)\n }\n case 1 {\n mstore(_4, /** @src 25:2242:2247 \"_name\" */ 0x03)\n /// @src 43:119:302 \"contract L2 is ERC20 {...\"\n let dataPos := 87903029871075914254377627908054574944891091886930582284385770809450030037083\n let i := _4\n for { } lt(i, length) { i := add(i, _6) }\n {\n mstore(add(add(_1, i), _6), sload(dataPos))\n dataPos := add(dataPos, _5)\n }\n ret := add(add(_1, i), _6)\n }\n let newFreePtr := add(_1, and(add(sub(ret, _1), 31), not(31)))\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, _1))\n {\n mstore(_4, shl(224, 0x4e487b71))\n mstore(_3, 0x41)\n revert(_4, 0x24)\n }\n mstore(_2, newFreePtr)\n return(newFreePtr, sub(abi_encode_string(newFreePtr, _1), newFreePtr))\n }\n case 0x095ea7b3 {\n if callvalue() { revert(_4, _4) }\n if slt(add(calldatasize(), not(3)), _2) { revert(_4, _4) }\n let value0 := abi_decode_address_4723()\n /// @src 25:4595:4601 \"amount\"\n fun_approve(/** @src 35:719:729 \"msg.sender\" */ caller(), /** @src 25:4595:4601 \"amount\" */ value0, /** @src 43:119:302 \"contract L2 is ERC20 {...\" */ calldataload(36))\n let memPos := mload(_2)\n mstore(memPos, 1)\n return(memPos, 32)\n }\n case 0x18160ddd {\n if callvalue() { revert(_4, _4) }\n if slt(add(calldatasize(), not(3)), _4) { revert(_4, _4) }\n let _7 := sload(/** @src 25:3331:3343 \"_totalSupply\" */ 0x02)\n /// @src 43:119:302 \"contract L2 is ERC20 {...\"\n let memPos_1 := mload(_2)\n mstore(memPos_1, _7)\n return(memPos_1, 32)\n }\n case 0x23b872dd {\n if callvalue() { revert(_4, _4) }\n if slt(add(calldatasize(), not(3)), 96) { revert(_4, _4) }\n let value0_1 := abi_decode_address_4723()\n let value1 := abi_decode_address()\n let value := calldataload(68)\n mstore(_4, and(value0_1, sub(shl(160, 1), 1)))\n mstore(32, 1)\n let _8 := keccak256(_4, _2)\n mstore(_4, /** @src 35:719:729 \"msg.sender\" */ caller())\n /// @src 43:119:302 \"contract L2 is ERC20 {...\"\n mstore(32, _8)\n let _9 := sload(keccak256(_4, _2))\n /// @src 25:10962:11205 \"if (currentAllowance != type(uint256).max) {...\"\n if /** @src 25:10966:11003 \"currentAllowance != type(uint256).max\" */ iszero(eq(_9, /** @src 25:10986:11003 \"type(uint256).max\" */ not(0)))\n /// @src 25:10962:11205 \"if (currentAllowance != type(uint256).max) {...\"\n {\n /// @src 43:119:302 \"contract L2 is ERC20 {...\"\n if /** @src 25:11027:11053 \"currentAllowance >= amount\" */ lt(_9, value)\n /// @src 43:119:302 \"contract L2 is ERC20 {...\"\n {\n let memPtr := mload(_2)\n mstore(memPtr, shl(229, 4594637))\n mstore(add(memPtr, _3), 32)\n mstore(add(memPtr, 36), 29)\n mstore(add(memPtr, 68), \"ERC20: insufficient allowance\")\n revert(memPtr, 100)\n }\n /// @src 25:11154:11179 \"currentAllowance - amount\"\n fun_approve(value0_1, /** @src 35:719:729 \"msg.sender\" */ caller(), /** @src 43:119:302 \"contract L2 is ERC20 {...\" */ sub(/** @src 25:11154:11179 \"currentAllowance - amount\" */ _9, value))\n }\n /// @src 25:5443:5449 \"amount\"\n fun_transfer(value0_1, value1, value)\n /// @src 43:119:302 \"contract L2 is ERC20 {...\"\n let memPos_2 := mload(_2)\n mstore(memPos_2, 1)\n return(memPos_2, 32)\n }\n case 0x313ce567 {\n if callvalue() { revert(_4, _4) }\n if slt(add(calldatasize(), not(3)), _4) { revert(_4, _4) }\n let memPos_3 := mload(_2)\n mstore(memPos_3, /** @src 25:3175:3177 \"18\" */ 0x12)\n /// @src 43:119:302 \"contract L2 is ERC20 {...\"\n return(memPos_3, 32)\n }\n case 0x39509351 {\n if callvalue() { revert(_4, _4) }\n if slt(add(calldatasize(), not(3)), _2) { revert(_4, _4) }\n let value0_2 := abi_decode_address_4723()\n mstore(_4, /** @src 35:719:729 \"msg.sender\" */ caller())\n /// @src 43:119:302 \"contract L2 is ERC20 {...\"\n mstore(32, 1)\n let _10 := keccak256(_4, _2)\n mstore(_4, and(value0_2, sub(shl(160, 1), 1)))\n mstore(32, _10)\n /// @src 25:6040:6078 \"allowance(owner, spender) + addedValue\"\n fun_approve(/** @src 35:719:729 \"msg.sender\" */ caller(), /** @src 25:6040:6078 \"allowance(owner, spender) + addedValue\" */ value0_2, checked_add_uint256(/** @src 43:119:302 \"contract L2 is ERC20 {...\" */ sload(keccak256(_4, _2)), calldataload(36)))\n let memPos_4 := mload(_2)\n mstore(memPos_4, 1)\n return(memPos_4, 32)\n }\n case 0x70a08231 {\n if callvalue() { revert(_4, _4) }\n if slt(add(calldatasize(), not(3)), 32) { revert(_4, _4) }\n mstore(_4, and(abi_decode_address_4723(), sub(shl(160, 1), 1)))\n mstore(32, _4)\n let _11 := sload(keccak256(_4, _2))\n let memPos_5 := mload(_2)\n mstore(memPos_5, _11)\n return(memPos_5, 32)\n }\n case 0x95d89b41 {\n if callvalue() { revert(_4, _4) }\n if slt(add(calldatasize(), not(3)), _4) { revert(_4, _4) }\n let memPtr_1 := mload(_2)\n let ret_1 := _4\n let slotValue_1 := sload(_3)\n let length_1 := _4\n let _12 := 1\n length_1 := shr(_12, slotValue_1)\n let outOfPlaceEncoding_1 := and(slotValue_1, _12)\n if iszero(outOfPlaceEncoding_1)\n {\n length_1 := and(length_1, 0x7f)\n }\n let _13 := 32\n if eq(outOfPlaceEncoding_1, lt(length_1, _13))\n {\n mstore(_4, shl(224, 0x4e487b71))\n mstore(_3, 0x22)\n revert(_4, 0x24)\n }\n mstore(memPtr_1, length_1)\n switch outOfPlaceEncoding_1\n case 0 {\n mstore(add(memPtr_1, _13), and(slotValue_1, not(255)))\n ret_1 := add(add(memPtr_1, shl(5, iszero(iszero(length_1)))), _13)\n }\n case 1 {\n mstore(_4, _3)\n let dataPos_1 := 62514009886607029107290561805838585334079798074568712924583230797734656856475\n let i_1 := _4\n for { } lt(i_1, length_1) { i_1 := add(i_1, _13) }\n {\n mstore(add(add(memPtr_1, i_1), _13), sload(dataPos_1))\n dataPos_1 := add(dataPos_1, _12)\n }\n ret_1 := add(add(memPtr_1, i_1), _13)\n }\n let newFreePtr_1 := add(memPtr_1, and(add(sub(ret_1, memPtr_1), 31), not(31)))\n if or(gt(newFreePtr_1, 0xffffffffffffffff), lt(newFreePtr_1, memPtr_1))\n {\n mstore(_4, shl(224, 0x4e487b71))\n mstore(_3, 0x41)\n revert(_4, 0x24)\n }\n mstore(_2, newFreePtr_1)\n return(newFreePtr_1, sub(abi_encode_string(newFreePtr_1, memPtr_1), newFreePtr_1))\n }\n case 0xa457c2d7 {\n if callvalue() { revert(_4, _4) }\n if slt(add(calldatasize(), not(3)), _2) { revert(_4, _4) }\n let value0_3 := abi_decode_address_4723()\n let value_1 := calldataload(36)\n mstore(_4, /** @src 35:719:729 \"msg.sender\" */ caller())\n /// @src 43:119:302 \"contract L2 is ERC20 {...\"\n mstore(32, 1)\n let _14 := keccak256(_4, _2)\n mstore(_4, and(value0_3, sub(shl(160, 1), 1)))\n mstore(32, _14)\n let _15 := sload(keccak256(_4, _2))\n if /** @src 25:6811:6846 \"currentAllowance >= subtractedValue\" */ lt(_15, value_1)\n /// @src 43:119:302 \"contract L2 is ERC20 {...\"\n {\n let memPtr_2 := mload(_2)\n mstore(memPtr_2, shl(229, 4594637))\n mstore(add(memPtr_2, _3), 32)\n mstore(add(memPtr_2, 36), 37)\n mstore(add(memPtr_2, 68), \"ERC20: decreased allowance below\")\n mstore(add(memPtr_2, 100), \" zero\")\n revert(memPtr_2, 132)\n }\n /// @src 25:6947:6981 \"currentAllowance - subtractedValue\"\n fun_approve(/** @src 35:719:729 \"msg.sender\" */ caller(), /** @src 25:6947:6981 \"currentAllowance - subtractedValue\" */ value0_3, /** @src 43:119:302 \"contract L2 is ERC20 {...\" */ sub(/** @src 25:6947:6981 \"currentAllowance - subtractedValue\" */ _15, value_1))\n /// @src 43:119:302 \"contract L2 is ERC20 {...\"\n let memPos_6 := mload(_2)\n mstore(memPos_6, 1)\n return(memPos_6, 32)\n }\n case 0xa9059cbb {\n if callvalue() { revert(_4, _4) }\n if slt(add(calldatasize(), not(3)), _2) { revert(_4, _4) }\n let value0_4 := abi_decode_address_4723()\n /// @src 25:3883:3889 \"amount\"\n fun_transfer(/** @src 35:719:729 \"msg.sender\" */ caller(), /** @src 25:3883:3889 \"amount\" */ value0_4, /** @src 43:119:302 \"contract L2 is ERC20 {...\" */ calldataload(36))\n let memPos_7 := mload(_2)\n mstore(memPos_7, 1)\n return(memPos_7, 32)\n }\n case 0xdd62ed3e {\n if callvalue() { revert(_4, _4) }\n if slt(add(calldatasize(), not(3)), _2) { revert(_4, _4) }\n let value0_5 := abi_decode_address_4723()\n let value1_1 := abi_decode_address()\n let _16 := sub(shl(160, 1), 1)\n mstore(_4, and(value0_5, _16))\n mstore(32, /** @src 25:4091:4102 \"_allowances\" */ 0x01)\n /// @src 43:119:302 \"contract L2 is ERC20 {...\"\n let _17 := keccak256(_4, _2)\n mstore(_4, and(value1_1, _16))\n mstore(32, _17)\n let _18 := sload(keccak256(_4, _2))\n let memPos_8 := mload(_2)\n mstore(memPos_8, _18)\n return(memPos_8, 32)\n }\n }\n revert(0, 0)\n }\n function abi_encode_string(headStart, value0) -> tail\n {\n let _1 := 32\n mstore(headStart, _1)\n let length := mload(value0)\n mstore(add(headStart, _1), length)\n let i := 0\n for { } lt(i, length) { i := add(i, _1) }\n {\n mstore(add(add(headStart, i), 64), mload(add(add(value0, i), _1)))\n }\n mstore(add(add(headStart, length), 64), 0)\n tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n }\n function abi_decode_address_4723() -> value\n {\n value := calldataload(4)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_address() -> value\n {\n value := calldataload(36)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function checked_add_uint256(x, y) -> sum\n {\n sum := add(x, y)\n if gt(x, sum)\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n }\n /// @ast-id 6097 @src 25:7484:8135 \"function _transfer(...\"\n function fun_transfer(var_from, var_to, var_amount)\n {\n /// @src 43:119:302 \"contract L2 is ERC20 {...\"\n let _1 := sub(shl(160, 1), 1)\n let _2 := and(/** @src 25:7610:7628 \"from != address(0)\" */ var_from, /** @src 43:119:302 \"contract L2 is ERC20 {...\" */ _1)\n if /** @src 25:7610:7628 \"from != address(0)\" */ iszero(/** @src 43:119:302 \"contract L2 is ERC20 {...\" */ _2)\n {\n let memPtr := mload(64)\n mstore(memPtr, shl(229, 4594637))\n mstore(add(memPtr, 4), 32)\n mstore(add(memPtr, 36), 37)\n mstore(add(memPtr, 68), \"ERC20: transfer from the zero ad\")\n mstore(add(memPtr, 100), \"dress\")\n revert(memPtr, 132)\n }\n let _3 := and(/** @src 25:7688:7704 \"to != address(0)\" */ var_to, /** @src 43:119:302 \"contract L2 is ERC20 {...\" */ _1)\n if /** @src 25:7688:7704 \"to != address(0)\" */ iszero(/** @src 43:119:302 \"contract L2 is ERC20 {...\" */ _3)\n {\n let memPtr_1 := mload(64)\n mstore(memPtr_1, shl(229, 4594637))\n mstore(add(memPtr_1, 4), 32)\n mstore(add(memPtr_1, 36), 35)\n mstore(add(memPtr_1, 68), \"ERC20: transfer to the zero addr\")\n mstore(add(memPtr_1, 100), \"ess\")\n revert(memPtr_1, 132)\n }\n /// @src 25:7626:7627 \"0\"\n let _4 := 0x00\n /// @src 43:119:302 \"contract L2 is ERC20 {...\"\n mstore(/** @src 25:7626:7627 \"0\" */ _4, /** @src 43:119:302 \"contract L2 is ERC20 {...\" */ _2)\n mstore(0x20, /** @src 25:7626:7627 \"0\" */ _4)\n /// @src 43:119:302 \"contract L2 is ERC20 {...\"\n let _5 := sload(keccak256(/** @src 25:7626:7627 \"0\" */ _4, /** @src 43:119:302 \"contract L2 is ERC20 {...\" */ 0x40))\n if /** @src 25:7859:7880 \"fromBalance >= amount\" */ lt(_5, var_amount)\n /// @src 43:119:302 \"contract L2 is ERC20 {...\"\n {\n let memPtr_2 := mload(0x40)\n mstore(memPtr_2, shl(229, 4594637))\n mstore(add(memPtr_2, 4), 0x20)\n mstore(add(memPtr_2, 36), 38)\n mstore(add(memPtr_2, 68), \"ERC20: transfer amount exceeds b\")\n mstore(add(memPtr_2, 100), \"alance\")\n revert(memPtr_2, 132)\n }\n mstore(/** @src 25:7626:7627 \"0\" */ _4, /** @src 43:119:302 \"contract L2 is ERC20 {...\" */ _2)\n mstore(0x20, /** @src 25:7626:7627 \"0\" */ _4)\n /// @src 43:119:302 \"contract L2 is ERC20 {...\"\n sstore(keccak256(/** @src 25:7626:7627 \"0\" */ _4, /** @src 43:119:302 \"contract L2 is ERC20 {...\" */ 0x40), sub(/** @src 25:7975:7995 \"fromBalance - amount\" */ _5, var_amount))\n /// @src 43:119:302 \"contract L2 is ERC20 {...\"\n mstore(/** @src 25:7626:7627 \"0\" */ _4, /** @src 43:119:302 \"contract L2 is ERC20 {...\" */ _3)\n let dataSlot := keccak256(/** @src 25:7626:7627 \"0\" */ _4, /** @src 43:119:302 \"contract L2 is ERC20 {...\" */ 0x40)\n sstore(dataSlot, /** @src 25:8015:8038 \"_balances[to] += amount\" */ checked_add_uint256(/** @src 43:119:302 \"contract L2 is ERC20 {...\" */ sload(/** @src 25:8015:8038 \"_balances[to] += amount\" */ dataSlot), var_amount))\n /// @src 25:8054:8080 \"Transfer(from, to, amount)\"\n let _6 := /** @src 43:119:302 \"contract L2 is ERC20 {...\" */ mload(0x40)\n mstore(_6, var_amount)\n /// @src 25:8054:8080 \"Transfer(from, to, amount)\"\n log3(_6, /** @src 43:119:302 \"contract L2 is ERC20 {...\" */ 0x20, /** @src 25:8054:8080 \"Transfer(from, to, amount)\" */ 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef, _2, _3)\n }\n /// @ast-id 6270 @src 25:10119:10489 \"function _approve(...\"\n function fun_approve(var_owner, var_spender, var_amount)\n {\n /// @src 43:119:302 \"contract L2 is ERC20 {...\"\n let _1 := sub(shl(160, 1), 1)\n let _2 := and(/** @src 25:10250:10269 \"owner != address(0)\" */ var_owner, /** @src 43:119:302 \"contract L2 is ERC20 {...\" */ _1)\n if /** @src 25:10250:10269 \"owner != address(0)\" */ iszero(/** @src 43:119:302 \"contract L2 is ERC20 {...\" */ _2)\n {\n let memPtr := mload(64)\n mstore(memPtr, shl(229, 4594637))\n mstore(add(memPtr, 4), 32)\n mstore(add(memPtr, 36), 36)\n mstore(add(memPtr, 68), \"ERC20: approve from the zero add\")\n mstore(add(memPtr, 100), \"ress\")\n revert(memPtr, 132)\n }\n let _3 := and(/** @src 25:10328:10349 \"spender != address(0)\" */ var_spender, /** @src 43:119:302 \"contract L2 is ERC20 {...\" */ _1)\n if /** @src 25:10328:10349 \"spender != address(0)\" */ iszero(/** @src 43:119:302 \"contract L2 is ERC20 {...\" */ _3)\n {\n let memPtr_1 := mload(64)\n mstore(memPtr_1, shl(229, 4594637))\n mstore(add(memPtr_1, 4), 32)\n mstore(add(memPtr_1, 36), 34)\n mstore(add(memPtr_1, 68), \"ERC20: approve to the zero addre\")\n mstore(add(memPtr_1, 100), \"ss\")\n revert(memPtr_1, 132)\n }\n mstore(/** @src 25:10267:10268 \"0\" */ 0x00, /** @src 43:119:302 \"contract L2 is ERC20 {...\" */ _2)\n mstore(0x20, /** @src 25:10399:10410 \"_allowances\" */ 0x01)\n /// @src 43:119:302 \"contract L2 is ERC20 {...\"\n let _4 := keccak256(/** @src 25:10267:10268 \"0\" */ 0x00, /** @src 43:119:302 \"contract L2 is ERC20 {...\" */ 0x40)\n mstore(/** @src 25:10267:10268 \"0\" */ 0x00, /** @src 43:119:302 \"contract L2 is ERC20 {...\" */ _3)\n mstore(0x20, _4)\n sstore(keccak256(/** @src 25:10267:10268 \"0\" */ 0x00, /** @src 43:119:302 \"contract L2 is ERC20 {...\" */ 0x40), var_amount)\n /// @src 25:10450:10482 \"Approval(owner, spender, amount)\"\n let _5 := /** @src 43:119:302 \"contract L2 is ERC20 {...\" */ mload(0x40)\n mstore(_5, var_amount)\n /// @src 25:10450:10482 \"Approval(owner, spender, amount)\"\n log3(_5, /** @src 43:119:302 \"contract L2 is ERC20 {...\" */ 0x20, /** @src 25:10450:10482 \"Approval(owner, spender, amount)\" */ 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925, _2, _3)\n }\n }\n data \".metadata\" hex\"a2646970667358221220bc638fb6385249a1e52fd832a2ee218efbe97ca953308423b36ceca2cdb87c9b64736f6c63430008120033\"\n }\n}\n","hash":"0100019fa5982f3ddec49defae15006b0e3b84c15b1dcf8bd72957fbaa0f9027","factoryDependencies":{}}},"contracts/Middle.sol":{"IGreeter":{"abi":[{"inputs":[],"name":"greet","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"","type":"string"}],"name":"setGreeting","outputs":[],"stateMutability":"nonpayable","type":"function"}],"metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"greet\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"setGreeting\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Middle.sol\":\"IGreeter\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"contracts/Middle.sol\":{\"keccak256\":\"0x8b5ca2b3da7ef4caff98f39ba1eb003d926e432e66b3a68f9c725b19267e31f4\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://98718593f3d3e466c5e364824fe0cd3570d1b2d06c4366908f67455dd480a4d6\",\"dweb:/ipfs/QmX9tZh7FDyKjsoPEGZGzQaQ1kZYLvxf4vUGYfDcFjcWF4\"]}},\"version\":1}","evm":{"legacyAssembly":null,"assembly":null,"bytecode":null,"methodIdentifiers":{"greet()":"cfae3217","setGreeting(string)":"a4136862"}},"irOptimized":""},"Middle":{"abi":[{"inputs":[{"internalType":"address","name":"_myAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"callGreeter","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"myAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"newGreeting","type":"string"}],"name":"setGreet","outputs":[],"stateMutability":"nonpayable","type":"function"}],"metadata":{"optimizer_settings":"M3B3","solc_metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_myAddress\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"callGreeter\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"myAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"newGreeting\",\"type\":\"string\"}],\"name\":\"setGreet\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Middle.sol\":\"Middle\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"contracts/Middle.sol\":{\"keccak256\":\"0x8b5ca2b3da7ef4caff98f39ba1eb003d926e432e66b3a68f9c725b19267e31f4\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://98718593f3d3e466c5e364824fe0cd3570d1b2d06c4366908f67455dd480a4d6\",\"dweb:/ipfs/QmX9tZh7FDyKjsoPEGZGzQaQ1kZYLvxf4vUGYfDcFjcWF4\"]}},\"version\":1}","zk_version":"1.3.9"},"evm":{"legacyAssembly":null,"assembly":"\t.text\n\t.file\t\"Middle.sol:Middle\"\n\t.globl\t__entry\n__entry:\n.func_begin0:\n\tnop\tstack+=[3]\n\tadd\tr1, r0, r3\n\tshr.s\t96, r3, r3\n\tand\t@CPI0_0[0], r3, r4\n\tptr.add\tr1, r4, stack[@ptr_return_data]\n\tptr.add\tr1, r0, stack[@ptr_calldata]\n\tand\t@CPI0_0[0], r3, stack[@calldatasize]\n\tadd\t0, r0, stack[@returndatasize]\n\tand!\t1, r2, r1\n\tjump.ne\t@.BB0_1\n\tadd\t128, r0, r1\n\tst.1\t64, r1\n\tadd\tstack[@calldatasize], r0, r1\n\tsub.s!\t4, r1, r1\n\tjump.lt\t@.BB0_2\n\tptr.add\tstack[@ptr_calldata], r0, r1\n\tld\tr1, r1\n\tshr.s\t224, r1, r1\n\tsub.s!\t@CPI0_5[0], r1, r2\n\tjump.eq\t@.BB0_45\n\tsub.s!\t@CPI0_6[0], r1, r2\n\tjump.eq\t@.BB0_19\n\tsub.s!\t@CPI0_7[0], r1, r1\n\tjump.ne\t@.BB0_2\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tsub.s\t4, r0, r1\n\tadd\tstack[@calldatasize], r1, r1\n\tadd\t@CPI0_1[0], r0, r2\n\tsub.s!\t0, r1, r3\n\tadd\t0, r0, r3\n\tadd.lt\tr2, r0, r3\n\tand\t@CPI0_1[0], r1, r1\n\tsub.s!\t0, r1, r4\n\tadd.le\t0, r0, r2\n\tsub.s!\t@CPI0_1[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tsload\tr0, r1\n\tand\t@CPI0_2[0], r1, r1\n\tst.1\t128, r1\n\tadd\t@CPI0_16[0], r0, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_1:\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tadd\tstack[@calldatasize], r0, r1\n\tadd\t159, r1, r2\n\tsub.s\t32, r0, r3\n\tand\tr2, r3, r2\n\tsub.s!\t127, r2, r3\n\tjump.gt\t@.BB0_5\n.BB0_4:\n\tadd\t@CPI0_14[0], r0, r1\n\tst.1\t0, r1\n\tadd\t65, r0, r1\n\tst.1\t4, r1\n\tadd\t@CPI0_15[0], r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB0_5:\n\tst.1\t64, r2\n\tand\t31, r1, r2\n\tptr.add\tstack[@ptr_calldata], r0, r3\n\tshr.s!\t5, r1, r4\n\tjump.eq\t@.BB0_75\n\tadd\tr0, r0, r5\n.BB0_7:\n\tshl.s\t5, r5, r6\n\tptr.add\tr3, r6, r7\n\tld\tr7, r7\n\tadd\t128, r6, r6\n\tst.1\tr6, r7\n\tadd\t1, r5, r5\n\tsub!\tr5, r4, r6\n\tjump.lt\t@.BB0_7\n.BB0_75:\n\tsub.s!\t0, r2, r5\n\tjump.eq\t@.BB0_9\n\tshl.s\t5, r4, r4\n\tptr.add\tr3, r4, r3\n\tshl.s\t3, r2, r2\n\tadd\t128, r4, r4\n\tld.1\tr4, r5\n\tshl\tr5, r2, r5\n\tshr\tr5, r2, r5\n\tld\tr3, r3\n\tsub\t256, r2, r2\n\tshr\tr3, r2, r3\n\tshl\tr3, r2, r2\n\tor\tr2, r5, r2\n\tst.1\tr4, r2\n.BB0_9:\n\tadd\t@CPI0_1[0], r0, r2\n\tsub.s!\t32, r1, r3\n\tadd\t0, r0, r3\n\tadd.lt\tr2, r0, r3\n\tand\t@CPI0_1[0], r1, r1\n\tsub.s!\t0, r1, r4\n\tadd.le\t0, r0, r2\n\tsub.s!\t@CPI0_1[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tld.1\t128, r1\n\tsub.s!\t@CPI0_2[0], r1, r2\n\tjump.gt\t@.BB0_2\n\tsload\tr0, r2\n\tand\t@CPI0_3[0], r2, r2\n\tor\tr2, r1, r1\n\tsstore\tr0, r1\n\tadd\t32, r0, r1\n\tst.2\t256, r1\n\tst.2\t288, r0\n\tadd\t@CPI0_4[0], r0, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_45:\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tsub.s\t4, r0, r1\n\tadd\tstack[@calldatasize], r1, r1\n\tadd\t@CPI0_1[0], r0, r2\n\tsub.s!\t0, r1, r3\n\tadd\t0, r0, r3\n\tadd.lt\tr2, r0, r3\n\tand\t@CPI0_1[0], r1, r1\n\tsub.s!\t0, r1, r4\n\tadd.le\t0, r0, r2\n\tsub.s!\t@CPI0_1[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tsload\tr0, r2\n\tld.1\t64, r8\n\tadd\t@CPI0_8[0], r0, r1\n\tst.1\tr8, r1\n\tcontext.gas_left\tr1\n\tand\t@CPI0_2[0], r2, r2\n\tsub.s!\t4, r2, r3\n\tjump.ne\t@.BB0_49\n\tptr.add\tstack[@ptr_return_data], r0, r1\n\tadd\tstack[@returndatasize], r0, r3\n\tjump\t@.BB0_56\n.BB0_19:\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tadd\tstack[@calldatasize], r0, r1\n\tsub.s\t4, r1, r2\n\tadd\t@CPI0_1[0], r0, r3\n\tsub.s!\t32, r2, r4\n\tadd\t0, r0, r4\n\tadd.lt\tr3, r0, r4\n\tand\t@CPI0_1[0], r2, r2\n\tsub.s!\t0, r2, r5\n\tadd.le\t0, r0, r3\n\tsub.s!\t@CPI0_1[0], r2, r2\n\tadd\tr4, r0, r2\n\tadd.eq\tr3, r0, r2\n\tsub.s!\t0, r2, r2\n\tjump.ne\t@.BB0_2\n\tptr.add\tstack[@ptr_calldata], r0, r2\n\tptr.add.s\t4, r2, r3\n\tld\tr3, r3\n\tsub.s!\t@CPI0_10[0], r3, r4\n\tjump.gt\t@.BB0_2\n\tadd\t35, r3, r4\n\tadd\t@CPI0_1[0], r0, r5\n\tsub!\tr4, r1, r6\n\tadd\t0, r0, r6\n\tadd.ge\tr5, r0, r6\n\tand\t@CPI0_1[0], r1, r1\n\tand\t@CPI0_1[0], r4, r4\n\tsub!\tr4, r1, r7\n\tadd.ge\t0, r0, r5\n\txor\tr4, r1, r1\n\tsub.s!\t@CPI0_1[0], r1, r1\n\tadd\tr6, r0, r1\n\tadd.eq\tr5, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tadd\t4, r3, r1\n\tptr.add\tr2, r1, r1\n\tld\tr1, r1\n\tsub.s!\t@CPI0_10[0], r1, r2\n\tjump.gt\t@.BB0_4\n\tadd\t63, r1, r2\n\tsub.s\t32, r0, r6\n\tand\tr2, r6, r2\n\tld.1\t64, r7\n\tadd\tr7, r2, r2\n\tsub!\tr2, r7, r4\n\tadd\t0, r0, r4\n\tadd.lt\t1, r0, r4\n\tsub.s!\t@CPI0_10[0], r2, r5\n\tjump.gt\t@.BB0_4\n\tand!\t1, r4, r4\n\tjump.ne\t@.BB0_4\n\tst.1\t64, r2\n\tst.1.inc\tr7, r1, r2\n\tadd\t36, r3, r4\n\tadd\tr1, r4, r3\n\tadd\tstack[@calldatasize], r0, r5\n\tsub!\tr3, r5, r3\n\tjump.gt\t@.BB0_2\n\tadd\tr7, r0, stack-[2]\n\tadd\tr6, r0, stack-[3]\n\tand\t31, r1, r3\n\tptr.add\tstack[@ptr_calldata], r4, r4\n\tshr.s!\t5, r1, r5\n\tjump.eq\t@.BB0_72\n\tadd\tr0, r0, r6\n.BB0_29:\n\tshl.s\t5, r6, r7\n\tadd\tr2, r7, r8\n\tptr.add\tr4, r7, r7\n\tld\tr7, r7\n\tst.1\tr8, r7\n\tadd\t1, r6, r6\n\tsub!\tr6, r5, r7\n\tjump.lt\t@.BB0_29\n.BB0_72:\n\tsub.s!\t0, r3, r6\n\tjump.eq\t@.BB0_31\n\tshl.s\t5, r5, r5\n\tptr.add\tr4, r5, r4\n\tadd\tr2, r5, r5\n\tshl.s\t3, r3, r3\n\tld.1\tr5, r6\n\tshl\tr6, r3, r6\n\tshr\tr6, r3, r6\n\tld\tr4, r4\n\tsub\t256, r3, r3\n\tshr\tr4, r3, r4\n\tshl\tr4, r3, r3\n\tor\tr3, r6, r3\n\tst.1\tr5, r3\n.BB0_31:\n\tadd\tr2, r1, r1\n\tst.1\tr1, r0\n\tsload\tr0, r1\n\tadd\t@CPI0_11[0], r0, r2\n\tst.2\t0, r2\n\tand\t@CPI0_2[0], r1, r1\n\tadd\tr1, r0, stack-[1]\n\tst.2\t4, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI0_12[0], r1, r1\n\tadd\t32770, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tadd\tstack-[3], r0, r7\n\tadd\tstack-[2], r0, r8\n\tjump.eq\t@.BB0_2\n\tld\tr1, r1\n\tsub.s!\t0, r1, r1\n\tjump.eq\t@.BB0_2\n\tld.1\t64, r10\n\tadd\t@CPI0_13[0], r0, r1\n\tst.1\tr10, r1\n\tadd\t4, r10, r2\n\tcontext.gas_left\tr1\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tld.1\tr8, r9\n\tadd\t36, r10, r3\n\tst.1\tr3, r9\n\tadd\t68, r10, r3\n\tsub.s!\t0, r9, r4\n\tjump.eq\t@.BB0_36\n\tadd\tr0, r0, r4\n.BB0_35:\n\tadd\tr4, r3, r5\n\tadd\t32, r4, r4\n\tadd\tr4, r8, r6\n\tld.1\tr6, r6\n\tst.1\tr5, r6\n\tsub!\tr4, r9, r5\n\tjump.lt\t@.BB0_35\n.BB0_36:\n\tadd\tr9, r3, r3\n\tst.1\tr3, r0\n\tadd\tstack-[1], r0, r2\n\tsub.s!\t4, r2, r3\n\tjump.eq\t@.BB0_43\n\tadd\t31, r9, r3\n\tand\tr3, r7, r5\n\tadd\t@CPI0_0[0], r0, r3\n\tsub.s!\t@CPI0_0[0], r10, r4\n\tadd\tr3, r0, r4\n\tadd.lt\tr10, r0, r4\n\tshl.s\t64, r4, r4\n\tadd\t68, r5, r6\n\tsub.s!\t@CPI0_0[0], r6, r5\n\tadd\tr3, r0, r5\n\tadd.lt\tr6, r0, r5\n\tshl.s\t96, r5, r5\n\tor\tr5, r4, r5\n\tsub.s!\t@CPI0_0[0], r1, r4\n\tadd.ge\tr3, r0, r1\n\tshl.s\t192, r1, r1\n\tor\tr5, r1, r1\n\tadd\tr10, r0, stack-[3]\n\tnear_call\tr0, @__farcall, @DEFAULT_UNWIND\n\tadd\tstack-[3], r0, r10\n\tadd\tr1, r0, r3\n\tshr.s\t96, r3, r3\n\tand\t@CPI0_0[0], r3, stack[@returndatasize]\n\tand\t@CPI0_0[0], r3, r4\n\tptr.add\tr1, r0, stack[@ptr_return_data]\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_38\n.BB0_43:\n\tsub.s!\t@CPI0_10[0], r10, r1\n\tjump.gt\t@.BB0_4\n\tst.1\t64, r10\n\tadd\tr0, r0, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_49:\n\tadd\t@CPI0_0[0], r0, r3\n\tsub.s!\t@CPI0_0[0], r1, r4\n\tadd.ge\tr3, r0, r1\n\tsub.s!\t@CPI0_0[0], r8, r4\n\tadd.lt\tr8, r0, r3\n\tshl.s\t64, r3, r3\n\tshl.s\t192, r1, r1\n\tor\tr1, r3, r1\n\tor\t@CPI0_9[0], r1, r1\n\tadd\tr8, r0, stack-[3]\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tadd\tstack-[3], r0, r8\n\tadd\tr1, r0, r3\n\tshr.s\t96, r3, r3\n\tand\t@CPI0_0[0], r3, stack[@returndatasize]\n\tand\t@CPI0_0[0], r3, r3\n\tptr.add\tr1, r0, stack[@ptr_return_data]\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_50\n.BB0_56:\n\tand\t31, r3, r2\n\tshr.s!\t5, r3, r4\n\tjump.eq\t@.BB0_73\n\tadd\tr0, r0, r5\n.BB0_58:\n\tshl.s\t5, r5, r6\n\tadd\tr8, r6, r7\n\tptr.add\tr1, r6, r6\n\tld\tr6, r6\n\tst.1\tr7, r6\n\tadd\t1, r5, r5\n\tsub!\tr5, r4, r6\n\tjump.lt\t@.BB0_58\n.BB0_73:\n\tsub.s!\t0, r2, r5\n\tjump.eq\t@.BB0_60\n\tshl.s\t5, r4, r4\n\tptr.add\tr1, r4, r1\n\tadd\tr8, r4, r4\n\tshl.s\t3, r2, r2\n\tld.1\tr4, r5\n\tshl\tr5, r2, r5\n\tshr\tr5, r2, r5\n\tld\tr1, r1\n\tsub\t256, r2, r2\n\tshr\tr1, r2, r1\n\tshl\tr1, r2, r1\n\tor\tr1, r5, r1\n\tst.1\tr4, r1\n.BB0_60:\n\tadd\t31, r3, r2\n\tsub.s\t32, r0, r1\n\tand\tr2, r1, r4\n\tadd\tr4, r8, r2\n\tsub!\tr2, r4, r4\n\tadd\t0, r0, r4\n\tadd.lt\t1, r0, r4\n\tsub.s!\t@CPI0_10[0], r2, r5\n\tjump.gt\t@.BB0_4\n\tand!\t1, r4, r4\n\tjump.ne\t@.BB0_4\n\tadd\t@CPI0_1[0], r0, r4\n\tsub.s!\t32, r3, r5\n\tadd\t0, r0, r5\n\tadd.lt\tr4, r0, r5\n\tand\t@CPI0_1[0], r3, r6\n\tsub.s!\t0, r6, r7\n\tadd.le\t0, r0, r4\n\tsub.s!\t@CPI0_1[0], r6, r6\n\tadd.ne\tr5, r0, r4\n\tst.1\t64, r2\n\tsub.s!\t0, r4, r4\n\tjump.ne\t@.BB0_2\n\tld.1\tr8, r4\n\tsub.s!\t@CPI0_10[0], r4, r5\n\tjump.gt\t@.BB0_2\n\tadd\tr3, r8, r5\n\tadd\tr4, r8, r3\n\tadd\t31, r3, r4\n\tadd\t@CPI0_1[0], r0, r6\n\tsub!\tr4, r5, r7\n\tadd\t0, r0, r7\n\tadd.ge\tr6, r0, r7\n\tand\t@CPI0_1[0], r4, r4\n\tand\t@CPI0_1[0], r5, r8\n\tsub!\tr4, r8, r9\n\tadd.ge\t0, r0, r6\n\txor\tr4, r8, r4\n\tsub.s!\t@CPI0_1[0], r4, r4\n\tadd\tr7, r0, r4\n\tadd.eq\tr6, r0, r4\n\tsub.s!\t0, r4, r4\n\tjump.ne\t@.BB0_2\n\tld.1.inc\tr3, r3, r4\n\tsub.s!\t@CPI0_10[0], r3, r6\n\tjump.gt\t@.BB0_4\n\tadd\t63, r3, r6\n\tand\tr6, r1, r1\n\tadd\tr1, r2, r1\n\tsub.s!\t@CPI0_10[0], r1, r6\n\tjump.gt\t@.BB0_4\n\tst.1\t64, r1\n\tst.1.inc\tr2, r3, r1\n\tadd\tr3, r4, r6\n\tsub!\tr6, r5, r5\n\tjump.le\t@.BB0_68\n.BB0_2:\n\tadd\tr0, r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB0_50:\n\tld.1\t64, r2\n\tand\t31, r3, r4\n\tshr.s!\t5, r3, r3\n\tjump.eq\t@.BB0_74\n\tadd\tr0, r0, r5\n.BB0_52:\n\tshl.s\t5, r5, r6\n\tadd\tr2, r6, r7\n\tptr.add\tr1, r6, r6\n\tld\tr6, r6\n\tst.1\tr7, r6\n\tadd\t1, r5, r5\n\tsub!\tr5, r3, r6\n\tjump.lt\t@.BB0_52\n.BB0_74:\n\tsub.s!\t0, r4, r5\n\tjump.eq\t@.BB0_54\n\tshl.s\t5, r3, r3\n\tptr.add\tr1, r3, r1\n\tadd\tr2, r3, r3\n\tshl.s\t3, r4, r4\n\tld.1\tr3, r5\n\tshl\tr5, r4, r5\n\tshr\tr5, r4, r5\n\tld\tr1, r1\n\tsub\t256, r4, r4\n\tshr\tr1, r4, r1\n\tshl\tr1, r4, r1\n\tor\tr1, r5, r1\n\tst.1\tr3, r1\n.BB0_54:\n\tadd\t@CPI0_0[0], r0, r1\n\tadd\tstack[@returndatasize], r0, r3\n\tsub.s!\t@CPI0_0[0], r3, r4\n\tadd.ge\tr1, r0, r3\n\tsub.s!\t@CPI0_0[0], r2, r4\n\tadd.lt\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tshl.s\t96, r3, r2\n\tor\tr2, r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB0_68:\n\tsub.s!\t0, r3, r5\n\tjump.eq\t@.BB0_55\n\tadd\tr0, r0, r5\n.BB0_70:\n\tadd\tr5, r1, r6\n\tadd\tr5, r4, r7\n\tld.1\tr7, r7\n\tst.1\tr6, r7\n\tadd\t32, r5, r5\n\tsub!\tr5, r3, r6\n\tjump.lt\t@.BB0_70\n.BB0_55:\n\tadd\tr3, r1, r1\n\tst.1\tr1, r0\n\tld.1\t64, r1\n\tadd\tr1, r0, stack-[3]\n\tnear_call\tr0, @abi_encode_string, @DEFAULT_UNWIND\n\tadd\tstack-[3], r0, r4\n\tsub\tr1, r4, r1\n\tadd\t@CPI0_0[0], r0, r2\n\tsub.s!\t@CPI0_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tsub.s!\t@CPI0_0[0], r4, r3\n\tadd.lt\tr4, r0, r2\n\tshl.s\t64, r2, r2\n\tshl.s\t96, r1, r1\n\tor\tr1, r2, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_38:\n\tld.1\t64, r2\n\tand\t31, r4, r3\n\tshr.s!\t5, r4, r4\n\tjump.eq\t@.BB0_71\n\tadd\tr0, r0, r5\n.BB0_40:\n\tshl.s\t5, r5, r6\n\tadd\tr2, r6, r7\n\tptr.add\tr1, r6, r6\n\tld\tr6, r6\n\tst.1\tr7, r6\n\tadd\t1, r5, r5\n\tsub!\tr5, r4, r6\n\tjump.lt\t@.BB0_40\n.BB0_71:\n\tsub.s!\t0, r3, r5\n\tjump.eq\t@.BB0_42\n\tshl.s\t5, r4, r4\n\tptr.add\tr1, r4, r1\n\tadd\tr2, r4, r4\n\tshl.s\t3, r3, r3\n\tld.1\tr4, r5\n\tshl\tr5, r3, r5\n\tshr\tr5, r3, r5\n\tld\tr1, r1\n\tsub\t256, r3, r3\n\tshr\tr1, r3, r1\n\tshl\tr1, r3, r1\n\tor\tr1, r5, r1\n\tst.1\tr4, r1\n.BB0_42:\n\tadd\t@CPI0_0[0], r0, r1\n\tadd\tstack[@returndatasize], r0, r3\n\tsub.s!\t@CPI0_0[0], r3, r4\n\tadd.ge\tr1, r0, r3\n\tsub.s!\t@CPI0_0[0], r2, r4\n\tadd.lt\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tshl.s\t96, r3, r2\n\tor\tr2, r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.func_end0:\n\nabi_encode_string:\n.func_begin1:\n\tadd\t32, r0, r3\n\tst.1.inc\tr1, r3, r4\n\tld.1\tr2, r3\n\tst.1\tr4, r3\n\tadd\t64, r1, r1\n\tsub.s!\t0, r3, r4\n\tjump.eq\t@.BB1_3\n\tadd\tr0, r0, r4\n.BB1_2:\n\tadd\tr4, r1, r5\n\tadd\t32, r4, r4\n\tadd\tr4, r2, r6\n\tld.1\tr6, r6\n\tst.1\tr5, r6\n\tsub!\tr4, r3, r5\n\tjump.lt\t@.BB1_2\n.BB1_3:\n\tadd\tr3, r1, r2\n\tst.1\tr2, r0\n\tadd\t31, r3, r2\n\tsub.s\t32, r0, r3\n\tand\tr2, r3, r2\n\tadd\tr1, r2, r1\n\tret\n.func_end1:\n\n__farcall:\n.func_begin2:\n.tmp0:\n\tfar_call\tr1, r2, @.BB2_2\n.tmp1:\n\tadd\t1, r0, r2\n\tret\n.BB2_2:\n.tmp2:\n\tadd\tr0, r0, r2\n\tret\n.func_end2:\n\n__staticcall:\n.func_begin3:\n.tmp3:\n\tfar_call.static\tr1, r2, @.BB3_2\n.tmp4:\n\tadd\t1, r0, r2\n\tret\n.BB3_2:\n.tmp5:\n\tadd\tr0, r0, r2\n\tret\n.func_end3:\n\n\t.data\n\t.p2align\t5\ncalldatasize:\n\t.cell 0\n\n\t.p2align\t5\nreturndatasize:\n\t.cell 0\n\n\t.p2align\t5\nptr_calldata:\n.cell\t0\n\n\t.p2align\t5\nptr_return_data:\n.cell\t0\n\n\t.note.GNU-stack\n\t.rodata\nCPI0_0:\n\t.cell 4294967295\nCPI0_1:\n\t.cell -57896044618658097711785492504343953926634992332820282019728792003956564819968\nCPI0_2:\n\t.cell 1461501637330902918203684832716283019655932542975\nCPI0_3:\n\t.cell -1461501637330902918203684832716283019655932542976\nCPI0_4:\n\t.cell 53919893334301279589334030174039261352344891250716429051063678533632\nCPI0_5:\n\t.cell 3618908444\nCPI0_6:\n\t.cell 2526546027\nCPI0_7:\n\t.cell 649617121\nCPI0_8:\n\t.cell -21855552483912501284291303069055441188061847755248476274203343518395480932352\nCPI0_9:\n\t.cell 316912650057057350374175801344\nCPI0_10:\n\t.cell 18446744073709551615\nCPI0_11:\n\t.cell 10867283408178898638301172343726954674910073630256871736220740970449699113859\nCPI0_12:\n\t.cell 904625751086426111047927909714404454142933105326819602152923490636624035840\nCPI0_13:\n\t.cell -41578491551734878828687146993005946094397317613400681812297918684346141638656\nCPI0_14:\n\t.cell 35408467139433450592217433187231851964531694900788300625387963629091585785856\nCPI0_15:\n\t.cell 2852213850513516153367582212096\nCPI0_16:\n\t.cell 2535301202817642044428229017600\n","bytecode":{"object":"00040000000000020003000000000002000000000301001900000060033002700000008c04300197000300000041035500020000000103550000008c0030019d000100000000001f00000001012001900000002f0000c13d0000008001000039000000400010043f0000000001000031000000040110008c000001a10000413d0000000201000367000000000101043b000000e001100270000000910210009c000000730000613d000000920210009c0000008f0000613d000000930110009c000001a10000c13d0000000001000416000000000110004c000001a10000c13d000000040100008a00000000011000310000008d02000041000000000310004c000000000300001900000000030240190000008d01100197000000000410004c000000000200a0190000008d0110009c00000000010300190000000001026019000000000110004c000001a10000c13d000000000100041a0000008e01100197000000800010043f0000009c010000410000022a0001042e0000000001000416000000000110004c000001a10000c13d00000000010000310000009f02100039000000200300008a000000000232016f0000007f0320008c0000003e0000213d0000009a0100004100000000001004350000004101000039000000040010043f0000009b010000410000022b00010430000000400020043f0000001f0210018f000000020300036700000005041002720000004c0000613d00000000050000190000000506500210000000000763034f000000000707043b000000800660003900000000007604350000000105500039000000000645004b000000440000413d000000000520004c0000005b0000613d0000000504400210000000000343034f00000003022002100000008004400039000000000504043300000000052501cf000000000525022f000000000303043b0000010002200089000000000323022f00000000022301cf000000000252019f00000000002404350000008d02000041000000200310008c000000000300001900000000030240190000008d01100197000000000410004c000000000200a0190000008d0110009c00000000010300190000000001026019000000000110004c000001a10000c13d000000800100043d0000008e0210009c000001a10000213d000000000200041a0000008f02200197000000000112019f000000000010041b00000020010000390000010000100443000001200000044300000090010000410000022a0001042e0000000001000416000000000110004c000001a10000c13d000000040100008a00000000011000310000008d02000041000000000310004c000000000300001900000000030240190000008d01100197000000000410004c000000000200a0190000008d0110009c00000000010300190000000001026019000000000110004c000001a10000c13d000000000200041a000000400800043d0000009401000041000000000018043500000000010004140000008e02200197000000040320008c0000013b0000c13d000000030100036700000001030000310000014e0000013d0000000001000416000000000110004c000001a10000c13d0000000001000031000000040210008a0000008d03000041000000200420008c000000000400001900000000040340190000008d02200197000000000520004c000000000300a0190000008d0220009c00000000020400190000000002036019000000000220004c000001a10000c13d00000002020003670000000403200370000000000303043b000000960430009c000001a10000213d00000023043000390000008d05000041000000000614004b000000000600001900000000060580190000008d011001970000008d04400197000000000714004b0000000005008019000000000114013f0000008d0110009c00000000010600190000000001056019000000000110004c000001a10000c13d0000000401300039000000000112034f000000000101043b000000960210009c000000380000213d0000003f02100039000000200600008a000000000262016f000000400700043d0000000002270019000000000472004b00000000040000190000000104004039000000960520009c000000380000213d0000000104400190000000380000c13d000000400020043f0000000002170436000000240430003900000000034100190000000005000031000000000353004b000001a10000213d000200000007001d000300000006001d0000001f0310018f00000002044003670000000505100272000000db0000613d000000000600001900000005076002100000000008720019000000000774034f000000000707043b00000000007804350000000106600039000000000756004b000000d30000413d000000000630004c000000ea0000613d0000000505500210000000000454034f00000000055200190000000303300210000000000605043300000000063601cf000000000636022f000000000404043b0000010003300089000000000434022f00000000033401cf000000000363019f000000000035043500000000011200190000000000010435000000000100041a000000970200004100000000002004390000008e01100197000100000001001d00000004001004430000008c0100004100000000020004140000008c0320009c0000000001024019000000c00110021000000098011001c70000800202000039022902240000040f000000010220019000000003070000290000000208000029000001a10000613d000000000101043b000000000110004c000001a10000613d000000400a00043d000000990100004100000000001a04350000000402a0003900000000010004140000002003000039000000000032043500000000090804330000002403a0003900000000009304350000004403a00039000000000490004c000001160000613d000000000400001900000000053400190000002004400039000000000684001900000000060604330000000000650435000000000594004b0000010f0000413d000000000339001900000000000304350000000102000029000000040320008c000001360000613d0000001f03900039000000000573016f0000008c030000410000008c04a0009c000000000403001900000000040a4019000000400440021000000044065000390000008c0560009c000000000503001900000000050640190000006005500210000000000545019f0000008c0410009c0000000001038019000000c001100210000000000115019f00030000000a001d0229021f0000040f000000030a000029000000000301001900000060033002700001008c0030019d0000008c0430019700030000000103550000000102200190000001e30000613d0000009601a0009c000000380000213d0000004000a0043f00000000010000190000022a0001042e0000008c030000410000008c0410009c00000000010380190000008c0480009c00000000030840190000004003300210000000c001100210000000000131019f00000095011001c7000300000008001d022902240000040f0000000308000029000000000301001900000060033002700001008c0030019d0000008c0330019700030000000103550000000102200190000001a30000613d0000001f0230018f00000005043002720000015a0000613d000000000500001900000005065002100000000007680019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b000001520000413d000000000520004c000001690000613d0000000504400210000000000141034f00000000044800190000000302200210000000000504043300000000052501cf000000000525022f000000000101043b0000010002200089000000000121022f00000000012101cf000000000151019f00000000001404350000001f02300039000000200100008a000000000412016f0000000002840019000000000442004b00000000040000190000000104004039000000960520009c000000380000213d0000000104400190000000380000c13d0000008d04000041000000200530008c000000000500001900000000050440190000008d06300197000000000760004c000000000400a0190000008d0660009c000000000405c019000000400020043f000000000440004c000001a10000c13d0000000004080433000000960540009c000001a10000213d000000000583001900000000038400190000001f043000390000008d06000041000000000754004b000000000700001900000000070680190000008d044001970000008d08500197000000000984004b0000000006008019000000000484013f0000008d0440009c00000000040700190000000004066019000000000440004c000001a10000c13d0000000043030434000000960630009c000000380000213d0000003f06300039000000000116016f0000000001210019000000960610009c000000380000213d000000400010043f00000000013204360000000006430019000000000556004b000001c90000a13d00000000010000190000022b00010430000000400200043d0000001f0430018f0000000503300272000001b00000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b000001a80000413d000000000540004c000001bf0000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001304350000008c0100004100000001030000310000008c0430009c00000000030180190000008c0420009c000000000102401900000040011002100000006002300210000000000112019f0000022b00010430000000000530004c000001d30000613d000000000500001900000000061500190000000007450019000000000707043300000000007604350000002005500039000000000635004b000001cc0000413d00000000011300190000000000010435000000400100043d000300000001001d022902090000040f000000030400002900000000014100490000008c020000410000008c0310009c00000000010280190000008c0340009c000000000204401900000040022002100000006001100210000000000121019f0000022a0001042e000000400200043d0000001f0340018f0000000504400272000001f00000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b000001e80000413d000000000530004c000001ff0000613d0000000504400210000000000141034f00000000044200190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f00000000001404350000008c0100004100000001030000310000008c0430009c00000000030180190000008c0420009c000000000102401900000040011002100000006002300210000000000112019f0000022b0001043000000020030000390000000004310436000000000302043300000000003404350000004001100039000000000430004c000002180000613d000000000400001900000000051400190000002004400039000000000624001900000000060604330000000000650435000000000534004b000002110000413d000000000213001900000000000204350000001f02300039000000200300008a000000000232016f0000000001210019000000000001042d00000222002104210000000102000039000000000001042d0000000002000019000000000001042d00000227002104230000000102000039000000000001042d0000000002000019000000000001042d00000229000004320000022a0001042e0000022b00010430000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000020000000000000000000000000000004000000100000000000000000000000000000000000000000000000000000000000000000000000000d7b4291c000000000000000000000000000000000000000000000000000000009698086b0000000000000000000000000000000000000000000000000000000026b85ee1cfae3217000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff1806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b830200000200000000000000000000000000000024000000000000000000000000a4136862000000000000000000000000000000000000000000000000000000004e487b71000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000000000000000000000000000000000000000002000000080000000000000000000000000000000000000000000000000000000000000000000000000000000008ad0c80787522d86161b20b75bf9336bac306035f207b217f324b5607d27492a"},"methodIdentifiers":{"callGreeter()":"d7b4291c","myAddress()":"26b85ee1","setGreet(string)":"9698086b"}},"irOptimized":"/// @use-src 44:\"contracts/Middle.sol\"\nobject \"Middle_8678\" {\n code {\n {\n /// @src 44:197:562 \"contract Middle {...\"\n let _1 := memoryguard(0x80)\n if callvalue() { revert(0, 0) }\n let programSize := datasize(\"Middle_8678\")\n let argSize := sub(codesize(), programSize)\n let newFreePtr := add(_1, and(add(argSize, 31), not(31)))\n if or(gt(newFreePtr, sub(shl(64, 1), 1)), lt(newFreePtr, _1))\n {\n mstore(/** @src -1:-1:-1 */ 0, /** @src 44:197:562 \"contract Middle {...\" */ shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(/** @src -1:-1:-1 */ 0, /** @src 44:197:562 \"contract Middle {...\" */ 0x24)\n }\n mstore(64, newFreePtr)\n codecopy(_1, programSize, argSize)\n if slt(sub(add(_1, argSize), _1), 32)\n {\n revert(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 44:197:562 \"contract Middle {...\"\n let value := mload(_1)\n let _2 := and(value, sub(shl(160, 1), 1))\n if iszero(eq(value, _2))\n {\n revert(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 44:197:562 \"contract Middle {...\"\n sstore(/** @src -1:-1:-1 */ 0, /** @src 44:197:562 \"contract Middle {...\" */ or(and(sload(/** @src -1:-1:-1 */ 0), /** @src 44:197:562 \"contract Middle {...\" */ not(sub(shl(160, 1), 1))), _2))\n let _3 := mload(64)\n let _4 := datasize(\"Middle_8678_deployed\")\n codecopy(_3, dataoffset(\"Middle_8678_deployed\"), _4)\n return(_3, _4)\n }\n }\n /// @use-src 44:\"contracts/Middle.sol\"\n object \"Middle_8678_deployed\" {\n code {\n {\n /// @src 44:197:562 \"contract Middle {...\"\n let _1 := memoryguard(0x80)\n let _2 := 64\n mstore(_2, _1)\n let _3 := 4\n if iszero(lt(calldatasize(), _3))\n {\n let _4 := 0\n switch shr(224, calldataload(_4))\n case 0x26b85ee1 {\n if callvalue() { revert(_4, _4) }\n if slt(add(calldatasize(), not(3)), _4) { revert(_4, _4) }\n mstore(_1, and(sload(_4), sub(shl(160, 1), 1)))\n return(_1, 32)\n }\n case 0x9698086b {\n if callvalue() { revert(_4, _4) }\n if slt(add(calldatasize(), not(3)), 32) { revert(_4, _4) }\n let offset := calldataload(_3)\n let _5 := 0xffffffffffffffff\n if gt(offset, _5) { revert(_4, _4) }\n if iszero(slt(add(offset, 35), calldatasize())) { revert(_4, _4) }\n let _6 := calldataload(add(_3, offset))\n let _7 := array_allocation_size_string(_6)\n let memPtr := mload(_2)\n finalize_allocation(memPtr, _7)\n mstore(memPtr, _6)\n if gt(add(add(offset, _6), 36), calldatasize()) { revert(_4, _4) }\n calldatacopy(add(memPtr, 32), add(offset, 36), _6)\n mstore(add(add(memPtr, _6), 32), _4)\n let value := and(sload(_4), sub(shl(160, 1), 1))\n /// @src 44:391:435 \"IGreeter(myAddress).setGreeting(newGreeting)\"\n if iszero(extcodesize(value))\n {\n /// @src 44:197:562 \"contract Middle {...\"\n revert(_4, _4)\n }\n /// @src 44:391:435 \"IGreeter(myAddress).setGreeting(newGreeting)\"\n let _8 := /** @src 44:197:562 \"contract Middle {...\" */ mload(_2)\n /// @src 44:391:435 \"IGreeter(myAddress).setGreeting(newGreeting)\"\n mstore(_8, /** @src 44:197:562 \"contract Middle {...\" */ shl(225, 0x5209b431))\n /// @src 44:391:435 \"IGreeter(myAddress).setGreeting(newGreeting)\"\n let _9 := call(gas(), value, /** @src 44:197:562 \"contract Middle {...\" */ _4, /** @src 44:391:435 \"IGreeter(myAddress).setGreeting(newGreeting)\" */ _8, sub(abi_encode_string(add(_8, /** @src 44:197:562 \"contract Middle {...\" */ _3), /** @src 44:391:435 \"IGreeter(myAddress).setGreeting(newGreeting)\" */ memPtr), _8), _8, /** @src 44:197:562 \"contract Middle {...\" */ _4)\n /// @src 44:391:435 \"IGreeter(myAddress).setGreeting(newGreeting)\"\n if iszero(_9)\n {\n /// @src 44:197:562 \"contract Middle {...\"\n let pos := mload(_2)\n returndatacopy(pos, _4, returndatasize())\n revert(pos, returndatasize())\n }\n /// @src 44:391:435 \"IGreeter(myAddress).setGreeting(newGreeting)\"\n if _9\n {\n /// @src 44:197:562 \"contract Middle {...\"\n if gt(_8, _5)\n {\n mstore(_4, shl(224, 0x4e487b71))\n mstore(_3, 0x41)\n revert(_4, 36)\n }\n mstore(_2, _8)\n _4 := _4\n }\n return(_4, _4)\n }\n case 0xd7b4291c {\n if callvalue() { revert(_4, _4) }\n if slt(add(calldatasize(), not(3)), _4) { revert(_4, _4) }\n let value_1 := and(sload(_4), sub(shl(160, 1), 1))\n /// @src 44:526:553 \"IGreeter(myAddress).greet()\"\n let _10 := /** @src 44:197:562 \"contract Middle {...\" */ mload(_2)\n /// @src 44:526:553 \"IGreeter(myAddress).greet()\"\n mstore(_10, /** @src 44:197:562 \"contract Middle {...\" */ shl(224, 0xcfae3217))\n /// @src 44:526:553 \"IGreeter(myAddress).greet()\"\n let _11 := staticcall(gas(), value_1, _10, /** @src 44:197:562 \"contract Middle {...\" */ _3, /** @src 44:526:553 \"IGreeter(myAddress).greet()\" */ _10, /** @src 44:197:562 \"contract Middle {...\" */ _4)\n /// @src 44:526:553 \"IGreeter(myAddress).greet()\"\n if iszero(_11)\n {\n /// @src 44:197:562 \"contract Middle {...\"\n let pos_1 := mload(_2)\n returndatacopy(pos_1, _4, returndatasize())\n revert(pos_1, returndatasize())\n }\n /// @src 44:526:553 \"IGreeter(myAddress).greet()\"\n let expr_mpos := _4\n if _11\n {\n let _12 := returndatasize()\n returndatacopy(_10, /** @src 44:197:562 \"contract Middle {...\" */ _4, /** @src 44:526:553 \"IGreeter(myAddress).greet()\" */ _12)\n finalize_allocation(_10, _12)\n let _13 := add(_10, _12)\n /// @src 44:197:562 \"contract Middle {...\"\n if slt(sub(_13, _10), 32) { revert(_4, _4) }\n let offset_1 := mload(_10)\n if gt(offset_1, 0xffffffffffffffff) { revert(_4, _4) }\n let _14 := add(_10, offset_1)\n if iszero(slt(add(_14, 0x1f), _13)) { revert(_4, _4) }\n let _15 := mload(_14)\n let _16 := array_allocation_size_string(_15)\n let memPtr_1 := mload(_2)\n finalize_allocation(memPtr_1, _16)\n mstore(memPtr_1, _15)\n if gt(add(add(_14, _15), 32), _13) { revert(_4, _4) }\n copy_memory_to_memory_with_cleanup(add(_14, 32), add(memPtr_1, 32), _15)\n /// @src 44:526:553 \"IGreeter(myAddress).greet()\"\n expr_mpos := memPtr_1\n }\n /// @src 44:197:562 \"contract Middle {...\"\n let memPos := mload(_2)\n return(memPos, sub(abi_encode_string(memPos, expr_mpos), memPos))\n }\n }\n revert(0, 0)\n }\n function finalize_allocation(memPtr, size)\n {\n let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n mstore(64, newFreePtr)\n }\n function array_allocation_size_string(length) -> size\n {\n if gt(length, 0xffffffffffffffff)\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n size := add(and(add(length, 31), not(31)), 0x20)\n }\n function copy_memory_to_memory_with_cleanup(src, dst, length)\n {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n function abi_encode_string(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n let length := mload(value0)\n mstore(add(headStart, 32), length)\n copy_memory_to_memory_with_cleanup(add(value0, 32), add(headStart, 64), length)\n tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n }\n }\n data \".metadata\" hex\"a26469706673582212209f246326f8c7ff4969b718fee6aaa69dd577ca0da481df5e161edd6e211be7ba64736f6c63430008120033\"\n }\n}\n","hash":"0100009f975e5a508190b55d9d3759a38adf5bb1788892741d03c193b1e4ae9e","factoryDependencies":{}}},"contracts/MultiTransfer.sol":{"TokenF2L2":{"abi":[{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_timestamp","type":"uint256"}],"name":"Paid","type":"event"},{"inputs":[],"name":"getBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_recivers","type":"address[]"},{"internalType":"address[]","name":"_tokenAddresses","type":"address[]"},{"internalType":"uint256[]","name":"_tokenAmounts","type":"uint256[]"}],"name":"multiTransfer","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pay","outputs":[],"stateMutability":"payable","type":"function"},{"stateMutability":"payable","type":"receive"}],"metadata":{"optimizer_settings":"M3B3","solc_metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_timestamp\",\"type\":\"uint256\"}],\"name\":\"Paid\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_recivers\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"_tokenAddresses\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_tokenAmounts\",\"type\":\"uint256[]\"}],\"name\":\"multiTransfer\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pay\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/MultiTransfer.sol\":\"TokenF2L2\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xc3d946432c0ddbb1f846a0d3985be71299df331b91d06732152117f62f0be2b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4632c341a06ba5c079b51ca5a915efab4e6ab57735b37839b3e8365ff806a43e\",\"dweb:/ipfs/QmTHT3xHYed2wajEoA5qu7ii2BxLpPhQZHwAhtLK5Z7ANK\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x2ccf9d2313a313d41a791505f2b5abfdc62191b5d4334f7f7a82691c088a1c87\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3a57d0854b2fdce6ebff933a48dca2445643d1eccfc27f00292e937f26c6a58\",\"dweb:/ipfs/QmW45rZooS9TqR4YXUbjRbtf2Bpb5ouSarBvfW1LdGprvV\"]},\"contracts/MultiTransfer.sol\":{\"keccak256\":\"0x2046aab6d0025ecfb84499fb95006d6b8d63260452250318dd357e0e5fa0f632\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a02fb03afbada6bd55504f4f310d05e2a9318d16429c03e94511f36f72a2a059\",\"dweb:/ipfs/QmWgVHkQtRJUEpQ6CwXWA9dkmA54NQLX21MpHvbjy4456X\"]}},\"version\":1}","zk_version":"1.3.9"},"evm":{"legacyAssembly":null,"assembly":"\t.text\n\t.file\t\"MultiTransfer.sol:TokenF2L2\"\n\t.globl\t__entry\n__entry:\n.func_begin0:\n\tadd\tr1, r0, r3\n\tshr.s\t96, r3, r3\n\tand\t@CPI0_0[0], r3, r4\n\tptr.add\tr1, r4, stack[@ptr_return_data]\n\tptr.add\tr1, r0, stack[@ptr_calldata]\n\tand\t@CPI0_0[0], r3, stack[@calldatasize]\n\tadd\t0, r0, stack[@returndatasize]\n\tand!\t1, r2, r1\n\tjump.ne\t@.BB0_1\n\tadd\t128, r0, r2\n\tst.1\t64, r2\n\tadd\tstack[@calldatasize], r0, r3\n\tsub.s!\t4, r3, r1\n\tjump.lt\t@.BB0_18\n\tptr.add\tstack[@ptr_calldata], r0, r1\n\tld\tr1, r4\n\tshr.s\t224, r4, r4\n\tsub.s!\t@CPI0_5[0], r4, r5\n\tjump.gt\t@.BB0_16\n\tsub.s!\t@CPI0_8[0], r4, r1\n\tjump.eq\t@.BB0_19\n\tsub.s!\t@CPI0_9[0], r4, r1\n\tjump.ne\t@.BB0_2\n\tsub.s\t4, r3, r1\n\tadd\t@CPI0_1[0], r0, r2\n\tsub.s!\t0, r1, r3\n\tadd\t0, r0, r3\n\tadd.lt\tr2, r0, r3\n\tand\t@CPI0_1[0], r1, r1\n\tsub.s!\t0, r1, r4\n\tadd.le\t0, r0, r2\n\tsub.s!\t@CPI0_1[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tjump\t@.BB0_23\n.BB0_1:\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tadd\tstack[@calldatasize], r0, r1\n\tadd\t159, r1, r2\n\tsub.s\t32, r0, r3\n\tand\tr2, r3, r2\n\tsub.s!\t127, r2, r3\n\tjump.gt\t@.BB0_5\n.BB0_4:\n\tadd\t@CPI0_11[0], r0, r1\n\tst.1\t0, r1\n\tadd\t65, r0, r1\n\tst.1\t4, r1\n\tadd\t@CPI0_12[0], r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB0_18:\n\tsub.s!\t0, r3, r1\n\tjump.ne\t@.BB0_2\n.BB0_23:\n\tnear_call\tr0, @fun_pay, @DEFAULT_UNWIND\n\tadd\tr0, r0, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_16:\n\tsub.s!\t@CPI0_6[0], r4, r5\n\tjump.eq\t@.BB0_24\n\tsub.s!\t@CPI0_7[0], r4, r4\n\tjump.ne\t@.BB0_2\n\tsub.s\t4, r3, r4\n\tadd\t@CPI0_1[0], r0, r5\n\tsub.s!\t96, r4, r6\n\tadd\t0, r0, r6\n\tadd.lt\tr5, r0, r6\n\tand\t@CPI0_1[0], r4, r4\n\tsub.s!\t0, r4, r7\n\tadd.le\t0, r0, r5\n\tsub.s!\t@CPI0_1[0], r4, r4\n\tadd\tr6, r0, r4\n\tadd.eq\tr5, r0, r4\n\tsub.s!\t0, r4, r4\n\tjump.ne\t@.BB0_2\n\tptr.add.s\t4, r1, r4\n\tld\tr4, r4\n\tsub.s!\t@CPI0_10[0], r4, r5\n\tjump.gt\t@.BB0_2\n\tadd\t35, r4, r5\n\tadd\t@CPI0_1[0], r0, r6\n\tsub!\tr5, r3, r7\n\tadd\t0, r0, r7\n\tadd.ge\tr6, r0, r7\n\tand\t@CPI0_1[0], r3, r8\n\tand\t@CPI0_1[0], r5, r5\n\tsub!\tr5, r8, r9\n\tadd.ge\t0, r0, r6\n\txor\tr5, r8, r5\n\tsub.s!\t@CPI0_1[0], r5, r5\n\tadd\tr7, r0, r5\n\tadd.eq\tr6, r0, r5\n\tsub.s!\t0, r5, r5\n\tjump.ne\t@.BB0_2\n\tadd\t4, r4, r5\n\tptr.add\tr1, r5, r1\n\tld\tr1, r6\n\tsub.s!\t@CPI0_10[0], r6, r1\n\tjump.gt\t@.BB0_4\n\tshl.s\t5, r6, r5\n\tadd\t191, r5, r7\n\tsub.s\t32, r0, r1\n\tand\tr7, r1, r7\n\tsub.s!\t@CPI0_10[0], r7, r8\n\tjump.gt\t@.BB0_4\n\tst.1\t64, r7\n\tst.1\t128, r6\n\tadd\t36, r4, r4\n\tadd\tr5, r4, r5\n\tsub!\tr5, r3, r3\n\tjump.gt\t@.BB0_2\n\tsub.s!\t0, r6, r3\n\tjump.eq\t@.BB0_37\n.BB0_35:\n\tptr.add\tstack[@ptr_calldata], r4, r3\n\tld\tr3, r3\n\tsub.s!\t@CPI0_2[0], r3, r6\n\tjump.gt\t@.BB0_2\n\tadd\t32, r2, r2\n\tst.1\tr2, r3\n\tadd\t32, r4, r4\n\tsub!\tr4, r5, r3\n\tjump.lt\t@.BB0_35\n.BB0_37:\n\tptr.add\tstack[@ptr_calldata], r0, r2\n\tptr.add.s\t36, r2, r3\n\tld\tr3, r3\n\tsub.s!\t@CPI0_10[0], r3, r4\n\tjump.gt\t@.BB0_2\n\tadd\t35, r3, r5\n\tadd\tstack[@calldatasize], r0, r4\n\tadd\t@CPI0_1[0], r0, r6\n\tsub!\tr5, r4, r7\n\tadd\t0, r0, r7\n\tadd.ge\tr6, r0, r7\n\tand\t@CPI0_1[0], r5, r5\n\tand\t@CPI0_1[0], r4, r8\n\tsub!\tr5, r8, r9\n\tadd.ge\t0, r0, r6\n\txor\tr5, r8, r5\n\tsub.s!\t@CPI0_1[0], r5, r5\n\tadd\tr7, r0, r5\n\tadd.eq\tr6, r0, r5\n\tsub.s!\t0, r5, r5\n\tjump.ne\t@.BB0_2\n\tadd\t4, r3, r5\n\tptr.add\tr2, r5, r2\n\tld\tr2, r5\n\tsub.s!\t@CPI0_10[0], r5, r2\n\tjump.gt\t@.BB0_4\n\tshl.s\t5, r5, r6\n\tadd\t63, r6, r2\n\tand\tr2, r1, r7\n\tld.1\t64, r2\n\tadd\tr2, r7, r7\n\tsub!\tr7, r2, r8\n\tadd\t0, r0, r8\n\tadd.lt\t1, r0, r8\n\tsub.s!\t@CPI0_10[0], r7, r9\n\tjump.gt\t@.BB0_4\n\tand!\t1, r8, r8\n\tjump.ne\t@.BB0_4\n\tst.1\t64, r7\n\tst.1\tr2, r5\n\tadd\t36, r3, r3\n\tadd\tr6, r3, r6\n\tsub!\tr6, r4, r4\n\tjump.gt\t@.BB0_2\n\tsub.s!\t0, r5, r4\n\tjump.eq\t@.BB0_47\n\tadd\tr2, r0, r4\n.BB0_45:\n\tptr.add\tstack[@ptr_calldata], r3, r5\n\tld\tr5, r5\n\tsub.s!\t@CPI0_2[0], r5, r7\n\tjump.gt\t@.BB0_2\n\tadd\t32, r4, r4\n\tst.1\tr4, r5\n\tadd\t32, r3, r3\n\tsub!\tr3, r6, r5\n\tjump.lt\t@.BB0_45\n.BB0_47:\n\tptr.add\tstack[@ptr_calldata], r0, r3\n\tptr.add.s\t68, r3, r4\n\tld\tr4, r4\n\tsub.s!\t@CPI0_10[0], r4, r5\n\tjump.gt\t@.BB0_2\n\tadd\t35, r4, r5\n\tadd\tstack[@calldatasize], r0, r6\n\tadd\t@CPI0_1[0], r0, r7\n\tsub!\tr5, r6, r8\n\tadd\t0, r0, r8\n\tadd.ge\tr7, r0, r8\n\tand\t@CPI0_1[0], r6, r6\n\tand\t@CPI0_1[0], r5, r5\n\tsub!\tr5, r6, r9\n\tadd.ge\t0, r0, r7\n\txor\tr5, r6, r5\n\tsub.s!\t@CPI0_1[0], r5, r5\n\tadd\tr8, r0, r5\n\tadd.eq\tr7, r0, r5\n\tsub.s!\t0, r5, r5\n\tjump.ne\t@.BB0_2\n\tadd\t4, r4, r5\n\tptr.add\tr3, r5, r3\n\tld\tr3, r5\n\tsub.s!\t@CPI0_10[0], r5, r3\n\tjump.gt\t@.BB0_4\n\tshl.s\t5, r5, r6\n\tadd\t63, r6, r3\n\tand\tr3, r1, r1\n\tld.1\t64, r3\n\tadd\tr3, r1, r1\n\tsub!\tr1, r3, r7\n\tadd\t0, r0, r7\n\tadd.lt\t1, r0, r7\n\tsub.s!\t@CPI0_10[0], r1, r8\n\tjump.gt\t@.BB0_4\n\tand!\t1, r7, r7\n\tjump.ne\t@.BB0_4\n\tst.1\t64, r1\n\tst.1\tr3, r5\n\tadd\t36, r4, r1\n\tadd\tr6, r1, r4\n\tadd\tstack[@calldatasize], r0, r6\n\tsub!\tr4, r6, r6\n\tjump.gt\t@.BB0_2\n\tsub.s!\t0, r5, r5\n\tjump.eq\t@.BB0_56\n\tadd\tr3, r0, r5\n.BB0_55:\n\tptr.add\tstack[@ptr_calldata], r1, r6\n\tld\tr6, r6\n\tadd\t32, r5, r5\n\tst.1\tr5, r6\n\tadd\t32, r1, r1\n\tsub!\tr1, r4, r6\n\tjump.lt\t@.BB0_55\n.BB0_56:\n\tadd\t128, r0, r1\n\tnear_call\tr0, @modifier_onlyOwner, @DEFAULT_UNWIND\n\tadd\tr0, r0, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_5:\n\tst.1\t64, r2\n\tand\t31, r1, r2\n\tptr.add\tstack[@ptr_calldata], r0, r3\n\tshr.s!\t5, r1, r4\n\tjump.eq\t@.BB0_57\n\tadd\tr0, r0, r5\n.BB0_7:\n\tshl.s\t5, r5, r6\n\tptr.add\tr3, r6, r7\n\tld\tr7, r7\n\tadd\t128, r6, r6\n\tst.1\tr6, r7\n\tadd\t1, r5, r5\n\tsub!\tr5, r4, r6\n\tjump.lt\t@.BB0_7\n.BB0_57:\n\tsub.s!\t0, r2, r5\n\tjump.eq\t@.BB0_9\n\tshl.s\t5, r4, r4\n\tptr.add\tr3, r4, r3\n\tshl.s\t3, r2, r2\n\tadd\t128, r4, r4\n\tld.1\tr4, r5\n\tshl\tr5, r2, r5\n\tshr\tr5, r2, r5\n\tld\tr3, r3\n\tsub\t256, r2, r2\n\tshr\tr3, r2, r3\n\tshl\tr3, r2, r2\n\tor\tr2, r5, r2\n\tst.1\tr4, r2\n.BB0_9:\n\tadd\t@CPI0_1[0], r0, r2\n\tsub.s!\t32, r1, r3\n\tadd\t0, r0, r3\n\tadd.lt\tr2, r0, r3\n\tand\t@CPI0_1[0], r1, r1\n\tsub.s!\t0, r1, r4\n\tadd.le\t0, r0, r2\n\tsub.s!\t@CPI0_1[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tld.1\t128, r1\n\tsub.s!\t@CPI0_2[0], r1, r2\n\tjump.gt\t@.BB0_2\n\tsload\tr0, r2\n\tand\t@CPI0_3[0], r2, r2\n\tor\tr2, r1, r1\n\tsstore\tr0, r1\n\tadd\t32, r0, r1\n\tst.2\t256, r1\n\tst.2\t288, r0\n\tadd\t@CPI0_4[0], r0, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_19:\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tsub.s\t4, r0, r1\n\tadd\tstack[@calldatasize], r1, r1\n\tadd\t@CPI0_1[0], r0, r2\n\tsub.s!\t0, r1, r3\n\tadd\t0, r0, r3\n\tadd.lt\tr2, r0, r3\n\tand\t@CPI0_1[0], r1, r1\n\tsub.s!\t0, r1, r4\n\tadd.le\t0, r0, r2\n\tsub.s!\t@CPI0_1[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tadd\t@CPI0_14[0], r0, r1\n\tst.2\t0, r1\n\tcontext.this\tr1\n\tst.2\t4, r1\n\tadd\t32778, r0, r1\n\tadd\t36, r0, r2\n\tnear_call\tr0, @__system_request, @DEFAULT_UNWIND\n\tst.1\t128, r1\n\tadd\t@CPI0_15[0], r0, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_24:\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tsub.s\t4, r0, r1\n\tadd\tstack[@calldatasize], r1, r1\n\tadd\t@CPI0_1[0], r0, r2\n\tsub.s!\t0, r1, r3\n\tadd\t0, r0, r3\n\tadd.lt\tr2, r0, r3\n\tand\t@CPI0_1[0], r1, r1\n\tsub.s!\t0, r1, r4\n\tadd.le\t0, r0, r2\n\tsub.s!\t@CPI0_1[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.eq\t@.BB0_26\n.BB0_2:\n\tadd\tr0, r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB0_26:\n\tsload\tr0, r1\n\tand\t@CPI0_2[0], r1, r1\n\tld.1\t64, r2\n\tst.1\tr2, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI0_13[0], r1, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.func_end0:\n\n__system_request:\n.func_begin1:\n\tadd\tr1, r0, r3\n\tadd\t@CPI1_0[0], r0, r1\n\tcontext.gas_left\tr4\n\tsub.s!\t@CPI1_0[0], r4, r5\n\tadd.lt\tr4, r0, r1\n\tshl.s\t192, r1, r1\n\tshl.s\t96, r2, r2\n\tadd\tr2, r1, r1\n\tadd\t@CPI1_1[0], r1, r1\n\tadd\tr3, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB1_2\n\tld\tr1, r1\n\tret\n.BB1_2:\n\tadd\tr0, r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.func_end1:\n\nfun_pay:\n.func_begin2:\n\tnop\tstack+=[2]\n\tld.1\t64, r2\n\tcontext.get_context_u128\tr1\n\tadd\tr2, r0, stack-[2]\n\tst.1.inc\tr2, r1, r1\n\tadd\tr1, r0, stack-[1]\n\tadd\t@CPI2_0[0], r0, r1\n\tst.2\t0, r1\n\tadd\t@CPI2_1[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI2_1[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI2_2[0], r1, r1\n\tadd\t32779, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB2_1\n\tld\tr1, r1\n\tadd\tstack-[1], r0, r2\n\tst.1\tr2, r1\n\tadd\t@CPI2_1[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI2_1[0], r2, r3\n\tadd.ge\tr1, r0, r2\n\tadd\tstack-[2], r0, r4\n\tsub.s!\t@CPI2_1[0], r4, r3\n\tadd.lt\tr4, r0, r1\n\tshl.s\t64, r1, r1\n\tshl.s\t192, r2, r2\n\tor\tr2, r1, r1\n\tor\t@CPI2_3[0], r1, r1\n\tadd\t32781, r0, r2\n\tadd\t2, r0, r3\n\tadd\t@CPI2_4[0], r0, r4\n\tcontext.caller\tr5\n\tnear_call\tr0, @__farcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r1\n\tjump.eq\t@.BB2_1\n\tret\n.BB2_1:\n\tadd\tr0, r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.func_end2:\n\nmodifier_onlyOwner:\n.func_begin3:\n\tnop\tstack+=[11]\n\tsload\tr0, r4\n\tand\t@CPI3_0[0], r4, r5\n\tcontext.caller\tr4\n\tsub!\tr5, r4, r4\n\tjump.ne\t@.BB3_1\n\tld.1\tr2, r5\n\tld.1\tr3, r4\n\tsub!\tr5, r4, r4\n\tjump.ne\t@.BB3_3\n\tld.1\tr1, r4\n\tsub!\tr5, r4, r4\n\tjump.ne\t@.BB3_3\n\tsub.s!\t0, r5, r4\n\tjump.eq\t@.BB3_7\n\tcontext.this\tr4\n\tadd\tr4, r0, stack-[2]\n\tadd\t32778, r0, r4\n\tadd\tr4, r0, stack-[1]\n\tadd\tr0, r0, r10\n\tadd\tr3, r0, stack-[9]\n\tadd\tr2, r0, stack-[8]\n\tadd\tr1, r0, stack-[7]\n\tjump\t@.BB3_8\n.BB3_57:\n\tand!\t1, r2, r1\n\tjump.eq\t@.BB3_60\n.BB3_9:\n\tadd\t1, r10, r10\n\tadd\tstack-[8], r0, r2\n\tld.1\tr2, r1\n\tsub!\tr10, r1, r1\n\tadd\tstack-[9], r0, r3\n\tadd\tstack-[7], r0, r1\n\tjump.ge\t@.BB3_7\n.BB3_8:\n\tld.1\tr1, r5\n\tshl.s\t5, r10, r4\n\tadd\t32, r4, r6\n\tadd\tr6, r2, r4\n\tld.1\tr4, r4\n\tand!\t@CPI3_0[0], r4, r4\n\tadd\tr10, r0, stack-[11]\n\tjump.eq\t@.BB3_42\n\tsub!\tr5, r10, r2\n\tjump.le\t@.BB3_11\n\tld.1\tr3, r2\n\tsub!\tr2, r10, r2\n\tjump.le\t@.BB3_11\n\tadd\tr6, r3, r2\n\tadd\tr6, r1, r1\n\tld.1\tr1, r1\n\tld.1\tr2, r2\n\tld.1\t64, r5\n\tadd\t68, r5, r3\n\tst.1\tr3, r2\n\tadd\t32, r5, r3\n\tadd\t@CPI3_6[0], r0, r2\n\tadd\tr3, r0, stack-[6]\n\tst.1\tr3, r2\n\tand\t@CPI3_0[0], r1, r1\n\tadd\t36, r5, r2\n\tst.1\tr2, r1\n\tadd\t68, r0, r1\n\tst.1\tr5, r1\n\tsub.s!\t@CPI3_7[0], r5, r1\n\tjump.ge\t@.BB3_14\n\tadd\t128, r5, r2\n\tst.1\t64, r2\n\tsub.s!\t@CPI3_8[0], r5, r1\n\tjump.gt\t@.BB3_14\n\tadd\t192, r5, r1\n\tst.1\t64, r1\n\tadd\t32, r0, r1\n\tadd\tr1, r0, stack-[4]\n\tadd\tr2, r0, stack-[3]\n\tst.1\tr2, r1\n\tadd\tr5, r0, stack-[5]\n\tadd\t160, r5, r1\n\tadd\t@CPI3_9[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t@CPI3_10[0], r0, r1\n\tst.2\t0, r1\n\tadd\tr4, r0, stack-[10]\n\tst.2\t4, r4\n\tadd\t@CPI3_3[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI3_3[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI3_11[0], r1, r1\n\tadd\t32770, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tadd\tstack-[11], r0, r10\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB3_17\n\tld\tr1, r1\n\tsub.s!\t0, r1, r1\n\tjump.eq\t@.BB3_19\n\tcontext.gas_left\tr1\n\tadd\tstack-[10], r0, r2\n\tsub.s!\t4, r2, r3\n\tjump.ne\t@.BB3_21\n\tadd\t1, r0, r2\n\tadd\tstack[@returndatasize], r0, r3\n\tjump\t@.BB3_23\n.BB3_42:\n\tsub!\tr5, r10, r2\n\tjump.le\t@.BB3_11\n\tadd\tr6, r1, r2\n\tld.1\tr2, r2\n\tand\t@CPI3_0[0], r2, r1\n\tadd\tr1, r0, stack-[10]\n\tld.1\tr3, r2\n\tsub!\tr2, r10, r2\n\tjump.le\t@.BB3_11\n\tadd\tr6, r3, r1\n\tld.1\tr1, r1\n\tadd\tr1, r0, stack-[6]\n\tadd\t@CPI3_20[0], r0, r1\n\tst.2\t0, r1\n\tadd\tstack-[2], r0, r1\n\tst.2\t4, r1\n\tadd\t@CPI3_3[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI3_3[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI3_11[0], r1, r1\n\tadd\tstack-[1], r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tadd\tstack-[11], r0, r10\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB3_17\n\tld\tr1, r1\n\tadd\tstack-[6], r0, r3\n\tsub!\tr1, r3, r1\n\tadd\tstack-[10], r0, r4\n\tjump.lt\t@.BB3_46\n\tcontext.gas_left\tr1\n\tsub.s!\t4, r4, r2\n\tjump.ne\t@.BB3_48\n\tadd\t1, r0, r2\n\tadd\tstack[@returndatasize], r0, r1\n\tjump\t@.BB3_50\n.BB3_21:\n\tadd\t@CPI3_3[0], r0, r6\n\tadd\tstack-[6], r0, r4\n\tsub.s!\t@CPI3_3[0], r4, r3\n\tadd\tr6, r0, r3\n\tadd.lt\tr4, r0, r3\n\tshl.s\t64, r3, r3\n\tadd\tstack-[5], r0, r4\n\tld.1\tr4, r4\n\tsub.s!\t@CPI3_3[0], r4, r5\n\tadd.ge\tr6, r0, r4\n\tshl.s\t96, r4, r4\n\tor\tr4, r3, r3\n\tsub.s!\t@CPI3_3[0], r1, r4\n\tadd.ge\tr6, r0, r1\n\tshl.s\t192, r1, r1\n\tor\tr3, r1, r1\n\tnear_call\tr0, @__farcall, @DEFAULT_UNWIND\n\tadd\tstack-[11], r0, r10\n\tand\t1, r2, r2\n\tptr.add\tr1, r0, stack[@ptr_return_data]\n\tshr.s\t96, r1, r1\n\tand\t@CPI3_3[0], r1, stack[@returndatasize]\n\tand\t@CPI3_3[0], r1, r3\n.BB3_23:\n\tadd\t96, r0, r1\n\tsub.s!\t0, r3, r4\n\tjump.eq\t@.BB3_30\n\tadd\t63, r3, r1\n\tsub.s\t32, r0, r4\n\tand\tr1, r4, r4\n\tld.1\t64, r1\n\tadd\tr1, r4, r4\n\tsub!\tr4, r1, r5\n\tadd\t0, r0, r5\n\tadd.lt\t1, r0, r5\n\tsub.s!\t@CPI3_12[0], r4, r6\n\tjump.gt\t@.BB3_14\n\tand!\t1, r5, r5\n\tjump.ne\t@.BB3_14\n\tst.1\t64, r4\n\tst.1.inc\tr1, r3, r3\n\tptr.add\tstack[@ptr_return_data], r0, r4\n\tadd\tstack[@returndatasize], r0, r6\n\tshr.s!\t5, r6, r5\n\tjump.eq\t@.BB3_62\n\tadd\tr0, r0, r7\n.BB3_28:\n\tshl.s\t5, r7, r8\n\tadd\tr3, r8, r9\n\tptr.add\tr4, r8, r8\n\tld\tr8, r8\n\tst.1\tr9, r8\n\tadd\t1, r7, r7\n\tsub!\tr7, r5, r8\n\tjump.lt\t@.BB3_28\n.BB3_62:\n\tand!\t31, r6, r6\n\tjump.eq\t@.BB3_30\n\tshl.s\t5, r5, r5\n\tptr.add\tr4, r5, r4\n\tadd\tr3, r5, r3\n\tshl.s\t3, r6, r5\n\tld.1\tr3, r6\n\tshl\tr6, r5, r6\n\tshr\tr6, r5, r6\n\tld\tr4, r4\n\tsub\t256, r5, r5\n\tshr\tr4, r5, r4\n\tshl\tr4, r5, r4\n\tor\tr4, r6, r4\n\tst.1\tr3, r4\n.BB3_30:\n\tld.1.inc\tr1, r3, r1\n\tsub.s!\t0, r2, r2\n\tjump.eq\t@.BB3_31\n\tsub.s!\t0, r3, r2\n\tjump.eq\t@.BB3_9\n\tadd\t@CPI3_13[0], r0, r2\n\tsub.s!\t32, r3, r4\n\tadd\t0, r0, r4\n\tadd.lt\tr2, r0, r4\n\tand\t@CPI3_13[0], r3, r3\n\tsub.s!\t0, r3, r5\n\tadd.le\t0, r0, r2\n\tsub.s!\t@CPI3_13[0], r3, r3\n\tadd.ne\tr4, r0, r2\n\tsub.s!\t0, r2, r2\n\tjump.ne\t@.BB3_17\n\tld.1\tr1, r1\n\tsub.s!\t0, r1, r2\n\tadd\t0, r0, r2\n\tadd.ne\t1, r0, r2\n\tsub!\tr1, r2, r2\n\tjump.ne\t@.BB3_17\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB3_9\n\tjump\t@.BB3_41\n.BB3_48:\n\tadd\t@CPI3_3[0], r0, r2\n\tsub.s!\t@CPI3_3[0], r1, r5\n\tadd.ge\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tsub.s!\t0, r3, r2\n\tjump.eq\t@.BB3_58\n\tor\t@CPI3_21[0], r1, r1\n\tadd\t32777, r0, r2\n\tadd\tr0, r0, r5\n\tnear_call\tr0, @__farcall, @DEFAULT_UNWIND\n\tptr.add\tr1, r0, stack[@ptr_return_data]\n\tshr.s\t96, r1, r1\n\tand\t@CPI3_3[0], r1, stack[@returndatasize]\n\tand\t@CPI3_3[0], r1, r1\n\tadd\tstack-[11], r0, r10\n\tjump\t@.BB3_50\n.BB3_58:\n\tadd\tr4, r0, r2\n\tnear_call\tr0, @__farcall, @DEFAULT_UNWIND\n\tptr.add\tr1, r0, stack[@ptr_return_data]\n\tshr.s\t96, r1, r1\n\tand\t@CPI3_3[0], r1, stack[@returndatasize]\n\tand\t@CPI3_3[0], r1, r1\n\tadd\tstack-[11], r0, r10\n.BB3_50:\n\tsub.s!\t0, r1, r3\n\tjump.eq\t@.BB3_57\n\tadd\t63, r1, r3\n\tsub.s\t32, r0, r4\n\tand\tr3, r4, r4\n\tld.1\t64, r3\n\tadd\tr3, r4, r4\n\tsub!\tr4, r3, r5\n\tadd\t0, r0, r5\n\tadd.lt\t1, r0, r5\n\tsub.s!\t@CPI3_12[0], r4, r6\n\tjump.gt\t@.BB3_14\n\tand!\t1, r5, r5\n\tjump.ne\t@.BB3_14\n\tst.1\t64, r4\n\tst.1.inc\tr3, r1, r1\n\tptr.add\tstack[@ptr_return_data], r0, r3\n\tadd\tstack[@returndatasize], r0, r5\n\tshr.s!\t5, r5, r4\n\tjump.eq\t@.BB3_61\n\tadd\tr0, r0, r6\n.BB3_55:\n\tshl.s\t5, r6, r7\n\tadd\tr1, r7, r8\n\tptr.add\tr3, r7, r7\n\tld\tr7, r7\n\tst.1\tr8, r7\n\tadd\t1, r6, r6\n\tsub!\tr6, r4, r7\n\tjump.lt\t@.BB3_55\n.BB3_61:\n\tand!\t31, r5, r5\n\tjump.eq\t@.BB3_57\n\tshl.s\t5, r4, r4\n\tptr.add\tr3, r4, r3\n\tadd\tr1, r4, r1\n\tshl.s\t3, r5, r4\n\tld.1\tr1, r5\n\tshl\tr5, r4, r5\n\tshr\tr5, r4, r5\n\tld\tr3, r3\n\tsub\t256, r4, r4\n\tshr\tr3, r4, r3\n\tshl\tr3, r4, r3\n\tor\tr3, r5, r3\n\tst.1\tr1, r3\n\tjump\t@.BB3_57\n.BB3_7:\n\tret\n.BB3_11:\n\tadd\t@CPI3_18[0], r0, r1\n\tst.1\t0, r1\n\tadd\t50, r0, r1\n\tst.1\t4, r1\n\tadd\t@CPI3_19[0], r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB3_14:\n\tadd\t@CPI3_18[0], r0, r1\n\tst.1\t0, r1\n\tadd\t65, r0, r1\n\tst.1\t4, r1\n\tadd\t@CPI3_19[0], r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB3_17:\n\tadd\tr0, r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB3_19:\n\tld.1\t64, r1\n\tadd\t68, r1, r2\n\tadd\t@CPI3_17[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t29, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI3_2[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\tstack-[4], r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI3_3[0], r0, r2\n\tsub.s!\t@CPI3_3[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI3_4[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB3_31:\n\tsub.s!\t0, r3, r2\n\tjump.ne\t@.BB3_36\n\tld.1\t64, r1\n\tadd\t@CPI3_2[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\tstack-[4], r0, r3\n\tst.1\tr2, r3\n\tadd\tstack-[3], r0, r7\n\tld.1\tr7, r2\n\tadd\t36, r1, r3\n\tst.1\tr3, r2\n\tadd\t68, r1, r3\n\tsub.s!\t0, r2, r4\n\tjump.eq\t@.BB3_35\n\tadd\tr0, r0, r4\n.BB3_34:\n\tadd\tr4, r3, r5\n\tadd\t32, r4, r4\n\tadd\tr4, r7, r6\n\tld.1\tr6, r6\n\tst.1\tr5, r6\n\tsub!\tr4, r2, r5\n\tjump.lt\t@.BB3_34\n.BB3_35:\n\tadd\t31, r2, r4\n\tsub.s\t32, r0, r5\n\tand\tr4, r5, r4\n\tadd\tr2, r3, r2\n\tst.1\tr2, r0\n\tadd\t68, r4, r2\n\tadd\t@CPI3_3[0], r0, r3\n\tsub.s!\t@CPI3_3[0], r2, r4\n\tadd.ge\tr3, r0, r2\n\tsub.s!\t@CPI3_3[0], r1, r4\n\tadd.ge\tr3, r0, r1\n\tshl.s\t64, r1, r1\n\tshl.s\t96, r2, r2\n\tor\tr2, r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB3_41:\n\tld.1\t64, r1\n\tadd\t100, r1, r2\n\tadd\t@CPI3_14[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t68, r1, r2\n\tadd\t@CPI3_15[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t42, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI3_2[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\tstack-[4], r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI3_3[0], r0, r2\n\tsub.s!\t@CPI3_3[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI3_16[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB3_60:\n\tld.1\t64, r1\n\tadd\t100, r1, r2\n\tadd\t@CPI3_22[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t68, r1, r2\n\tadd\t@CPI3_23[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t58, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI3_2[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI3_3[0], r0, r2\n\tsub.s!\t@CPI3_3[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI3_16[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB3_46:\n\tld.1\t64, r1\n\tadd\t68, r1, r2\n\tadd\t@CPI3_24[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t29, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI3_2[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI3_3[0], r0, r2\n\tsub.s!\t@CPI3_3[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI3_4[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB3_36:\n\tadd\t@CPI3_3[0], r0, r2\n\tsub.s!\t@CPI3_3[0], r1, r4\n\tadd.ge\tr2, r0, r1\n\tsub.s!\t@CPI3_3[0], r3, r4\n\tadd.lt\tr3, r0, r2\n\tshl.s\t96, r2, r2\n\tshl.s\t64, r1, r1\n\tor\tr2, r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB3_3:\n\tld.1\t64, r1\n\tadd\t68, r1, r2\n\tadd\t@CPI3_5[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI3_2[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t36, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t4, r1, r2\n\tst.1\tr2, r3\n\tadd\t@CPI3_3[0], r0, r2\n\tsub.s!\t@CPI3_3[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI3_4[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB3_1:\n\tld.1\t64, r1\n\tadd\t68, r1, r2\n\tadd\t@CPI3_1[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t21, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI3_2[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI3_3[0], r0, r2\n\tsub.s!\t@CPI3_3[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI3_4[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.func_end3:\n\n__farcall:\n.func_begin4:\n.tmp0:\n\tfar_call\tr1, r2, @.BB4_2\n.tmp1:\n\tadd\t1, r0, r2\n\tret\n.BB4_2:\n.tmp2:\n\tadd\tr0, r0, r2\n\tret\n.func_end4:\n\n__staticcall:\n.func_begin5:\n.tmp3:\n\tfar_call.static\tr1, r2, @.BB5_2\n.tmp4:\n\tadd\t1, r0, r2\n\tret\n.BB5_2:\n.tmp5:\n\tadd\tr0, r0, r2\n\tret\n.func_end5:\n\n\t.data\n\t.p2align\t5\ncalldatasize:\n\t.cell 0\n\n\t.p2align\t5\nreturndatasize:\n\t.cell 0\n\n\t.p2align\t5\nptr_calldata:\n.cell\t0\n\n\t.p2align\t5\nptr_return_data:\n.cell\t0\n\n\t.note.GNU-stack\n\t.rodata\nCPI0_0:\nCPI1_0:\nCPI2_1:\nCPI3_3:\n\t.cell 4294967295\nCPI0_1:\nCPI3_13:\n\t.cell -57896044618658097711785492504343953926634992332820282019728792003956564819968\nCPI0_2:\nCPI3_0:\n\t.cell 1461501637330902918203684832716283019655932542975\nCPI0_3:\n\t.cell -1461501637330902918203684832716283019655932542976\nCPI0_4:\n\t.cell 53919893334301279589334030174039261352344891250716429051063678533632\nCPI0_5:\n\t.cell 2376452954\nCPI0_6:\n\t.cell 2376452955\nCPI0_7:\n\t.cell 3446809869\nCPI0_8:\n\t.cell 302407648\nCPI0_9:\n\t.cell 462579128\nCPI0_10:\nCPI3_12:\n\t.cell 18446744073709551615\nCPI0_11:\nCPI3_18:\n\t.cell 35408467139433450592217433187231851964531694900788300625387963629091585785856\nCPI0_12:\nCPI3_19:\n\t.cell 2852213850513516153367582212096\nCPI0_13:\n\t.cell 2535301200456458802993406410752\nCPI0_14:\nCPI3_20:\n\t.cell -44877977326897262784168444354156441158329539312518651612887364914072161059015\nCPI0_15:\n\t.cell 2535301202817642044428229017600\nCPI1_1:\n\t.cell 904625751086426111047927909714404454142933102474605751639407337269041823744\nCPI2_0:\n\t.cell 54919857843691310904240101001871775513466943666296306094405906504622902841650\nCPI2_2:\n\t.cell 904625751086426111047927909714404454142933102791518401696464687643217625088\nCPI2_3:\n\t.cell 904625697166532776746648320380374280103671760270919307471179981048634146816\nCPI2_4:\n\t.cell -14653670012406101294435396636327784612105231730046099387718256926305909157328\nCPI3_1:\n\t.cell 40452771925404328746644494035504535188453662587760160166803912829437413949440\nCPI3_2:\n\t.cell 3963877391197344453575983046348115674221700746820753546331534351508065746944\nCPI3_4:\n\t.cell 7922816251426433759354395033600\nCPI3_5:\n\t.cell 29602545150285559552742193593630177768799632282521423916689046204346140161128\nCPI3_6:\n\t.cell -39341301877480157781710804024396230103289065588583741745104145964028735258624\nCPI3_7:\n\t.cell 18446744073709551488\nCPI3_8:\n\t.cell 18446744073709551423\nCPI3_9:\n\t.cell 37714057306076988483118529490347679105585116642029194716945419020321082336612\nCPI3_10:\n\t.cell 10867283408178898638301172343726954674910073630256871736220740970449699113859\nCPI3_11:\n\t.cell 904625751086426111047927909714404454142933105326819602152923490636624035840\nCPI3_14:\n\t.cell 50411904420896249798390057088552747694053213439589473829759729709664159399936\nCPI3_15:\n\t.cell 37714057306076988483118529433182395293628422681814405642689417129066110394478\nCPI3_16:\n\t.cell 10458117451882892562347801444352\nCPI3_17:\n\t.cell 29577713123142787666064487680123823951345158729797978021083438401868913442816\nCPI3_21:\n\t.cell 904625697166532776746648320380374280103671755200316906558262375061821325312\nCPI3_22:\n\t.cell 45859243280302922111798473445315618765294229552794349084811014972219968192512\nCPI3_23:\n\t.cell 29577713123142787666066216585352832718387704262830617199261620224463112773746\nCPI3_24:\n\t.cell 29577713123142787666065067240112549905804921883822091486361548830754339815424\n","bytecode":{"object":"000400000000000200000000030100190000006003300270000000e00430019700030000004103550002000000010355000000e00030019d000100000000001f0000000101200190000000260000c13d0000008002000039000000400020043f0000000003000031000000040130008c000000350000413d0000000201000367000000000401043b000000e004400270000000e50540009c0000003a0000213d000000e80140009c000001220000613d000000e90140009c0000014e0000c13d000000040130008a000000e102000041000000000310004c00000000030000190000000003024019000000e101100197000000000410004c000000000200a019000000e10110009c00000000010300190000000001026019000000000110004c0000014e0000c13d000000370000013d0000000001000416000000000110004c0000014e0000c13d00000000010000310000009f02100039000000200300008a000000000232016f0000007f0320008c000000ed0000213d000000eb0100004100000000001004350000004101000039000000040010043f000000ec010000410000037e00010430000000000130004c0000014e0000c13d037c016b0000040f00000000010000190000037d0001042e000000e60540009c0000013d0000613d000000e70440009c0000014e0000c13d000000040430008a000000e105000041000000600640008c00000000060000190000000006054019000000e104400197000000000740004c000000000500a019000000e10440009c00000000040600190000000004056019000000000440004c0000014e0000c13d0000000404100370000000000404043b000000ea0540009c0000014e0000213d0000002305400039000000e106000041000000000735004b00000000070000190000000007068019000000e108300197000000e105500197000000000985004b0000000006008019000000000585013f000000e10550009c00000000050700190000000005066019000000000550004c0000014e0000c13d0000000405400039000000000151034f000000000601043b000000ea0160009c0000002f0000213d0000000505600210000000bf07500039000000200100008a000000000717016f000000ea0870009c0000002f0000213d000000400070043f000000800060043f00000024044000390000000005450019000000000335004b0000014e0000213d000000000360004c0000007a0000613d0000000203400367000000000303043b000000e20630009c0000014e0000213d000000200220003900000000003204350000002004400039000000000354004b000000710000413d00000002020003670000002403200370000000000303043b000000ea0430009c0000014e0000213d00000023053000390000000004000031000000e106000041000000000745004b00000000070000190000000007068019000000e105500197000000e108400197000000000985004b0000000006008019000000000585013f000000e10550009c00000000050700190000000005066019000000000550004c0000014e0000c13d0000000405300039000000000252034f000000000502043b000000ea0250009c0000002f0000213d00000005065002100000003f02600039000000000712016f000000400200043d0000000007720019000000000827004b00000000080000190000000108004039000000ea0970009c0000002f0000213d00000001088001900000002f0000c13d000000400070043f000000000052043500000024033000390000000006360019000000000446004b0000014e0000213d000000000450004c000000b20000613d00000000040200190000000205300367000000000505043b000000e20750009c0000014e0000213d000000200440003900000000005404350000002003300039000000000563004b000000a90000413d00000002030003670000004404300370000000000404043b000000ea0540009c0000014e0000213d00000023054000390000000006000031000000e107000041000000000865004b00000000080000190000000008078019000000e106600197000000e105500197000000000965004b0000000007008019000000000565013f000000e10550009c00000000050800190000000005076019000000000550004c0000014e0000c13d0000000405400039000000000353034f000000000503043b000000ea0350009c0000002f0000213d00000005065002100000003f03600039000000000113016f000000400300043d0000000001130019000000000731004b00000000070000190000000107004039000000ea0810009c0000002f0000213d00000001077001900000002f0000c13d000000400010043f0000000000530435000000240140003900000000041600190000000006000031000000000664004b0000014e0000213d000000000550004c000000e90000613d00000000050300190000000206100367000000000606043b000000200550003900000000006504350000002001100039000000000641004b000000e20000413d0000008001000039037c01950000040f00000000010000190000037d0001042e000000400020043f0000001f0210018f00000002030003670000000504100272000000fb0000613d00000000050000190000000506500210000000000763034f000000000707043b000000800660003900000000007604350000000105500039000000000645004b000000f30000413d000000000520004c0000010a0000613d0000000504400210000000000343034f00000003022002100000008004400039000000000504043300000000052501cf000000000525022f000000000303043b0000010002200089000000000323022f00000000022301cf000000000252019f0000000000240435000000e102000041000000200310008c00000000030000190000000003024019000000e101100197000000000410004c000000000200a019000000e10110009c00000000010300190000000001026019000000000110004c0000014e0000c13d000000800100043d000000e20210009c0000014e0000213d000000000200041a000000e302200197000000000112019f000000000010041b000000200100003900000100001004430000012000000443000000e4010000410000037d0001042e0000000001000416000000000110004c0000014e0000c13d000000040100008a0000000001100031000000e102000041000000000310004c00000000030000190000000003024019000000e101100197000000000410004c000000000200a019000000e10110009c00000000010300190000000001026019000000000110004c0000014e0000c13d000000ee010000410000000000100439000000000100041000000004001004430000800a010000390000002402000039037c015a0000040f000000800010043f000000ef010000410000037d0001042e0000000001000416000000000110004c0000014e0000c13d000000040100008a0000000001100031000000e102000041000000000310004c00000000030000190000000003024019000000e101100197000000000410004c000000000200a019000000e10110009c00000000010300190000000001026019000000000110004c000001500000613d00000000010000190000037e00010430000000000100041a000000e201100197000000400200043d0000000000120435000000e001000041000000e00320009c00000000010240190000004001100210000000ed011001c70000037d0001042e0000000003010019000000e0010000410000000004000414000000e00540009c0000000001044019000000c00110021000000060022002100000000001120019000000f0011000410000000002030019037c03770000040f0000000102200190000001690000613d000000000101043b000000000001042d00000000010000190000037e000104300002000000000002000000400200043d0000000001000416000200000002001d0000000001120436000100000001001d000000f1010000410000000000100439000000e0010000410000000002000414000000e00320009c0000000001024019000000c001100210000000f2011001c70000800b02000039037c03770000040f0000000102200190000001930000613d000000000101043b00000001020000290000000000120435000000e0010000410000000002000414000000e00320009c00000000020180190000000204000029000000e00340009c00000000010440190000004001100210000000c002200210000000000112019f000000f3011001c70000800d020000390000000203000039000000f4040000410000000005000411037c03720000040f0000000101200190000001930000613d000000000001042d00000000010000190000037e00010430000b000000000002000000000400041a000000e2054001970000000004000411000000000445004b000003600000c13d00000000050204330000000004030433000000000445004b0000034f0000c13d0000000004010433000000000445004b0000034f0000c13d000000000450004c000002c30000613d0000000004000410000200000004001d0000800a04000039000100000004001d000000000a000019000900000003001d000800000002001d000700000001001d000001b60000013d00000001012001900000031f0000613d000000010aa000390000000802000029000000000102043300000000011a004b00000009030000290000000701000029000002c30000813d00000000050104330000000504a00210000000200640003900000000042600190000000004040433000000e204400198000b0000000a001d000001fc0000613d0000000002a5004b000002c40000a13d00000000020304330000000002a2004b000002c40000a13d0000000002360019000000000116001900000000010104330000000002020433000000400500043d000000440350003900000000002304350000002003500039000000f902000041000600000003001d0000000000230435000000e2011001970000002402500039000000000012043500000044010000390000000000150435000000fa0150009c000002ca0000813d0000008002500039000000400020043f000000fb0150009c000002ca0000213d000000c001500039000000400010043f0000002001000039000400000001001d000300000002001d0000000000120435000500000005001d000000a001500039000000fc020000410000000000210435000000fd010000410000000000100439000a00000004001d0000000400400443000000e0010000410000000002000414000000e00320009c0000000001024019000000c001100210000000fe011001c70000800202000039037c03770000040f0000000b0a0000290000000102200190000002d00000613d000000000101043b000000000110004c000002d20000613d00000000010004140000000a02000029000000040320008c000002220000c13d00000001020000390000000103000031000002390000013d0000000002a5004b000002c40000a13d00000000021600190000000002020433000000e201200197000a00000001001d00000000020304330000000002a2004b000002c40000a13d00000000013600190000000001010433000600000001001d000000ee01000041000000000010043900000002010000290000000400100443000000e0010000410000000002000414000000e00320009c0000000001024019000000c001100210000000fe011001c70000000102000029037c03770000040f0000000b0a0000290000000102200190000002d00000613d000000000101043b0000000603000029000000000131004b0000000a04000029000003340000413d0000000001000414000000040240008c0000027f0000c13d00000001020000390000000101000031000002960000013d000000e0060000410000000604000029000000e00340009c00000000030600190000000003044019000000400330021000000005040000290000000004040433000000e00540009c00000000040680190000006004400210000000000334019f000000e00410009c0000000001068019000000c001100210000000000113019f037c03720000040f0000000b0a000029000000010220018f00030000000103550000006001100270000100e00010019d000000e0031001970000006001000039000000000430004c000002660000613d0000003f01300039000000200400008a000000000441016f000000400100043d0000000004410019000000000514004b00000000050000190000000105004039000000ea0640009c000002ca0000213d0000000105500190000002ca0000c13d000000400040043f0000000003310436000000030400036700000001060000310000000505600272000002570000613d000000000700001900000005087002100000000009830019000000000884034f000000000808043b00000000008904350000000107700039000000000857004b0000024f0000413d0000001f06600190000002660000613d0000000505500210000000000454034f00000000035300190000000305600210000000000603043300000000065601cf000000000656022f000000000404043b0000010005500089000000000454022f00000000045401cf000000000464019f00000000004304350000000013010434000000000220004c000002e40000613d000000000230004c000001af0000613d000000e102000041000000200430008c00000000040000190000000004024019000000e103300197000000000530004c000000000200a019000000e10330009c000000000204c019000000000220004c000002d00000c13d0000000001010433000000000210004c0000000002000019000000010200c039000000000221004b000002d00000c13d000000000110004c000001af0000c13d0000030a0000013d000000e002000041000000e00510009c0000000001028019000000c001100210000000000230004c0000028f0000613d00000103011001c700008009020000390000000005000019037c03720000040f00030000000103550000006001100270000100e00010019d000000e0011001970000000b0a000029000002960000013d0000000002040019037c03720000040f00030000000103550000006001100270000100e00010019d000000e0011001970000000b0a000029000000000310004c000001ad0000613d0000003f03100039000000200400008a000000000443016f000000400300043d0000000004430019000000000534004b00000000050000190000000105004039000000ea0640009c000002ca0000213d0000000105500190000002ca0000c13d000000400040043f0000000001130436000000030300036700000001050000310000000504500272000002b30000613d000000000600001900000005076002100000000008710019000000000773034f000000000707043b00000000007804350000000106600039000000000746004b000002ab0000413d0000001f05500190000001ad0000613d0000000504400210000000000343034f00000000014100190000000304500210000000000501043300000000054501cf000000000545022f000000000303043b0000010004400089000000000343022f00000000034301cf000000000353019f0000000000310435000001ad0000013d000000000001042d000000eb0100004100000000001004350000003201000039000000040010043f000000ec010000410000037e00010430000000eb0100004100000000001004350000004101000039000000040010043f000000ec010000410000037e0001043000000000010000190000037e00010430000000400100043d00000044021000390000010203000041000000000032043500000024021000390000001d030000390000000000320435000000f6020000410000000000210435000000040210003900000004030000290000000000320435000000e002000041000000e00310009c00000000010280190000004001100210000000f7011001c70000037e00010430000000000230004c000003460000c13d000000400100043d000000f602000041000000000021043500000004021000390000000403000029000000000032043500000003070000290000000002070433000000240310003900000000002304350000004403100039000000000420004c000002fb0000613d000000000400001900000000053400190000002004400039000000000674001900000000060604330000000000650435000000000524004b000002f40000413d0000001f04200039000000200500008a000000000454016f000000000232001900000000000204350000004402400039000000e003000041000000e00420009c0000000002038019000000e00410009c000000000103801900000040011002100000006002200210000000000112019f0000037e00010430000000400100043d0000006402100039000000ff03000041000000000032043500000044021000390000010003000041000000000032043500000024021000390000002a030000390000000000320435000000f6020000410000000000210435000000040210003900000004030000290000000000320435000000e002000041000000e00310009c0000000001028019000000400110021000000101011001c70000037e00010430000000400100043d00000064021000390000010403000041000000000032043500000044021000390000010503000041000000000032043500000024021000390000003a030000390000000000320435000000f6020000410000000000210435000000040210003900000020030000390000000000320435000000e002000041000000e00310009c0000000001028019000000400110021000000101011001c70000037e00010430000000400100043d00000044021000390000010603000041000000000032043500000024021000390000001d030000390000000000320435000000f6020000410000000000210435000000040210003900000020030000390000000000320435000000e002000041000000e00310009c00000000010280190000004001100210000000f7011001c70000037e00010430000000e002000041000000e00410009c0000000001028019000000e00430009c000000000203401900000060022002100000004001100210000000000112019f0000037e00010430000000400100043d0000004402100039000000f8030000410000000000320435000000f602000041000000000021043500000024021000390000002003000039000000000032043500000004021000390000000000320435000000e002000041000000e00310009c00000000010280190000004001100210000000f7011001c70000037e00010430000000400100043d0000004402100039000000f5030000410000000000320435000000240210003900000015030000390000000000320435000000f6020000410000000000210435000000040210003900000020030000390000000000320435000000e002000041000000e00310009c00000000010280190000004001100210000000f7011001c70000037e0001043000000375002104210000000102000039000000000001042d0000000002000019000000000001042d0000037a002104230000000102000039000000000001042d0000000002000019000000000001042d0000037c000004320000037d0001042e0000037e00010430000000000000000000000000000000000000000000000000000000000000000000000000ffffffff8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000200000000000000000000000000000040000001000000000000000000000000000000000000000000000000000000000000000000000000008da5cb5a000000000000000000000000000000000000000000000000000000008da5cb5b00000000000000000000000000000000000000000000000000000000cd72250d0000000000000000000000000000000000000000000000000000000012065fe0000000000000000000000000000000000000000000000000000000001b9265b8000000000000000000000000000000000000000000000000ffffffffffffffff4e487b7100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002400000000000000000000000000000000000000000000000000000000000000200000000000000000000000009cc7f708afc65944829bd487b90b72536b1951864fbfc14e125fc972a6507f3900000000000000000000000000000000000000200000008000000000000000000200000200000000000000000000000000000000000000000000000000000000796b89b91644bc98cd93958e4c9038275d622183e25ac5af08cc6b5d9553913202000002000000000000000000000000000000040000000000000000000000000200000000000000000000000000000000000040000000000000000000000000df9a51129930649214df58f542322c245372c6f2fa6fc3c9b40d927c597cd230596f7520617265206e6f7420746865206f776e6572000000000000000000000008c379a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064000000000000000000000000417272617973206d7573742068617665207468652073616d65206c656e677468a9059cbb00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff80000000000000000000000000000000000000000000000000ffffffffffffff3f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65641806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b8302000002000000000000000000000000000000240000000000000000000000006f742073756363656564000000000000000000000000000000000000000000005361666545524332303a204552433230206f7065726174696f6e20646964206e0000000000000000000000000000000000000084000000000000000000000000416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000002000000000000000000000000000000000000000000000000000000000000006563697069656e74206d61792068617665207265766572746564000000000000416464726573733a20756e61626c6520746f2073656e642076616c75652c2072416464726573733a20696e73756666696369656e742062616c616e63650000000000000000000000000000000000000000000000000000000000000000000000b0f2987959443a75f5e5f63c7ad86855957a7f17ddec4aa651bf7b7707c372a9"},"methodIdentifiers":{"getBalance()":"12065fe0","multiTransfer(address[],address[],uint256[])":"cd72250d","owner()":"8da5cb5b","pay()":"1b9265b8"}},"irOptimized":"/// @use-src 45:\"contracts/MultiTransfer.sol\"\nobject \"TokenF2L2_8843\" {\n code {\n {\n /// @src 45:241:2084 \"contract TokenF2L2 {...\"\n let _1 := memoryguard(0x80)\n if callvalue() { revert(0, 0) }\n let programSize := datasize(\"TokenF2L2_8843\")\n let argSize := sub(codesize(), programSize)\n let newFreePtr := add(_1, and(add(argSize, 31), not(31)))\n if or(gt(newFreePtr, sub(shl(64, 1), 1)), lt(newFreePtr, _1))\n {\n mstore(/** @src -1:-1:-1 */ 0, /** @src 45:241:2084 \"contract TokenF2L2 {...\" */ shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(/** @src -1:-1:-1 */ 0, /** @src 45:241:2084 \"contract TokenF2L2 {...\" */ 0x24)\n }\n mstore(64, newFreePtr)\n codecopy(_1, programSize, argSize)\n if slt(sub(add(_1, argSize), _1), 32)\n {\n revert(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 45:241:2084 \"contract TokenF2L2 {...\"\n let value := mload(_1)\n let _2 := and(value, sub(shl(160, 1), 1))\n if iszero(eq(value, _2))\n {\n revert(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 45:241:2084 \"contract TokenF2L2 {...\"\n sstore(/** @src -1:-1:-1 */ 0, /** @src 45:241:2084 \"contract TokenF2L2 {...\" */ or(and(sload(/** @src -1:-1:-1 */ 0), /** @src 45:241:2084 \"contract TokenF2L2 {...\" */ not(sub(shl(160, 1), 1))), _2))\n let _3 := mload(64)\n let _4 := datasize(\"TokenF2L2_8843_deployed\")\n codecopy(_3, dataoffset(\"TokenF2L2_8843_deployed\"), _4)\n return(_3, _4)\n }\n }\n /// @use-src 28:\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\", 34:\"@openzeppelin/contracts/utils/Address.sol\", 45:\"contracts/MultiTransfer.sol\"\n object \"TokenF2L2_8843_deployed\" {\n code {\n {\n /// @src 45:241:2084 \"contract TokenF2L2 {...\"\n mstore(64, 128)\n if iszero(lt(calldatasize(), 4))\n {\n let _1 := 0\n switch shr(224, calldataload(_1))\n case 0x12065fe0 {\n if callvalue() { revert(_1, _1) }\n if slt(add(calldatasize(), not(3)), _1) { revert(_1, _1) }\n mstore(128, /** @src 45:669:690 \"address(this).balance\" */ selfbalance())\n /// @src 45:241:2084 \"contract TokenF2L2 {...\"\n return(128, 32)\n }\n case 0x1b9265b8 {\n if slt(add(calldatasize(), not(3)), _1) { revert(_1, _1) }\n fun_pay()\n return(_1, _1)\n }\n case 0x8da5cb5b { external_fun_owner() }\n case 0xcd72250d { external_fun_multiTransfer() }\n }\n if iszero(calldatasize())\n {\n /// @src 45:446:495 \"receive() external payable {...\"\n fun_pay()\n /// @src 45:241:2084 \"contract TokenF2L2 {...\"\n stop()\n }\n revert(0, 0)\n }\n function cleanup_address(value) -> cleaned\n {\n cleaned := and(value, sub(shl(160, 1), 1))\n }\n function external_fun_owner()\n {\n if callvalue() { revert(0, 0) }\n if slt(add(calldatasize(), not(3)), 0) { revert(0, 0) }\n let value := and(sload(0), sub(shl(160, 1), 1))\n let memPos := mload(64)\n mstore(memPos, value)\n return(memPos, 32)\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function finalize_allocation_4170(memPtr)\n {\n let newFreePtr := add(memPtr, 128)\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n function finalize_allocation_4171(memPtr)\n {\n let newFreePtr := add(memPtr, 64)\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n function finalize_allocation(memPtr, size)\n {\n let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n function array_allocation_size_array_address_dyn(length) -> size\n {\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n size := add(shl(5, length), 0x20)\n }\n function abi_decode_array_address_dyn(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let _1 := calldataload(offset)\n let _2 := 0x20\n let _3 := array_allocation_size_array_address_dyn(_1)\n let memPtr := mload(64)\n finalize_allocation(memPtr, _3)\n let dst := memPtr\n mstore(memPtr, _1)\n dst := add(memPtr, _2)\n let srcEnd := add(add(offset, shl(5, _1)), _2)\n if gt(srcEnd, end)\n {\n revert(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 45:241:2084 \"contract TokenF2L2 {...\"\n let src := add(offset, _2)\n for { } lt(src, srcEnd) { src := add(src, _2) }\n {\n let value := calldataload(src)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1))))\n {\n /// @src -1:-1:-1\n let _4 := 0\n /// @src 45:241:2084 \"contract TokenF2L2 {...\"\n revert(/** @src -1:-1:-1 */ _4, _4)\n }\n /// @src 45:241:2084 \"contract TokenF2L2 {...\"\n mstore(dst, value)\n dst := add(dst, _2)\n }\n array := memPtr\n }\n function external_fun_multiTransfer()\n {\n if slt(add(calldatasize(), not(3)), 96)\n {\n revert(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 45:241:2084 \"contract TokenF2L2 {...\"\n let offset := calldataload(4)\n let _1 := 0xffffffffffffffff\n if gt(offset, _1)\n {\n revert(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 45:241:2084 \"contract TokenF2L2 {...\"\n let value0 := abi_decode_array_address_dyn(add(4, offset), calldatasize())\n let offset_1 := calldataload(36)\n if gt(offset_1, _1)\n {\n revert(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 45:241:2084 \"contract TokenF2L2 {...\"\n let value1 := abi_decode_array_address_dyn(add(4, offset_1), calldatasize())\n let offset_2 := calldataload(68)\n if gt(offset_2, _1)\n {\n revert(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 45:241:2084 \"contract TokenF2L2 {...\"\n if iszero(slt(add(offset_2, 35), calldatasize()))\n {\n revert(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 45:241:2084 \"contract TokenF2L2 {...\"\n let _2 := calldataload(add(4, offset_2))\n let _3 := array_allocation_size_array_address_dyn(_2)\n let memPtr := mload(64)\n finalize_allocation(memPtr, _3)\n let dst := memPtr\n mstore(memPtr, _2)\n let _4 := 32\n dst := add(memPtr, _4)\n let srcEnd := add(add(offset_2, shl(5, _2)), 36)\n if gt(srcEnd, calldatasize())\n {\n revert(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 45:241:2084 \"contract TokenF2L2 {...\"\n let src := add(offset_2, 36)\n for { } lt(src, srcEnd) { src := add(src, _4) }\n {\n mstore(dst, calldataload(src))\n dst := add(dst, _4)\n }\n /// @src 45:986:2082 \"function multiTransfer(...\"\n modifier_onlyOwner(value0, value1, memPtr)\n /// @src 45:241:2084 \"contract TokenF2L2 {...\"\n return(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @ast-id 8709 @src 45:501:597 \"function pay() public payable {...\"\n function fun_pay()\n {\n /// @src 45:546:590 \"Paid(msg.sender, msg.value, block.timestamp)\"\n let _1 := /** @src 45:241:2084 \"contract TokenF2L2 {...\" */ mload(64)\n mstore(_1, /** @src 45:563:572 \"msg.value\" */ callvalue())\n /// @src 45:241:2084 \"contract TokenF2L2 {...\"\n mstore(add(_1, 32), /** @src 45:574:589 \"block.timestamp\" */ timestamp())\n /// @src 45:546:590 \"Paid(msg.sender, msg.value, block.timestamp)\"\n log2(_1, /** @src 45:241:2084 \"contract TokenF2L2 {...\" */ 64, /** @src 45:546:590 \"Paid(msg.sender, msg.value, block.timestamp)\" */ 0xdf9a51129930649214df58f542322c245372c6f2fa6fc3c9b40d927c597cd230, /** @src 45:551:561 \"msg.sender\" */ caller())\n }\n /// @ast-id 8753 @src 45:866:980 \"modifier onlyOwner() {...\"\n function modifier_onlyOwner(var_recivers_mpos, var_tokenAddresses_mpos, var_tokenAmounts_mpos)\n {\n /// @src 45:241:2084 \"contract TokenF2L2 {...\"\n let cleaned := and(sload(/** @src 45:905:910 \"owner\" */ 0x00), /** @src 45:241:2084 \"contract TokenF2L2 {...\" */ sub(shl(160, 1), 1))\n if iszero(/** @src 45:905:924 \"owner == msg.sender\" */ eq(/** @src 45:241:2084 \"contract TokenF2L2 {...\" */ cleaned, /** @src 45:914:924 \"msg.sender\" */ caller()))\n /// @src 45:241:2084 \"contract TokenF2L2 {...\"\n {\n let memPtr := mload(64)\n mstore(memPtr, shl(229, 4594637))\n mstore(add(memPtr, 4), 32)\n mstore(add(memPtr, 36), 21)\n mstore(add(memPtr, 68), \"You are not the owner\")\n revert(memPtr, 100)\n }\n /// @src 45:1286:1308 \"_tokenAddresses.length\"\n let expr := /** @src 45:241:2084 \"contract TokenF2L2 {...\" */ mload(/** @src 45:1286:1308 \"_tokenAddresses.length\" */ var_tokenAddresses_mpos)\n /// @src 45:1278:1369 \"require(_tokenAddresses.length == _tokenAmounts.length, \\\"Arrays must have the same length\\\")\"\n require_helper_stringliteral_23c3(/** @src 45:1286:1332 \"_tokenAddresses.length == _tokenAmounts.length\" */ eq(expr, /** @src 45:241:2084 \"contract TokenF2L2 {...\" */ mload(/** @src 45:1312:1332 \"_tokenAmounts.length\" */ var_tokenAmounts_mpos)))\n /// @src 45:1387:1409 \"_tokenAddresses.length\"\n let expr_1 := /** @src 45:241:2084 \"contract TokenF2L2 {...\" */ mload(/** @src 45:1387:1409 \"_tokenAddresses.length\" */ var_tokenAddresses_mpos)\n /// @src 45:1379:1466 \"require(_tokenAddresses.length == _recivers.length, \\\"Arrays must have the same length\\\")\"\n require_helper_stringliteral_23c3(/** @src 45:1387:1429 \"_tokenAddresses.length == _recivers.length\" */ eq(expr_1, /** @src 45:241:2084 \"contract TokenF2L2 {...\" */ mload(/** @src 45:1413:1429 \"_recivers.length\" */ var_recivers_mpos)))\n /// @src 45:1565:1575 \"uint i = 0\"\n let var_i := /** @src 45:905:910 \"owner\" */ 0x00\n /// @src 45:1560:2076 \"for (uint i = 0; i < _tokenAddresses.length; i++) {...\"\n for { }\n /** @src 45:1565:1575 \"uint i = 0\" */ 1\n {\n /// @src 45:1605:1608 \"i++\"\n var_i := increment_uint256(var_i)\n }\n {\n /// @src 45:1577:1603 \"i < _tokenAddresses.length\"\n if iszero(lt(var_i, /** @src 45:241:2084 \"contract TokenF2L2 {...\" */ mload(/** @src 45:1581:1603 \"_tokenAddresses.length\" */ var_tokenAddresses_mpos)))\n /// @src 45:1577:1603 \"i < _tokenAddresses.length\"\n { break }\n /// @src 45:1624:2066 \"if (_tokenAddresses[i] == address(0)) {...\"\n switch /** @src 45:1628:1660 \"_tokenAddresses[i] == address(0)\" */ iszero(cleanup_address(/** @src 45:1628:1646 \"_tokenAddresses[i]\" */ read_from_memoryt_address(memory_array_index_access_address_dyn(var_tokenAddresses_mpos, var_i))))\n case /** @src 45:1624:2066 \"if (_tokenAddresses[i] == address(0)) {...\" */ 0 {\n /// @src 45:1883:1909 \"IERC20(_tokenAddresses[i])\"\n let expr_address := cleanup_address(/** @src 45:1890:1908 \"_tokenAddresses[i]\" */ read_from_memoryt_address(memory_array_index_access_address_dyn(var_tokenAddresses_mpos, var_i)))\n /// @src 45:2020:2032 \"_recivers[i]\"\n let _1 := read_from_memoryt_address(memory_array_index_access_address_dyn(var_recivers_mpos, var_i))\n /// @src 45:2034:2050 \"_tokenAmounts[i]\"\n fun_safeTransfer(expr_address, _1, /** @src 45:241:2084 \"contract TokenF2L2 {...\" */ mload(/** @src 45:2034:2050 \"_tokenAmounts[i]\" */ memory_array_index_access_address_dyn(var_tokenAmounts_mpos, var_i)))\n }\n default /// @src 45:1624:2066 \"if (_tokenAddresses[i] == address(0)) {...\"\n {\n /// @src 45:1680:1701 \"payable(_recivers[i])\"\n let expr_2 := cleanup_address(/** @src 45:1688:1700 \"_recivers[i]\" */ read_from_memoryt_address(memory_array_index_access_address_dyn(var_recivers_mpos, var_i)))\n /// @src 45:1712:1728 \"_tokenAmounts[i]\"\n fun_sendValue(expr_2, /** @src 45:241:2084 \"contract TokenF2L2 {...\" */ mload(/** @src 45:1712:1728 \"_tokenAmounts[i]\" */ memory_array_index_access_address_dyn(var_tokenAmounts_mpos, var_i)))\n }\n }\n }\n /// @src 45:241:2084 \"contract TokenF2L2 {...\"\n function require_helper_stringliteral_23c3(condition)\n {\n if iszero(condition)\n {\n let memPtr := mload(64)\n mstore(memPtr, shl(229, 4594637))\n mstore(add(memPtr, 4), 32)\n mstore(add(memPtr, 36), 32)\n mstore(add(memPtr, 68), \"Arrays must have the same length\")\n revert(memPtr, 100)\n }\n }\n function increment_uint256(value) -> ret\n {\n if eq(value, not(0))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n ret := add(value, 1)\n }\n function memory_array_index_access_address_dyn(baseRef, index) -> addr\n {\n if iszero(lt(index, mload(baseRef)))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n addr := add(add(baseRef, shl(5, index)), 32)\n }\n function read_from_memoryt_address(ptr) -> returnValue\n {\n returnValue := and(mload(ptr), sub(shl(160, 1), 1))\n }\n /// @ast-id 6470 @src 28:701:906 \"function safeTransfer(...\"\n function fun_safeTransfer(var_token_address, var_to, var_value)\n {\n /// @src 28:840:898 \"abi.encodeWithSelector(token.transfer.selector, to, value)\"\n let expr_mpos := /** @src 45:241:2084 \"contract TokenF2L2 {...\" */ mload(64)\n /// @src 28:840:898 \"abi.encodeWithSelector(token.transfer.selector, to, value)\"\n let _1 := 0x20\n let _2 := add(expr_mpos, _1)\n mstore(_2, /** @src 45:241:2084 \"contract TokenF2L2 {...\" */ shl(224, 0xa9059cbb))\n let _3 := sub(shl(160, 1), 1)\n mstore(/** @src 28:840:898 \"abi.encodeWithSelector(token.transfer.selector, to, value)\" */ add(expr_mpos, 36), /** @src 45:241:2084 \"contract TokenF2L2 {...\" */ and(var_to, _3))\n mstore(add(/** @src 28:840:898 \"abi.encodeWithSelector(token.transfer.selector, to, value)\" */ expr_mpos, /** @src 45:241:2084 \"contract TokenF2L2 {...\" */ 68), var_value)\n /// @src 28:840:898 \"abi.encodeWithSelector(token.transfer.selector, to, value)\"\n mstore(expr_mpos, /** @src 45:241:2084 \"contract TokenF2L2 {...\" */ 68)\n /// @src 28:840:898 \"abi.encodeWithSelector(token.transfer.selector, to, value)\"\n finalize_allocation_4170(expr_mpos)\n /// @src 45:241:2084 \"contract TokenF2L2 {...\"\n let _4 := and(/** @src 28:3652:3666 \"address(token)\" */ var_token_address, /** @src 45:241:2084 \"contract TokenF2L2 {...\" */ _3)\n let memPtr := mload(64)\n finalize_allocation_4171(memPtr)\n mstore(memPtr, /** @src 28:840:898 \"abi.encodeWithSelector(token.transfer.selector, to, value)\" */ _1)\n /// @src 45:241:2084 \"contract TokenF2L2 {...\"\n mstore(add(memPtr, /** @src 28:840:898 \"abi.encodeWithSelector(token.transfer.selector, to, value)\" */ _1), /** @src 45:241:2084 \"contract TokenF2L2 {...\" */ \"SafeERC20: low-level call failed\")\n if /** @src 34:1465:1488 \"account.code.length > 0\" */ iszero(/** @src 34:1465:1484 \"account.code.length\" */ extcodesize(_4))\n /// @src 45:241:2084 \"contract TokenF2L2 {...\"\n {\n let memPtr_1 := mload(64)\n mstore(memPtr_1, shl(229, 4594637))\n mstore(add(memPtr_1, 4), /** @src 28:840:898 \"abi.encodeWithSelector(token.transfer.selector, to, value)\" */ _1)\n /// @src 45:241:2084 \"contract TokenF2L2 {...\"\n mstore(add(memPtr_1, /** @src 28:840:898 \"abi.encodeWithSelector(token.transfer.selector, to, value)\" */ 36), /** @src 45:241:2084 \"contract TokenF2L2 {...\" */ 29)\n mstore(add(memPtr_1, 68), \"Address: call to non-contract\")\n revert(memPtr_1, 100)\n }\n /// @src 34:5341:5372 \"target.call{value: value}(data)\"\n let expr_component := call(gas(), _4, /** @src -1:-1:-1 */ 0, /** @src 34:5341:5372 \"target.call{value: value}(data)\" */ _2, mload(expr_mpos), /** @src -1:-1:-1 */ 0, 0)\n /// @src 34:5382:5440 \"return verifyCallResult(success, returndata, errorMessage)\"\n let var_mpos := /** @src 34:5389:5440 \"verifyCallResult(success, returndata, errorMessage)\" */ fun_verifyCallResult(expr_component, /** @src 34:5341:5372 \"target.call{value: value}(data)\" */ extract_returndata(), /** @src 34:5389:5440 \"verifyCallResult(success, returndata, errorMessage)\" */ memPtr)\n /// @src 28:3735:3752 \"returndata.length\"\n let expr := /** @src 45:241:2084 \"contract TokenF2L2 {...\" */ mload(/** @src 28:3735:3752 \"returndata.length\" */ var_mpos)\n /// @src 28:3731:3907 \"if (returndata.length > 0) {...\"\n if /** @src 28:3735:3756 \"returndata.length > 0\" */ iszero(iszero(expr))\n /// @src 28:3731:3907 \"if (returndata.length > 0) {...\"\n {\n /// @src 28:3811:3896 \"require(abi.decode(returndata, (bool)), \\\"SafeERC20: ERC20 operation did not succeed\\\")\"\n require_helper_stringliteral_e11a(/** @src 28:3819:3849 \"abi.decode(returndata, (bool))\" */ abi_decode_bool_fromMemory(add(var_mpos, /** @src 28:840:898 \"abi.encodeWithSelector(token.transfer.selector, to, value)\" */ _1), /** @src 28:3819:3849 \"abi.decode(returndata, (bool))\" */ add(add(var_mpos, expr), /** @src 28:840:898 \"abi.encodeWithSelector(token.transfer.selector, to, value)\" */ _1)))\n }\n }\n /// @src 45:241:2084 \"contract TokenF2L2 {...\"\n function abi_decode_bool_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n if iszero(eq(value, iszero(iszero(value))))\n {\n revert(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 45:241:2084 \"contract TokenF2L2 {...\"\n value0 := value\n }\n function require_helper_stringliteral_e11a(condition)\n {\n if iszero(condition)\n {\n let memPtr := mload(64)\n mstore(memPtr, shl(229, 4594637))\n mstore(add(memPtr, 4), 32)\n mstore(add(memPtr, 36), 42)\n mstore(add(memPtr, 68), \"SafeERC20: ERC20 operation did n\")\n mstore(add(memPtr, 100), \"ot succeed\")\n revert(memPtr, 132)\n }\n }\n function extract_returndata() -> data\n {\n switch returndatasize()\n case 0 { data := 96 }\n default {\n let _1 := returndatasize()\n if gt(_1, 0xffffffffffffffff) { panic_error_0x41() }\n let memPtr := mload(64)\n finalize_allocation(memPtr, add(and(add(_1, 31), not(31)), 0x20))\n mstore(memPtr, _1)\n data := memPtr\n returndatacopy(add(memPtr, 0x20), /** @src -1:-1:-1 */ 0, /** @src 45:241:2084 \"contract TokenF2L2 {...\" */ returndatasize())\n }\n }\n /// @ast-id 7870 @src 34:2412:2724 \"function sendValue(address payable recipient, uint256 amount) internal {...\"\n function fun_sendValue(var_recipient, var_amount)\n {\n /// @src 45:241:2084 \"contract TokenF2L2 {...\"\n if /** @src 34:2501:2532 \"address(this).balance >= amount\" */ lt(/** @src 34:2501:2522 \"address(this).balance\" */ selfbalance(), /** @src 34:2501:2532 \"address(this).balance >= amount\" */ var_amount)\n /// @src 45:241:2084 \"contract TokenF2L2 {...\"\n {\n let memPtr := mload(64)\n mstore(memPtr, shl(229, 4594637))\n mstore(add(memPtr, 4), 32)\n mstore(add(memPtr, 36), 29)\n mstore(add(memPtr, 68), \"Address: insufficient balance\")\n revert(memPtr, 100)\n }\n /// @src 34:2596:2629 \"recipient.call{value: amount}(\\\"\\\")\"\n let expr_component := call(gas(), /** @src 45:241:2084 \"contract TokenF2L2 {...\" */ and(/** @src 34:2596:2610 \"recipient.call\" */ var_recipient, /** @src 45:241:2084 \"contract TokenF2L2 {...\" */ sub(shl(160, 1), 1)), /** @src 34:2596:2629 \"recipient.call{value: amount}(\\\"\\\")\" */ var_amount, 0, 0, 0, 0)\n pop(extract_returndata())\n /// @src 45:241:2084 \"contract TokenF2L2 {...\"\n if iszero(expr_component)\n {\n let memPtr_1 := mload(64)\n mstore(memPtr_1, shl(229, 4594637))\n mstore(add(memPtr_1, 4), 32)\n mstore(add(memPtr_1, 36), 58)\n mstore(add(memPtr_1, 68), \"Address: unable to send value, r\")\n mstore(add(memPtr_1, 100), \"ecipient may have reverted\")\n revert(memPtr_1, 132)\n }\n }\n /// @ast-id 8112 @src 34:7561:8253 \"function verifyCallResult(...\"\n function fun_verifyCallResult(var_success, var_returndata_mpos, var_errorMessage_mpos) -> var_mpos\n {\n /// @src 34:7707:7719 \"bytes memory\"\n var_mpos := /** @src 45:241:2084 \"contract TokenF2L2 {...\" */ 96\n /// @src 34:7731:8247 \"if (success) {...\"\n switch var_success\n case 0 {\n /// @src 34:7872:8237 \"if (returndata.length > 0) {...\"\n switch /** @src 34:7876:7897 \"returndata.length > 0\" */ iszero(iszero(/** @src 45:241:2084 \"contract TokenF2L2 {...\" */ mload(/** @src 34:7876:7893 \"returndata.length\" */ var_returndata_mpos)))\n case /** @src 34:7872:8237 \"if (returndata.length > 0) {...\" */ 0 {\n /// @src 34:8202:8222 \"revert(errorMessage)\"\n let _1 := /** @src 45:241:2084 \"contract TokenF2L2 {...\" */ mload(64)\n /// @src 34:8202:8222 \"revert(errorMessage)\"\n mstore(_1, /** @src 45:241:2084 \"contract TokenF2L2 {...\" */ shl(229, 4594637))\n let _2 := 32\n mstore(/** @src 34:8202:8222 \"revert(errorMessage)\" */ add(_1, 4), /** @src 45:241:2084 \"contract TokenF2L2 {...\" */ _2)\n let length := mload(var_errorMessage_mpos)\n mstore(add(/** @src 34:8202:8222 \"revert(errorMessage)\" */ _1, /** @src 45:241:2084 \"contract TokenF2L2 {...\" */ 36), length)\n let i := /** @src 34:7896:7897 \"0\" */ 0x00\n /// @src 45:241:2084 \"contract TokenF2L2 {...\"\n for { } lt(i, length) { i := add(i, _2) }\n {\n mstore(add(add(/** @src 34:8202:8222 \"revert(errorMessage)\" */ _1, /** @src 45:241:2084 \"contract TokenF2L2 {...\" */ i), 68), mload(add(add(var_errorMessage_mpos, i), _2)))\n }\n mstore(add(add(/** @src 34:8202:8222 \"revert(errorMessage)\" */ _1, /** @src 45:241:2084 \"contract TokenF2L2 {...\" */ length), 68), /** @src 34:7896:7897 \"0\" */ 0x00)\n /// @src 34:8202:8222 \"revert(errorMessage)\"\n revert(_1, add(sub(/** @src 45:241:2084 \"contract TokenF2L2 {...\" */ add(/** @src 34:8202:8222 \"revert(errorMessage)\" */ _1, /** @src 45:241:2084 \"contract TokenF2L2 {...\" */ and(add(length, 31), not(31))), /** @src 34:8202:8222 \"revert(errorMessage)\" */ _1), /** @src 45:241:2084 \"contract TokenF2L2 {...\" */ 68))\n }\n default /// @src 34:7872:8237 \"if (returndata.length > 0) {...\"\n {\n /// @src 34:8010:8164 \"assembly {...\"\n revert(add(32, var_returndata_mpos), mload(var_returndata_mpos))\n }\n }\n default /// @src 34:7731:8247 \"if (success) {...\"\n {\n /// @src 34:7758:7775 \"return returndata\"\n var_mpos := var_returndata_mpos\n leave\n }\n }\n }\n data \".metadata\" hex\"a264697066735822122060555dc8e10dce7d7d6e3e1a4e2f44d4de56d3ebdece296c24ffaa6553a61a1564736f6c63430008120033\"\n }\n}\n","hash":"0100010925730cbe07932956d500e6940417afe97c69dab90d6c8bdfdda63798","factoryDependencies":{}}},"contracts/MyERC20.sol":{"MyERC20":{"abi":[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"uint8","name":"decimals_","type":"uint8"}],"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":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"mint","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"}],"metadata":{"optimizer_settings":"M3B3","solc_metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"decimals_\",\"type\":\"uint8\"}],\"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\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"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\":{\"contracts/MyERC20.sol\":\"MyERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xe0c8b625a79bac0fe80f17cfb521e072805cc9cef1c96a5caf45b264e74812fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12fd1efc9ad061ef675bd50fb0c8e3c6f2952a09f8df0e3c688b8d81b8918838\",\"dweb:/ipfs/QmawN6PjTwy91pU7ANjCSgbsLc8TDA6hwu9GsFFaNSuhb5\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"contracts/MyERC20.sol\":{\"keccak256\":\"0x08a735273ab59d0182895f68d7f310e2e5023c3d69767c0c9b483981877006f5\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://087dced97bc8bae615a503f37c7e4b981187e7e873155dbdfe0fe9d3d342c6e9\",\"dweb:/ipfs/QmdJaPTSCrWJymLhWiH7Gz74ZYbvuFiezzaDG96vM9Y28E\"]}},\"version\":1}","zk_version":"1.3.9"},"evm":{"legacyAssembly":null,"assembly":"\t.text\n\t.file\t\"MyERC20.sol:MyERC20\"\n\t.globl\t__entry\n__entry:\n.func_begin0:\n\tnop\tstack+=[9]\n\tptr.add\tr1, r0, stack[@ptr_calldata]\n\tshr.s\t96, r1, r1\n\tand\t@CPI0_0[0], r1, stack[@calldatasize]\n\tadd\t128, r0, r1\n\tst.1\t64, r1\n\tand!\t1, r2, r1\n\tjump.ne\t@.BB0_1\n\tadd\tstack[@calldatasize], r0, r1\n\tsub.s!\t4, r1, r1\n\tjump.lt\t@.BB0_2\n\tptr.add\tstack[@ptr_calldata], r0, r1\n\tld\tr1, r1\n\tshr.s\t224, r1, r1\n\tsub.s!\t@CPI0_5[0], r1, r2\n\tjump.gt\t@.BB0_77\n\tsub.s!\t@CPI0_13[0], r1, r2\n\tjump.gt\t@.BB0_74\n\tsub.s!\t@CPI0_17[0], r1, r2\n\tjump.eq\t@.BB0_84\n\tsub.s!\t@CPI0_18[0], r1, r2\n\tjump.eq\t@.BB0_95\n\tsub.s!\t@CPI0_19[0], r1, r1\n\tjump.ne\t@.BB0_2\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tsub.s\t4, r0, r1\n\tadd\tstack[@calldatasize], r1, r1\n\tadd\t@CPI0_2[0], r0, r2\n\tsub.s!\t0, r1, r3\n\tadd\t0, r0, r3\n\tadd.lt\tr2, r0, r3\n\tand\t@CPI0_2[0], r1, r1\n\tsub.s!\t0, r1, r4\n\tadd.le\t0, r0, r2\n\tsub.s!\t@CPI0_2[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tadd\t2, r0, r1\n\tsload\tr1, r1\n\tld.1\t64, r2\n\tst.1\tr2, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI0_21[0], r1, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_1:\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tadd\tstack[@calldatasize], r0, r2\n\tadd\t31, r2, r1\n\tsub.s\t32, r0, r10\n\tand\tr1, r10, r4\n\tld.1\t64, r1\n\tadd\tr4, r1, r3\n\tsub!\tr3, r4, r4\n\tadd\t0, r0, r4\n\tadd.lt\t1, r0, r4\n\tsub.s!\t@CPI0_1[0], r3, r5\n\tjump.gt\t@.BB0_5\n\tand!\t1, r4, r4\n\tjump.ne\t@.BB0_5\n\tst.1\t64, r3\n\tand\t31, r2, r3\n\tptr.add\tstack[@ptr_calldata], r0, r4\n\tshr.s!\t5, r2, r5\n\tjump.eq\t@.BB0_172\n\tadd\tr0, r0, r6\n.BB0_8:\n\tshl.s\t5, r6, r7\n\tadd\tr1, r7, r8\n\tptr.add\tr4, r7, r7\n\tld\tr7, r7\n\tst.1\tr8, r7\n\tadd\t1, r6, r6\n\tsub!\tr6, r5, r7\n\tjump.lt\t@.BB0_8\n.BB0_172:\n\tsub.s!\t0, r3, r6\n\tjump.eq\t@.BB0_10\n\tshl.s\t5, r5, r5\n\tptr.add\tr4, r5, r4\n\tadd\tr1, r5, r5\n\tshl.s\t3, r3, r3\n\tld.1\tr5, r6\n\tshl\tr6, r3, r6\n\tshr\tr6, r3, r6\n\tld\tr4, r4\n\tsub\t256, r3, r3\n\tshr\tr4, r3, r4\n\tshl\tr4, r3, r3\n\tor\tr3, r6, r3\n\tst.1\tr5, r3\n.BB0_10:\n\tadd\t@CPI0_2[0], r0, r3\n\tsub.s!\t96, r2, r4\n\tadd\t0, r0, r4\n\tadd.lt\tr3, r0, r4\n\tand\t@CPI0_2[0], r2, r5\n\tsub.s!\t0, r5, r6\n\tadd.le\t0, r0, r3\n\tsub.s!\t@CPI0_2[0], r5, r5\n\tadd.ne\tr4, r0, r3\n\tsub.s!\t0, r3, r3\n\tjump.ne\t@.BB0_2\n\tld.1.inc\tr1, r4, r3\n\tsub.s!\t@CPI0_1[0], r4, r5\n\tjump.gt\t@.BB0_2\n\tadd\tr1, r2, r2\n\tadd\tr4, r1, r4\n\tadd\t31, r4, r5\n\tadd\t@CPI0_2[0], r0, r6\n\tsub!\tr5, r2, r7\n\tadd\t0, r0, r7\n\tadd.ge\tr6, r0, r7\n\tand\t@CPI0_2[0], r5, r5\n\tand\t@CPI0_2[0], r2, r8\n\tsub!\tr5, r8, r9\n\tadd.ge\t0, r0, r6\n\txor\tr5, r8, r5\n\tsub.s!\t@CPI0_2[0], r5, r5\n\tadd\tr7, r0, r5\n\tadd.eq\tr6, r0, r5\n\tsub.s!\t0, r5, r5\n\tjump.ne\t@.BB0_2\n\tld.1\tr4, r5\n\tsub.s!\t@CPI0_1[0], r5, r6\n\tjump.gt\t@.BB0_5\n\tadd\t63, r5, r6\n\tand\tr6, r10, r6\n\tld.1\t64, r11\n\tadd\tr11, r6, r6\n\tsub!\tr6, r11, r7\n\tadd\t0, r0, r7\n\tadd.lt\t1, r0, r7\n\tsub.s!\t@CPI0_1[0], r6, r8\n\tjump.gt\t@.BB0_5\n\tand!\t1, r7, r7\n\tjump.ne\t@.BB0_5\n\tst.1\t64, r6\n\tst.1.inc\tr11, r5, r12\n\tadd\t32, r5, r6\n\tadd\tr6, r4, r7\n\tsub!\tr7, r2, r7\n\tjump.gt\t@.BB0_2\n\tsub.s!\t0, r5, r7\n\tjump.eq\t@.BB0_20\n\tadd\tr0, r0, r7\n.BB0_19:\n\tadd\t32, r7, r7\n\tadd\tr7, r11, r8\n\tadd\tr7, r4, r9\n\tld.1\tr9, r9\n\tst.1\tr8, r9\n\tsub!\tr7, r5, r8\n\tjump.lt\t@.BB0_19\n.BB0_20:\n\tadd\tr11, r6, r4\n\tst.1\tr4, r0\n\tld.1\tr3, r3\n\tsub.s!\t@CPI0_1[0], r3, r4\n\tjump.gt\t@.BB0_2\n\tadd\tr3, r1, r3\n\tadd\t31, r3, r4\n\tadd\t@CPI0_2[0], r0, r5\n\tsub!\tr4, r2, r6\n\tadd\t0, r0, r6\n\tadd.ge\tr5, r0, r6\n\tand\t@CPI0_2[0], r4, r4\n\tand\t@CPI0_2[0], r2, r7\n\tsub!\tr4, r7, r8\n\tadd.ge\t0, r0, r5\n\txor\tr4, r7, r4\n\tsub.s!\t@CPI0_2[0], r4, r4\n\tadd\tr6, r0, r4\n\tadd.eq\tr5, r0, r4\n\tsub.s!\t0, r4, r4\n\tjump.ne\t@.BB0_2\n\tld.1\tr3, r4\n\tsub.s!\t@CPI0_1[0], r4, r5\n\tjump.gt\t@.BB0_5\n\tadd\t63, r4, r5\n\tand\tr5, r10, r5\n\tld.1\t64, r8\n\tadd\tr8, r5, r5\n\tsub!\tr5, r8, r6\n\tadd\t0, r0, r6\n\tadd.lt\t1, r0, r6\n\tsub.s!\t@CPI0_1[0], r5, r7\n\tjump.gt\t@.BB0_5\n\tand!\t1, r6, r6\n\tjump.ne\t@.BB0_5\n\tst.1\t64, r5\n\tst.1.inc\tr8, r4, r5\n\tadd\tr5, r0, stack-[8]\n\tadd\t32, r4, r5\n\tadd\tr5, r3, r6\n\tsub!\tr6, r2, r2\n\tjump.gt\t@.BB0_2\n\tadd\tr12, r0, stack-[6]\n\tadd\tr11, r0, stack-[9]\n\tadd\tr10, r0, stack-[7]\n\tsub.s!\t0, r4, r2\n\tjump.eq\t@.BB0_29\n\tadd\tr0, r0, r2\n.BB0_28:\n\tadd\t32, r2, r2\n\tadd\tr2, r8, r6\n\tadd\tr2, r3, r7\n\tld.1\tr7, r7\n\tst.1\tr6, r7\n\tsub!\tr2, r4, r6\n\tjump.lt\t@.BB0_28\n.BB0_29:\n\tadd\tr8, r5, r2\n\tst.1\tr2, r0\n\tadd\t64, r1, r1\n\tld.1\tr1, r1\n\tadd\tr1, r0, stack-[5]\n\tsub.s!\t255, r1, r1\n\tadd\tstack-[9], r0, r1\n\tjump.gt\t@.BB0_2\n\tld.1\tr1, r1\n\tadd\tr1, r0, stack-[4]\n\tsub.s!\t@CPI0_1[0], r1, r1\n\tjump.gt\t@.BB0_5\n\tadd\tr8, r0, stack-[1]\n\tadd\t3, r0, r1\n\tadd\tr1, r0, stack-[3]\n\tsload\tr1, r1\n\tand!\t1, r1, r2\n\tshr.s\t1, r1, r1\n\tand\t127, r1, r3\n\tadd.eq\tr3, r0, r1\n\tadd\tr1, r0, stack-[2]\n\tsub.s!\t31, r1, r1\n\tadd\t0, r0, r1\n\tadd.gt\t1, r0, r1\n\tand\t1, r1, r1\n\tsub!\tr2, r1, r1\n\tjump.ne\t@.BB0_32\n\tadd\tstack-[2], r0, r1\n\tsub.s!\t32, r1, r1\n\tjump.lt\t@.BB0_37\n\tadd\tstack-[3], r0, r1\n\tst.1\t0, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI0_3[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_2\n\tadd\tstack-[4], r0, r3\n\tadd\t31, r3, r2\n\tshr.s\t5, r2, r2\n\tsub.s!\t32, r3, r3\n\tadd.lt\t0, r0, r2\n\tld\tr1, r3\n\tadd\tstack-[2], r0, r1\n\tadd\t31, r1, r1\n\tshr.s\t5, r1, r1\n\tadd\tr3, r1, r1\n\tadd\tr3, r2, r2\n\tsub!\tr2, r1, r3\n\tjump.ge\t@.BB0_37\n.BB0_38:\n\tsstore\tr2, r0\n\tadd\t1, r2, r2\n\tsub!\tr2, r1, r3\n\tjump.lt\t@.BB0_38\n.BB0_37:\n\tadd\tstack-[4], r0, r1\n\tsub.s!\t31, r1, r1\n\tjump.le\t@.BB0_47\n\tadd\tstack-[3], r0, r1\n\tst.1\t0, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI0_3[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tadd\tstack-[7], r0, r2\n\tadd\tstack-[9], r0, r6\n\tjump.eq\t@.BB0_2\n\tadd\tstack-[4], r0, r3\n\tand!\tr3, r2, r3\n\tadd\t32, r0, r2\n\tld\tr1, r1\n\tjump.eq\t@.BB0_44\n\tadd\t32, r0, r2\n\tadd\tr0, r0, r4\n.BB0_43:\n\tadd\tr2, r6, r5\n\tld.1\tr5, r5\n\tsstore\tr1, r5\n\tadd\t32, r2, r2\n\tadd\t1, r1, r1\n\tadd\t32, r4, r4\n\tsub!\tr4, r3, r5\n\tjump.lt\t@.BB0_43\n.BB0_44:\n\tadd\tstack-[4], r0, r4\n\tsub!\tr3, r4, r3\n\tjump.ge\t@.BB0_46\n\tadd\tstack-[4], r0, r3\n\tshl.s\t3, r3, r3\n\tand\t248, r3, r3\n\tsub.s\t1, r0, r4\n\tshr\tr4, r3, r3\n\txor\tr3, r4, r3\n\tadd\tstack-[9], r0, r4\n\tadd\tr2, r4, r2\n\tld.1\tr2, r2\n\tand\tr2, r3, r2\n\tsstore\tr1, r2\n.BB0_46:\n\tadd\t1, r0, r1\n\tadd\tstack-[4], r0, r2\n\tshl.s\t1, r2, r2\n\tjump\t@.BB0_39\n.BB0_77:\n\tsub.s!\t@CPI0_6[0], r1, r2\n\tjump.gt\t@.BB0_81\n\tsub.s!\t@CPI0_10[0], r1, r2\n\tjump.eq\t@.BB0_130\n\tsub.s!\t@CPI0_11[0], r1, r2\n\tjump.eq\t@.BB0_140\n\tsub.s!\t@CPI0_12[0], r1, r1\n\tjump.ne\t@.BB0_2\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tsub.s\t4, r0, r1\n\tadd\tstack[@calldatasize], r1, r1\n\tadd\t@CPI0_2[0], r0, r2\n\tsub.s!\t0, r1, r3\n\tadd\t0, r0, r3\n\tadd.lt\tr2, r0, r3\n\tand\t@CPI0_2[0], r1, r1\n\tsub.s!\t0, r1, r4\n\tadd.le\t0, r0, r2\n\tsub.s!\t@CPI0_2[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tadd\t4, r0, r5\n\tsload\tr5, r4\n\tand!\t1, r4, r6\n\tshr.s\t1, r4, r1\n\tand\t127, r1, r2\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t31, r1, r2\n\tadd\t0, r0, r2\n\tadd.gt\t1, r0, r2\n\txor\tr4, r2, r2\n\tand!\t1, r2, r2\n\tjump.ne\t@.BB0_32\n\tld.1\t64, r2\n\tst.1.inc\tr2, r1, r3\n\tsub.s!\t0, r6, r6\n\tjump.ne\t@.BB0_151\n\tsub.s\t256, r0, r5\n\tand\tr4, r5, r4\n\tst.1\tr3, r4\n\tsub.s!\t0, r1, r1\n\tadd\t32, r0, r4\n\tadd.eq\t0, r0, r4\n\tjump\t@.BB0_148\n.BB0_74:\n\tsub.s!\t@CPI0_14[0], r1, r2\n\tjump.eq\t@.BB0_102\n\tsub.s!\t@CPI0_15[0], r1, r2\n\tjump.eq\t@.BB0_119\n\tsub.s!\t@CPI0_16[0], r1, r1\n\tjump.ne\t@.BB0_2\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tsub.s\t4, r0, r1\n\tadd\tstack[@calldatasize], r1, r1\n\tadd\t@CPI0_2[0], r0, r2\n\tsub.s!\t64, r1, r3\n\tadd\t0, r0, r3\n\tadd.lt\tr2, r0, r3\n\tand\t@CPI0_2[0], r1, r1\n\tsub.s!\t0, r1, r4\n\tadd.le\t0, r0, r2\n\tsub.s!\t@CPI0_2[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tadd\t4, r0, r1\n\tptr.add\tstack[@ptr_calldata], r1, r1\n\tld\tr1, r1\n\tadd\tr1, r0, stack-[9]\n\tsub.s!\t@CPI0_20[0], r1, r1\n\tjump.gt\t@.BB0_2\n\tcontext.caller\tr1\n\tadd\tr1, r0, stack-[7]\n\tst.1\t0, r1\n\tadd\t1, r0, r1\n\tadd\tr1, r0, stack-[8]\n\tst.1\t32, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI0_22[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_2\n\tld\tr1, r1\n\tadd\tstack-[9], r0, r2\n\tst.1\t0, r2\n\tst.1\t32, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI0_22[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_2\n\tld\tr1, r1\n\tsload\tr1, r1\n\tadd\t36, r0, r2\n\tptr.add\tstack[@ptr_calldata], r2, r2\n\tld\tr2, r2\n\tadd\tr2, r1, r3\n\tsub!\tr3, r2, r1\n\tadd\t0, r0, r1\n\tadd.lt\t1, r0, r1\n\tand!\t1, r1, r1\n\tjump.ne\t@.BB0_128\n\tadd\tstack-[7], r0, r1\n\tadd\tstack-[9], r0, r2\n\tnear_call\tr0, @fun_approve, @DEFAULT_UNWIND\n\tld.1\t64, r1\n\tadd\tstack-[8], r0, r2\n\tst.1\tr1, r2\n\tadd\t@CPI0_0[0], r0, r2\n\tsub.s!\t@CPI0_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI0_21[0], r1, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_81:\n\tsub.s!\t@CPI0_7[0], r1, r2\n\tjump.eq\t@.BB0_155\n\tsub.s!\t@CPI0_8[0], r1, r2\n\tjump.eq\t@.BB0_163\n\tsub.s!\t@CPI0_9[0], r1, r1\n\tjump.ne\t@.BB0_2\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tsub.s\t4, r0, r1\n\tadd\tstack[@calldatasize], r1, r1\n\tadd\t@CPI0_2[0], r0, r2\n\tsub.s!\t64, r1, r3\n\tadd\t0, r0, r3\n\tadd.lt\tr2, r0, r3\n\tand\t@CPI0_2[0], r1, r1\n\tsub.s!\t0, r1, r4\n\tadd.le\t0, r0, r2\n\tsub.s!\t@CPI0_2[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tptr.add\tstack[@ptr_calldata], r0, r2\n\tptr.add.s\t4, r2, r1\n\tld\tr1, r1\n\tsub.s!\t@CPI0_20[0], r1, r3\n\tjump.gt\t@.BB0_2\n\tptr.add.s\t36, r2, r2\n\tld\tr2, r3\n\tsub.s!\t@CPI0_20[0], r3, r2\n\tjump.gt\t@.BB0_2\n\tst.1\t0, r1\n\tadd\t1, r0, r1\n\tst.1\t32, r1\n\tadd\t64, r0, r2\n\tadd\tr2, r0, stack-[9]\n\tadd\tr0, r0, r1\n\tadd\tr3, r0, stack-[8]\n\tnear_call\tr0, @__keccak256, @DEFAULT_UNWIND\n\tadd\tstack-[8], r0, r2\n\tst.1\t0, r2\n\tst.1\t32, r1\n\tadd\tr0, r0, r1\n\tadd\tstack-[9], r0, r2\n\tnear_call\tr0, @__keccak256, @DEFAULT_UNWIND\n\tsload\tr1, r1\n\tld.1\t64, r2\n\tst.1\tr2, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI0_21[0], r1, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_84:\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tsub.s\t4, r0, r1\n\tadd\tstack[@calldatasize], r1, r1\n\tadd\t@CPI0_2[0], r0, r2\n\tsub.s!\t0, r1, r3\n\tadd\t0, r0, r3\n\tadd.lt\tr2, r0, r3\n\tand\t@CPI0_2[0], r1, r1\n\tsub.s!\t0, r1, r4\n\tadd.le\t0, r0, r2\n\tsub.s!\t@CPI0_2[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tadd\t3, r0, r3\n\tsload\tr3, r2\n\tand!\t1, r2, r4\n\tshr.s\t1, r2, r1\n\tand\t127, r1, r5\n\tadd\tr1, r0, r6\n\tadd.eq\tr5, r0, r6\n\tsub.s!\t31, r6, r5\n\tadd\t0, r0, r5\n\tadd.gt\t1, r0, r5\n\txor\tr2, r5, r5\n\tand!\t1, r5, r5\n\tjump.eq\t@.BB0_87\n.BB0_32:\n\tadd\t@CPI0_31[0], r0, r1\n\tst.1\t0, r1\n\tadd\t34, r0, r1\n\tst.1\t4, r1\n\tadd\t@CPI0_32[0], r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB0_95:\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tsub.s\t4, r0, r1\n\tadd\tstack[@calldatasize], r1, r1\n\tadd\t@CPI0_2[0], r0, r2\n\tsub.s!\t64, r1, r3\n\tadd\t0, r0, r3\n\tadd.lt\tr2, r0, r3\n\tand\t@CPI0_2[0], r1, r1\n\tsub.s!\t0, r1, r4\n\tadd.le\t0, r0, r2\n\tsub.s!\t@CPI0_2[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tptr.add\tstack[@ptr_calldata], r0, r1\n\tptr.add.s\t4, r1, r2\n\tld\tr2, r2\n\tsub.s!\t@CPI0_20[0], r2, r3\n\tjump.gt\t@.BB0_2\n\tptr.add.s\t36, r1, r1\n\tld\tr1, r3\n\tcontext.caller\tr1\n\tnear_call\tr0, @fun_approve, @DEFAULT_UNWIND\n\tadd\t1, r0, r1\n\tld.1\t64, r2\n\tst.1\tr2, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI0_21[0], r1, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_130:\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tsub.s\t4, r0, r1\n\tadd\tstack[@calldatasize], r1, r1\n\tadd\t@CPI0_2[0], r0, r2\n\tsub.s!\t64, r1, r3\n\tadd\t0, r0, r3\n\tadd.lt\tr2, r0, r3\n\tand\t@CPI0_2[0], r1, r1\n\tsub.s!\t0, r1, r4\n\tadd.le\t0, r0, r2\n\tsub.s!\t@CPI0_2[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tptr.add\tstack[@ptr_calldata], r0, r1\n\tptr.add.s\t4, r1, r2\n\tld\tr2, r4\n\tsub.s!\t@CPI0_20[0], r4, r2\n\tjump.gt\t@.BB0_2\n\tptr.add.s\t36, r1, r1\n\tld\tr1, r5\n\tsub.s!\t0, r4, r1\n\tjump.ne\t@.BB0_135\n\tld.1\t64, r1\n\tadd\t68, r1, r2\n\tadd\t@CPI0_29[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t31, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI0_25[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI0_0[0], r0, r2\n\tsub.s!\t@CPI0_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI0_30[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB0_140:\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tsub.s\t4, r0, r1\n\tadd\tstack[@calldatasize], r1, r1\n\tadd\t@CPI0_2[0], r0, r2\n\tsub.s!\t32, r1, r3\n\tadd\t0, r0, r3\n\tadd.lt\tr2, r0, r3\n\tand\t@CPI0_2[0], r1, r1\n\tsub.s!\t0, r1, r4\n\tadd.le\t0, r0, r2\n\tsub.s!\t@CPI0_2[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tadd\t4, r0, r1\n\tptr.add\tstack[@ptr_calldata], r1, r1\n\tld\tr1, r1\n\tsub.s!\t@CPI0_20[0], r1, r2\n\tjump.gt\t@.BB0_2\n\tst.1\t0, r1\n\tst.1\t32, r0\n\tadd\t64, r0, r2\n\tadd\tr0, r0, r1\n\tnear_call\tr0, @__keccak256, @DEFAULT_UNWIND\n\tsload\tr1, r1\n\tld.1\t64, r2\n\tst.1\tr2, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI0_21[0], r1, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_102:\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tsub.s\t4, r0, r1\n\tadd\tstack[@calldatasize], r1, r1\n\tadd\t@CPI0_2[0], r0, r2\n\tsub.s!\t96, r1, r3\n\tadd\t0, r0, r3\n\tadd.lt\tr2, r0, r3\n\tand\t@CPI0_2[0], r1, r1\n\tsub.s!\t0, r1, r4\n\tadd.le\t0, r0, r2\n\tsub.s!\t@CPI0_2[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tptr.add\tstack[@ptr_calldata], r0, r1\n\tptr.add.s\t4, r1, r2\n\tld\tr2, r4\n\tsub.s!\t@CPI0_20[0], r4, r2\n\tjump.gt\t@.BB0_2\n\tptr.add.s\t36, r1, r2\n\tld\tr2, r2\n\tadd\tr2, r0, stack-[9]\n\tsub.s!\t@CPI0_20[0], r2, r2\n\tjump.gt\t@.BB0_2\n\tptr.add.s\t68, r1, r1\n\tld\tr1, r1\n\tadd\tr1, r0, stack-[7]\n\tst.1\t0, r4\n\tadd\t1, r0, r1\n\tadd\tr1, r0, stack-[6]\n\tst.1\t32, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI0_22[0], r1, r1\n\tadd\t32784, r0, r2\n\tadd\tr4, r0, stack-[8]\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_2\n\tld\tr1, r1\n\tcontext.caller\tr2\n\tadd\tr2, r0, stack-[5]\n\tst.1\t0, r2\n\tst.1\t32, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI0_22[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tadd\tstack-[8], r0, r3\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_2\n\tld\tr1, r1\n\tsload\tr1, r2\n\tsub.s\t1, r0, r1\n\tsub!\tr2, r1, r1\n\tjump.ne\t@.BB0_109\n.BB0_110:\n\tadd\tr3, r0, r1\n\tadd\tstack-[9], r0, r2\n\tadd\tstack-[7], r0, r3\n\tnear_call\tr0, @fun_transfer, @DEFAULT_UNWIND\n\tld.1\t64, r1\n\tadd\tstack-[6], r0, r2\n\tst.1\tr1, r2\n\tadd\t@CPI0_0[0], r0, r2\n\tsub.s!\t@CPI0_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI0_21[0], r1, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_119:\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tsub.s\t4, r0, r1\n\tadd\tstack[@calldatasize], r1, r1\n\tadd\t@CPI0_2[0], r0, r2\n\tsub.s!\t0, r1, r3\n\tadd\t0, r0, r3\n\tadd.lt\tr2, r0, r3\n\tand\t@CPI0_2[0], r1, r1\n\tsub.s!\t0, r1, r4\n\tadd.le\t0, r0, r2\n\tsub.s!\t@CPI0_2[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tadd\t5, r0, r1\n\tsload\tr1, r1\n\tand\t255, r1, r1\n\tld.1\t64, r2\n\tst.1\tr2, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI0_21[0], r1, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_155:\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tsub.s\t4, r0, r1\n\tadd\tstack[@calldatasize], r1, r1\n\tadd\t@CPI0_2[0], r0, r2\n\tsub.s!\t64, r1, r3\n\tadd\t0, r0, r3\n\tadd.lt\tr2, r0, r3\n\tand\t@CPI0_2[0], r1, r1\n\tsub.s!\t0, r1, r4\n\tadd.le\t0, r0, r2\n\tsub.s!\t@CPI0_2[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tptr.add\tstack[@ptr_calldata], r0, r1\n\tptr.add.s\t4, r1, r2\n\tld\tr2, r2\n\tadd\tr2, r0, stack-[9]\n\tsub.s!\t@CPI0_20[0], r2, r2\n\tjump.gt\t@.BB0_2\n\tptr.add.s\t36, r1, r1\n\tld\tr1, r1\n\tadd\tr1, r0, stack-[8]\n\tcontext.caller\tr1\n\tadd\tr1, r0, stack-[6]\n\tst.1\t0, r1\n\tadd\t1, r0, r1\n\tadd\tr1, r0, stack-[7]\n\tst.1\t32, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI0_22[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_2\n\tld\tr1, r1\n\tadd\tstack-[9], r0, r2\n\tst.1\t0, r2\n\tst.1\t32, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI0_22[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_2\n\tld\tr1, r1\n\tsload\tr1, r1\n\tadd\tstack-[8], r0, r3\n\tsub!\tr1, r3, r2\n\tjump.ge\t@.BB0_162\n\tld.1\t64, r1\n\tadd\t100, r1, r2\n\tadd\t@CPI0_23[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t68, r1, r2\n\tadd\t@CPI0_24[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t37, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI0_25[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI0_0[0], r0, r2\n\tsub.s!\t@CPI0_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI0_26[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB0_163:\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tsub.s\t4, r0, r1\n\tadd\tstack[@calldatasize], r1, r1\n\tadd\t@CPI0_2[0], r0, r2\n\tsub.s!\t64, r1, r3\n\tadd\t0, r0, r3\n\tadd.lt\tr2, r0, r3\n\tand\t@CPI0_2[0], r1, r1\n\tsub.s!\t0, r1, r4\n\tadd.le\t0, r0, r2\n\tsub.s!\t@CPI0_2[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tptr.add\tstack[@ptr_calldata], r0, r1\n\tptr.add.s\t4, r1, r2\n\tld\tr2, r2\n\tsub.s!\t@CPI0_20[0], r2, r3\n\tjump.le\t@.BB0_166\n.BB0_2:\n\tadd\tr0, r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB0_87:\n\tst.1\t128, r6\n\tsub.s!\t0, r4, r4\n\tjump.ne\t@.BB0_90\n\tsub.s\t256, r0, r3\n\tand\tr2, r3, r2\n\tst.1\t160, r2\n\tsub.s!\t0, r6, r1\n\tadd\t192, r0, r1\n\tadd.eq\t160, r0, r1\n\tjump\t@.BB0_88\n.BB0_166:\n\tptr.add.s\t36, r1, r1\n\tld\tr1, r3\n\tcontext.caller\tr1\n\tnear_call\tr0, @fun_transfer, @DEFAULT_UNWIND\n\tadd\t1, r0, r1\n\tld.1\t64, r2\n\tst.1\tr2, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI0_21[0], r1, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_151:\n\tst.1\t0, r5\n\tsub.s!\t0, r1, r4\n\tadd\tr0, r0, r4\n\tjump.eq\t@.BB0_148\n\tadd\t@CPI0_27[0], r0, r5\n\tadd\tr0, r0, r4\n.BB0_153:\n\tadd\tr3, r4, r6\n\tsload\tr5, r7\n\tst.1\tr6, r7\n\tadd\t1, r5, r5\n\tadd\t32, r4, r4\n\tsub!\tr4, r1, r6\n\tjump.lt\t@.BB0_153\n.BB0_148:\n\tadd\t63, r4, r1\n\tsub.s\t32, r0, r3\n\tand\tr1, r3, r3\n\tadd\tr3, r2, r1\n\tsub!\tr1, r3, r3\n\tadd\t0, r0, r4\n\tadd.lt\t1, r0, r4\n\tsub.s!\t@CPI0_1[0], r1, r3\n\tjump.gt\t@.BB0_5\n\tand!\t1, r4, r3\n\tjump.ne\t@.BB0_5\n\tst.1\t64, r1\n\tadd\tr1, r0, stack-[9]\n\tnear_call\tr0, @abi_encode_string, @DEFAULT_UNWIND\n\tadd\tstack-[9], r0, r4\n\tsub\tr1, r4, r1\n\tadd\t@CPI0_0[0], r0, r2\n\tsub.s!\t@CPI0_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tsub.s!\t@CPI0_0[0], r4, r3\n\tadd.lt\tr4, r0, r2\n\tshl.s\t64, r2, r2\n\tshl.s\t96, r1, r1\n\tor\tr1, r2, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_135:\n\tadd\t2, r0, r1\n\tsload\tr1, r3\n\tadd\tr3, r5, r2\n\tsub!\tr2, r3, r3\n\tadd\t0, r0, r3\n\tadd.lt\t1, r0, r3\n\tand!\t1, r3, r3\n\tjump.ne\t@.BB0_128\n\tadd\tr5, r0, stack-[8]\n\tsstore\tr1, r2\n\tst.1\t0, r4\n\tst.1\t32, r0\n\tadd\t@CPI0_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI0_22[0], r1, r1\n\tadd\t32784, r0, r2\n\tadd\tr4, r0, stack-[9]\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tadd\tstack-[9], r0, r6\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_2\n\tld\tr1, r1\n\tsload\tr1, r3\n\tadd\tstack-[8], r0, r4\n\tadd\tr3, r4, r2\n\tsub!\tr2, r3, r3\n\tadd\t0, r0, r3\n\tadd.lt\t1, r0, r3\n\tand!\t1, r3, r3\n\tjump.eq\t@.BB0_138\n.BB0_128:\n\tadd\t@CPI0_31[0], r0, r1\n\tst.1\t0, r1\n\tadd\t17, r0, r1\n\tst.1\t4, r1\n\tadd\t@CPI0_32[0], r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB0_90:\n\tst.1\t0, r3\n\tadd\t160, r0, r1\n\tsub.s!\t0, r6, r2\n\tjump.eq\t@.BB0_94\n\tadd\t@CPI0_39[0], r0, r2\n\tadd\tr0, r0, r4\n.BB0_92:\n\tadd\tr4, r0, r3\n\tsload\tr2, r4\n\tadd\t160, r3, r5\n\tst.1\tr5, r4\n\tadd\t1, r2, r2\n\tadd\t32, r3, r4\n\tsub!\tr4, r6, r5\n\tjump.lt\t@.BB0_92\n\tadd\t192, r3, r1\n.BB0_88:\n\tadd\t31, r1, r1\n\tsub.s\t32, r0, r2\n\tand\tr1, r2, r1\n\tadd\t@CPI0_40[0], r1, r2\n\tsub.s!\t@CPI0_41[0], r2, r2\n\tjump.ge\t@.BB0_94\n.BB0_5:\n\tadd\t@CPI0_31[0], r0, r1\n\tst.1\t0, r1\n\tadd\t65, r0, r1\n\tst.1\t4, r1\n\tadd\t@CPI0_32[0], r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB0_94:\n\tadd\tr1, r0, stack-[9]\n\tst.1\t64, r1\n\tadd\t128, r0, r2\n\tnear_call\tr0, @abi_encode_string, @DEFAULT_UNWIND\n\tadd\tstack-[9], r0, r4\n\tsub\tr1, r4, r1\n\tadd\t@CPI0_0[0], r0, r2\n\tsub.s!\t@CPI0_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tsub.s!\t@CPI0_0[0], r4, r3\n\tadd.lt\tr4, r0, r2\n\tshl.s\t64, r2, r2\n\tshl.s\t96, r1, r1\n\tor\tr1, r2, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_162:\n\tsub\tr1, r3, r3\n\tadd\tstack-[6], r0, r1\n\tadd\tstack-[9], r0, r2\n\tnear_call\tr0, @fun_approve, @DEFAULT_UNWIND\n\tld.1\t64, r1\n\tadd\tstack-[7], r0, r2\n\tst.1\tr1, r2\n\tadd\t@CPI0_0[0], r0, r2\n\tsub.s!\t@CPI0_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI0_21[0], r1, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_109:\n\tadd\tstack-[7], r0, r1\n\tsub!\tr2, r1, r1\n\tjump.ge\t@.BB0_112\n\tld.1\t64, r1\n\tadd\t68, r1, r2\n\tadd\t@CPI0_38[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t29, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI0_25[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI0_0[0], r0, r2\n\tsub.s!\t@CPI0_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI0_30[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB0_138:\n\tsstore\tr1, r2\n\tld.1\t64, r1\n\tst.1\tr1, r4\n\tadd\t@CPI0_0[0], r0, r2\n\tcontext.gas_left\tr3\n\tsub.s!\t@CPI0_0[0], r3, r4\n\tadd.ge\tr2, r0, r3\n\tsub.s!\t@CPI0_0[0], r1, r4\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tshl.s\t192, r3, r2\n\tor\tr2, r1, r1\n\tor\t@CPI0_3[0], r1, r1\n\tadd\t32781, r0, r2\n\tadd\t3, r0, r3\n\tadd\t@CPI0_28[0], r0, r4\n\tadd\tr0, r0, r5\n\tnear_call\tr0, @__farcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r1\n\tjump.eq\t@.BB0_2\n\tld.1\t64, r1\n\tadd\t1, r0, r2\n\tst.1\tr1, r2\n\tadd\t@CPI0_0[0], r0, r2\n\tsub.s!\t@CPI0_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI0_21[0], r1, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_112:\n\tadd\tr2, r0, stack-[4]\n\tsub.s!\t0, r3, r1\n\tjump.ne\t@.BB0_114\n\tld.1\t64, r1\n\tadd\t100, r1, r2\n\tadd\t@CPI0_36[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t68, r1, r2\n\tadd\t@CPI0_37[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t36, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI0_25[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI0_0[0], r0, r2\n\tsub.s!\t@CPI0_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI0_26[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB0_114:\n\tadd\tstack-[5], r0, r1\n\tand!\t@CPI0_20[0], r1, r1\n\tadd\tr1, r0, stack-[5]\n\tjump.ne\t@.BB0_116\n\tld.1\t64, r1\n\tadd\t100, r1, r2\n\tadd\t@CPI0_34[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t68, r1, r2\n\tadd\t@CPI0_35[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t34, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI0_25[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI0_0[0], r0, r2\n\tsub.s!\t@CPI0_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI0_26[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB0_116:\n\tadd\tstack-[8], r0, r1\n\tst.1\t0, r1\n\tadd\tstack-[6], r0, r1\n\tst.1\t32, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI0_22[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_2\n\tld\tr1, r1\n\tadd\tstack-[5], r0, r2\n\tst.1\t0, r2\n\tst.1\t32, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI0_22[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tadd\tstack-[4], r0, r3\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_2\n\tadd\tstack-[7], r0, r2\n\tsub\tr3, r2, r2\n\tld\tr1, r1\n\tsstore\tr1, r2\n\tld.1\t64, r1\n\tst.1\tr1, r2\n\tadd\t@CPI0_0[0], r0, r2\n\tcontext.gas_left\tr3\n\tsub.s!\t@CPI0_0[0], r3, r4\n\tadd.ge\tr2, r0, r3\n\tsub.s!\t@CPI0_0[0], r1, r4\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tshl.s\t192, r3, r2\n\tor\tr2, r1, r1\n\tor\t@CPI0_3[0], r1, r1\n\tadd\t32781, r0, r2\n\tadd\t3, r0, r3\n\tadd\t@CPI0_33[0], r0, r4\n\tadd\tstack-[8], r0, r5\n\tadd\tstack-[5], r0, r6\n\tnear_call\tr0, @__farcall, @DEFAULT_UNWIND\n\tadd\tstack-[8], r0, r3\n\tand!\t1, r2, r1\n\tjump.ne\t@.BB0_110\n\tjump\t@.BB0_2\n.BB0_47:\n\tadd\tstack-[4], r0, r1\n\tsub.s!\t0, r1, r1\n\tadd\tr0, r0, r1\n\tjump.eq\t@.BB0_49\n\tadd\tstack-[6], r0, r1\n\tld.1\tr1, r1\n.BB0_49:\n\tadd\tstack-[4], r0, r4\n\tshl.s\t3, r4, r2\n\tsub.s\t1, r0, r3\n\tshr\tr3, r2, r2\n\txor\tr2, r3, r2\n\tand\tr1, r2, r2\n\tshl.s\t1, r4, r1\n.BB0_39:\n\tor\tr2, r1, r1\n\tadd\tstack-[3], r0, r2\n\tsstore\tr2, r1\n\tadd\tstack-[1], r0, r1\n\tld.1\tr1, r1\n\tadd\tr1, r0, stack-[9]\n\tsub.s!\t@CPI0_1[0], r1, r1\n\tjump.gt\t@.BB0_5\n\tadd\t4, r0, r1\n\tadd\tr1, r0, stack-[6]\n\tsload\tr1, r1\n\tand!\t1, r1, r2\n\tshr.s\t1, r1, r2\n\tand\t127, r2, r3\n\tadd.eq\tr3, r0, r2\n\tadd\tr2, r0, stack-[4]\n\tsub.s!\t31, r2, r2\n\tadd\t0, r0, r2\n\tadd.gt\t1, r0, r2\n\txor\tr1, r2, r1\n\tand!\t1, r1, r1\n\tjump.ne\t@.BB0_32\n\tadd\tstack-[4], r0, r1\n\tsub.s!\t32, r1, r1\n\tjump.lt\t@.BB0_55\n\tadd\tstack-[6], r0, r1\n\tst.1\t0, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI0_3[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_2\n\tadd\tstack-[9], r0, r3\n\tadd\t31, r3, r2\n\tshr.s\t5, r2, r2\n\tsub.s!\t32, r3, r3\n\tadd.lt\t0, r0, r2\n\tld\tr1, r3\n\tadd\tstack-[4], r0, r1\n\tadd\t31, r1, r1\n\tshr.s\t5, r1, r1\n\tadd\tr3, r1, r1\n\tadd\tr3, r2, r2\n\tsub!\tr2, r1, r3\n\tjump.ge\t@.BB0_55\n.BB0_56:\n\tsstore\tr2, r0\n\tadd\t1, r2, r2\n\tsub!\tr2, r1, r3\n\tjump.lt\t@.BB0_56\n.BB0_55:\n\tadd\tstack-[9], r0, r1\n\tsub.s!\t31, r1, r1\n\tjump.le\t@.BB0_65\n\tadd\tstack-[6], r0, r1\n\tst.1\t0, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI0_3[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tadd\tstack-[7], r0, r2\n\tadd\tstack-[1], r0, r6\n\tjump.eq\t@.BB0_2\n\tadd\tstack-[9], r0, r3\n\tand!\tr3, r2, r3\n\tadd\t32, r0, r2\n\tld\tr1, r1\n\tjump.eq\t@.BB0_62\n\tadd\t32, r0, r2\n\tadd\tr0, r0, r4\n.BB0_61:\n\tadd\tr2, r6, r5\n\tld.1\tr5, r5\n\tsstore\tr1, r5\n\tadd\t32, r2, r2\n\tadd\t1, r1, r1\n\tadd\t32, r4, r4\n\tsub!\tr4, r3, r5\n\tjump.lt\t@.BB0_61\n.BB0_62:\n\tadd\tstack-[9], r0, r4\n\tsub!\tr3, r4, r3\n\tjump.ge\t@.BB0_64\n\tadd\tstack-[9], r0, r3\n\tshl.s\t3, r3, r3\n\tand\t248, r3, r3\n\tsub.s\t1, r0, r4\n\tshr\tr4, r3, r3\n\txor\tr3, r4, r3\n\tadd\tstack-[1], r0, r4\n\tadd\tr2, r4, r2\n\tld.1\tr2, r2\n\tand\tr2, r3, r2\n\tsstore\tr1, r2\n.BB0_64:\n\tadd\t1, r0, r1\n\tadd\tstack-[9], r0, r2\n\tshl.s\t1, r2, r2\n\tjump\t@.BB0_57\n.BB0_65:\n\tadd\tstack-[9], r0, r1\n\tsub.s!\t0, r1, r1\n\tadd\tr0, r0, r1\n\tjump.eq\t@.BB0_67\n\tadd\tstack-[8], r0, r1\n\tld.1\tr1, r1\n.BB0_67:\n\tadd\tstack-[9], r0, r4\n\tshl.s\t3, r4, r2\n\tsub.s\t1, r0, r3\n\tshr\tr3, r2, r2\n\txor\tr2, r3, r2\n\tand\tr1, r2, r2\n\tshl.s\t1, r4, r1\n.BB0_57:\n\tor\tr2, r1, r1\n\tadd\tstack-[6], r0, r2\n\tsstore\tr2, r1\n\tadd\t5, r0, r1\n\tsload\tr1, r2\n\tsub.s\t256, r0, r3\n\tand\tr2, r3, r2\n\tadd\tstack-[5], r0, r3\n\tand\t255, r3, r3\n\tor\tr2, r3, r2\n\tsstore\tr1, r2\n\tadd\t32, r0, r1\n\tst.2\t256, r1\n\tst.2\t288, r0\n\tadd\t@CPI0_4[0], r0, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.func_end0:\n\n__keccak256:\n.func_begin1:\n\tadd\t@CPI1_0[0], r0, r3\n\tsub.s!\t@CPI1_0[0], r1, r4\n\tadd.ge\tr3, r0, r1\n\tshl.s\t64, r1, r1\n\tsub.s!\t@CPI1_0[0], r2, r4\n\tadd.ge\tr3, r0, r2\n\tshl.s\t96, r2, r2\n\tor\tr2, r1, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI1_0[0], r2, r4\n\tadd.ge\tr3, r0, r2\n\tshl.s\t192, r2, r2\n\tor\tr2, r1, r1\n\tor\t@CPI1_1[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB1_2\n\tld\tr1, r1\n\tret\n.BB1_2:\n\tadd\tr0, r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.func_end1:\n\nabi_encode_string:\n.func_begin2:\n\tadd\t32, r0, r3\n\tst.1.inc\tr1, r3, r4\n\tld.1\tr2, r3\n\tst.1\tr4, r3\n\tadd\t64, r1, r1\n\tsub.s!\t0, r3, r4\n\tjump.eq\t@.BB2_3\n\tadd\tr0, r0, r4\n.BB2_2:\n\tadd\tr1, r4, r5\n\tadd\t32, r4, r4\n\tadd\tr4, r2, r6\n\tld.1\tr6, r6\n\tst.1\tr5, r6\n\tsub!\tr4, r3, r5\n\tjump.lt\t@.BB2_2\n.BB2_3:\n\tadd\tr1, r3, r2\n\tst.1\tr2, r0\n\tadd\t31, r3, r2\n\tsub.s\t32, r0, r3\n\tand\tr2, r3, r2\n\tadd\tr1, r2, r1\n\tret\n.func_end2:\n\nfun_transfer:\n.func_begin3:\n\tnop\tstack+=[4]\n\tand!\t@CPI3_0[0], r1, r1\n\tjump.eq\t@.BB3_1\n\tadd\tr3, r0, stack-[4]\n\tand!\t@CPI3_0[0], r2, r2\n\tadd\tr2, r0, stack-[2]\n\tjump.eq\t@.BB3_3\n\tadd\tr1, r0, stack-[3]\n\tst.1\t0, r1\n\tst.1\t32, r0\n\tadd\t@CPI3_1[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI3_1[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI3_2[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB3_5\n\tld\tr1, r1\n\tsload\tr1, r2\n\tadd\tstack-[4], r0, r1\n\tadd\tr2, r0, stack-[1]\n\tsub!\tr2, r1, r1\n\tjump.lt\t@.BB3_7\n\tadd\tstack-[3], r0, r1\n\tst.1\t0, r1\n\tst.1\t32, r0\n\tadd\t@CPI3_1[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI3_1[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI3_2[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB3_5\n\tadd\tstack-[4], r0, r2\n\tadd\tstack-[1], r0, r3\n\tsub\tr3, r2, r2\n\tld\tr1, r1\n\tsstore\tr1, r2\n\tadd\tstack-[2], r0, r1\n\tst.1\t0, r1\n\tadd\t@CPI3_1[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI3_1[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI3_2[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB3_5\n\tld\tr1, r1\n\tsload\tr1, r3\n\tadd\tstack-[4], r0, r4\n\tadd\tr3, r4, r2\n\tsub!\tr2, r3, r3\n\tadd\t0, r0, r3\n\tadd.lt\t1, r0, r3\n\tand!\t1, r3, r3\n\tjump.ne\t@.BB3_11\n\tsstore\tr1, r2\n\tld.1\t64, r1\n\tst.1\tr1, r4\n\tadd\t@CPI3_1[0], r0, r2\n\tcontext.gas_left\tr3\n\tsub.s!\t@CPI3_1[0], r3, r4\n\tadd.ge\tr2, r0, r3\n\tsub.s!\t@CPI3_1[0], r1, r4\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tshl.s\t192, r3, r2\n\tor\tr2, r1, r1\n\tor\t@CPI3_3[0], r1, r1\n\tadd\t32781, r0, r2\n\tadd\t3, r0, r3\n\tadd\t@CPI3_4[0], r0, r4\n\tadd\tstack-[3], r0, r5\n\tadd\tstack-[2], r0, r6\n\tnear_call\tr0, @__farcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r1\n\tjump.eq\t@.BB3_5\n\tret\n.BB3_5:\n\tadd\tr0, r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB3_1:\n\tld.1\t64, r1\n\tadd\t100, r1, r2\n\tadd\t@CPI3_13[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t68, r1, r2\n\tadd\t@CPI3_14[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t37, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI3_9[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI3_1[0], r0, r2\n\tsub.s!\t@CPI3_1[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI3_10[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB3_3:\n\tld.1\t64, r1\n\tadd\t100, r1, r2\n\tadd\t@CPI3_11[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t68, r1, r2\n\tadd\t@CPI3_12[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t35, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI3_9[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI3_1[0], r0, r2\n\tsub.s!\t@CPI3_1[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI3_10[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB3_7:\n\tld.1\t64, r1\n\tadd\t100, r1, r2\n\tadd\t@CPI3_7[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t68, r1, r2\n\tadd\t@CPI3_8[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t38, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI3_9[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI3_1[0], r0, r2\n\tsub.s!\t@CPI3_1[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI3_10[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB3_11:\n\tadd\t@CPI3_5[0], r0, r1\n\tst.1\t0, r1\n\tadd\t17, r0, r1\n\tst.1\t4, r1\n\tadd\t@CPI3_6[0], r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.func_end3:\n\nfun_approve:\n.func_begin4:\n\tnop\tstack+=[3]\n\tand!\t@CPI4_0[0], r1, r1\n\tjump.eq\t@.BB4_1\n\tadd\tr3, r0, stack-[2]\n\tand!\t@CPI4_0[0], r2, r2\n\tadd\tr2, r0, stack-[3]\n\tjump.eq\t@.BB4_3\n\tadd\tr1, r0, stack-[1]\n\tst.1\t0, r1\n\tadd\t1, r0, r1\n\tst.1\t32, r1\n\tadd\t@CPI4_1[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI4_1[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI4_2[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tadd\tstack-[3], r0, r4\n\tjump.eq\t@.BB4_5\n\tld\tr1, r1\n\tst.1\t0, r4\n\tst.1\t32, r1\n\tadd\t@CPI4_1[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI4_1[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI4_2[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tadd\tstack-[3], r0, r6\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB4_5\n\tld\tr1, r1\n\tadd\tstack-[2], r0, r2\n\tsstore\tr1, r2\n\tld.1\t64, r1\n\tst.1\tr1, r2\n\tadd\t@CPI4_1[0], r0, r2\n\tcontext.gas_left\tr3\n\tsub.s!\t@CPI4_1[0], r3, r4\n\tadd.ge\tr2, r0, r3\n\tsub.s!\t@CPI4_1[0], r1, r4\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tshl.s\t192, r3, r2\n\tor\tr2, r1, r1\n\tor\t@CPI4_3[0], r1, r1\n\tadd\t32781, r0, r2\n\tadd\t3, r0, r3\n\tadd\t@CPI4_4[0], r0, r4\n\tadd\tstack-[1], r0, r5\n\tnear_call\tr0, @__farcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r1\n\tjump.eq\t@.BB4_5\n\tret\n.BB4_5:\n\tadd\tr0, r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB4_1:\n\tld.1\t64, r1\n\tadd\t100, r1, r2\n\tadd\t@CPI4_9[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t68, r1, r2\n\tadd\t@CPI4_10[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t36, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI4_7[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI4_1[0], r0, r2\n\tsub.s!\t@CPI4_1[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI4_8[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB4_3:\n\tld.1\t64, r1\n\tadd\t100, r1, r2\n\tadd\t@CPI4_5[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t68, r1, r2\n\tadd\t@CPI4_6[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t34, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI4_7[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI4_1[0], r0, r2\n\tsub.s!\t@CPI4_1[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI4_8[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.func_end4:\n\n__farcall:\n.func_begin5:\n.tmp0:\n\tfar_call\tr1, r2, @.BB5_2\n.tmp1:\n\tadd\t1, r0, r2\n\tret\n.BB5_2:\n.tmp2:\n\tadd\tr0, r0, r2\n\tret\n.func_end5:\n\n__staticcall:\n.func_begin6:\n.tmp3:\n\tfar_call.static\tr1, r2, @.BB6_2\n.tmp4:\n\tadd\t1, r0, r2\n\tret\n.BB6_2:\n.tmp5:\n\tadd\tr0, r0, r2\n\tret\n.func_end6:\n\n\t.data\n\t.p2align\t5\ncalldatasize:\n\t.cell 0\n\n\t.p2align\t5\nptr_calldata:\n.cell\t0\n\n\t.note.GNU-stack\n\t.rodata\nCPI0_0:\nCPI1_0:\nCPI3_1:\nCPI4_1:\n\t.cell 4294967295\nCPI0_1:\n\t.cell 18446744073709551615\nCPI0_2:\n\t.cell -57896044618658097711785492504343953926634992332820282019728792003956564819968\nCPI0_3:\nCPI3_3:\nCPI4_3:\n\t.cell 904625697166532776746648320380374280103671757735618107014721178055227736064\nCPI0_4:\n\t.cell 53919893334301279589334030174039261352344891250716429051063678533632\nCPI0_5:\n\t.cell 1086394136\nCPI0_6:\n\t.cell 2757214934\nCPI0_7:\n\t.cell 2757214935\nCPI0_8:\n\t.cell 2835717307\nCPI0_9:\n\t.cell 3714247998\nCPI0_10:\n\t.cell 1086394137\nCPI0_11:\n\t.cell 1889567281\nCPI0_12:\n\t.cell 2514000705\nCPI0_13:\n\t.cell 599290588\nCPI0_14:\n\t.cell 599290589\nCPI0_15:\n\t.cell 826074471\nCPI0_16:\n\t.cell 961581905\nCPI0_17:\n\t.cell 117300739\nCPI0_18:\n\t.cell 157198259\nCPI0_19:\n\t.cell 404098525\nCPI0_20:\nCPI3_0:\nCPI4_0:\n\t.cell 1461501637330902918203684832716283019655932542975\nCPI0_21:\n\t.cell 2535301200456458802993406410752\nCPI0_22:\nCPI3_2:\nCPI4_2:\n\t.cell 904625697166532776746648320380374280103671760270919307471179981048634146816\nCPI0_23:\n\t.cell 14690266658072097593480850647027335513285713462661904985951319567533531463680\nCPI0_24:\n\t.cell 31354931781638678506476475496475743842680577777870365728514456330491174612855\nCPI0_25:\nCPI3_9:\nCPI4_7:\n\t.cell 3963877391197344453575983046348115674221700746820753546331534351508065746944\nCPI0_26:\nCPI3_10:\nCPI4_8:\n\t.cell 10458117451882892562347801444352\nCPI0_27:\n\t.cell -53278079350709166316280423202849322519190186591071851114874353210178472783461\nCPI0_28:\nCPI3_4:\n\t.cell -15402802100530019096323380498944738953123845089667699673314898783681816316945\nCPI0_29:\n\t.cell 31354931781638678563069525067809233856775101976563302031013534919694566519552\nCPI0_30:\n\t.cell 7922816251426433759354395033600\nCPI0_31:\nCPI3_5:\n\t.cell 35408467139433450592217433187231851964531694900788300625387963629091585785856\nCPI0_32:\nCPI3_6:\n\t.cell 2852213850513516153367582212096\nCPI0_33:\nCPI4_4:\n\t.cell -52305948261162578668367882225327028569797882979485679342215860919519743330011\nCPI0_34:\nCPI4_5:\n\t.cell 52219164999525148860834357634456956735281286572158918307284071279203377479680\nCPI0_35:\nCPI4_6:\n\t.cell 31354931781638678487916134672869638488806705378895508030211234510262059168357\nCPI0_36:\nCPI4_9:\n\t.cell 51742913093258732729005998692887265601192425265805909375210916622055285719040\nCPI0_37:\nCPI4_10:\n\t.cell 31354931781638678487916134672869638484047149969764982831501014746446650500196\nCPI0_38:\n\t.cell 31354931781638678538084197150757782427756587561754988975511141185730285404160\nCPI0_39:\n\t.cell -27889059366240281169193357100633332908378892778709981755071813198463099602853\nCPI0_40:\n\t.cell -18446744073709551616\nCPI0_41:\n\t.cell -18446744073709551488\nCPI1_1:\n\t.cell 904625697166532776746648320380374280103671755200316906558262375061821325312\nCPI3_7:\n\t.cell 44065838241030143116324720188876985940908656145555552347773292252211112312832\nCPI3_8:\n\t.cell 31354931781638678607228669297131712859100820671745083778533502622993977909346\nCPI3_11:\n\t.cell 45887578820189300338443374388718498632482616163288499555830078344056365121536\nCPI3_12:\n\t.cell 31354931781638678607228669297131712859126084785867252355217498662940140921970\nCPI3_13:\n\t.cell 45433405612597180762055095701412804886438245671210399661410036396145969725440\nCPI3_14:\n\t.cell 31354931781638678607228669297131712859107492772550336241160036866987736981860\n","bytecode":{"object":"00020000000000020009000000000002000100000001035500000060011002700000019c0010019d0000008001000039000000400010043f0000000101200190000000340000c13d0000000001000031000000040110008c000003650000413d0000000101000367000000000101043b000000e001100270000001a10210009c000001420000213d000001a90210009c000001720000213d000001ad0210009c000001fb0000613d000001ae0210009c0000021f0000613d000001af0110009c000003650000c13d0000000001000416000000000110004c000003650000c13d000000040100008a00000000011000310000019e02000041000000000310004c000000000300001900000000030240190000019e01100197000000000410004c000000000200a0190000019e0110009c00000000010300190000000001026019000000000110004c000003650000c13d0000000201000039000000000101041a000000400200043d00000000001204350000019c010000410000019c0320009c00000000010240190000004001100210000001b1011001c70000066a0001042e0000000001000416000000000110004c000003650000c13d00000000020000310000001f01200039000000200a00008a0000000004a1016f000000400100043d0000000003140019000000000443004b000000000400001900000001040040390000019d0530009c000003e00000213d0000000104400190000003e00000c13d000000400030043f0000001f0320018f00000001040003670000000505200272000000520000613d000000000600001900000005076002100000000008710019000000000774034f000000000707043b00000000007804350000000106600039000000000756004b0000004a0000413d000000000630004c000000610000613d0000000505500210000000000454034f00000000055100190000000303300210000000000605043300000000063601cf000000000636022f000000000404043b0000010003300089000000000434022f00000000033401cf000000000363019f00000000003504350000019e03000041000000600420008c000000000400001900000000040340190000019e05200197000000000650004c000000000300a0190000019e0550009c000000000304c019000000000330004c000003650000c13d00000000340104340000019d0540009c000003650000213d000000000221001900000000041400190000001f054000390000019e06000041000000000725004b000000000700001900000000070680190000019e055001970000019e08200197000000000985004b0000000006008019000000000585013f0000019e0550009c00000000050700190000000005066019000000000550004c000003650000c13d00000000050404330000019d0650009c000003e00000213d0000003f065000390000000006a6016f000000400b00043d00000000066b00190000000007b6004b000000000700001900000001070040390000019d0860009c000003e00000213d0000000107700190000003e00000c13d000000400060043f000000000c5b043600000020065000390000000007460019000000000727004b000003650000213d000000000750004c0000009e0000613d000000000700001900000020077000390000000008b70019000000000947001900000000090904330000000000980435000000000857004b000000970000413d00000000046b0019000000000004043500000000030304330000019d0430009c000003650000213d00000000031300190000001f043000390000019e05000041000000000624004b000000000600001900000000060580190000019e044001970000019e07200197000000000874004b0000000005008019000000000474013f0000019e0440009c00000000040600190000000004056019000000000440004c000003650000c13d00000000040304330000019d0540009c000003e00000213d0000003f054000390000000005a5016f000000400800043d0000000005580019000000000685004b000000000600001900000001060040390000019d0750009c000003e00000213d0000000106600190000003e00000c13d000000400050043f0000000005480436000800000005001d00000020054000390000000006350019000000000226004b000003650000213d00060000000c001d00090000000b001d00070000000a001d000000000240004c000000d50000613d000000000200001900000020022000390000000006820019000000000732001900000000070704330000000000760435000000000642004b000000ce0000413d0000000002580019000000000002043500000040011000390000000001010433000500000001001d000000ff0110008c0000000901000029000003650000213d0000000001010433000400000001001d0000019d0110009c000003e00000213d000100000008001d0000000301000039000300000001001d000000000101041a000000010210019000000001011002700000007f0310018f0000000001036019000200000001001d0000001f0110008c00000000010000190000000101002039000000010110018f000000000112004b000002190000c13d0000000201000029000000200110008c000001100000413d000000030100002900000000001004350000019c0100004100000000020004140000019c0320009c0000000001024019000000c0011002100000019f011001c70000801002000039066906640000040f0000000102200190000003650000613d00000004030000290000001f023000390000000502200270000000200330008c0000000002004019000000000301043b00000002010000290000001f01100039000000050110027000000000011300190000000002230019000000000312004b000001100000813d000000000002041b0000000102200039000000000312004b0000010c0000413d00000004010000290000001f0110008c0000049c0000a13d000000030100002900000000001004350000019c0100004100000000020004140000019c0320009c0000000001024019000000c0011002100000019f011001c70000801002000039066906640000040f000000010220019000000007020000290000000906000029000003650000613d000000040300002900000000032301700000002002000039000000000101043b000001300000613d0000002002000039000000000400001900000000056200190000000005050433000000000051041b000000200220003900000001011000390000002004400039000000000534004b000001280000413d0000000404000029000000000343004b0000013e0000813d00000004030000290000000303300210000000f80330018f000000010400008a000000000334022f000000000343013f000000090400002900000000024200190000000002020433000000000232016f000000000021041b000000010100003900000004020000290000000102200210000004a90000013d000001a20210009c000001c40000213d000001a60210009c000002420000613d000001a70210009c0000026e0000613d000001a80110009c000003650000c13d0000000001000416000000000110004c000003650000c13d000000040100008a00000000011000310000019e02000041000000000310004c000000000300001900000000030240190000019e01100197000000000410004c000000000200a0190000019e0110009c00000000010300190000000001026019000000000110004c000003650000c13d0000000405000039000000000405041a000000010640019000000001014002700000007f0210018f00000000010260190000001f0210008c00000000020000190000000102002039000000000224013f0000000102200190000002190000c13d000000400200043d0000000003120436000000000660004c0000037e0000c13d000001000500008a000000000454016f0000000000430435000000000110004c000000200400003900000000040060190000038b0000013d000001aa0210009c000002920000613d000001ab0210009c000002e10000613d000001ac0110009c000003650000c13d0000000001000416000000000110004c000003650000c13d000000040100008a00000000011000310000019e02000041000000400310008c000000000300001900000000030240190000019e01100197000000000410004c000000000200a0190000019e0110009c00000000010300190000000001026019000000000110004c000003650000c13d00000004010000390000000101100367000000000101043b000900000001001d000001b00110009c000003650000213d0000000001000411000700000001001d00000000001004350000000101000039000800000001001d000000200010043f0000019c0100004100000000020004140000019c0320009c0000000001024019000000c001100210000001b2011001c70000801002000039066906640000040f0000000102200190000003650000613d000000000101043b00000009020000290000000000200435000000200010043f0000019c0100004100000000020004140000019c0320009c0000000001024019000000c001100210000001b2011001c70000801002000039066906640000040f0000000102200190000003650000613d000000000101043b000000000101041a00000024020000390000000102200367000000000202043b0000000003120019000000000123004b000000000100001900000001010040390000000101100190000003c50000c13d00000007010000290000000902000029066905f80000040f000000400100043d000000080200002900000000002104350000019c020000410000019c0310009c00000000010280190000004001100210000001b1011001c70000066a0001042e000001a30210009c000002fd0000613d000001a40210009c0000034f0000613d000001a50110009c000003650000c13d0000000001000416000000000110004c000003650000c13d000000040100008a00000000011000310000019e02000041000000400310008c000000000300001900000000030240190000019e01100197000000000410004c000000000200a0190000019e0110009c00000000010300190000000001026019000000000110004c000003650000c13d00000001020003670000000401200370000000000101043b000001b00310009c000003650000213d0000002402200370000000000302043b000001b00230009c000003650000213d00000000001004350000000101000039000000200010043f0000004002000039000900000002001d0000000001000019000800000003001d0669052e0000040f00000008020000290000000000200435000000200010043f000000000100001900000009020000290669052e0000040f000000000101041a000000400200043d00000000001204350000019c010000410000019c0320009c00000000010240190000004001100210000001b1011001c70000066a0001042e0000000001000416000000000110004c000003650000c13d000000040100008a00000000011000310000019e02000041000000000310004c000000000300001900000000030240190000019e01100197000000000410004c000000000200a0190000019e0110009c00000000010300190000000001026019000000000110004c000003650000c13d0000000303000039000000000203041a000000010420019000000001012002700000007f0510018f000000000601001900000000060560190000001f0560008c00000000050000190000000105002039000000000552013f0000000105500190000003670000613d000001bb0100004100000000001004350000002201000039000000040010043f000001bc010000410000066b000104300000000001000416000000000110004c000003650000c13d000000040100008a00000000011000310000019e02000041000000400310008c000000000300001900000000030240190000019e01100197000000000410004c000000000200a0190000019e0110009c00000000010300190000000001026019000000000110004c000003650000c13d00000001010003670000000402100370000000000202043b000001b00320009c000003650000213d0000002401100370000000000301043b0000000001000411066905f80000040f0000000101000039000000400200043d00000000001204350000019c010000410000019c0320009c00000000010240190000004001100210000001b1011001c70000066a0001042e0000000001000416000000000110004c000003650000c13d000000040100008a00000000011000310000019e02000041000000400310008c000000000300001900000000030240190000019e01100197000000000410004c000000000200a0190000019e0110009c00000000010300190000000001026019000000000110004c000003650000c13d00000001010003670000000402100370000000000402043b000001b00240009c000003650000213d0000002401100370000000000501043b000000000140004c000003a40000c13d000000400100043d0000004402100039000001b903000041000000000032043500000024021000390000001f030000390000000000320435000001b50200004100000000002104350000000402100039000000200300003900000000003204350000019c020000410000019c0310009c00000000010280190000004001100210000001ba011001c70000066b000104300000000001000416000000000110004c000003650000c13d000000040100008a00000000011000310000019e02000041000000200310008c000000000300001900000000030240190000019e01100197000000000410004c000000000200a0190000019e0110009c00000000010300190000000001026019000000000110004c000003650000c13d00000004010000390000000101100367000000000101043b000001b00210009c000003650000213d0000000000100435000000200000043f000000400200003900000000010000190669052e0000040f000000000101041a000000400200043d00000000001204350000019c010000410000019c0320009c00000000010240190000004001100210000001b1011001c70000066a0001042e0000000001000416000000000110004c000003650000c13d000000040100008a00000000011000310000019e02000041000000600310008c000000000300001900000000030240190000019e01100197000000000410004c000000000200a0190000019e0110009c00000000010300190000000001026019000000000110004c000003650000c13d00000001010003670000000402100370000000000402043b000001b00240009c000003650000213d0000002402100370000000000202043b000900000002001d000001b00220009c000003650000213d0000004401100370000000000101043b000700000001001d00000000004004350000000101000039000600000001001d000000200010043f0000019c0100004100000000020004140000019c0320009c0000000001024019000000c001100210000001b2011001c70000801002000039000800000004001d066906640000040f0000000102200190000003650000613d000000000101043b0000000002000411000500000002001d0000000000200435000000200010043f0000019c0100004100000000020004140000019c0320009c0000000001024019000000c001100210000001b2011001c70000801002000039066906640000040f00000008030000290000000102200190000003650000613d000000000101043b000000000201041a000000010100008a000000000112004b000004020000c13d0000000001030019000000090200002900000007030000290669055a0000040f000000400100043d000000060200002900000000002104350000019c020000410000019c0310009c00000000010280190000004001100210000001b1011001c70000066a0001042e0000000001000416000000000110004c000003650000c13d000000040100008a00000000011000310000019e02000041000000000310004c000000000300001900000000030240190000019e01100197000000000410004c000000000200a0190000019e0110009c00000000010300190000000001026019000000000110004c000003650000c13d0000000501000039000000000101041a000000ff0110018f000000400200043d00000000001204350000019c010000410000019c0320009c00000000010240190000004001100210000001b1011001c70000066a0001042e0000000001000416000000000110004c000003650000c13d000000040100008a00000000011000310000019e02000041000000400310008c000000000300001900000000030240190000019e01100197000000000410004c000000000200a0190000019e0110009c00000000010300190000000001026019000000000110004c000003650000c13d00000001010003670000000402100370000000000202043b000900000002001d000001b00220009c000003650000213d0000002401100370000000000101043b000800000001001d0000000001000411000600000001001d00000000001004350000000101000039000700000001001d000000200010043f0000019c0100004100000000020004140000019c0320009c0000000001024019000000c001100210000001b2011001c70000801002000039066906640000040f0000000102200190000003650000613d000000000101043b00000009020000290000000000200435000000200010043f0000019c0100004100000000020004140000019c0320009c0000000001024019000000c001100210000001b2011001c70000801002000039066906640000040f0000000102200190000003650000613d000000000101043b000000000101041a0000000803000029000000000231004b000003f50000813d000000400100043d0000006402100039000001b30300004100000000003204350000004402100039000001b4030000410000000000320435000000240210003900000025030000390000000000320435000001b50200004100000000002104350000000402100039000000200300003900000000003204350000019c020000410000019c0310009c00000000010280190000004001100210000001b6011001c70000066b000104300000000001000416000000000110004c000003650000c13d000000040100008a00000000011000310000019e02000041000000400310008c000000000300001900000000030240190000019e01100197000000000410004c000000000200a0190000019e0110009c00000000010300190000000001026019000000000110004c000003650000c13d00000001010003670000000402100370000000000202043b000001b00320009c000003710000a13d00000000010000190000066b00010430000000800060043f000000000440004c000003cb0000c13d000001000300008a000000000232016f000000a00020043f000000000160004c000000c001000039000000a001006039000003da0000013d0000002401100370000000000301043b00000000010004110669055a0000040f0000000101000039000000400200043d00000000001204350000019c010000410000019c0320009c00000000010240190000004001100210000001b1011001c70000066a0001042e0000000000500435000000000410004c00000000040000190000038b0000613d000001b70500004100000000040000190000000006430019000000000705041a000000000076043500000001055000390000002004400039000000000614004b000003840000413d0000003f01400039000000200300008a000000000331016f0000000001230019000000000331004b000000000400001900000001040040390000019d0310009c000003e00000213d0000000103400190000003e00000c13d000000400010043f000900000001001d066905440000040f000000090400002900000000014100490000019c020000410000019c0310009c00000000010280190000019c0340009c000000000204401900000040022002100000006001100210000000000121019f0000066a0001042e0000000201000039000000000301041a0000000002530019000000000332004b000000000300001900000001030040390000000103300190000003c50000c13d000800000005001d000000000021041b0000000000400435000000200000043f0000019c0100004100000000020004140000019c0320009c0000000001024019000000c001100210000001b2011001c70000801002000039000900000004001d066906640000040f00000009060000290000000102200190000003650000613d000000000101043b000000000301041a00000008040000290000000002430019000000000332004b000000000300001900000001030040390000000103300190000004170000613d000001bb0100004100000000001004350000001101000039000000040010043f000001bc010000410000066b000104300000000000300435000000a001000039000000000260004c000003e60000613d000001c30200004100000000040000190000000003040019000000000402041a000000a005300039000000000045043500000001022000390000002004300039000000000564004b000003d10000413d000000c0013000390000001f01100039000000200200008a000000000121016f000001c402100041000001c50220009c000003e60000813d000001bb0100004100000000001004350000004101000039000000040010043f000001bc010000410000066b00010430000900000001001d000000400010043f0000008002000039066905440000040f000000090400002900000000014100490000019c020000410000019c0310009c00000000010280190000019c0340009c000000000204401900000040022002100000006001100210000000000121019f0000066a0001042e000000000331004900000006010000290000000902000029066905f80000040f000000400100043d000000070200002900000000002104350000019c020000410000019c0310009c00000000010280190000004001100210000001b1011001c70000066a0001042e0000000701000029000000000112004b000004340000813d000000400100043d0000004402100039000001c203000041000000000032043500000024021000390000001d030000390000000000320435000001b50200004100000000002104350000000402100039000000200300003900000000003204350000019c020000410000019c0310009c00000000010280190000004001100210000001ba011001c70000066b00010430000000000021041b000000400100043d00000000004104350000019c0200004100000000030004140000019c0430009c00000000030280190000019c0410009c00000000010280190000004001100210000000c002300210000000000112019f0000019f011001c70000800d020000390000000303000039000001b80400004100000000050000190669065f0000040f0000000101200190000003650000613d000000400100043d000000010200003900000000002104350000019c020000410000019c0310009c00000000010280190000004001100210000001b1011001c70000066a0001042e000400000002001d000000000130004c0000044c0000c13d000000400100043d0000006402100039000001c00300004100000000003204350000004402100039000001c1030000410000000000320435000000240210003900000024030000390000000000320435000001b50200004100000000002104350000000402100039000000200300003900000000003204350000019c020000410000019c0310009c00000000010280190000004001100210000001b6011001c70000066b000104300000000501000029000001b001100198000500000001001d000004650000c13d000000400100043d0000006402100039000001be0300004100000000003204350000004402100039000001bf030000410000000000320435000000240210003900000022030000390000000000320435000001b50200004100000000002104350000000402100039000000200300003900000000003204350000019c020000410000019c0310009c00000000010280190000004001100210000001b6011001c70000066b00010430000000080100002900000000001004350000000601000029000000200010043f0000019c0100004100000000020004140000019c0320009c0000000001024019000000c001100210000001b2011001c70000801002000039066906640000040f0000000102200190000003650000613d000000000101043b00000005020000290000000000200435000000200010043f0000019c0100004100000000020004140000019c0320009c0000000001024019000000c001100210000001b2011001c70000801002000039066906640000040f00000004030000290000000102200190000003650000613d00000007020000290000000002230049000000000101043b000000000021041b000000400100043d00000000002104350000019c0200004100000000030004140000019c0430009c00000000030280190000019c0410009c00000000010280190000004001100210000000c002300210000000000112019f0000019f011001c70000800d020000390000000303000039000001bd04000041000000080500002900000005060000290669065f0000040f00000008030000290000000101200190000002d40000c13d000003650000013d0000000401000029000000000110004c0000000001000019000004a20000613d0000000601000029000000000101043300000004040000290000000302400210000000010300008a000000000223022f000000000232013f000000000221016f0000000101400210000000000112019f0000000302000029000000000012041b00000001010000290000000001010433000900000001001d0000019d0110009c000003e00000213d0000000401000039000600000001001d000000000101041a000000010210019000000001021002700000007f0320018f0000000002036019000400000002001d0000001f0220008c00000000020000190000000102002039000000000121013f0000000101100190000002190000c13d0000000401000029000000200110008c000004df0000413d000000060100002900000000001004350000019c0100004100000000020004140000019c0320009c0000000001024019000000c0011002100000019f011001c70000801002000039066906640000040f0000000102200190000003650000613d00000009030000290000001f023000390000000502200270000000200330008c0000000002004019000000000301043b00000004010000290000001f01100039000000050110027000000000011300190000000002230019000000000312004b000004df0000813d000000000002041b0000000102200039000000000312004b000004db0000413d00000009010000290000001f0110008c000005110000a13d000000060100002900000000001004350000019c0100004100000000020004140000019c0320009c0000000001024019000000c0011002100000019f011001c70000801002000039066906640000040f000000010220019000000007020000290000000106000029000003650000613d000000090300002900000000032301700000002002000039000000000101043b000004ff0000613d0000002002000039000000000400001900000000056200190000000005050433000000000051041b000000200220003900000001011000390000002004400039000000000534004b000004f70000413d0000000904000029000000000343004b0000050d0000813d00000009030000290000000303300210000000f80330018f000000010400008a000000000334022f000000000343013f000000010400002900000000024200190000000002020433000000000232016f000000000021041b0000000101000039000000090200002900000001022002100000051e0000013d0000000901000029000000000110004c0000000001000019000005170000613d0000000801000029000000000101043300000009040000290000000302400210000000010300008a000000000223022f000000000232013f000000000221016f0000000101400210000000000112019f0000000602000029000000000012041b0000000501000039000000000201041a000001000300008a000000000232016f0000000503000029000000ff0330018f000000000232019f000000000021041b000000200100003900000100001004430000012000000443000001a0010000410000066a0001042e0000019c030000410000019c0410009c000000000103801900000040011002100000019c0420009c00000000020380190000006002200210000000000112019f00000000020004140000019c0420009c0000000002038019000000c002200210000000000112019f000001c6011001c70000801002000039066906640000040f0000000102200190000005420000613d000000000101043b000000000001042d00000000010000190000066b0001043000000020030000390000000004310436000000000302043300000000003404350000004001100039000000000430004c000005530000613d000000000400001900000000054100190000002004400039000000000624001900000000060604330000000000650435000000000534004b0000054c0000413d000000000231001900000000000204350000001f02300039000000200300008a000000000232016f0000000001210019000000000001042d0004000000000002000001b001100198000005b30000613d000400000003001d000001b002200198000200000002001d000005c80000613d000300000001001d0000000000100435000000200000043f0000019c0100004100000000020004140000019c0320009c0000000001024019000000c001100210000001b2011001c70000801002000039066906640000040f0000000102200190000005b10000613d000000000101043b000000000201041a0000000401000029000100000002001d000000000112004b000005dd0000413d00000003010000290000000000100435000000200000043f0000019c0100004100000000020004140000019c0320009c0000000001024019000000c001100210000001b2011001c70000801002000039066906640000040f0000000102200190000005b10000613d000000040200002900000001030000290000000002230049000000000101043b000000000021041b000000020100002900000000001004350000019c0100004100000000020004140000019c0320009c0000000001024019000000c001100210000001b2011001c70000801002000039066906640000040f0000000102200190000005b10000613d000000000101043b000000000301041a00000004040000290000000002430019000000000332004b000000000300001900000001030040390000000103300190000005f20000c13d000000000021041b000000400100043d00000000004104350000019c0200004100000000030004140000019c0430009c00000000030280190000019c0410009c00000000010280190000004001100210000000c002300210000000000112019f0000019f011001c70000800d020000390000000303000039000001b804000041000000030500002900000002060000290669065f0000040f0000000101200190000005b10000613d000000000001042d00000000010000190000066b00010430000000400100043d0000006402100039000001cb0300004100000000003204350000004402100039000001cc030000410000000000320435000000240210003900000025030000390000000000320435000001b50200004100000000002104350000000402100039000000200300003900000000003204350000019c020000410000019c0310009c00000000010280190000004001100210000001b6011001c70000066b00010430000000400100043d0000006402100039000001c90300004100000000003204350000004402100039000001ca030000410000000000320435000000240210003900000023030000390000000000320435000001b50200004100000000002104350000000402100039000000200300003900000000003204350000019c020000410000019c0310009c00000000010280190000004001100210000001b6011001c70000066b00010430000000400100043d0000006402100039000001c70300004100000000003204350000004402100039000001c8030000410000000000320435000000240210003900000026030000390000000000320435000001b50200004100000000002104350000000402100039000000200300003900000000003204350000019c020000410000019c0310009c00000000010280190000004001100210000001b6011001c70000066b00010430000001bb0100004100000000001004350000001101000039000000040010043f000001bc010000410000066b000104300003000000000002000001b001100198000006350000613d000200000003001d000001b002200198000300000002001d0000064a0000613d000100000001001d00000000001004350000000101000039000000200010043f0000019c0100004100000000020004140000019c0320009c0000000001024019000000c001100210000001b2011001c70000801002000039066906640000040f00000001022001900000000304000029000006330000613d000000000101043b0000000000400435000000200010043f0000019c0100004100000000020004140000019c0320009c0000000001024019000000c001100210000001b2011001c70000801002000039066906640000040f00000003060000290000000102200190000006330000613d000000000101043b0000000202000029000000000021041b000000400100043d00000000002104350000019c0200004100000000030004140000019c0430009c00000000030280190000019c0410009c00000000010280190000004001100210000000c002300210000000000112019f0000019f011001c70000800d020000390000000303000039000001bd0400004100000001050000290669065f0000040f0000000101200190000006330000613d000000000001042d00000000010000190000066b00010430000000400100043d0000006402100039000001c00300004100000000003204350000004402100039000001c1030000410000000000320435000000240210003900000024030000390000000000320435000001b50200004100000000002104350000000402100039000000200300003900000000003204350000019c020000410000019c0310009c00000000010280190000004001100210000001b6011001c70000066b00010430000000400100043d0000006402100039000001be0300004100000000003204350000004402100039000001bf030000410000000000320435000000240210003900000022030000390000000000320435000001b50200004100000000002104350000000402100039000000200300003900000000003204350000019c020000410000019c0310009c00000000010280190000004001100210000001b6011001c70000066b0001043000000662002104210000000102000039000000000001042d0000000002000019000000000001042d00000667002104230000000102000039000000000001042d0000000002000019000000000001042d00000669000004320000066a0001042e0000066b00010430000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff000000000000000000000000000000000000000000000000ffffffffffffffff8000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000002000000000000000000000000000000002000000000000000000000000000000400000010000000000000000000000000000000000000000000000000000000000000000000000000040c10f1800000000000000000000000000000000000000000000000000000000a457c2d600000000000000000000000000000000000000000000000000000000a457c2d700000000000000000000000000000000000000000000000000000000a9059cbb00000000000000000000000000000000000000000000000000000000dd62ed3e0000000000000000000000000000000000000000000000000000000040c10f190000000000000000000000000000000000000000000000000000000070a082310000000000000000000000000000000000000000000000000000000095d89b410000000000000000000000000000000000000000000000000000000023b872dc0000000000000000000000000000000000000000000000000000000023b872dd00000000000000000000000000000000000000000000000000000000313ce56700000000000000000000000000000000000000000000000000000000395093510000000000000000000000000000000000000000000000000000000006fdde0300000000000000000000000000000000000000000000000000000000095ea7b30000000000000000000000000000000000000000000000000000000018160ddd000000000000000000000000ffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000200000000000000000000000000200000000000000000000000000000000000040000000000000000000000000207a65726f00000000000000000000000000000000000000000000000000000045524332303a2064656372656173656420616c6c6f77616e63652062656c6f7708c379a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000840000000000000000000000008a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19bddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef45524332303a206d696e7420746f20746865207a65726f20616464726573730000000000000000000000000000000000000000640000000000000000000000004e487b710000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000000000000000000000008c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925737300000000000000000000000000000000000000000000000000000000000045524332303a20617070726f766520746f20746865207a65726f206164647265726573730000000000000000000000000000000000000000000000000000000045524332303a20617070726f76652066726f6d20746865207a65726f2061646445524332303a20696e73756666696369656e7420616c6c6f77616e6365000000c2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85bffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff00000000000000800200000000000000000000000000000000000000000000000000000000000000616c616e6365000000000000000000000000000000000000000000000000000045524332303a207472616e7366657220616d6f756e7420657863656564732062657373000000000000000000000000000000000000000000000000000000000045524332303a207472616e7366657220746f20746865207a65726f2061646472647265737300000000000000000000000000000000000000000000000000000045524332303a207472616e736665722066726f6d20746865207a65726f2061640000000000000000000000000000000000000000000000000000000000000000b364ddbf62f2a32b5e7a71e5f754a6311e8665c7b7e61bd7d4aae58227db2750"},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","increaseAllowance(address,uint256)":"39509351","mint(address,uint256)":"40c10f19","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"irOptimized":"/// @use-src 25:\"@openzeppelin/contracts/token/ERC20/ERC20.sol\", 26:\"@openzeppelin/contracts/token/ERC20/IERC20.sol\", 27:\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\", 35:\"@openzeppelin/contracts/utils/Context.sol\", 46:\"contracts/MyERC20.sol\"\nobject \"MyERC20_8895\" {\n code {\n {\n /// @src 46:122:574 \"contract MyERC20 is ERC20 {...\"\n mstore(64, memoryguard(0x80))\n if callvalue() { revert(0, 0) }\n let programSize := datasize(\"MyERC20_8895\")\n let argSize := sub(codesize(), programSize)\n let memoryDataOffset := allocate_memory(argSize)\n codecopy(memoryDataOffset, programSize, argSize)\n let _1 := add(memoryDataOffset, argSize)\n if slt(sub(_1, memoryDataOffset), 96)\n {\n revert(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 46:122:574 \"contract MyERC20 is ERC20 {...\"\n let offset := mload(memoryDataOffset)\n let _2 := sub(shl(64, 1), 1)\n if gt(offset, _2)\n {\n revert(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 46:122:574 \"contract MyERC20 is ERC20 {...\"\n let value0 := abi_decode_string_fromMemory(add(memoryDataOffset, offset), _1)\n let _3 := 32\n let offset_1 := mload(add(memoryDataOffset, _3))\n if gt(offset_1, _2)\n {\n revert(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 46:122:574 \"contract MyERC20 is ERC20 {...\"\n let value1 := abi_decode_string_fromMemory(add(memoryDataOffset, offset_1), _1)\n let value := mload(add(memoryDataOffset, 64))\n let _4 := and(value, 0xff)\n if iszero(eq(value, _4))\n {\n revert(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 46:122:574 \"contract MyERC20 is ERC20 {...\"\n let newLen := mload(value0)\n if gt(newLen, _2)\n {\n mstore(/** @src -1:-1:-1 */ 0, /** @src 46:122:574 \"contract MyERC20 is ERC20 {...\" */ shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(/** @src -1:-1:-1 */ 0, /** @src 46:122:574 \"contract MyERC20 is ERC20 {...\" */ 0x24)\n }\n /// @src 25:2044:2057 \"_name = name_\"\n let _5 := 0x03\n /// @src 46:122:574 \"contract MyERC20 is ERC20 {...\"\n let _6 := sload(/** @src 25:2044:2057 \"_name = name_\" */ _5)\n /// @src 46:122:574 \"contract MyERC20 is ERC20 {...\"\n let length := /** @src -1:-1:-1 */ 0\n /// @src 46:122:574 \"contract MyERC20 is ERC20 {...\"\n let _7 := 1\n length := shr(_7, _6)\n let outOfPlaceEncoding := and(_6, _7)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, _3))\n {\n mstore(/** @src -1:-1:-1 */ 0, /** @src 46:122:574 \"contract MyERC20 is ERC20 {...\" */ shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(/** @src -1:-1:-1 */ 0, /** @src 46:122:574 \"contract MyERC20 is ERC20 {...\" */ 0x24)\n }\n let _8 := 31\n if gt(length, _8)\n {\n mstore(/** @src -1:-1:-1 */ 0, /** @src 25:2044:2057 \"_name = name_\" */ _5)\n /// @src 46:122:574 \"contract MyERC20 is ERC20 {...\"\n let data := keccak256(/** @src -1:-1:-1 */ 0, /** @src 46:122:574 \"contract MyERC20 is ERC20 {...\" */ _3)\n let deleteStart := add(data, shr(5, add(newLen, _8)))\n if lt(newLen, _3) { deleteStart := data }\n let _9 := add(data, shr(5, add(length, _8)))\n let start := deleteStart\n for { } lt(start, _9) { start := add(start, _7) }\n {\n sstore(start, /** @src -1:-1:-1 */ 0)\n }\n }\n /// @src 46:122:574 \"contract MyERC20 is ERC20 {...\"\n let srcOffset := /** @src -1:-1:-1 */ 0\n /// @src 46:122:574 \"contract MyERC20 is ERC20 {...\"\n srcOffset := _3\n switch gt(newLen, _8)\n case 1 {\n let loopEnd := and(newLen, not(31))\n mstore(/** @src -1:-1:-1 */ 0, /** @src 25:2044:2057 \"_name = name_\" */ _5)\n /// @src 46:122:574 \"contract MyERC20 is ERC20 {...\"\n let dstPtr := keccak256(/** @src -1:-1:-1 */ 0, /** @src 46:122:574 \"contract MyERC20 is ERC20 {...\" */ _3)\n let i := /** @src -1:-1:-1 */ 0\n /// @src 46:122:574 \"contract MyERC20 is ERC20 {...\"\n for { } lt(i, loopEnd) { i := add(i, _3) }\n {\n sstore(dstPtr, mload(add(value0, srcOffset)))\n dstPtr := add(dstPtr, _7)\n srcOffset := add(srcOffset, _3)\n }\n if lt(loopEnd, newLen)\n {\n let lastValue := mload(add(value0, srcOffset))\n sstore(dstPtr, and(lastValue, not(shr(and(shl(/** @src 25:2044:2057 \"_name = name_\" */ _5, /** @src 46:122:574 \"contract MyERC20 is ERC20 {...\" */ newLen), 248), not(0)))))\n }\n sstore(/** @src 25:2044:2057 \"_name = name_\" */ _5, /** @src 46:122:574 \"contract MyERC20 is ERC20 {...\" */ add(shl(_7, newLen), _7))\n }\n default {\n let value_1 := /** @src -1:-1:-1 */ 0\n /// @src 46:122:574 \"contract MyERC20 is ERC20 {...\"\n if newLen\n {\n value_1 := mload(add(value0, srcOffset))\n }\n sstore(/** @src 25:2044:2057 \"_name = name_\" */ _5, /** @src 46:122:574 \"contract MyERC20 is ERC20 {...\" */ or(and(value_1, not(shr(shl(/** @src 25:2044:2057 \"_name = name_\" */ _5, /** @src 46:122:574 \"contract MyERC20 is ERC20 {...\" */ newLen), not(0)))), shl(_7, newLen)))\n }\n let newLen_1 := mload(value1)\n if gt(newLen_1, _2)\n {\n mstore(/** @src -1:-1:-1 */ 0, /** @src 46:122:574 \"contract MyERC20 is ERC20 {...\" */ shl(224, 0x4e487b71))\n mstore(/** @src 25:2067:2084 \"_symbol = symbol_\" */ 0x04, /** @src 46:122:574 \"contract MyERC20 is ERC20 {...\" */ 0x41)\n revert(/** @src -1:-1:-1 */ 0, /** @src 46:122:574 \"contract MyERC20 is ERC20 {...\" */ 0x24)\n }\n /// @src 25:2067:2084 \"_symbol = symbol_\"\n let _10 := 0x04\n /// @src 46:122:574 \"contract MyERC20 is ERC20 {...\"\n let _11 := sload(/** @src 25:2067:2084 \"_symbol = symbol_\" */ _10)\n /// @src 46:122:574 \"contract MyERC20 is ERC20 {...\"\n let length_1 := /** @src -1:-1:-1 */ 0\n /// @src 46:122:574 \"contract MyERC20 is ERC20 {...\"\n length_1 := shr(_7, _11)\n let outOfPlaceEncoding_1 := and(_11, _7)\n if iszero(outOfPlaceEncoding_1)\n {\n length_1 := and(length_1, 0x7f)\n }\n if eq(outOfPlaceEncoding_1, lt(length_1, _3))\n {\n mstore(/** @src -1:-1:-1 */ 0, /** @src 46:122:574 \"contract MyERC20 is ERC20 {...\" */ shl(224, 0x4e487b71))\n mstore(/** @src 25:2067:2084 \"_symbol = symbol_\" */ _10, /** @src 46:122:574 \"contract MyERC20 is ERC20 {...\" */ 0x22)\n revert(/** @src -1:-1:-1 */ 0, /** @src 46:122:574 \"contract MyERC20 is ERC20 {...\" */ 0x24)\n }\n if gt(length_1, _8)\n {\n mstore(/** @src -1:-1:-1 */ 0, /** @src 25:2067:2084 \"_symbol = symbol_\" */ _10)\n /// @src 46:122:574 \"contract MyERC20 is ERC20 {...\"\n let data_1 := keccak256(/** @src -1:-1:-1 */ 0, /** @src 46:122:574 \"contract MyERC20 is ERC20 {...\" */ _3)\n let deleteStart_1 := add(data_1, shr(5, add(newLen_1, _8)))\n if lt(newLen_1, _3) { deleteStart_1 := data_1 }\n let _12 := add(data_1, shr(5, add(length_1, _8)))\n let start_1 := deleteStart_1\n for { } lt(start_1, _12) { start_1 := add(start_1, _7) }\n {\n sstore(start_1, /** @src -1:-1:-1 */ 0)\n }\n }\n /// @src 46:122:574 \"contract MyERC20 is ERC20 {...\"\n let srcOffset_1 := /** @src -1:-1:-1 */ 0\n /// @src 46:122:574 \"contract MyERC20 is ERC20 {...\"\n srcOffset_1 := _3\n switch gt(newLen_1, _8)\n case 1 {\n let loopEnd_1 := and(newLen_1, not(31))\n mstore(/** @src -1:-1:-1 */ 0, /** @src 25:2067:2084 \"_symbol = symbol_\" */ _10)\n /// @src 46:122:574 \"contract MyERC20 is ERC20 {...\"\n let dstPtr_1 := keccak256(/** @src -1:-1:-1 */ 0, /** @src 46:122:574 \"contract MyERC20 is ERC20 {...\" */ _3)\n let i_1 := /** @src -1:-1:-1 */ 0\n /// @src 46:122:574 \"contract MyERC20 is ERC20 {...\"\n for { } lt(i_1, loopEnd_1) { i_1 := add(i_1, _3) }\n {\n sstore(dstPtr_1, mload(add(value1, srcOffset_1)))\n dstPtr_1 := add(dstPtr_1, _7)\n srcOffset_1 := add(srcOffset_1, _3)\n }\n if lt(loopEnd_1, newLen_1)\n {\n let lastValue_1 := mload(add(value1, srcOffset_1))\n sstore(dstPtr_1, and(lastValue_1, not(shr(and(shl(/** @src 25:2044:2057 \"_name = name_\" */ _5, /** @src 46:122:574 \"contract MyERC20 is ERC20 {...\" */ newLen_1), 248), not(0)))))\n }\n sstore(/** @src 25:2067:2084 \"_symbol = symbol_\" */ _10, /** @src 46:122:574 \"contract MyERC20 is ERC20 {...\" */ add(shl(_7, newLen_1), _7))\n }\n default {\n let value_2 := /** @src -1:-1:-1 */ 0\n /// @src 46:122:574 \"contract MyERC20 is ERC20 {...\"\n if newLen_1\n {\n value_2 := mload(add(value1, srcOffset_1))\n }\n sstore(/** @src 25:2067:2084 \"_symbol = symbol_\" */ _10, /** @src 46:122:574 \"contract MyERC20 is ERC20 {...\" */ or(and(value_2, not(shr(shl(/** @src 25:2044:2057 \"_name = name_\" */ _5, /** @src 46:122:574 \"contract MyERC20 is ERC20 {...\" */ newLen_1), not(0)))), shl(_7, newLen_1)))\n }\n sstore(/** @src 46:319:340 \"_decimals = decimals_\" */ 0x05, /** @src 46:122:574 \"contract MyERC20 is ERC20 {...\" */ or(and(sload(/** @src 46:319:340 \"_decimals = decimals_\" */ 0x05), /** @src 46:122:574 \"contract MyERC20 is ERC20 {...\" */ not(255)), _4))\n let _13 := mload(64)\n let _14 := datasize(\"MyERC20_8895_deployed\")\n codecopy(_13, dataoffset(\"MyERC20_8895_deployed\"), _14)\n return(_13, _14)\n }\n function allocate_memory(size) -> memPtr\n {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n if or(gt(newFreePtr, sub(shl(64, 1), 1)), lt(newFreePtr, memPtr))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n mstore(64, newFreePtr)\n }\n function abi_decode_string_fromMemory(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let _1 := mload(offset)\n if gt(_1, sub(shl(64, 1), 1))\n {\n mstore(/** @src -1:-1:-1 */ 0, /** @src 46:122:574 \"contract MyERC20 is ERC20 {...\" */ shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(/** @src -1:-1:-1 */ 0, /** @src 46:122:574 \"contract MyERC20 is ERC20 {...\" */ 0x24)\n }\n let _2 := 0x20\n let array_1 := allocate_memory(add(and(add(_1, 0x1f), not(31)), _2))\n mstore(array_1, _1)\n if gt(add(add(offset, _1), _2), end)\n {\n revert(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 46:122:574 \"contract MyERC20 is ERC20 {...\"\n let i := /** @src -1:-1:-1 */ 0\n /// @src 46:122:574 \"contract MyERC20 is ERC20 {...\"\n for { } lt(i, _1) { i := add(i, _2) }\n {\n mstore(add(add(array_1, i), _2), mload(add(add(offset, i), _2)))\n }\n mstore(add(add(array_1, _1), _2), /** @src -1:-1:-1 */ 0)\n /// @src 46:122:574 \"contract MyERC20 is ERC20 {...\"\n array := array_1\n }\n }\n /// @use-src 25:\"@openzeppelin/contracts/token/ERC20/ERC20.sol\", 35:\"@openzeppelin/contracts/utils/Context.sol\", 46:\"contracts/MyERC20.sol\"\n object \"MyERC20_8895_deployed\" {\n code {\n {\n /// @src 46:122:574 \"contract MyERC20 is ERC20 {...\"\n let _1 := memoryguard(0x80)\n let _2 := 64\n mstore(_2, _1)\n let _3 := 4\n if iszero(lt(calldatasize(), _3))\n {\n let _4 := 0\n switch shr(224, calldataload(_4))\n case 0x06fdde03 {\n if callvalue() { revert(_4, _4) }\n if slt(add(calldatasize(), not(3)), _4) { revert(_4, _4) }\n let ret := _4\n let slotValue := sload(/** @src 25:2242:2247 \"_name\" */ 0x03)\n /// @src 46:122:574 \"contract MyERC20 is ERC20 {...\"\n let length := _4\n let _5 := 1\n length := shr(_5, slotValue)\n let outOfPlaceEncoding := and(slotValue, _5)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n let _6 := 32\n if eq(outOfPlaceEncoding, lt(length, _6))\n {\n mstore(_4, shl(224, 0x4e487b71))\n mstore(_3, 0x22)\n revert(_4, 0x24)\n }\n mstore(_1, length)\n switch outOfPlaceEncoding\n case 0 {\n mstore(add(_1, _6), and(slotValue, not(255)))\n ret := add(add(_1, shl(5, iszero(iszero(length)))), _6)\n }\n case 1 {\n mstore(_4, /** @src 25:2242:2247 \"_name\" */ 0x03)\n /// @src 46:122:574 \"contract MyERC20 is ERC20 {...\"\n let dataPos := 87903029871075914254377627908054574944891091886930582284385770809450030037083\n let i := _4\n for { } lt(i, length) { i := add(i, _6) }\n {\n mstore(add(add(_1, i), _6), sload(dataPos))\n dataPos := add(dataPos, _5)\n }\n ret := add(add(_1, i), _6)\n }\n let newFreePtr := add(_1, and(add(sub(ret, _1), 31), not(31)))\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, _1))\n {\n mstore(_4, shl(224, 0x4e487b71))\n mstore(_3, 0x41)\n revert(_4, 0x24)\n }\n mstore(_2, newFreePtr)\n return(newFreePtr, sub(abi_encode_string(newFreePtr, _1), newFreePtr))\n }\n case 0x095ea7b3 {\n if callvalue() { revert(_4, _4) }\n if slt(add(calldatasize(), not(3)), _2) { revert(_4, _4) }\n let value0 := abi_decode_address_5526()\n /// @src 25:4595:4601 \"amount\"\n fun_approve(/** @src 35:719:729 \"msg.sender\" */ caller(), /** @src 25:4595:4601 \"amount\" */ value0, /** @src 46:122:574 \"contract MyERC20 is ERC20 {...\" */ calldataload(36))\n let memPos := mload(_2)\n mstore(memPos, 1)\n return(memPos, 32)\n }\n case 0x18160ddd {\n if callvalue() { revert(_4, _4) }\n if slt(add(calldatasize(), not(3)), _4) { revert(_4, _4) }\n let _7 := sload(/** @src 25:3331:3343 \"_totalSupply\" */ 0x02)\n /// @src 46:122:574 \"contract MyERC20 is ERC20 {...\"\n let memPos_1 := mload(_2)\n mstore(memPos_1, _7)\n return(memPos_1, 32)\n }\n case 0x23b872dd {\n if callvalue() { revert(_4, _4) }\n if slt(add(calldatasize(), not(3)), 96) { revert(_4, _4) }\n let value0_1 := abi_decode_address_5526()\n let value1 := abi_decode_address()\n let value := calldataload(68)\n mstore(_4, and(value0_1, sub(shl(160, 1), 1)))\n mstore(32, 1)\n let _8 := keccak256(_4, _2)\n mstore(_4, /** @src 35:719:729 \"msg.sender\" */ caller())\n /// @src 46:122:574 \"contract MyERC20 is ERC20 {...\"\n mstore(32, _8)\n let _9 := sload(keccak256(_4, _2))\n /// @src 25:10962:11205 \"if (currentAllowance != type(uint256).max) {...\"\n if /** @src 25:10966:11003 \"currentAllowance != type(uint256).max\" */ iszero(eq(_9, /** @src 25:10986:11003 \"type(uint256).max\" */ not(0)))\n /// @src 25:10962:11205 \"if (currentAllowance != type(uint256).max) {...\"\n {\n /// @src 46:122:574 \"contract MyERC20 is ERC20 {...\"\n if /** @src 25:11027:11053 \"currentAllowance >= amount\" */ lt(_9, value)\n /// @src 46:122:574 \"contract MyERC20 is ERC20 {...\"\n {\n let memPtr := mload(_2)\n mstore(memPtr, shl(229, 4594637))\n mstore(add(memPtr, _3), 32)\n mstore(add(memPtr, 36), 29)\n mstore(add(memPtr, 68), \"ERC20: insufficient allowance\")\n revert(memPtr, 100)\n }\n /// @src 25:11154:11179 \"currentAllowance - amount\"\n fun_approve(value0_1, /** @src 35:719:729 \"msg.sender\" */ caller(), /** @src 46:122:574 \"contract MyERC20 is ERC20 {...\" */ sub(/** @src 25:11154:11179 \"currentAllowance - amount\" */ _9, value))\n }\n /// @src 25:5443:5449 \"amount\"\n fun_transfer(value0_1, value1, value)\n /// @src 46:122:574 \"contract MyERC20 is ERC20 {...\"\n let memPos_2 := mload(_2)\n mstore(memPos_2, 1)\n return(memPos_2, 32)\n }\n case 0x313ce567 {\n if callvalue() { revert(_4, _4) }\n if slt(add(calldatasize(), not(3)), _4) { revert(_4, _4) }\n let value_1 := and(sload(/** @src 46:556:565 \"_decimals\" */ 0x05), /** @src 46:122:574 \"contract MyERC20 is ERC20 {...\" */ 0xff)\n let memPos_3 := mload(_2)\n mstore(memPos_3, value_1)\n return(memPos_3, 32)\n }\n case 0x39509351 {\n if callvalue() { revert(_4, _4) }\n if slt(add(calldatasize(), not(3)), _2) { revert(_4, _4) }\n let value0_2 := abi_decode_address_5526()\n mstore(_4, /** @src 35:719:729 \"msg.sender\" */ caller())\n /// @src 46:122:574 \"contract MyERC20 is ERC20 {...\"\n mstore(32, 1)\n let _10 := keccak256(_4, _2)\n mstore(_4, and(value0_2, sub(shl(160, 1), 1)))\n mstore(32, _10)\n /// @src 25:6040:6078 \"allowance(owner, spender) + addedValue\"\n fun_approve(/** @src 35:719:729 \"msg.sender\" */ caller(), /** @src 25:6040:6078 \"allowance(owner, spender) + addedValue\" */ value0_2, checked_add_uint256(/** @src 46:122:574 \"contract MyERC20 is ERC20 {...\" */ sload(keccak256(_4, _2)), calldataload(36)))\n let memPos_4 := mload(_2)\n mstore(memPos_4, 1)\n return(memPos_4, 32)\n }\n case 0x40c10f19 {\n if callvalue() { revert(_4, _4) }\n if slt(add(calldatasize(), not(3)), _2) { revert(_4, _4) }\n let value0_3 := abi_decode_address_5526()\n let value_2 := calldataload(36)\n let _11 := and(/** @src 25:8494:8515 \"account != address(0)\" */ value0_3, /** @src 46:122:574 \"contract MyERC20 is ERC20 {...\" */ sub(shl(160, 1), 1))\n if /** @src 25:8494:8515 \"account != address(0)\" */ iszero(/** @src 46:122:574 \"contract MyERC20 is ERC20 {...\" */ _11)\n {\n let memPtr_1 := mload(_2)\n mstore(memPtr_1, shl(229, 4594637))\n mstore(add(memPtr_1, _3), 32)\n mstore(add(memPtr_1, 36), 31)\n mstore(add(memPtr_1, 68), \"ERC20: mint to the zero address\")\n revert(memPtr_1, 100)\n }\n sstore(/** @src 25:8622:8644 \"_totalSupply += amount\" */ 0x02, checked_add_uint256(/** @src 46:122:574 \"contract MyERC20 is ERC20 {...\" */ sload(/** @src 25:8622:8644 \"_totalSupply += amount\" */ 0x02), value_2))\n /// @src 46:122:574 \"contract MyERC20 is ERC20 {...\"\n mstore(_4, _11)\n mstore(32, _4)\n let dataSlot := keccak256(_4, _2)\n sstore(dataSlot, /** @src 25:8654:8682 \"_balances[account] += amount\" */ checked_add_uint256(/** @src 46:122:574 \"contract MyERC20 is ERC20 {...\" */ sload(/** @src 25:8654:8682 \"_balances[account] += amount\" */ dataSlot), value_2))\n /// @src 25:8697:8734 \"Transfer(address(0), account, amount)\"\n let _12 := /** @src 46:122:574 \"contract MyERC20 is ERC20 {...\" */ mload(_2)\n mstore(_12, value_2)\n /// @src 25:8697:8734 \"Transfer(address(0), account, amount)\"\n log3(_12, /** @src 46:122:574 \"contract MyERC20 is ERC20 {...\" */ 32, /** @src 25:8697:8734 \"Transfer(address(0), account, amount)\" */ 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef, /** @src 46:122:574 \"contract MyERC20 is ERC20 {...\" */ _4, /** @src 25:8697:8734 \"Transfer(address(0), account, amount)\" */ _11)\n /// @src 46:122:574 \"contract MyERC20 is ERC20 {...\"\n let memPos_5 := mload(_2)\n mstore(memPos_5, 1)\n return(memPos_5, 32)\n }\n case 0x70a08231 {\n if callvalue() { revert(_4, _4) }\n if slt(add(calldatasize(), not(3)), 32) { revert(_4, _4) }\n mstore(_4, and(abi_decode_address_5526(), sub(shl(160, 1), 1)))\n mstore(32, _4)\n let _13 := sload(keccak256(_4, _2))\n let memPos_6 := mload(_2)\n mstore(memPos_6, _13)\n return(memPos_6, 32)\n }\n case 0x95d89b41 {\n if callvalue() { revert(_4, _4) }\n if slt(add(calldatasize(), not(3)), _4) { revert(_4, _4) }\n let memPtr_2 := mload(_2)\n let ret_1 := _4\n let slotValue_1 := sload(_3)\n let length_1 := _4\n let _14 := 1\n length_1 := shr(_14, slotValue_1)\n let outOfPlaceEncoding_1 := and(slotValue_1, _14)\n if iszero(outOfPlaceEncoding_1)\n {\n length_1 := and(length_1, 0x7f)\n }\n let _15 := 32\n if eq(outOfPlaceEncoding_1, lt(length_1, _15))\n {\n mstore(_4, shl(224, 0x4e487b71))\n mstore(_3, 0x22)\n revert(_4, 0x24)\n }\n mstore(memPtr_2, length_1)\n switch outOfPlaceEncoding_1\n case 0 {\n mstore(add(memPtr_2, _15), and(slotValue_1, not(255)))\n ret_1 := add(add(memPtr_2, shl(5, iszero(iszero(length_1)))), _15)\n }\n case 1 {\n mstore(_4, _3)\n let dataPos_1 := 62514009886607029107290561805838585334079798074568712924583230797734656856475\n let i_1 := _4\n for { } lt(i_1, length_1) { i_1 := add(i_1, _15) }\n {\n mstore(add(add(memPtr_2, i_1), _15), sload(dataPos_1))\n dataPos_1 := add(dataPos_1, _14)\n }\n ret_1 := add(add(memPtr_2, i_1), _15)\n }\n let newFreePtr_1 := add(memPtr_2, and(add(sub(ret_1, memPtr_2), 31), not(31)))\n if or(gt(newFreePtr_1, 0xffffffffffffffff), lt(newFreePtr_1, memPtr_2))\n {\n mstore(_4, shl(224, 0x4e487b71))\n mstore(_3, 0x41)\n revert(_4, 0x24)\n }\n mstore(_2, newFreePtr_1)\n return(newFreePtr_1, sub(abi_encode_string(newFreePtr_1, memPtr_2), newFreePtr_1))\n }\n case 0xa457c2d7 {\n if callvalue() { revert(_4, _4) }\n if slt(add(calldatasize(), not(3)), _2) { revert(_4, _4) }\n let value0_4 := abi_decode_address_5526()\n let value_3 := calldataload(36)\n mstore(_4, /** @src 35:719:729 \"msg.sender\" */ caller())\n /// @src 46:122:574 \"contract MyERC20 is ERC20 {...\"\n mstore(32, 1)\n let _16 := keccak256(_4, _2)\n mstore(_4, and(value0_4, sub(shl(160, 1), 1)))\n mstore(32, _16)\n let _17 := sload(keccak256(_4, _2))\n if /** @src 25:6811:6846 \"currentAllowance >= subtractedValue\" */ lt(_17, value_3)\n /// @src 46:122:574 \"contract MyERC20 is ERC20 {...\"\n {\n let memPtr_3 := mload(_2)\n mstore(memPtr_3, shl(229, 4594637))\n mstore(add(memPtr_3, _3), 32)\n mstore(add(memPtr_3, 36), 37)\n mstore(add(memPtr_3, 68), \"ERC20: decreased allowance below\")\n mstore(add(memPtr_3, 100), \" zero\")\n revert(memPtr_3, 132)\n }\n /// @src 25:6947:6981 \"currentAllowance - subtractedValue\"\n fun_approve(/** @src 35:719:729 \"msg.sender\" */ caller(), /** @src 25:6947:6981 \"currentAllowance - subtractedValue\" */ value0_4, /** @src 46:122:574 \"contract MyERC20 is ERC20 {...\" */ sub(/** @src 25:6947:6981 \"currentAllowance - subtractedValue\" */ _17, value_3))\n /// @src 46:122:574 \"contract MyERC20 is ERC20 {...\"\n let memPos_7 := mload(_2)\n mstore(memPos_7, 1)\n return(memPos_7, 32)\n }\n case 0xa9059cbb {\n if callvalue() { revert(_4, _4) }\n if slt(add(calldatasize(), not(3)), _2) { revert(_4, _4) }\n let value0_5 := abi_decode_address_5526()\n /// @src 25:3883:3889 \"amount\"\n fun_transfer(/** @src 35:719:729 \"msg.sender\" */ caller(), /** @src 25:3883:3889 \"amount\" */ value0_5, /** @src 46:122:574 \"contract MyERC20 is ERC20 {...\" */ calldataload(36))\n let memPos_8 := mload(_2)\n mstore(memPos_8, 1)\n return(memPos_8, 32)\n }\n case 0xdd62ed3e {\n if callvalue() { revert(_4, _4) }\n if slt(add(calldatasize(), not(3)), _2) { revert(_4, _4) }\n let value0_6 := abi_decode_address_5526()\n let value1_1 := abi_decode_address()\n let _18 := sub(shl(160, 1), 1)\n mstore(_4, and(value0_6, _18))\n mstore(32, /** @src 25:4091:4102 \"_allowances\" */ 0x01)\n /// @src 46:122:574 \"contract MyERC20 is ERC20 {...\"\n let _19 := keccak256(_4, _2)\n mstore(_4, and(value1_1, _18))\n mstore(32, _19)\n let _20 := sload(keccak256(_4, _2))\n let memPos_9 := mload(_2)\n mstore(memPos_9, _20)\n return(memPos_9, 32)\n }\n }\n revert(0, 0)\n }\n function abi_encode_string(headStart, value0) -> tail\n {\n let _1 := 32\n mstore(headStart, _1)\n let length := mload(value0)\n mstore(add(headStart, _1), length)\n let i := 0\n for { } lt(i, length) { i := add(i, _1) }\n {\n mstore(add(add(headStart, i), 64), mload(add(add(value0, i), _1)))\n }\n mstore(add(add(headStart, length), 64), 0)\n tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n }\n function abi_decode_address_5526() -> value\n {\n value := calldataload(4)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_address() -> value\n {\n value := calldataload(36)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function checked_add_uint256(x, y) -> sum\n {\n sum := add(x, y)\n if gt(x, sum)\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n }\n /// @ast-id 6097 @src 25:7484:8135 \"function _transfer(...\"\n function fun_transfer(var_from, var_to, var_amount)\n {\n /// @src 46:122:574 \"contract MyERC20 is ERC20 {...\"\n let _1 := sub(shl(160, 1), 1)\n let _2 := and(/** @src 25:7610:7628 \"from != address(0)\" */ var_from, /** @src 46:122:574 \"contract MyERC20 is ERC20 {...\" */ _1)\n if /** @src 25:7610:7628 \"from != address(0)\" */ iszero(/** @src 46:122:574 \"contract MyERC20 is ERC20 {...\" */ _2)\n {\n let memPtr := mload(64)\n mstore(memPtr, shl(229, 4594637))\n mstore(add(memPtr, 4), 32)\n mstore(add(memPtr, 36), 37)\n mstore(add(memPtr, 68), \"ERC20: transfer from the zero ad\")\n mstore(add(memPtr, 100), \"dress\")\n revert(memPtr, 132)\n }\n let _3 := and(/** @src 25:7688:7704 \"to != address(0)\" */ var_to, /** @src 46:122:574 \"contract MyERC20 is ERC20 {...\" */ _1)\n if /** @src 25:7688:7704 \"to != address(0)\" */ iszero(/** @src 46:122:574 \"contract MyERC20 is ERC20 {...\" */ _3)\n {\n let memPtr_1 := mload(64)\n mstore(memPtr_1, shl(229, 4594637))\n mstore(add(memPtr_1, 4), 32)\n mstore(add(memPtr_1, 36), 35)\n mstore(add(memPtr_1, 68), \"ERC20: transfer to the zero addr\")\n mstore(add(memPtr_1, 100), \"ess\")\n revert(memPtr_1, 132)\n }\n /// @src 25:7626:7627 \"0\"\n let _4 := 0x00\n /// @src 46:122:574 \"contract MyERC20 is ERC20 {...\"\n mstore(/** @src 25:7626:7627 \"0\" */ _4, /** @src 46:122:574 \"contract MyERC20 is ERC20 {...\" */ _2)\n mstore(0x20, /** @src 25:7626:7627 \"0\" */ _4)\n /// @src 46:122:574 \"contract MyERC20 is ERC20 {...\"\n let _5 := sload(keccak256(/** @src 25:7626:7627 \"0\" */ _4, /** @src 46:122:574 \"contract MyERC20 is ERC20 {...\" */ 0x40))\n if /** @src 25:7859:7880 \"fromBalance >= amount\" */ lt(_5, var_amount)\n /// @src 46:122:574 \"contract MyERC20 is ERC20 {...\"\n {\n let memPtr_2 := mload(0x40)\n mstore(memPtr_2, shl(229, 4594637))\n mstore(add(memPtr_2, 4), 0x20)\n mstore(add(memPtr_2, 36), 38)\n mstore(add(memPtr_2, 68), \"ERC20: transfer amount exceeds b\")\n mstore(add(memPtr_2, 100), \"alance\")\n revert(memPtr_2, 132)\n }\n mstore(/** @src 25:7626:7627 \"0\" */ _4, /** @src 46:122:574 \"contract MyERC20 is ERC20 {...\" */ _2)\n mstore(0x20, /** @src 25:7626:7627 \"0\" */ _4)\n /// @src 46:122:574 \"contract MyERC20 is ERC20 {...\"\n sstore(keccak256(/** @src 25:7626:7627 \"0\" */ _4, /** @src 46:122:574 \"contract MyERC20 is ERC20 {...\" */ 0x40), sub(/** @src 25:7975:7995 \"fromBalance - amount\" */ _5, var_amount))\n /// @src 46:122:574 \"contract MyERC20 is ERC20 {...\"\n mstore(/** @src 25:7626:7627 \"0\" */ _4, /** @src 46:122:574 \"contract MyERC20 is ERC20 {...\" */ _3)\n let dataSlot := keccak256(/** @src 25:7626:7627 \"0\" */ _4, /** @src 46:122:574 \"contract MyERC20 is ERC20 {...\" */ 0x40)\n sstore(dataSlot, /** @src 25:8015:8038 \"_balances[to] += amount\" */ checked_add_uint256(/** @src 46:122:574 \"contract MyERC20 is ERC20 {...\" */ sload(/** @src 25:8015:8038 \"_balances[to] += amount\" */ dataSlot), var_amount))\n /// @src 25:8054:8080 \"Transfer(from, to, amount)\"\n let _6 := /** @src 46:122:574 \"contract MyERC20 is ERC20 {...\" */ mload(0x40)\n mstore(_6, var_amount)\n /// @src 25:8054:8080 \"Transfer(from, to, amount)\"\n log3(_6, /** @src 46:122:574 \"contract MyERC20 is ERC20 {...\" */ 0x20, /** @src 25:8054:8080 \"Transfer(from, to, amount)\" */ 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef, _2, _3)\n }\n /// @ast-id 6270 @src 25:10119:10489 \"function _approve(...\"\n function fun_approve(var_owner, var_spender, var_amount)\n {\n /// @src 46:122:574 \"contract MyERC20 is ERC20 {...\"\n let _1 := sub(shl(160, 1), 1)\n let _2 := and(/** @src 25:10250:10269 \"owner != address(0)\" */ var_owner, /** @src 46:122:574 \"contract MyERC20 is ERC20 {...\" */ _1)\n if /** @src 25:10250:10269 \"owner != address(0)\" */ iszero(/** @src 46:122:574 \"contract MyERC20 is ERC20 {...\" */ _2)\n {\n let memPtr := mload(64)\n mstore(memPtr, shl(229, 4594637))\n mstore(add(memPtr, 4), 32)\n mstore(add(memPtr, 36), 36)\n mstore(add(memPtr, 68), \"ERC20: approve from the zero add\")\n mstore(add(memPtr, 100), \"ress\")\n revert(memPtr, 132)\n }\n let _3 := and(/** @src 25:10328:10349 \"spender != address(0)\" */ var_spender, /** @src 46:122:574 \"contract MyERC20 is ERC20 {...\" */ _1)\n if /** @src 25:10328:10349 \"spender != address(0)\" */ iszero(/** @src 46:122:574 \"contract MyERC20 is ERC20 {...\" */ _3)\n {\n let memPtr_1 := mload(64)\n mstore(memPtr_1, shl(229, 4594637))\n mstore(add(memPtr_1, 4), 32)\n mstore(add(memPtr_1, 36), 34)\n mstore(add(memPtr_1, 68), \"ERC20: approve to the zero addre\")\n mstore(add(memPtr_1, 100), \"ss\")\n revert(memPtr_1, 132)\n }\n mstore(/** @src 25:10267:10268 \"0\" */ 0x00, /** @src 46:122:574 \"contract MyERC20 is ERC20 {...\" */ _2)\n mstore(0x20, /** @src 25:10399:10410 \"_allowances\" */ 0x01)\n /// @src 46:122:574 \"contract MyERC20 is ERC20 {...\"\n let _4 := keccak256(/** @src 25:10267:10268 \"0\" */ 0x00, /** @src 46:122:574 \"contract MyERC20 is ERC20 {...\" */ 0x40)\n mstore(/** @src 25:10267:10268 \"0\" */ 0x00, /** @src 46:122:574 \"contract MyERC20 is ERC20 {...\" */ _3)\n mstore(0x20, _4)\n sstore(keccak256(/** @src 25:10267:10268 \"0\" */ 0x00, /** @src 46:122:574 \"contract MyERC20 is ERC20 {...\" */ 0x40), var_amount)\n /// @src 25:10450:10482 \"Approval(owner, spender, amount)\"\n let _5 := /** @src 46:122:574 \"contract MyERC20 is ERC20 {...\" */ mload(0x40)\n mstore(_5, var_amount)\n /// @src 25:10450:10482 \"Approval(owner, spender, amount)\"\n log3(_5, /** @src 46:122:574 \"contract MyERC20 is ERC20 {...\" */ 0x20, /** @src 25:10450:10482 \"Approval(owner, spender, amount)\" */ 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925, _2, _3)\n }\n }\n data \".metadata\" hex\"a2646970667358221220ecf6466b8716662ffc671dc3c32439cb6398425596e4462e0de3e0a25972740064736f6c63430008120033\"\n }\n}\n","hash":"010001cf941521edf5d4d3ad1efeb3cff898d56bd8505b57ef5517e0207c5a60","factoryDependencies":{}}},"contracts/MyNFT.sol":{"MyNFT":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"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":"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":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"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":"address","name":"recipient","type":"address"},{"internalType":"string","name":"tokenURI","type":"string"}],"name":"mintNFT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","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":"nonpayable","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":"nonpayable","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":"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":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"metadata":{"optimizer_settings":"M3B3","solc_metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"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\":\"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\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"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\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"tokenURI\",\"type\":\"string\"}],\"name\":\"mintNFT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"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\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\":\"nonpayable\",\"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\":\"nonpayable\",\"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\":\"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\":\"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 `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"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.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"},\"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\":{\"contracts/MyNFT.sol\":\"MyNFT\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0x24e0364e503a9bbde94c715d26573a76f14cd2a202d45f96f52134ab806b67b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e12cbaa7378fd9b62280e4e1d164bedcb4399ce238f5f98fc0eefb7e50577981\",\"dweb:/ipfs/QmXRoFGUgfsaRkoPT5bxNMtSayKTQ8GZATLPXf69HcRA51\"]},\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x921f012325281f7d81e29c53a13824cf6c2c5d77232065d0d4f3f912e97af6ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7dbcedc364fce0ab5e54d21d4cbd91a97959f52c0674cf5c36a314bb58308f62\",\"dweb:/ipfs/QmfYpqHKtu3bSQ9FGvLwzdxRNykStpVPtoLNTaM1KBKj6E\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x0d4de01fe5360c38b4ad2b0822a12722958428f5138a7ff47c1720eb6fa52bba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77724cecdfba8814632ab58737c2b0f2d4ad2d532bc614aee559b5593c1152f0\",\"dweb:/ipfs/QmUcE6gXyv7CQh4sUdcDABYKGTovTe1zLMZSEq95nkc3ph\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol\":{\"keccak256\":\"0x1cbe42915bc66227970fe99bc0f783eb1de30f2b48f984af01ad45edb9658698\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2baa08eb67d9da46e6c4c049f17b7684a1c68c5268d0f466cfa0eb23ce2bf9b0\",\"dweb:/ipfs/Qmdnj8zj4PfErB2HM2eKmDt7FrqrhggsZ6Qd8MpD593tgj\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146\",\"dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x2ccf9d2313a313d41a791505f2b5abfdc62191b5d4334f7f7a82691c088a1c87\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3a57d0854b2fdce6ebff933a48dca2445643d1eccfc27f00292e937f26c6a58\",\"dweb:/ipfs/QmW45rZooS9TqR4YXUbjRbtf2Bpb5ouSarBvfW1LdGprvV\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Counters.sol\":{\"keccak256\":\"0xf0018c2440fbe238dd3a8732fa8e17a0f9dce84d31451dc8a32f6d62b349c9f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59e1c62884d55b70f3ae5432b44bb3166ad71ae3acd19c57ab6ddc3c87c325ee\",\"dweb:/ipfs/QmezuXg5GK5oeA4F91EZhozBFekhq5TD966bHPH18cCqhu\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x32c202bd28995dd20c4347b7c6467a6d3241c74c8ad3edcbb610cd9205916c45\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8179c356adb19e70d6b31a1eedc8c5c7f0c00e669e2540f4099e3844c6074d30\",\"dweb:/ipfs/QmWFbivarEobbqhS1go64ootVuHfVohBseerYy9FTEd1W2\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"contracts/MyNFT.sol\":{\"keccak256\":\"0xb7b0d6a0ba349d6861a2707632bf3e58e0f1d8d29b7d60977f4195079e7726f6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fa916aadf57a5d96637be793f276403cdc7e0159964fafac0688a25485606a55\",\"dweb:/ipfs/Qmb3WS6CLAYqpgahz4hTvuG1HJ5Eu8MWa7drtUW3D3Qkh3\"]}},\"version\":1}","zk_version":"1.3.9"},"evm":{"legacyAssembly":null,"assembly":"\t.text\n\t.file\t\"MyNFT.sol:MyNFT\"\n\t.globl\t__entry\n__entry:\n.func_begin0:\n\tnop\tstack+=[5]\n\tadd\tr1, r0, r3\n\tshr.s\t96, r3, r3\n\tand\t@CPI0_0[0], r3, r4\n\tptr.add\tr1, r4, stack[@ptr_return_data]\n\tptr.add\tr1, r0, stack[@ptr_calldata]\n\tand\t@CPI0_0[0], r3, stack[@calldatasize]\n\tadd\t0, r0, stack[@returndatasize]\n\tand!\t1, r2, r1\n\tjump.ne\t@.BB0_1\n\tadd\t128, r0, r1\n\tst.1\t64, r1\n\tadd\tstack[@calldatasize], r0, r1\n\tsub.s!\t4, r1, r1\n\tjump.lt\t@.BB0_2\n\tptr.add\tstack[@ptr_calldata], r0, r1\n\tld\tr1, r1\n\tshr.s\t224, r1, r1\n\tsub.s!\t@CPI0_11[0], r1, r2\n\tjump.le\t@.BB0_47\n\tsub.s!\t@CPI0_12[0], r1, r2\n\tjump.le\t@.BB0_59\n\tsub.s!\t@CPI0_13[0], r1, r2\n\tjump.le\t@.BB0_65\n\tsub.s!\t@CPI0_14[0], r1, r2\n\tjump.eq\t@.BB0_152\n\tsub.s!\t@CPI0_15[0], r1, r2\n\tjump.eq\t@.BB0_157\n\tsub.s!\t@CPI0_16[0], r1, r1\n\tjump.ne\t@.BB0_2\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tsub.s\t4, r0, r1\n\tadd\tstack[@calldatasize], r1, r1\n\tadd\t@CPI0_35[0], r0, r2\n\tsub.s!\t32, r1, r3\n\tadd\t0, r0, r3\n\tadd.lt\tr2, r0, r3\n\tand\t@CPI0_35[0], r1, r1\n\tsub.s!\t0, r1, r4\n\tadd.le\t0, r0, r2\n\tsub.s!\t@CPI0_35[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tadd\t4, r0, r1\n\tptr.add\tstack[@ptr_calldata], r1, r1\n\tld\tr1, r1\n\tsub.s!\t@CPI0_8[0], r1, r2\n\tjump.gt\t@.BB0_2\n\tadd\t7, r0, r2\n\tsload\tr2, r2\n\tand\t@CPI0_8[0], r2, r2\n\tcontext.caller\tr3\n\tsub!\tr2, r3, r2\n\tjump.ne\t@.BB0_118\n\tsub.s!\t0, r1, r2\n\tjump.ne\t@.BB0_188\n\tld.1\t64, r1\n\tadd\t100, r1, r2\n\tadd\t@CPI0_36[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t68, r1, r2\n\tadd\t@CPI0_37[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t38, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI0_38[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI0_0[0], r0, r2\n\tsub.s!\t@CPI0_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI0_39[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB0_1:\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tadd\t192, r0, r1\n\tst.1\t64, r1\n\tadd\t5, r0, r1\n\tst.1\t128, r1\n\tadd\t@CPI0_1[0], r0, r1\n\tst.1\t160, r1\n\tld.1\t64, r4\n\tsub.s!\t@CPI0_2[0], r4, r1\n\tjump.ge\t@.BB0_4\n\tadd\t64, r4, r1\n\tst.1\t64, r1\n\tadd\t3, r0, r1\n\tst.1.inc\tr4, r1, r5\n\tadd\t@CPI0_3[0], r0, r1\n\tst.1\tr5, r1\n\tld.1\t128, r6\n\tsub.s!\t@CPI0_4[0], r6, r1\n\tjump.le\t@.BB0_6\n.BB0_4:\n\tadd\t@CPI0_45[0], r0, r1\n\tst.1\t0, r1\n\tadd\t65, r0, r1\n\tst.1\t4, r1\n\tadd\t@CPI0_46[0], r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB0_47:\n\tsub.s!\t@CPI0_24[0], r1, r2\n\tjump.gt\t@.BB0_53\n\tsub.s!\t@CPI0_30[0], r1, r2\n\tjump.gt\t@.BB0_51\n\tsub.s!\t@CPI0_33[0], r1, r2\n\tjump.eq\t@.BB0_70\n\tsub.s!\t@CPI0_34[0], r1, r1\n\tjump.ne\t@.BB0_2\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tsub.s\t4, r0, r1\n\tadd\tstack[@calldatasize], r1, r1\n\tadd\t@CPI0_35[0], r0, r2\n\tsub.s!\t0, r1, r3\n\tadd\t0, r0, r3\n\tadd.lt\tr2, r0, r3\n\tand\t@CPI0_35[0], r1, r1\n\tsub.s!\t0, r1, r4\n\tadd.le\t0, r0, r2\n\tsub.s!\t@CPI0_35[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tsload\tr0, r3\n\tand!\t1, r3, r4\n\tshr.s\t1, r3, r1\n\tand\t127, r1, r2\n\tadd\tr1, r0, r7\n\tadd.eq\tr2, r0, r7\n\tsub.s!\t31, r7, r2\n\tadd\t0, r0, r2\n\tadd.gt\t1, r0, r2\n\txor\tr3, r2, r2\n\tand!\t1, r2, r2\n\tjump.ne\t@.BB0_7\n\tld.1\t64, r1\n\tst.1.inc\tr1, r7, r2\n\tsub.s!\t0, r4, r4\n\tjump.eq\t@.BB0_82\n\tst.1\t0, r0\n\tsub.s!\t0, r7, r3\n\tadd\tr0, r0, r3\n\tjump.eq\t@.BB0_81\n\tadd\t@CPI0_58[0], r0, r4\n\tadd\tr0, r0, r3\n.BB0_85:\n\tadd\tr2, r3, r5\n\tsload\tr4, r6\n\tst.1\tr5, r6\n\tadd\t1, r4, r4\n\tadd\t32, r3, r3\n\tsub!\tr3, r7, r5\n\tjump.lt\t@.BB0_85\n\tjump\t@.BB0_81\n.BB0_6:\n\tsload\tr0, r1\n\tand!\t1, r1, r2\n\tshr.s\t1, r1, r1\n\tand\t127, r1, r3\n\tadd.ne\tr1, r0, r3\n\tsub.s!\t31, r3, r1\n\tadd\t0, r0, r1\n\tadd.gt\t1, r0, r1\n\tand\t1, r1, r1\n\tsub!\tr2, r1, r1\n\tjump.eq\t@.BB0_8\n.BB0_7:\n\tadd\t@CPI0_45[0], r0, r1\n\tst.1\t0, r1\n\tadd\t34, r0, r1\n\tst.1\t4, r1\n\tadd\t@CPI0_46[0], r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB0_59:\n\tsub.s!\t@CPI0_19[0], r1, r2\n\tjump.gt\t@.BB0_62\n\tsub.s!\t@CPI0_22[0], r1, r2\n\tjump.eq\t@.BB0_115\n\tsub.s!\t@CPI0_23[0], r1, r1\n\tjump.ne\t@.BB0_2\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tsub.s\t4, r0, r1\n\tadd\tstack[@calldatasize], r1, r1\n\tadd\t@CPI0_35[0], r0, r2\n\tsub.s!\t0, r1, r3\n\tadd\t0, r0, r3\n\tadd.lt\tr2, r0, r3\n\tand\t@CPI0_35[0], r1, r1\n\tsub.s!\t0, r1, r4\n\tadd.le\t0, r0, r2\n\tsub.s!\t@CPI0_35[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tadd\t7, r0, r1\n\tsload\tr1, r1\n\tand\t@CPI0_8[0], r1, r1\n\tld.1\t64, r2\n\tst.1\tr2, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI0_44[0], r1, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_53:\n\tsub.s!\t@CPI0_25[0], r1, r2\n\tjump.gt\t@.BB0_56\n\tsub.s!\t@CPI0_28[0], r1, r2\n\tjump.eq\t@.BB0_102\n\tsub.s!\t@CPI0_29[0], r1, r1\n\tjump.ne\t@.BB0_2\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tadd\tstack[@calldatasize], r0, r1\n\tnear_call\tr0, @abi_decode_addresst_addresst_uint256, @DEFAULT_UNWIND\n\tadd\tr1, r0, stack-[5]\n\tadd\tr2, r0, stack-[4]\n\tadd\tr3, r0, stack-[3]\n\tld.1\t64, r1\n\tadd\tr1, r0, stack-[2]\n\tnear_call\tr0, @finalize_allocation_11212, @DEFAULT_UNWIND\n\tadd\tstack-[2], r0, r4\n\tst.1\tr4, r0\n\tadd\tstack-[5], r0, r1\n\tadd\tstack-[4], r0, r2\n\tadd\tstack-[3], r0, r3\n\tnear_call\tr0, @fun_safeTransferFrom, @DEFAULT_UNWIND\n\tadd\tr0, r0, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_8:\n\tsub.s!\t32, r3, r1\n\tadd\tr4, r0, stack-[5]\n\tadd\tr5, r0, stack-[4]\n\tjump.lt\t@.BB0_12\n\tadd\tr3, r0, stack-[2]\n\tadd\tr6, r0, stack-[3]\n\tst.1\t0, r0\n\tadd\t@CPI0_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI0_5[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_2\n\tadd\tstack-[3], r0, r6\n\tadd\t31, r6, r2\n\tshr.s\t5, r2, r2\n\tsub.s!\t32, r6, r3\n\tadd.lt\t0, r0, r2\n\tld\tr1, r3\n\tadd\tstack-[2], r0, r1\n\tadd\t31, r1, r1\n\tshr.s\t5, r1, r1\n\tadd\tr3, r1, r1\n\tadd\tr3, r2, r2\n\tsub!\tr2, r1, r3\n\tadd\tstack-[5], r0, r4\n\tadd\tstack-[4], r0, r5\n\tjump.ge\t@.BB0_12\n.BB0_13:\n\tsstore\tr2, r0\n\tadd\t1, r2, r2\n\tsub!\tr2, r1, r3\n\tjump.lt\t@.BB0_13\n.BB0_12:\n\tsub.s!\t31, r6, r1\n\tjump.le\t@.BB0_23\n\tadd\tr6, r0, stack-[3]\n\tst.1\t0, r0\n\tadd\t@CPI0_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI0_5[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_2\n\tsub.s\t32, r0, r2\n\tadd\tstack-[3], r0, r7\n\tand!\tr7, r2, r2\n\tadd\t160, r0, r3\n\tld\tr1, r1\n\tjump.eq\t@.BB0_20\n\tadd\t32, r0, r5\n\tadd\tr0, r0, r3\n.BB0_18:\n\tadd\tr5, r0, r4\n\tadd\t128, r4, r5\n\tld.1\tr5, r5\n\tsstore\tr1, r5\n\tadd\t32, r4, r5\n\tadd\t1, r1, r1\n\tadd\t32, r3, r3\n\tsub!\tr3, r2, r6\n\tjump.lt\t@.BB0_18\n\tadd\t160, r4, r3\n.BB0_20:\n\tsub!\tr2, r7, r2\n\tjump.ge\t@.BB0_22\n\tshl.s\t3, r7, r2\n\tand\t248, r2, r2\n\tsub.s\t1, r0, r4\n\tshr\tr4, r2, r2\n\txor\tr2, r4, r2\n\tld.1\tr3, r3\n\tand\tr3, r2, r2\n\tsstore\tr1, r2\n.BB0_22:\n\tadd\t1, r0, r1\n\tshl.s\t1, r7, r2\n\tadd\tstack-[5], r0, r4\n\tadd\tstack-[4], r0, r5\n\tjump\t@.BB0_14\n.BB0_65:\n\tsub.s!\t@CPI0_17[0], r1, r2\n\tjump.eq\t@.BB0_142\n\tsub.s!\t@CPI0_18[0], r1, r1\n\tjump.ne\t@.BB0_2\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tsub.s\t4, r0, r1\n\tadd\tstack[@calldatasize], r1, r1\n\tadd\t@CPI0_35[0], r0, r2\n\tsub.s!\t32, r1, r3\n\tadd\t0, r0, r3\n\tadd.lt\tr2, r0, r3\n\tand\t@CPI0_35[0], r1, r1\n\tsub.s!\t0, r1, r4\n\tadd.le\t0, r0, r2\n\tsub.s!\t@CPI0_35[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tadd\t4, r0, r1\n\tptr.add\tstack[@ptr_calldata], r1, r1\n\tld\tr1, r1\n\tnear_call\tr0, @fun_tokenURI, @DEFAULT_UNWIND\n\tadd\t32, r0, r2\n\tld.1\t64, r3\n\tadd\tr3, r0, stack-[5]\n\tst.1.inc\tr3, r2, r2\n\tnear_call\tr0, @abi_encode_string_to_string, @DEFAULT_UNWIND\n\tadd\tstack-[5], r0, r4\n\tsub\tr1, r4, r1\n\tadd\t@CPI0_0[0], r0, r2\n\tsub.s!\t@CPI0_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tsub.s!\t@CPI0_0[0], r4, r3\n\tadd.lt\tr4, r0, r2\n\tshl.s\t64, r2, r2\n\tshl.s\t96, r1, r1\n\tor\tr1, r2, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_51:\n\tsub.s!\t@CPI0_31[0], r1, r2\n\tjump.eq\t@.BB0_86\n\tsub.s!\t@CPI0_32[0], r1, r1\n\tjump.ne\t@.BB0_2\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tsub.s\t4, r0, r1\n\tadd\tstack[@calldatasize], r1, r1\n\tadd\t@CPI0_35[0], r0, r2\n\tsub.s!\t64, r1, r3\n\tadd\t0, r0, r3\n\tadd.lt\tr2, r0, r3\n\tand\t@CPI0_35[0], r1, r1\n\tsub.s!\t0, r1, r4\n\tadd.le\t0, r0, r2\n\tsub.s!\t@CPI0_35[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tptr.add\tstack[@ptr_calldata], r0, r1\n\tptr.add.s\t4, r1, r2\n\tld\tr2, r2\n\tadd\tr2, r0, stack-[5]\n\tsub.s!\t@CPI0_8[0], r2, r2\n\tjump.gt\t@.BB0_2\n\tptr.add.s\t36, r1, r1\n\tld\tr1, r1\n\tadd\tr1, r0, stack-[4]\n\tst.1\t0, r1\n\tadd\t2, r0, r1\n\tst.1\t32, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI0_40[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_2\n\tld\tr1, r1\n\tsload\tr1, r1\n\tand!\t@CPI0_8[0], r1, r2\n\tjump.ne\t@.BB0_95\n\tld.1\t64, r1\n\tadd\t100, r1, r2\n\tadd\t@CPI0_56[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t68, r1, r2\n\tadd\t@CPI0_57[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t41, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI0_38[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI0_0[0], r0, r2\n\tsub.s!\t@CPI0_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI0_39[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB0_62:\n\tsub.s!\t@CPI0_20[0], r1, r2\n\tjump.eq\t@.BB0_124\n\tsub.s!\t@CPI0_21[0], r1, r1\n\tjump.ne\t@.BB0_2\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tsub.s\t4, r0, r1\n\tadd\tstack[@calldatasize], r1, r1\n\tadd\t@CPI0_35[0], r0, r2\n\tsub.s!\t64, r1, r3\n\tadd\t0, r0, r3\n\tadd.lt\tr2, r0, r3\n\tand\t@CPI0_35[0], r1, r1\n\tsub.s!\t0, r1, r4\n\tadd.le\t0, r0, r2\n\tsub.s!\t@CPI0_35[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tptr.add\tstack[@ptr_calldata], r0, r1\n\tptr.add.s\t4, r1, r2\n\tld\tr2, r2\n\tadd\tr2, r0, stack-[5]\n\tsub.s!\t@CPI0_8[0], r2, r2\n\tjump.gt\t@.BB0_2\n\tptr.add.s\t36, r1, r1\n\tld\tr1, r2\n\tsub.s!\t0, r2, r1\n\tadd\t0, r0, r1\n\tadd.ne\t1, r0, r1\n\tadd\tr2, r0, stack-[4]\n\tsub!\tr2, r1, r1\n\tjump.ne\t@.BB0_2\n\tcontext.caller\tr2\n\tadd\tstack-[5], r0, r1\n\tsub!\tr2, r1, r1\n\tjump.ne\t@.BB0_139\n\tld.1\t64, r1\n\tadd\t68, r1, r2\n\tadd\t@CPI0_49[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t25, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI0_38[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI0_0[0], r0, r2\n\tsub.s!\t@CPI0_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI0_42[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB0_56:\n\tsub.s!\t@CPI0_26[0], r1, r2\n\tjump.eq\t@.BB0_106\n\tsub.s!\t@CPI0_27[0], r1, r1\n\tjump.ne\t@.BB0_2\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tsub.s\t4, r0, r1\n\tadd\tstack[@calldatasize], r1, r1\n\tadd\t@CPI0_35[0], r0, r2\n\tsub.s!\t32, r1, r3\n\tadd\t0, r0, r3\n\tadd.lt\tr2, r0, r3\n\tand\t@CPI0_35[0], r1, r1\n\tsub.s!\t0, r1, r4\n\tadd.le\t0, r0, r2\n\tsub.s!\t@CPI0_35[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tadd\t4, r0, r1\n\tptr.add\tstack[@ptr_calldata], r1, r1\n\tld\tr1, r1\n\tsub.s!\t@CPI0_8[0], r1, r2\n\tjump.gt\t@.BB0_2\n\tsub.s!\t0, r1, r2\n\tjump.ne\t@.BB0_114\n\tld.1\t64, r1\n\tadd\t100, r1, r2\n\tadd\t@CPI0_52[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t68, r1, r2\n\tadd\t@CPI0_53[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t42, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI0_38[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI0_0[0], r0, r2\n\tsub.s!\t@CPI0_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI0_39[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB0_152:\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tsub.s\t4, r0, r1\n\tadd\tstack[@calldatasize], r1, r1\n\tadd\t@CPI0_35[0], r0, r2\n\tsub.s!\t64, r1, r3\n\tadd\t0, r0, r3\n\tadd.lt\tr2, r0, r3\n\tand\t@CPI0_35[0], r1, r1\n\tsub.s!\t0, r1, r4\n\tadd.le\t0, r0, r2\n\tsub.s!\t@CPI0_35[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tptr.add\tstack[@ptr_calldata], r0, r2\n\tptr.add.s\t4, r2, r1\n\tld\tr1, r1\n\tsub.s!\t@CPI0_8[0], r1, r3\n\tjump.gt\t@.BB0_2\n\tptr.add.s\t36, r2, r2\n\tld\tr2, r2\n\tadd\tr2, r0, stack-[5]\n\tsub.s!\t@CPI0_8[0], r2, r2\n\tjump.gt\t@.BB0_2\n\tst.1\t0, r1\n\tadd\t5, r0, r1\n\tst.1\t32, r1\n\tadd\t64, r0, r2\n\tadd\tr0, r0, r1\n\tnear_call\tr0, @__keccak256, @DEFAULT_UNWIND\n\tadd\tstack-[5], r0, r2\n\tnear_call\tr0, @mapping_index_access_mapping_address_uint256_of_address, @DEFAULT_UNWIND\n\tsload\tr1, r1\n\tand!\t255, r1, r1\n\tadd\t0, r0, r1\n\tadd.ne\t1, r0, r1\n\tld.1\t64, r2\n\tst.1\tr2, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI0_44[0], r1, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_157:\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tadd\tstack[@calldatasize], r0, r1\n\tsub.s\t4, r1, r2\n\tadd\t@CPI0_35[0], r0, r3\n\tsub.s!\t64, r2, r4\n\tadd\t0, r0, r4\n\tadd.lt\tr3, r0, r4\n\tand\t@CPI0_35[0], r2, r2\n\tsub.s!\t0, r2, r5\n\tadd.le\t0, r0, r3\n\tsub.s!\t@CPI0_35[0], r2, r2\n\tadd\tr4, r0, r2\n\tadd.eq\tr3, r0, r2\n\tsub.s!\t0, r2, r2\n\tjump.ne\t@.BB0_2\n\tptr.add\tstack[@ptr_calldata], r0, r2\n\tptr.add.s\t4, r2, r3\n\tld\tr3, r3\n\tadd\tr3, r0, stack-[5]\n\tsub.s!\t@CPI0_8[0], r3, r3\n\tjump.gt\t@.BB0_2\n\tptr.add.s\t36, r2, r3\n\tld\tr3, r3\n\tsub.s!\t@CPI0_4[0], r3, r4\n\tjump.gt\t@.BB0_2\n\tadd\t35, r3, r4\n\tadd\t@CPI0_35[0], r0, r5\n\tsub!\tr4, r1, r6\n\tadd\t0, r0, r6\n\tadd.ge\tr5, r0, r6\n\tand\t@CPI0_35[0], r1, r7\n\tand\t@CPI0_35[0], r4, r4\n\tsub!\tr4, r7, r8\n\tadd.ge\t0, r0, r5\n\txor\tr4, r7, r4\n\tsub.s!\t@CPI0_35[0], r4, r4\n\tadd\tr6, r0, r4\n\tadd.eq\tr5, r0, r4\n\tsub.s!\t0, r4, r4\n\tjump.ne\t@.BB0_2\n\tadd\t4, r3, r4\n\tptr.add\tr2, r4, r2\n\tld\tr2, r2\n\tsub.s!\t@CPI0_4[0], r2, r4\n\tjump.gt\t@.BB0_4\n\tadd\t63, r2, r4\n\tsub.s\t32, r0, r5\n\tand\tr4, r5, r4\n\tld.1\t64, r7\n\tadd\tr7, r4, r4\n\tsub!\tr4, r7, r5\n\tadd\t0, r0, r5\n\tadd.lt\t1, r0, r5\n\tsub.s!\t@CPI0_4[0], r4, r6\n\tjump.gt\t@.BB0_4\n\tand!\t1, r5, r5\n\tjump.ne\t@.BB0_4\n\tadd\t36, r3, r5\n\tst.1\t64, r4\n\tadd\tr7, r0, stack-[4]\n\tst.1.inc\tr7, r2, r3\n\tadd\tr2, r5, r4\n\tsub!\tr4, r1, r1\n\tjump.gt\t@.BB0_2\n\tand\t31, r2, r1\n\tptr.add\tstack[@ptr_calldata], r5, r4\n\tshr.s!\t5, r2, r5\n\tjump.eq\t@.BB0_189\n\tadd\tr0, r0, r6\n.BB0_168:\n\tshl.s\t5, r6, r7\n\tadd\tr3, r7, r8\n\tptr.add\tr4, r7, r7\n\tld\tr7, r7\n\tst.1\tr8, r7\n\tadd\t1, r6, r6\n\tsub!\tr6, r5, r7\n\tjump.lt\t@.BB0_168\n.BB0_189:\n\tsub.s!\t0, r1, r6\n\tjump.eq\t@.BB0_170\n\tshl.s\t5, r5, r5\n\tptr.add\tr4, r5, r4\n\tadd\tr3, r5, r5\n\tshl.s\t3, r1, r1\n\tld.1\tr5, r6\n\tshl\tr6, r1, r6\n\tshr\tr6, r1, r6\n\tld\tr4, r4\n\tsub\t256, r1, r1\n\tshr\tr4, r1, r4\n\tshl\tr4, r1, r1\n\tor\tr1, r6, r1\n\tst.1\tr5, r1\n.BB0_170:\n\tadd\tr3, r2, r1\n\tst.1\tr1, r0\n\tadd\t7, r0, r1\n\tsload\tr1, r1\n\tand\t@CPI0_8[0], r1, r1\n\tcontext.caller\tr2\n\tsub!\tr1, r2, r1\n\tjump.ne\t@.BB0_118\n\tadd\t8, r0, r1\n\tsload\tr1, r2\n\tadd\t1, r2, r2\n\tadd\tr2, r0, stack-[3]\n\tsstore\tr1, r2\n\tadd\tstack-[5], r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_173\n\tld.1\t64, r1\n\tadd\t68, r1, r2\n\tadd\t@CPI0_47[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI0_38[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t36, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t4, r1, r2\n\tst.1\tr2, r3\n\tadd\t@CPI0_0[0], r0, r2\n\tsub.s!\t@CPI0_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI0_42[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB0_70:\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tsub.s\t4, r0, r1\n\tadd\tstack[@calldatasize], r1, r1\n\tadd\t@CPI0_35[0], r0, r2\n\tsub.s!\t32, r1, r3\n\tadd\t0, r0, r3\n\tadd.lt\tr2, r0, r3\n\tand\t@CPI0_35[0], r1, r1\n\tsub.s!\t0, r1, r4\n\tadd.le\t0, r0, r2\n\tsub.s!\t@CPI0_35[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tadd\t4, r0, r1\n\tptr.add\tstack[@ptr_calldata], r1, r1\n\tld\tr1, r1\n\tand\t@CPI0_59[0], r1, r2\n\tsub!\tr2, r1, r2\n\tjump.ne\t@.BB0_2\n\tadd\t1, r0, r2\n\tsub.s!\t@CPI0_60[0], r1, r3\n\tjump.eq\t@.BB0_76\n\tsub.s!\t@CPI0_61[0], r1, r3\n\tjump.eq\t@.BB0_76\n\tsub.s!\t@CPI0_62[0], r1, r1\n\tadd\t0, r0, r2\n\tadd.eq\t1, r0, r2\n.BB0_76:\n\tand\t1, r2, r1\n\tld.1\t64, r2\n\tst.1\tr2, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI0_44[0], r1, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_115:\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tsub.s\t4, r0, r1\n\tadd\tstack[@calldatasize], r1, r1\n\tadd\t@CPI0_35[0], r0, r2\n\tsub.s!\t0, r1, r3\n\tadd\t0, r0, r3\n\tadd.lt\tr2, r0, r3\n\tand\t@CPI0_35[0], r1, r1\n\tsub.s!\t0, r1, r4\n\tadd.le\t0, r0, r2\n\tsub.s!\t@CPI0_35[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tadd\t7, r0, r1\n\tsload\tr1, r2\n\tand\t@CPI0_8[0], r2, r3\n\tcontext.caller\tr5\n\tsub!\tr3, r5, r3\n\tjump.ne\t@.BB0_118\n\tand\t@CPI0_6[0], r2, r2\n\tsstore\tr1, r2\n\tadd\t@CPI0_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI0_7[0], r1, r1\n\tadd\t32781, r0, r2\n\tadd\t3, r0, r3\n\tadd\t@CPI0_9[0], r0, r4\n\tadd\tr0, r0, r6\n\tnear_call\tr0, @__farcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r1\n\tjump.eq\t@.BB0_2\n.BB0_120:\n\tadd\tr0, r0, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_102:\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tadd\tstack[@calldatasize], r0, r1\n\tnear_call\tr0, @abi_decode_addresst_addresst_uint256, @DEFAULT_UNWIND\n\tadd\tr1, r0, stack-[5]\n\tadd\tr2, r0, stack-[4]\n\tadd\tr3, r0, r2\n\tadd\tr2, r0, stack-[3]\n\tcontext.caller\tr1\n\tnear_call\tr0, @fun_isApprovedOrOwner, @DEFAULT_UNWIND\n\tnear_call\tr0, @require_helper_stringliteral_c868, @DEFAULT_UNWIND\n\tadd\tstack-[5], r0, r1\n\tadd\tstack-[4], r0, r2\n\tadd\tstack-[3], r0, r3\n\tnear_call\tr0, @fun_transfer, @DEFAULT_UNWIND\n\tadd\tr0, r0, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_142:\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tadd\tstack[@calldatasize], r0, r3\n\tsub.s\t4, r3, r1\n\tadd\t@CPI0_35[0], r0, r2\n\tsub.s!\t128, r1, r4\n\tadd\t0, r0, r4\n\tadd.lt\tr2, r0, r4\n\tand\t@CPI0_35[0], r1, r1\n\tsub.s!\t0, r1, r5\n\tadd.le\t0, r0, r2\n\tsub.s!\t@CPI0_35[0], r1, r1\n\tadd\tr4, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tptr.add\tstack[@ptr_calldata], r0, r1\n\tptr.add.s\t4, r1, r2\n\tld\tr2, r2\n\tadd\tr2, r0, stack-[5]\n\tsub.s!\t@CPI0_8[0], r2, r2\n\tjump.gt\t@.BB0_2\n\tptr.add.s\t36, r1, r2\n\tld\tr2, r2\n\tadd\tr2, r0, stack-[4]\n\tsub.s!\t@CPI0_8[0], r2, r2\n\tjump.gt\t@.BB0_2\n\tptr.add.s\t100, r1, r2\n\tld\tr2, r4\n\tsub.s!\t@CPI0_4[0], r4, r2\n\tjump.gt\t@.BB0_2\n\tadd\t35, r4, r2\n\tadd\t@CPI0_35[0], r0, r5\n\tsub!\tr2, r3, r6\n\tadd\t0, r0, r6\n\tadd.ge\tr5, r0, r6\n\tand\t@CPI0_35[0], r3, r7\n\tand\t@CPI0_35[0], r2, r2\n\tsub!\tr2, r7, r8\n\tadd.ge\t0, r0, r5\n\txor\tr2, r7, r2\n\tsub.s!\t@CPI0_35[0], r2, r2\n\tadd\tr6, r0, r2\n\tadd.eq\tr5, r0, r2\n\tsub.s!\t0, r2, r2\n\tjump.ne\t@.BB0_2\n\tadd\t4, r4, r2\n\tptr.add\tr1, r2, r2\n\tld\tr2, r2\n\tptr.add.s\t68, r1, r1\n\tld\tr1, r1\n\tadd\tr1, r0, stack-[3]\n\tadd\t36, r4, r1\n\tnear_call\tr0, @abi_decode_available_length_bytes, @DEFAULT_UNWIND\n\tadd\tr1, r0, r4\n\tadd\tstack-[5], r0, r1\n\tadd\tstack-[4], r0, r2\n\tadd\tstack-[3], r0, r3\n\tnear_call\tr0, @fun_safeTransferFrom, @DEFAULT_UNWIND\n\tadd\tr0, r0, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_86:\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tsub.s\t4, r0, r1\n\tadd\tstack[@calldatasize], r1, r1\n\tadd\t@CPI0_35[0], r0, r2\n\tsub.s!\t32, r1, r3\n\tadd\t0, r0, r3\n\tadd.lt\tr2, r0, r3\n\tand\t@CPI0_35[0], r1, r1\n\tsub.s!\t0, r1, r4\n\tadd.le\t0, r0, r2\n\tsub.s!\t@CPI0_35[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tadd\t4, r0, r1\n\tptr.add\tstack[@ptr_calldata], r1, r1\n\tld\tr1, r1\n\tnear_call\tr0, @fun_getApproved, @DEFAULT_UNWIND\n\tand\t@CPI0_8[0], r1, r1\n\tld.1\t64, r2\n\tst.1\tr2, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI0_44[0], r1, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_124:\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tsub.s\t4, r0, r1\n\tadd\tstack[@calldatasize], r1, r1\n\tadd\t@CPI0_35[0], r0, r2\n\tsub.s!\t0, r1, r3\n\tadd\t0, r0, r3\n\tadd.lt\tr2, r0, r3\n\tand\t@CPI0_35[0], r1, r1\n\tsub.s!\t0, r1, r4\n\tadd.le\t0, r0, r2\n\tsub.s!\t@CPI0_35[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tadd\t1, r0, r4\n\tsload\tr4, r3\n\tand!\t1, r3, r5\n\tshr.s\t1, r3, r1\n\tand\t127, r1, r2\n\tadd\tr1, r0, r7\n\tadd.eq\tr2, r0, r7\n\tsub.s!\t31, r7, r2\n\tadd\t0, r0, r2\n\tadd.gt\t1, r0, r2\n\txor\tr3, r2, r2\n\tand!\t1, r2, r2\n\tjump.ne\t@.BB0_7\n\tld.1\t64, r1\n\tst.1.inc\tr1, r7, r2\n\tsub.s!\t0, r5, r5\n\tjump.ne\t@.BB0_130\n\tsub.s\t256, r0, r4\n\tand\tr3, r4, r3\n\tst.1\tr2, r3\n\tsub.s!\t0, r7, r2\n\tadd\t32, r0, r3\n\tadd.eq\t0, r0, r3\n\tjump\t@.BB0_128\n.BB0_106:\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tsub.s\t4, r0, r1\n\tadd\tstack[@calldatasize], r1, r1\n\tadd\t@CPI0_35[0], r0, r2\n\tsub.s!\t32, r1, r3\n\tadd\t0, r0, r3\n\tadd.lt\tr2, r0, r3\n\tand\t@CPI0_35[0], r1, r1\n\tsub.s!\t0, r1, r4\n\tadd.le\t0, r0, r2\n\tsub.s!\t@CPI0_35[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tadd\t4, r0, r1\n\tptr.add\tstack[@ptr_calldata], r1, r1\n\tld\tr1, r1\n\tnear_call\tr0, @fun_ownerOf, @DEFAULT_UNWIND\n\tand\t@CPI0_8[0], r1, r1\n\tld.1\t64, r2\n\tst.1\tr2, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI0_44[0], r1, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_23:\n\tsub.s!\t0, r6, r1\n\tadd\tr0, r0, r1\n\tjump.eq\t@.BB0_25\n\tld.1\t160, r1\n.BB0_25:\n\tshl.s\t3, r6, r2\n\tsub.s\t1, r0, r3\n\tshr\tr3, r2, r2\n\txor\tr2, r3, r2\n\tand\tr1, r2, r2\n\tshl.s\t1, r6, r1\n.BB0_14:\n\tor\tr2, r1, r1\n\tsstore\tr0, r1\n\tld.1\tr4, r7\n\tsub.s!\t@CPI0_4[0], r7, r1\n\tjump.gt\t@.BB0_4\n\tadd\t1, r0, r6\n\tsload\tr6, r1\n\tand!\t1, r1, r2\n\tshr.s\t1, r1, r2\n\tand\t127, r2, r3\n\tadd.ne\tr2, r0, r3\n\tsub.s!\t31, r3, r2\n\tadd\t0, r0, r2\n\tadd.gt\t1, r0, r2\n\txor\tr1, r2, r1\n\tand!\t1, r1, r1\n\tjump.ne\t@.BB0_7\n\tsub.s!\t32, r3, r1\n\tjump.lt\t@.BB0_31\n\tadd\tr3, r0, stack-[1]\n\tadd\tr7, r0, stack-[2]\n\tadd\tr6, r0, stack-[3]\n\tadd\t1, r0, r1\n\tst.1\t0, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI0_5[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_2\n\tadd\tstack-[2], r0, r7\n\tadd\t31, r7, r2\n\tshr.s\t5, r2, r2\n\tsub.s!\t32, r7, r3\n\tadd.lt\t0, r0, r2\n\tld\tr1, r3\n\tadd\tstack-[1], r0, r1\n\tadd\t31, r1, r1\n\tshr.s\t5, r1, r1\n\tadd\tr3, r1, r1\n\tadd\tr3, r2, r2\n\tsub!\tr2, r1, r3\n\tadd\tstack-[5], r0, r4\n\tadd\tstack-[4], r0, r5\n\tadd\tstack-[3], r0, r6\n\tjump.ge\t@.BB0_31\n.BB0_32:\n\tsstore\tr2, r0\n\tadd\t1, r2, r2\n\tsub!\tr2, r1, r3\n\tjump.lt\t@.BB0_32\n.BB0_31:\n\tsub.s!\t31, r7, r1\n\tjump.le\t@.BB0_41\n\tadd\tr7, r0, stack-[2]\n\tadd\tr6, r0, stack-[3]\n\tst.1\t0, r6\n\tadd\t@CPI0_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI0_5[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_2\n\tsub.s\t32, r0, r2\n\tadd\tstack-[2], r0, r7\n\tand!\tr7, r2, r3\n\tadd\t32, r0, r2\n\tld\tr1, r1\n\tadd\tstack-[5], r0, r6\n\tjump.eq\t@.BB0_38\n\tadd\t32, r0, r2\n\tadd\tr0, r0, r4\n.BB0_37:\n\tadd\tr2, r6, r5\n\tld.1\tr5, r5\n\tsstore\tr1, r5\n\tadd\t32, r2, r2\n\tadd\t1, r1, r1\n\tadd\t32, r4, r4\n\tsub!\tr4, r3, r5\n\tjump.lt\t@.BB0_37\n.BB0_38:\n\tsub!\tr3, r7, r3\n\tjump.ge\t@.BB0_40\n\tshl.s\t3, r7, r3\n\tand\t248, r3, r3\n\tsub.s\t1, r0, r4\n\tshr\tr4, r3, r3\n\txor\tr3, r4, r3\n\tadd\tr2, r6, r2\n\tld.1\tr2, r2\n\tand\tr2, r3, r2\n\tsstore\tr1, r2\n.BB0_40:\n\tshl.s\t1, r7, r1\n\tadd\tstack-[3], r0, r6\n\tadd\tr6, r0, r2\n\tjump\t@.BB0_33\n.BB0_118:\n\tld.1\t64, r1\n\tadd\t68, r1, r2\n\tadd\t@CPI0_51[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI0_38[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t36, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t4, r1, r2\n\tst.1\tr2, r3\n\tadd\t@CPI0_0[0], r0, r2\n\tsub.s!\t@CPI0_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI0_42[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB0_41:\n\tsub.s!\t0, r7, r1\n\tadd\tr0, r0, r1\n\tjump.eq\t@.BB0_43\n\tld.1\tr5, r1\n.BB0_43:\n\tshl.s\t3, r7, r2\n\tsub.s\t1, r0, r3\n\tshr\tr3, r2, r2\n\txor\tr2, r3, r2\n\tand\tr1, r2, r1\n\tshl.s\t1, r7, r2\n.BB0_33:\n\tor\tr1, r2, r1\n\tsstore\tr6, r1\n\tadd\t7, r0, r1\n\tsload\tr1, r2\n\tand\t@CPI0_6[0], r2, r3\n\tcontext.caller\tr6\n\tor\tr3, r6, r3\n\tsstore\tr1, r3\n\tadd\t@CPI0_0[0], r0, r1\n\tcontext.gas_left\tr3\n\tsub.s!\t@CPI0_0[0], r3, r4\n\tadd.lt\tr3, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI0_7[0], r1, r1\n\tand\t@CPI0_8[0], r2, r5\n\tadd\t32781, r0, r2\n\tadd\t3, r0, r3\n\tadd\t@CPI0_9[0], r0, r4\n\tnear_call\tr0, @__farcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r1\n\tjump.eq\t@.BB0_2\n\tadd\t32, r0, r1\n\tst.2\t256, r1\n\tst.2\t288, r0\n\tadd\t@CPI0_10[0], r0, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_130:\n\tst.1\t0, r4\n\tsub.s!\t0, r7, r3\n\tadd\tr0, r0, r3\n\tjump.eq\t@.BB0_128\n\tadd\t@CPI0_50[0], r0, r4\n\tadd\tr0, r0, r3\n.BB0_132:\n\tadd\tr2, r3, r5\n\tsload\tr4, r6\n\tst.1\tr5, r6\n\tadd\t1, r4, r4\n\tadd\t32, r3, r3\n\tsub!\tr3, r7, r5\n\tjump.lt\t@.BB0_132\n.BB0_128:\n\tadd\t32, r3, r2\n\tadd\tr1, r0, stack-[5]\n\tnear_call\tr0, @finalize_allocation, @DEFAULT_UNWIND\n\tld.1\t64, r1\n\tadd\tr1, r0, stack-[4]\n\tadd\tstack-[5], r0, r2\n\tnear_call\tr0, @abi_encode_string, @DEFAULT_UNWIND\n\tadd\tstack-[4], r0, r4\n\tsub\tr1, r4, r1\n\tadd\t@CPI0_0[0], r0, r2\n\tsub.s!\t@CPI0_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tsub.s!\t@CPI0_0[0], r4, r3\n\tadd.lt\tr4, r0, r2\n\tshl.s\t64, r2, r2\n\tshl.s\t96, r1, r1\n\tor\tr1, r2, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_82:\n\tsub.s\t256, r0, r4\n\tand\tr3, r4, r3\n\tst.1\tr2, r3\n\tsub.s!\t0, r7, r2\n\tadd\t32, r0, r3\n\tadd.eq\t0, r0, r3\n.BB0_81:\n\tadd\t32, r3, r2\n\tadd\tr1, r0, stack-[5]\n\tnear_call\tr0, @finalize_allocation, @DEFAULT_UNWIND\n\tld.1\t64, r1\n\tadd\tr1, r0, stack-[4]\n\tadd\tstack-[5], r0, r2\n\tnear_call\tr0, @abi_encode_string, @DEFAULT_UNWIND\n\tadd\tstack-[4], r0, r4\n\tsub\tr1, r4, r1\n\tadd\t@CPI0_0[0], r0, r2\n\tsub.s!\t@CPI0_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tsub.s!\t@CPI0_0[0], r4, r3\n\tadd.lt\tr4, r0, r2\n\tshl.s\t64, r2, r2\n\tshl.s\t96, r1, r1\n\tor\tr1, r2, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_114:\n\tst.1\t0, r1\n\tadd\t3, r0, r1\n\tst.1\t32, r1\n\tadd\t64, r0, r2\n\tadd\tr0, r0, r1\n\tnear_call\tr0, @__keccak256, @DEFAULT_UNWIND\n\tsload\tr1, r1\n\tld.1\t64, r2\n\tst.1\tr2, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI0_44[0], r1, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_139:\n\tadd\tr2, r0, stack-[3]\n\tst.1\t0, r2\n\tadd\t5, r0, r1\n\tst.1\t32, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI0_40[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_2\n\tld\tr1, r1\n\tadd\tstack-[5], r0, r2\n\tst.1\t0, r2\n\tst.1\t32, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI0_40[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_2\n\tld\tr1, r1\n\tsload\tr1, r2\n\tsub.s\t256, r0, r3\n\tand\tr2, r3, r2\n\tadd\tstack-[4], r0, r3\n\tor\tr2, r3, r2\n\tsstore\tr1, r2\n\tld.1\t64, r1\n\tst.1\tr1, r3\n\tadd\t@CPI0_0[0], r0, r2\n\tcontext.gas_left\tr3\n\tsub.s!\t@CPI0_0[0], r3, r4\n\tadd.ge\tr2, r0, r3\n\tsub.s!\t@CPI0_0[0], r1, r4\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tshl.s\t192, r3, r2\n\tor\tr2, r1, r1\n\tor\t@CPI0_5[0], r1, r1\n\tadd\t32781, r0, r2\n\tadd\t3, r0, r3\n\tadd\t@CPI0_48[0], r0, r4\n\tadd\tstack-[3], r0, r5\n\tadd\tstack-[5], r0, r6\n\tnear_call\tr0, @__farcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r1\n\tjump.ne\t@.BB0_120\n\tjump\t@.BB0_2\n.BB0_188:\n\tnear_call\tr0, @fun_transferOwnership, @DEFAULT_UNWIND\n\tadd\tr0, r0, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_95:\n\tadd\tstack-[5], r0, r1\n\tsub!\tr1, r2, r1\n\tjump.ne\t@.BB0_97\n\tld.1\t64, r1\n\tadd\t100, r1, r2\n\tadd\t@CPI0_54[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t68, r1, r2\n\tadd\t@CPI0_55[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t33, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI0_38[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI0_0[0], r0, r2\n\tsub.s!\t@CPI0_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI0_39[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB0_97:\n\tadd\t1, r0, r1\n\tcontext.caller\tr3\n\tadd\tr3, r0, stack-[3]\n\tsub!\tr3, r2, r3\n\tjump.ne\t@.BB0_98\n.BB0_101:\n\tnear_call\tr0, @require_helper_stringliteral_6d83, @DEFAULT_UNWIND\n\tadd\tstack-[5], r0, r1\n\tadd\tstack-[4], r0, r2\n\tnear_call\tr0, @fun_approve, @DEFAULT_UNWIND\n\tadd\tr0, r0, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_98:\n\tst.1\t0, r2\n\tadd\t5, r0, r1\n\tst.1\t32, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI0_40[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_2\n\tld\tr1, r1\n\tadd\tstack-[3], r0, r2\n\tand\t@CPI0_8[0], r2, r2\n\tst.1\t0, r2\n\tst.1\t32, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI0_40[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_2\n\tld\tr1, r1\n\tsload\tr1, r1\n\tand\t255, r1, r1\n\tjump\t@.BB0_101\n.BB0_173:\n\tadd\tstack-[3], r0, r1\n\tst.1\t0, r1\n\tadd\t2, r0, r1\n\tadd\tr1, r0, stack-[2]\n\tst.1\t32, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI0_40[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_2\n\tld\tr1, r1\n\tsload\tr1, r1\n\tand!\t@CPI0_8[0], r1, r1\n\tjump.ne\t@.BB0_175\n\tadd\tstack-[5], r0, r1\n\tst.1\t0, r1\n\tadd\t3, r0, r1\n\tst.1\t32, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI0_40[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_2\n\tld\tr1, r1\n\tsload\tr1, r2\n\tsub.s\t1, r0, r3\n\tsub!\tr2, r3, r3\n\tjump.ne\t@.BB0_179\n\tadd\t@CPI0_45[0], r0, r1\n\tst.1\t0, r1\n\tadd\t17, r0, r1\n\tst.1\t4, r1\n\tadd\t@CPI0_46[0], r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB0_175:\n\tld.1\t64, r1\n\tadd\t68, r1, r2\n\tadd\t@CPI0_41[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t28, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI0_38[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI0_0[0], r0, r2\n\tsub.s!\t@CPI0_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI0_42[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB0_179:\n\tadd\t1, r2, r2\n\tsstore\tr1, r2\n\tadd\tstack-[3], r0, r1\n\tst.1\t0, r1\n\tadd\tstack-[2], r0, r1\n\tst.1\t32, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI0_40[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_2\n\tld\tr1, r1\n\tsload\tr1, r2\n\tand\t@CPI0_6[0], r2, r2\n\tadd\tstack-[5], r0, r6\n\tor\tr2, r6, r2\n\tsstore\tr1, r2\n\tadd\t@CPI0_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI0_7[0], r1, r1\n\tadd\t32781, r0, r2\n\tadd\t4, r0, r3\n\tadd\t@CPI0_43[0], r0, r4\n\tadd\tr0, r0, r5\n\tadd\tstack-[3], r0, r7\n\tnear_call\tr0, @__farcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r1\n\tjump.eq\t@.BB0_2\n\tadd\tstack-[3], r0, r1\n\tadd\tstack-[4], r0, r2\n\tnear_call\tr0, @fun_setTokenURI, @DEFAULT_UNWIND\n\tld.1\t64, r1\n\tadd\tstack-[3], r0, r2\n\tst.1\tr1, r2\n\tadd\t@CPI0_0[0], r0, r2\n\tsub.s!\t@CPI0_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI0_44[0], r1, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_2:\n\tadd\tr0, r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.func_end0:\n\n__keccak256:\n.func_begin1:\n\tadd\t@CPI1_0[0], r0, r3\n\tsub.s!\t@CPI1_0[0], r1, r4\n\tadd.ge\tr3, r0, r1\n\tshl.s\t64, r1, r1\n\tsub.s!\t@CPI1_0[0], r2, r4\n\tadd.ge\tr3, r0, r2\n\tshl.s\t96, r2, r2\n\tor\tr2, r1, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI1_0[0], r2, r4\n\tadd.ge\tr3, r0, r2\n\tshl.s\t192, r2, r2\n\tor\tr2, r1, r1\n\tor\t@CPI1_1[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB1_2\n\tld\tr1, r1\n\tret\n.BB1_2:\n\tadd\tr0, r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.func_end1:\n\nabi_encode_string_to_string:\n.func_begin2:\n\tld.1\tr1, r3\n\tst.1.inc\tr2, r3, r2\n\tsub.s!\t0, r3, r4\n\tjump.eq\t@.BB2_3\n\tadd\tr0, r0, r4\n.BB2_2:\n\tadd\tr4, r2, r5\n\tadd\t32, r4, r4\n\tadd\tr4, r1, r6\n\tld.1\tr6, r6\n\tst.1\tr5, r6\n\tsub!\tr4, r3, r5\n\tjump.lt\t@.BB2_2\n.BB2_3:\n\tadd\tr3, r2, r1\n\tst.1\tr1, r0\n\tadd\t31, r3, r1\n\tsub.s\t32, r0, r3\n\tand\tr1, r3, r1\n\tadd\tr2, r1, r1\n\tret\n.func_end2:\n\nabi_encode_string:\n.func_begin3:\n\tadd\t32, r0, r3\n\tst.1.inc\tr1, r3, r4\n\tld.1\tr2, r3\n\tst.1\tr4, r3\n\tadd\t64, r1, r1\n\tsub.s!\t0, r3, r4\n\tjump.eq\t@.BB3_3\n\tadd\tr0, r0, r4\n.BB3_2:\n\tadd\tr4, r1, r5\n\tadd\t32, r4, r4\n\tadd\tr4, r2, r6\n\tld.1\tr6, r6\n\tst.1\tr5, r6\n\tsub!\tr4, r3, r5\n\tjump.lt\t@.BB3_2\n.BB3_3:\n\tadd\tr3, r1, r2\n\tst.1\tr2, r0\n\tadd\t31, r3, r2\n\tsub.s\t32, r0, r3\n\tand\tr2, r3, r2\n\tadd\tr2, r1, r1\n\tret\n.func_end3:\n\nabi_decode_addresst_addresst_uint256:\n.func_begin4:\n\tsub.s\t4, r1, r1\n\tadd\t@CPI4_0[0], r0, r2\n\tsub.s!\t95, r1, r3\n\tadd\t0, r0, r3\n\tadd.gt\tr2, r0, r3\n\tand\t@CPI4_0[0], r1, r1\n\tsub.s!\t0, r1, r4\n\tadd.ge\t0, r0, r2\n\tsub.s!\t@CPI4_0[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.eq\t@.BB4_1\n\tptr.add\tstack[@ptr_calldata], r0, r3\n\tptr.add.s\t4, r3, r1\n\tld\tr1, r1\n\tsub.s!\t@CPI4_1[0], r1, r2\n\tjump.gt\t@.BB4_1\n\tptr.add.s\t36, r3, r2\n\tld\tr2, r2\n\tsub.s!\t@CPI4_1[0], r2, r4\n\tjump.gt\t@.BB4_1\n\tptr.add.s\t68, r3, r3\n\tld\tr3, r3\n\tret\n.BB4_1:\n\tadd\tr0, r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.func_end4:\n\nfinalize_allocation_11212:\n.func_begin5:\n\tsub.s!\t@CPI5_0[0], r1, r2\n\tjump.ge\t@.BB5_1\n\tadd\t32, r1, r1\n\tst.1\t64, r1\n\tret\n.BB5_1:\n\tadd\t@CPI5_1[0], r0, r1\n\tst.1\t0, r1\n\tadd\t65, r0, r1\n\tst.1\t4, r1\n\tadd\t@CPI5_2[0], r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.func_end5:\n\nfinalize_allocation:\n.func_begin6:\n\tadd\t31, r2, r2\n\tsub.s\t32, r0, r3\n\tand\tr2, r3, r2\n\tadd\tr2, r1, r1\n\tsub!\tr1, r2, r2\n\tadd\t0, r0, r2\n\tadd.lt\t1, r0, r2\n\tsub.s!\t@CPI6_0[0], r1, r3\n\tjump.gt\t@.BB6_2\n\tand!\t1, r2, r2\n\tjump.ne\t@.BB6_2\n\tst.1\t64, r1\n\tret\n.BB6_2:\n\tadd\t@CPI6_1[0], r0, r1\n\tst.1\t0, r1\n\tadd\t65, r0, r1\n\tst.1\t4, r1\n\tadd\t@CPI6_2[0], r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.func_end6:\n\nabi_decode_available_length_bytes:\n.func_begin7:\n\tadd\tr1, r0, r4\n\tsub.s!\t@CPI7_0[0], r2, r1\n\tjump.ge\t@.BB7_1\n\tadd\t63, r2, r1\n\tsub.s\t32, r0, r5\n\tand\tr1, r5, r5\n\tld.1\t64, r1\n\tadd\tr1, r5, r5\n\tsub!\tr5, r1, r6\n\tadd\t0, r0, r6\n\tadd.lt\t1, r0, r6\n\tsub.s!\t@CPI7_1[0], r5, r7\n\tjump.gt\t@.BB7_1\n\tand!\t1, r6, r6\n\tjump.ne\t@.BB7_1\n\tst.1\t64, r5\n\tst.1.inc\tr1, r2, r5\n\tadd\tr2, r4, r6\n\tsub!\tr6, r3, r3\n\tjump.gt\t@.BB7_5\n\tand\t31, r2, r3\n\tptr.add\tstack[@ptr_calldata], r4, r4\n\tshr.s!\t5, r2, r6\n\tjump.eq\t@.BB7_11\n\tadd\tr0, r0, r7\n.BB7_8:\n\tshl.s\t5, r7, r8\n\tadd\tr5, r8, r9\n\tptr.add\tr4, r8, r8\n\tld\tr8, r8\n\tst.1\tr9, r8\n\tadd\t1, r7, r7\n\tsub!\tr7, r6, r8\n\tjump.lt\t@.BB7_8\n.BB7_11:\n\tsub.s!\t0, r3, r7\n\tjump.eq\t@.BB7_10\n\tshl.s\t5, r6, r6\n\tptr.add\tr4, r6, r4\n\tadd\tr5, r6, r6\n\tshl.s\t3, r3, r3\n\tld.1\tr6, r7\n\tshl\tr7, r3, r7\n\tshr\tr7, r3, r7\n\tld\tr4, r4\n\tsub\t256, r3, r3\n\tshr\tr4, r3, r4\n\tshl\tr4, r3, r3\n\tor\tr3, r7, r3\n\tst.1\tr6, r3\n.BB7_10:\n\tadd\tr5, r2, r2\n\tst.1\tr2, r0\n\tret\n.BB7_1:\n\tadd\t@CPI7_2[0], r0, r1\n\tst.1\t0, r1\n\tadd\t65, r0, r1\n\tst.1\t4, r1\n\tadd\t@CPI7_3[0], r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB7_5:\n\tadd\tr0, r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.func_end7:\n\nfun_transferOwnership:\n.func_begin8:\n\tand\t@CPI8_0[0], r1, r6\n\tadd\t7, r0, r1\n\tsload\tr1, r2\n\tand\t@CPI8_1[0], r2, r3\n\tor\tr3, r6, r3\n\tsstore\tr1, r3\n\tadd\t@CPI8_2[0], r0, r1\n\tcontext.gas_left\tr3\n\tsub.s!\t@CPI8_2[0], r3, r4\n\tadd.lt\tr3, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI8_3[0], r1, r1\n\tand\t@CPI8_0[0], r2, r5\n\tadd\t32781, r0, r2\n\tadd\t3, r0, r3\n\tadd\t@CPI8_4[0], r0, r4\n\tnear_call\tr0, @__farcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r1\n\tjump.eq\t@.BB8_1\n\tret\n.BB8_1:\n\tadd\tr0, r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.func_end8:\n\nmapping_index_access_mapping_address_uint256_of_address:\n.func_begin9:\n\tand\t@CPI9_0[0], r2, r2\n\tst.1\t0, r2\n\tst.1\t32, r1\n\tadd\t@CPI9_1[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI9_1[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI9_2[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB9_1\n\tld\tr1, r1\n\tret\n.BB9_1:\n\tadd\tr0, r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.func_end9:\n\nfun_ownerOf:\n.func_begin10:\n\tst.1\t0, r1\n\tadd\t2, r0, r1\n\tst.1\t32, r1\n\tadd\t@CPI10_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI10_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI10_1[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB10_1\n\tld\tr1, r1\n\tsload\tr1, r1\n\tand!\t@CPI10_2[0], r1, r1\n\tjump.eq\t@.BB10_3\n\tret\n.BB10_1:\n\tadd\tr0, r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB10_3:\n\tld.1\t64, r1\n\tadd\t100, r1, r2\n\tadd\t@CPI10_3[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t68, r1, r2\n\tadd\t@CPI10_4[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t41, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI10_5[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI10_0[0], r0, r2\n\tsub.s!\t@CPI10_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI10_6[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.func_end10:\n\nrequire_helper_stringliteral_6d83:\n.func_begin11:\n\tsub.s!\t0, r1, r1\n\tjump.eq\t@.BB11_1\n\tret\n.BB11_1:\n\tld.1\t64, r1\n\tadd\t100, r1, r2\n\tadd\t@CPI11_0[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t68, r1, r2\n\tadd\t@CPI11_1[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t56, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI11_2[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI11_3[0], r0, r2\n\tsub.s!\t@CPI11_3[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI11_4[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.func_end11:\n\nfun_getApproved:\n.func_begin12:\n\tnop\tstack+=[1]\n\tadd\tr1, r0, stack-[1]\n\tst.1\t0, r1\n\tadd\t2, r0, r1\n\tst.1\t32, r1\n\tadd\t@CPI12_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI12_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI12_1[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB12_1\n\tld\tr1, r1\n\tsload\tr1, r1\n\tand!\t@CPI12_2[0], r1, r1\n\tjump.eq\t@.BB12_3\n\tadd\tstack-[1], r0, r1\n\tst.1\t0, r1\n\tadd\t4, r0, r1\n\tst.1\t32, r1\n\tadd\t@CPI12_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI12_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI12_1[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB12_1\n\tld\tr1, r1\n\tsload\tr1, r1\n\tand\t@CPI12_2[0], r1, r1\n\tret\n.BB12_1:\n\tadd\tr0, r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB12_3:\n\tld.1\t64, r1\n\tadd\t100, r1, r2\n\tadd\t@CPI12_3[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t68, r1, r2\n\tadd\t@CPI12_4[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t44, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI12_5[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI12_0[0], r0, r2\n\tsub.s!\t@CPI12_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI12_6[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.func_end12:\n\nrequire_helper_stringliteral_c868:\n.func_begin13:\n\tsub.s!\t0, r1, r1\n\tjump.eq\t@.BB13_1\n\tret\n.BB13_1:\n\tld.1\t64, r1\n\tadd\t100, r1, r2\n\tadd\t@CPI13_0[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t68, r1, r2\n\tadd\t@CPI13_1[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t49, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI13_2[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI13_3[0], r0, r2\n\tsub.s!\t@CPI13_3[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI13_4[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.func_end13:\n\nfun_safeTransferFrom:\n.func_begin14:\n\tnop\tstack+=[8]\n\tadd\tr4, r0, stack-[2]\n\tadd\tr2, r0, stack-[4]\n\tadd\tr1, r0, stack-[5]\n\tadd\tr3, r0, stack-[8]\n\tst.1\t0, r3\n\tadd\t2, r0, r1\n\tadd\tr1, r0, stack-[7]\n\tst.1\t32, r1\n\tadd\t@CPI14_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI14_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI14_1[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB14_1\n\tld\tr1, r1\n\tsload\tr1, r1\n\tand!\t@CPI14_2[0], r1, r1\n\tjump.eq\t@.BB14_3\n\tadd\tstack-[8], r0, r1\n\tst.1\t0, r1\n\tadd\tstack-[7], r0, r1\n\tst.1\t32, r1\n\tadd\t@CPI14_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI14_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI14_1[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB14_1\n\tld\tr1, r1\n\tsload\tr1, r1\n\tand!\t@CPI14_2[0], r1, r1\n\tjump.eq\t@.BB14_6\n\tcontext.caller\tr2\n\tand\t@CPI14_2[0], r2, r2\n\tadd\tr2, r0, stack-[6]\n\tsub!\tr2, r1, r2\n\tjump.eq\t@.BB14_17\n\tst.1\t0, r1\n\tadd\t5, r0, r1\n\tst.1\t32, r1\n\tadd\t@CPI14_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI14_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI14_1[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB14_1\n\tld\tr1, r1\n\tadd\tstack-[6], r0, r2\n\tst.1\t0, r2\n\tst.1\t32, r1\n\tadd\t@CPI14_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI14_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI14_1[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB14_1\n\tld\tr1, r1\n\tsload\tr1, r1\n\tand!\t255, r1, r1\n\tjump.ne\t@.BB14_17\n\tadd\tstack-[8], r0, r1\n\tst.1\t0, r1\n\tadd\tstack-[7], r0, r1\n\tst.1\t32, r1\n\tadd\t@CPI14_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI14_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI14_1[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB14_1\n\tld\tr1, r1\n\tsload\tr1, r1\n\tand!\t@CPI14_2[0], r1, r1\n\tjump.eq\t@.BB14_13\n\tadd\tstack-[8], r0, r1\n\tst.1\t0, r1\n\tadd\t4, r0, r1\n\tst.1\t32, r1\n\tadd\t@CPI14_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI14_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI14_1[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB14_1\n\tld\tr1, r1\n\tsload\tr1, r1\n\tand\t@CPI14_2[0], r1, r1\n\tadd\tstack-[6], r0, r2\n\tsub!\tr1, r2, r1\n\tjump.ne\t@.BB14_16\n.BB14_17:\n\tadd\tstack-[8], r0, r1\n\tst.1\t0, r1\n\tadd\tstack-[7], r0, r1\n\tst.1\t32, r1\n\tadd\t@CPI14_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI14_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI14_1[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB14_1\n\tld\tr1, r1\n\tsload\tr1, r1\n\tand!\t@CPI14_2[0], r1, r1\n\tadd\tr1, r0, stack-[6]\n\tjump.eq\t@.BB14_6\n\tadd\tstack-[5], r0, r1\n\tand\t@CPI14_2[0], r1, r1\n\tadd\tstack-[6], r0, r2\n\tsub!\tr2, r1, r1\n\tjump.ne\t@.BB14_20\n\tadd\tstack-[4], r0, r1\n\tand!\t@CPI14_2[0], r1, r1\n\tadd\tr1, r0, stack-[3]\n\tjump.eq\t@.BB14_22\n\tadd\tstack-[8], r0, r1\n\tst.1\t0, r1\n\tadd\t4, r0, r1\n\tst.1\t32, r1\n\tadd\t@CPI14_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI14_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI14_1[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB14_1\n\tld\tr1, r1\n\tsload\tr1, r2\n\tand\t@CPI14_11[0], r2, r2\n\tsstore\tr1, r2\n\tadd\tstack-[8], r0, r1\n\tst.1\t0, r1\n\tadd\tstack-[7], r0, r1\n\tst.1\t32, r1\n\tadd\t@CPI14_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI14_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI14_1[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB14_1\n\tld\tr1, r1\n\tsload\tr1, r1\n\tand!\t@CPI14_2[0], r1, r5\n\tjump.eq\t@.BB14_6\n\tadd\t@CPI14_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI14_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI14_12[0], r1, r1\n\tadd\t32781, r0, r2\n\tadd\t4, r0, r3\n\tadd\t@CPI14_13[0], r0, r4\n\tadd\tr0, r0, r6\n\tadd\tstack-[8], r0, r7\n\tnear_call\tr0, @__farcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r1\n\tjump.eq\t@.BB14_1\n\tadd\tstack-[6], r0, r1\n\tst.1\t0, r1\n\tadd\t3, r0, r1\n\tadd\tr1, r0, stack-[1]\n\tst.1\t32, r1\n\tadd\t@CPI14_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI14_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI14_1[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB14_1\n\tld\tr1, r1\n\tsload\tr1, r2\n\tsub.s!\t0, r2, r3\n\tjump.eq\t@.BB14_29\n\tsub.s\t1, r2, r2\n\tsstore\tr1, r2\n\tadd\tstack-[3], r0, r1\n\tst.1\t0, r1\n\tadd\tstack-[1], r0, r1\n\tst.1\t32, r1\n\tadd\t@CPI14_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI14_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI14_1[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB14_1\n\tld\tr1, r1\n\tsload\tr1, r2\n\tsub.s\t1, r0, r3\n\tsub!\tr2, r3, r3\n\tjump.eq\t@.BB14_29\n\tadd\t1, r2, r2\n\tsstore\tr1, r2\n\tadd\tstack-[8], r0, r1\n\tst.1\t0, r1\n\tadd\tstack-[7], r0, r1\n\tst.1\t32, r1\n\tadd\t@CPI14_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI14_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI14_1[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB14_1\n\tld\tr1, r1\n\tsload\tr1, r2\n\tand\t@CPI14_11[0], r2, r2\n\tadd\tstack-[3], r0, r6\n\tor\tr2, r6, r2\n\tsstore\tr1, r2\n\tadd\t@CPI14_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI14_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI14_12[0], r1, r1\n\tadd\t32781, r0, r2\n\tadd\t4, r0, r3\n\tadd\t@CPI14_14[0], r0, r4\n\tadd\tstack-[6], r0, r5\n\tadd\tstack-[8], r0, r7\n\tnear_call\tr0, @__farcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r1\n\tjump.eq\t@.BB14_1\n\tadd\tstack-[5], r0, r1\n\tadd\tstack-[4], r0, r2\n\tadd\tstack-[8], r0, r3\n\tadd\tstack-[2], r0, r4\n\tnear_call\tr0, @fun_checkOnERC721Received, @DEFAULT_UNWIND\n\tsub.s!\t0, r1, r1\n\tjump.eq\t@.BB14_35\n\tret\n.BB14_1:\n\tadd\tr0, r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB14_6:\n\tld.1\t64, r1\n\tadd\t100, r1, r2\n\tadd\t@CPI14_19[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t68, r1, r2\n\tadd\t@CPI14_20[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t41, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI14_5[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI14_0[0], r0, r2\n\tsub.s!\t@CPI14_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI14_6[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB14_29:\n\tadd\t@CPI14_15[0], r0, r1\n\tst.1\t0, r1\n\tadd\t17, r0, r1\n\tst.1\t4, r1\n\tadd\t@CPI14_16[0], r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB14_3:\n\tld.1\t64, r1\n\tadd\t100, r1, r2\n\tadd\t@CPI14_7[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t68, r1, r2\n\tadd\t@CPI14_21[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t44, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI14_5[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI14_0[0], r0, r2\n\tsub.s!\t@CPI14_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI14_6[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB14_20:\n\tld.1\t64, r1\n\tadd\t100, r1, r2\n\tadd\t@CPI14_9[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t68, r1, r2\n\tadd\t@CPI14_10[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t37, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI14_5[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI14_0[0], r0, r2\n\tsub.s!\t@CPI14_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI14_6[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB14_22:\n\tld.1\t64, r1\n\tadd\t100, r1, r2\n\tadd\t@CPI14_17[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t68, r1, r2\n\tadd\t@CPI14_18[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t36, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI14_5[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI14_0[0], r0, r2\n\tsub.s!\t@CPI14_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI14_6[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB14_35:\n\tld.1\t64, r2\n\tadd\tr2, r0, stack-[8]\n\tadd\t@CPI14_5[0], r0, r1\n\tst.1\tr2, r1\n\tadd\t4, r2, r1\n\tnear_call\tr0, @abi_encode_stringliteral_1e76, @DEFAULT_UNWIND\n\tadd\tstack-[8], r0, r4\n\tsub\tr1, r4, r1\n\tadd\t@CPI14_0[0], r0, r2\n\tsub.s!\t@CPI14_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tsub.s!\t@CPI14_0[0], r4, r3\n\tadd.lt\tr4, r0, r2\n\tshl.s\t64, r2, r2\n\tshl.s\t96, r1, r1\n\tor\tr1, r2, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB14_13:\n\tld.1\t64, r1\n\tadd\t100, r1, r2\n\tadd\t@CPI14_7[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t68, r1, r2\n\tadd\t@CPI14_8[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t44, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI14_5[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI14_0[0], r0, r2\n\tsub.s!\t@CPI14_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI14_6[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB14_16:\n\tld.1\t64, r1\n\tadd\t100, r1, r2\n\tadd\t@CPI14_3[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t68, r1, r2\n\tadd\t@CPI14_4[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t49, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI14_5[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI14_0[0], r0, r2\n\tsub.s!\t@CPI14_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI14_6[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.func_end14:\n\nabi_encode_stringliteral_1e76:\n.func_begin15:\n\tadd\t96, r1, r2\n\tadd\t@CPI15_0[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t64, r1, r2\n\tadd\t@CPI15_1[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t32, r1, r2\n\tadd\t50, r0, r3\n\tst.1\tr2, r3\n\tadd\t32, r0, r2\n\tst.1\tr1, r2\n\tadd\t128, r1, r1\n\tret\n.func_end15:\n\nfun_isApprovedOrOwner:\n.func_begin16:\n\tnop\tstack+=[3]\n\tadd\tr1, r0, stack-[1]\n\tadd\tr2, r0, stack-[3]\n\tst.1\t0, r2\n\tadd\t2, r0, r1\n\tadd\tr1, r0, stack-[2]\n\tst.1\t32, r1\n\tadd\t@CPI16_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI16_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI16_1[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB16_1\n\tld\tr1, r1\n\tsload\tr1, r1\n\tand!\t@CPI16_2[0], r1, r1\n\tjump.eq\t@.BB16_3\n\tadd\tstack-[3], r0, r1\n\tst.1\t0, r1\n\tadd\tstack-[2], r0, r1\n\tst.1\t32, r1\n\tadd\t@CPI16_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI16_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI16_1[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB16_1\n\tld\tr1, r1\n\tsload\tr1, r1\n\tand!\t@CPI16_2[0], r1, r2\n\tjump.eq\t@.BB16_6\n\tadd\t1, r0, r1\n\tadd\tstack-[1], r0, r3\n\tand\t@CPI16_2[0], r3, r3\n\tadd\tr3, r0, stack-[1]\n\tsub!\tr3, r2, r3\n\tjump.eq\t@.BB16_16\n\tst.1\t0, r2\n\tadd\t5, r0, r1\n\tst.1\t32, r1\n\tadd\t@CPI16_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI16_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI16_1[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB16_1\n\tld\tr1, r1\n\tadd\tstack-[1], r0, r2\n\tst.1\t0, r2\n\tst.1\t32, r1\n\tadd\t@CPI16_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI16_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI16_1[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB16_1\n\tld\tr1, r1\n\tsload\tr1, r1\n\tand!\t255, r1, r1\n\tjump.ne\t@.BB16_16\n\tadd\tstack-[3], r0, r1\n\tst.1\t0, r1\n\tadd\tstack-[2], r0, r1\n\tst.1\t32, r1\n\tadd\t@CPI16_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI16_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI16_1[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB16_1\n\tld\tr1, r1\n\tsload\tr1, r1\n\tand!\t@CPI16_2[0], r1, r1\n\tjump.eq\t@.BB16_13\n\tadd\tstack-[3], r0, r1\n\tst.1\t0, r1\n\tadd\t4, r0, r1\n\tst.1\t32, r1\n\tadd\t@CPI16_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI16_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI16_1[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB16_1\n\tld\tr1, r1\n\tsload\tr1, r1\n\tand\t@CPI16_2[0], r1, r1\n\tadd\tstack-[1], r0, r2\n\tsub!\tr1, r2, r1\n\tadd\t0, r0, r1\n\tadd.eq\t1, r0, r1\n.BB16_16:\n\tret\n.BB16_1:\n\tadd\tr0, r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB16_3:\n\tld.1\t64, r1\n\tadd\t100, r1, r2\n\tadd\t@CPI16_3[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t68, r1, r2\n\tadd\t@CPI16_9[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t44, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI16_5[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI16_0[0], r0, r2\n\tsub.s!\t@CPI16_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI16_6[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB16_6:\n\tld.1\t64, r1\n\tadd\t100, r1, r2\n\tadd\t@CPI16_7[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t68, r1, r2\n\tadd\t@CPI16_8[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t41, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI16_5[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI16_0[0], r0, r2\n\tsub.s!\t@CPI16_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI16_6[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB16_13:\n\tld.1\t64, r1\n\tadd\t100, r1, r2\n\tadd\t@CPI16_3[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t68, r1, r2\n\tadd\t@CPI16_4[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t44, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI16_5[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI16_0[0], r0, r2\n\tsub.s!\t@CPI16_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI16_6[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.func_end16:\n\nfun_transfer:\n.func_begin17:\n\tnop\tstack+=[5]\n\tadd\tr2, r0, stack-[1]\n\tadd\tr1, r0, stack-[2]\n\tadd\tr3, r0, stack-[5]\n\tst.1\t0, r3\n\tadd\t2, r0, r1\n\tadd\tr1, r0, stack-[3]\n\tst.1\t32, r1\n\tadd\t@CPI17_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI17_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI17_1[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB17_1\n\tld\tr1, r1\n\tsload\tr1, r1\n\tand!\t@CPI17_2[0], r1, r1\n\tadd\tr1, r0, stack-[4]\n\tjump.eq\t@.BB17_3\n\tadd\tstack-[2], r0, r1\n\tand\t@CPI17_2[0], r1, r1\n\tadd\tstack-[4], r0, r2\n\tsub!\tr2, r1, r1\n\tjump.ne\t@.BB17_5\n\tadd\tstack-[1], r0, r1\n\tand!\t@CPI17_2[0], r1, r1\n\tadd\tr1, r0, stack-[2]\n\tjump.eq\t@.BB17_7\n\tadd\tstack-[5], r0, r1\n\tst.1\t0, r1\n\tadd\t4, r0, r1\n\tst.1\t32, r1\n\tadd\t@CPI17_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI17_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI17_1[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB17_1\n\tld\tr1, r1\n\tsload\tr1, r2\n\tand\t@CPI17_7[0], r2, r2\n\tsstore\tr1, r2\n\tadd\tstack-[5], r0, r1\n\tst.1\t0, r1\n\tadd\tstack-[3], r0, r1\n\tst.1\t32, r1\n\tadd\t@CPI17_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI17_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI17_1[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB17_1\n\tld\tr1, r1\n\tsload\tr1, r1\n\tand!\t@CPI17_2[0], r1, r5\n\tjump.eq\t@.BB17_3\n\tadd\t@CPI17_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI17_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI17_8[0], r1, r1\n\tadd\t32781, r0, r2\n\tadd\t4, r0, r3\n\tadd\t@CPI17_9[0], r0, r4\n\tadd\tr0, r0, r6\n\tadd\tstack-[5], r0, r7\n\tnear_call\tr0, @__farcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r1\n\tjump.eq\t@.BB17_1\n\tadd\tstack-[4], r0, r1\n\tst.1\t0, r1\n\tadd\t3, r0, r1\n\tadd\tr1, r0, stack-[1]\n\tst.1\t32, r1\n\tadd\t@CPI17_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI17_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI17_1[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB17_1\n\tld\tr1, r1\n\tsload\tr1, r2\n\tsub.s!\t0, r2, r3\n\tjump.eq\t@.BB17_14\n\tsub.s\t1, r2, r2\n\tsstore\tr1, r2\n\tadd\tstack-[2], r0, r1\n\tst.1\t0, r1\n\tadd\tstack-[1], r0, r1\n\tst.1\t32, r1\n\tadd\t@CPI17_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI17_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI17_1[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB17_1\n\tld\tr1, r1\n\tsload\tr1, r2\n\tsub.s\t1, r0, r3\n\tsub!\tr2, r3, r3\n\tjump.eq\t@.BB17_14\n\tadd\t1, r2, r2\n\tsstore\tr1, r2\n\tadd\tstack-[5], r0, r1\n\tst.1\t0, r1\n\tadd\tstack-[3], r0, r1\n\tst.1\t32, r1\n\tadd\t@CPI17_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI17_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI17_1[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB17_1\n\tld\tr1, r1\n\tsload\tr1, r2\n\tand\t@CPI17_7[0], r2, r2\n\tadd\tstack-[2], r0, r6\n\tor\tr2, r6, r2\n\tsstore\tr1, r2\n\tadd\t@CPI17_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI17_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI17_8[0], r1, r1\n\tadd\t32781, r0, r2\n\tadd\t4, r0, r3\n\tadd\t@CPI17_10[0], r0, r4\n\tadd\tstack-[4], r0, r5\n\tadd\tstack-[5], r0, r7\n\tnear_call\tr0, @__farcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r1\n\tjump.eq\t@.BB17_1\n\tret\n.BB17_1:\n\tadd\tr0, r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB17_3:\n\tld.1\t64, r1\n\tadd\t100, r1, r2\n\tadd\t@CPI17_15[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t68, r1, r2\n\tadd\t@CPI17_16[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t41, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI17_5[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI17_0[0], r0, r2\n\tsub.s!\t@CPI17_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI17_6[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB17_14:\n\tadd\t@CPI17_11[0], r0, r1\n\tst.1\t0, r1\n\tadd\t17, r0, r1\n\tst.1\t4, r1\n\tadd\t@CPI17_12[0], r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB17_5:\n\tld.1\t64, r1\n\tadd\t100, r1, r2\n\tadd\t@CPI17_3[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t68, r1, r2\n\tadd\t@CPI17_4[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t37, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI17_5[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI17_0[0], r0, r2\n\tsub.s!\t@CPI17_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI17_6[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB17_7:\n\tld.1\t64, r1\n\tadd\t100, r1, r2\n\tadd\t@CPI17_13[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t68, r1, r2\n\tadd\t@CPI17_14[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t36, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI17_5[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI17_0[0], r0, r2\n\tsub.s!\t@CPI17_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI17_6[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.func_end17:\n\nfun_approve:\n.func_begin18:\n\tnop\tstack+=[2]\n\tadd\tr1, r0, stack-[1]\n\tadd\tr2, r0, stack-[2]\n\tst.1\t0, r2\n\tadd\t4, r0, r1\n\tst.1\t32, r1\n\tadd\t@CPI18_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI18_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI18_1[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB18_1\n\tadd\tstack-[1], r0, r2\n\tand\t@CPI18_2[0], r2, r3\n\tld\tr1, r1\n\tsload\tr1, r2\n\tand\t@CPI18_3[0], r2, r2\n\tadd\tr3, r0, stack-[1]\n\tor\tr2, r3, r2\n\tsstore\tr1, r2\n\tadd\tstack-[2], r0, r1\n\tst.1\t0, r1\n\tadd\t2, r0, r1\n\tst.1\t32, r1\n\tadd\t@CPI18_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI18_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI18_1[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB18_1\n\tadd\tstack-[2], r0, r7\n\tld\tr1, r1\n\tsload\tr1, r1\n\tand!\t@CPI18_2[0], r1, r5\n\tjump.eq\t@.BB18_4\n\tadd\t@CPI18_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI18_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI18_4[0], r1, r1\n\tadd\t32781, r0, r2\n\tadd\t4, r0, r3\n\tadd\t@CPI18_5[0], r0, r4\n\tadd\tstack-[1], r0, r6\n\tnear_call\tr0, @__farcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r1\n\tjump.eq\t@.BB18_1\n\tret\n.BB18_1:\n\tadd\tr0, r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB18_4:\n\tld.1\t64, r1\n\tadd\t100, r1, r2\n\tadd\t@CPI18_6[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t68, r1, r2\n\tadd\t@CPI18_7[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t41, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI18_8[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI18_0[0], r0, r2\n\tsub.s!\t@CPI18_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI18_9[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.func_end18:\n\nfun_checkOnERC721Received:\n.func_begin19:\n\tnop\tstack+=[6]\n\tadd\tr4, r0, stack-[4]\n\tadd\tr3, r0, stack-[2]\n\tadd\tr1, r0, stack-[1]\n\tadd\t@CPI19_0[0], r0, r1\n\tst.2\t0, r1\n\tadd\tr2, r0, stack-[3]\n\tst.2\t4, r2\n\tadd\t@CPI19_1[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI19_1[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI19_2[0], r1, r1\n\tadd\t32770, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tptr.add\tr1, r0, r3\n\tand!\t1, r2, r1\n\tjump.eq\t@.BB19_1\n\tadd\t1, r0, r1\n\tld\tr3, r2\n\tsub.s!\t0, r2, r2\n\tjump.eq\t@.BB19_3\n\tld.1\t64, r10\n\tadd\t@CPI19_3[0], r0, r1\n\tst.1\tr10, r1\n\tadd\t100, r10, r2\n\tcontext.gas_left\tr1\n\tadd\t128, r0, r3\n\tst.1\tr2, r3\n\tadd\t68, r10, r2\n\tadd\tstack-[2], r0, r3\n\tst.1\tr2, r3\n\tadd\tstack-[1], r0, r2\n\tand\t@CPI19_4[0], r2, r2\n\tadd\t36, r10, r3\n\tst.1\tr3, r2\n\tcontext.caller\tr2\n\tand\t@CPI19_4[0], r2, r2\n\tadd\t4, r10, r3\n\tst.1\tr3, r2\n\tadd\tstack-[4], r0, r8\n\tld.1\tr8, r3\n\tadd\t132, r10, r2\n\tst.1\tr2, r3\n\tadd\t164, r10, r4\n\tadd\tstack-[3], r0, r2\n\tand\t@CPI19_4[0], r2, r2\n\tsub.s!\t0, r3, r5\n\tjump.eq\t@.BB19_7\n\tadd\tr0, r0, r5\n.BB19_6:\n\tadd\tr5, r4, r6\n\tadd\t32, r5, r5\n\tadd\tr5, r8, r7\n\tld.1\tr7, r7\n\tst.1\tr6, r7\n\tsub!\tr5, r3, r6\n\tjump.lt\t@.BB19_6\n.BB19_7:\n\tadd\tr3, r4, r4\n\tst.1\tr4, r0\n\tsub.s!\t4, r2, r4\n\tjump.ne\t@.BB19_9\n\tcontext.sp\tr1\n\tsub.s\t6, r1, r1\n\tmul\t32, r1, r1, r0\n\tadd\tstack[@returndatasize], r0, r3\n\tsub.s!\t32, r3, r2\n\tadd\t32, r0, r4\n\tadd.lt\tr3, r0, r4\n\tadd\t0, r0, stack-[6]\n\tjump\t@.BB19_14\n.BB19_9:\n\tadd\t31, r3, r3\n\tsub.s\t32, r0, r4\n\tand\tr3, r4, r3\n\tadd\t@CPI19_1[0], r0, r4\n\tsub.s!\t@CPI19_1[0], r10, r5\n\tadd\tr4, r0, r5\n\tadd.lt\tr10, r0, r5\n\tshl.s\t64, r5, r5\n\tadd\t164, r3, r3\n\tsub.s!\t@CPI19_1[0], r3, r6\n\tadd.ge\tr4, r0, r3\n\tshl.s\t96, r3, r3\n\tor\tr3, r5, r3\n\tsub.s!\t@CPI19_1[0], r1, r5\n\tadd.ge\tr4, r0, r1\n\tshl.s\t192, r1, r1\n\tor\tr3, r1, r1\n\tadd\tr10, r0, stack-[4]\n\tnear_call\tr0, @__farcall, @DEFAULT_UNWIND\n\tadd\tstack-[4], r0, r10\n\tadd\tr1, r0, r3\n\tshr.s\t96, r3, r3\n\tand\t@CPI19_1[0], r3, r3\n\tsub.s!\t32, r3, r4\n\tadd\t32, r0, r4\n\tadd.lt\tr3, r0, r4\n\tand\t31, r4, r5\n\tshr.s!\t5, r4, r6\n\tjump.eq\t@.BB19_31\n\tadd\tr0, r0, r7\n.BB19_11:\n\tshl.s\t5, r7, r8\n\tadd\tr10, r8, r9\n\tptr.add\tr1, r8, r8\n\tld\tr8, r8\n\tst.1\tr9, r8\n\tadd\t1, r7, r7\n\tsub!\tr7, r6, r8\n\tjump.lt\t@.BB19_11\n.BB19_31:\n\tsub.s!\t0, r5, r7\n\tjump.eq\t@.BB19_13\n\tshl.s\t5, r6, r6\n\tptr.add\tr1, r6, r7\n\tadd\tr10, r6, r6\n\tshl.s\t3, r5, r5\n\tld.1\tr6, r8\n\tshl\tr8, r5, r8\n\tshr\tr8, r5, r8\n\tld\tr7, r7\n\tsub\t256, r5, r5\n\tshr\tr7, r5, r7\n\tshl\tr7, r5, r5\n\tor\tr5, r8, r5\n\tst.1\tr6, r5\n.BB19_13:\n\tadd\tr3, r0, stack[@returndatasize]\n\tptr.add\tr1, r0, stack[@ptr_return_data]\n\tcontext.sp\tr1\n\tsub.s\t5, r1, r1\n\tmul\t32, r1, r1, r0\n\tadd\t0, r0, stack-[5]\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB19_20\n.BB19_14:\n\tadd\t31, r4, r2\n\tand\t96, r2, r4\n\tadd\tr4, r10, r2\n\tsub!\tr2, r4, r4\n\tadd\t0, r0, r4\n\tadd.lt\t1, r0, r4\n\tsub.s!\t@CPI19_6[0], r2, r5\n\tjump.gt\t@.BB19_16\n\tand!\t1, r4, r4\n\tjump.ne\t@.BB19_16\n\tst.1\t64, r2\n\tsub.s!\t32, r3, r2\n\tjump.lt\t@.BB19_1\n\tld.1\tr10, r2\n\tand\t@CPI19_8[0], r2, r3\n\tsub!\tr3, r2, r3\n\tjump.ne\t@.BB19_1\n\tdiv.s\t32, r1, r1, r0\n\tadd\tr2, r0, stack[r1]\n\tsub.s!\t@CPI19_3[0], r2, r1\n\tadd\t0, r0, r1\n\tadd.eq\t1, r0, r1\n.BB19_3:\n\tret\n.BB19_1:\n\tadd\tr0, r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB19_20:\n\tadd\t96, r0, r1\n\tsub.s!\t0, r3, r2\n\tjump.ne\t@.BB19_21\n.BB19_27:\n\tld.1.inc\tr1, r1, r2\n\tsub.s!\t0, r1, r3\n\tjump.ne\t@.BB19_28\n\tld.1\t64, r2\n\tadd\tr2, r0, stack-[4]\n\tadd\t@CPI19_7[0], r0, r1\n\tst.1\tr2, r1\n\tadd\t4, r2, r1\n\tnear_call\tr0, @abi_encode_stringliteral_1e76, @DEFAULT_UNWIND\n\tadd\tstack-[4], r0, r4\n\tsub\tr1, r4, r1\n\tadd\t@CPI19_1[0], r0, r2\n\tsub.s!\t@CPI19_1[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tsub.s!\t@CPI19_1[0], r4, r3\n\tadd.lt\tr4, r0, r2\n\tshl.s\t64, r2, r2\n\tshl.s\t96, r1, r1\n\tor\tr1, r2, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB19_21:\n\tadd\t63, r3, r1\n\tand\t@CPI19_5[0], r1, r2\n\tld.1\t64, r1\n\tadd\tr1, r2, r2\n\tsub!\tr2, r1, r4\n\tadd\t0, r0, r4\n\tadd.lt\t1, r0, r4\n\tsub.s!\t@CPI19_6[0], r2, r5\n\tjump.gt\t@.BB19_16\n\tand!\t1, r4, r4\n\tjump.ne\t@.BB19_16\n\tst.1\t64, r2\n\tst.1.inc\tr1, r3, r2\n\tptr.add\tstack[@ptr_return_data], r0, r3\n\tadd\tstack[@returndatasize], r0, r5\n\tand\t31, r5, r4\n\tshr.s!\t5, r5, r5\n\tjump.eq\t@.BB19_30\n\tadd\tr0, r0, r6\n.BB19_25:\n\tshl.s\t5, r6, r7\n\tadd\tr2, r7, r8\n\tptr.add\tr3, r7, r7\n\tld\tr7, r7\n\tst.1\tr8, r7\n\tadd\t1, r6, r6\n\tsub!\tr6, r5, r7\n\tjump.lt\t@.BB19_25\n.BB19_30:\n\tsub.s!\t0, r4, r6\n\tjump.eq\t@.BB19_27\n\tshl.s\t5, r5, r5\n\tptr.add\tr3, r5, r3\n\tadd\tr2, r5, r2\n\tshl.s\t3, r4, r4\n\tld.1\tr2, r5\n\tshl\tr5, r4, r5\n\tshr\tr5, r4, r5\n\tld\tr3, r3\n\tsub\t256, r4, r4\n\tshr\tr3, r4, r3\n\tshl\tr3, r4, r3\n\tor\tr3, r5, r3\n\tst.1\tr2, r3\n\tjump\t@.BB19_27\n.BB19_16:\n\tadd\t@CPI19_9[0], r0, r1\n\tst.1\t0, r1\n\tadd\t65, r0, r1\n\tst.1\t4, r1\n\tadd\t@CPI19_10[0], r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB19_28:\n\tadd\t@CPI19_1[0], r0, r3\n\tsub.s!\t@CPI19_1[0], r2, r4\n\tadd.ge\tr3, r0, r2\n\tsub.s!\t@CPI19_1[0], r1, r4\n\tadd.ge\tr3, r0, r1\n\tshl.s\t96, r1, r1\n\tshl.s\t64, r2, r2\n\tor\tr1, r2, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.func_end19:\n\nfun_tokenURI:\n.func_begin20:\n\tnop\tstack+=[3]\n\tadd\tr1, r0, stack-[3]\n\tst.1\t0, r1\n\tadd\t2, r0, r1\n\tst.1\t32, r1\n\tadd\t@CPI20_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI20_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI20_1[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB20_1\n\tld\tr1, r1\n\tsload\tr1, r1\n\tand!\t@CPI20_2[0], r1, r1\n\tjump.eq\t@.BB20_4\n\tadd\tstack-[3], r0, r1\n\tst.1\t0, r1\n\tadd\t6, r0, r1\n\tst.1\t32, r1\n\tadd\t@CPI20_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI20_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI20_1[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB20_1\n\tld\tr1, r1\n\tsload\tr1, r2\n\tand!\t1, r2, r3\n\tshr.s\t1, r2, r4\n\tand\t127, r4, r5\n\tadd\tr4, r0, r6\n\tadd.eq\tr5, r0, r6\n\tsub.s!\t31, r6, r4\n\tadd\t0, r0, r4\n\tadd.gt\t1, r0, r4\n\tand\t1, r4, r4\n\tsub!\tr3, r4, r4\n\tjump.ne\t@.BB20_7\n\tld.1\t64, r5\n\tst.1.inc\tr5, r6, r4\n\tsub.s!\t0, r3, r3\n\tjump.eq\t@.BB20_12\n\tadd\tr4, r0, stack-[1]\n\tadd\tr6, r0, stack-[2]\n\tadd\tr5, r0, stack-[3]\n\tst.1\t0, r1\n\tadd\t@CPI20_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI20_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI20_3[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB20_1\n\tadd\tstack-[2], r0, r6\n\tsub.s!\t0, r6, r2\n\tadd\tr0, r0, r2\n\tadd\tstack-[3], r0, r5\n\tadd\tstack-[1], r0, r7\n\tjump.eq\t@.BB20_9\n\tld\tr1, r1\n\tadd\tr0, r0, r2\n.BB20_16:\n\tadd\tr7, r2, r3\n\tsload\tr1, r4\n\tst.1\tr3, r4\n\tadd\t1, r1, r1\n\tadd\t32, r2, r2\n\tsub!\tr2, r6, r3\n\tjump.lt\t@.BB20_16\n\tjump\t@.BB20_9\n.BB20_12:\n\tsub.s\t256, r0, r1\n\tand\tr2, r1, r1\n\tst.1\tr4, r1\n\tsub.s!\t0, r6, r1\n\tadd\t32, r0, r2\n\tadd.eq\t0, r0, r2\n.BB20_9:\n\tadd\t63, r2, r1\n\tsub.s\t32, r0, r2\n\tand\tr1, r2, r2\n\tadd\tr2, r5, r1\n\tsub!\tr1, r2, r2\n\tadd\t0, r0, r2\n\tadd.lt\t1, r0, r2\n\tsub.s!\t@CPI20_4[0], r1, r3\n\tjump.gt\t@.BB20_11\n\tand!\t1, r2, r2\n\tjump.ne\t@.BB20_11\n\tst.1\t64, r1\n\tsub.s!\t@CPI20_5[0], r1, r2\n\tjump.gt\t@.BB20_11\n\tadd\t32, r1, r2\n\tst.1\t64, r2\n\tst.1\tr1, r0\n\tadd\tr5, r0, r1\n\tret\n.BB20_1:\n\tadd\tr0, r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB20_11:\n\tadd\t@CPI20_6[0], r0, r1\n\tst.1\t0, r1\n\tadd\t65, r0, r1\n\tst.1\t4, r1\n\tadd\t@CPI20_7[0], r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB20_4:\n\tld.1\t64, r1\n\tadd\t100, r1, r2\n\tadd\t@CPI20_8[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t68, r1, r2\n\tadd\t@CPI20_9[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t49, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI20_10[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI20_0[0], r0, r2\n\tsub.s!\t@CPI20_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI20_11[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB20_7:\n\tadd\t@CPI20_6[0], r0, r1\n\tst.1\t0, r1\n\tadd\t34, r0, r1\n\tst.1\t4, r1\n\tadd\t@CPI20_7[0], r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.func_end20:\n\nfun_setTokenURI:\n.func_begin21:\n\tnop\tstack+=[5]\n\tadd\tr2, r0, stack-[5]\n\tadd\tr1, r0, stack-[4]\n\tst.1\t0, r1\n\tadd\t2, r0, r1\n\tst.1\t32, r1\n\tadd\t@CPI21_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI21_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI21_1[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB21_1\n\tld\tr1, r1\n\tsload\tr1, r1\n\tand!\t@CPI21_2[0], r1, r1\n\tjump.eq\t@.BB21_3\n\tadd\tstack-[4], r0, r1\n\tst.1\t0, r1\n\tadd\t6, r0, r1\n\tst.1\t32, r1\n\tadd\t@CPI21_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI21_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI21_1[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB21_1\n\tld\tr1, r4\n\tadd\tstack-[5], r0, r1\n\tld.1.inc\tr1, r5, r6\n\tsub.s!\t@CPI21_3[0], r5, r1\n\tjump.ge\t@.BB21_6\n\tsload\tr4, r1\n\tand!\t1, r1, r2\n\tshr.s\t1, r1, r1\n\tand\t127, r1, r3\n\tadd.ne\tr1, r0, r3\n\tsub.s!\t31, r3, r1\n\tadd\t0, r0, r1\n\tadd.gt\t1, r0, r1\n\tand\t1, r1, r1\n\tsub!\tr2, r1, r1\n\tjump.ne\t@.BB21_8\n\tsub.s!\t32, r3, r1\n\tadd\tr4, r0, stack-[4]\n\tadd\tr5, r0, stack-[3]\n\tjump.lt\t@.BB21_14\n\tadd\tr3, r0, stack-[1]\n\tadd\tr6, r0, stack-[2]\n\tst.1\t0, r4\n\tadd\t@CPI21_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI21_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI21_4[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB21_1\n\tadd\tstack-[3], r0, r5\n\tadd\t31, r5, r2\n\tshr.s\t5, r2, r2\n\tsub.s!\t32, r5, r3\n\tadd.lt\t0, r0, r2\n\tld\tr1, r3\n\tadd\tstack-[1], r0, r1\n\tadd\t31, r1, r1\n\tshr.s\t5, r1, r1\n\tadd\tr3, r1, r1\n\tadd\tr3, r2, r2\n\tsub!\tr2, r1, r3\n\tadd\tstack-[4], r0, r4\n\tadd\tstack-[2], r0, r6\n\tjump.ge\t@.BB21_14\n.BB21_13:\n\tsstore\tr2, r0\n\tadd\t1, r2, r2\n\tsub!\tr2, r1, r3\n\tjump.lt\t@.BB21_13\n.BB21_14:\n\tsub.s!\t31, r5, r1\n\tjump.le\t@.BB21_23\n\tst.1\t0, r4\n\tadd\t@CPI21_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI21_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI21_4[0], r1, r1\n\tadd\t32784, r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB21_1\n\tsub.s\t32, r0, r2\n\tadd\tstack-[3], r0, r7\n\tand!\tr7, r2, r3\n\tadd\t32, r0, r2\n\tld\tr1, r1\n\tadd\tstack-[5], r0, r6\n\tjump.eq\t@.BB21_20\n\tadd\t32, r0, r2\n\tadd\tr0, r0, r4\n.BB21_19:\n\tadd\tr2, r6, r5\n\tld.1\tr5, r5\n\tsstore\tr1, r5\n\tadd\t32, r2, r2\n\tadd\t1, r1, r1\n\tadd\t32, r4, r4\n\tsub!\tr4, r3, r5\n\tjump.lt\t@.BB21_19\n.BB21_20:\n\tsub!\tr3, r7, r3\n\tjump.ge\t@.BB21_22\n\tshl.s\t3, r7, r3\n\tand\t248, r3, r3\n\tsub.s\t1, r0, r4\n\tshr\tr4, r3, r3\n\txor\tr3, r4, r3\n\tadd\tr2, r6, r2\n\tld.1\tr2, r2\n\tand\tr2, r3, r2\n\tsstore\tr1, r2\n.BB21_22:\n\tadd\t1, r0, r1\n\tshl.s\t1, r7, r2\n\tadd\tstack-[4], r0, r4\n\tjump\t@.BB21_15\n.BB21_23:\n\tsub.s!\t0, r5, r1\n\tadd\tr0, r0, r1\n\tjump.eq\t@.BB21_25\n\tld.1\tr6, r1\n.BB21_25:\n\tshl.s\t3, r5, r2\n\tsub.s\t1, r0, r3\n\tshr\tr3, r2, r2\n\txor\tr2, r3, r2\n\tand\tr1, r2, r2\n\tshl.s\t1, r5, r1\n.BB21_15:\n\tor\tr2, r1, r1\n\tsstore\tr4, r1\n\tret\n.BB21_1:\n\tadd\tr0, r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB21_3:\n\tld.1\t64, r1\n\tadd\t100, r1, r2\n\tadd\t@CPI21_7[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t68, r1, r2\n\tadd\t@CPI21_8[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t46, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI21_9[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI21_0[0], r0, r2\n\tsub.s!\t@CPI21_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI21_10[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB21_6:\n\tadd\t@CPI21_5[0], r0, r1\n\tst.1\t0, r1\n\tadd\t65, r0, r1\n\tst.1\t4, r1\n\tadd\t@CPI21_6[0], r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB21_8:\n\tadd\t@CPI21_5[0], r0, r1\n\tst.1\t0, r1\n\tadd\t34, r0, r1\n\tst.1\t4, r1\n\tadd\t@CPI21_6[0], r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.func_end21:\n\n__farcall:\n.func_begin22:\n.tmp0:\n\tfar_call\tr1, r2, @.BB22_2\n.tmp1:\n\tadd\t1, r0, r2\n\tret\n.BB22_2:\n.tmp2:\n\tadd\tr0, r0, r2\n\tret\n.func_end22:\n\n__staticcall:\n.func_begin23:\n.tmp3:\n\tfar_call.static\tr1, r2, @.BB23_2\n.tmp4:\n\tadd\t1, r0, r2\n\tret\n.BB23_2:\n.tmp5:\n\tadd\tr0, r0, r2\n\tret\n.func_end23:\n\n\t.data\n\t.p2align\t5\ncalldatasize:\n\t.cell 0\n\n\t.p2align\t5\nreturndatasize:\n\t.cell 0\n\n\t.p2align\t5\nptr_calldata:\n.cell\t0\n\n\t.p2align\t5\nptr_return_data:\n.cell\t0\n\n\t.note.GNU-stack\n\t.rodata\nCPI0_0:\nCPI1_0:\nCPI8_2:\nCPI9_1:\nCPI10_0:\nCPI11_3:\nCPI12_0:\nCPI13_3:\nCPI14_0:\nCPI16_0:\nCPI17_0:\nCPI18_0:\nCPI19_1:\nCPI20_0:\nCPI21_0:\n\t.cell 4294967295\nCPI0_1:\n\t.cell 35042418068007245273304548552507730949194242782621277678063317489740823920640\nCPI0_2:\n\t.cell 18446744073709551552\nCPI0_3:\n\t.cell 35404661230722395603548259839379032490289128218747314995311378713536314212352\nCPI0_4:\nCPI6_0:\nCPI7_1:\nCPI19_6:\nCPI20_4:\n\t.cell 18446744073709551615\nCPI0_5:\nCPI20_3:\nCPI21_4:\n\t.cell 904625697166532776746648320380374280103671757735618107014721178055227736064\nCPI0_6:\nCPI8_1:\nCPI14_11:\nCPI17_7:\nCPI18_3:\n\t.cell -1461501637330902918203684832716283019655932542976\nCPI0_7:\nCPI1_1:\nCPI8_3:\nCPI14_12:\nCPI17_8:\nCPI18_4:\n\t.cell 904625697166532776746648320380374280103671755200316906558262375061821325312\nCPI0_8:\nCPI4_1:\nCPI8_0:\nCPI9_0:\nCPI10_2:\nCPI12_2:\nCPI14_2:\nCPI16_2:\nCPI17_2:\nCPI18_2:\nCPI19_4:\nCPI20_2:\nCPI21_2:\n\t.cell 1461501637330902918203684832716283019655932542975\nCPI0_9:\nCPI8_4:\n\t.cell -52524777015005588113349992707137368332388074750292320778649315033004770043936\nCPI0_10:\n\t.cell 53919893334301279589334030174039261352344891250716429051063678533632\nCPI0_11:\n\t.cell 1901074597\nCPI0_12:\n\t.cell 3096268765\nCPI0_13:\n\t.cell 3917867460\nCPI0_14:\n\t.cell 3917867461\nCPI0_15:\n\t.cell 3939155476\nCPI0_16:\n\t.cell 4076725131\nCPI0_17:\n\t.cell 3096268766\nCPI0_18:\n\t.cell 3363526365\nCPI0_19:\n\t.cell 2514000704\nCPI0_20:\n\t.cell 2514000705\nCPI0_21:\n\t.cell 2720838757\nCPI0_22:\n\t.cell 1901074598\nCPI0_23:\n\t.cell 2376452955\nCPI0_24:\n\t.cell 599290588\nCPI0_25:\n\t.cell 1666326813\nCPI0_26:\n\t.cell 1666326814\nCPI0_27:\n\t.cell 1889567281\nCPI0_28:\n\t.cell 599290589\nCPI0_29:\n\t.cell 1115958798\nCPI0_30:\n\t.cell 135795451\nCPI0_31:\n\t.cell 135795452\nCPI0_32:\n\t.cell 157198259\nCPI0_33:\n\t.cell 33540519\nCPI0_34:\n\t.cell 117300739\nCPI0_35:\nCPI4_0:\n\t.cell -57896044618658097711785492504343953926634992332820282019728792003956564819968\nCPI0_36:\n\t.cell 45408759099000846574684193736602357774271237157169010951590501707763511459840\nCPI0_37:\n\t.cell 35943731656364841964517558219894961445653631979235167635064085396828900499553\nCPI0_38:\nCPI10_5:\nCPI11_2:\nCPI12_5:\nCPI13_2:\nCPI14_5:\nCPI16_5:\nCPI17_5:\nCPI18_8:\nCPI19_7:\nCPI20_10:\nCPI21_9:\n\t.cell 3963877391197344453575983046348115674221700746820753546331534351508065746944\nCPI0_39:\nCPI10_6:\nCPI11_4:\nCPI12_6:\nCPI13_4:\nCPI14_6:\nCPI16_6:\nCPI17_6:\nCPI18_9:\nCPI20_11:\nCPI21_10:\n\t.cell 10458117451882892562347801444352\nCPI0_40:\nCPI9_2:\nCPI10_1:\nCPI12_1:\nCPI14_1:\nCPI16_1:\nCPI17_1:\nCPI18_1:\nCPI20_1:\nCPI21_1:\n\t.cell 904625697166532776746648320380374280103671760270919307471179981048634146816\nCPI0_41:\n\t.cell 31354931916645375394227994539589573020889145011472493424756597455838364303360\nCPI0_42:\n\t.cell 7922816251426433759354395033600\nCPI0_43:\nCPI14_14:\nCPI17_10:\n\t.cell -15402802100530019096323380498944738953123845089667699673314898783681816316945\nCPI0_44:\n\t.cell 2535301200456458802993406410752\nCPI0_45:\nCPI5_1:\nCPI6_1:\nCPI7_2:\nCPI14_15:\nCPI17_11:\nCPI19_9:\nCPI20_6:\nCPI21_5:\n\t.cell 35408467139433450592217433187231851964531694900788300625387963629091585785856\nCPI0_46:\nCPI5_2:\nCPI6_2:\nCPI7_3:\nCPI14_16:\nCPI17_12:\nCPI19_10:\nCPI20_7:\nCPI21_6:\n\t.cell 2852213850513516153367582212096\nCPI0_47:\n\t.cell 31354931916645375394055781497097123966713745074512196778955490624888853853043\nCPI0_48:\n\t.cell 10488878412788366941768124514102328501031624832915735463117339209566108871729\nCPI0_49:\n\t.cell 31354931916645375393762213565866891172307618523953520621822726397682830540800\nCPI0_50:\n\t.cell -35707666377435648211887908874984608119992236509074197713628505308453184860938\nCPI0_51:\n\t.cell 35943731656364841964516503116990081338611484598491072354577564874054038349170\nCPI0_52:\n\t.cell 51760008244253243555339834505836909231457839317500661056268430958216697872384\nCPI0_53:\n\t.cell 31354931916645375393785295258521846456833152225125956258475365221073749572197\nCPI0_54:\n\t.cell 51563664738492368274558954261681333965909290046418063673820955378523815542784\nCPI0_55:\n\t.cell 31354931916645375393762213565866890849608307089744918678309194418033790512741\nCPI0_56:\nCPI10_3:\nCPI14_19:\nCPI16_7:\nCPI17_15:\nCPI18_6:\n\t.cell 45878752361592109720253219027881625235748152392964139204686589122341653970944\nCPI0_57:\nCPI10_4:\nCPI14_20:\nCPI16_8:\nCPI17_16:\nCPI18_7:\n\t.cell 31354931916645375394106162266546829686708297189091808258728121542906766521204\nCPI0_58:\n\t.cell 18569430475105882587588266137607568536673111973893317399460219858819262702947\nCPI0_59:\nCPI19_8:\n\t.cell -26959946667150639794667015087019630673637144422540572481103610249216\nCPI0_60:\n\t.cell -57591534043048631271602713168962198724648561309353517944097662808962438791168\nCPI0_61:\n\t.cell 41326688264978518566617017154793646184809722027297161851759941631668658372608\nCPI0_62:\n\t.cell 904250603428552709895185118199468575982109441609966099573332780532423983104\nCPI5_0:\n\t.cell 18446744073709551584\nCPI7_0:\nCPI21_3:\n\t.cell 18446744073709551616\nCPI11_0:\n\t.cell 49933652571133945240646269341346773441232908056919510700755594923042897133568\nCPI11_1:\n\t.cell 31354931916645375393762213565866891172284950498046585739320112041512459595639\nCPI12_3:\nCPI14_7:\nCPI16_3:\n\t.cell 47696839850855449933311899423999770536344418734008620142241006894201008291840\nCPI12_4:\nCPI14_8:\nCPI16_4:\n\t.cell 31354931916645375393762213565866891195335176431693669511405079535027810624888\nCPI13_0:\nCPI14_3:\n\t.cell 54020282311764692190021849552246905499923117250381298616038159743020431310848\nCPI13_1:\nCPI14_4:\n\t.cell 31354931916645375394228278154242914900316590054129571697333944605927305125999\nCPI14_9:\nCPI17_3:\n\t.cell 50417742920509558439106150551775209266858149941038353264781520106005609840640\nCPI14_10:\nCPI17_4:\n\t.cell 31354931916645375394228278154242914900316605976059021079503402663591234728992\nCPI14_13:\nCPI17_9:\nCPI18_5:\n\t.cell -52305948261162578668367882225327028569797882979485679342215860919519743330011\nCPI14_17:\nCPI17_13:\n\t.cell 51742913093258732729005998692887265601192425265805909375210916622055285719040\nCPI14_18:\nCPI17_14:\n\t.cell 31354931916645375394228278154242914900316678601111040334909412358260906878052\nCPI14_21:\nCPI16_9:\n\t.cell 31354931916645375394105488451352269979389710144108907708483216252301827007864\nCPI15_0:\n\t.cell 44958151438609599421424650306347963631972141104775375727422033337783813144576\nCPI15_1:\n\t.cell 31354931916645375394228278154242914900316678601109191929828695483653754540645\nCPI19_0:\n\t.cell 10867283408178898638301172343726954674910073630256871736220740970449699113859\nCPI19_2:\n\t.cell 904625751086426111047927909714404454142933105326819602152923490636624035840\nCPI19_3:\n\t.cell 9518847204935358166548570266051330015907116135037852959641967396525866745856\nCPI19_5:\n\t.cell 8589934560\nCPI20_5:\n\t.cell 18446744073709551583\nCPI20_8:\n\t.cell 49951295296083318749243168028177942438168225474427488475088308980926572920832\nCPI20_9:\n\t.cell 31354931916645419094353240884287878821049935834234830885704741091396698468896\nCPI21_7:\n\t.cell 45896347150701543392526446815263383394883384187216389466996649829047327522816\nCPI21_8:\n\t.cell 31354931916645419094353240884287878821049935834234830894855383924223471677294\n","bytecode":{"object":"00040000000000020005000000000002000000000301001900000060033002700000033d04300197000300000041035500020000000103550000033d0030019d000100000000001f0000000101200190000000520000c13d0000008001000039000000400010043f0000000001000031000000040110008c000005a30000413d0000000201000367000000000101043b000000e001100270000003480210009c0000006d0000a13d000003490210009c000000b50000a13d0000034a0210009c000001430000a13d0000034b0210009c0000021a0000613d0000034c0210009c000002490000613d0000034d0110009c000005a30000c13d0000000001000416000000000110004c000005a30000c13d000000040100008a00000000011000310000036002000041000000200310008c000000000300001900000000030240190000036001100197000000000410004c000000000200a019000003600110009c00000000010300190000000001026019000000000110004c000005a30000c13d00000004010000390000000201100367000000000101043b000003450210009c000005a30000213d0000000702000039000000000202041a00000345022001970000000003000411000000000232004b0000043c0000c13d000000000210004c000004ef0000c13d000000400100043d000000640210003900000361030000410000000000320435000000440210003900000362030000410000000000320435000000240210003900000026030000390000000000320435000003630200004100000000002104350000000402100039000000200300003900000000003204350000033d020000410000033d0310009c0000000001028019000000400110021000000364011001c700000cf1000104300000000001000416000000000110004c000005a30000c13d000000c001000039000000400010043f0000000501000039000000800010043f0000033e01000041000000a00010043f000000400400043d0000033f0140009c000000670000813d0000004001400039000000400010043f0000000301000039000000000514043600000340010000410000000000150435000000800600043d000003410160009c000000a40000a13d0000036a0100004100000000001004350000004101000039000000040010043f0000036b0100004100000cf100010430000003550210009c000000d70000213d0000035b0210009c0000016c0000213d0000035e0210009c000002c80000613d0000035f0110009c000005a30000c13d0000000001000416000000000110004c000005a30000c13d000000040100008a00000000011000310000036002000041000000000310004c000000000300001900000000030240190000036001100197000000000410004c000000000200a019000003600110009c00000000010300190000000001026019000000000110004c000005a30000c13d000000000300041a000000010430019000000001013002700000007f0210018f000000000701001900000000070260190000001f0270008c00000000020000190000000102002039000000000223013f0000000102200190000000af0000c13d000000400100043d0000000002710436000000000440004c000004900000613d0000000000000435000000000370004c0000000003000019000004960000613d000003770400004100000000030000190000000005320019000000000604041a000000000065043500000001044000390000002003300039000000000573004b0000009c0000413d000004960000013d000000000100041a000000010210019000000001011002700000007f0310018f000000000301c0190000001f0130008c00000000010000190000000101002039000000010110018f000000000112004b000000f00000613d0000036a0100004100000000001004350000002201000039000000040010043f0000036b0100004100000cf100010430000003500210009c000001b00000213d000003530210009c000002f00000613d000003540110009c000005a30000c13d0000000001000416000000000110004c000005a30000c13d000000040100008a00000000011000310000036002000041000000000310004c000000000300001900000000030240190000036001100197000000000410004c000000000200a019000003600110009c00000000010300190000000001026019000000000110004c000005a30000c13d0000000701000039000000000101041a0000034501100197000000400200043d00000000001204350000033d010000410000033d0320009c0000000001024019000000400110021000000369011001c700000cf00001042e000003560210009c000001e90000213d000003590210009c000003180000613d0000035a0110009c000005a30000c13d0000000001000416000000000110004c000005a30000c13d00000000010000310cef05e40000040f000500000001001d000400000002001d000300000003001d000000400100043d000200000001001d0cef05ff0000040f000000020400002900000000000404350000000501000029000000040200002900000003030000290cef07140000040f000000000100001900000cf00001042e000000200130008c000500000004001d000400000005001d000001140000413d000200000003001d000300000006001d00000000000004350000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000342011001c700008010020000390cef0cea0000040f0000000102200190000005a30000613d00000003060000290000001f026000390000000502200270000000200360008c0000000002004019000000000301043b00000002010000290000001f01100039000000050110027000000000011300190000000002230019000000000312004b00000005040000290000000405000029000001140000813d000000000002041b0000000102200039000000000312004b000001100000413d0000001f0160008c000003cd0000a13d000300000006001d00000000000004350000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000342011001c700008010020000390cef0cea0000040f0000000102200190000005a30000613d000000200200008a00000003070000290000000002270170000000a003000039000000000101043b000001340000613d00000020050000390000000003000019000000000405001900000080054000390000000005050433000000000051041b000000200540003900000001011000390000002003300039000000000623004b0000012a0000413d000000a003400039000000000272004b0000013e0000813d0000000302700210000000f80220018f000000010400008a000000000224022f000000000242013f0000000003030433000000000223016f000000000021041b0000000101000039000000010270021000000005040000290000000405000029000003d70000013d0000034e0210009c0000032a0000613d0000034f0110009c000005a30000c13d0000000001000416000000000110004c000005a30000c13d000000040100008a00000000011000310000036002000041000000200310008c000000000300001900000000030240190000036001100197000000000410004c000000000200a019000003600110009c00000000010300190000000001026019000000000110004c000005a30000c13d00000004010000390000000201100367000000000101043b0cef0ba60000040f0000002002000039000000400300043d000500000003001d00000000022304360cef05bb0000040f000000050400002900000000014100490000033d020000410000033d0310009c00000000010280190000033d0340009c000000000204401900000040022002100000006001100210000000000121019f00000cf00001042e0000035c0210009c000003680000613d0000035d0110009c000005a30000c13d0000000001000416000000000110004c000005a30000c13d000000040100008a00000000011000310000036002000041000000400310008c000000000300001900000000030240190000036001100197000000000410004c000000000200a019000003600110009c00000000010300190000000001026019000000000110004c000005a30000c13d00000002010003670000000402100370000000000202043b000500000002001d000003450220009c000005a30000213d0000002401100370000000000101043b000400000001001d00000000001004350000000201000039000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f0000000102200190000005a30000613d000000000101043b000000000101041a0000034502100198000004f20000c13d000000400100043d000000640210003900000375030000410000000000320435000000440210003900000376030000410000000000320435000000240210003900000029030000390000000000320435000003630200004100000000002104350000000402100039000000200300003900000000003204350000033d020000410000033d0310009c0000000001028019000000400110021000000364011001c700000cf100010430000003510210009c000003860000613d000003520110009c000005a30000c13d0000000001000416000000000110004c000005a30000c13d000000040100008a00000000011000310000036002000041000000400310008c000000000300001900000000030240190000036001100197000000000410004c000000000200a019000003600110009c00000000010300190000000001026019000000000110004c000005a30000c13d00000002010003670000000402100370000000000202043b000500000002001d000003450220009c000005a30000213d0000002401100370000000000201043b000000000120004c0000000001000019000000010100c039000400000002001d000000000112004b000005a30000c13d00000000020004110000000501000029000000000112004b000004b70000c13d000000400100043d00000044021000390000036e030000410000000000320435000000240210003900000019030000390000000000320435000003630200004100000000002104350000000402100039000000200300003900000000003204350000033d020000410000033d0310009c0000000001028019000000400110021000000367011001c700000cf100010430000003570210009c000003af0000613d000003580110009c000005a30000c13d0000000001000416000000000110004c000005a30000c13d000000040100008a00000000011000310000036002000041000000200310008c000000000300001900000000030240190000036001100197000000000410004c000000000200a019000003600110009c00000000010300190000000001026019000000000110004c000005a30000c13d00000004010000390000000201100367000000000101043b000003450210009c000005a30000213d000000000210004c000004a80000c13d000000400100043d00000064021000390000037103000041000000000032043500000044021000390000037203000041000000000032043500000024021000390000002a030000390000000000320435000003630200004100000000002104350000000402100039000000200300003900000000003204350000033d020000410000033d0310009c0000000001028019000000400110021000000364011001c700000cf1000104300000000001000416000000000110004c000005a30000c13d000000040100008a00000000011000310000036002000041000000400310008c000000000300001900000000030240190000036001100197000000000410004c000000000200a019000003600110009c00000000010300190000000001026019000000000110004c000005a30000c13d00000002020003670000000401200370000000000101043b000003450310009c000005a30000213d0000002402200370000000000202043b000500000002001d000003450220009c000005a30000213d00000000001004350000000501000039000000200010043f000000400200003900000000010000190cef05a50000040f00000005020000290cef066e0000040f000000000101041a000000ff011001900000000001000019000000010100c039000000400200043d00000000001204350000033d010000410000033d0320009c0000000001024019000000400110021000000369011001c700000cf00001042e0000000001000416000000000110004c000005a30000c13d0000000001000031000000040210008a0000036003000041000000400420008c000000000400001900000000040340190000036002200197000000000520004c000000000300a019000003600220009c00000000020400190000000002036019000000000220004c000005a30000c13d00000002020003670000000403200370000000000303043b000500000003001d000003450330009c000005a30000213d0000002403200370000000000303043b000003410430009c000005a30000213d00000023043000390000036005000041000000000614004b0000000006000019000000000605801900000360071001970000036004400197000000000874004b0000000005008019000000000474013f000003600440009c00000000040600190000000004056019000000000440004c000005a30000c13d0000000404300039000000000242034f000000000202043b000003410420009c000000670000213d0000003f04200039000000200500008a000000000454016f000000400700043d0000000004470019000000000574004b00000000050000190000000105004039000003410640009c000000670000213d0000000105500190000000670000c13d0000002405300039000000400040043f000400000007001d00000000032704360000000004520019000000000114004b000005a30000213d0000001f0120018f00000002045003670000000505200272000002980000613d000000000600001900000005076002100000000008730019000000000774034f000000000707043b00000000007804350000000106600039000000000756004b000002900000413d000000000610004c000002a70000613d0000000505500210000000000454034f00000000055300190000000301100210000000000605043300000000061601cf000000000616022f000000000404043b0000010001100089000000000414022f00000000011401cf000000000161019f0000000000150435000000000123001900000000000104350000000701000039000000000101041a00000345011001970000000002000411000000000121004b0000043c0000c13d0000000801000039000000000201041a0000000102200039000300000002001d000000000021041b0000000501000029000000000110004c000005350000c13d000000400100043d00000044021000390000036c03000041000000000032043500000363020000410000000000210435000000240210003900000020030000390000000000320435000000040210003900000000003204350000033d020000410000033d0310009c0000000001028019000000400110021000000367011001c700000cf1000104300000000001000416000000000110004c000005a30000c13d000000040100008a00000000011000310000036002000041000000200310008c000000000300001900000000030240190000036001100197000000000410004c000000000200a019000003600110009c00000000010300190000000001026019000000000110004c000005a30000c13d00000004010000390000000201100367000000000101043b0000037802100197000000000212004b000005a30000c13d0000000102000039000003790310009c000002e70000613d0000037a0310009c000002e70000613d0000037b0110009c00000000020000190000000102006039000000010120018f000000400200043d00000000001204350000033d010000410000033d0320009c0000000001024019000000400110021000000369011001c700000cf00001042e0000000001000416000000000110004c000005a30000c13d000000040100008a00000000011000310000036002000041000000000310004c000000000300001900000000030240190000036001100197000000000410004c000000000200a019000003600110009c00000000010300190000000001026019000000000110004c000005a30000c13d0000000701000039000000000201041a00000345032001970000000005000411000000000353004b0000043c0000c13d0000034302200197000000000021041b0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000344011001c70000800d020000390000000303000039000003460400004100000000060000190cef0ce50000040f0000000101200190000005a30000613d000000000100001900000cf00001042e0000000001000416000000000110004c000005a30000c13d00000000010000310cef05e40000040f000500000001001d000400000002001d0000000002030019000300000002001d00000000010004110cef08cd0000040f0cef06fc0000040f0000000501000029000000040200002900000003030000290cef09820000040f000000000100001900000cf00001042e0000000001000416000000000110004c000005a30000c13d0000000003000031000000040130008a0000036002000041000000800410008c000000000400001900000000040240190000036001100197000000000510004c000000000200a019000003600110009c00000000010400190000000001026019000000000110004c000005a30000c13d00000002010003670000000402100370000000000202043b000500000002001d000003450220009c000005a30000213d0000002402100370000000000202043b000400000002001d000003450220009c000005a30000213d0000006402100370000000000402043b000003410240009c000005a30000213d00000023024000390000036005000041000000000632004b0000000006000019000000000605801900000360073001970000036002200197000000000872004b0000000005008019000000000272013f000003600220009c00000000020600190000000002056019000000000220004c000005a30000c13d0000000402400039000000000221034f000000000202043b0000004401100370000000000101043b000300000001001d00000024014000390cef061d0000040f00000000040100190000000501000029000000040200002900000003030000290cef07140000040f000000000100001900000cf00001042e0000000001000416000000000110004c000005a30000c13d000000040100008a00000000011000310000036002000041000000200310008c000000000300001900000000030240190000036001100197000000000410004c000000000200a019000003600110009c00000000010300190000000001026019000000000110004c000005a30000c13d00000004010000390000000201100367000000000101043b0cef06c00000040f0000034501100197000000400200043d00000000001204350000033d010000410000033d0320009c0000000001024019000000400110021000000369011001c700000cf00001042e0000000001000416000000000110004c000005a30000c13d000000040100008a00000000011000310000036002000041000000000310004c000000000300001900000000030240190000036001100197000000000410004c000000000200a019000003600110009c00000000010300190000000001026019000000000110004c000005a30000c13d0000000104000039000000000304041a000000010530019000000001013002700000007f0210018f000000000701001900000000070260190000001f0270008c00000000020000190000000102002039000000000223013f0000000102200190000000af0000c13d000000400100043d0000000002710436000000000550004c000004710000c13d000001000400008a000000000343016f0000000000320435000000000270004c000000200300003900000000030060190000047e0000013d0000000001000416000000000110004c000005a30000c13d000000040100008a00000000011000310000036002000041000000200310008c000000000300001900000000030240190000036001100197000000000410004c000000000200a019000003600110009c00000000010300190000000001026019000000000110004c000005a30000c13d00000004010000390000000201100367000000000101043b0cef067f0000040f0000034501100197000000400200043d00000000001204350000033d010000410000033d0320009c0000000001024019000000400110021000000369011001c700000cf00001042e000000000160004c0000000001000019000003d10000613d000000a00100043d0000000302600210000000010300008a000000000223022f000000000232013f000000000221016f0000000101600210000000000112019f000000000010041b0000000007040433000003410170009c000000670000213d0000000106000039000000000106041a000000010210019000000001021002700000007f0320018f000000000302c0190000001f0230008c00000000020000190000000102002039000000000121013f0000000101100190000000af0000c13d000000200130008c0000040d0000413d000100000003001d000200000007001d000300000006001d000000010100003900000000001004350000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000342011001c700008010020000390cef0cea0000040f0000000102200190000005a30000613d00000002070000290000001f027000390000000502200270000000200370008c0000000002004019000000000301043b00000001010000290000001f01100039000000050110027000000000011300190000000002230019000000000312004b0000000504000029000000040500002900000003060000290000040d0000813d000000000002041b0000000102200039000000000312004b000004090000413d0000001f0170008c0000044d0000a13d000200000007001d000300000006001d00000000006004350000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000342011001c700008010020000390cef0cea0000040f0000000102200190000005a30000613d000000200200008a000000020700002900000000032701700000002002000039000000000101043b00000005060000290000042d0000613d0000002002000039000000000400001900000000056200190000000005050433000000000051041b000000200220003900000001011000390000002004400039000000000534004b000004250000413d000000000373004b000004380000813d0000000303700210000000f80330018f000000010400008a000000000334022f000000000343013f00000000026200190000000002020433000000000232016f000000000021041b000000010170021000000003060000290000000002060019000004570000013d000000400100043d00000044021000390000037003000041000000000032043500000363020000410000000000210435000000240210003900000020030000390000000000320435000000040210003900000000003204350000033d020000410000033d0310009c0000000001028019000000400110021000000367011001c700000cf100010430000000000170004c0000000001000019000004510000613d00000000010504330000000302700210000000010300008a000000000223022f000000000232013f000000000121016f0000000102700210000000000121019f000000000016041b0000000701000039000000000201041a00000343032001970000000006000411000000000363019f000000000031041b0000033d0100004100000000030004140000033d0430009c0000000001034019000000c00110021000000344011001c700000345052001970000800d02000039000000030300003900000346040000410cef0ce50000040f0000000101200190000005a30000613d000000200100003900000100001004430000012000000443000003470100004100000cf00001042e0000000000400435000000000370004c00000000030000190000047e0000613d0000036f0400004100000000030000190000000005320019000000000604041a000000000065043500000001044000390000002003300039000000000573004b000004770000413d0000002002300039000500000001001d0cef060a0000040f000000400100043d000400000001001d00000005020000290cef05ce0000040f000000040400002900000000014100490000033d020000410000033d0310009c00000000010280190000033d0340009c000000000204401900000040022002100000006001100210000000000121019f00000cf00001042e000001000400008a000000000343016f0000000000320435000000000270004c000000200300003900000000030060190000002002300039000500000001001d0cef060a0000040f000000400100043d000400000001001d00000005020000290cef05ce0000040f000000040400002900000000014100490000033d020000410000033d0310009c00000000010280190000033d0340009c000000000204401900000040022002100000006001100210000000000121019f00000cf00001042e00000000001004350000000301000039000000200010043f000000400200003900000000010000190cef05a50000040f000000000101041a000000400200043d00000000001204350000033d010000410000033d0320009c0000000001024019000000400110021000000369011001c700000cf00001042e000300000002001d00000000002004350000000501000039000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f0000000102200190000005a30000613d000000000101043b00000005020000290000000000200435000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f0000000102200190000005a30000613d000000000101043b000000000201041a000001000300008a000000000232016f0000000403000029000000000232019f000000000021041b000000400100043d00000000003104350000033d0200004100000000030004140000033d0430009c00000000030280190000033d0410009c00000000010280190000004001100210000000c002300210000000000112019f00000342011001c70000800d0200003900000003030000390000036d04000041000000030500002900000005060000290cef0ce50000040f0000000101200190000003160000c13d000005a30000013d0cef06580000040f000000000100001900000cf00001042e0000000501000029000000000121004b0000050a0000c13d000000400100043d000000640210003900000373030000410000000000320435000000440210003900000374030000410000000000320435000000240210003900000021030000390000000000320435000003630200004100000000002104350000000402100039000000200300003900000000003204350000033d020000410000033d0310009c0000000001028019000000400110021000000364011001c700000cf10001043000000001010000390000000003000411000300000003001d000000000323004b000005150000c13d0cef06a80000040f000000050100002900000004020000290cef0a680000040f000000000100001900000cf00001042e00000000002004350000000501000039000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f0000000102200190000005a30000613d000000000101043b000000030200002900000345022001970000000000200435000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f0000000102200190000005a30000613d000000000101043b000000000101041a000000ff0110018f0000050f0000013d000000030100002900000000001004350000000201000039000200000001001d000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f0000000102200190000005a30000613d000000000101043b000000000101041a0000034501100198000005610000c13d000000050100002900000000001004350000000301000039000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f0000000102200190000005a30000613d000000000101043b000000000201041a000000010300008a000000000332004b000005730000c13d0000036a0100004100000000001004350000001101000039000000040010043f0000036b0100004100000cf100010430000000400100043d00000044021000390000036603000041000000000032043500000024021000390000001c030000390000000000320435000003630200004100000000002104350000000402100039000000200300003900000000003204350000033d020000410000033d0310009c0000000001028019000000400110021000000367011001c700000cf1000104300000000102200039000000000021041b000000030100002900000000001004350000000201000029000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f0000000102200190000005a30000613d000000000101043b000000000201041a00000343022001970000000506000029000000000262019f000000000021041b0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000344011001c70000800d0200003900000004030000390000036804000041000000000500001900000003070000290cef0ce50000040f0000000101200190000005a30000613d000000030100002900000004020000290cef0c320000040f000000400100043d000000030200002900000000002104350000033d020000410000033d0310009c0000000001028019000000400110021000000369011001c700000cf00001042e000000000100001900000cf1000104300000033d030000410000033d0410009c000000000103801900000040011002100000033d0420009c00000000020380190000006002200210000000000112019f00000000020004140000033d0420009c0000000002038019000000c002200210000000000112019f00000344011001c700008010020000390cef0cea0000040f0000000102200190000005b90000613d000000000101043b000000000001042d000000000100001900000cf10001043000000000030104330000000002320436000000000430004c000005c70000613d000000000400001900000000052400190000002004400039000000000614001900000000060604330000000000650435000000000534004b000005c00000413d000000000123001900000000000104350000001f01300039000000200300008a000000000131016f0000000001120019000000000001042d00000020030000390000000004310436000000000302043300000000003404350000004001100039000000000430004c000005dd0000613d000000000400001900000000051400190000002004400039000000000624001900000000060604330000000000650435000000000534004b000005d60000413d000000000213001900000000000204350000001f02300039000000200300008a000000000232016f0000000001120019000000000001042d000000040110008a00000360020000410000005f0310008c000000000300001900000000030220190000036001100197000000000410004c0000000002008019000003600110009c00000000010300190000000001026019000000000110004c000005fd0000613d00000002030003670000000401300370000000000101043b000003450210009c000005fd0000213d0000002402300370000000000202043b000003450420009c000005fd0000213d0000004403300370000000000303043b000000000001042d000000000100001900000cf1000104300000037c0210009c000006040000813d0000002001100039000000400010043f000000000001042d0000036a0100004100000000001004350000004101000039000000040010043f0000036b0100004100000cf1000104300000001f02200039000000200300008a000000000232016f0000000001120019000000000221004b00000000020000190000000102004039000003410310009c000006170000213d0000000102200190000006170000c13d000000400010043f000000000001042d0000036a0100004100000000001004350000004101000039000000040010043f0000036b0100004100000cf10001043000000000040100190000037d0120009c000006500000813d0000003f01200039000000200500008a000000000551016f000000400100043d0000000005510019000000000615004b00000000060000190000000106004039000003410750009c000006500000213d0000000106600190000006500000c13d000000400050043f00000000052104360000000006420019000000000336004b000006560000213d0000001f0320018f000000020440036700000005062002720000063e0000613d000000000700001900000005087002100000000009850019000000000884034f000000000808043b00000000008904350000000107700039000000000867004b000006360000413d000000000730004c0000064d0000613d0000000506600210000000000464034f00000000066500190000000303300210000000000706043300000000073701cf000000000737022f000000000404043b0000010003300089000000000434022f00000000033401cf000000000373019f000000000036043500000000022500190000000000020435000000000001042d0000036a0100004100000000001004350000004101000039000000040010043f0000036b0100004100000cf100010430000000000100001900000cf10001043000000345061001970000000701000039000000000201041a0000034303200197000000000363019f000000000031041b0000033d0100004100000000030004140000033d0430009c0000000001034019000000c00110021000000344011001c700000345052001970000800d02000039000000030300003900000346040000410cef0ce50000040f00000001012001900000066c0000613d000000000001042d000000000100001900000cf10001043000000345022001970000000000200435000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f00000001022001900000067d0000613d000000000101043b000000000001042d000000000100001900000cf10001043000000000001004350000000201000039000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f0000000102200190000006910000613d000000000101043b000000000101041a0000034501100198000006930000613d000000000001042d000000000100001900000cf100010430000000400100043d000000640210003900000375030000410000000000320435000000440210003900000376030000410000000000320435000000240210003900000029030000390000000000320435000003630200004100000000002104350000000402100039000000200300003900000000003204350000033d020000410000033d0310009c0000000001028019000000400110021000000364011001c700000cf100010430000000000110004c000006ab0000613d000000000001042d000000400100043d00000064021000390000037e03000041000000000032043500000044021000390000037f030000410000000000320435000000240210003900000038030000390000000000320435000003630200004100000000002104350000000402100039000000200300003900000000003204350000033d020000410000033d0310009c0000000001028019000000400110021000000364011001c700000cf1000104300001000000000002000100000001001d00000000001004350000000201000039000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f0000000102200190000006e50000613d000000000101043b000000000101041a0000034501100198000006e70000613d000000010100002900000000001004350000000401000039000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f0000000102200190000006e50000613d000000000101043b000000000101041a0000034501100197000000000001042d000000000100001900000cf100010430000000400100043d00000064021000390000038003000041000000000032043500000044021000390000038103000041000000000032043500000024021000390000002c030000390000000000320435000003630200004100000000002104350000000402100039000000200300003900000000003204350000033d020000410000033d0310009c0000000001028019000000400110021000000364011001c700000cf100010430000000000110004c000006ff0000613d000000000001042d000000400100043d000000640210003900000382030000410000000000320435000000440210003900000383030000410000000000320435000000240210003900000031030000390000000000320435000003630200004100000000002104350000000402100039000000200300003900000000003204350000033d020000410000033d0310009c0000000001028019000000400110021000000364011001c700000cf1000104300008000000000002000200000004001d000400000002001d000500000001001d000800000003001d00000000003004350000000201000039000700000001001d000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f0000000102200190000008290000613d000000000101043b000000000101041a0000034501100198000008460000613d000000080100002900000000001004350000000701000029000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f0000000102200190000008290000613d000000000101043b000000000101041a00000345011001980000082b0000613d00000000020004110000034502200197000600000002001d000000000212004b000007870000613d00000000001004350000000501000039000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f0000000102200190000008290000613d000000000101043b00000006020000290000000000200435000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f0000000102200190000008290000613d000000000101043b000000000101041a000000ff01100190000007870000c13d000000080100002900000000001004350000000701000029000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f0000000102200190000008290000613d000000000101043b000000000101041a0000034501100198000008960000613d000000080100002900000000001004350000000401000039000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f0000000102200190000008290000613d000000000101043b000000000101041a00000345011001970000000602000029000000000121004b000008ab0000c13d000000080100002900000000001004350000000701000029000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f0000000102200190000008290000613d000000000101043b000000000101041a0000034501100198000600000001001d0000082b0000613d000000050100002900000345011001970000000602000029000000000112004b0000085b0000c13d00000004010000290000034501100198000300000001001d000008700000613d000000080100002900000000001004350000000401000039000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f0000000102200190000008290000613d000000000101043b000000000201041a0000034302200197000000000021041b000000080100002900000000001004350000000701000029000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f0000000102200190000008290000613d000000000101043b000000000101041a00000345051001980000082b0000613d0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000344011001c70000800d0200003900000004030000390000038604000041000000000600001900000008070000290cef0ce50000040f0000000101200190000008290000613d000000060100002900000000001004350000000301000039000100000001001d000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f0000000102200190000008290000613d000000000101043b000000000201041a000000000320004c000008400000613d000000010220008a000000000021041b000000030100002900000000001004350000000101000029000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f0000000102200190000008290000613d000000000101043b000000000201041a000000010300008a000000000332004b000008400000613d0000000102200039000000000021041b000000080100002900000000001004350000000701000029000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f0000000102200190000008290000613d000000000101043b000000000201041a00000343022001970000000306000029000000000262019f000000000021041b0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000344011001c70000800d0200003900000004030000390000036804000041000000060500002900000008070000290cef0ce50000040f0000000101200190000008290000613d00000005010000290000000402000029000000080300002900000002040000290cef0ab80000040f000000000110004c000008850000613d000000000001042d000000000100001900000cf100010430000000400100043d000000640210003900000375030000410000000000320435000000440210003900000376030000410000000000320435000000240210003900000029030000390000000000320435000003630200004100000000002104350000000402100039000000200300003900000000003204350000033d020000410000033d0310009c0000000001028019000000400110021000000364011001c700000cf1000104300000036a0100004100000000001004350000001101000039000000040010043f0000036b0100004100000cf100010430000000400100043d00000064021000390000038003000041000000000032043500000044021000390000038903000041000000000032043500000024021000390000002c030000390000000000320435000003630200004100000000002104350000000402100039000000200300003900000000003204350000033d020000410000033d0310009c0000000001028019000000400110021000000364011001c700000cf100010430000000400100043d000000640210003900000384030000410000000000320435000000440210003900000385030000410000000000320435000000240210003900000025030000390000000000320435000003630200004100000000002104350000000402100039000000200300003900000000003204350000033d020000410000033d0310009c0000000001028019000000400110021000000364011001c700000cf100010430000000400100043d000000640210003900000387030000410000000000320435000000440210003900000388030000410000000000320435000000240210003900000024030000390000000000320435000003630200004100000000002104350000000402100039000000200300003900000000003204350000033d020000410000033d0310009c0000000001028019000000400110021000000364011001c700000cf100010430000000400200043d000800000002001d0000036301000041000000000012043500000004012000390cef08c00000040f000000080400002900000000014100490000033d020000410000033d0310009c00000000010280190000033d0340009c000000000204401900000040022002100000006001100210000000000121019f00000cf100010430000000400100043d00000064021000390000038003000041000000000032043500000044021000390000038103000041000000000032043500000024021000390000002c030000390000000000320435000003630200004100000000002104350000000402100039000000200300003900000000003204350000033d020000410000033d0310009c0000000001028019000000400110021000000364011001c700000cf100010430000000400100043d000000640210003900000382030000410000000000320435000000440210003900000383030000410000000000320435000000240210003900000031030000390000000000320435000003630200004100000000002104350000000402100039000000200300003900000000003204350000033d020000410000033d0310009c0000000001028019000000400110021000000364011001c700000cf10001043000000060021000390000038a03000041000000000032043500000040021000390000038b030000410000000000320435000000200210003900000032030000390000000000320435000000200200003900000000002104350000008001100039000000000001042d0003000000000002000100000001001d000300000002001d00000000002004350000000201000039000200000001001d000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f0000000102200190000009410000613d000000000101043b000000000101041a0000034501100198000009430000613d000000030100002900000000001004350000000201000029000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f0000000102200190000009410000613d000000000101043b000000000101041a0000034502100198000009580000613d000000010100003900000001030000290000034503300197000100000003001d000000000323004b000009400000613d00000000002004350000000501000039000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f0000000102200190000009410000613d000000000101043b00000001020000290000000000200435000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f0000000102200190000009410000613d000000000101043b000000000101041a000000ff01100190000009400000c13d000000030100002900000000001004350000000201000029000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f0000000102200190000009410000613d000000000101043b000000000101041a00000345011001980000096d0000613d000000030100002900000000001004350000000401000039000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f0000000102200190000009410000613d000000000101043b000000000101041a00000345011001970000000102000029000000000121004b00000000010000190000000101006039000000000001042d000000000100001900000cf100010430000000400100043d00000064021000390000038003000041000000000032043500000044021000390000038903000041000000000032043500000024021000390000002c030000390000000000320435000003630200004100000000002104350000000402100039000000200300003900000000003204350000033d020000410000033d0310009c0000000001028019000000400110021000000364011001c700000cf100010430000000400100043d000000640210003900000375030000410000000000320435000000440210003900000376030000410000000000320435000000240210003900000029030000390000000000320435000003630200004100000000002104350000000402100039000000200300003900000000003204350000033d020000410000033d0310009c0000000001028019000000400110021000000364011001c700000cf100010430000000400100043d00000064021000390000038003000041000000000032043500000044021000390000038103000041000000000032043500000024021000390000002c030000390000000000320435000003630200004100000000002104350000000402100039000000200300003900000000003204350000033d020000410000033d0310009c0000000001028019000000400110021000000364011001c700000cf1000104300005000000000002000100000002001d000200000001001d000500000003001d00000000003004350000000201000039000300000001001d000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f000000010220019000000a210000613d000000000101043b000000000101041a0000034501100198000400000001001d00000a230000613d000000020100002900000345011001970000000402000029000000000112004b00000a3e0000c13d00000001010000290000034501100198000200000001001d00000a530000613d000000050100002900000000001004350000000401000039000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f000000010220019000000a210000613d000000000101043b000000000201041a0000034302200197000000000021041b000000050100002900000000001004350000000301000029000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f000000010220019000000a210000613d000000000101043b000000000101041a000003450510019800000a230000613d0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000344011001c70000800d0200003900000004030000390000038604000041000000000600001900000005070000290cef0ce50000040f000000010120019000000a210000613d000000040100002900000000001004350000000301000039000100000001001d000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f000000010220019000000a210000613d000000000101043b000000000201041a000000000320004c00000a380000613d000000010220008a000000000021041b000000020100002900000000001004350000000101000029000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f000000010220019000000a210000613d000000000101043b000000000201041a000000010300008a000000000332004b00000a380000613d0000000102200039000000000021041b000000050100002900000000001004350000000301000029000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f000000010220019000000a210000613d000000000101043b000000000201041a00000343022001970000000206000029000000000262019f000000000021041b0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000344011001c70000800d0200003900000004030000390000036804000041000000040500002900000005070000290cef0ce50000040f000000010120019000000a210000613d000000000001042d000000000100001900000cf100010430000000400100043d000000640210003900000375030000410000000000320435000000440210003900000376030000410000000000320435000000240210003900000029030000390000000000320435000003630200004100000000002104350000000402100039000000200300003900000000003204350000033d020000410000033d0310009c0000000001028019000000400110021000000364011001c700000cf1000104300000036a0100004100000000001004350000001101000039000000040010043f0000036b0100004100000cf100010430000000400100043d000000640210003900000384030000410000000000320435000000440210003900000385030000410000000000320435000000240210003900000025030000390000000000320435000003630200004100000000002104350000000402100039000000200300003900000000003204350000033d020000410000033d0310009c0000000001028019000000400110021000000364011001c700000cf100010430000000400100043d000000640210003900000387030000410000000000320435000000440210003900000388030000410000000000320435000000240210003900000024030000390000000000320435000003630200004100000000002104350000000402100039000000200300003900000000003204350000033d020000410000033d0310009c0000000001028019000000400110021000000364011001c700000cf1000104300002000000000002000100000001001d000200000002001d00000000002004350000000401000039000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f000000010220019000000aa10000613d00000001020000290000034503200197000000000101043b000000000201041a0000034302200197000100000003001d000000000232019f000000000021041b000000020100002900000000001004350000000201000039000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f000000010220019000000aa10000613d0000000207000029000000000101043b000000000101041a000003450510019800000aa30000613d0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000344011001c70000800d020000390000000403000039000003860400004100000001060000290cef0ce50000040f000000010120019000000aa10000613d000000000001042d000000000100001900000cf100010430000000400100043d000000640210003900000375030000410000000000320435000000440210003900000376030000410000000000320435000000240210003900000029030000390000000000320435000003630200004100000000002104350000000402100039000000200300003900000000003204350000033d020000410000033d0310009c0000000001028019000000400110021000000364011001c700000cf1000104300006000000000002000400000004001d000200000003001d000100000001001d0000038c010000410000000000100439000300000002001d00000004002004430000033d0100004100000000020004140000033d0320009c0000000001024019000000c0011002100000038d011001c700008002020000390cef0cea0000040f000000000301034f000000010120019000000b530000613d0000000101000039000000000203043b000000000220004c00000b520000613d000000400a00043d0000038e0100004100000000001a04350000006402a000390000000001000414000000800300003900000000003204350000004402a0003900000002030000290000000000320435000000010200002900000345022001970000002403a000390000000000230435000000000200041100000345022001970000000403a000390000000000230435000000040800002900000000030804330000008402a000390000000000320435000000a404a0003900000003020000290000034502200197000000000530004c00000af20000613d000000000500001900000000064500190000002005500039000000000785001900000000070704330000000000760435000000000635004b00000aeb0000413d00000000044300190000000000040435000000040420008c00000aff0000c13d0000000001000415000000060110008a00000020011000c90000000103000031000000200230008c00000020040000390000000004034019000600000000001d00000b3c0000013d0000001f03300039000000200400008a000000000343016f0000033d040000410000033d05a0009c000000000504001900000000050a40190000004005500210000000a4033000390000033d0630009c00000000030480190000006003300210000000000353019f0000033d0510009c0000000001048019000000c001100210000000000113019f00040000000a001d0cef0ce50000040f000000040a000029000000000301001900000060033002700000033d03300197000000200430008c000000200400003900000000040340190000001f0540018f000000050640027200000b250000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b00000b1d0000413d000000000750004c00000b340000613d0000000506600210000000000761034f00000000066a00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f00030000000103550000000001000415000000050110008a00000020011000c9000500000000001d000000010220019000000b550000613d0000001f02400039000000600420018f0000000002a40019000000000442004b00000000040000190000000104004039000003410520009c00000b970000213d000000010440019000000b970000c13d000000400020043f000000200230008c00000b530000413d00000000020a04330000037803200197000000000323004b00000b530000c13d000000200110011a000000000102001f0000038e0120009c00000000010000190000000101006039000000000001042d000000000100001900000cf1000104300000006001000039000000000230004c00000b6c0000c13d0000000021010434000000000310004c00000b9d0000c13d000000400200043d000400000002001d0000036301000041000000000012043500000004012000390cef08c00000040f000000040400002900000000014100490000033d020000410000033d0310009c00000000010280190000033d0340009c000000000204401900000040022002100000006001100210000000000121019f00000cf1000104300000003f013000390000038f02100197000000400100043d0000000002210019000000000412004b00000000040000190000000104004039000003410520009c00000b970000213d000000010440019000000b970000c13d000000400020043f0000000002310436000000030300036700000001050000310000001f0450018f000000050550027200000b870000613d000000000600001900000005076002100000000008720019000000000773034f000000000707043b00000000007804350000000106600039000000000756004b00000b7f0000413d000000000640004c00000b580000613d0000000505500210000000000353034f00000000025200190000000304400210000000000502043300000000054501cf000000000545022f000000000303043b0000010004400089000000000343022f00000000034301cf000000000353019f000000000032043500000b580000013d0000036a0100004100000000001004350000004101000039000000040010043f0000036b0100004100000cf1000104300000033d030000410000033d0420009c00000000020380190000033d0410009c000000000103801900000060011002100000004002200210000000000121019f00000cf1000104300003000000000002000300000001001d00000000001004350000000201000039000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f000000010220019000000c0f0000613d000000000101043b000000000101041a000003450110019800000c170000613d000000030100002900000000001004350000000601000039000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f000000010220019000000c0f0000613d000000000101043b000000000201041a000000010320019000000001042002700000007f0540018f000000000604001900000000060560190000001f0460008c00000000040000190000000104002039000000010440018f000000000443004b00000c2c0000c13d000000400500043d0000000004650436000000000330004c00000bf60000613d000100000004001d000200000006001d000300000005001d00000000001004350000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000342011001c700008010020000390cef0cea0000040f000000010220019000000c0f0000613d0000000206000029000000000260004c00000000020000190000000305000029000000010700002900000bfc0000613d000000000101043b00000000020000190000000003270019000000000401041a000000000043043500000001011000390000002002200039000000000362004b00000bee0000413d00000bfc0000013d000001000100008a000000000112016f0000000000140435000000000160004c000000200200003900000000020060190000003f01200039000000200200008a000000000221016f0000000001520019000000000221004b00000000020000190000000102004039000003410310009c00000c110000213d000000010220019000000c110000c13d000000400010043f000003900210009c00000c110000213d0000002002100039000000400020043f00000000000104350000000001050019000000000001042d000000000100001900000cf1000104300000036a0100004100000000001004350000004101000039000000040010043f0000036b0100004100000cf100010430000000400100043d000000640210003900000391030000410000000000320435000000440210003900000392030000410000000000320435000000240210003900000031030000390000000000320435000003630200004100000000002104350000000402100039000000200300003900000000003204350000033d020000410000033d0310009c0000000001028019000000400110021000000364011001c700000cf1000104300000036a0100004100000000001004350000002201000039000000040010043f0000036b0100004100000cf1000104300005000000000002000500000002001d000400000001001d00000000001004350000000201000039000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f000000010220019000000cc20000613d000000000101043b000000000101041a000003450110019800000cc40000613d000000040100002900000000001004350000000601000039000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f000000010220019000000cc20000613d000000000401043b000000050100002900000000650104340000037d0150009c00000cd90000813d000000000104041a000000010210019000000001011002700000007f0310018f000000000301c0190000001f0130008c00000000010000190000000101002039000000010110018f000000000112004b00000cdf0000c13d000000200130008c000400000004001d000300000005001d00000c880000413d000100000003001d000200000006001d00000000004004350000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000342011001c700008010020000390cef0cea0000040f000000010220019000000cc20000613d00000003050000290000001f025000390000000502200270000000200350008c0000000002004019000000000301043b00000001010000290000001f01100039000000050110027000000000011300190000000002230019000000000312004b0000000404000029000000020600002900000c880000813d000000000002041b0000000102200039000000000312004b00000c840000413d0000001f0150008c00000cb50000a13d00000000004004350000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000342011001c700008010020000390cef0cea0000040f000000010220019000000cc20000613d000000200200008a000000030700002900000000032701700000002002000039000000000101043b000000050600002900000ca60000613d0000002002000039000000000400001900000000056200190000000005050433000000000051041b000000200220003900000001011000390000002004400039000000000534004b00000c9e0000413d000000000373004b00000cb10000813d0000000303700210000000f80330018f000000010400008a000000000334022f000000000343013f00000000026200190000000002020433000000000232016f000000000021041b00000001010000390000000102700210000000040400002900000cbf0000013d000000000150004c000000000100001900000cb90000613d00000000010604330000000302500210000000010300008a000000000223022f000000000232013f000000000221016f0000000101500210000000000112019f000000000014041b000000000001042d000000000100001900000cf100010430000000400100043d00000064021000390000039303000041000000000032043500000044021000390000039403000041000000000032043500000024021000390000002e030000390000000000320435000003630200004100000000002104350000000402100039000000200300003900000000003204350000033d020000410000033d0310009c0000000001028019000000400110021000000364011001c700000cf1000104300000036a0100004100000000001004350000004101000039000000040010043f0000036b0100004100000cf1000104300000036a0100004100000000001004350000002201000039000000040010043f0000036b0100004100000cf10001043000000ce8002104210000000102000039000000000001042d0000000002000019000000000001042d00000ced002104230000000102000039000000000001042d0000000002000019000000000001042d00000cef0000043200000cf00001042e00000cf1000104300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff4d794e4654000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffc04e46540000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff0200000000000000000000000000000000000020000000000000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0000000020000000000000000000000000000004000000100000000000000000000000000000000000000000000000000000000000000000000000000715018a500000000000000000000000000000000000000000000000000000000b88d4fdd00000000000000000000000000000000000000000000000000000000e985e9c400000000000000000000000000000000000000000000000000000000e985e9c500000000000000000000000000000000000000000000000000000000eacabe1400000000000000000000000000000000000000000000000000000000f2fde38b00000000000000000000000000000000000000000000000000000000b88d4fde00000000000000000000000000000000000000000000000000000000c87b56dd0000000000000000000000000000000000000000000000000000000095d89b400000000000000000000000000000000000000000000000000000000095d89b4100000000000000000000000000000000000000000000000000000000a22cb46500000000000000000000000000000000000000000000000000000000715018a6000000000000000000000000000000000000000000000000000000008da5cb5b0000000000000000000000000000000000000000000000000000000023b872dc000000000000000000000000000000000000000000000000000000006352211d000000000000000000000000000000000000000000000000000000006352211e0000000000000000000000000000000000000000000000000000000070a082310000000000000000000000000000000000000000000000000000000023b872dd0000000000000000000000000000000000000000000000000000000042842e0e00000000000000000000000000000000000000000000000000000000081812fb00000000000000000000000000000000000000000000000000000000081812fc00000000000000000000000000000000000000000000000000000000095ea7b30000000000000000000000000000000000000000000000000000000001ffc9a70000000000000000000000000000000000000000000000000000000006fdde03800000000000000000000000000000000000000000000000000000000000000064647265737300000000000000000000000000000000000000000000000000004f776e61626c653a206e6577206f776e657220697320746865207a65726f206108c379a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008400000000000000000000000002000000000000000000000000000000000000400000000000000000000000004552433732313a20746f6b656e20616c7265616479206d696e746564000000000000000000000000000000000000000000000064000000000000000000000000ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef00000000000000000000000000000000000000200000000000000000000000004e487b710000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000000000000000000000004552433732313a206d696e7420746f20746865207a65726f206164647265737317307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c314552433732313a20617070726f766520746f2063616c6c657200000000000000b10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf64f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572726f2061646472657373000000000000000000000000000000000000000000004552433732313a2062616c616e636520717565727920666f7220746865207a6572000000000000000000000000000000000000000000000000000000000000004552433732313a20617070726f76616c20746f2063757272656e74206f776e65656e7420746f6b656e00000000000000000000000000000000000000000000004552433732313a206f776e657220717565727920666f72206e6f6e6578697374290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563ffffffff0000000000000000000000000000000000000000000000000000000080ac58cd000000000000000000000000000000000000000000000000000000005b5e139f0000000000000000000000000000000000000000000000000000000001ffc9a700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffe000000000000000000000000000000000000000000000000100000000000000006e6572206e6f7220617070726f76656420666f7220616c6c00000000000000004552433732313a20617070726f76652063616c6c6572206973206e6f74206f77697374656e7420746f6b656e00000000000000000000000000000000000000004552433732313a20617070726f76656420717565727920666f72206e6f6e6578776e6572206e6f7220617070726f7665640000000000000000000000000000004552433732313a207472616e736665722063616c6c6572206973206e6f74206f6f776e65720000000000000000000000000000000000000000000000000000004552433732313a207472616e736665722066726f6d20696e636f7272656374208c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92572657373000000000000000000000000000000000000000000000000000000004552433732313a207472616e7366657220746f20746865207a65726f206164644552433732313a206f70657261746f7220717565727920666f72206e6f6e657863656976657220696d706c656d656e74657200000000000000000000000000004552433732313a207472616e7366657220746f206e6f6e2045524337323152651806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b830200000200000000000000000000000000000024000000000000000000000000150b7a020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001ffffffe0000000000000000000000000000000000000000000000000ffffffffffffffdf6e6f6e6578697374656e7420746f6b656e00000000000000000000000000000045524337323155524953746f726167653a2055524920717565727920666f72206578697374656e7420746f6b656e00000000000000000000000000000000000045524337323155524953746f726167653a2055524920736574206f66206e6f6e0000000000000000000000000000000000000000000000000000000000000000311de4497f01547d67160eca78d4da43bcb08e5f202edd55fee501e4eae35cb1"},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","mintNFT(address,string)":"eacabe14","name()":"06fdde03","owner()":"8da5cb5b","ownerOf(uint256)":"6352211e","renounceOwnership()":"715018a6","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","transferOwnership(address)":"f2fde38b"}},"irOptimized":"/// @use-src 24:\"@openzeppelin/contracts/access/Ownable.sol\", 29:\"@openzeppelin/contracts/token/ERC721/ERC721.sol\", 30:\"@openzeppelin/contracts/token/ERC721/IERC721.sol\", 32:\"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol\", 33:\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\", 35:\"@openzeppelin/contracts/utils/Context.sol\", 38:\"@openzeppelin/contracts/utils/introspection/ERC165.sol\", 39:\"@openzeppelin/contracts/utils/introspection/IERC165.sol\", 47:\"contracts/MyNFT.sol\"\nobject \"MyNFT_8955\" {\n code {\n {\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n let _1 := memoryguard(0x80)\n if callvalue() { revert(0, 0) }\n let _2 := 64\n let newFreePtr := add(_1, _2)\n let _3 := sub(shl(64, 1), 1)\n if or(gt(newFreePtr, _3), lt(newFreePtr, _1))\n {\n mstore(/** @src -1:-1:-1 */ 0, /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(/** @src -1:-1:-1 */ 0, /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ 36)\n }\n mstore(_2, newFreePtr)\n mstore(_1, 5)\n let _4 := 32\n mstore(add(_1, _4), \"MyNFT\")\n let memPtr := mload(_2)\n let newFreePtr_1 := add(memPtr, _2)\n if or(gt(newFreePtr_1, _3), lt(newFreePtr_1, memPtr))\n {\n mstore(/** @src -1:-1:-1 */ 0, /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(/** @src -1:-1:-1 */ 0, /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ 0x24)\n }\n mstore(_2, newFreePtr_1)\n mstore(memPtr, 3)\n mstore(add(memPtr, _4), \"NFT\")\n let newLen := mload(_1)\n if gt(newLen, _3)\n {\n mstore(/** @src -1:-1:-1 */ 0, /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(/** @src -1:-1:-1 */ 0, /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ 0x24)\n }\n /// @src -1:-1:-1\n let _5 := 0\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n let _6 := sload(/** @src -1:-1:-1 */ _5)\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n let length := /** @src -1:-1:-1 */ _5\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n let _7 := 1\n length := shr(_7, _6)\n let outOfPlaceEncoding := and(_6, _7)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, _4))\n {\n mstore(/** @src -1:-1:-1 */ _5, /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(/** @src -1:-1:-1 */ _5, /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ 0x24)\n }\n let _8 := 31\n if gt(length, _8)\n {\n mstore(/** @src -1:-1:-1 */ _5, _5)\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n let data := keccak256(/** @src -1:-1:-1 */ _5, /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ _4)\n let deleteStart := add(data, shr(5, add(newLen, _8)))\n if lt(newLen, _4) { deleteStart := data }\n let _9 := add(data, shr(5, add(length, _8)))\n let start := deleteStart\n for { } lt(start, _9) { start := add(start, _7) }\n {\n sstore(start, /** @src -1:-1:-1 */ _5)\n }\n }\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n let srcOffset := /** @src -1:-1:-1 */ _5\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n srcOffset := _4\n switch gt(newLen, _8)\n case 1 {\n let loopEnd := and(newLen, not(31))\n mstore(/** @src -1:-1:-1 */ _5, _5)\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n let dstPtr := keccak256(/** @src -1:-1:-1 */ _5, /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ _4)\n let i := /** @src -1:-1:-1 */ _5\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n for { } lt(i, loopEnd) { i := add(i, _4) }\n {\n sstore(dstPtr, mload(add(_1, srcOffset)))\n dstPtr := add(dstPtr, _7)\n srcOffset := add(srcOffset, _4)\n }\n if lt(loopEnd, newLen)\n {\n let lastValue := mload(add(_1, srcOffset))\n sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), not(0)))))\n }\n sstore(/** @src -1:-1:-1 */ _5, /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ add(shl(_7, newLen), _7))\n }\n default {\n let value := /** @src -1:-1:-1 */ _5\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n if newLen\n {\n value := mload(add(_1, srcOffset))\n }\n sstore(/** @src -1:-1:-1 */ _5, /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ or(and(value, not(shr(shl(3, newLen), not(0)))), shl(_7, newLen)))\n }\n let newLen_1 := mload(memPtr)\n if gt(newLen_1, _3)\n {\n mstore(/** @src -1:-1:-1 */ _5, /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(/** @src -1:-1:-1 */ _5, /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ 0x24)\n }\n let _10 := sload(_7)\n let length_1 := /** @src -1:-1:-1 */ _5\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n length_1 := shr(_7, _10)\n let outOfPlaceEncoding_1 := and(_10, _7)\n if iszero(outOfPlaceEncoding_1)\n {\n length_1 := and(length_1, 0x7f)\n }\n if eq(outOfPlaceEncoding_1, lt(length_1, _4))\n {\n mstore(/** @src -1:-1:-1 */ _5, /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(/** @src -1:-1:-1 */ _5, /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ 0x24)\n }\n if gt(length_1, _8)\n {\n mstore(/** @src -1:-1:-1 */ _5, /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ _7)\n let data_1 := keccak256(/** @src -1:-1:-1 */ _5, /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ _4)\n let deleteStart_1 := add(data_1, shr(5, add(newLen_1, _8)))\n if lt(newLen_1, _4) { deleteStart_1 := data_1 }\n let _11 := add(data_1, shr(5, add(length_1, _8)))\n let start_1 := deleteStart_1\n for { } lt(start_1, _11) { start_1 := add(start_1, _7) }\n {\n sstore(start_1, /** @src -1:-1:-1 */ _5)\n }\n }\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n let srcOffset_1 := /** @src -1:-1:-1 */ _5\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n srcOffset_1 := _4\n switch gt(newLen_1, _8)\n case 1 {\n let loopEnd_1 := and(newLen_1, not(31))\n mstore(/** @src -1:-1:-1 */ _5, /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ _7)\n let dstPtr_1 := keccak256(/** @src -1:-1:-1 */ _5, /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ _4)\n let i_1 := /** @src -1:-1:-1 */ _5\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n for { } lt(i_1, loopEnd_1) { i_1 := add(i_1, _4) }\n {\n sstore(dstPtr_1, mload(add(memPtr, srcOffset_1)))\n dstPtr_1 := add(dstPtr_1, _7)\n srcOffset_1 := add(srcOffset_1, _4)\n }\n if lt(loopEnd_1, newLen_1)\n {\n let lastValue_1 := mload(add(memPtr, srcOffset_1))\n sstore(dstPtr_1, and(lastValue_1, not(shr(and(shl(3, newLen_1), 248), not(0)))))\n }\n sstore(_7, add(shl(_7, newLen_1), _7))\n }\n default {\n let value_1 := /** @src -1:-1:-1 */ _5\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n if newLen_1\n {\n value_1 := mload(add(memPtr, srcOffset_1))\n }\n sstore(_7, or(and(value_1, not(shr(shl(3, newLen_1), not(0)))), shl(_7, newLen_1)))\n }\n let _12 := sload(/** @src 24:2362:2368 \"_owner\" */ 0x07)\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n sstore(/** @src 24:2362:2368 \"_owner\" */ 0x07, /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ or(and(_12, not(sub(shl(160, 1), 1))), /** @src 35:719:729 \"msg.sender\" */ caller()))\n /// @src 24:2410:2450 \"OwnershipTransferred(oldOwner, newOwner)\"\n let _13 := /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ mload(_2)\n /// @src 24:2410:2450 \"OwnershipTransferred(oldOwner, newOwner)\"\n log3(/** @src -1:-1:-1 */ _5, _5, /** @src 24:2410:2450 \"OwnershipTransferred(oldOwner, newOwner)\" */ 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0, /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ and(_12, sub(shl(160, 1), 1)), /** @src 35:719:729 \"msg.sender\" */ caller())\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n let _14 := datasize(\"MyNFT_8955_deployed\")\n codecopy(_13, dataoffset(\"MyNFT_8955_deployed\"), _14)\n return(_13, _14)\n }\n }\n /// @use-src 24:\"@openzeppelin/contracts/access/Ownable.sol\", 29:\"@openzeppelin/contracts/token/ERC721/ERC721.sol\", 32:\"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol\", 34:\"@openzeppelin/contracts/utils/Address.sol\", 35:\"@openzeppelin/contracts/utils/Context.sol\", 36:\"@openzeppelin/contracts/utils/Counters.sol\", 37:\"@openzeppelin/contracts/utils/Strings.sol\", 38:\"@openzeppelin/contracts/utils/introspection/ERC165.sol\", 47:\"contracts/MyNFT.sol\"\n object \"MyNFT_8955_deployed\" {\n code {\n {\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n mstore(64, 128)\n if iszero(lt(calldatasize(), 4))\n {\n switch shr(224, calldataload(0))\n case 0x01ffc9a7 {\n external_fun_supportsInterface()\n }\n case 0x06fdde03 { external_fun_name() }\n case 0x081812fc { external_fun_getApproved() }\n case 0x095ea7b3 { external_fun_approve() }\n case 0x23b872dd { external_fun_transferFrom() }\n case 0x42842e0e {\n external_fun_safeTransferFrom_7025()\n }\n case 0x6352211e { external_fun_ownerOf() }\n case 0x70a08231 { external_fun_balanceOf() }\n case 0x715018a6 {\n external_fun_renounceOwnership()\n }\n case 0x8da5cb5b { external_fun_owner() }\n case 0x95d89b41 { external_fun_symbol() }\n case 0xa22cb465 {\n external_fun_setApprovalForAll()\n }\n case 0xb88d4fde {\n external_fun_safeTransferFrom()\n }\n case 0xc87b56dd { external_fun_tokenURI() }\n case 0xe985e9c5 {\n external_fun_isApprovedForAll()\n }\n case 0xeacabe14 { external_fun_mintNFT() }\n case 0xf2fde38b {\n external_fun_transferOwnership()\n }\n }\n revert(0, 0)\n }\n function validator_revert_bytes4(value)\n {\n if iszero(eq(value, and(value, shl(224, 0xffffffff)))) { revert(0, 0) }\n }\n function cleanup_bool(value) -> cleaned\n {\n cleaned := iszero(iszero(value))\n }\n function abi_encode_bool(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function external_fun_supportsInterface()\n {\n if callvalue() { revert(0, 0) }\n if slt(add(calldatasize(), not(3)), 32)\n {\n revert(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n let value := calldataload(4)\n validator_revert_bytes4(value)\n /// @src 29:1707:1747 \"interfaceId == type(IERC721).interfaceId\"\n let _1 := /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ and(/** @src 29:1707:1747 \"interfaceId == type(IERC721).interfaceId\" */ value, /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ shl(224, 0xffffffff))\n /// @src 29:1707:1811 \"interfaceId == type(IERC721).interfaceId ||...\"\n let expr := /** @src 29:1707:1747 \"interfaceId == type(IERC721).interfaceId\" */ eq(_1, /** @src 29:1722:1747 \"type(IERC721).interfaceId\" */ shl(224, 0x80ac58cd))\n /// @src 29:1707:1811 \"interfaceId == type(IERC721).interfaceId ||...\"\n if iszero(expr)\n {\n expr := /** @src 29:1763:1811 \"interfaceId == type(IERC721Metadata).interfaceId\" */ eq(_1, /** @src 29:1778:1811 \"type(IERC721Metadata).interfaceId\" */ shl(224, 0x5b5e139f))\n }\n /// @src 29:1707:1863 \"interfaceId == type(IERC721).interfaceId ||...\"\n let expr_1 := expr\n if iszero(expr)\n {\n expr_1 := /** @src 38:937:977 \"interfaceId == type(IERC165).interfaceId\" */ eq(_1, /** @src 38:952:977 \"type(IERC165).interfaceId\" */ shl(224, 0x01ffc9a7))\n }\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n let memPos := mload(64)\n mstore(memPos, iszero(iszero(expr_1)))\n return(memPos, 32)\n }\n function copy_memory_to_memory_with_cleanup(src, dst, length)\n {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n function abi_encode_string_to_string(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), add(pos, 0x20), length)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_string(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_string_to_string(value0, add(headStart, 32))\n }\n function external_fun_name()\n {\n if callvalue() { revert(0, 0) }\n let _1 := 0\n if slt(add(calldatasize(), not(3)), _1) { revert(_1, _1) }\n let memPtr := mload(64)\n let ret := _1\n let slotValue := sload(_1)\n let length := extract_byte_array_length(slotValue)\n mstore(memPtr, length)\n let _2 := 0x20\n let _3 := 1\n switch and(slotValue, _3)\n case 0 {\n mstore(add(memPtr, _2), and(slotValue, not(255)))\n ret := add(add(memPtr, shl(5, iszero(iszero(length)))), _2)\n }\n case 1 {\n mstore(_1, _1)\n let dataPos := 18569430475105882587588266137607568536673111973893317399460219858819262702947\n let i := _1\n for { } lt(i, length) { i := add(i, _2) }\n {\n mstore(add(add(memPtr, i), _2), sload(dataPos))\n dataPos := add(dataPos, _3)\n }\n ret := add(add(memPtr, i), _2)\n }\n finalize_allocation(memPtr, sub(ret, memPtr))\n let memPos := mload(64)\n return(memPos, sub(abi_encode_string(memPos, memPtr), memPos))\n }\n function external_fun_getApproved()\n {\n if callvalue() { revert(0, 0) }\n if slt(add(calldatasize(), not(3)), 32)\n {\n revert(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n let ret := fun_getApproved(calldataload(4))\n let memPos := mload(64)\n mstore(memPos, and(ret, sub(shl(160, 1), 1)))\n return(memPos, 32)\n }\n function abi_decode_address() -> value\n {\n value := calldataload(4)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_address_7728() -> value\n {\n value := calldataload(36)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function external_fun_approve()\n {\n if callvalue() { revert(0, 0) }\n if slt(add(calldatasize(), not(3)), 64)\n {\n revert(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n let value0 := abi_decode_address()\n let value1 := calldataload(36)\n /// @src 29:3634:3657 \"ERC721.ownerOf(tokenId)\"\n let expr := fun_ownerOf(value1)\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n let _1 := sub(shl(160, 1), 1)\n /// @src 29:3675:3686 \"to != owner\"\n let _2 := /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ and(/** @src 29:3675:3686 \"to != owner\" */ expr, /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ _1)\n if /** @src 29:3675:3686 \"to != owner\" */ eq(/** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ and(/** @src 29:3675:3686 \"to != owner\" */ value0, /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ _1), /** @src 29:3675:3686 \"to != owner\" */ _2)\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n {\n let memPtr := mload(64)\n mstore(memPtr, shl(229, 4594637))\n mstore(add(memPtr, 4), 32)\n mstore(add(memPtr, 36), 33)\n mstore(add(memPtr, 68), \"ERC721: approval to current owne\")\n mstore(add(memPtr, 100), \"r\")\n revert(memPtr, 132)\n }\n /// @src 29:3756:3818 \"_msgSender() == owner || isApprovedForAll(owner, _msgSender())\"\n let expr_1 := /** @src 29:3756:3777 \"_msgSender() == owner\" */ eq(/** @src 35:719:729 \"msg.sender\" */ caller(), /** @src 29:3756:3777 \"_msgSender() == owner\" */ _2)\n /// @src 29:3756:3818 \"_msgSender() == owner || isApprovedForAll(owner, _msgSender())\"\n if iszero(expr_1)\n {\n expr_1 := /** @src 29:4623:4658 \"_operatorApprovals[owner][operator]\" */ read_from_storage_split_offset_bool(mapping_index_access_mapping_address_uint256_of_address(/** @src 29:4623:4648 \"_operatorApprovals[owner]\" */ mapping_index_access_mapping_address_uint256_of_address_7719(/** @src 29:3781:3818 \"isApprovedForAll(owner, _msgSender())\" */ expr), /** @src 35:719:729 \"msg.sender\" */ caller()))\n }\n /// @src 29:3735:3900 \"require(...\"\n require_helper_stringliteral_6d83(expr_1)\n /// @src 29:3924:3931 \"tokenId\"\n fun_approve(value0, value1)\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n return(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n function abi_decode_addresst_addresst_uint256(dataEnd) -> value0, value1, value2\n {\n if slt(add(dataEnd, not(3)), 96) { revert(0, 0) }\n let value := calldataload(4)\n let _1 := sub(shl(160, 1), 1)\n if iszero(eq(value, and(value, _1)))\n {\n revert(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n value0 := value\n let value_1 := calldataload(36)\n if iszero(eq(value_1, and(value_1, _1)))\n {\n revert(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n value1 := value_1\n value2 := calldataload(68)\n }\n function external_fun_transferFrom()\n {\n if callvalue() { revert(0, 0) }\n let param, param_1, param_2 := abi_decode_addresst_addresst_uint256(calldatasize())\n /// @src 29:4908:5011 \"require(_isApprovedOrOwner(_msgSender(), tokenId), \\\"ERC721: transfer caller is not owner nor approved\\\")\"\n require_helper_stringliteral_c868(/** @src 29:4916:4957 \"_isApprovedOrOwner(_msgSender(), tokenId)\" */ fun_isApprovedOrOwner(/** @src 35:719:729 \"msg.sender\" */ caller(), /** @src 29:4916:4957 \"_isApprovedOrOwner(_msgSender(), tokenId)\" */ param_2))\n /// @src 29:5042:5049 \"tokenId\"\n fun_transfer(param, param_1, param_2)\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n return(0, 0)\n }\n function external_fun_safeTransferFrom_7025()\n {\n if callvalue() { revert(0, 0) }\n let param, param_1, param_2 := abi_decode_addresst_addresst_uint256(calldatasize())\n let memPtr := mload(64)\n finalize_allocation_11212(memPtr)\n mstore(memPtr, 0)\n /// @src 29:5256:5295 \"safeTransferFrom(from, to, tokenId, \\\"\\\")\"\n fun_safeTransferFrom(param, param_1, param_2, /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ memPtr)\n return(0, 0)\n }\n function external_fun_ownerOf()\n {\n if callvalue() { revert(0, 0) }\n if slt(add(calldatasize(), not(3)), 32)\n {\n revert(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n let ret := fun_ownerOf(calldataload(4))\n let memPos := mload(64)\n mstore(memPos, and(ret, sub(shl(160, 1), 1)))\n return(memPos, 32)\n }\n function abi_encode_uint256(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function external_fun_balanceOf()\n {\n if callvalue() { revert(0, 0) }\n if slt(add(calldatasize(), not(3)), 32)\n {\n revert(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n let _1 := and(abi_decode_address(), sub(shl(160, 1), 1))\n if /** @src 29:2028:2047 \"owner != address(0)\" */ iszero(/** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ _1)\n {\n let memPtr := mload(64)\n mstore(memPtr, shl(229, 4594637))\n mstore(add(memPtr, 4), 32)\n mstore(add(memPtr, 36), 42)\n mstore(add(memPtr, 68), \"ERC721: balance query for the ze\")\n mstore(add(memPtr, 100), \"ro address\")\n revert(memPtr, 132)\n }\n mstore(/** @src -1:-1:-1 */ 0, /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ _1)\n mstore(32, /** @src 29:2111:2120 \"_balances\" */ 0x03)\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n let _2 := sload(keccak256(/** @src -1:-1:-1 */ 0, /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ 0x40))\n let memPos := mload(0x40)\n return(memPos, sub(abi_encode_uint256(memPos, _2), memPos))\n }\n function external_fun_renounceOwnership()\n {\n if callvalue() { revert(0, 0) }\n let _1 := 0\n if slt(add(calldatasize(), not(3)), _1) { revert(_1, _1) }\n let _2 := sload(/** @src 24:1108:1114 \"_owner\" */ 0x07)\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n let cleaned := and(_2, sub(shl(160, 1), 1))\n /// @src 24:1240:1308 \"require(owner() == _msgSender(), \\\"Ownable: caller is not the owner\\\")\"\n require_helper_stringliteral(/** @src 24:1248:1271 \"owner() == _msgSender()\" */ eq(/** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ cleaned, /** @src 35:719:729 \"msg.sender\" */ caller()))\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n sstore(/** @src 24:1108:1114 \"_owner\" */ 0x07, /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ and(_2, shl(160, 0xffffffffffffffffffffffff)))\n /// @src 24:2410:2450 \"OwnershipTransferred(oldOwner, newOwner)\"\n log3(/** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ _1, _1, /** @src 24:2410:2450 \"OwnershipTransferred(oldOwner, newOwner)\" */ 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0, cleaned, /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ _1)\n return(_1, _1)\n }\n function external_fun_owner()\n {\n if callvalue() { revert(0, 0) }\n if slt(add(calldatasize(), not(3)), 0) { revert(0, 0) }\n let cleaned := and(sload(/** @src 24:1108:1114 \"_owner\" */ 0x07), /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ sub(shl(160, 1), 1))\n let memPos := mload(64)\n mstore(memPos, cleaned)\n return(memPos, 32)\n }\n function external_fun_symbol()\n {\n if callvalue() { revert(0, 0) }\n let _1 := 0\n if slt(add(calldatasize(), not(3)), _1) { revert(_1, _1) }\n let memPtr := mload(64)\n let ret := _1\n /// @src 29:2738:2745 \"_symbol\"\n let _2 := 0x01\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n let slotValue := sload(/** @src 29:2738:2745 \"_symbol\" */ _2)\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n let length := extract_byte_array_length(slotValue)\n mstore(memPtr, length)\n let _3 := 0x20\n switch and(slotValue, /** @src 29:2738:2745 \"_symbol\" */ _2)\n case /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ 0 {\n mstore(add(memPtr, _3), and(slotValue, not(255)))\n ret := add(add(memPtr, shl(5, iszero(iszero(length)))), _3)\n }\n case 1 {\n mstore(_1, /** @src 29:2738:2745 \"_symbol\" */ _2)\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n let dataPos := 80084422859880547211683076133703299733277748156566366325829078699459944778998\n let i := _1\n for { } lt(i, length) { i := add(i, _3) }\n {\n mstore(add(add(memPtr, i), _3), sload(dataPos))\n dataPos := add(dataPos, /** @src 29:2738:2745 \"_symbol\" */ _2)\n }\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n ret := add(add(memPtr, i), _3)\n }\n finalize_allocation(memPtr, sub(ret, memPtr))\n let memPos := mload(64)\n return(memPos, sub(abi_encode_string(memPos, memPtr), memPos))\n }\n function external_fun_setApprovalForAll()\n {\n if callvalue() { revert(0, 0) }\n if slt(add(calldatasize(), not(3)), 64)\n {\n revert(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n let value0 := abi_decode_address()\n let value := calldataload(36)\n if iszero(eq(value, iszero(iszero(value))))\n {\n revert(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n let _1 := and(/** @src 29:11616:11633 \"owner != operator\" */ value0, /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ sub(shl(160, 1), 1))\n if /** @src 29:11616:11633 \"owner != operator\" */ eq(/** @src 35:719:729 \"msg.sender\" */ caller(), /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ _1)\n {\n let memPtr := mload(64)\n mstore(memPtr, shl(229, 4594637))\n mstore(add(memPtr, 4), 32)\n mstore(add(memPtr, 36), 25)\n mstore(add(memPtr, 68), \"ERC721: approve to caller\")\n revert(memPtr, 100)\n }\n mstore(/** @src -1:-1:-1 */ 0, /** @src 35:719:729 \"msg.sender\" */ caller())\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n mstore(32, /** @src 29:11673:11691 \"_operatorApprovals\" */ 0x05)\n /// @src 29:11673:11719 \"_operatorApprovals[owner][operator] = approved\"\n update_storage_value_offsett_bool_to_bool(/** @src 29:11673:11708 \"_operatorApprovals[owner][operator]\" */ mapping_index_access_mapping_address_uint256_of_address(/** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ keccak256(/** @src -1:-1:-1 */ 0, /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ 64), /** @src 29:11673:11708 \"_operatorApprovals[owner][operator]\" */ value0), /** @src 29:11673:11719 \"_operatorApprovals[owner][operator] = approved\" */ value)\n /// @src 29:11734:11775 \"ApprovalForAll(owner, operator, approved)\"\n let _2 := /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ mload(64)\n /// @src 29:11734:11775 \"ApprovalForAll(owner, operator, approved)\"\n log3(_2, sub(abi_encode_bool(_2, value), _2), 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31, /** @src 35:719:729 \"msg.sender\" */ caller(), /** @src 29:11734:11775 \"ApprovalForAll(owner, operator, approved)\" */ _1)\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n return(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function finalize_allocation_11212(memPtr)\n {\n let newFreePtr := add(memPtr, 0x20)\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n function finalize_allocation_11216(memPtr)\n {\n let newFreePtr := add(memPtr, 64)\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n function finalize_allocation(memPtr, size)\n {\n let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n function array_allocation_size_bytes(length) -> size\n {\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n size := add(and(add(length, 31), not(31)), 0x20)\n }\n function abi_decode_available_length_bytes(src, length, end) -> array\n {\n let _1 := array_allocation_size_bytes(length)\n let memPtr := mload(64)\n finalize_allocation(memPtr, _1)\n array := memPtr\n mstore(memPtr, length)\n if gt(add(src, length), end)\n {\n revert(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n calldatacopy(add(memPtr, 0x20), src, length)\n mstore(add(add(memPtr, length), 0x20), /** @src -1:-1:-1 */ 0)\n }\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n function external_fun_safeTransferFrom()\n {\n if callvalue() { revert(0, 0) }\n if slt(add(calldatasize(), not(3)), 128)\n {\n revert(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n let value0 := abi_decode_address()\n let value1 := abi_decode_address_7728()\n let offset := calldataload(100)\n if gt(offset, 0xffffffffffffffff)\n {\n revert(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n if iszero(slt(add(offset, 35), calldatasize()))\n {\n revert(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n fun_safeTransferFrom(value0, value1, calldataload(68), abi_decode_available_length_bytes(add(offset, 36), calldataload(add(4, offset)), calldatasize()))\n return(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n function external_fun_tokenURI()\n {\n if callvalue() { revert(0, 0) }\n if slt(add(calldatasize(), not(3)), 32)\n {\n revert(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n let ret := fun_tokenURI(calldataload(4))\n let memPos := mload(64)\n mstore(memPos, 32)\n return(memPos, sub(abi_encode_string_to_string(ret, add(memPos, 32)), memPos))\n }\n function external_fun_isApprovedForAll()\n {\n if callvalue() { revert(0, 0) }\n if slt(add(calldatasize(), not(3)), 64)\n {\n revert(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n let value0 := abi_decode_address()\n let value1 := abi_decode_address_7728()\n mstore(/** @src -1:-1:-1 */ 0, /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ and(value0, sub(shl(160, 1), 1)))\n mstore(32, /** @src 29:4623:4641 \"_operatorApprovals\" */ 0x05)\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n let value := and(sload(/** @src 29:4623:4658 \"_operatorApprovals[owner][operator]\" */ mapping_index_access_mapping_address_uint256_of_address(/** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ keccak256(/** @src -1:-1:-1 */ 0, /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ 64), value1)), 0xff)\n let memPos := mload(64)\n mstore(memPos, iszero(iszero(value)))\n return(memPos, 32)\n }\n function external_fun_mintNFT()\n {\n if callvalue() { revert(0, 0) }\n if slt(add(calldatasize(), not(3)), 64)\n {\n revert(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n let value0 := abi_decode_address()\n let offset := calldataload(36)\n if gt(offset, 0xffffffffffffffff)\n {\n revert(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n if iszero(slt(add(offset, 35), calldatasize()))\n {\n revert(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n let array := abi_decode_available_length_bytes(add(offset, 36), calldataload(add(4, offset)), calldatasize())\n let _1 := sub(shl(160, 1), 1)\n let cleaned := and(sload(/** @src 24:1108:1114 \"_owner\" */ 0x07), /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ _1)\n /// @src 24:1240:1308 \"require(owner() == _msgSender(), \\\"Ownable: caller is not the owner\\\")\"\n require_helper_stringliteral(/** @src 24:1248:1271 \"owner() == _msgSender()\" */ eq(/** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ cleaned, /** @src 35:719:729 \"msg.sender\" */ caller()))\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n let sum := add(sload(/** @src 47:514:523 \"_tokenIds\" */ 0x08), /** @src 36:1050:1051 \"1\" */ 0x01)\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n sstore(/** @src 47:514:523 \"_tokenIds\" */ 0x08, /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ sum)\n let _2 := and(/** @src 29:9158:9174 \"to != address(0)\" */ value0, /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ _1)\n if /** @src 29:9158:9174 \"to != address(0)\" */ iszero(/** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ _2)\n {\n let memPtr := mload(64)\n mstore(memPtr, shl(229, 4594637))\n mstore(add(memPtr, 4), 32)\n mstore(add(memPtr, 36), 32)\n mstore(add(memPtr, 68), \"ERC721: mint to the zero address\")\n revert(memPtr, 100)\n }\n /// @src 29:9221:9279 \"require(!_exists(tokenId), \\\"ERC721: token already minted\\\")\"\n require_helper_stringliteral_2a63(/** @src 29:9229:9246 \"!_exists(tokenId)\" */ cleanup_bool(iszero(/** @src 29:9230:9246 \"_exists(tokenId)\" */ fun_exists(sum))))\n /// @src 29:9346:9359 \"_balances[to]\"\n let _3 := mapping_index_access_mapping_address_uint256_of_address_7734(value0)\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n sstore(_3, /** @src 29:9346:9364 \"_balances[to] += 1\" */ checked_add_uint256_7735(/** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ sload(/** @src 29:9346:9364 \"_balances[to] += 1\" */ _3)))\n /// @src 29:9374:9395 \"_owners[tokenId] = to\"\n update_storage_value_offsett_address_to_address(/** @src 29:9374:9390 \"_owners[tokenId]\" */ mapping_index_access_mapping_uint256_address_of_uint256(sum), /** @src 29:9374:9395 \"_owners[tokenId] = to\" */ value0)\n /// @src 29:9411:9444 \"Transfer(address(0), to, tokenId)\"\n log4(/** @src -1:-1:-1 */ 0, 0, /** @src 29:9411:9444 \"Transfer(address(0), to, tokenId)\" */ 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef, /** @src -1:-1:-1 */ 0, /** @src 29:9411:9444 \"Transfer(address(0), to, tokenId)\" */ _2, sum)\n /// @src 47:644:652 \"tokenURI\"\n fun_setTokenURI(sum, array)\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n let memPos := mload(64)\n return(memPos, sub(abi_encode_uint256(memPos, sum), memPos))\n }\n function external_fun_transferOwnership()\n {\n if callvalue() { revert(0, 0) }\n if slt(add(calldatasize(), not(3)), 32)\n {\n revert(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n let value0 := abi_decode_address()\n let _1 := sub(shl(160, 1), 1)\n let cleaned := and(sload(/** @src 24:1108:1114 \"_owner\" */ 0x07), /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ _1)\n /// @src 24:1240:1308 \"require(owner() == _msgSender(), \\\"Ownable: caller is not the owner\\\")\"\n require_helper_stringliteral(/** @src 24:1248:1271 \"owner() == _msgSender()\" */ eq(/** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ cleaned, /** @src 35:719:729 \"msg.sender\" */ caller()))\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n if /** @src 24:2006:2028 \"newOwner != address(0)\" */ iszero(/** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ and(/** @src 24:2006:2028 \"newOwner != address(0)\" */ value0, /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ _1))\n {\n let memPtr := mload(64)\n mstore(memPtr, shl(229, 4594637))\n mstore(add(memPtr, 4), 32)\n mstore(add(memPtr, 36), 38)\n mstore(add(memPtr, 68), \"Ownable: new owner is the zero a\")\n mstore(add(memPtr, 100), \"ddress\")\n revert(memPtr, 132)\n }\n /// @src 24:2100:2108 \"newOwner\"\n fun_transferOwnership(value0)\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n return(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n function require_helper_stringliteral(condition)\n {\n if iszero(condition)\n {\n let memPtr := mload(64)\n mstore(memPtr, shl(229, 4594637))\n mstore(add(memPtr, 4), 32)\n mstore(add(memPtr, 36), 32)\n mstore(add(memPtr, 68), \"Ownable: caller is not the owner\")\n revert(memPtr, 100)\n }\n }\n function update_storage_value_offsett_address_to_address(slot, value)\n {\n sstore(slot, or(and(sload(slot), shl(160, 0xffffffffffffffffffffffff)), and(value, sub(shl(160, 1), 1))))\n }\n /// @ast-id 5749 @src 24:2270:2457 \"function _transferOwnership(address newOwner) internal virtual {...\"\n function fun_transferOwnership(var_newOwner)\n {\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n let _1 := sload(/** @src 24:2362:2368 \"_owner\" */ 0x07)\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n let _2 := sub(shl(160, 1), 1)\n let _3 := and(var_newOwner, _2)\n sstore(/** @src 24:2362:2368 \"_owner\" */ 0x07, /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ or(and(_1, shl(160, 0xffffffffffffffffffffffff)), _3))\n /// @src 24:2410:2450 \"OwnershipTransferred(oldOwner, newOwner)\"\n log3(/** @src -1:-1:-1 */ 0, 0, /** @src 24:2410:2450 \"OwnershipTransferred(oldOwner, newOwner)\" */ 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0, /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ and(_1, _2), /** @src 24:2410:2450 \"OwnershipTransferred(oldOwner, newOwner)\" */ _3)\n }\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n function mapping_index_access_mapping_address_uint256_of_address_7719(key) -> dataSlot\n {\n mstore(0, and(key, sub(shl(160, 1), 1)))\n mstore(0x20, /** @src 29:4623:4641 \"_operatorApprovals\" */ 0x05)\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n dataSlot := keccak256(0, 0x40)\n }\n function mapping_index_access_mapping_address_uint256_of_address_7734(key) -> dataSlot\n {\n mstore(0, and(key, sub(shl(160, 1), 1)))\n mstore(0x20, /** @src 29:9346:9355 \"_balances\" */ 0x03)\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n dataSlot := keccak256(0, 0x40)\n }\n function mapping_index_access_mapping_address_uint256_of_address(slot, key) -> dataSlot\n {\n mstore(0, and(key, sub(shl(160, 1), 1)))\n mstore(0x20, slot)\n dataSlot := keccak256(0, 0x40)\n }\n function mapping_index_access_mapping_uint256_address_of_uint256(key) -> dataSlot\n {\n mstore(0, key)\n mstore(0x20, /** @src 29:9374:9381 \"_owners\" */ 0x02)\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n dataSlot := keccak256(0, 0x40)\n }\n function mapping_index_access_mapping_uint256_address_of_uint256_7751(key) -> dataSlot\n {\n mstore(0, key)\n mstore(0x20, /** @src 32:680:690 \"_tokenURIs\" */ 0x06)\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n dataSlot := keccak256(0, 0x40)\n }\n /// @ast-id 6809 @src 29:2191:2426 \"function ownerOf(uint256 tokenId) public view virtual override returns (address) {...\"\n function fun_ownerOf(var_tokenId) -> var\n {\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n mstore(/** @src -1:-1:-1 */ 0, /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ var_tokenId)\n mstore(0x20, /** @src 29:2298:2305 \"_owners\" */ 0x02)\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n let cleaned := and(sload(keccak256(/** @src -1:-1:-1 */ 0, /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ 0x40)), sub(shl(160, 1), 1))\n if /** @src 29:2332:2351 \"owner != address(0)\" */ iszero(/** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ cleaned)\n {\n let memPtr := mload(0x40)\n mstore(memPtr, shl(229, 4594637))\n mstore(add(memPtr, 4), 0x20)\n mstore(add(memPtr, 36), 41)\n mstore(add(memPtr, 68), \"ERC721: owner query for nonexist\")\n mstore(add(memPtr, 100), \"ent token\")\n revert(memPtr, 132)\n }\n /// @src 29:2407:2419 \"return owner\"\n var := cleaned\n }\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function array_dataslot_string_storage(ptr) -> data\n {\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n }\n function copy_array_from_storage_to_memory_string(slot) -> memPtr\n {\n memPtr := mload(64)\n let ret := /** @src -1:-1:-1 */ 0\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n let slotValue := sload(slot)\n let length := extract_byte_array_length(slotValue)\n mstore(memPtr, length)\n let _1 := 0x20\n let _2 := 1\n switch and(slotValue, _2)\n case 0 {\n mstore(add(memPtr, _1), and(slotValue, not(255)))\n ret := add(add(memPtr, shl(5, iszero(iszero(length)))), _1)\n }\n case 1 {\n mstore(/** @src -1:-1:-1 */ 0, /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ slot)\n let dataPos := keccak256(/** @src -1:-1:-1 */ 0, /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ _1)\n let i := /** @src -1:-1:-1 */ 0\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n for { } lt(i, length) { i := add(i, _1) }\n {\n mstore(add(add(memPtr, i), _1), sload(dataPos))\n dataPos := add(dataPos, _2)\n }\n ret := add(add(memPtr, i), _1)\n }\n finalize_allocation(memPtr, sub(ret, memPtr))\n }\n function require_helper_stringliteral_6d83(condition)\n {\n if iszero(condition)\n {\n let memPtr := mload(64)\n mstore(memPtr, shl(229, 4594637))\n mstore(add(memPtr, 4), 32)\n mstore(add(memPtr, 36), 56)\n mstore(add(memPtr, 68), \"ERC721: approve caller is not ow\")\n mstore(add(memPtr, 100), \"ner nor approved for all\")\n revert(memPtr, 132)\n }\n }\n /// @ast-id 6944 @src 29:4000:4217 \"function getApproved(uint256 tokenId) public view virtual override returns (address) {...\"\n function fun_getApproved(var_tokenId) -> var\n {\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n if iszero(/** @src 29:4103:4119 \"_exists(tokenId)\" */ fun_exists(var_tokenId))\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n {\n let memPtr := mload(64)\n mstore(memPtr, shl(229, 4594637))\n mstore(add(memPtr, 4), 32)\n mstore(add(memPtr, 36), 44)\n mstore(add(memPtr, 68), \"ERC721: approved query for nonex\")\n mstore(add(memPtr, 100), \"istent token\")\n revert(memPtr, 132)\n }\n mstore(/** @src -1:-1:-1 */ 0, /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ var_tokenId)\n mstore(0x20, /** @src 29:4186:4201 \"_tokenApprovals\" */ 0x04)\n /// @src 29:4179:4210 \"return _tokenApprovals[tokenId]\"\n var := /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ and(sload(keccak256(/** @src -1:-1:-1 */ 0, /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ 0x40)), sub(shl(160, 1), 1))\n }\n function extract_from_storage_value_offsett_bool(slot_value) -> value\n {\n value := and(slot_value, 0xff)\n }\n function read_from_storage_split_offset_bool(slot) -> value\n {\n value := and(sload(slot), 0xff)\n }\n function require_helper_stringliteral_c868(condition)\n {\n if iszero(condition)\n {\n let memPtr := mload(64)\n mstore(memPtr, shl(229, 4594637))\n mstore(add(memPtr, 4), 32)\n mstore(add(memPtr, 36), 49)\n mstore(add(memPtr, 68), \"ERC721: transfer caller is not o\")\n mstore(add(memPtr, 100), \"wner nor approved\")\n revert(memPtr, 132)\n }\n }\n function allocate_memory_array_string() -> memPtr\n {\n let memPtr_1 := mload(64)\n finalize_allocation_11212(memPtr_1)\n memPtr := memPtr_1\n mstore(memPtr_1, /** @src -1:-1:-1 */ 0)\n }\n /// @ast-id 7055 @src 29:5368:5688 \"function safeTransferFrom(...\"\n function fun_safeTransferFrom(var_from, var_to, var_tokenId, var_data_mpos)\n {\n /// @src 29:5529:5632 \"require(_isApprovedOrOwner(_msgSender(), tokenId), \\\"ERC721: transfer caller is not owner nor approved\\\")\"\n require_helper_stringliteral_c868(/** @src 29:5537:5578 \"_isApprovedOrOwner(_msgSender(), tokenId)\" */ fun_isApprovedOrOwner(/** @src 35:719:729 \"msg.sender\" */ caller(), /** @src 29:5537:5578 \"_isApprovedOrOwner(_msgSender(), tokenId)\" */ var_tokenId))\n /// @src 29:6721:6728 \"tokenId\"\n fun_transfer(var_from, var_to, var_tokenId)\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n if iszero(/** @src 29:6747:6795 \"_checkOnERC721Received(from, to, tokenId, _data)\" */ fun_checkOnERC721Received(var_from, var_to, var_tokenId, var_data_mpos))\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n {\n let memPtr := mload(64)\n mstore(memPtr, shl(229, 4594637))\n revert(memPtr, sub(abi_encode_stringliteral_1e76(add(memPtr, 4)), memPtr))\n }\n }\n function abi_encode_stringliteral_1e76(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 50)\n mstore(add(headStart, 64), \"ERC721: transfer to non ERC721Re\")\n mstore(add(headStart, 96), \"ceiver implementer\")\n tail := add(headStart, 128)\n }\n /// @ast-id 7102 @src 29:7160:7285 \"function _exists(uint256 tokenId) internal view virtual returns (bool) {...\"\n function fun_exists(var_tokenId) -> var\n {\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n mstore(/** @src -1:-1:-1 */ 0, /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ var_tokenId)\n mstore(0x20, /** @src 29:7248:7255 \"_owners\" */ 0x02)\n /// @src 29:7241:7278 \"return _owners[tokenId] != address(0)\"\n var := /** @src 29:7248:7278 \"_owners[tokenId] != address(0)\" */ iszero(iszero(/** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ and(sload(keccak256(/** @src -1:-1:-1 */ 0, /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ 0x40)), sub(shl(160, 1), 1))))\n }\n /// @ast-id 7143 @src 29:7443:7787 \"function _isApprovedOrOwner(address spender, uint256 tokenId) internal view virtual returns (bool) {...\"\n function fun_isApprovedOrOwner(var_spender, var_tokenId) -> var\n {\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n if iszero(/** @src 29:7560:7576 \"_exists(tokenId)\" */ fun_exists(var_tokenId))\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n {\n let memPtr := mload(64)\n mstore(memPtr, shl(229, 4594637))\n mstore(add(memPtr, 4), 32)\n mstore(add(memPtr, 36), 44)\n mstore(add(memPtr, 68), \"ERC721: operator query for nonex\")\n mstore(add(memPtr, 100), \"istent token\")\n revert(memPtr, 132)\n }\n /// @src 29:7651:7674 \"ERC721.ownerOf(tokenId)\"\n let expr := fun_ownerOf(var_tokenId)\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n let _1 := sub(shl(160, 1), 1)\n /// @src 29:7692:7708 \"spender == owner\"\n let _2 := /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ and(/** @src 29:7692:7708 \"spender == owner\" */ var_spender, /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ _1)\n /// @src 29:7692:7744 \"spender == owner || isApprovedForAll(owner, spender)\"\n let expr_1 := /** @src 29:7692:7708 \"spender == owner\" */ eq(_2, /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ and(/** @src 29:7692:7708 \"spender == owner\" */ expr, /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ _1))\n /// @src 29:7692:7744 \"spender == owner || isApprovedForAll(owner, spender)\"\n if iszero(expr_1)\n {\n expr_1 := /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ and(sload(/** @src 29:4623:4658 \"_operatorApprovals[owner][operator]\" */ mapping_index_access_mapping_address_uint256_of_address(/** @src 29:4623:4648 \"_operatorApprovals[owner]\" */ mapping_index_access_mapping_address_uint256_of_address_7719(/** @src 29:7712:7744 \"isApprovedForAll(owner, spender)\" */ expr), var_spender)), /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ 0xff)\n }\n /// @src 29:7692:7779 \"spender == owner || isApprovedForAll(owner, spender) || getApproved(tokenId) == spender\"\n let expr_2 := expr_1\n if iszero(expr_1)\n {\n expr_2 := /** @src 29:7748:7779 \"getApproved(tokenId) == spender\" */ eq(/** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ and(/** @src 29:7748:7768 \"getApproved(tokenId)\" */ fun_getApproved(var_tokenId), /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ _1), /** @src 29:7748:7779 \"getApproved(tokenId) == spender\" */ _2)\n }\n /// @src 29:7684:7780 \"return (spender == owner || isApprovedForAll(owner, spender) || getApproved(tokenId) == spender)\"\n var := expr_2\n }\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n function require_helper_stringliteral_455f(condition)\n {\n if iszero(condition)\n {\n let memPtr := mload(64)\n mstore(memPtr, shl(229, 4594637))\n mstore(add(memPtr, 4), 32)\n mstore(add(memPtr, 36), 36)\n mstore(add(memPtr, 68), \"ERC721: transfer to the zero add\")\n mstore(add(memPtr, 100), \"ress\")\n revert(memPtr, 132)\n }\n }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function checked_sub_uint256(x) -> diff\n {\n diff := add(x, not(0))\n if gt(diff, x) { panic_error_0x11() }\n }\n function checked_add_uint256_7735(x) -> sum\n {\n sum := add(x, /** @src 36:1050:1051 \"1\" */ 0x01)\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n if gt(x, sum) { panic_error_0x11() }\n }\n function checked_add_uint256(y) -> sum\n {\n sum := add(/** @src 37:932:934 \"48\" */ 0x30, /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ y)\n if gt(/** @src 37:932:934 \"48\" */ 0x30, /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ sum) { panic_error_0x11() }\n }\n /// @ast-id 7388 @src 29:10453:11058 \"function _transfer(...\"\n function fun_transfer(var_from, var_to, var_tokenId)\n {\n /// @src 29:10580:10603 \"ERC721.ownerOf(tokenId)\"\n let expr := fun_ownerOf(var_tokenId)\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n let _1 := sub(shl(160, 1), 1)\n let _2 := and(/** @src 29:10580:10611 \"ERC721.ownerOf(tokenId) == from\" */ var_from, /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ _1)\n if iszero(/** @src 29:10580:10611 \"ERC721.ownerOf(tokenId) == from\" */ eq(/** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ and(/** @src 29:10580:10611 \"ERC721.ownerOf(tokenId) == from\" */ expr, /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ _1), _2))\n {\n let memPtr := mload(64)\n mstore(memPtr, shl(229, 4594637))\n mstore(add(memPtr, 4), 32)\n mstore(add(memPtr, 36), 37)\n mstore(add(memPtr, 68), \"ERC721: transfer from incorrect \")\n mstore(add(memPtr, 100), \"owner\")\n revert(memPtr, 132)\n }\n let _3 := and(/** @src 29:10671:10687 \"to != address(0)\" */ var_to, /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ _1)\n /// @src 29:10663:10728 \"require(to != address(0), \\\"ERC721: transfer to the zero address\\\")\"\n require_helper_stringliteral_455f(/** @src 29:10671:10687 \"to != address(0)\" */ iszero(iszero(/** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ _3)))\n /// @src 29:10861:10868 \"tokenId\"\n fun_approve_7745(var_tokenId)\n /// @src 29:10880:10895 \"_balances[from]\"\n let _4 := mapping_index_access_mapping_address_uint256_of_address_7734(var_from)\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n sstore(_4, /** @src 29:10880:10900 \"_balances[from] -= 1\" */ checked_sub_uint256(/** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ sload(/** @src 29:10880:10900 \"_balances[from] -= 1\" */ _4)))\n /// @src 29:10910:10923 \"_balances[to]\"\n let _5 := mapping_index_access_mapping_address_uint256_of_address_7734(var_to)\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n sstore(_5, /** @src 29:10910:10928 \"_balances[to] += 1\" */ checked_add_uint256_7735(/** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ sload(/** @src 29:10910:10928 \"_balances[to] += 1\" */ _5)))\n /// @src 29:10938:10959 \"_owners[tokenId] = to\"\n update_storage_value_offsett_address_to_address(/** @src 29:10938:10954 \"_owners[tokenId]\" */ mapping_index_access_mapping_uint256_address_of_uint256(var_tokenId), /** @src 29:10938:10959 \"_owners[tokenId] = to\" */ var_to)\n /// @src 29:10975:11002 \"Transfer(from, to, tokenId)\"\n log4(/** @src 29:10685:10686 \"0\" */ 0x00, 0x00, /** @src 29:10975:11002 \"Transfer(from, to, tokenId)\" */ 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef, _2, _3, var_tokenId)\n }\n /// @ast-id 7412 @src 29:11169:11340 \"function _approve(address to, uint256 tokenId) internal virtual {...\"\n function fun_approve_7745(var_tokenId)\n {\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n mstore(0, var_tokenId)\n mstore(0x20, /** @src 29:11243:11258 \"_tokenApprovals\" */ 0x04)\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n let _1 := keccak256(0, 0x40)\n sstore(_1, and(sload(_1), shl(160, 0xffffffffffffffffffffffff)))\n /// @src 29:11287:11333 \"Approval(ERC721.ownerOf(tokenId), to, tokenId)\"\n log4(/** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ 0, 0, /** @src 29:11287:11333 \"Approval(ERC721.ownerOf(tokenId), to, tokenId)\" */ 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925, /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ and(/** @src 29:11296:11319 \"ERC721.ownerOf(tokenId)\" */ fun_ownerOf(var_tokenId), /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ sub(shl(160, 1), 1)), 0, /** @src 29:11287:11333 \"Approval(ERC721.ownerOf(tokenId), to, tokenId)\" */ var_tokenId)\n }\n /// @ast-id 7412 @src 29:11169:11340 \"function _approve(address to, uint256 tokenId) internal virtual {...\"\n function fun_approve(var_to, var_tokenId)\n {\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n mstore(/** @src -1:-1:-1 */ 0, /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ var_tokenId)\n mstore(0x20, /** @src 29:11243:11258 \"_tokenApprovals\" */ 0x04)\n /// @src 29:11243:11272 \"_tokenApprovals[tokenId] = to\"\n update_storage_value_offsett_address_to_address(/** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ keccak256(/** @src -1:-1:-1 */ 0, /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ 0x40), /** @src 29:11243:11272 \"_tokenApprovals[tokenId] = to\" */ var_to)\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n let _1 := sub(shl(160, 1), 1)\n let _2 := and(/** @src 29:11296:11319 \"ERC721.ownerOf(tokenId)\" */ fun_ownerOf(var_tokenId), /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ _1)\n /// @src 29:11287:11333 \"Approval(ERC721.ownerOf(tokenId), to, tokenId)\"\n log4(/** @src -1:-1:-1 */ 0, 0, /** @src 29:11287:11333 \"Approval(ERC721.ownerOf(tokenId), to, tokenId)\" */ 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925, _2, /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ and(/** @src 29:11287:11333 \"Approval(ERC721.ownerOf(tokenId), to, tokenId)\" */ var_to, /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ _1), /** @src 29:11287:11333 \"Approval(ERC721.ownerOf(tokenId), to, tokenId)\" */ var_tokenId)\n }\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n function update_storage_value_offsett_bool_to_bool(slot, value)\n {\n let value_1 := and(sload(slot), not(255))\n sstore(slot, or(value_1, and(iszero(iszero(value)), 255)))\n }\n function abi_decode_bytes4_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n validator_revert_bytes4(value)\n value0 := value\n }\n function abi_encode_address_address_uint256_bytes(headStart, value0, value1, value2, value3) -> tail\n {\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), 128)\n tail := abi_encode_string_to_string(value3, add(headStart, 128))\n }\n function extract_returndata() -> data\n {\n switch returndatasize()\n case 0 { data := 96 }\n default {\n let _1 := returndatasize()\n let _2 := array_allocation_size_bytes(_1)\n let memPtr := mload(64)\n finalize_allocation(memPtr, _2)\n mstore(memPtr, _1)\n data := memPtr\n returndatacopy(add(memPtr, 0x20), /** @src -1:-1:-1 */ 0, /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ returndatasize())\n }\n }\n /// @ast-id 7506 @src 29:12335:13113 \"function _checkOnERC721Received(...\"\n function fun_checkOnERC721Received(var_from, var_to, var_tokenId, var_data_7453_mpos) -> var\n {\n /// @src 29:12485:12489 \"bool\"\n var := /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ 0\n /// @src 29:12501:13107 \"if (to.isContract()) {...\"\n switch /** @src 34:1465:1488 \"account.code.length > 0\" */ iszero(iszero(/** @src 34:1465:1484 \"account.code.length\" */ extcodesize(/** @src 29:12505:12520 \"to.isContract()\" */ var_to)))\n case /** @src 29:12501:13107 \"if (to.isContract()) {...\" */ 0 {\n /// @src 29:13085:13096 \"return true\"\n var := /** @src 29:13092:13096 \"true\" */ 0x01\n /// @src 29:13085:13096 \"return true\"\n leave\n }\n default /// @src 29:12501:13107 \"if (to.isContract()) {...\"\n {\n /// @src 29:12540:12612 \"IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, _data)\"\n let _1 := /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ mload(64)\n let _2 := shl(225, 0x0a85bd01)\n /// @src 29:12540:12612 \"IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, _data)\"\n mstore(_1, /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ _2)\n /// @src 29:12540:12612 \"IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, _data)\"\n let trySuccessCondition := call(gas(), /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ and(/** @src 29:12540:12559 \"IERC721Receiver(to)\" */ var_to, /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ sub(shl(160, 1), 1)), 0, /** @src 29:12540:12612 \"IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, _data)\" */ _1, sub(abi_encode_address_address_uint256_bytes(add(_1, 4), /** @src 35:719:729 \"msg.sender\" */ caller(), /** @src 29:12540:12612 \"IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, _data)\" */ var_from, var_tokenId, var_data_7453_mpos), _1), _1, 32)\n let expr := /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ 0\n /// @src 29:12540:12612 \"IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, _data)\"\n if trySuccessCondition\n {\n let _3 := 32\n if gt(_3, returndatasize()) { _3 := returndatasize() }\n finalize_allocation(_1, _3)\n expr := abi_decode_bytes4_fromMemory(_1, add(_1, _3))\n }\n /// @src 29:12536:13055 \"try IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, _data) returns (bytes4 retval) {...\"\n switch iszero(trySuccessCondition)\n case 0 {\n /// @src 29:12655:12713 \"return retval == IERC721Receiver.onERC721Received.selector\"\n var := /** @src 29:12662:12713 \"retval == IERC721Receiver.onERC721Received.selector\" */ eq(/** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ and(/** @src 29:12662:12713 \"retval == IERC721Receiver.onERC721Received.selector\" */ expr, /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ shl(224, 0xffffffff)), _2)\n /// @src 29:12655:12713 \"return retval == IERC721Receiver.onERC721Received.selector\"\n leave\n }\n default /// @src 29:12536:13055 \"try IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, _data) returns (bytes4 retval) {...\"\n {\n /// @src 29:12729:13055 \"catch (bytes memory reason) {...\"\n let var_reason_mpos := extract_returndata()\n /// @src 29:12779:12792 \"reason.length\"\n let expr_1 := /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ mload(/** @src 29:12779:12792 \"reason.length\" */ var_reason_mpos)\n /// @src 29:12775:13041 \"if (reason.length == 0) {...\"\n switch /** @src 29:12779:12797 \"reason.length == 0\" */ iszero(expr_1)\n case /** @src 29:12775:13041 \"if (reason.length == 0) {...\" */ 0 {\n /// @src 29:12928:13023 \"assembly {...\"\n revert(add(/** @src 29:12540:12612 \"IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, _data)\" */ 32, /** @src 29:12928:13023 \"assembly {...\" */ var_reason_mpos), expr_1)\n }\n default /// @src 29:12775:13041 \"if (reason.length == 0) {...\"\n {\n /// @src 29:12821:12881 \"revert(\\\"ERC721: transfer to non ERC721Receiver implementer\\\")\"\n let _4 := /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ mload(64)\n /// @src 29:12821:12881 \"revert(\\\"ERC721: transfer to non ERC721Receiver implementer\\\")\"\n mstore(_4, /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ shl(229, 4594637))\n /// @src 29:12821:12881 \"revert(\\\"ERC721: transfer to non ERC721Receiver implementer\\\")\"\n revert(_4, sub(abi_encode_stringliteral_1e76(add(_4, /** @src 29:12540:12612 \"IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, _data)\" */ 4)), /** @src 29:12821:12881 \"revert(\\\"ERC721: transfer to non ERC721Receiver implementer\\\")\" */ _4))\n }\n }\n }\n }\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n function abi_encode_string_memory_ptr(value, pos) -> end\n {\n let length := mload(value)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, length)\n }\n /// @ast-id 7738 @src 32:467:1130 \"function tokenURI(uint256 tokenId) public view virtual override returns (string memory) {...\"\n function fun_tokenURI(var_tokenId) -> var_7683_mpos\n {\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n if iszero(/** @src 32:573:589 \"_exists(tokenId)\" */ fun_exists(var_tokenId))\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n {\n let memPtr := mload(64)\n mstore(memPtr, shl(229, 4594637))\n mstore(add(memPtr, 4), 32)\n mstore(add(memPtr, 36), 49)\n mstore(add(memPtr, 68), \"ERC721URIStorage: URI query for \")\n mstore(add(memPtr, 100), \"nonexistent token\")\n revert(memPtr, 132)\n }\n let converted := copy_array_from_storage_to_memory_string(/** @src 32:680:699 \"_tokenURIs[tokenId]\" */ mapping_index_access_mapping_uint256_address_of_uint256_7751(var_tokenId))\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n let converted_1 := allocate_memory_array_string()\n /// @src 32:809:879 \"if (bytes(base).length == 0) {...\"\n if /** @src 32:813:836 \"bytes(base).length == 0\" */ iszero(/** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ mload(/** @src 32:813:824 \"bytes(base)\" */ converted_1))\n /// @src 32:809:879 \"if (bytes(base).length == 0) {...\"\n {\n /// @src 32:852:868 \"return _tokenURI\"\n var_7683_mpos := converted\n leave\n }\n /// @src 32:977:1083 \"if (bytes(_tokenURI).length > 0) {...\"\n if /** @src 32:981:1008 \"bytes(_tokenURI).length > 0\" */ iszero(iszero(/** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ mload(/** @src 32:981:997 \"bytes(_tokenURI)\" */ converted)))\n /// @src 32:977:1083 \"if (bytes(_tokenURI).length > 0) {...\"\n {\n /// @src 32:1038:1071 \"abi.encodePacked(base, _tokenURI)\"\n let expr_7727_mpos := /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ mload(64)\n /// @src 32:1038:1071 \"abi.encodePacked(base, _tokenURI)\"\n let _1 := sub(/** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ abi_encode_string_memory_ptr(/** @src 32:1038:1071 \"abi.encodePacked(base, _tokenURI)\" */ converted, /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ abi_encode_string_memory_ptr(/** @src 32:1038:1071 \"abi.encodePacked(base, _tokenURI)\" */ converted_1, add(expr_7727_mpos, 0x20))), expr_7727_mpos)\n mstore(expr_7727_mpos, add(_1, /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ not(31)))\n /// @src 32:1038:1071 \"abi.encodePacked(base, _tokenURI)\"\n finalize_allocation(expr_7727_mpos, _1)\n /// @src 32:1024:1072 \"return string(abi.encodePacked(base, _tokenURI))\"\n var_7683_mpos := expr_7727_mpos\n leave\n }\n /// @src 32:1093:1123 \"return super.tokenURI(tokenId)\"\n var_7683_mpos := /** @src 32:1100:1123 \"super.tokenURI(tokenId)\" */ fun_tokenURI_6871(var_tokenId)\n }\n /// @ast-id 6871 @src 29:2818:3147 \"function tokenURI(uint256 tokenId) public view virtual override returns (string memory) {...\"\n function fun_tokenURI_6871(var_tokenId) -> var__mpos\n {\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n if iszero(/** @src 29:2924:2940 \"_exists(tokenId)\" */ fun_exists(var_tokenId))\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n {\n let memPtr := mload(64)\n mstore(memPtr, shl(229, 4594637))\n mstore(add(memPtr, 4), 32)\n mstore(add(memPtr, 36), 47)\n mstore(add(memPtr, 68), \"ERC721Metadata: URI query for no\")\n mstore(add(memPtr, 100), \"nexistent token\")\n revert(memPtr, 132)\n }\n let converted := allocate_memory_array_string()\n /// @src 29:3054:3079 \"bytes(baseURI).length > 0\"\n let expr := iszero(iszero(/** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ mload(/** @src 29:3054:3068 \"bytes(baseURI)\" */ converted)))\n /// @src 29:3054:3140 \"bytes(baseURI).length > 0 ? string(abi.encodePacked(baseURI, tokenId.toString())) : \\\"\\\"\"\n let expr_6868_mpos := /** @src -1:-1:-1 */ 0\n /// @src 29:3054:3140 \"bytes(baseURI).length > 0 ? string(abi.encodePacked(baseURI, tokenId.toString())) : \\\"\\\"\"\n switch expr\n case 0 {\n expr_6868_mpos := /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ allocate_memory_array_string()\n }\n default /// @src 29:3054:3140 \"bytes(baseURI).length > 0 ? string(abi.encodePacked(baseURI, tokenId.toString())) : \\\"\\\"\"\n {\n /// @src 29:3115:3133 \"tokenId.toString()\"\n let expr_6864_mpos := fun_toString(var_tokenId)\n /// @src 29:3089:3134 \"abi.encodePacked(baseURI, tokenId.toString())\"\n let expr_mpos := /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ mload(64)\n /// @src 29:3089:3134 \"abi.encodePacked(baseURI, tokenId.toString())\"\n let _1 := sub(/** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ abi_encode_string_memory_ptr(/** @src 29:3089:3134 \"abi.encodePacked(baseURI, tokenId.toString())\" */ expr_6864_mpos, /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ abi_encode_string_memory_ptr(/** @src 29:3089:3134 \"abi.encodePacked(baseURI, tokenId.toString())\" */ converted, add(expr_mpos, 0x20))), expr_mpos)\n mstore(expr_mpos, add(_1, /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ not(31)))\n /// @src 29:3089:3134 \"abi.encodePacked(baseURI, tokenId.toString())\"\n finalize_allocation(expr_mpos, _1)\n /// @src 29:3054:3140 \"bytes(baseURI).length > 0 ? string(abi.encodePacked(baseURI, tokenId.toString())) : \\\"\\\"\"\n expr_6868_mpos := expr_mpos\n }\n /// @src 29:3047:3140 \"return bytes(baseURI).length > 0 ? string(abi.encodePacked(baseURI, tokenId.toString())) : \\\"\\\"\"\n var__mpos := expr_6868_mpos\n }\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n function increment_uint256(value) -> ret\n {\n if eq(value, not(0)) { panic_error_0x11() }\n ret := add(value, 1)\n }\n function allocate_and_zero_memory_array_bytes(length) -> memPtr\n {\n let _1 := array_allocation_size_bytes(length)\n let memPtr_1 := mload(64)\n finalize_allocation(memPtr_1, _1)\n mstore(memPtr_1, length)\n memPtr := memPtr_1\n calldatacopy(add(memPtr_1, 32), calldatasize(), add(array_allocation_size_bytes(length), not(31)))\n }\n function convert_uint8_to_bytes1(value) -> converted\n {\n converted := and(shl(248, value), shl(248, 255))\n }\n function memory_array_index_access_bytes(baseRef, index) -> addr\n {\n if iszero(lt(index, mload(baseRef)))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n addr := add(add(baseRef, index), 32)\n }\n /// @ast-id 8294 @src 37:328:1031 \"function toString(uint256 value) internal pure returns (string memory) {...\"\n function fun_toString(var_value) -> var_mpos\n {\n /// @src 37:597:648 \"if (value == 0) {...\"\n if /** @src 37:601:611 \"value == 0\" */ iszero(var_value)\n /// @src 37:597:648 \"if (value == 0) {...\"\n {\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n let memPtr := mload(64)\n finalize_allocation_11216(memPtr)\n mstore(memPtr, 1)\n mstore(add(memPtr, 32), \"0\")\n /// @src 37:627:637 \"return \\\"0\\\"\"\n var_mpos := memPtr\n leave\n }\n /// @src 37:657:677 \"uint256 temp = value\"\n let var_temp := var_value\n /// @src 37:687:701 \"uint256 digits\"\n let var_digits := /** @src 37:610:611 \"0\" */ 0x00\n /// @src 37:687:701 \"uint256 digits\"\n let var_digits_1 := /** @src 37:610:611 \"0\" */ var_digits\n /// @src 37:711:786 \"while (temp != 0) {...\"\n for { }\n /** @src 37:718:727 \"temp != 0\" */ var_temp\n /// @src 37:711:786 \"while (temp != 0) {...\"\n { }\n {\n /// @src 37:743:751 \"digits++\"\n var_digits_1 := increment_uint256(var_digits_1)\n /// @src 37:765:775 \"temp /= 10\"\n var_temp := /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ div(/** @src 37:765:775 \"temp /= 10\" */ var_temp, /** @src 37:773:775 \"10\" */ 0x0a)\n }\n /// @src 37:795:834 \"bytes memory buffer = new bytes(digits)\"\n let var_buffer_mpos := /** @src 37:817:834 \"new bytes(digits)\" */ allocate_and_zero_memory_array_bytes(var_digits_1)\n /// @src 37:844:994 \"while (value != 0) {...\"\n for { }\n /** @src 37:851:861 \"value != 0\" */ var_value\n /// @src 37:844:994 \"while (value != 0) {...\"\n { }\n {\n /// @src 37:877:888 \"digits -= 1\"\n let expr := checked_sub_uint256(var_digits_1)\n let var_digits_2 := expr\n var_digits_1 := expr\n /// @src 37:773:775 \"10\"\n let _1 := 0x0a\n /// @src 37:902:958 \"buffer[digits] = bytes1(uint8(48 + uint256(value % 10)))\"\n mstore8(memory_array_index_access_bytes(var_buffer_mpos, var_digits_2), byte(/** @src 37:610:611 \"0\" */ var_digits, /** @src 37:919:958 \"bytes1(uint8(48 + uint256(value % 10)))\" */ convert_uint8_to_bytes1(/** @src 37:926:957 \"uint8(48 + uint256(value % 10))\" */ extract_from_storage_value_offsett_bool(/** @src 37:932:956 \"48 + uint256(value % 10)\" */ checked_add_uint256(/** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ mod(/** @src 37:945:955 \"value % 10\" */ var_value, /** @src 37:773:775 \"10\" */ _1))))))\n /// @src 37:972:983 \"value /= 10\"\n var_value := /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ div(/** @src 37:972:983 \"value /= 10\" */ var_value, /** @src 37:773:775 \"10\" */ _1)\n }\n /// @src 37:1003:1024 \"return string(buffer)\"\n var_mpos := var_buffer_mpos\n }\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n function require_helper_stringliteral_2a63(condition)\n {\n if iszero(condition)\n {\n let memPtr := mload(64)\n mstore(memPtr, shl(229, 4594637))\n mstore(add(memPtr, 4), 32)\n mstore(add(memPtr, 36), 28)\n mstore(add(memPtr, 68), \"ERC721: token already minted\")\n revert(memPtr, 100)\n }\n }\n function clean_up_bytearray_end_slots_string_storage(array, len, startIndex)\n {\n if gt(len, 31)\n {\n /// @src -1:-1:-1\n let _1 := 0\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n mstore(/** @src -1:-1:-1 */ _1, /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ array)\n let data := keccak256(/** @src -1:-1:-1 */ _1, /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ 0x20)\n let deleteStart := add(data, shr(5, add(startIndex, 31)))\n if lt(startIndex, 0x20) { deleteStart := data }\n let _2 := add(data, shr(5, add(len, 31)))\n let start := deleteStart\n for { } lt(start, _2) { start := add(start, 1) }\n {\n sstore(start, /** @src -1:-1:-1 */ _1)\n }\n }\n }\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n {\n used := or(and(data, not(shr(shl(3, len), not(0)))), shl(1, len))\n }\n /// @ast-id 7760 @src 32:1277:1491 \"function _setTokenURI(uint256 tokenId, string memory _tokenURI) internal virtual {...\"\n function fun_setTokenURI(var_tokenId, var_tokenURI_mpos)\n {\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n if iszero(/** @src 32:1376:1392 \"_exists(tokenId)\" */ fun_exists(var_tokenId))\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n {\n let memPtr := mload(64)\n mstore(memPtr, shl(229, 4594637))\n mstore(add(memPtr, 4), 32)\n mstore(add(memPtr, 36), 46)\n mstore(add(memPtr, 68), \"ERC721URIStorage: URI set of non\")\n mstore(add(memPtr, 100), \"existent token\")\n revert(memPtr, 132)\n }\n mstore(/** @src -1:-1:-1 */ 0, /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ var_tokenId)\n let _1 := 0x20\n mstore(_1, /** @src 32:1453:1463 \"_tokenURIs\" */ 0x06)\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n let dataSlot := keccak256(/** @src -1:-1:-1 */ 0, /** @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\" */ 0x40)\n let newLen := mload(var_tokenURI_mpos)\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n clean_up_bytearray_end_slots_string_storage(dataSlot, extract_byte_array_length(sload(dataSlot)), newLen)\n let srcOffset := /** @src -1:-1:-1 */ 0\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n srcOffset := _1\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(31))\n let dstPtr := array_dataslot_string_storage(dataSlot)\n let i := /** @src -1:-1:-1 */ 0\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n for { } lt(i, loopEnd) { i := add(i, _1) }\n {\n sstore(dstPtr, mload(add(var_tokenURI_mpos, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, _1)\n }\n if lt(loopEnd, newLen)\n {\n let lastValue := mload(add(var_tokenURI_mpos, srcOffset))\n sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), not(0)))))\n }\n sstore(dataSlot, add(shl(1, newLen), 1))\n }\n default {\n let value := /** @src -1:-1:-1 */ 0\n /// @src 47:244:683 \"contract MyNFT is ERC721URIStorage, Ownable {...\"\n if newLen\n {\n value := mload(add(var_tokenURI_mpos, srcOffset))\n }\n sstore(dataSlot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n }\n data \".metadata\" hex\"a26469706673582212209d70e4abf028cab3a64325ad2648d8f06205513affd8e16a5501ada03fd2c65c64736f6c63430008120033\"\n }\n}\n","hash":"01000397e29e7011c079951153d275e13120ce0762197109a49a1d615401d369","factoryDependencies":{}}},"contracts/MyPaymaster.sol":{"MyPaymaster":{"abi":[{"inputs":[{"internalType":"address","name":"_erc20","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"allowedToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"_context","type":"bytes"},{"components":[{"internalType":"uint256","name":"txType","type":"uint256"},{"internalType":"uint256","name":"from","type":"uint256"},{"internalType":"uint256","name":"to","type":"uint256"},{"internalType":"uint256","name":"gasLimit","type":"uint256"},{"internalType":"uint256","name":"gasPerPubdataByteLimit","type":"uint256"},{"internalType":"uint256","name":"maxFeePerGas","type":"uint256"},{"internalType":"uint256","name":"maxPriorityFeePerGas","type":"uint256"},{"internalType":"uint256","name":"paymaster","type":"uint256"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256[4]","name":"reserved","type":"uint256[4]"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"bytes32[]","name":"factoryDeps","type":"bytes32[]"},{"internalType":"bytes","name":"paymasterInput","type":"bytes"},{"internalType":"bytes","name":"reservedDynamic","type":"bytes"}],"internalType":"struct Transaction","name":"_transaction","type":"tuple"},{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"enum ExecutionResult","name":"_txResult","type":"uint8"},{"internalType":"uint256","name":"_maxRefundedGas","type":"uint256"}],"name":"postTransaction","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"bytes32","name":"","type":"bytes32"},{"components":[{"internalType":"uint256","name":"txType","type":"uint256"},{"internalType":"uint256","name":"from","type":"uint256"},{"internalType":"uint256","name":"to","type":"uint256"},{"internalType":"uint256","name":"gasLimit","type":"uint256"},{"internalType":"uint256","name":"gasPerPubdataByteLimit","type":"uint256"},{"internalType":"uint256","name":"maxFeePerGas","type":"uint256"},{"internalType":"uint256","name":"maxPriorityFeePerGas","type":"uint256"},{"internalType":"uint256","name":"paymaster","type":"uint256"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256[4]","name":"reserved","type":"uint256[4]"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"bytes32[]","name":"factoryDeps","type":"bytes32[]"},{"internalType":"bytes","name":"paymasterInput","type":"bytes"},{"internalType":"bytes","name":"reservedDynamic","type":"bytes"}],"internalType":"struct Transaction","name":"_transaction","type":"tuple"}],"name":"validateAndPayForPaymasterTransaction","outputs":[{"internalType":"bytes4","name":"magic","type":"bytes4"},{"internalType":"bytes","name":"context","type":"bytes"}],"stateMutability":"payable","type":"function"},{"stateMutability":"payable","type":"receive"}],"metadata":{"optimizer_settings":"M3B3","solc_metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_erc20\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"allowedToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_context\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"txType\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"from\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"to\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasPerPubdataByteLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPriorityFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymaster\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256[4]\",\"name\":\"reserved\",\"type\":\"uint256[4]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"factoryDeps\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes\",\"name\":\"paymasterInput\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"reservedDynamic\",\"type\":\"bytes\"}],\"internalType\":\"struct Transaction\",\"name\":\"_transaction\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"enum ExecutionResult\",\"name\":\"_txResult\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"_maxRefundedGas\",\"type\":\"uint256\"}],\"name\":\"postTransaction\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"txType\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"from\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"to\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasPerPubdataByteLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPriorityFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymaster\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256[4]\",\"name\":\"reserved\",\"type\":\"uint256[4]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"factoryDeps\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes\",\"name\":\"paymasterInput\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"reservedDynamic\",\"type\":\"bytes\"}],\"internalType\":\"struct Transaction\",\"name\":\"_transaction\",\"type\":\"tuple\"}],\"name\":\"validateAndPayForPaymasterTransaction\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"magic\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"context\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/MyPaymaster.sol\":\"MyPaymaster\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@matterlabs/zksync-contracts/l2/system-contracts/BootloaderUtilities.sol\":{\"keccak256\":\"0xc41e925966405a28c4eb0e2469a29eadd62754859fe61166fda0ceac5610c8f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6781f926f24839f6d0f5bf5927de8a7ddcf36d7b5a047faa53d530022ecf5df\",\"dweb:/ipfs/QmRtScb3y57Ygy9xctaa448ZkRA7ouaJfxhBwdKLRN6a3z\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/Constants.sol\":{\"keccak256\":\"0x29a24f62d17d95b1f8d2d79505d056e1e99d64c1d5725a4b46fbe91a965b0c60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b56691f9a23d9b0f17ea5c6e1dcce28b780a461c34eb9340f74621dad25c5468\",\"dweb:/ipfs/QmXVJTkTBWfuiGhwvxP9Ldv7oDmAd66ruLhoQemE15F6KS\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IAccountCodeStorage.sol\":{\"keccak256\":\"0xc75d1bd8895832daeb7d59734cf0afcc47628c2c343b95cc5359d6975dc3ccaa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5be4ef8c557cd5216127b14b53b881a410707387fe9b7522a95e83f3b56b0368\",\"dweb:/ipfs/QmeAnw5BjgR4Vrz5eBkWdEMajevVaDyMbSXRPALfyHYnbe\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBootloaderUtilities.sol\":{\"keccak256\":\"0xeea7b6ea35e94ae1ee84697df2053ca660e750c90e8d9e340a515200e5de52f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9e55744cabfc9ae67d43b136c9f1be3e347dd6c9d9d2777bb699fed9bc630c5\",\"dweb:/ipfs/QmQcACmf7PfijgFjLbcNi8SRZh1bUvN4abpWUGWCRnszpS\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBytecodeCompressor.sol\":{\"keccak256\":\"0xfbe695ca62333019f21a12a1636736a1e3ffaba62059d35fe24a7694cf99a1ac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e6d6bece56e8be5391e77af4b4a1eaf18ceefb500b0fd15123878ecee1ec3f8d\",\"dweb:/ipfs/QmNfy59uBQAsyfG2Vfdy38M6TYj3nLnkbb1P2euQqQEteZ\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IContractDeployer.sol\":{\"keccak256\":\"0xcd0cb526a3c1b6c8689ca2b4ff4da2f8cb2b134dce1b983b2368e4b8ff585ad3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e853769ee9769d16a4398a4351e82214801592b711c3cc6789de36e4b84cfa71\",\"dweb:/ipfs/QmeXAc1mRQVhhaXjj15XWH2YS4tjpYqMwgdQ8xLAozcdmU\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IEthToken.sol\":{\"keccak256\":\"0x12d57fed82ecc9d955e592e65d36c0256da4f8f3ce46c59e9828664bb623be2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e95d99c4202b2fbe10706e358e09135cb9ec43563db7e72fe81913f2798f4b5\",\"dweb:/ipfs/QmbPcrDDHSQsKKXq5itMttMQnRXpYpGYMLYp9BDXoVwa7k\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IImmutableSimulator.sol\":{\"keccak256\":\"0xe71d8c877f89fb8f2e3cc83d31dea978de99c35d07354052388abb6af9e9dbcc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://47b7c0601463321723b2623873fd91365a451f7d2b26216ea48d0503c38f91e8\",\"dweb:/ipfs/QmbFjjH95ekfzeR94z3AEsak1dfmZ5R8aHsbDpGwBzjSzD\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IKnownCodesStorage.sol\":{\"keccak256\":\"0xbc460f4e40c05b0b958d94bdcc23cc64f1efe887ef722c7bd4afc66583d92846\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6956ef37fb2a64c065251fdd3dc3b8ab9abb56a23c64b4ed7a3f32dce3af2472\",\"dweb:/ipfs/QmcVUbnZ6AXbmWm8CbLWM6p2pGnpy5VmgsEjQrHqWheBM5\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IL1Messenger.sol\":{\"keccak256\":\"0x13b3d1e55c9a1752885d7101a8e6886ff04c70259dff6bb672f79ce0c63952d9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35600fe3cc1ccd2029b47e2740bfd3f100a5896acd13e9eeafd583727abc4922\",\"dweb:/ipfs/QmNWWpGGpZ9r46Cw8hNVJG3vobFwk6hHhsWjRiJUo4xB4h\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/INonceHolder.sol\":{\"keccak256\":\"0x4895f2828cac4b6c3891c59214d70d3cd31cee4324a6e70c87caf90a234776fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0b7cfe1caf4c91b44111eb2ff9ffd693ad4ec3f4f09ffd6a8c65645de1c4d23e\",\"dweb:/ipfs/QmNnzanCJq3JR6JYhGhZzUAa5VQznuBN6A8bg5nNwq9wSU\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymaster.sol\":{\"keccak256\":\"0xeac1f3eecbd9a12dd729a1813d9aabdaf6501fab82c4e11bdcf4380b20e36352\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b9796ea25da7821f9438c4c2199edeeb85040c04b146b58995a157e2eabed90a\",\"dweb:/ipfs/QmSM87mwrEDxC13mS8k9ZWREFibk2fbQd5obvt5PXPWToR\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymasterFlow.sol\":{\"keccak256\":\"0xbc73dbaf894a3fa41b52195227c73a855fdfcee713fa5ab3fba0773abe61a017\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e3fc1a2b1d3e2662a378ff3499457097e9ee1918faa830e741a38102ffa534f7\",\"dweb:/ipfs/QmatFh5y3B4XFnMZWjDuyUNCZAzh1dYF2uqEJvebxmzu6R\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/ISystemContext.sol\":{\"keccak256\":\"0xeb17460013b7bd75015f14c7aa296f7613dd331ffb2dccb4e725e708aa942ffb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7b4a3d7369d59deda677a7f2997151a146084d4d8487733ddec97924455c17d7\",\"dweb:/ipfs/QmQnCanKcV8UnBWHAV5BzDxnFd3sAQPQZbRAC44JCsgN4v\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/EfficientCall.sol\":{\"keccak256\":\"0x60a1780ada0ebad3ca24743399fb56c60bed23e1218371ec56855d214d152ea6\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2c7b490a8218a2d505b25d87c3aeb40e8867ed424e6eceb7ceb7bc557a32301a\",\"dweb:/ipfs/QmWRiRc11dHg2Vjbstxp1QCLqP23FsgtJS6R1jSfWiaBrC\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/RLPEncoder.sol\":{\"keccak256\":\"0x90e89a3db5d1d31cb60835b554c751c995339c7f7204314bc546683cad733439\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://234b0b0f64b3c984689f3c8d55ab2bf2e2a51c926aa8708aa72e365e884a4c28\",\"dweb:/ipfs/QmR2FLvaUCyBS6HnhZt5cp5nmjdefjdSVSymuYVG9qToBF\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractHelper.sol\":{\"keccak256\":\"0x5eb2c2a098cf0c4cd39be7842682a20ef575dccbb5d10713f98313788212411a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e1c1a52053dcf3b347a7161655f4e8a396be0c663d0d30b60953cf4e81e68848\",\"dweb:/ipfs/Qmat7quKhUTrjLDyPcAqMdpg4KP2jQhbuoCTGq7YENXHZ4\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractsCaller.sol\":{\"keccak256\":\"0x5033a1008942cb59413e47ea876f99bc5cd2b4b72308db003579ee1add07571f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11866ee670865a59e96ee25971d32abbe6a012a65ee0eca8a37aa11fe463e81f\",\"dweb:/ipfs/Qme3fnqFJgtnpRHf21Xj8qrE46P3nKwMZTywJytRbMjBZg\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/TransactionHelper.sol\":{\"keccak256\":\"0xb8ad21ccd87317971347a7a07388a1647944f62de02dbf2594632497e3dec330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://56369664918121fd8276ef09e35e1c5d64b8616ee38ad8d88fd45fbb0ddf381d\",\"dweb:/ipfs/QmPENE5H4Lg94MCpQ7gjah26Muqhc7QYAcyXQ9sFHxViGq\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/Utils.sol\":{\"keccak256\":\"0x323d26123de797a41955a05e68be86a6fe55aa62134ec59a8f89faa5bd04c416\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e0fd70642c2ded7d486bc5a3faac55d3357c20bb10d4243fef61962cf70e641\",\"dweb:/ipfs/QmWqQ3x27z2iCNNaAfXVAJ3FX2tHvUYu1t1Ze27pdbCRbK\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x35e258421ae206f3db37281cea70871b4c3553914734aa76139a41af60ac1abb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ef94b6bc4ee356db612a1849c615f7dd4b15542d6c8584c86bb9243a7913cf0\",\"dweb:/ipfs/QmaxFj5NFpAjjitZtHPNS9PPtCuBATaRz9ktDDRCQCQ83y\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x84d04bd9b87928b261736f90a86cbb15d8cf6f80560151366370fa79313f3cb5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7fd52b96d25ba9ca6ba26a591d2726c0256185b1c107b9a06834ca9ce0bae240\",\"dweb:/ipfs/QmYbgPqwwX1hUi6HfqcPM82bqgbjLYWDCXv83NxCvivL43\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/utils/Address.sol\":{\"keccak256\":\"0xef97d5bcb540814e1371a1e355a170919412e0d6754fdaa003b6a602e6a7ea4d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41a8f093a740cdcb224e48b2c4c2868f8e86dcdd3bc96ded6b10d29714b6f9a4\",\"dweb:/ipfs/QmSsgQmcY8n1a2bCFxdpWGS3YV63TZyZD77ycNHdpMDySL\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"contracts/MyPaymaster.sol\":{\"keccak256\":\"0xc9518c8982db8f6686c1ce1df672026d52bc3022feae47c48336ac55281d80b6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7acba8df36bf3130b2cf7afdb193abdc76f241686373853bb884b7d66f74fd3a\",\"dweb:/ipfs/QmXpr4P6s8kj94iFVccTW8vszoWKKdR8xrUo8TzooSpA4a\"]}},\"version\":1}","zk_version":"1.3.9"},"evm":{"legacyAssembly":null,"assembly":"\t.text\n\t.file\t\"MyPaymaster.sol:MyPaymaster\"\n\t.globl\t__entry\n__entry:\n.func_begin0:\n\tnop\tstack+=[7]\n\tadd\tr1, r0, r3\n\tshr.s\t96, r3, r3\n\tand\t@CPI0_0[0], r3, r4\n\tptr.add\tr1, r4, stack[@ptr_return_data]\n\tptr.add\tr1, r0, stack[@ptr_calldata]\n\tand\t@CPI0_0[0], r3, stack[@calldatasize]\n\tadd\t0, r0, stack[@returndatasize]\n\tand!\t1, r2, r1\n\tjump.ne\t@.BB0_1\n\tadd\t128, r0, r1\n\tst.1\t64, r1\n\tadd\tstack[@calldatasize], r0, r2\n\tsub.s!\t4, r2, r1\n\tjump.lt\t@.BB0_16\n\tptr.add\tstack[@ptr_calldata], r0, r1\n\tld\tr1, r3\n\tshr.s\t224, r3, r3\n\tsub.s!\t@CPI0_5[0], r3, r4\n\tjump.eq\t@.BB0_17\n\tsub.s!\t@CPI0_6[0], r3, r4\n\tjump.eq\t@.BB0_81\n\tsub.s!\t@CPI0_7[0], r3, r1\n\tjump.ne\t@.BB0_2\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tsub.s\t4, r0, r1\n\tadd\tstack[@calldatasize], r1, r1\n\tadd\t@CPI0_1[0], r0, r2\n\tsub.s!\t0, r1, r3\n\tadd\t0, r0, r3\n\tadd.lt\tr2, r0, r3\n\tand\t@CPI0_1[0], r1, r1\n\tsub.s!\t0, r1, r4\n\tadd.le\t0, r0, r2\n\tsub.s!\t@CPI0_1[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tsload\tr0, r1\n\tand\t@CPI0_2[0], r1, r1\n\tld.1\t64, r2\n\tst.1\tr2, r1\n\tadd\t@CPI0_0[0], r0, r1\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI0_8[0], r1, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_1:\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tadd\tstack[@calldatasize], r0, r1\n\tadd\t159, r1, r2\n\tsub.s\t32, r0, r3\n\tand\tr2, r3, r2\n\tsub.s!\t127, r2, r3\n\tjump.gt\t@.BB0_5\n.BB0_4:\n\tadd\t@CPI0_19[0], r0, r1\n\tst.1\t0, r1\n\tadd\t65, r0, r1\n\tst.1\t4, r1\n\tadd\t@CPI0_20[0], r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB0_16:\n\tsub.s!\t0, r2, r1\n\tjump.ne\t@.BB0_2\n.BB0_89:\n\tadd\tr0, r0, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_5:\n\tst.1\t64, r2\n\tand\t31, r1, r2\n\tptr.add\tstack[@ptr_calldata], r0, r3\n\tshr.s!\t5, r1, r4\n\tjump.eq\t@.BB0_98\n\tadd\tr0, r0, r5\n.BB0_7:\n\tshl.s\t5, r5, r6\n\tptr.add\tr3, r6, r7\n\tld\tr7, r7\n\tadd\t128, r6, r6\n\tst.1\tr6, r7\n\tadd\t1, r5, r5\n\tsub!\tr5, r4, r6\n\tjump.lt\t@.BB0_7\n.BB0_98:\n\tsub.s!\t0, r2, r5\n\tjump.eq\t@.BB0_9\n\tshl.s\t5, r4, r4\n\tptr.add\tr3, r4, r3\n\tshl.s\t3, r2, r2\n\tadd\t128, r4, r4\n\tld.1\tr4, r5\n\tshl\tr5, r2, r5\n\tshr\tr5, r2, r5\n\tld\tr3, r3\n\tsub\t256, r2, r2\n\tshr\tr3, r2, r3\n\tshl\tr3, r2, r2\n\tor\tr2, r5, r2\n\tst.1\tr4, r2\n.BB0_9:\n\tadd\t@CPI0_1[0], r0, r2\n\tsub.s!\t32, r1, r3\n\tadd\t0, r0, r3\n\tadd.lt\tr2, r0, r3\n\tand\t@CPI0_1[0], r1, r1\n\tsub.s!\t0, r1, r4\n\tadd.le\t0, r0, r2\n\tsub.s!\t@CPI0_1[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tld.1\t128, r1\n\tsub.s!\t@CPI0_2[0], r1, r2\n\tjump.gt\t@.BB0_2\n\tsload\tr0, r2\n\tand\t@CPI0_3[0], r2, r2\n\tor\tr2, r1, r1\n\tsstore\tr0, r1\n\tadd\t32, r0, r1\n\tst.2\t256, r1\n\tst.2\t288, r0\n\tadd\t@CPI0_4[0], r0, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_17:\n\tsub.s\t4, r2, r3\n\tadd\t@CPI0_1[0], r0, r4\n\tsub.s!\t96, r3, r5\n\tadd\t0, r0, r5\n\tadd.lt\tr4, r0, r5\n\tand\t@CPI0_1[0], r3, r3\n\tsub.s!\t0, r3, r6\n\tadd.le\t0, r0, r4\n\tsub.s!\t@CPI0_1[0], r3, r3\n\tadd\tr5, r0, r3\n\tadd.eq\tr4, r0, r3\n\tsub.s!\t0, r3, r3\n\tjump.ne\t@.BB0_2\n\tptr.add.s\t68, r1, r3\n\tld\tr3, r10\n\tsub.s!\t@CPI0_9[0], r10, r3\n\tjump.gt\t@.BB0_2\n\tadd\t4, r10, r3\n\tsub\tr2, r3, r4\n\tadd\t@CPI0_1[0], r0, r5\n\tsub.s!\t608, r4, r6\n\tadd\t0, r0, r6\n\tadd.lt\tr5, r0, r6\n\tand\t@CPI0_1[0], r4, r4\n\tsub.s!\t0, r4, r7\n\tadd.le\t0, r0, r5\n\tsub.s!\t@CPI0_1[0], r4, r4\n\tadd\tr6, r0, r4\n\tadd.eq\tr5, r0, r4\n\tsub.s!\t0, r4, r4\n\tjump.ne\t@.BB0_2\n\tadd\t548, r10, r4\n\tptr.add\tr1, r4, r4\n\tsub\tr2, r10, r5\n\tsub.s\t35, r5, r5\n\tld\tr4, r4\n\tadd\t@CPI0_1[0], r0, r6\n\tsub!\tr4, r5, r7\n\tadd\t0, r0, r7\n\tadd.ge\tr6, r0, r7\n\tand\t@CPI0_1[0], r5, r5\n\tand\t@CPI0_1[0], r4, r8\n\tsub!\tr8, r5, r9\n\tadd.ge\t0, r0, r6\n\txor\tr8, r5, r5\n\tsub.s!\t@CPI0_1[0], r5, r5\n\tadd\tr7, r0, r5\n\tadd.eq\tr6, r0, r5\n\tsub.s!\t0, r5, r5\n\tjump.ne\t@.BB0_2\n\tadd\tr4, r3, r3\n\tptr.add\tr1, r3, r4\n\tld\tr4, r4\n\tsub.s!\t@CPI0_9[0], r4, r5\n\tjump.gt\t@.BB0_2\n\tsub\tr2, r4, r5\n\tadd\t32, r3, r2\n\tadd\t@CPI0_1[0], r0, r6\n\tsub!\tr2, r5, r7\n\tadd\t0, r0, r7\n\tadd.gt\tr6, r0, r7\n\tand\t@CPI0_1[0], r5, r5\n\tand\t@CPI0_1[0], r2, r8\n\tsub!\tr8, r5, r9\n\tadd.ge\t0, r0, r6\n\txor\tr8, r5, r5\n\tsub.s!\t@CPI0_1[0], r5, r5\n\tadd\tr7, r0, r5\n\tadd.eq\tr6, r0, r5\n\tsub.s!\t0, r5, r5\n\tjump.ne\t@.BB0_2\n\tsub.s!\t3, r4, r5\n\tjump.gt\t@.BB0_25\n\tadd\t@CPI0_12[0], r0, r1\n\tst.1\t128, r1\n\tadd\t32, r0, r1\n\tst.1\t132, r1\n\tadd\t58, r0, r1\n\tst.1\t164, r1\n\tadd\t@CPI0_25[0], r0, r1\n\tst.1\t196, r1\n\tadd\t@CPI0_26[0], r0, r1\n\tst.1\t228, r1\n\tadd\t@CPI0_27[0], r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB0_81:\n\tsub.s\t4, r2, r3\n\tadd\t@CPI0_1[0], r0, r4\n\tsub.s!\t192, r3, r5\n\tadd\t0, r0, r5\n\tadd.lt\tr4, r0, r5\n\tand\t@CPI0_1[0], r3, r6\n\tsub.s!\t0, r6, r7\n\tadd.le\t0, r0, r4\n\tsub.s!\t@CPI0_1[0], r6, r6\n\tadd.ne\tr5, r0, r4\n\tsub.s!\t0, r4, r4\n\tjump.eq\t@.BB0_82\n.BB0_2:\n\tadd\tr0, r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB0_82:\n\tptr.add.s\t4, r1, r4\n\tld\tr4, r4\n\tsub.s!\t@CPI0_9[0], r4, r5\n\tjump.gt\t@.BB0_2\n\tadd\t35, r4, r5\n\tadd\t@CPI0_1[0], r0, r6\n\tsub!\tr5, r2, r7\n\tadd\t0, r0, r7\n\tadd.ge\tr6, r0, r7\n\tand\t@CPI0_1[0], r2, r8\n\tand\t@CPI0_1[0], r5, r5\n\tsub!\tr5, r8, r9\n\tadd.ge\t0, r0, r6\n\txor\tr5, r8, r5\n\tsub.s!\t@CPI0_1[0], r5, r5\n\tadd\tr7, r0, r5\n\tadd.eq\tr6, r0, r5\n\tsub.s!\t0, r5, r5\n\tjump.ne\t@.BB0_2\n\tadd\t4, r4, r5\n\tptr.add\tr1, r5, r5\n\tld\tr5, r5\n\tsub.s!\t@CPI0_9[0], r5, r6\n\tjump.gt\t@.BB0_2\n\tadd\tr4, r5, r4\n\tadd\t36, r4, r4\n\tsub!\tr4, r2, r2\n\tjump.gt\t@.BB0_2\n\tptr.add.s\t36, r1, r2\n\tld\tr2, r2\n\tsub.s!\t@CPI0_9[0], r2, r4\n\tjump.gt\t@.BB0_2\n\tsub\tr3, r2, r2\n\tadd\t@CPI0_1[0], r0, r3\n\tsub.s!\t608, r2, r4\n\tadd\t0, r0, r4\n\tadd.lt\tr3, r0, r4\n\tand\t@CPI0_1[0], r2, r2\n\tsub.s!\t0, r2, r5\n\tadd.le\t0, r0, r3\n\tsub.s!\t@CPI0_1[0], r2, r2\n\tadd\tr4, r0, r2\n\tadd.eq\tr3, r0, r2\n\tsub.s!\t0, r2, r2\n\tjump.ne\t@.BB0_2\n\tptr.add.s\t132, r1, r1\n\tld\tr1, r1\n\tsub.s!\t1, r1, r1\n\tjump.gt\t@.BB0_2\n\tjump\t@.BB0_89\n.BB0_25:\n\tptr.add\tr1, r2, r2\n\tld\tr2, r2\n\tand\t@CPI0_10[0], r2, r2\n\tsub.s!\t@CPI0_11[0], r2, r2\n\tjump.ne\t@.BB0_26\n\tsub.s\t4, r4, r2\n\tsub.s!\t96, r2, r4\n\tjump.lt\t@.BB0_2\n\tadd\t36, r3, r4\n\tptr.add\tr1, r4, r5\n\tld\tr5, r5\n\tadd\tr5, r0, stack-[7]\n\tsub.s!\t@CPI0_2[0], r5, r5\n\tjump.gt\t@.BB0_2\n\tadd\t100, r3, r5\n\tptr.add\tr1, r5, r5\n\tadd\t68, r3, r3\n\tptr.add\tr1, r3, r3\n\tld\tr3, r3\n\tadd\tr3, r0, stack-[6]\n\tld\tr5, r3\n\tsub.s!\t@CPI0_9[0], r3, r5\n\tjump.gt\t@.BB0_2\n\tadd\tr2, r4, r2\n\tadd\tr3, r4, r3\n\tadd\t31, r3, r4\n\tadd\t@CPI0_1[0], r0, r5\n\tsub!\tr4, r2, r6\n\tadd\t0, r0, r6\n\tadd.ge\tr5, r0, r6\n\tand\t@CPI0_1[0], r4, r4\n\tand\t@CPI0_1[0], r2, r7\n\tsub!\tr4, r7, r8\n\tadd.ge\t0, r0, r5\n\txor\tr4, r7, r4\n\tsub.s!\t@CPI0_1[0], r4, r4\n\tadd\tr6, r0, r4\n\tadd.eq\tr5, r0, r4\n\tsub.s!\t0, r4, r4\n\tjump.ne\t@.BB0_2\n\tadd\tr10, r0, stack-[5]\n\tptr.add\tr1, r3, r1\n\tld\tr1, r1\n\tsub.s!\t@CPI0_9[0], r1, r4\n\tjump.gt\t@.BB0_4\n\tadd\t191, r1, r4\n\tsub.s\t32, r0, r5\n\tand\tr4, r5, r4\n\tsub.s!\t@CPI0_9[0], r4, r5\n\tjump.gt\t@.BB0_4\n\tst.1\t64, r4\n\tst.1\t128, r1\n\tadd\t32, r3, r3\n\tadd\tr1, r3, r4\n\tsub!\tr4, r2, r2\n\tjump.gt\t@.BB0_2\n\tand\t31, r1, r2\n\tptr.add\tstack[@ptr_calldata], r3, r3\n\tshr.s!\t5, r1, r4\n\tjump.eq\t@.BB0_97\n\tadd\tr0, r0, r5\n.BB0_36:\n\tshl.s\t5, r5, r6\n\tptr.add\tr3, r6, r7\n\tld\tr7, r7\n\tadd\t160, r6, r6\n\tst.1\tr6, r7\n\tadd\t1, r5, r5\n\tsub!\tr5, r4, r6\n\tjump.lt\t@.BB0_36\n.BB0_97:\n\tsub.s!\t0, r2, r5\n\tjump.eq\t@.BB0_38\n\tshl.s\t5, r4, r4\n\tptr.add\tr3, r4, r3\n\tshl.s\t3, r2, r2\n\tadd\t160, r4, r4\n\tld.1\tr4, r5\n\tshl\tr5, r2, r5\n\tshr\tr5, r2, r5\n\tld\tr3, r3\n\tsub\t256, r2, r2\n\tshr\tr3, r2, r3\n\tshl\tr3, r2, r2\n\tor\tr2, r5, r2\n\tst.1\tr4, r2\n.BB0_38:\n\tadd\t160, r1, r1\n\tst.1\tr1, r0\n\tsload\tr0, r1\n\tand\t@CPI0_2[0], r1, r1\n\tadd\tstack-[7], r0, r2\n\tsub!\tr2, r1, r1\n\tjump.ne\t@.BB0_39\n\tadd\tstack-[5], r0, r1\n\tadd\t36, r1, r1\n\tptr.add\tstack[@ptr_calldata], r1, r1\n\tld\tr1, r2\n\tld.1\t64, r5\n\tadd\t@CPI0_17[0], r0, r1\n\tst.1\tr5, r1\n\tcontext.this\tr1\n\tand\t@CPI0_2[0], r1, r4\n\tadd\t36, r5, r3\n\tcontext.gas_left\tr1\n\tadd\tr4, r0, stack-[2]\n\tst.1\tr3, r4\n\tand\t@CPI0_2[0], r2, r3\n\tadd\tr5, r0, stack-[4]\n\tadd\t4, r5, r2\n\tadd\tr3, r0, stack-[1]\n\tst.1\tr2, r3\n\tadd\tstack-[7], r0, r2\n\tsub.s!\t4, r2, r2\n\tjump.ne\t@.BB0_42\n\tadd\tstack[@returndatasize], r0, r3\n\tsub.s!\t32, r3, r1\n\tadd\t32, r0, r4\n\tadd.lt\tr3, r0, r4\n\tjump\t@.BB0_52\n.BB0_26:\n\tadd\t@CPI0_12[0], r0, r1\n\tst.1\t128, r1\n\tadd\t32, r0, r1\n\tst.1\t132, r1\n\tadd\t26, r0, r1\n\tst.1\t164, r1\n\tadd\t@CPI0_13[0], r0, r1\n\tst.1\t196, r1\n\tadd\t@CPI0_14[0], r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB0_39:\n\tld.1\t64, r1\n\tadd\t68, r1, r2\n\tadd\t@CPI0_15[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t13, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI0_12[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI0_0[0], r0, r2\n\tsub.s!\t@CPI0_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI0_16[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB0_42:\n\tadd\t@CPI0_0[0], r0, r2\n\tsub.s!\t@CPI0_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tadd\tstack-[4], r0, r4\n\tsub.s!\t@CPI0_0[0], r4, r3\n\tadd.lt\tr4, r0, r2\n\tshl.s\t64, r2, r2\n\tshl.s\t192, r1, r1\n\tor\tr1, r2, r1\n\tor\t@CPI0_18[0], r1, r1\n\tadd\tstack-[7], r0, r2\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tadd\tstack-[4], r0, r10\n\tadd\tr1, r0, r3\n\tshr.s\t96, r3, r3\n\tand\t@CPI0_0[0], r3, r3\n\tsub.s!\t32, r3, r4\n\tadd\t32, r0, r4\n\tadd.lt\tr3, r0, r4\n\tand\t31, r4, r5\n\tshr.s!\t5, r4, r6\n\tjump.eq\t@.BB0_96\n\tadd\tr0, r0, r7\n.BB0_44:\n\tshl.s\t5, r7, r8\n\tadd\tr10, r8, r9\n\tptr.add\tr1, r8, r8\n\tld\tr8, r8\n\tst.1\tr9, r8\n\tadd\t1, r7, r7\n\tsub!\tr7, r6, r8\n\tjump.lt\t@.BB0_44\n.BB0_96:\n\tsub.s!\t0, r5, r7\n\tjump.eq\t@.BB0_46\n\tshl.s\t5, r6, r6\n\tptr.add\tr1, r6, r7\n\tadd\tstack-[4], r0, r8\n\tadd\tr8, r6, r6\n\tshl.s\t3, r5, r5\n\tld.1\tr6, r8\n\tshl\tr8, r5, r8\n\tshr\tr8, r5, r8\n\tld\tr7, r7\n\tsub\t256, r5, r5\n\tshr\tr7, r5, r7\n\tshl\tr7, r5, r5\n\tor\tr5, r8, r5\n\tst.1\tr6, r5\n.BB0_46:\n\tadd\tr3, r0, stack[@returndatasize]\n\tptr.add\tr1, r0, stack[@ptr_return_data]\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_47\n.BB0_52:\n\tadd\t31, r4, r1\n\tand\t96, r1, r1\n\tadd\tstack-[4], r0, r2\n\tadd\tr1, r2, r2\n\tsub!\tr2, r1, r1\n\tadd\t0, r0, r1\n\tadd.lt\t1, r0, r1\n\tadd\tr2, r0, stack-[3]\n\tsub.s!\t@CPI0_9[0], r2, r2\n\tjump.gt\t@.BB0_4\n\tand!\t1, r1, r1\n\tjump.ne\t@.BB0_4\n\tadd\tstack-[3], r0, r1\n\tst.1\t64, r1\n\tsub.s!\t32, r3, r1\n\tjump.lt\t@.BB0_2\n\tadd\tstack-[4], r0, r1\n\tld.1\tr1, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_57\n\tadd\tstack-[3], r0, r3\n\tadd\t68, r3, r1\n\tadd\t@CPI0_24[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t36, r3, r1\n\tadd\t21, r0, r2\n\tst.1\tr1, r2\n\tadd\t@CPI0_12[0], r0, r1\n\tst.1\tr3, r1\n\tadd\t4, r3, r1\n\tadd\t32, r0, r2\n\tst.1\tr1, r2\n\tadd\t@CPI0_0[0], r0, r1\n\tsub.s!\t@CPI0_0[0], r3, r2\n\tadd.lt\tr3, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI0_16[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB0_47:\n\tld.1\t64, r2\n\tand\t31, r3, r4\n\tshr.s!\t5, r3, r3\n\tjump.eq\t@.BB0_95\n\tadd\tr0, r0, r5\n.BB0_49:\n\tshl.s\t5, r5, r6\n\tadd\tr2, r6, r7\n\tptr.add\tr1, r6, r6\n\tld\tr6, r6\n\tst.1\tr7, r6\n\tadd\t1, r5, r5\n\tsub!\tr5, r3, r6\n\tjump.lt\t@.BB0_49\n.BB0_95:\n\tsub.s!\t0, r4, r5\n\tjump.eq\t@.BB0_51\n\tshl.s\t5, r3, r3\n\tptr.add\tr1, r3, r1\n\tadd\tr2, r3, r3\n\tshl.s\t3, r4, r4\n\tld.1\tr3, r5\n\tshl\tr5, r4, r5\n\tshr\tr5, r4, r5\n\tld\tr1, r1\n\tsub\t256, r4, r4\n\tshr\tr1, r4, r1\n\tshl\tr1, r4, r1\n\tor\tr1, r5, r1\n\tst.1\tr3, r1\n.BB0_51:\n\tadd\t@CPI0_0[0], r0, r1\n\tadd\tstack[@returndatasize], r0, r3\n\tsub.s!\t@CPI0_0[0], r3, r4\n\tadd.ge\tr1, r0, r3\n\tsub.s!\t@CPI0_0[0], r2, r4\n\tadd.lt\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tshl.s\t96, r3, r2\n\tor\tr2, r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB0_57:\n\tadd\tstack-[5], r0, r4\n\tadd\t100, r4, r1\n\tptr.add\tstack[@ptr_calldata], r0, r2\n\tptr.add\tr2, r1, r3\n\tadd\t164, r4, r1\n\tptr.add\tr2, r1, r1\n\tld\tr1, r1\n\tld\tr3, r2\n\tmul\tr1, r2, r4, r3\n\tadd\tr4, r0, stack-[5]\n\tsub.s!\t0, r2, r3\n\tjump.eq\t@.BB0_60\n\tadd\tstack-[5], r0, r3\n\tdiv\tr3, r2, r2, r3\n\tsub!\tr2, r1, r1\n\tjump.ne\t@.BB0_59\n.BB0_60:\n\tadd\t@CPI0_21[0], r0, r1\n\tadd\tstack-[3], r0, r4\n\tst.1\tr4, r1\n\tadd\t68, r4, r2\n\tcontext.gas_left\tr1\n\tadd\tstack-[6], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r4, r2\n\tadd\tstack-[2], r0, r3\n\tst.1\tr2, r3\n\tadd\t4, r4, r2\n\tadd\tstack-[1], r0, r3\n\tst.1\tr2, r3\n\tadd\tstack-[7], r0, r2\n\tsub.s!\t4, r2, r2\n\tjump.ne\t@.BB0_62\n\tadd\tstack[@returndatasize], r0, r3\n\tsub.s!\t32, r3, r1\n\tadd\t32, r0, r4\n\tadd.lt\tr3, r0, r4\n\tjump\t@.BB0_67\n.BB0_62:\n\tadd\t@CPI0_0[0], r0, r2\n\tsub.s!\t@CPI0_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tadd\tstack-[3], r0, r4\n\tsub.s!\t@CPI0_0[0], r4, r3\n\tadd.lt\tr4, r0, r2\n\tshl.s\t64, r2, r2\n\tshl.s\t192, r1, r1\n\tor\tr1, r2, r1\n\tor\t@CPI0_16[0], r1, r1\n\tadd\tstack-[7], r0, r2\n\tnear_call\tr0, @__farcall, @DEFAULT_UNWIND\n\tadd\tstack-[3], r0, r10\n\tadd\tr1, r0, r3\n\tshr.s\t96, r3, r3\n\tand\t@CPI0_0[0], r3, r3\n\tsub.s!\t32, r3, r4\n\tadd\t32, r0, r4\n\tadd.lt\tr3, r0, r4\n\tand\t31, r4, r5\n\tshr.s!\t5, r4, r6\n\tjump.eq\t@.BB0_94\n\tadd\tr0, r0, r7\n.BB0_64:\n\tshl.s\t5, r7, r8\n\tadd\tr10, r8, r9\n\tptr.add\tr1, r8, r8\n\tld\tr8, r8\n\tst.1\tr9, r8\n\tadd\t1, r7, r7\n\tsub!\tr7, r6, r8\n\tjump.lt\t@.BB0_64\n.BB0_94:\n\tsub.s!\t0, r5, r7\n\tjump.eq\t@.BB0_66\n\tshl.s\t5, r6, r6\n\tptr.add\tr1, r6, r7\n\tadd\tstack-[3], r0, r8\n\tadd\tr8, r6, r6\n\tshl.s\t3, r5, r5\n\tld.1\tr6, r8\n\tshl\tr8, r5, r8\n\tshr\tr8, r5, r8\n\tld\tr7, r7\n\tsub\t256, r5, r5\n\tshr\tr7, r5, r7\n\tshl\tr7, r5, r5\n\tor\tr5, r8, r5\n\tst.1\tr6, r5\n.BB0_66:\n\tadd\tr3, r0, stack[@returndatasize]\n\tptr.add\tr1, r0, stack[@ptr_return_data]\n\tand!\t1, r2, r1\n\tjump.eq\t@.BB0_71\n.BB0_67:\n\tadd\t31, r4, r1\n\tand\t96, r1, r1\n\tadd\tstack-[3], r0, r2\n\tadd\tr1, r2, r1\n\tsub.s!\t@CPI0_9[0], r1, r2\n\tjump.gt\t@.BB0_4\n\tst.1\t64, r1\n\tsub.s!\t32, r3, r1\n\tjump.lt\t@.BB0_2\n\tadd\tstack-[3], r0, r1\n\tld.1\tr1, r1\n\tsub.s!\t0, r1, r2\n\tadd\t0, r0, r2\n\tadd.ne\t1, r0, r2\n\tsub!\tr1, r2, r1\n\tjump.ne\t@.BB0_2\n\tadd\t@CPI0_0[0], r0, r3\n\tadd\tr3, r0, stack-[7]\n\tcontext.gas_left\tr1\n\tsub.s!\t@CPI0_0[0], r1, r2\n\tadd.ge\tr3, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI0_23[0], r1, r2\n\tadd\tstack-[5], r0, r3\n\tsub.s!\t0, r3, r4\n\tadd.ne\tr2, r0, r1\n\tadd\t32777, r0, r2\n\tadd.eq\t32769, r0, r2\n\tadd\t32769, r0, r4\n\tadd\tr0, r0, r5\n\tnear_call\tr0, @__farcall, @DEFAULT_UNWIND\n\tadd\tr2, r0, stack-[6]\n\tadd\tr1, r0, r2\n\tshr.s\t96, r2, r2\n\tand\t@CPI0_0[0], r2, stack[@returndatasize]\n\tptr.add\tr1, r0, stack[@ptr_return_data]\n\tnear_call\tr0, @extract_returndata, @DEFAULT_UNWIND\n\tadd\tstack-[6], r0, r1\n\tand\t1, r1, r1\n\tnear_call\tr0, @require_helper_stringliteral_8b79, @DEFAULT_UNWIND\n\tld.1\t64, r1\n\tadd\tr1, r0, stack-[6]\n\tnear_call\tr0, @abi_encode_bytes4_bytes, @DEFAULT_UNWIND\n\tadd\tstack-[6], r0, r4\n\tsub\tr1, r4, r1\n\tsub.s!\t@CPI0_0[0], r1, r2\n\tadd\tstack-[7], r0, r3\n\tadd.ge\tr3, r0, r1\n\tsub.s!\t@CPI0_0[0], r4, r2\n\tadd\tr3, r0, r2\n\tadd.lt\tr4, r0, r2\n\tshl.s\t64, r2, r2\n\tshl.s\t96, r1, r1\n\tor\tr1, r2, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_59:\n\tadd\t@CPI0_19[0], r0, r1\n\tst.1\t0, r1\n\tadd\t17, r0, r1\n\tst.1\t4, r1\n\tadd\t@CPI0_20[0], r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB0_71:\n\tadd\t96, r0, r1\n\tsub.s!\t0, r3, r2\n\tjump.eq\t@.BB0_78\n\tadd\t63, r3, r1\n\tand\t@CPI0_22[0], r1, r2\n\tld.1\t64, r1\n\tadd\tr1, r2, r2\n\tsub!\tr2, r1, r4\n\tadd\t0, r0, r4\n\tadd.lt\t1, r0, r4\n\tsub.s!\t@CPI0_9[0], r2, r5\n\tjump.gt\t@.BB0_4\n\tand!\t1, r4, r4\n\tjump.ne\t@.BB0_4\n\tst.1\t64, r2\n\tst.1.inc\tr1, r3, r2\n\tptr.add\tstack[@ptr_return_data], r0, r3\n\tadd\tstack[@returndatasize], r0, r5\n\tand\t31, r5, r4\n\tshr.s!\t5, r5, r5\n\tjump.eq\t@.BB0_93\n\tadd\tr0, r0, r6\n.BB0_76:\n\tshl.s\t5, r6, r7\n\tadd\tr2, r7, r8\n\tptr.add\tr3, r7, r7\n\tld\tr7, r7\n\tst.1\tr8, r7\n\tadd\t1, r6, r6\n\tsub!\tr6, r5, r7\n\tjump.lt\t@.BB0_76\n.BB0_93:\n\tsub.s!\t0, r4, r6\n\tjump.eq\t@.BB0_78\n\tshl.s\t5, r5, r5\n\tptr.add\tr3, r5, r3\n\tadd\tr2, r5, r2\n\tshl.s\t3, r4, r4\n\tld.1\tr2, r5\n\tshl\tr5, r4, r5\n\tshr\tr5, r4, r5\n\tld\tr3, r3\n\tsub\t256, r4, r4\n\tshr\tr3, r4, r3\n\tshl\tr3, r4, r3\n\tor\tr3, r5, r3\n\tst.1\tr2, r3\n.BB0_78:\n\tld.1.inc\tr1, r1, r2\n\tsub.s!\t5, r1, r3\n\tjump.lt\t@.BB0_80\n\tadd\t@CPI0_0[0], r0, r3\n\tsub.s!\t@CPI0_0[0], r2, r4\n\tadd.ge\tr3, r0, r2\n\tsub.s!\t@CPI0_0[0], r1, r4\n\tadd.ge\tr3, r0, r1\n\tshl.s\t96, r1, r1\n\tshl.s\t64, r2, r2\n\tor\tr1, r2, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB0_80:\n\tld.1\t64, r2\n\tadd\tr2, r0, stack-[7]\n\tadd\t@CPI0_12[0], r0, r1\n\tst.1\tr2, r1\n\tadd\t4, r2, r1\n\tnear_call\tr0, @abi_encode_stringliteral_bebb, @DEFAULT_UNWIND\n\tadd\tstack-[7], r0, r4\n\tsub\tr1, r4, r1\n\tadd\t@CPI0_0[0], r0, r2\n\tsub.s!\t@CPI0_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tsub.s!\t@CPI0_0[0], r4, r3\n\tadd.lt\tr4, r0, r2\n\tshl.s\t64, r2, r2\n\tshl.s\t96, r1, r1\n\tor\tr1, r2, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.func_end0:\n\nabi_encode_bytes4_bytes:\n.func_begin1:\n\tadd\t32, r1, r2\n\tadd\t64, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI1_0[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t64, r1, r3\n\tld.1\t96, r2\n\tst.1\tr3, r2\n\tadd\t96, r1, r1\n\tsub.s!\t0, r2, r3\n\tjump.eq\t@.BB1_3\n\tadd\tr0, r0, r3\n.BB1_2:\n\tadd\tr1, r3, r4\n\tadd\t128, r3, r5\n\tld.1\tr5, r5\n\tst.1\tr4, r5\n\tadd\t32, r3, r3\n\tsub!\tr3, r2, r4\n\tjump.lt\t@.BB1_2\n.BB1_3:\n\tadd\tr1, r2, r3\n\tst.1\tr3, r0\n\tadd\t31, r2, r2\n\tsub.s\t32, r0, r3\n\tand\tr2, r3, r2\n\tadd\tr1, r2, r1\n\tret\n.func_end1:\n\nextract_returndata:\n.func_begin2:\n\tadd\t96, r0, r1\n\tadd!\tstack[@returndatasize], r0, r2\n\tjump.eq\t@.BB2_1\n\tsub.s!\t@CPI2_0[0], r2, r1\n\tjump.ge\t@.BB2_3\n\tadd\t63, r2, r1\n\tsub.s\t32, r0, r3\n\tand\tr1, r3, r3\n\tld.1\t64, r1\n\tadd\tr1, r3, r3\n\tsub!\tr3, r1, r4\n\tadd\t0, r0, r4\n\tadd.lt\t1, r0, r4\n\tsub.s!\t@CPI2_1[0], r3, r5\n\tjump.gt\t@.BB2_3\n\tand!\t1, r4, r4\n\tjump.ne\t@.BB2_3\n\tst.1\t64, r3\n\tst.1.inc\tr1, r2, r2\n\tptr.add\tstack[@ptr_return_data], r0, r3\n\tadd\tstack[@returndatasize], r0, r5\n\tand\t31, r5, r4\n\tshr.s!\t5, r5, r5\n\tjump.eq\t@.BB2_10\n\tadd\tr0, r0, r6\n.BB2_8:\n\tshl.s\t5, r6, r7\n\tadd\tr2, r7, r8\n\tptr.add\tr3, r7, r7\n\tld\tr7, r7\n\tst.1\tr8, r7\n\tadd\t1, r6, r6\n\tsub!\tr6, r5, r7\n\tjump.lt\t@.BB2_8\n.BB2_10:\n\tsub.s!\t0, r4, r6\n\tjump.eq\t@.BB2_1\n\tshl.s\t5, r5, r5\n\tptr.add\tr3, r5, r3\n\tadd\tr2, r5, r2\n\tshl.s\t3, r4, r4\n\tld.1\tr2, r5\n\tshl\tr5, r4, r5\n\tshr\tr5, r4, r5\n\tld\tr3, r3\n\tsub\t256, r4, r4\n\tshr\tr3, r4, r3\n\tshl\tr3, r4, r3\n\tor\tr3, r5, r3\n\tst.1\tr2, r3\n.BB2_1:\n\tret\n.BB2_3:\n\tadd\t@CPI2_2[0], r0, r1\n\tst.1\t0, r1\n\tadd\t65, r0, r1\n\tst.1\t4, r1\n\tadd\t@CPI2_3[0], r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.func_end2:\n\nabi_encode_stringliteral_bebb:\n.func_begin3:\n\tadd\t96, r1, r2\n\tadd\t@CPI3_0[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t64, r1, r2\n\tadd\t@CPI3_1[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t32, r1, r2\n\tadd\t42, r0, r3\n\tst.1\tr2, r3\n\tadd\t32, r0, r2\n\tst.1\tr1, r2\n\tadd\t128, r1, r1\n\tret\n.func_end3:\n\nrequire_helper_stringliteral_8b79:\n.func_begin4:\n\tsub.s!\t0, r1, r1\n\tjump.eq\t@.BB4_1\n\tret\n.BB4_1:\n\tld.1\t64, r1\n\tadd\t100, r1, r2\n\tadd\t@CPI4_0[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t68, r1, r2\n\tadd\t@CPI4_1[0], r0, r3\n\tst.1\tr2, r3\n\tadd\t36, r1, r2\n\tadd\t42, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI4_2[0], r0, r2\n\tst.1\tr1, r2\n\tadd\t4, r1, r2\n\tadd\t32, r0, r3\n\tst.1\tr2, r3\n\tadd\t@CPI4_3[0], r0, r2\n\tsub.s!\t@CPI4_3[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tor\t@CPI4_4[0], r1, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.func_end4:\n\n__farcall:\n.func_begin5:\n.tmp0:\n\tfar_call\tr1, r2, @.BB5_2\n.tmp1:\n\tadd\t1, r0, r2\n\tret\n.BB5_2:\n.tmp2:\n\tadd\tr0, r0, r2\n\tret\n.func_end5:\n\n__staticcall:\n.func_begin6:\n.tmp3:\n\tfar_call.static\tr1, r2, @.BB6_2\n.tmp4:\n\tadd\t1, r0, r2\n\tret\n.BB6_2:\n.tmp5:\n\tadd\tr0, r0, r2\n\tret\n.func_end6:\n\n\t.data\n\t.p2align\t5\ncalldatasize:\n\t.cell 0\n\n\t.p2align\t5\nreturndatasize:\n\t.cell 0\n\n\t.p2align\t5\nptr_calldata:\n.cell\t0\n\n\t.p2align\t5\nptr_return_data:\n.cell\t0\n\n\t.note.GNU-stack\n\t.rodata\nCPI0_0:\nCPI4_3:\n\t.cell 4294967295\nCPI0_1:\n\t.cell -57896044618658097711785492504343953926634992332820282019728792003956564819968\nCPI0_2:\n\t.cell 1461501637330902918203684832716283019655932542975\nCPI0_3:\n\t.cell -1461501637330902918203684832716283019655932542976\nCPI0_4:\n\t.cell 53919893334301279589334030174039261352344891250716429051063678533632\nCPI0_5:\n\t.cell 59385020\nCPI0_6:\n\t.cell 2172327920\nCPI0_7:\n\t.cell 2247764271\nCPI0_8:\n\t.cell 2535301200456458802993406410752\nCPI0_9:\nCPI2_1:\n\t.cell 18446744073709551615\nCPI0_10:\n\t.cell -26959946667150639794667015087019630673637144422540572481103610249216\nCPI0_11:\n\t.cell -48587950164646309552774342140649688466689888859568112040477021729065822846976\nCPI0_12:\nCPI4_2:\n\t.cell 3963877391197344453575983046348115674221700746820753546331534351508065746944\nCPI0_13:\n\t.cell 38641742173688136142497059639362259879784348236233319771201188582111108399104\nCPI0_14:\n\t.cell 7922816253787617000789217640448\nCPI0_15:\n\t.cell 33214008156304899520006326649594998908638145303696235732210503279813117083648\nCPI0_16:\n\t.cell 7922816251426433759354395033600\nCPI0_17:\n\t.cell -15656161302665159201809893145089448837013829615782376627744606809190320570368\nCPI0_18:\n\t.cell 5387515050969974956360988622848\nCPI0_19:\nCPI2_2:\n\t.cell 35408467139433450592217433187231851964531694900788300625387963629091585785856\nCPI0_20:\nCPI2_3:\n\t.cell 2852213850513516153367582212096\nCPI0_21:\n\t.cell 16156842317565293874272834530371880720966471053262404558597773956279093428224\nCPI0_22:\n\t.cell 8589934560\nCPI0_23:\n\t.cell 904625697166532776746648320380374280103671755200316906558262375061821325312\nCPI0_24:\n\t.cell 35014368347789577734081293661596558662652318764078926882361198423992480825344\nCPI0_25:\n\t.cell 38178729326989437529378098614215298038453309006795197963137574916051126023539\nCPI0_26:\n\t.cell 52525508639238491634565177399092170233716350919715517588157391457463274831872\nCPI0_27:\n\t.cell 10458117454244075803782624051200\nCPI1_0:\n\t.cell 1601016972027674087219096584282962507946555294275460347601787516721897144320\nCPI2_0:\n\t.cell 18446744073709551616\nCPI3_0:\n\t.cell 52085108104066737883672264884683248073262119966932661415859031797500886384640\nCPI3_1:\n\t.cell 31834011171830534752912393783955306822684985350516961842718463303586487166322\nCPI4_0:\n\t.cell 44523548417968360618081873277032963716216311531309759134438128686256600645632\nCPI4_1:\n\t.cell 31834011171830534752912393783955306822684984578836517394123384022466812208416\nCPI4_4:\n\t.cell 10458117451882892562347801444352\n","bytecode":{"object":"0004000000000002000700000000000200000000030100190000006003300270000000e10430019700030000004103550002000000010355000000e10030019d000100000000001f0000000101200190000000340000c13d0000008001000039000000400010043f0000000002000031000000040120008c000000430000413d0000000201000367000000000301043b000000e003300270000000e60430009c0000007c0000613d000000e70430009c000000d10000613d000000e80130009c000000dd0000c13d0000000001000416000000000110004c000000dd0000c13d000000040100008a0000000001100031000000e202000041000000000310004c00000000030000190000000003024019000000e201100197000000000410004c000000000200a019000000e20110009c00000000010300190000000001026019000000000110004c000000dd0000c13d000000000100041a000000e301100197000000400200043d0000000000120435000000e101000041000000e10320009c00000000010240190000004001100210000000e9011001c7000003810001042e0000000001000416000000000110004c000000dd0000c13d00000000010000310000009f02100039000000200300008a000000000232016f0000007f0320008c000000470000213d000000f40100004100000000001004350000004101000039000000040010043f000000f5010000410000038200010430000000000120004c000000dd0000c13d0000000001000019000003810001042e000000400020043f0000001f0210018f00000002030003670000000504100272000000550000613d00000000050000190000000506500210000000000763034f000000000707043b000000800660003900000000007604350000000105500039000000000645004b0000004d0000413d000000000520004c000000640000613d0000000504400210000000000343034f00000003022002100000008004400039000000000504043300000000052501cf000000000525022f000000000303043b0000010002200089000000000323022f00000000022301cf000000000252019f0000000000240435000000e202000041000000200310008c00000000030000190000000003024019000000e201100197000000000410004c000000000200a019000000e20110009c00000000010300190000000001026019000000000110004c000000dd0000c13d000000800100043d000000e30210009c000000dd0000213d000000000200041a000000e402200197000000000112019f000000000010041b000000200100003900000100001004430000012000000443000000e501000041000003810001042e000000040320008a000000e204000041000000600530008c00000000050000190000000005044019000000e203300197000000000630004c000000000400a019000000e20330009c00000000030500190000000003046019000000000330004c000000dd0000c13d0000004403100370000000000a03043b000000ea03a0009c000000dd0000213d0000000403a000390000000004320049000000e205000041000002600640008c00000000060000190000000006054019000000e204400197000000000740004c000000000500a019000000e20440009c00000000040600190000000004056019000000000440004c000000dd0000c13d0000022404a00039000000000441034f0000000005a20049000000230550008a000000000404043b000000e206000041000000000754004b00000000070000190000000007068019000000e205500197000000e208400197000000000958004b0000000006008019000000000558013f000000e20550009c00000000050700190000000005066019000000000550004c000000dd0000c13d0000000003340019000000000431034f000000000404043b000000ea0540009c000000dd0000213d00000000054200490000002002300039000000e206000041000000000752004b00000000070000190000000007062019000000e205500197000000e208200197000000000958004b0000000006008019000000000558013f000000e20550009c00000000050700190000000005066019000000000550004c000000dd0000c13d000000030540008c000001110000213d000000ed01000041000000800010043f0000002001000039000000840010043f0000003a01000039000000a40010043f000000fa01000041000000c40010043f000000fb01000041000000e40010043f000000fc010000410000038200010430000000040320008a000000e204000041000000c00530008c00000000050000190000000005044019000000e206300197000000000760004c000000000400a019000000e20660009c000000000405c019000000000440004c000000df0000613d000000000100001900000382000104300000000404100370000000000404043b000000ea0540009c000000dd0000213d0000002305400039000000e206000041000000000725004b00000000070000190000000007068019000000e208200197000000e205500197000000000985004b0000000006008019000000000585013f000000e20550009c00000000050700190000000005066019000000000550004c000000dd0000c13d0000000405400039000000000551034f000000000505043b000000ea0650009c000000dd0000213d00000000045400190000002404400039000000000224004b000000dd0000213d0000002402100370000000000202043b000000ea0420009c000000dd0000213d0000000002230049000000e203000041000002600420008c00000000040000190000000004034019000000e202200197000000000520004c000000000300a019000000e20220009c00000000020400190000000002036019000000000220004c000000dd0000c13d0000008401100370000000000101043b000000010110008c000000dd0000213d000000450000013d000000000221034f000000000202043b000000eb02200197000000ec0220009c000001860000c13d000000040240008a000000600420008c000000dd0000413d0000002404300039000000000541034f000000000505043b000700000005001d000000e30550009c000000dd0000213d0000006405300039000000000551034f0000004403300039000000000331034f000000000303043b000600000003001d000000000305043b000000ea0530009c000000dd0000213d000000000242001900000000034300190000001f04300039000000e205000041000000000624004b00000000060000190000000006058019000000e204400197000000e207200197000000000874004b0000000005008019000000000474013f000000e20440009c00000000040600190000000004056019000000000440004c000000dd0000c13d00050000000a001d000000000131034f000000000101043b000000ea0410009c0000003d0000213d000000bf04100039000000200500008a000000000454016f000000ea0540009c0000003d0000213d000000400040043f000000800010043f00000020033000390000000004310019000000000224004b000000dd0000213d0000001f0210018f00000002033003670000000504100272000001560000613d00000000050000190000000506500210000000000763034f000000000707043b000000a00660003900000000007604350000000105500039000000000645004b0000014e0000413d000000000520004c000001650000613d0000000504400210000000000343034f0000000302200210000000a004400039000000000504043300000000052501cf000000000525022f000000000303043b0000010002200089000000000323022f00000000022301cf000000000252019f0000000000240435000000a0011000390000000000010435000000000100041a000000e3011001970000000702000029000000000112004b000001900000c13d000000050100002900000024011000390000000201100367000000000201043b000000400500043d000000f20100004100000000001504350000000001000410000000e30410019700000024035000390000000001000414000200000004001d0000000000430435000000e303200197000400000005001d0000000402500039000100000003001d00000000003204350000000702000029000000040220008c000001a20000c13d0000000103000031000000200130008c00000020040000390000000004034019000001d50000013d000000ed01000041000000800010043f0000002001000039000000840010043f0000001a01000039000000a40010043f000000ee01000041000000c40010043f000000ef010000410000038200010430000000400100043d0000004402100039000000f003000041000000000032043500000024021000390000000d030000390000000000320435000000ed020000410000000000210435000000040210003900000020030000390000000000320435000000e102000041000000e10310009c00000000010280190000004001100210000000f1011001c70000038200010430000000e102000041000000e10310009c00000000010280190000000404000029000000e10340009c00000000020440190000004002200210000000c001100210000000000121019f000000f3011001c700000007020000290380037b0000040f000000040a00002900000000030100190000006003300270000000e103300197000000200430008c000000200400003900000000040340190000001f0540018f0000000506400272000001c10000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b000001b90000413d000000000750004c000001d10000613d0000000506600210000000000761034f000000040800002900000000066800190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f00030000000103550000000102200190000001fb0000613d0000001f01400039000000600110018f00000004020000290000000002210019000000000112004b00000000010000190000000101004039000300000002001d000000ea0220009c0000003d0000213d00000001011001900000003d0000c13d0000000301000029000000400010043f000000200130008c000000dd0000413d00000004010000290000000001010433000000000110004c000002210000c13d00000003030000290000004401300039000000f9020000410000000000210435000000240130003900000015020000390000000000210435000000ed010000410000000000130435000000040130003900000020020000390000000000210435000000e101000041000000e10230009c00000000010340190000004001100210000000f1011001c70000038200010430000000400200043d0000001f0430018f0000000503300272000002080000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b000002000000413d000000000540004c000002170000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000000e1010000410000000103000031000000e10430009c0000000003018019000000e10420009c000000000102401900000040011002100000006002300210000000000112019f0000038200010430000000050400002900000064014000390000000202000367000000000312034f000000a401400039000000000112034f000000000101043b000000000203043b00000000342100a9000500000004001d000000000320004c000002310000613d000000050300002900000000322300d9000000000112004b000002b00000c13d000000f6010000410000000304000029000000000014043500000044024000390000000001000414000000060300002900000000003204350000002402400039000000020300002900000000003204350000000402400039000000010300002900000000003204350000000702000029000000040220008c000002460000c13d0000000103000031000000200130008c00000020040000390000000004034019000002790000013d000000e102000041000000e10310009c00000000010280190000000304000029000000e10340009c00000000020440190000004002200210000000c001100210000000000121019f000000f1011001c70000000702000029038003760000040f000000030a00002900000000030100190000006003300270000000e103300197000000200430008c000000200400003900000000040340190000001f0540018f0000000506400272000002650000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b0000025d0000413d000000000750004c000002750000613d0000000506600210000000000761034f000000030800002900000000066800190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f00030000000103550000000101200190000002b60000613d0000001f01400039000000600110018f00000003020000290000000001210019000000ea0210009c0000003d0000213d000000400010043f000000200130008c000000dd0000413d00000003010000290000000001010433000000000210004c0000000002000019000000010200c039000000000121004b000000dd0000c13d000000e103000041000700000003001d0000000001000414000000e10210009c0000000001038019000000c001100210000000f8021001c70000000503000029000000000430004c000000000102c0190000800902000039000080010200603900008001040000390000000005000019038003760000040f000600000002001d00000000020100190000006002200270000100e10020019d00030000000103550380031a0000040f0000000601000029000000010110018f0380035e0000040f000000400100043d000600000001001d038003000000040f00000006040000290000000001410049000000e10210009c00000007030000290000000001038019000000e10240009c0000000002030019000000000204401900000040022002100000006001100210000000000121019f000003810001042e000000f40100004100000000001004350000001101000039000000040010043f000000f50100004100000382000104300000006001000039000000000230004c000002e30000613d0000003f01300039000000f702100197000000400100043d0000000002210019000000000412004b00000000040000190000000104004039000000ea0520009c0000003d0000213d00000001044001900000003d0000c13d000000400020043f0000000002310436000000030300036700000001050000310000001f0450018f0000000505500272000002d40000613d000000000600001900000005076002100000000008720019000000000773034f000000000707043b00000000007804350000000106600039000000000756004b000002cc0000413d000000000640004c000002e30000613d0000000505500210000000000353034f00000000025200190000000304400210000000000502043300000000054501cf000000000545022f000000000303043b0000010004400089000000000343022f00000000034301cf000000000353019f00000000003204350000000021010434000000050310008c000002ef0000413d000000e103000041000000e10420009c0000000002038019000000e10410009c000000000103801900000060011002100000004002200210000000000121019f0000038200010430000000400200043d000700000002001d000000ed0100004100000000001204350000000401200039038003510000040f00000007040000290000000001410049000000e102000041000000e10310009c0000000001028019000000e10340009c000000000204401900000040022002100000006001100210000000000121019f0000038200010430000000200210003900000040030000390000000000320435000000fd0200004100000000002104350000004003100039000000600200043d00000000002304350000006001100039000000000320004c000003130000613d000000000300001900000000043100190000008005300039000000000505043300000000005404350000002003300039000000000423004b0000030c0000413d000000000321001900000000000304350000001f02200039000000200300008a000000000232016f0000000001210019000000000001042d000000600100003900000001020000320000034a0000613d000000fe0120009c0000034b0000813d0000003f01200039000000200300008a000000000331016f000000400100043d0000000003310019000000000413004b00000000040000190000000104004039000000ea0530009c0000034b0000213d00000001044001900000034b0000c13d000000400030043f0000000002210436000000030300036700000001050000310000001f0450018f00000005055002720000033b0000613d000000000600001900000005076002100000000008720019000000000773034f000000000707043b00000000007804350000000106600039000000000756004b000003330000413d000000000640004c0000034a0000613d0000000505500210000000000353034f00000000025200190000000304400210000000000502043300000000054501cf000000000545022f000000000303043b0000010004400089000000000343022f00000000034301cf000000000353019f0000000000320435000000000001042d000000f40100004100000000001004350000004101000039000000040010043f000000f50100004100000382000104300000006002100039000000ff03000041000000000032043500000040021000390000010003000041000000000032043500000020021000390000002a030000390000000000320435000000200200003900000000002104350000008001100039000000000001042d000000000110004c000003610000613d000000000001042d000000400100043d00000064021000390000010103000041000000000032043500000044021000390000010203000041000000000032043500000024021000390000002a030000390000000000320435000000ed020000410000000000210435000000040210003900000020030000390000000000320435000000e102000041000000e10310009c0000000001028019000000400110021000000103011001c7000003820001043000000379002104210000000102000039000000000001042d0000000002000019000000000001042d0000037e002104230000000102000039000000000001042d0000000002000019000000000001042d0000038000000432000003810001042e0000038200010430000000000000000000000000000000000000000000000000000000000000000000000000ffffffff8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000020000000000000000000000000000004000000100000000000000000000000000000000000000000000000000000000000000000000000000038a24bc00000000000000000000000000000000000000000000000000000000817b17f00000000000000000000000000000000000000000000000000000000085fa292f0000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000949431dc0000000000000000000000000000000000000000000000000000000008c379a000000000000000000000000000000000000000000000000000000000556e737570706f72746564207061796d617374657220666c6f770000000000000000000000000000000000000000000000000064000000800000000000000000496e76616c696420746f6b656e000000000000000000000000000000000000000000000000000000000000000000000000000064000000000000000000000000dd62ed3e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000440000000000000000000000004e487b7100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002400000000000000000000000023b872dd0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001ffffffe002000000000000000000000000000000000000000000000000000000000000004d696e20616c6c6f77616e636520746f6f206c6f770000000000000000000000546865207374616e64617264207061796d617374657220696e707574206d757374206265206174206c656173742034206279746573206c6f6e670000000000000000000000000000000000000000000000000084000000800000000000000000038a24bc0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000007327206163636f756e74000000000000000000000000000000000000000000004661696c656420746f207472616e7366657246726f6d2066726f6d2075736572626f6f746c6f61646572000000000000000000000000000000000000000000004661696c656420746f207472616e736665722066756e647320746f2074686520000000000000000000000000000000000000008400000000000000000000000016d6eaaf8503a681a042bb590f4f8cbfec8c3ccaa01e88f5dd693df39764a1ca"},"methodIdentifiers":{"allowedToken()":"85fa292f","postTransaction(bytes,(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256[4],bytes,bytes,bytes32[],bytes,bytes),bytes32,bytes32,uint8,uint256)":"817b17f0","validateAndPayForPaymasterTransaction(bytes32,bytes32,(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256[4],bytes,bytes,bytes32[],bytes,bytes))":"038a24bc"}},"irOptimized":"/// @use-src 11:\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymaster.sol\", 48:\"contracts/MyPaymaster.sol\"\nobject \"MyPaymaster_9188\" {\n code {\n {\n /// @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\"\n let _1 := memoryguard(0x80)\n if callvalue() { revert(0, 0) }\n let programSize := datasize(\"MyPaymaster_9188\")\n let argSize := sub(codesize(), programSize)\n let newFreePtr := add(_1, and(add(argSize, 31), not(31)))\n if or(gt(newFreePtr, sub(shl(64, 1), 1)), lt(newFreePtr, _1))\n {\n mstore(/** @src -1:-1:-1 */ 0, /** @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\" */ shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(/** @src -1:-1:-1 */ 0, /** @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\" */ 0x24)\n }\n mstore(64, newFreePtr)\n codecopy(_1, programSize, argSize)\n if slt(sub(add(_1, argSize), _1), 32)\n {\n revert(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\"\n let value := mload(_1)\n let _2 := and(value, sub(shl(160, 1), 1))\n if iszero(eq(value, _2))\n {\n revert(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\"\n sstore(/** @src -1:-1:-1 */ 0, /** @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\" */ or(and(sload(/** @src -1:-1:-1 */ 0), /** @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\" */ not(sub(shl(160, 1), 1))), _2))\n let _3 := mload(64)\n let _4 := datasize(\"MyPaymaster_9188_deployed\")\n codecopy(_3, dataoffset(\"MyPaymaster_9188_deployed\"), _4)\n return(_3, _4)\n }\n }\n /// @use-src 1:\"@matterlabs/zksync-contracts/l2/system-contracts/Constants.sol\", 11:\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymaster.sol\", 48:\"contracts/MyPaymaster.sol\"\n object \"MyPaymaster_9188_deployed\" {\n code {\n {\n /// @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\"\n let _1 := 64\n mstore(_1, 128)\n let _2 := 4\n if iszero(lt(calldatasize(), _2))\n {\n let _3 := 0\n switch shr(224, calldataload(_3))\n case 0x038a24bc {\n if slt(add(calldatasize(), not(3)), 96) { revert(_3, _3) }\n let offset := calldataload(68)\n if gt(offset, 0xffffffffffffffff) { revert(_3, _3) }\n let value2 := abi_decode_struct_Transaction_calldata(add(_2, offset), calldatasize())\n /// @src 48:1364:1391 \"_transaction.paymasterInput\"\n let _4 := add(value2, 544)\n let expr_offset, expr_length := access_calldata_tail_bytes_calldata(value2, _4)\n /// @src 48:1343:1487 \"require(...\"\n require_helper_stringliteral_c1e1(/** @src 48:1364:1403 \"_transaction.paymasterInput.length >= 4\" */ iszero(lt(expr_length, /** @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\" */ _2)))\n /// @src 48:1550:1577 \"_transaction.paymasterInput\"\n let expr_offset_1, expr_length_1 := access_calldata_tail_bytes_calldata(value2, _4)\n /// @src 48:1550:1582 \"_transaction.paymasterInput[0:4]\"\n let expr_offset_2, expr_length_2 := calldata_array_index_range_access_bytes_calldata_2907(expr_offset_1, expr_length_1)\n /// @src 48:1602:3840 \"if (paymasterInputSelector == IPaymasterFlow.approvalBased.selector) {...\"\n switch /** @src 48:1606:1669 \"paymasterInputSelector == IPaymasterFlow.approvalBased.selector\" */ eq(/** @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\" */ and(/** @src 48:1530:1592 \"bytes4(...\" */ convert_bytes_to_fixedbytes_from_bytes_calldata_to_bytes4(expr_offset_2, expr_length_2), /** @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\" */ shl(224, 0xffffffff)), /** @src 48:1632:1669 \"IPaymasterFlow.approvalBased.selector\" */ shl(226, 0x25250c77))\n case /** @src 48:1602:3840 \"if (paymasterInputSelector == IPaymasterFlow.approvalBased.selector) {...\" */ 0 {\n /// @src 48:3793:3829 \"revert(\\\"Unsupported paymaster flow\\\")\"\n let _5 := /** @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\" */ mload(_1)\n /// @src 48:3793:3829 \"revert(\\\"Unsupported paymaster flow\\\")\"\n mstore(_5, shl(229, 4594637))\n revert(_5, sub(abi_encode_stringliteral_f918(add(_5, /** @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\" */ _2)), /** @src 48:3793:3829 \"revert(\\\"Unsupported paymaster flow\\\")\" */ _5))\n }\n default /// @src 48:1602:3840 \"if (paymasterInputSelector == IPaymasterFlow.approvalBased.selector) {...\"\n {\n /// @src 48:1910:1937 \"_transaction.paymasterInput\"\n let expr_offset_3, expr_length_3 := access_calldata_tail_bytes_calldata(value2, _4)\n /// @src 48:1910:1941 \"_transaction.paymasterInput[4:]\"\n let expr_offset_4, expr_length_4 := calldata_array_index_range_access_bytes_calldata(expr_offset_3, expr_length_3, expr_length_3)\n /// @src 48:1882:1998 \"abi.decode(...\"\n let expr_component, expr_component_1, expr_component_mpos := abi_decode_address_payablet_uint256t_bytes(expr_offset_4, add(expr_offset_4, expr_length_4))\n /// @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\"\n let _6 := sub(shl(160, 1), 1)\n let _7 := and(/** @src 48:1829:1998 \"(address token, uint256 amount, bytes memory data) = abi.decode(...\" */ expr_component, /** @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\" */ _6)\n /// @src 48:2063:2110 \"require(token == allowedToken, \\\"Invalid token\\\")\"\n require_helper_stringliteral_5e70(/** @src 48:2071:2092 \"token == allowedToken\" */ eq(/** @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\" */ _7, /** @src 48:2071:2092 \"token == allowedToken\" */ cleanup_address(/** @src 11:207:264 \"IPaymaster.validateAndPayForPaymasterTransaction.selector\" */ cleanup_address(sload(/** @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\" */ _3)))))\n let _8 := 32\n let _9 := and(/** @src 11:207:264 \"IPaymaster.validateAndPayForPaymasterTransaction.selector\" */ calldataload(/** @src 48:2232:2249 \"_transaction.from\" */ add(value2, /** @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\" */ _8)), _6)\n /// @src 48:2344:2439 \"IERC20(token).allowance(...\"\n let _10 := /** @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\" */ mload(_1)\n /// @src 48:2344:2439 \"IERC20(token).allowance(...\"\n mstore(_10, /** @src 11:207:264 \"IPaymaster.validateAndPayForPaymasterTransaction.selector\" */ shl(225, 0x6eb1769f))\n /// @src 48:2344:2439 \"IERC20(token).allowance(...\"\n let _11 := staticcall(gas(), _7, _10, sub(abi_encode_address_address(add(_10, /** @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\" */ _2), /** @src 48:2344:2439 \"IERC20(token).allowance(...\" */ _9, /** @src 48:2296:2300 \"this\" */ address()), /** @src 48:2344:2439 \"IERC20(token).allowance(...\" */ _10), _10, /** @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\" */ _8)\n /// @src 48:2344:2439 \"IERC20(token).allowance(...\"\n if iszero(_11) { revert_forward() }\n let expr := /** @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\" */ _3\n /// @src 48:2344:2439 \"IERC20(token).allowance(...\"\n if _11\n {\n let _12 := /** @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\" */ _8\n /// @src 48:2344:2439 \"IERC20(token).allowance(...\"\n if gt(/** @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\" */ _8, /** @src 48:2344:2439 \"IERC20(token).allowance(...\" */ returndatasize()) { _12 := returndatasize() }\n finalize_allocation(_10, _12)\n expr := abi_decode_uint256_fromMemory(_10, add(_10, _12))\n }\n /// @src 48:2453:2575 \"require(...\"\n require_helper_stringliteral_18cf(/** @src 48:2478:2520 \"providedAllowance >= PRICE_FOR_PAYING_FEES\" */ iszero(lt(expr, /** @src 48:668:669 \"1\" */ 0x01)))\n /// @src 48:2797:2858 \"_transaction.gasLimit *...\"\n let expr_1 := checked_mul_uint256(/** @src 11:207:264 \"IPaymaster.validateAndPayForPaymasterTransaction.selector\" */ calldataload(/** @src 48:2797:2818 \"_transaction.gasLimit\" */ add(value2, /** @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\" */ 96)), /** @src 11:207:264 \"IPaymaster.validateAndPayForPaymasterTransaction.selector\" */ calldataload(/** @src 48:2833:2858 \"_transaction.maxFeePerGas\" */ add(value2, 160)))\n /// @src 48:2889:2949 \"IERC20(token).transferFrom(userAddress, thisAddress, amount)\"\n let _13 := /** @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\" */ mload(_1)\n /// @src 48:2889:2949 \"IERC20(token).transferFrom(userAddress, thisAddress, amount)\"\n mstore(_13, /** @src 11:207:264 \"IPaymaster.validateAndPayForPaymasterTransaction.selector\" */ shl(224, 0x23b872dd))\n /// @src 48:2889:2949 \"IERC20(token).transferFrom(userAddress, thisAddress, amount)\"\n let trySuccessCondition := call(gas(), _7, /** @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\" */ _3, /** @src 48:2889:2949 \"IERC20(token).transferFrom(userAddress, thisAddress, amount)\" */ _13, sub(abi_encode_address_address_uint256(add(_13, /** @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\" */ _2), /** @src 48:2889:2949 \"IERC20(token).transferFrom(userAddress, thisAddress, amount)\" */ _9, /** @src 48:2296:2300 \"this\" */ address(), /** @src 48:2889:2949 \"IERC20(token).transferFrom(userAddress, thisAddress, amount)\" */ expr_component_1), _13), _13, /** @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\" */ _8)\n /// @src 48:2889:2949 \"IERC20(token).transferFrom(userAddress, thisAddress, amount)\"\n if trySuccessCondition\n {\n let _14 := /** @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\" */ _8\n /// @src 48:2889:2949 \"IERC20(token).transferFrom(userAddress, thisAddress, amount)\"\n if gt(/** @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\" */ _8, /** @src 48:2889:2949 \"IERC20(token).transferFrom(userAddress, thisAddress, amount)\" */ returndatasize()) { _14 := returndatasize() }\n finalize_allocation(_13, _14)\n pop(abi_decode_bool_fromMemory(_13, add(_13, _14)))\n }\n /// @src 48:2873:3476 \"try...\"\n switch iszero(trySuccessCondition)\n case 0 { }\n default {\n /// @src 48:2965:3476 \"catch (bytes memory revertReason) {...\"\n let var_revertReason_mpos := extract_returndata()\n /// @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\"\n let _15 := mload(/** @src 48:3188:3207 \"revertReason.length\" */ var_revertReason_mpos)\n /// @src 48:3184:3462 \"if (revertReason.length <= 4) {...\"\n switch /** @src 48:3188:3212 \"revertReason.length <= 4\" */ iszero(gt(_15, /** @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\" */ _2))\n case /** @src 48:3184:3462 \"if (revertReason.length <= 4) {...\" */ 0 {\n /// @src 48:3335:3444 \"assembly {...\"\n revert(add(/** @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\" */ _8, /** @src 48:3335:3444 \"assembly {...\" */ var_revertReason_mpos), _15)\n }\n default /// @src 48:3184:3462 \"if (revertReason.length <= 4) {...\"\n {\n /// @src 48:3236:3288 \"revert(\\\"Failed to transferFrom from users' account\\\")\"\n let _16 := /** @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\" */ mload(_1)\n /// @src 48:3236:3288 \"revert(\\\"Failed to transferFrom from users' account\\\")\"\n mstore(_16, /** @src 48:3793:3829 \"revert(\\\"Unsupported paymaster flow\\\")\" */ shl(229, 4594637))\n /// @src 48:3236:3288 \"revert(\\\"Failed to transferFrom from users' account\\\")\"\n revert(_16, sub(abi_encode_stringliteral_bebb(add(_16, /** @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\" */ _2)), /** @src 48:3236:3288 \"revert(\\\"Failed to transferFrom from users' account\\\")\" */ _16))\n }\n }\n /// @src 48:3597:3686 \"payable(BOOTLOADER_FORMAL_ADDRESS).call{...\"\n let expr_component_2 := call(gas(), /** @src 1:682:688 \"0x8000\" */ 32769, /** @src 48:3597:3686 \"payable(BOOTLOADER_FORMAL_ADDRESS).call{...\" */ expr_1, /** @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\" */ _3, _3, _3, _3)\n /// @src 48:3597:3686 \"payable(BOOTLOADER_FORMAL_ADDRESS).call{...\"\n pop(extract_returndata())\n /// @src 48:3700:3762 \"require(success, \\\"Failed to transfer funds to the bootloader\\\")\"\n require_helper_stringliteral_8b79(expr_component_2)\n }\n /// @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\"\n let memPos := mload(_1)\n return(memPos, sub(abi_encode_bytes4_bytes(memPos), memPos))\n }\n case 0x817b17f0 {\n external_fun_postTransaction()\n }\n case 0x85fa292f { external_fun_allowedToken() }\n }\n if iszero(calldatasize()) { stop() }\n revert(0, 0)\n }\n function abi_decode_struct_Transaction_calldata(offset, end) -> value\n {\n if slt(sub(end, offset), 608) { revert(0, 0) }\n value := offset\n }\n function abi_encode_bytes4_bytes(headStart) -> tail\n {\n mstore(headStart, /** @src 11:207:264 \"IPaymaster.validateAndPayForPaymasterTransaction.selector\" */ shl(226, 14846255))\n /// @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\"\n let _1 := 32\n mstore(add(headStart, _1), 64)\n let _2 := 96\n let length := mload(_2)\n mstore(add(headStart, 64), length)\n let i := 0\n for { } lt(i, length) { i := add(i, _1) }\n {\n mstore(add(add(headStart, i), _2), mload(add(i, 128)))\n }\n mstore(add(add(headStart, length), _2), 0)\n tail := add(add(headStart, and(add(length, 31), not(31))), _2)\n }\n function abi_decode_enum_ExecutionResult() -> value\n {\n value := calldataload(132)\n if iszero(lt(value, 2)) { revert(0, 0) }\n }\n function external_fun_postTransaction()\n {\n if slt(add(calldatasize(), not(3)), 192)\n {\n revert(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\"\n let offset := calldataload(4)\n let _1 := 0xffffffffffffffff\n if gt(offset, _1)\n {\n revert(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\"\n if iszero(slt(add(offset, 35), calldatasize()))\n {\n revert(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\"\n let length := calldataload(add(4, offset))\n if gt(length, _1)\n {\n revert(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\"\n if gt(add(add(offset, length), 36), calldatasize())\n {\n revert(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\"\n let offset_1 := calldataload(36)\n if gt(offset_1, _1)\n {\n revert(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\"\n pop(abi_decode_struct_Transaction_calldata(add(4, offset_1), calldatasize()))\n pop(abi_decode_enum_ExecutionResult())\n return(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\"\n function cleanup_address(value) -> cleaned\n {\n cleaned := and(value, sub(shl(160, 1), 1))\n }\n function external_fun_allowedToken()\n {\n if callvalue() { revert(0, 0) }\n if slt(add(calldatasize(), not(3)), 0) { revert(0, 0) }\n let value := and(sload(0), sub(shl(160, 1), 1))\n let memPos := mload(64)\n mstore(memPos, value)\n return(memPos, 32)\n }\n /// @src 11:207:264 \"IPaymaster.validateAndPayForPaymasterTransaction.selector\"\n function access_calldata_tail_bytes_calldata(base_ref, ptr_to_tail) -> addr, length\n {\n let rel_offset_of_tail := calldataload(ptr_to_tail)\n if iszero(slt(rel_offset_of_tail, add(sub(calldatasize(), base_ref), not(30))))\n {\n /// @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\"\n revert(0, 0)\n }\n /// @src 11:207:264 \"IPaymaster.validateAndPayForPaymasterTransaction.selector\"\n let addr_1 := add(base_ref, rel_offset_of_tail)\n length := calldataload(addr_1)\n if gt(length, 0xffffffffffffffff)\n {\n /// @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\"\n revert(0, 0)\n }\n /// @src 11:207:264 \"IPaymaster.validateAndPayForPaymasterTransaction.selector\"\n addr := add(addr_1, 0x20)\n if sgt(addr, sub(calldatasize(), length))\n {\n /// @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\"\n revert(0, 0)\n }\n }\n /// @src 11:207:264 \"IPaymaster.validateAndPayForPaymasterTransaction.selector\"\n function require_helper_stringliteral_c1e1(condition)\n {\n if iszero(condition)\n {\n let memPtr := /** @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\" */ mload(64)\n /// @src 11:207:264 \"IPaymaster.validateAndPayForPaymasterTransaction.selector\"\n mstore(memPtr, /** @src 48:3793:3829 \"revert(\\\"Unsupported paymaster flow\\\")\" */ shl(229, 4594637))\n /// @src 11:207:264 \"IPaymaster.validateAndPayForPaymasterTransaction.selector\"\n mstore(add(memPtr, 4), 32)\n /// @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\"\n mstore(/** @src 11:207:264 \"IPaymaster.validateAndPayForPaymasterTransaction.selector\" */ add(memPtr, 36), 58)\n mstore(/** @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\" */ add(/** @src 11:207:264 \"IPaymaster.validateAndPayForPaymasterTransaction.selector\" */ memPtr, /** @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\" */ 68), /** @src 11:207:264 \"IPaymaster.validateAndPayForPaymasterTransaction.selector\" */ \"The standard paymaster input mus\")\n mstore(add(memPtr, 100), \"t be at least 4 bytes long\")\n revert(memPtr, 132)\n }\n }\n function calldata_array_index_range_access_bytes_calldata_2907(offset, length) -> offsetOut, lengthOut\n {\n if gt(/** @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\" */ 4, /** @src 11:207:264 \"IPaymaster.validateAndPayForPaymasterTransaction.selector\" */ length)\n {\n /// @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\"\n revert(0, 0)\n }\n /// @src 11:207:264 \"IPaymaster.validateAndPayForPaymasterTransaction.selector\"\n offsetOut := offset\n lengthOut := /** @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\" */ 4\n }\n /// @src 11:207:264 \"IPaymaster.validateAndPayForPaymasterTransaction.selector\"\n function calldata_array_index_range_access_bytes_calldata(offset, length, endIndex) -> offsetOut, lengthOut\n {\n if gt(/** @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\" */ 4, /** @src 11:207:264 \"IPaymaster.validateAndPayForPaymasterTransaction.selector\" */ endIndex)\n {\n /// @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\"\n revert(0, 0)\n }\n /// @src 11:207:264 \"IPaymaster.validateAndPayForPaymasterTransaction.selector\"\n if gt(endIndex, length)\n {\n /// @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\"\n revert(0, 0)\n }\n /// @src 11:207:264 \"IPaymaster.validateAndPayForPaymasterTransaction.selector\"\n offsetOut := add(offset, /** @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\" */ 4)\n /// @src 11:207:264 \"IPaymaster.validateAndPayForPaymasterTransaction.selector\"\n lengthOut := add(endIndex, /** @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\" */ not(3))\n }\n /// @src 11:207:264 \"IPaymaster.validateAndPayForPaymasterTransaction.selector\"\n function convert_bytes_to_fixedbytes_from_bytes_calldata_to_bytes4(array, len) -> value\n {\n let _1 := calldataload(array)\n /// @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\"\n let _2 := shl(224, 0xffffffff)\n /// @src 11:207:264 \"IPaymaster.validateAndPayForPaymasterTransaction.selector\"\n value := /** @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\" */ and(/** @src 11:207:264 \"IPaymaster.validateAndPayForPaymasterTransaction.selector\" */ _1, /** @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\" */ _2)\n /// @src 11:207:264 \"IPaymaster.validateAndPayForPaymasterTransaction.selector\"\n if lt(len, 4)\n {\n value := and(and(_1, shl(shl(3, sub(4, len)), /** @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\" */ _2)), _2)\n }\n }\n /// @src 11:207:264 \"IPaymaster.validateAndPayForPaymasterTransaction.selector\"\n function abi_encode_stringliteral_f918(headStart) -> tail\n {\n mstore(headStart, 32)\n /// @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\"\n mstore(/** @src 11:207:264 \"IPaymaster.validateAndPayForPaymasterTransaction.selector\" */ add(headStart, 32), 26)\n mstore(/** @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\" */ add(/** @src 11:207:264 \"IPaymaster.validateAndPayForPaymasterTransaction.selector\" */ headStart, /** @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\" */ 64), /** @src 11:207:264 \"IPaymaster.validateAndPayForPaymasterTransaction.selector\" */ \"Unsupported paymaster flow\")\n tail := add(headStart, 96)\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function finalize_allocation(memPtr, size)\n {\n let newFreePtr := add(memPtr, /** @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\" */ and(add(/** @src 11:207:264 \"IPaymaster.validateAndPayForPaymasterTransaction.selector\" */ size, /** @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\" */ 31), not(31)))\n /// @src 11:207:264 \"IPaymaster.validateAndPayForPaymasterTransaction.selector\"\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n function array_allocation_size_bytes(length) -> size\n {\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n size := add(/** @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\" */ and(add(/** @src 11:207:264 \"IPaymaster.validateAndPayForPaymasterTransaction.selector\" */ length, /** @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\" */ 31), not(31)), /** @src 11:207:264 \"IPaymaster.validateAndPayForPaymasterTransaction.selector\" */ 0x20)\n }\n function abi_decode_address_payablet_uint256t_bytes(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96)\n {\n /// @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\"\n revert(0, 0)\n }\n /// @src 11:207:264 \"IPaymaster.validateAndPayForPaymasterTransaction.selector\"\n let value := calldataload(headStart)\n if iszero(eq(value, /** @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\" */ and(/** @src 11:207:264 \"IPaymaster.validateAndPayForPaymasterTransaction.selector\" */ value, /** @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\" */ sub(shl(160, 1), 1))))\n /// @src 11:207:264 \"IPaymaster.validateAndPayForPaymasterTransaction.selector\"\n {\n revert(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 11:207:264 \"IPaymaster.validateAndPayForPaymasterTransaction.selector\"\n value0 := value\n value1 := /** @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\" */ calldataload(/** @src 11:207:264 \"IPaymaster.validateAndPayForPaymasterTransaction.selector\" */ add(headStart, 32))\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff)\n {\n /// @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\"\n revert(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 11:207:264 \"IPaymaster.validateAndPayForPaymasterTransaction.selector\"\n let _1 := add(headStart, offset)\n if iszero(slt(add(_1, 0x1f), dataEnd))\n {\n /// @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\"\n revert(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 11:207:264 \"IPaymaster.validateAndPayForPaymasterTransaction.selector\"\n let _2 := calldataload(_1)\n let _3 := array_allocation_size_bytes(_2)\n let memPtr := /** @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\" */ mload(/** @src 11:207:264 \"IPaymaster.validateAndPayForPaymasterTransaction.selector\" */ 64)\n finalize_allocation(memPtr, _3)\n mstore(memPtr, _2)\n if gt(add(add(_1, _2), 32), dataEnd)\n {\n /// @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\"\n revert(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 11:207:264 \"IPaymaster.validateAndPayForPaymasterTransaction.selector\"\n calldatacopy(add(memPtr, 32), add(_1, 32), _2)\n mstore(add(add(memPtr, _2), 32), /** @src -1:-1:-1 */ 0)\n /// @src 11:207:264 \"IPaymaster.validateAndPayForPaymasterTransaction.selector\"\n value2 := memPtr\n }\n function require_helper_stringliteral_5e70(condition)\n {\n if iszero(condition)\n {\n let memPtr := /** @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\" */ mload(64)\n /// @src 11:207:264 \"IPaymaster.validateAndPayForPaymasterTransaction.selector\"\n mstore(memPtr, /** @src 48:3793:3829 \"revert(\\\"Unsupported paymaster flow\\\")\" */ shl(229, 4594637))\n /// @src 11:207:264 \"IPaymaster.validateAndPayForPaymasterTransaction.selector\"\n mstore(add(memPtr, 4), 32)\n /// @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\"\n mstore(/** @src 11:207:264 \"IPaymaster.validateAndPayForPaymasterTransaction.selector\" */ add(memPtr, 36), 13)\n mstore(/** @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\" */ add(/** @src 11:207:264 \"IPaymaster.validateAndPayForPaymasterTransaction.selector\" */ memPtr, /** @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\" */ 68), /** @src 11:207:264 \"IPaymaster.validateAndPayForPaymasterTransaction.selector\" */ \"Invalid token\")\n revert(memPtr, 100)\n }\n }\n function abi_decode_uint256_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32)\n {\n /// @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\"\n revert(0, 0)\n }\n /// @src 11:207:264 \"IPaymaster.validateAndPayForPaymasterTransaction.selector\"\n value0 := mload(headStart)\n }\n function abi_encode_address_address(headStart, value0, value1) -> tail\n {\n tail := add(headStart, 64)\n /// @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\"\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(/** @src 11:207:264 \"IPaymaster.validateAndPayForPaymasterTransaction.selector\" */ add(headStart, 32), /** @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\" */ and(value1, _1))\n }\n /// @src 11:207:264 \"IPaymaster.validateAndPayForPaymasterTransaction.selector\"\n function revert_forward()\n {\n let pos := /** @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\" */ mload(64)\n /// @src 11:207:264 \"IPaymaster.validateAndPayForPaymasterTransaction.selector\"\n returndatacopy(pos, 0, returndatasize())\n revert(pos, returndatasize())\n }\n /// @src 48:668:669 \"1\"\n function require_helper_stringliteral_18cf(condition)\n {\n if iszero(condition)\n {\n let memPtr := /** @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\" */ mload(64)\n /// @src 48:668:669 \"1\"\n mstore(memPtr, /** @src 48:3793:3829 \"revert(\\\"Unsupported paymaster flow\\\")\" */ shl(229, 4594637))\n /// @src 48:668:669 \"1\"\n mstore(add(memPtr, 4), 32)\n /// @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\"\n mstore(/** @src 48:668:669 \"1\" */ add(memPtr, 36), 21)\n mstore(/** @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\" */ add(/** @src 48:668:669 \"1\" */ memPtr, /** @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\" */ 68), /** @src 48:668:669 \"1\" */ \"Min allowance too low\")\n revert(memPtr, 100)\n }\n }\n function checked_mul_uint256(x, y) -> product\n {\n product := mul(x, y)\n if iszero(or(iszero(x), eq(y, div(product, x))))\n {\n mstore(0, /** @src 11:207:264 \"IPaymaster.validateAndPayForPaymasterTransaction.selector\" */ shl(224, 0x4e487b71))\n /// @src 48:668:669 \"1\"\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n }\n function abi_decode_bool_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32)\n {\n /// @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\"\n revert(0, 0)\n }\n /// @src 48:668:669 \"1\"\n let value := mload(headStart)\n if iszero(eq(value, iszero(iszero(value))))\n {\n revert(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 48:668:669 \"1\"\n value0 := value\n }\n function abi_encode_address_address_uint256(headStart, value0, value1, value2) -> tail\n {\n tail := add(headStart, 96)\n /// @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\"\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(/** @src 48:668:669 \"1\" */ add(headStart, 32), /** @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\" */ and(value1, _1))\n /// @src 48:668:669 \"1\"\n mstore(add(headStart, 64), value2)\n }\n function extract_returndata() -> data\n {\n switch returndatasize()\n case 0 {\n data := /** @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\" */ 96\n }\n default /// @src 48:668:669 \"1\"\n {\n let _1 := returndatasize()\n let _2 := array_allocation_size_bytes(_1)\n /// @src 11:207:264 \"IPaymaster.validateAndPayForPaymasterTransaction.selector\"\n let memPtr := /** @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\" */ mload(64)\n /// @src 11:207:264 \"IPaymaster.validateAndPayForPaymasterTransaction.selector\"\n finalize_allocation(memPtr, _2)\n /// @src 48:668:669 \"1\"\n mstore(memPtr, _1)\n data := memPtr\n returndatacopy(add(memPtr, 0x20), /** @src -1:-1:-1 */ 0, /** @src 48:668:669 \"1\" */ returndatasize())\n }\n }\n function abi_encode_stringliteral_bebb(headStart) -> tail\n {\n mstore(headStart, 32)\n /// @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\"\n mstore(/** @src 48:668:669 \"1\" */ add(headStart, 32), 42)\n mstore(/** @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\" */ add(/** @src 48:668:669 \"1\" */ headStart, /** @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\" */ 64), /** @src 48:668:669 \"1\" */ \"Failed to transferFrom from user\")\n mstore(add(headStart, 96), \"s' account\")\n tail := add(headStart, 128)\n }\n /// @src 1:1382:1430 \"payable(address(SYSTEM_CONTRACTS_OFFSET + 0x01))\"\n function require_helper_stringliteral_8b79(condition)\n {\n if iszero(condition)\n {\n let memPtr := /** @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\" */ mload(64)\n /// @src 1:1382:1430 \"payable(address(SYSTEM_CONTRACTS_OFFSET + 0x01))\"\n mstore(memPtr, /** @src 48:3793:3829 \"revert(\\\"Unsupported paymaster flow\\\")\" */ shl(229, 4594637))\n /// @src 1:1382:1430 \"payable(address(SYSTEM_CONTRACTS_OFFSET + 0x01))\"\n mstore(add(memPtr, 4), 32)\n /// @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\"\n mstore(/** @src 1:1382:1430 \"payable(address(SYSTEM_CONTRACTS_OFFSET + 0x01))\" */ add(memPtr, 36), 42)\n mstore(/** @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\" */ add(/** @src 1:1382:1430 \"payable(address(SYSTEM_CONTRACTS_OFFSET + 0x01))\" */ memPtr, /** @src 48:586:4173 \"contract MyPaymaster is IPaymaster {...\" */ 68), /** @src 1:1382:1430 \"payable(address(SYSTEM_CONTRACTS_OFFSET + 0x01))\" */ \"Failed to transfer funds to the \")\n mstore(add(memPtr, 100), \"bootloader\")\n revert(memPtr, 132)\n }\n }\n }\n data \".metadata\" hex\"a2646970667358221220b99ef07141bf7f486036e0b62c9970053bfbb59093df49b0de39c9ea0cd9b2a564736f6c63430008120033\"\n }\n}\n","hash":"0100010519bb64377807f00696cb2ce016187af77121e76d767341de0c2e85ca","factoryDependencies":{}}},"contracts/Root.sol":{"Root":{"abi":[{"inputs":[{"internalType":"string","name":"_greeting","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"greeting","type":"string"}],"name":"SetGreeting","type":"event"},{"inputs":[],"name":"greet","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_greeting","type":"string"}],"name":"setGreeting","outputs":[],"stateMutability":"nonpayable","type":"function"}],"metadata":{"optimizer_settings":"M3B3","solc_metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_greeting\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"greeting\",\"type\":\"string\"}],\"name\":\"SetGreeting\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"greet\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_greeting\",\"type\":\"string\"}],\"name\":\"setGreeting\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Root.sol\":\"Root\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"contracts/Root.sol\":{\"keccak256\":\"0xcb7eee0454dd8048fc04c0063560470ce25e4a9b06c7e96bca2fd5d02e7412a1\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://7aad0077a172d71b57a092f56fc3867b0c127ed92322b59c5c6632347484517a\",\"dweb:/ipfs/QmZpGCXxcVqZAfzZmVZSQnJBn4kRXAV3rLMh8x3zNu6hGv\"]}},\"version\":1}","zk_version":"1.3.9"},"evm":{"legacyAssembly":null,"assembly":"\t.text\n\t.file\t\"Root.sol:Root\"\n\t.globl\t__entry\n__entry:\n.func_begin0:\n\tnop\tstack+=[4]\n\tptr.add\tr1, r0, stack[@ptr_calldata]\n\tshr.s\t96, r1, r1\n\tand\t@CPI0_0[0], r1, stack[@calldatasize]\n\tadd\t128, r0, r1\n\tst.1\t64, r1\n\tand!\t1, r2, r1\n\tjump.ne\t@.BB0_1\n\tadd\tstack[@calldatasize], r0, r1\n\tsub.s!\t4, r1, r1\n\tjump.lt\t@.BB0_2\n\tptr.add\tstack[@ptr_calldata], r0, r1\n\tld\tr1, r1\n\tshr.s\t224, r1, r1\n\tsub.s!\t@CPI0_6[0], r1, r2\n\tjump.eq\t@.BB0_76\n\tsub.s!\t@CPI0_7[0], r1, r1\n\tjump.ne\t@.BB0_2\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tadd\tstack[@calldatasize], r0, r1\n\tsub.s\t4, r1, r2\n\tadd\t@CPI0_2[0], r0, r3\n\tsub.s!\t32, r2, r4\n\tadd\t0, r0, r4\n\tadd.lt\tr3, r0, r4\n\tand\t@CPI0_2[0], r2, r2\n\tsub.s!\t0, r2, r5\n\tadd.le\t0, r0, r3\n\tsub.s!\t@CPI0_2[0], r2, r2\n\tadd\tr4, r0, r2\n\tadd.eq\tr3, r0, r2\n\tsub.s!\t0, r2, r2\n\tjump.ne\t@.BB0_2\n\tptr.add\tstack[@ptr_calldata], r0, r2\n\tptr.add.s\t4, r2, r3\n\tld\tr3, r3\n\tsub.s!\t@CPI0_1[0], r3, r4\n\tjump.gt\t@.BB0_2\n\tadd\t35, r3, r4\n\tadd\t@CPI0_2[0], r0, r5\n\tsub!\tr4, r1, r6\n\tadd\t0, r0, r6\n\tadd.ge\tr5, r0, r6\n\tand\t@CPI0_2[0], r1, r1\n\tand\t@CPI0_2[0], r4, r4\n\tsub!\tr4, r1, r7\n\tadd.ge\t0, r0, r5\n\txor\tr4, r1, r1\n\tsub.s!\t@CPI0_2[0], r1, r1\n\tadd\tr6, r0, r1\n\tadd.eq\tr5, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tadd\t4, r3, r1\n\tptr.add\tr2, r1, r1\n\tld\tr1, r2\n\tsub.s!\t@CPI0_1[0], r2, r1\n\tjump.gt\t@.BB0_5\n\tadd\t191, r2, r4\n\tsub.s\t32, r0, r1\n\tand\tr4, r1, r4\n\tsub.s!\t@CPI0_1[0], r4, r5\n\tjump.gt\t@.BB0_5\n\tst.1\t64, r4\n\tst.1\t128, r2\n\tadd\t36, r3, r4\n\tadd\tr2, r4, r3\n\tadd\tstack[@calldatasize], r0, r5\n\tsub!\tr3, r5, r3\n\tjump.gt\t@.BB0_2\n\tand\t31, r2, r3\n\tptr.add\tstack[@ptr_calldata], r4, r4\n\tshr.s!\t5, r2, r5\n\tjump.eq\t@.BB0_85\n\tadd\tr0, r0, r6\n.BB0_52:\n\tshl.s\t5, r6, r7\n\tptr.add\tr4, r7, r8\n\tld\tr8, r8\n\tadd\t160, r7, r7\n\tst.1\tr7, r8\n\tadd\t1, r6, r6\n\tsub!\tr6, r5, r7\n\tjump.lt\t@.BB0_52\n.BB0_85:\n\tsub.s!\t0, r3, r6\n\tjump.eq\t@.BB0_54\n\tshl.s\t5, r5, r5\n\tptr.add\tr4, r5, r4\n\tshl.s\t3, r3, r3\n\tadd\t160, r5, r5\n\tld.1\tr5, r6\n\tshl\tr6, r3, r6\n\tshr\tr6, r3, r6\n\tld\tr4, r4\n\tsub\t256, r3, r3\n\tshr\tr4, r3, r4\n\tshl\tr4, r3, r3\n\tor\tr3, r6, r3\n\tst.1\tr5, r3\n.BB0_54:\n\tadd\t160, r2, r2\n\tst.1\tr2, r0\n\tld.1\t128, r2\n\tsub.s!\t@CPI0_1[0], r2, r3\n\tjump.gt\t@.BB0_5\n\tsload\tr0, r4\n\tand!\t1, r4, r3\n\tshr.s\t1, r4, r3\n\tand\t127, r3, r5\n\tadd.eq\tr5, r0, r3\n\tsub.s!\t31, r3, r5\n\tadd\t0, r0, r5\n\tadd.gt\t1, r0, r5\n\txor\tr4, r5, r4\n\tand!\t1, r4, r4\n\tjump.ne\t@.BB0_21\n\tsub.s!\t32, r3, r4\n\tjump.lt\t@.BB0_59\n\tadd\t31, r2, r4\n\tshr.s\t5, r4, r4\n\tadd\t@CPI0_8[0], r4, r4\n\tadd\t@CPI0_8[0], r0, r5\n\tsub.s!\t32, r2, r6\n\tadd.lt\tr5, r0, r4\n\tst.1\t0, r0\n\tadd\t31, r3, r3\n\tshr.s\t5, r3, r3\n\tadd\t@CPI0_8[0], r3, r3\n\tsub!\tr4, r3, r5\n\tjump.ge\t@.BB0_59\n.BB0_60:\n\tsstore\tr4, r0\n\tadd\t1, r4, r4\n\tsub!\tr4, r3, r5\n\tjump.lt\t@.BB0_60\n.BB0_59:\n\tsub.s!\t31, r2, r3\n\tjump.le\t@.BB0_72\n\tand!\tr2, r1, r4\n\tadd\t@CPI0_8[0], r0, r3\n\tadd\t160, r0, r5\n\tst.1\t0, r0\n\tjump.eq\t@.BB0_69\n\tadd\t32, r0, r7\n\tadd\t@CPI0_8[0], r0, r3\n\tadd\tr0, r0, r5\n.BB0_67:\n\tadd\tr7, r0, r6\n\tadd\t128, r6, r7\n\tld.1\tr7, r7\n\tsstore\tr3, r7\n\tadd\t32, r6, r7\n\tadd\t1, r3, r3\n\tadd\t32, r5, r5\n\tsub!\tr5, r4, r8\n\tjump.lt\t@.BB0_67\n\tadd\t160, r6, r5\n.BB0_69:\n\tsub!\tr4, r2, r4\n\tjump.ge\t@.BB0_71\n\tshl.s\t3, r2, r4\n\tand\t248, r4, r4\n\tsub.s\t1, r0, r6\n\tshr\tr6, r4, r4\n\txor\tr4, r6, r4\n\tld.1\tr5, r5\n\tand\tr5, r4, r4\n\tsstore\tr3, r4\n.BB0_71:\n\tadd\t1, r0, r3\n\tshl.s\t1, r2, r4\n\tjump\t@.BB0_61\n.BB0_1:\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tadd\tstack[@calldatasize], r0, r1\n\tadd\t31, r1, r2\n\tsub.s\t32, r0, r9\n\tand\tr2, r9, r4\n\tld.1\t64, r2\n\tadd\tr4, r2, r3\n\tsub!\tr3, r4, r4\n\tadd\t0, r0, r4\n\tadd.lt\t1, r0, r4\n\tsub.s!\t@CPI0_1[0], r3, r5\n\tjump.gt\t@.BB0_5\n\tand!\t1, r4, r4\n\tjump.ne\t@.BB0_5\n\tst.1\t64, r3\n\tand\t31, r1, r3\n\tptr.add\tstack[@ptr_calldata], r0, r4\n\tshr.s!\t5, r1, r5\n\tjump.eq\t@.BB0_86\n\tadd\tr0, r0, r6\n.BB0_8:\n\tshl.s\t5, r6, r7\n\tadd\tr2, r7, r8\n\tptr.add\tr4, r7, r7\n\tld\tr7, r7\n\tst.1\tr8, r7\n\tadd\t1, r6, r6\n\tsub!\tr6, r5, r7\n\tjump.lt\t@.BB0_8\n.BB0_86:\n\tsub.s!\t0, r3, r6\n\tjump.eq\t@.BB0_10\n\tshl.s\t5, r5, r5\n\tptr.add\tr4, r5, r4\n\tadd\tr2, r5, r5\n\tshl.s\t3, r3, r3\n\tld.1\tr5, r6\n\tshl\tr6, r3, r6\n\tshr\tr6, r3, r6\n\tld\tr4, r4\n\tsub\t256, r3, r3\n\tshr\tr4, r3, r4\n\tshl\tr4, r3, r3\n\tor\tr3, r6, r3\n\tst.1\tr5, r3\n.BB0_10:\n\tadd\t@CPI0_2[0], r0, r3\n\tsub.s!\t32, r1, r4\n\tadd\t0, r0, r4\n\tadd.lt\tr3, r0, r4\n\tand\t@CPI0_2[0], r1, r5\n\tsub.s!\t0, r5, r6\n\tadd.le\t0, r0, r3\n\tsub.s!\t@CPI0_2[0], r5, r5\n\tadd.ne\tr4, r0, r3\n\tsub.s!\t0, r3, r3\n\tjump.ne\t@.BB0_2\n\tld.1\tr2, r4\n\tsub.s!\t@CPI0_1[0], r4, r3\n\tjump.gt\t@.BB0_2\n\tadd\tr2, r1, r3\n\tadd\tr4, r2, r1\n\tadd\t31, r1, r2\n\tadd\t@CPI0_2[0], r0, r4\n\tsub!\tr2, r3, r5\n\tadd\t0, r0, r5\n\tadd.ge\tr4, r0, r5\n\tand\t@CPI0_2[0], r2, r2\n\tand\t@CPI0_2[0], r3, r6\n\tsub!\tr2, r6, r7\n\tadd.ge\t0, r0, r4\n\txor\tr2, r6, r2\n\tsub.s!\t@CPI0_2[0], r2, r2\n\tadd\tr5, r0, r2\n\tadd.eq\tr4, r0, r2\n\tsub.s!\t0, r2, r2\n\tjump.ne\t@.BB0_2\n\tld.1\tr1, r2\n\tsub.s!\t@CPI0_1[0], r2, r4\n\tjump.le\t@.BB0_14\n.BB0_5:\n\tadd\t@CPI0_11[0], r0, r1\n\tst.1\t0, r1\n\tadd\t65, r0, r1\n\tst.1\t4, r1\n\tadd\t@CPI0_12[0], r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB0_76:\n\tcontext.get_context_u128\tr1\n\tsub.s!\t0, r1, r1\n\tjump.ne\t@.BB0_2\n\tsub.s\t4, r0, r1\n\tadd\tstack[@calldatasize], r1, r1\n\tadd\t@CPI0_2[0], r0, r2\n\tsub.s!\t0, r1, r3\n\tadd\t0, r0, r3\n\tadd.lt\tr2, r0, r3\n\tand\t@CPI0_2[0], r1, r1\n\tsub.s!\t0, r1, r4\n\tadd.le\t0, r0, r2\n\tsub.s!\t@CPI0_2[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub.s!\t0, r1, r1\n\tjump.eq\t@.BB0_78\n.BB0_2:\n\tadd\tr0, r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB0_78:\n\tsload\tr0, r3\n\tand!\t1, r3, r4\n\tshr.s\t1, r3, r1\n\tand\t127, r1, r2\n\tadd\tr1, r0, r7\n\tadd.eq\tr2, r0, r7\n\tsub.s!\t31, r7, r2\n\tadd\t0, r0, r2\n\tadd.gt\t1, r0, r2\n\txor\tr3, r2, r2\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_79\n.BB0_21:\n\tadd\t@CPI0_11[0], r0, r1\n\tst.1\t0, r1\n\tadd\t34, r0, r1\n\tst.1\t4, r1\n\tadd\t@CPI0_12[0], r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB0_79:\n\tld.1\t64, r1\n\tst.1.inc\tr1, r7, r2\n\tsub.s!\t0, r4, r4\n\tjump.eq\t@.BB0_81\n\tst.1\t0, r0\n\tsub.s!\t0, r7, r3\n\tadd\tr0, r0, r3\n\tjump.eq\t@.BB0_80\n\tadd\t@CPI0_8[0], r0, r4\n\tadd\tr0, r0, r3\n.BB0_84:\n\tadd\tr2, r3, r5\n\tsload\tr4, r6\n\tst.1\tr5, r6\n\tadd\t1, r4, r4\n\tadd\t32, r3, r3\n\tsub!\tr3, r7, r5\n\tjump.lt\t@.BB0_84\n\tjump\t@.BB0_80\n.BB0_14:\n\tadd\t63, r2, r4\n\tand\tr4, r9, r4\n\tld.1\t64, r7\n\tadd\tr7, r4, r4\n\tsub!\tr4, r7, r5\n\tadd\t0, r0, r5\n\tadd.lt\t1, r0, r5\n\tsub.s!\t@CPI0_1[0], r4, r6\n\tjump.gt\t@.BB0_5\n\tand!\t1, r5, r5\n\tjump.ne\t@.BB0_5\n\tst.1\t64, r4\n\tst.1.inc\tr7, r2, r6\n\tadd\tr1, r2, r4\n\tadd\t32, r4, r4\n\tsub!\tr4, r3, r3\n\tjump.gt\t@.BB0_2\n\tsub.s!\t0, r2, r3\n\tjump.eq\t@.BB0_20\n\tadd\tr0, r0, r3\n.BB0_19:\n\tadd\tr3, r6, r4\n\tadd\t32, r3, r3\n\tadd\tr3, r1, r5\n\tld.1\tr5, r5\n\tst.1\tr4, r5\n\tsub!\tr3, r2, r4\n\tjump.lt\t@.BB0_19\n.BB0_20:\n\tadd\tr6, r2, r1\n\tst.1\tr1, r0\n\tsload\tr0, r1\n\tand!\t1, r1, r2\n\tshr.s\t1, r1, r1\n\tand\t127, r1, r3\n\tadd.ne\tr1, r0, r3\n\tsub.s!\t31, r3, r1\n\tadd\t0, r0, r1\n\tadd.gt\t1, r0, r1\n\tand\t1, r1, r1\n\tsub!\tr2, r1, r1\n\tjump.ne\t@.BB0_21\n\tsub.s!\t32, r3, r1\n\tjump.lt\t@.BB0_27\n\tadd\tr3, r0, stack-[1]\n\tst.1\t0, r0\n\tadd\t@CPI0_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI0_3[0], r1, r1\n\tadd\t32784, r0, r2\n\tadd\tr9, r0, stack-[4]\n\tadd\tr7, r0, stack-[3]\n\tadd\tr6, r0, stack-[2]\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tadd\tstack-[2], r0, r6\n\tadd\tstack-[3], r0, r7\n\tadd\tstack-[4], r0, r9\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_2\n\tld\tr1, r1\n\tadd\tstack-[1], r0, r2\n\tadd\t31, r2, r2\n\tshr.s\t5, r2, r2\n\tadd\tr1, r2, r2\n\tsub!\tr1, r2, r3\n\tjump.ge\t@.BB0_27\n.BB0_26:\n\tsstore\tr1, r0\n\tadd\t1, r1, r1\n\tsub!\tr1, r2, r3\n\tjump.lt\t@.BB0_26\n.BB0_27:\n\tadd\t@CPI0_4[0], r0, r1\n\tsstore\tr0, r1\n\tld.1\tr7, r4\n\tsub.s!\t@CPI0_1[0], r4, r1\n\tjump.gt\t@.BB0_5\n\tsub.s!\t31, r4, r1\n\tjump.le\t@.BB0_37\n\tadd\tr4, r0, stack-[2]\n\tst.1\t0, r0\n\tadd\t@CPI0_0[0], r0, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t192, r1, r1\n\tor\t@CPI0_3[0], r1, r1\n\tadd\t32784, r0, r2\n\tadd\tr9, r0, stack-[4]\n\tadd\tr7, r0, stack-[3]\n\tnear_call\tr0, @__staticcall, @DEFAULT_UNWIND\n\tadd\tstack-[3], r0, r6\n\tadd\tstack-[4], r0, r3\n\tand!\t1, r2, r2\n\tjump.eq\t@.BB0_2\n\tadd\tstack-[2], r0, r7\n\tand!\tr7, r3, r3\n\tadd\t32, r0, r2\n\tld\tr1, r1\n\tjump.eq\t@.BB0_34\n\tadd\t32, r0, r2\n\tadd\tr0, r0, r4\n.BB0_33:\n\tadd\tr2, r6, r5\n\tld.1\tr5, r5\n\tsstore\tr1, r5\n\tadd\t32, r2, r2\n\tadd\t1, r1, r1\n\tadd\t32, r4, r4\n\tsub!\tr4, r3, r5\n\tjump.lt\t@.BB0_33\n.BB0_34:\n\tsub!\tr3, r7, r3\n\tjump.ge\t@.BB0_36\n\tshl.s\t3, r7, r3\n\tand\t248, r3, r3\n\tsub.s\t1, r0, r4\n\tshr\tr4, r3, r3\n\txor\tr3, r4, r3\n\tadd\tr2, r6, r2\n\tld.1\tr2, r2\n\tand\tr2, r3, r2\n\tsstore\tr1, r2\n.BB0_36:\n\tadd\t1, r0, r1\n\tshl.s\t1, r7, r2\n\tjump\t@.BB0_29\n.BB0_81:\n\tsub.s\t256, r0, r4\n\tand\tr3, r4, r3\n\tst.1\tr2, r3\n\tsub.s!\t0, r7, r2\n\tadd\t32, r0, r3\n\tadd.eq\t0, r0, r3\n.BB0_80:\n\tadd\t32, r3, r2\n\tadd\tr1, r0, stack-[4]\n\tnear_call\tr0, @finalize_allocation, @DEFAULT_UNWIND\n\tld.1\t64, r1\n\tadd\tr1, r0, stack-[3]\n\tadd\tstack-[4], r0, r2\n\tnear_call\tr0, @abi_encode_string, @DEFAULT_UNWIND\n\tadd\tstack-[3], r0, r4\n\tsub\tr1, r4, r1\n\tadd\t@CPI0_0[0], r0, r2\n\tsub.s!\t@CPI0_0[0], r1, r3\n\tadd.ge\tr2, r0, r1\n\tsub.s!\t@CPI0_0[0], r4, r3\n\tadd.lt\tr4, r0, r2\n\tshl.s\t64, r2, r2\n\tshl.s\t96, r1, r1\n\tor\tr1, r2, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_37:\n\tsub.s!\t0, r4, r1\n\tadd\tr0, r0, r1\n\tjump.eq\t@.BB0_39\n\tld.1\tr6, r1\n.BB0_39:\n\tshl.s\t3, r4, r2\n\tsub.s\t1, r0, r3\n\tshr\tr3, r2, r2\n\txor\tr2, r3, r2\n\tand\tr1, r2, r2\n\tshl.s\t1, r4, r1\n.BB0_29:\n\tor\tr2, r1, r1\n\tsstore\tr0, r1\n\tadd\t32, r0, r1\n\tst.2\t256, r1\n\tst.2\t288, r0\n\tadd\t@CPI0_5[0], r0, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_72:\n\tsub.s!\t0, r2, r3\n\tadd\tr0, r0, r3\n\tjump.eq\t@.BB0_74\n\tld.1\t160, r3\n.BB0_74:\n\tshl.s\t3, r2, r4\n\tsub.s\t1, r0, r5\n\tshr\tr5, r4, r4\n\txor\tr4, r5, r4\n\tand\tr3, r4, r4\n\tshl.s\t1, r2, r3\n.BB0_61:\n\tor\tr4, r3, r2\n\tsstore\tr0, r2\n\tadd\t32, r0, r3\n\tld.1\t64, r2\n\tst.1.inc\tr2, r3, r4\n\tld.1\t128, r3\n\tst.1\tr4, r3\n\tadd\t64, r2, r4\n\tsub.s!\t0, r3, r5\n\tjump.eq\t@.BB0_64\n\tadd\tr0, r0, r5\n.BB0_63:\n\tadd\tr5, r4, r6\n\tadd\t160, r5, r7\n\tld.1\tr7, r7\n\tst.1\tr6, r7\n\tadd\t32, r5, r5\n\tsub!\tr5, r3, r6\n\tjump.lt\t@.BB0_63\n.BB0_64:\n\tadd\tr3, r4, r4\n\tst.1\tr4, r0\n\tadd\t95, r3, r3\n\tand\tr3, r1, r1\n\tadd\t@CPI0_0[0], r0, r3\n\tsub.s!\t@CPI0_0[0], r2, r4\n\tadd.ge\tr3, r0, r2\n\tshl.s\t64, r2, r2\n\tsub.s!\t@CPI0_0[0], r1, r4\n\tadd.ge\tr3, r0, r1\n\tshl.s\t96, r1, r1\n\tor\tr1, r2, r1\n\tcontext.gas_left\tr2\n\tsub.s!\t@CPI0_0[0], r2, r4\n\tadd.ge\tr3, r0, r2\n\tshl.s\t192, r2, r2\n\tor\tr2, r1, r1\n\tor\t@CPI0_9[0], r1, r1\n\tadd\t32781, r0, r2\n\tadd\t1, r0, r3\n\tadd\t@CPI0_10[0], r0, r4\n\tnear_call\tr0, @__farcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r1\n\tjump.eq\t@.BB0_2\n\tadd\tr0, r0, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.func_end0:\n\nfinalize_allocation:\n.func_begin1:\n\tadd\t31, r2, r2\n\tsub.s\t32, r0, r3\n\tand\tr2, r3, r2\n\tadd\tr2, r1, r1\n\tsub!\tr1, r2, r2\n\tadd\t0, r0, r2\n\tadd.lt\t1, r0, r2\n\tsub.s!\t@CPI1_0[0], r1, r3\n\tjump.gt\t@.BB1_2\n\tand!\t1, r2, r2\n\tjump.ne\t@.BB1_2\n\tst.1\t64, r1\n\tret\n.BB1_2:\n\tadd\t@CPI1_1[0], r0, r1\n\tst.1\t0, r1\n\tadd\t65, r0, r1\n\tst.1\t4, r1\n\tadd\t@CPI1_2[0], r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.func_end1:\n\nabi_encode_string:\n.func_begin2:\n\tadd\t32, r0, r3\n\tst.1.inc\tr1, r3, r4\n\tld.1\tr2, r3\n\tst.1\tr4, r3\n\tadd\t64, r1, r1\n\tsub.s!\t0, r3, r4\n\tjump.eq\t@.BB2_3\n\tadd\tr0, r0, r4\n.BB2_2:\n\tadd\tr1, r4, r5\n\tadd\t32, r4, r4\n\tadd\tr4, r2, r6\n\tld.1\tr6, r6\n\tst.1\tr5, r6\n\tsub!\tr4, r3, r5\n\tjump.lt\t@.BB2_2\n.BB2_3:\n\tadd\tr1, r3, r2\n\tst.1\tr2, r0\n\tadd\t31, r3, r2\n\tsub.s\t32, r0, r3\n\tand\tr2, r3, r2\n\tadd\tr1, r2, r1\n\tret\n.func_end2:\n\n__farcall:\n.func_begin3:\n.tmp0:\n\tfar_call\tr1, r2, @.BB3_2\n.tmp1:\n\tadd\t1, r0, r2\n\tret\n.BB3_2:\n.tmp2:\n\tadd\tr0, r0, r2\n\tret\n.func_end3:\n\n__staticcall:\n.func_begin4:\n.tmp3:\n\tfar_call.static\tr1, r2, @.BB4_2\n.tmp4:\n\tadd\t1, r0, r2\n\tret\n.BB4_2:\n.tmp5:\n\tadd\tr0, r0, r2\n\tret\n.func_end4:\n\n\t.data\n\t.p2align\t5\ncalldatasize:\n\t.cell 0\n\n\t.p2align\t5\nptr_calldata:\n.cell\t0\n\n\t.note.GNU-stack\n\t.rodata\nCPI0_0:\n\t.cell 4294967295\nCPI0_1:\nCPI1_0:\n\t.cell 18446744073709551615\nCPI0_2:\n\t.cell -57896044618658097711785492504343953926634992332820282019728792003956564819968\nCPI0_3:\n\t.cell 904625697166532776746648320380374280103671757735618107014721178055227736064\nCPI0_4:\n\t.cell 32752267657646007025708612790036405947521673152753209189400257052204578373656\nCPI0_5:\n\t.cell 53919893334301279589334030174039261352344891250716429051063678533632\nCPI0_6:\n\t.cell 3484299799\nCPI0_7:\n\t.cell 2752735330\nCPI0_8:\n\t.cell 18569430475105882587588266137607568536673111973893317399460219858819262702947\nCPI0_9:\n\t.cell 904625697166532776746648320380374280103671755200316906558262375061821325312\nCPI0_10:\n\t.cell 35131822852738385190521691112671542401847620160175231689397754584237974187433\nCPI0_11:\nCPI1_1:\n\t.cell 35408467139433450592217433187231851964531694900788300625387963629091585785856\nCPI0_12:\nCPI1_2:\n\t.cell 2852213850513516153367582212096\n","bytecode":{"object":"0002000000000002000400000000000200010000000103550000006001100270000000920010019d0000008001000039000000400010043f0000000101200190000000a80000c13d0000000001000031000000040110008c0000010e0000413d0000000101000367000000000101043b000000e001100270000000980210009c000000fd0000613d000000990110009c0000010e0000c13d0000000001000416000000000110004c0000010e0000c13d0000000001000031000000040210008a0000009403000041000000200420008c000000000400001900000000040340190000009402200197000000000520004c000000000300a019000000940220009c00000000020400190000000002036019000000000220004c0000010e0000c13d00000001020003670000000403200370000000000303043b000000930430009c0000010e0000213d00000023043000390000009405000041000000000614004b0000000006000019000000000605801900000094011001970000009404400197000000000714004b0000000005008019000000000114013f000000940110009c00000000010600190000000001056019000000000110004c0000010e0000c13d0000000401300039000000000112034f000000000201043b000000930120009c000000f70000213d000000bf04200039000000200100008a000000000414016f000000930540009c000000f70000213d000000400040043f000000800020043f000000240430003900000000034200190000000005000031000000000353004b0000010e0000213d0000001f0320018f00000001044003670000000505200272000000560000613d00000000060000190000000507600210000000000874034f000000000808043b000000a00770003900000000008704350000000106600039000000000756004b0000004e0000413d000000000630004c000000650000613d0000000505500210000000000454034f0000000303300210000000a005500039000000000605043300000000063601cf000000000636022f000000000404043b0000010003300089000000000434022f00000000033401cf000000000363019f0000000000350435000000a0022000390000000000020435000000800200043d000000930320009c000000f70000213d000000000400041a000000010340019000000001034002700000007f0530018f00000000030560190000001f0530008c00000000050000190000000105002039000000000454013f00000001044001900000011c0000c13d000000200430008c000000870000413d0000001f0420003900000005044002700000009a044000410000009a05000041000000200620008c000000000405401900000000000004350000001f0330003900000005033002700000009a03300041000000000534004b000000870000813d000000000004041b0000000104400039000000000534004b000000830000413d0000001f0320008c000001d80000a13d00000000041201700000009a03000041000000a00500003900000000000004350000009b0000613d00000020070000390000009a030000410000000005000019000000000607001900000080076000390000000007070433000000000073041b000000200760003900000001033000390000002005500039000000000845004b000000910000413d000000a005600039000000000424004b000000a50000813d0000000304200210000000f80440018f000000010600008a000000000446022f000000000464013f0000000005050433000000000445016f000000000043041b00000001030000390000000104200210000001e20000013d0000000001000416000000000110004c0000010e0000c13d00000000010000310000001f02100039000000200900008a000000000492016f000000400200043d0000000003240019000000000443004b00000000040000190000000104004039000000930530009c000000f70000213d0000000104400190000000f70000c13d000000400030043f0000001f0310018f00000001040003670000000505100272000000c60000613d000000000600001900000005076002100000000008720019000000000774034f000000000707043b00000000007804350000000106600039000000000756004b000000be0000413d000000000630004c000000d50000613d0000000505500210000000000454034f00000000055200190000000303300210000000000605043300000000063601cf000000000636022f000000000404043b0000010003300089000000000434022f00000000033401cf000000000363019f00000000003504350000009403000041000000200410008c000000000400001900000000040340190000009405100197000000000650004c000000000300a019000000940550009c000000000304c019000000000330004c0000010e0000c13d0000000004020433000000930340009c0000010e0000213d000000000312001900000000012400190000001f021000390000009404000041000000000532004b0000000005000019000000000504801900000094022001970000009406300197000000000762004b0000000004008019000000000262013f000000940220009c00000000020500190000000002046019000000000220004c0000010e0000c13d0000000002010433000000930420009c000001340000a13d0000009d0100004100000000001004350000004101000039000000040010043f0000009e0100004100000243000104300000000001000416000000000110004c0000010e0000c13d000000040100008a00000000011000310000009402000041000000000310004c000000000300001900000000030240190000009401100197000000000410004c000000000200a019000000940110009c00000000010300190000000001026019000000000110004c000001100000613d00000000010000190000024300010430000000000300041a000000010430019000000001013002700000007f0210018f000000000701001900000000070260190000001f0270008c00000000020000190000000102002039000000000223013f0000000102200190000001220000613d0000009d0100004100000000001004350000002201000039000000040010043f0000009e010000410000024300010430000000400100043d0000000002710436000000000440004c000001af0000613d0000000000000435000000000370004c0000000003000019000001b50000613d0000009a0400004100000000030000190000000005320019000000000604041a000000000065043500000001044000390000002003300039000000000573004b0000012c0000413d000001b50000013d0000003f04200039000000000494016f000000400700043d0000000004470019000000000574004b00000000050000190000000105004039000000930640009c000000f70000213d0000000105500190000000f70000c13d000000400040043f000000000627043600000000042100190000002004400039000000000334004b0000010e0000213d000000000320004c0000014f0000613d000000000300001900000000046300190000002003300039000000000513001900000000050504330000000000540435000000000423004b000001480000413d00000000012600190000000000010435000000000100041a000000010210019000000001011002700000007f0310018f000000000301c0190000001f0130008c00000000010000190000000101002039000000010110018f000000000112004b0000011c0000c13d000000200130008c0000017b0000413d000100000003001d000000000000043500000092010000410000000002000414000000920320009c0000000001024019000000c00110021000000095011001c70000801002000039000400000009001d000300000007001d000200000006001d0241023c0000040f00000002060000290000000307000029000000040900002900000001022001900000010e0000613d000000000101043b00000001020000290000001f0220003900000005022002700000000002210019000000000321004b0000017b0000813d000000000001041b0000000101100039000000000321004b000001770000413d0000009601000041000000000010041b0000000004070433000000930140009c000000f70000213d0000001f0140008c000001c70000a13d000200000004001d000000000000043500000092010000410000000002000414000000920320009c0000000001024019000000c00110021000000095011001c70000801002000039000400000009001d000300000007001d0241023c0000040f0000000306000029000000040300002900000001022001900000010e0000613d000000020700002900000000033701700000002002000039000000000101043b000001a10000613d0000002002000039000000000400001900000000056200190000000005050433000000000051041b000000200220003900000001011000390000002004400039000000000534004b000001990000413d000000000373004b000001ac0000813d0000000303700210000000f80330018f000000010400008a000000000334022f000000000343013f00000000026200190000000002020433000000000232016f000000000021041b00000001010000390000000102700210000001d10000013d000001000400008a000000000343016f0000000000320435000000000270004c000000200300003900000000030060190000002002300039000400000001001d0241020e0000040f000000400100043d000300000001001d0000000402000029024102210000040f000000030400002900000000014100490000009202000041000000920310009c0000000001028019000000920340009c000000000204401900000040022002100000006001100210000000000121019f000002420001042e000000000140004c0000000001000019000001cb0000613d00000000010604330000000302400210000000010300008a000000000223022f000000000232013f000000000221016f0000000101400210000000000112019f000000000010041b0000002001000039000001000010044300000120000004430000009701000041000002420001042e000000000320004c0000000003000019000001dc0000613d000000a00300043d0000000304200210000000010500008a000000000445022f000000000454013f000000000443016f0000000103200210000000000234019f000000000020041b0000002003000039000000400200043d0000000004320436000000800300043d00000000003404350000004004200039000000000530004c000001f40000613d00000000050000190000000006450019000000a007500039000000000707043300000000007604350000002005500039000000000635004b000001ed0000413d000000000443001900000000000404350000005f03300039000000000113016f0000009203000041000000920420009c00000000020380190000004002200210000000920410009c00000000010380190000006001100210000000000121019f0000000002000414000000920420009c0000000002038019000000c002200210000000000112019f0000009b011001c70000800d0200003900000001030000390000009c04000041024102370000040f00000001012001900000010e0000613d0000000001000019000002420001042e0000001f02200039000000200300008a000000000232016f0000000001120019000000000221004b00000000020000190000000102004039000000930310009c0000021b0000213d00000001022001900000021b0000c13d000000400010043f000000000001042d0000009d0100004100000000001004350000004101000039000000040010043f0000009e01000041000002430001043000000020030000390000000004310436000000000302043300000000003404350000004001100039000000000430004c000002300000613d000000000400001900000000054100190000002004400039000000000624001900000000060604330000000000650435000000000534004b000002290000413d000000000231001900000000000204350000001f02300039000000200300008a000000000232016f0000000001210019000000000001042d0000023a002104210000000102000039000000000001042d0000000002000019000000000001042d0000023f002104230000000102000039000000000001042d0000000002000019000000000001042d0000024100000432000002420001042e0000024300010430000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff000000000000000000000000000000000000000000000000ffffffffffffffff8000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000002000000000000000000000000048692066726f6d20526f6f740000000000000000000000000000000000000018000000020000000000000000000000000000004000000100000000000000000000000000000000000000000000000000000000000000000000000000cfae321700000000000000000000000000000000000000000000000000000000a4136862290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56302000000000000000000000000000000000000000000000000000000000000004dabe8361a35a905ec9d530e301d2e5c6cf44c65cdd7768f522a77a373436da94e487b710000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b3b95f608f07b1a53792c7ccc830e1cdbcce8dfb925732abaa19415ab1968096"},"methodIdentifiers":{"greet()":"cfae3217","setGreeting(string)":"a4136862"}},"irOptimized":"/// @use-src 49:\"contracts/Root.sol\"\nobject \"Root_9230\" {\n code {\n {\n /// @src 49:62:471 \"contract Root {...\"\n mstore(64, memoryguard(0x80))\n if callvalue() { revert(0, 0) }\n let programSize := datasize(\"Root_9230\")\n let argSize := sub(codesize(), programSize)\n let memoryDataOffset := allocate_memory(argSize)\n codecopy(memoryDataOffset, programSize, argSize)\n let _1 := add(memoryDataOffset, argSize)\n let _2 := 32\n if slt(sub(_1, memoryDataOffset), _2)\n {\n revert(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 49:62:471 \"contract Root {...\"\n let offset := mload(memoryDataOffset)\n let _3 := sub(shl(64, 1), 1)\n if gt(offset, _3)\n {\n revert(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 49:62:471 \"contract Root {...\"\n let _4 := add(memoryDataOffset, offset)\n let _5 := 0x1f\n if iszero(slt(add(_4, _5), _1))\n {\n revert(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 49:62:471 \"contract Root {...\"\n let _6 := mload(_4)\n if gt(_6, _3)\n {\n mstore(/** @src -1:-1:-1 */ 0, /** @src 49:62:471 \"contract Root {...\" */ shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(/** @src -1:-1:-1 */ 0, /** @src 49:62:471 \"contract Root {...\" */ 0x24)\n }\n let _7 := not(31)\n let array := allocate_memory(add(and(add(_6, _5), _7), _2))\n mstore(array, _6)\n if gt(add(add(_4, _6), _2), _1)\n {\n revert(/** @src -1:-1:-1 */ 0, 0)\n }\n /// @src 49:62:471 \"contract Root {...\"\n let i := /** @src -1:-1:-1 */ 0\n /// @src 49:62:471 \"contract Root {...\"\n for { } lt(i, _6) { i := add(i, _2) }\n {\n mstore(add(add(array, i), _2), mload(add(add(_4, i), _2)))\n }\n mstore(add(add(array, _6), _2), /** @src -1:-1:-1 */ 0)\n /// @src 49:62:471 \"contract Root {...\"\n let _8 := extract_byte_array_length(sload(/** @src -1:-1:-1 */ 0))\n /// @src 49:62:471 \"contract Root {...\"\n if gt(_8, _5)\n {\n mstore(/** @src -1:-1:-1 */ 0, 0)\n /// @src 49:62:471 \"contract Root {...\"\n let data := keccak256(/** @src -1:-1:-1 */ 0, /** @src 49:62:471 \"contract Root {...\" */ _2)\n clear_storage_range_bytes1(data, add(data, shr(5, add(_8, _5))))\n }\n let _9 := add(\"Hi from Root\", 24)\n sstore(/** @src -1:-1:-1 */ 0, /** @src 49:62:471 \"contract Root {...\" */ _9)\n let newLen := mload(array)\n if gt(newLen, _3)\n {\n mstore(/** @src -1:-1:-1 */ 0, /** @src 49:62:471 \"contract Root {...\" */ shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(/** @src -1:-1:-1 */ 0, /** @src 49:62:471 \"contract Root {...\" */ 0x24)\n }\n let _10 := extract_byte_array_length(_9)\n if gt(_10, _5)\n {\n mstore(/** @src -1:-1:-1 */ 0, 0)\n /// @src 49:62:471 \"contract Root {...\"\n let data_1 := keccak256(/** @src -1:-1:-1 */ 0, /** @src 49:62:471 \"contract Root {...\" */ _2)\n let deleteStart := add(data_1, shr(5, add(newLen, _5)))\n if lt(newLen, _2) { deleteStart := data_1 }\n clear_storage_range_bytes1(deleteStart, add(data_1, shr(5, add(_10, _5))))\n }\n let srcOffset := /** @src -1:-1:-1 */ 0\n /// @src 49:62:471 \"contract Root {...\"\n srcOffset := _2\n switch gt(newLen, _5)\n case 1 {\n let loopEnd := and(newLen, _7)\n mstore(/** @src -1:-1:-1 */ 0, 0)\n /// @src 49:62:471 \"contract Root {...\"\n let dstPtr := keccak256(/** @src -1:-1:-1 */ 0, /** @src 49:62:471 \"contract Root {...\" */ _2)\n let i_1 := /** @src -1:-1:-1 */ 0\n /// @src 49:62:471 \"contract Root {...\"\n for { } lt(i_1, loopEnd) { i_1 := add(i_1, _2) }\n {\n sstore(dstPtr, mload(add(array, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, _2)\n }\n if lt(loopEnd, newLen)\n {\n let lastValue := mload(add(array, srcOffset))\n sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), not(0)))))\n }\n sstore(/** @src -1:-1:-1 */ 0, /** @src 49:62:471 \"contract Root {...\" */ add(shl(1, newLen), 1))\n }\n default {\n let value := /** @src -1:-1:-1 */ 0\n /// @src 49:62:471 \"contract Root {...\"\n if newLen\n {\n value := mload(add(array, srcOffset))\n }\n sstore(/** @src -1:-1:-1 */ 0, /** @src 49:62:471 \"contract Root {...\" */ or(and(value, not(shr(shl(3, newLen), not(0)))), shl(1, newLen)))\n }\n let _11 := mload(64)\n let _12 := datasize(\"Root_9230_deployed\")\n codecopy(_11, dataoffset(\"Root_9230_deployed\"), _12)\n return(_11, _12)\n }\n function allocate_memory(size) -> memPtr\n {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n if or(gt(newFreePtr, sub(shl(64, 1), 1)), lt(newFreePtr, memPtr))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n mstore(64, newFreePtr)\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function clear_storage_range_bytes1(start, end)\n {\n for { } lt(start, end) { start := add(start, 1) }\n { sstore(start, 0) }\n }\n }\n /// @use-src 49:\"contracts/Root.sol\"\n object \"Root_9230_deployed\" {\n code {\n {\n /// @src 49:62:471 \"contract Root {...\"\n let _1 := memoryguard(0x80)\n mstore(64, _1)\n if iszero(lt(calldatasize(), 4))\n {\n let _2 := 0\n switch shr(224, calldataload(_2))\n case 0xa4136862 {\n if callvalue() { revert(_2, _2) }\n let _3 := 32\n if slt(add(calldatasize(), not(3)), _3) { revert(_2, _2) }\n let offset := calldataload(4)\n let _4 := 0xffffffffffffffff\n if gt(offset, _4) { revert(_2, _2) }\n if iszero(slt(add(offset, 35), calldatasize())) { revert(_2, _2) }\n let _5 := calldataload(add(4, offset))\n if gt(_5, _4)\n {\n mstore(_2, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(_2, 36)\n }\n let _6 := not(31)\n finalize_allocation(_1, add(and(add(_5, 0x1f), _6), _3))\n mstore(_1, _5)\n if gt(add(add(offset, _5), 36), calldatasize()) { revert(_2, _2) }\n calldatacopy(add(_1, _3), add(offset, 36), _5)\n mstore(add(add(_1, _5), _3), _2)\n let newLen := mload(_1)\n if gt(newLen, _4)\n {\n mstore(_2, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(_2, 36)\n }\n let _7 := extract_byte_array_length(sload(_2))\n if gt(_7, 0x1f)\n {\n mstore(_2, _2)\n let _8 := 18569430475105882587588266137607568536673111973893317399460219858819262702947\n let deleteStart := add(_8, shr(5, add(newLen, 0x1f)))\n if lt(newLen, _3) { deleteStart := _8 }\n let _9 := add(_8, shr(5, add(_7, 0x1f)))\n let start := deleteStart\n for { } lt(start, _9) { start := add(start, 1) }\n { sstore(start, _2) }\n }\n let srcOffset := _2\n srcOffset := _3\n switch gt(newLen, 0x1f)\n case 1 {\n let loopEnd := and(newLen, _6)\n mstore(_2, _2)\n let dstPtr := 18569430475105882587588266137607568536673111973893317399460219858819262702947\n let i := _2\n for { } lt(i, loopEnd) { i := add(i, _3) }\n {\n sstore(dstPtr, mload(add(_1, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, _3)\n }\n if lt(loopEnd, newLen)\n {\n let lastValue := mload(add(_1, srcOffset))\n sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), not(0)))))\n }\n sstore(_2, add(shl(1, newLen), 1))\n }\n default {\n let value := _2\n if newLen\n {\n value := mload(add(_1, srcOffset))\n }\n sstore(_2, or(and(value, not(shr(shl(3, newLen), not(0)))), shl(1, newLen)))\n }\n /// @src 49:440:462 \"SetGreeting(_greeting)\"\n let _10 := /** @src 49:62:471 \"contract Root {...\" */ mload(64)\n /// @src 49:440:462 \"SetGreeting(_greeting)\"\n log1(_10, sub(abi_encode_string(_10, _1), _10), 0x4dabe8361a35a905ec9d530e301d2e5c6cf44c65cdd7768f522a77a373436da9)\n /// @src 49:62:471 \"contract Root {...\"\n return(_2, _2)\n }\n case 0xcfae3217 {\n if callvalue() { revert(_2, _2) }\n if slt(add(calldatasize(), not(3)), _2) { revert(_2, _2) }\n let memPtr := mload(64)\n let ret := _2\n let slotValue := sload(_2)\n let length := extract_byte_array_length(slotValue)\n mstore(memPtr, length)\n let _11 := 0x20\n let _12 := 1\n switch and(slotValue, _12)\n case 0 {\n mstore(add(memPtr, _11), and(slotValue, not(255)))\n ret := add(add(memPtr, shl(5, iszero(iszero(length)))), _11)\n }\n case 1 {\n mstore(_2, _2)\n let dataPos := 18569430475105882587588266137607568536673111973893317399460219858819262702947\n let i_1 := _2\n for { } lt(i_1, length) { i_1 := add(i_1, _11) }\n {\n mstore(add(add(memPtr, i_1), _11), sload(dataPos))\n dataPos := add(dataPos, _12)\n }\n ret := add(add(memPtr, i_1), _11)\n }\n finalize_allocation(memPtr, sub(ret, memPtr))\n let memPos := mload(64)\n return(memPos, sub(abi_encode_string(memPos, memPtr), memPos))\n }\n }\n revert(0, 0)\n }\n function finalize_allocation(memPtr, size)\n {\n let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n mstore(64, newFreePtr)\n }\n function abi_encode_string(headStart, value0) -> tail\n {\n let _1 := 32\n mstore(headStart, _1)\n let length := mload(value0)\n mstore(add(headStart, _1), length)\n let i := 0\n for { } lt(i, length) { i := add(i, _1) }\n {\n mstore(add(add(headStart, i), 64), mload(add(add(value0, i), _1)))\n }\n mstore(add(add(headStart, length), 64), 0)\n tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n }\n data \".metadata\" hex\"a2646970667358221220bf6df06b6b1a9e36864c84d0d943e0b7a6eb18894a50d585b2645d2690958ba064736f6c63430008120033\"\n }\n}\n","hash":"010000a15baea8314cc74dddee3b59abda06555a45e5f25f05a3b53fe743bcc2","factoryDependencies":{}}}}}} \ No newline at end of file diff --git a/packages/integration-tests/src/playbook/artifacts-zk/contracts/Caller.sol/GCaller.dbg.json b/packages/integration-tests/src/playbook/artifacts-zk/contracts/Caller.sol/GCaller.dbg.json deleted file mode 100644 index 973a2e83f9..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/contracts/Caller.sol/GCaller.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../build-info/92cb10df65f6d26368974b9012699389.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/contracts/Caller.sol/GCaller.json b/packages/integration-tests/src/playbook/artifacts-zk/contracts/Caller.sol/GCaller.json deleted file mode 100644 index ba72ec0f3c..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/contracts/Caller.sol/GCaller.json +++ /dev/null @@ -1,75 +0,0 @@ -{ - "_format": "hh-zksolc-artifact-1", - "contractName": "GCaller", - "sourceName": "contracts/Caller.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "_callAddress", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [], - "name": "callAddress", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "myAddress", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "newCallGreeter", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "string", - "name": "_greeting", - "type": "string" - } - ], - "name": "newSetGreet", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x0004000000000002000400000000000200000000030100190000006003300270000000af0430019700030000004103550002000000010355000000af0030019d000100000000001f0000000101200190000000350000c13d0000008001000039000000400010043f0000000001000031000000040110008c000002330000413d0000000201000367000000000101043b000000e001100270000000b60210009c000000440000213d000000b90210009c000000a30000613d000000ba0110009c000002330000c13d0000000001000416000000000110004c000002330000c13d000000040100008a0000000001100031000000b002000041000000000310004c00000000030000190000000003024019000000b001100197000000000410004c000000000200a019000000b00110009c00000000010300190000000001026019000000000110004c000002330000c13d0000000101000039000000000101041a000000b101100197000000400200043d0000000000120435000000af01000041000000af0320009c00000000010240190000004001100210000000c4011001c7000002b80001042e0000000001000416000000000110004c000002330000c13d00000000010000310000009f02100039000000200300008a000000000232016f0000007f0320008c000000650000213d000000c20100004100000000001004350000004101000039000000040010043f000000c301000041000002b900010430000000b70210009c000000b90000613d000000b80110009c000002330000c13d0000000001000416000000000110004c000002330000c13d000000040100008a0000000001100031000000b002000041000000000310004c00000000030000190000000003024019000000b001100197000000000410004c000000000200a019000000b00110009c00000000010300190000000001026019000000000110004c000002330000c13d0000000101000039000000000201041a000000400800043d000000bb0100004100000000001804350000000001000414000000b102200197000000040320008c0000015e0000c13d00000003010003670000000103000031000001710000013d000000400020043f0000001f0210018f00000002030003670000000504100272000000730000613d00000000050000190000000506500210000000000763034f000000000707043b000000800660003900000000007604350000000105500039000000000645004b0000006b0000413d000000000520004c000000820000613d0000000504400210000000000343034f00000003022002100000008004400039000000000504043300000000052501cf000000000525022f000000000303043b0000010002200089000000000323022f00000000022301cf000000000252019f0000000000240435000000b002000041000000200310008c00000000030000190000000003024019000000b001100197000000000410004c000000000200a019000000b00110009c00000000010300190000000001026019000000000110004c000002330000c13d000000800400043d000000b10140009c000002330000213d0000000205000039000000000105041a000000010210019000000001011002700000007f0310018f000000000301c0190000001f0130008c00000000010000190000000101002039000000010110018f000000000112004b0000012f0000613d000000c20100004100000000001004350000002201000039000000040010043f000000c301000041000002b9000104300000000001000416000000000110004c000002330000c13d000000040100008a0000000001100031000000b002000041000000000310004c00000000030000190000000003024019000000b001100197000000000410004c000000000200a019000000b00110009c00000000010300190000000001026019000000000110004c000002330000c13d000000000100041a000000b101100197000000800010043f000000c501000041000002b80001042e0000000001000416000000000110004c000002330000c13d0000000001000031000000040210008a000000b003000041000000200420008c00000000040000190000000004034019000000b002200197000000000520004c000000000300a019000000b00220009c00000000020400190000000002036019000000000220004c000002330000c13d00000002020003670000000403200370000000000303043b000000bd0430009c000002330000213d0000002304300039000000b005000041000000000614004b00000000060000190000000006058019000000b001100197000000b004400197000000000714004b0000000005008019000000000114013f000000b00110009c00000000010600190000000001056019000000000110004c000002330000c13d0000000401300039000000000112034f000000000101043b000000bd0210009c0000003e0000213d0000003f02100039000000200600008a000000000262016f000000400900043d0000000002290019000000000492004b00000000040000190000000104004039000000bd0520009c0000003e0000213d00000001044001900000003e0000c13d000000400020043f0000000002190436000000240430003900000000034100190000000005000031000000000353004b000002330000213d000400000006001d0000001f0310018f00000002044003670000000505100272000001040000613d000000000600001900000005076002100000000008720019000000000774034f000000000707043b00000000007804350000000106600039000000000756004b000000fc0000413d000000000630004c000001130000613d0000000505500210000000000454034f00000000055200190000000303300210000000000605043300000000063601cf000000000636022f000000000404043b0000010003300089000000000434022f00000000033401cf000000000363019f0000000000350435000000000112001900000000000104350000000001090433000000000110004c0000021d0000c13d0000000204000039000000000304041a000000010530019000000001013002700000007f0210018f00000000010260190000001f0210008c00000000020000190000000102002039000000000223013f00000001022001900000009d0000c13d000000400900043d0000000002190436000000000550004c000002040000c13d000001000400008a000000000343016f0000000000320435000000000110004c00000020030000390000000003006019000002110000013d000000200130008c0000014c0000413d000200000003001d000300000005001d0000000000500435000000af010000410000000002000414000000af0320009c0000000001024019000000c001100210000000b2011001c70000801002000039000400000004001d02b702b20000040f00000004040000290000000102200190000002330000613d000000000101043b00000002020000290000001f0220003900000005022002700000000002210019000000000321004b00000003050000290000014c0000813d000000000001041b0000000101100039000000000321004b000001480000413d000000b301000041000000000015041b000000000100041a000000b4011001970000000002000410000000000121019f000000000010041b000000b1014001970000000102000039000000000302041a000000b403300197000000000113019f000000000012041b000000200100003900000100001004430000012000000443000000b501000041000002b80001042e000000af03000041000000af0410009c0000000001038019000000af0480009c00000000030840190000004003300210000000c001100210000000000131019f000000bc011001c7000400000008001d02b702b20000040f000000040800002900000000030100190000006003300270000100af0030019d000000af0330019700030000000103550000000102200190000001de0000613d0000001f0230018f00000005043002720000017d0000613d000000000500001900000005065002100000000007680019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b000001750000413d000000000520004c0000018c0000613d0000000504400210000000000141034f00000000044800190000000302200210000000000504043300000000052501cf000000000525022f000000000101043b0000010002200089000000000121022f00000000012101cf000000000151019f00000000001404350000001f02300039000000200100008a000000000412016f0000000002840019000000000442004b00000000040000190000000104004039000000bd0520009c0000003e0000213d00000001044001900000003e0000c13d000000b004000041000000200530008c00000000050000190000000005044019000000b006300197000000000760004c000000000400a019000000b00660009c000000000405c019000000400020043f000000000440004c000002330000c13d0000000004080433000000bd0540009c000002330000213d000000000583001900000000038400190000001f04300039000000b006000041000000000754004b00000000070000190000000007068019000000b004400197000000b008500197000000000984004b0000000006008019000000000484013f000000b00440009c00000000040700190000000004066019000000000440004c000002330000c13d0000000043030434000000bd0630009c0000003e0000213d0000003f06300039000000000116016f0000000001210019000000bd0610009c0000003e0000213d000000400010043f00000000013204360000000006430019000000000556004b000002330000213d000000000530004c000001ce0000613d000000000500001900000000061500190000000007450019000000000707043300000000007604350000002005500039000000000635004b000001c70000413d00000000011300190000000000010435000000400100043d000400000001001d02b702970000040f00000004040000290000000001410049000000af02000041000000af0310009c0000000001028019000000af0340009c000000000204401900000040022002100000006001100210000000000121019f000002b80001042e000000400200043d0000001f0430018f0000000503300272000001eb0000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b000001e30000413d000000000540004c000001fa0000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000000af010000410000000103000031000000af0430009c0000000003018019000000af0420009c000000000102401900000040011002100000006002300210000000000112019f000002b9000104300000000000400435000000000310004c0000000003000019000002110000613d000000be0400004100000000030000190000000005320019000000000604041a000000000065043500000001044000390000002003300039000000000513004b0000020a0000413d0000003f013000390000000402000029000000000221016f0000000001920019000000000221004b00000000020000190000000102004039000000bd0310009c0000003e0000213d00000001022001900000003e0000c13d000000400010043f000300000009001d0000000101000039000000000101041a000000bf020000410000000000200439000000b101100197000200000001001d0000000400100443000000af010000410000000002000414000000af0320009c0000000001024019000000c001100210000000c0011001c7000080020200003902b702b20000040f00000003070000290000000102200190000002330000613d000000000101043b000000000110004c000002350000c13d0000000001000019000002b900010430000000400400043d000000c10100004100000000001404350000000402400039000000000100041400000020030000390000000000320435000000000807043300000024034000390000000000830435000100000004001d0000004403400039000000000480004c0000024b0000613d000000000400001900000000053400190000002004400039000000000674001900000000060604330000000000650435000000000584004b000002440000413d000000000338001900000000000304350000000202000029000000040320008c0000026b0000613d0000001f048000390000000403000029000000000534016f000000af030000410000000106000029000000af0460009c0000000004030019000000000406401900000040044002100000004406500039000000af0560009c000000000503001900000000050640190000006005500210000000000545019f000000af0410009c0000000001038019000000c001100210000000000115019f02b702ad0000040f00000000030100190000006003300270000100af0030019d000000af0430019700030000000103550000000102200190000002710000613d0000000102000029000000bd0120009c0000003e0000213d000000400020043f0000000001000019000002b80001042e000000400200043d0000001f0340018f00000005044002720000027e0000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b000002760000413d000000000530004c0000028d0000613d0000000504400210000000000141034f00000000044200190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000140435000000af010000410000000103000031000000af0430009c0000000003018019000000af0420009c000000000102401900000040011002100000006002300210000000000112019f000002b90001043000000020030000390000000004310436000000000302043300000000003404350000004001100039000000000430004c000002a60000613d000000000400001900000000051400190000002004400039000000000624001900000000060604330000000000650435000000000534004b0000029f0000413d000000000213001900000000000204350000001f02300039000000200300008a000000000232016f0000000001210019000000000001042d000002b0002104210000000102000039000000000001042d0000000002000019000000000001042d000002b5002104230000000102000039000000000001042d0000000002000019000000000001042d000002b700000432000002b80001042e000002b9000104300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff020000000000000000000000000000000000002000000000000000000000000048692066726f6d2043616c6c657200000000000000000000000000000000001cffffffffffffffffffffffff000000000000000000000000000000000000000000000002000000000000000000000000000000400000010000000000000000000000000000000000000000000000000000000000000000000000000049900eeb0000000000000000000000000000000000000000000000000000000049900eec0000000000000000000000000000000000000000000000000000000070225fc70000000000000000000000000000000000000000000000000000000026b85ee1000000000000000000000000000000000000000000000000000000003e23ee43d7b4291c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace1806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b8302000002000000000000000000000000000000240000000000000000000000009698086b000000000000000000000000000000000000000000000000000000004e487b7100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002400000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000800000000000000000cc2c06b03a25f680e937a0e2d9c04767d4fa358d58a9829409ce909ca97d1029", - "deployedBytecode": "0x0004000000000002000400000000000200000000030100190000006003300270000000af0430019700030000004103550002000000010355000000af0030019d000100000000001f0000000101200190000000350000c13d0000008001000039000000400010043f0000000001000031000000040110008c000002330000413d0000000201000367000000000101043b000000e001100270000000b60210009c000000440000213d000000b90210009c000000a30000613d000000ba0110009c000002330000c13d0000000001000416000000000110004c000002330000c13d000000040100008a0000000001100031000000b002000041000000000310004c00000000030000190000000003024019000000b001100197000000000410004c000000000200a019000000b00110009c00000000010300190000000001026019000000000110004c000002330000c13d0000000101000039000000000101041a000000b101100197000000400200043d0000000000120435000000af01000041000000af0320009c00000000010240190000004001100210000000c4011001c7000002b80001042e0000000001000416000000000110004c000002330000c13d00000000010000310000009f02100039000000200300008a000000000232016f0000007f0320008c000000650000213d000000c20100004100000000001004350000004101000039000000040010043f000000c301000041000002b900010430000000b70210009c000000b90000613d000000b80110009c000002330000c13d0000000001000416000000000110004c000002330000c13d000000040100008a0000000001100031000000b002000041000000000310004c00000000030000190000000003024019000000b001100197000000000410004c000000000200a019000000b00110009c00000000010300190000000001026019000000000110004c000002330000c13d0000000101000039000000000201041a000000400800043d000000bb0100004100000000001804350000000001000414000000b102200197000000040320008c0000015e0000c13d00000003010003670000000103000031000001710000013d000000400020043f0000001f0210018f00000002030003670000000504100272000000730000613d00000000050000190000000506500210000000000763034f000000000707043b000000800660003900000000007604350000000105500039000000000645004b0000006b0000413d000000000520004c000000820000613d0000000504400210000000000343034f00000003022002100000008004400039000000000504043300000000052501cf000000000525022f000000000303043b0000010002200089000000000323022f00000000022301cf000000000252019f0000000000240435000000b002000041000000200310008c00000000030000190000000003024019000000b001100197000000000410004c000000000200a019000000b00110009c00000000010300190000000001026019000000000110004c000002330000c13d000000800400043d000000b10140009c000002330000213d0000000205000039000000000105041a000000010210019000000001011002700000007f0310018f000000000301c0190000001f0130008c00000000010000190000000101002039000000010110018f000000000112004b0000012f0000613d000000c20100004100000000001004350000002201000039000000040010043f000000c301000041000002b9000104300000000001000416000000000110004c000002330000c13d000000040100008a0000000001100031000000b002000041000000000310004c00000000030000190000000003024019000000b001100197000000000410004c000000000200a019000000b00110009c00000000010300190000000001026019000000000110004c000002330000c13d000000000100041a000000b101100197000000800010043f000000c501000041000002b80001042e0000000001000416000000000110004c000002330000c13d0000000001000031000000040210008a000000b003000041000000200420008c00000000040000190000000004034019000000b002200197000000000520004c000000000300a019000000b00220009c00000000020400190000000002036019000000000220004c000002330000c13d00000002020003670000000403200370000000000303043b000000bd0430009c000002330000213d0000002304300039000000b005000041000000000614004b00000000060000190000000006058019000000b001100197000000b004400197000000000714004b0000000005008019000000000114013f000000b00110009c00000000010600190000000001056019000000000110004c000002330000c13d0000000401300039000000000112034f000000000101043b000000bd0210009c0000003e0000213d0000003f02100039000000200600008a000000000262016f000000400900043d0000000002290019000000000492004b00000000040000190000000104004039000000bd0520009c0000003e0000213d00000001044001900000003e0000c13d000000400020043f0000000002190436000000240430003900000000034100190000000005000031000000000353004b000002330000213d000400000006001d0000001f0310018f00000002044003670000000505100272000001040000613d000000000600001900000005076002100000000008720019000000000774034f000000000707043b00000000007804350000000106600039000000000756004b000000fc0000413d000000000630004c000001130000613d0000000505500210000000000454034f00000000055200190000000303300210000000000605043300000000063601cf000000000636022f000000000404043b0000010003300089000000000434022f00000000033401cf000000000363019f0000000000350435000000000112001900000000000104350000000001090433000000000110004c0000021d0000c13d0000000204000039000000000304041a000000010530019000000001013002700000007f0210018f00000000010260190000001f0210008c00000000020000190000000102002039000000000223013f00000001022001900000009d0000c13d000000400900043d0000000002190436000000000550004c000002040000c13d000001000400008a000000000343016f0000000000320435000000000110004c00000020030000390000000003006019000002110000013d000000200130008c0000014c0000413d000200000003001d000300000005001d0000000000500435000000af010000410000000002000414000000af0320009c0000000001024019000000c001100210000000b2011001c70000801002000039000400000004001d02b702b20000040f00000004040000290000000102200190000002330000613d000000000101043b00000002020000290000001f0220003900000005022002700000000002210019000000000321004b00000003050000290000014c0000813d000000000001041b0000000101100039000000000321004b000001480000413d000000b301000041000000000015041b000000000100041a000000b4011001970000000002000410000000000121019f000000000010041b000000b1014001970000000102000039000000000302041a000000b403300197000000000113019f000000000012041b000000200100003900000100001004430000012000000443000000b501000041000002b80001042e000000af03000041000000af0410009c0000000001038019000000af0480009c00000000030840190000004003300210000000c001100210000000000131019f000000bc011001c7000400000008001d02b702b20000040f000000040800002900000000030100190000006003300270000100af0030019d000000af0330019700030000000103550000000102200190000001de0000613d0000001f0230018f00000005043002720000017d0000613d000000000500001900000005065002100000000007680019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b000001750000413d000000000520004c0000018c0000613d0000000504400210000000000141034f00000000044800190000000302200210000000000504043300000000052501cf000000000525022f000000000101043b0000010002200089000000000121022f00000000012101cf000000000151019f00000000001404350000001f02300039000000200100008a000000000412016f0000000002840019000000000442004b00000000040000190000000104004039000000bd0520009c0000003e0000213d00000001044001900000003e0000c13d000000b004000041000000200530008c00000000050000190000000005044019000000b006300197000000000760004c000000000400a019000000b00660009c000000000405c019000000400020043f000000000440004c000002330000c13d0000000004080433000000bd0540009c000002330000213d000000000583001900000000038400190000001f04300039000000b006000041000000000754004b00000000070000190000000007068019000000b004400197000000b008500197000000000984004b0000000006008019000000000484013f000000b00440009c00000000040700190000000004066019000000000440004c000002330000c13d0000000043030434000000bd0630009c0000003e0000213d0000003f06300039000000000116016f0000000001210019000000bd0610009c0000003e0000213d000000400010043f00000000013204360000000006430019000000000556004b000002330000213d000000000530004c000001ce0000613d000000000500001900000000061500190000000007450019000000000707043300000000007604350000002005500039000000000635004b000001c70000413d00000000011300190000000000010435000000400100043d000400000001001d02b702970000040f00000004040000290000000001410049000000af02000041000000af0310009c0000000001028019000000af0340009c000000000204401900000040022002100000006001100210000000000121019f000002b80001042e000000400200043d0000001f0430018f0000000503300272000001eb0000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b000001e30000413d000000000540004c000001fa0000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000000af010000410000000103000031000000af0430009c0000000003018019000000af0420009c000000000102401900000040011002100000006002300210000000000112019f000002b9000104300000000000400435000000000310004c0000000003000019000002110000613d000000be0400004100000000030000190000000005320019000000000604041a000000000065043500000001044000390000002003300039000000000513004b0000020a0000413d0000003f013000390000000402000029000000000221016f0000000001920019000000000221004b00000000020000190000000102004039000000bd0310009c0000003e0000213d00000001022001900000003e0000c13d000000400010043f000300000009001d0000000101000039000000000101041a000000bf020000410000000000200439000000b101100197000200000001001d0000000400100443000000af010000410000000002000414000000af0320009c0000000001024019000000c001100210000000c0011001c7000080020200003902b702b20000040f00000003070000290000000102200190000002330000613d000000000101043b000000000110004c000002350000c13d0000000001000019000002b900010430000000400400043d000000c10100004100000000001404350000000402400039000000000100041400000020030000390000000000320435000000000807043300000024034000390000000000830435000100000004001d0000004403400039000000000480004c0000024b0000613d000000000400001900000000053400190000002004400039000000000674001900000000060604330000000000650435000000000584004b000002440000413d000000000338001900000000000304350000000202000029000000040320008c0000026b0000613d0000001f048000390000000403000029000000000534016f000000af030000410000000106000029000000af0460009c0000000004030019000000000406401900000040044002100000004406500039000000af0560009c000000000503001900000000050640190000006005500210000000000545019f000000af0410009c0000000001038019000000c001100210000000000115019f02b702ad0000040f00000000030100190000006003300270000100af0030019d000000af0430019700030000000103550000000102200190000002710000613d0000000102000029000000bd0120009c0000003e0000213d000000400020043f0000000001000019000002b80001042e000000400200043d0000001f0340018f00000005044002720000027e0000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b000002760000413d000000000530004c0000028d0000613d0000000504400210000000000141034f00000000044200190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000140435000000af010000410000000103000031000000af0430009c0000000003018019000000af0420009c000000000102401900000040011002100000006002300210000000000112019f000002b90001043000000020030000390000000004310436000000000302043300000000003404350000004001100039000000000430004c000002a60000613d000000000400001900000000051400190000002004400039000000000624001900000000060604330000000000650435000000000534004b0000029f0000413d000000000213001900000000000204350000001f02300039000000200300008a000000000232016f0000000001210019000000000001042d000002b0002104210000000102000039000000000001042d0000000002000019000000000001042d000002b5002104230000000102000039000000000001042d0000000002000019000000000001042d000002b700000432000002b80001042e000002b9000104300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff020000000000000000000000000000000000002000000000000000000000000048692066726f6d2043616c6c657200000000000000000000000000000000001cffffffffffffffffffffffff000000000000000000000000000000000000000000000002000000000000000000000000000000400000010000000000000000000000000000000000000000000000000000000000000000000000000049900eeb0000000000000000000000000000000000000000000000000000000049900eec0000000000000000000000000000000000000000000000000000000070225fc70000000000000000000000000000000000000000000000000000000026b85ee1000000000000000000000000000000000000000000000000000000003e23ee43d7b4291c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace1806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b8302000002000000000000000000000000000000240000000000000000000000009698086b000000000000000000000000000000000000000000000000000000004e487b7100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002400000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000800000000000000000cc2c06b03a25f680e937a0e2d9c04767d4fa358d58a9829409ce909ca97d1029", - "linkReferences": {}, - "deployedLinkReferences": {}, - "factoryDeps": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/contracts/Caller.sol/IGreeter2.dbg.json b/packages/integration-tests/src/playbook/artifacts-zk/contracts/Caller.sol/IGreeter2.dbg.json deleted file mode 100644 index 973a2e83f9..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/contracts/Caller.sol/IGreeter2.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../build-info/92cb10df65f6d26368974b9012699389.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/contracts/Caller.sol/IGreeter2.json b/packages/integration-tests/src/playbook/artifacts-zk/contracts/Caller.sol/IGreeter2.json deleted file mode 100644 index 23b8f6275c..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/contracts/Caller.sol/IGreeter2.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "_format": "hh-zksolc-artifact-1", - "contractName": "IGreeter2", - "sourceName": "contracts/Caller.sol", - "abi": [ - { - "inputs": [], - "name": "callGreeter", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "string", - "name": "greeting", - "type": "string" - } - ], - "name": "setGreet", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {}, - "factoryDeps": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/contracts/Greeter.sol/Greeter.dbg.json b/packages/integration-tests/src/playbook/artifacts-zk/contracts/Greeter.sol/Greeter.dbg.json deleted file mode 100644 index 973a2e83f9..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/contracts/Greeter.sol/Greeter.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../build-info/92cb10df65f6d26368974b9012699389.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/contracts/Greeter.sol/Greeter.json b/packages/integration-tests/src/playbook/artifacts-zk/contracts/Greeter.sol/Greeter.json deleted file mode 100644 index a73d981c4f..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/contracts/Greeter.sol/Greeter.json +++ /dev/null @@ -1,62 +0,0 @@ -{ - "_format": "hh-zksolc-artifact-1", - "contractName": "Greeter", - "sourceName": "contracts/Greeter.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "string", - "name": "_greeting", - "type": "string" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "string", - "name": "greeting", - "type": "string" - } - ], - "name": "SetGreeting", - "type": "event" - }, - { - "inputs": [], - "name": "greet", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "string", - "name": "_greeting", - "type": "string" - } - ], - "name": "setGreeting", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x0002000000000002000500000000000200010000000103550000006001100270000000930010019d0000008001000039000000400010043f0000000101200190000000a80000c13d0000000001000031000000040110008c0000010e0000413d0000000101000367000000000101043b000000e001100270000000980210009c000000fd0000613d000000990110009c0000010e0000c13d0000000001000416000000000110004c0000010e0000c13d0000000001000031000000040210008a0000009503000041000000200420008c000000000400001900000000040340190000009502200197000000000520004c000000000300a019000000950220009c00000000020400190000000002036019000000000220004c0000010e0000c13d00000001020003670000000403200370000000000303043b000000940430009c0000010e0000213d00000023043000390000009505000041000000000614004b0000000006000019000000000605801900000095011001970000009504400197000000000714004b0000000005008019000000000114013f000000950110009c00000000010600190000000001056019000000000110004c0000010e0000c13d0000000401300039000000000112034f000000000201043b000000940120009c000000f70000213d000000bf04200039000000200100008a000000000414016f000000940540009c000000f70000213d000000400040043f000000800020043f000000240430003900000000034200190000000005000031000000000353004b0000010e0000213d0000001f0320018f00000001044003670000000505200272000000560000613d00000000060000190000000507600210000000000874034f000000000808043b000000a00770003900000000008704350000000106600039000000000756004b0000004e0000413d000000000630004c000000650000613d0000000505500210000000000454034f0000000303300210000000a005500039000000000605043300000000063601cf000000000636022f000000000404043b0000010003300089000000000434022f00000000033401cf000000000363019f0000000000350435000000a0022000390000000000020435000000800200043d000000940320009c000000f70000213d000000000400041a000000010340019000000001034002700000007f0530018f00000000030560190000001f0530008c00000000050000190000000105002039000000000454013f00000001044001900000011c0000c13d000000200430008c000000870000413d0000001f0420003900000005044002700000009a044000410000009a05000041000000200620008c000000000405401900000000000004350000001f0330003900000005033002700000009a03300041000000000534004b000000870000813d000000000004041b0000000104400039000000000534004b000000830000413d0000001f0320008c000001dd0000a13d00000000041201700000009a03000041000000a00500003900000000000004350000009b0000613d00000020070000390000009a030000410000000005000019000000000607001900000080076000390000000007070433000000000073041b000000200760003900000001033000390000002005500039000000000845004b000000910000413d000000a005600039000000000424004b000000a50000813d0000000304200210000000f80440018f000000010600008a000000000446022f000000000464013f0000000005050433000000000445016f000000000043041b00000001030000390000000104200210000001e70000013d0000000001000416000000000110004c0000010e0000c13d00000000010000310000001f02100039000000200900008a000000000492016f000000400200043d0000000003240019000000000443004b00000000040000190000000104004039000000940530009c000000f70000213d0000000104400190000000f70000c13d000000400030043f0000001f0310018f00000001040003670000000505100272000000c60000613d000000000600001900000005076002100000000008720019000000000774034f000000000707043b00000000007804350000000106600039000000000756004b000000be0000413d000000000630004c000000d50000613d0000000505500210000000000454034f00000000055200190000000303300210000000000605043300000000063601cf000000000636022f000000000404043b0000010003300089000000000434022f00000000033401cf000000000363019f00000000003504350000009503000041000000200410008c000000000400001900000000040340190000009505100197000000000650004c000000000300a019000000950550009c000000000304c019000000000330004c0000010e0000c13d0000000004020433000000940340009c0000010e0000213d000000000312001900000000012400190000001f021000390000009504000041000000000532004b0000000005000019000000000504801900000095022001970000009506300197000000000762004b0000000004008019000000000262013f000000950220009c00000000020500190000000002046019000000000220004c0000010e0000c13d0000000002010433000000940420009c000001340000a13d0000009d0100004100000000001004350000004101000039000000040010043f0000009e0100004100000248000104300000000001000416000000000110004c0000010e0000c13d000000040100008a00000000011000310000009502000041000000000310004c000000000300001900000000030240190000009501100197000000000410004c000000000200a019000000950110009c00000000010300190000000001026019000000000110004c000001100000613d00000000010000190000024800010430000000000300041a000000010430019000000001013002700000007f0210018f000000000701001900000000070260190000001f0270008c00000000020000190000000102002039000000000223013f0000000102200190000001220000613d0000009d0100004100000000001004350000002201000039000000040010043f0000009e010000410000024800010430000000400100043d0000000002710436000000000440004c000001b40000613d0000000000000435000000000370004c0000000003000019000001ba0000613d0000009a0400004100000000030000190000000005320019000000000604041a000000000065043500000001044000390000002003300039000000000573004b0000012c0000413d000001ba0000013d0000003f04200039000000000494016f000000400700043d0000000004470019000000000574004b00000000050000190000000105004039000000940640009c000000f70000213d0000000105500190000000f70000c13d000000400040043f000000000627043600000000042100190000002004400039000000000334004b0000010e0000213d000000000320004c0000014f0000613d000000000300001900000000046300190000002003300039000000000513001900000000050504330000000000540435000000000423004b000001480000413d000000000126001900000000000104350000000004070433000000940140009c000000f70000213d000000000100041a000000010210019000000001011002700000007f0310018f000000000301c0190000001f0130008c00000000010000190000000101002039000000010110018f000000000112004b0000011c0000c13d000000200130008c000001850000413d000100000003001d000300000004001d000000000000043500000093010000410000000002000414000000930320009c0000000001024019000000c00110021000000096011001c70000801002000039000500000009001d000400000007001d000200000006001d024602410000040f00000002060000290000000407000029000000050900002900000001022001900000010e0000613d00000003040000290000001f024000390000000502200270000000200340008c0000000002004019000000000301043b00000001010000290000001f01100039000000050110027000000000011300190000000002230019000000000312004b000001850000813d000000000002041b0000000102200039000000000312004b000001810000413d0000001f0140008c000001cc0000a13d000300000004001d000000000000043500000093010000410000000002000414000000930320009c0000000001024019000000c00110021000000096011001c70000801002000039000500000009001d000400000007001d024602410000040f0000000406000029000000050300002900000001022001900000010e0000613d000000030700002900000000033701700000002002000039000000000101043b000001a60000613d0000002002000039000000000400001900000000056200190000000005050433000000000051041b000000200220003900000001011000390000002004400039000000000534004b0000019e0000413d000000000373004b000001b10000813d0000000303700210000000f80330018f000000010400008a000000000334022f000000000343013f00000000026200190000000002020433000000000232016f000000000021041b00000001010000390000000102700210000001d60000013d000001000400008a000000000343016f0000000000320435000000000270004c000000200300003900000000030060190000002002300039000500000001001d024602130000040f000000400100043d000400000001001d0000000502000029024602260000040f000000040400002900000000014100490000009302000041000000930310009c0000000001028019000000930340009c000000000204401900000040022002100000006001100210000000000121019f000002470001042e000000000140004c0000000001000019000001d00000613d00000000010604330000000302400210000000010300008a000000000223022f000000000232013f000000000221016f0000000101400210000000000112019f000000000010041b0000002001000039000001000010044300000120000004430000009701000041000002470001042e000000000320004c0000000003000019000001e10000613d000000a00300043d0000000304200210000000010500008a000000000445022f000000000454013f000000000443016f0000000103200210000000000234019f000000000020041b0000002003000039000000400200043d0000000004320436000000800300043d00000000003404350000004004200039000000000530004c000001f90000613d00000000050000190000000006450019000000a007500039000000000707043300000000007604350000002005500039000000000635004b000001f20000413d000000000443001900000000000404350000005f03300039000000000113016f0000009303000041000000930420009c00000000020380190000004002200210000000930410009c00000000010380190000006001100210000000000121019f0000000002000414000000930420009c0000000002038019000000c002200210000000000112019f0000009b011001c70000800d0200003900000001030000390000009c040000410246023c0000040f00000001012001900000010e0000613d0000000001000019000002470001042e0000001f02200039000000200300008a000000000232016f0000000001120019000000000221004b00000000020000190000000102004039000000940310009c000002200000213d0000000102200190000002200000c13d000000400010043f000000000001042d0000009d0100004100000000001004350000004101000039000000040010043f0000009e01000041000002480001043000000020030000390000000004310436000000000302043300000000003404350000004001100039000000000430004c000002350000613d000000000400001900000000054100190000002004400039000000000624001900000000060604330000000000650435000000000534004b0000022e0000413d000000000231001900000000000204350000001f02300039000000200300008a000000000232016f0000000001210019000000000001042d0000023f002104210000000102000039000000000001042d0000000002000019000000000001042d00000244002104230000000102000039000000000001042d0000000002000019000000000001042d0000024600000432000002470001042e000002480001043000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff000000000000000000000000000000000000000000000000ffffffffffffffff80000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000020000000000000000000000000000000020000000000000000000000000000004000000100000000000000000000000000000000000000000000000000000000000000000000000000cfae321700000000000000000000000000000000000000000000000000000000a4136862290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56302000000000000000000000000000000000000000000000000000000000000004dabe8361a35a905ec9d530e301d2e5c6cf44c65cdd7768f522a77a373436da94e487b71000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011daff2aafad75d737db926da0aff783b4537f6a39b6beedf191fe5bc54691ad", - "deployedBytecode": "0x0002000000000002000500000000000200010000000103550000006001100270000000930010019d0000008001000039000000400010043f0000000101200190000000a80000c13d0000000001000031000000040110008c0000010e0000413d0000000101000367000000000101043b000000e001100270000000980210009c000000fd0000613d000000990110009c0000010e0000c13d0000000001000416000000000110004c0000010e0000c13d0000000001000031000000040210008a0000009503000041000000200420008c000000000400001900000000040340190000009502200197000000000520004c000000000300a019000000950220009c00000000020400190000000002036019000000000220004c0000010e0000c13d00000001020003670000000403200370000000000303043b000000940430009c0000010e0000213d00000023043000390000009505000041000000000614004b0000000006000019000000000605801900000095011001970000009504400197000000000714004b0000000005008019000000000114013f000000950110009c00000000010600190000000001056019000000000110004c0000010e0000c13d0000000401300039000000000112034f000000000201043b000000940120009c000000f70000213d000000bf04200039000000200100008a000000000414016f000000940540009c000000f70000213d000000400040043f000000800020043f000000240430003900000000034200190000000005000031000000000353004b0000010e0000213d0000001f0320018f00000001044003670000000505200272000000560000613d00000000060000190000000507600210000000000874034f000000000808043b000000a00770003900000000008704350000000106600039000000000756004b0000004e0000413d000000000630004c000000650000613d0000000505500210000000000454034f0000000303300210000000a005500039000000000605043300000000063601cf000000000636022f000000000404043b0000010003300089000000000434022f00000000033401cf000000000363019f0000000000350435000000a0022000390000000000020435000000800200043d000000940320009c000000f70000213d000000000400041a000000010340019000000001034002700000007f0530018f00000000030560190000001f0530008c00000000050000190000000105002039000000000454013f00000001044001900000011c0000c13d000000200430008c000000870000413d0000001f0420003900000005044002700000009a044000410000009a05000041000000200620008c000000000405401900000000000004350000001f0330003900000005033002700000009a03300041000000000534004b000000870000813d000000000004041b0000000104400039000000000534004b000000830000413d0000001f0320008c000001dd0000a13d00000000041201700000009a03000041000000a00500003900000000000004350000009b0000613d00000020070000390000009a030000410000000005000019000000000607001900000080076000390000000007070433000000000073041b000000200760003900000001033000390000002005500039000000000845004b000000910000413d000000a005600039000000000424004b000000a50000813d0000000304200210000000f80440018f000000010600008a000000000446022f000000000464013f0000000005050433000000000445016f000000000043041b00000001030000390000000104200210000001e70000013d0000000001000416000000000110004c0000010e0000c13d00000000010000310000001f02100039000000200900008a000000000492016f000000400200043d0000000003240019000000000443004b00000000040000190000000104004039000000940530009c000000f70000213d0000000104400190000000f70000c13d000000400030043f0000001f0310018f00000001040003670000000505100272000000c60000613d000000000600001900000005076002100000000008720019000000000774034f000000000707043b00000000007804350000000106600039000000000756004b000000be0000413d000000000630004c000000d50000613d0000000505500210000000000454034f00000000055200190000000303300210000000000605043300000000063601cf000000000636022f000000000404043b0000010003300089000000000434022f00000000033401cf000000000363019f00000000003504350000009503000041000000200410008c000000000400001900000000040340190000009505100197000000000650004c000000000300a019000000950550009c000000000304c019000000000330004c0000010e0000c13d0000000004020433000000940340009c0000010e0000213d000000000312001900000000012400190000001f021000390000009504000041000000000532004b0000000005000019000000000504801900000095022001970000009506300197000000000762004b0000000004008019000000000262013f000000950220009c00000000020500190000000002046019000000000220004c0000010e0000c13d0000000002010433000000940420009c000001340000a13d0000009d0100004100000000001004350000004101000039000000040010043f0000009e0100004100000248000104300000000001000416000000000110004c0000010e0000c13d000000040100008a00000000011000310000009502000041000000000310004c000000000300001900000000030240190000009501100197000000000410004c000000000200a019000000950110009c00000000010300190000000001026019000000000110004c000001100000613d00000000010000190000024800010430000000000300041a000000010430019000000001013002700000007f0210018f000000000701001900000000070260190000001f0270008c00000000020000190000000102002039000000000223013f0000000102200190000001220000613d0000009d0100004100000000001004350000002201000039000000040010043f0000009e010000410000024800010430000000400100043d0000000002710436000000000440004c000001b40000613d0000000000000435000000000370004c0000000003000019000001ba0000613d0000009a0400004100000000030000190000000005320019000000000604041a000000000065043500000001044000390000002003300039000000000573004b0000012c0000413d000001ba0000013d0000003f04200039000000000494016f000000400700043d0000000004470019000000000574004b00000000050000190000000105004039000000940640009c000000f70000213d0000000105500190000000f70000c13d000000400040043f000000000627043600000000042100190000002004400039000000000334004b0000010e0000213d000000000320004c0000014f0000613d000000000300001900000000046300190000002003300039000000000513001900000000050504330000000000540435000000000423004b000001480000413d000000000126001900000000000104350000000004070433000000940140009c000000f70000213d000000000100041a000000010210019000000001011002700000007f0310018f000000000301c0190000001f0130008c00000000010000190000000101002039000000010110018f000000000112004b0000011c0000c13d000000200130008c000001850000413d000100000003001d000300000004001d000000000000043500000093010000410000000002000414000000930320009c0000000001024019000000c00110021000000096011001c70000801002000039000500000009001d000400000007001d000200000006001d024602410000040f00000002060000290000000407000029000000050900002900000001022001900000010e0000613d00000003040000290000001f024000390000000502200270000000200340008c0000000002004019000000000301043b00000001010000290000001f01100039000000050110027000000000011300190000000002230019000000000312004b000001850000813d000000000002041b0000000102200039000000000312004b000001810000413d0000001f0140008c000001cc0000a13d000300000004001d000000000000043500000093010000410000000002000414000000930320009c0000000001024019000000c00110021000000096011001c70000801002000039000500000009001d000400000007001d024602410000040f0000000406000029000000050300002900000001022001900000010e0000613d000000030700002900000000033701700000002002000039000000000101043b000001a60000613d0000002002000039000000000400001900000000056200190000000005050433000000000051041b000000200220003900000001011000390000002004400039000000000534004b0000019e0000413d000000000373004b000001b10000813d0000000303700210000000f80330018f000000010400008a000000000334022f000000000343013f00000000026200190000000002020433000000000232016f000000000021041b00000001010000390000000102700210000001d60000013d000001000400008a000000000343016f0000000000320435000000000270004c000000200300003900000000030060190000002002300039000500000001001d024602130000040f000000400100043d000400000001001d0000000502000029024602260000040f000000040400002900000000014100490000009302000041000000930310009c0000000001028019000000930340009c000000000204401900000040022002100000006001100210000000000121019f000002470001042e000000000140004c0000000001000019000001d00000613d00000000010604330000000302400210000000010300008a000000000223022f000000000232013f000000000221016f0000000101400210000000000112019f000000000010041b0000002001000039000001000010044300000120000004430000009701000041000002470001042e000000000320004c0000000003000019000001e10000613d000000a00300043d0000000304200210000000010500008a000000000445022f000000000454013f000000000443016f0000000103200210000000000234019f000000000020041b0000002003000039000000400200043d0000000004320436000000800300043d00000000003404350000004004200039000000000530004c000001f90000613d00000000050000190000000006450019000000a007500039000000000707043300000000007604350000002005500039000000000635004b000001f20000413d000000000443001900000000000404350000005f03300039000000000113016f0000009303000041000000930420009c00000000020380190000004002200210000000930410009c00000000010380190000006001100210000000000121019f0000000002000414000000930420009c0000000002038019000000c002200210000000000112019f0000009b011001c70000800d0200003900000001030000390000009c040000410246023c0000040f00000001012001900000010e0000613d0000000001000019000002470001042e0000001f02200039000000200300008a000000000232016f0000000001120019000000000221004b00000000020000190000000102004039000000940310009c000002200000213d0000000102200190000002200000c13d000000400010043f000000000001042d0000009d0100004100000000001004350000004101000039000000040010043f0000009e01000041000002480001043000000020030000390000000004310436000000000302043300000000003404350000004001100039000000000430004c000002350000613d000000000400001900000000054100190000002004400039000000000624001900000000060604330000000000650435000000000534004b0000022e0000413d000000000231001900000000000204350000001f02300039000000200300008a000000000232016f0000000001210019000000000001042d0000023f002104210000000102000039000000000001042d0000000002000019000000000001042d00000244002104230000000102000039000000000001042d0000000002000019000000000001042d0000024600000432000002470001042e000002480001043000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff000000000000000000000000000000000000000000000000ffffffffffffffff80000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000020000000000000000000000000000000020000000000000000000000000000004000000100000000000000000000000000000000000000000000000000000000000000000000000000cfae321700000000000000000000000000000000000000000000000000000000a4136862290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56302000000000000000000000000000000000000000000000000000000000000004dabe8361a35a905ec9d530e301d2e5c6cf44c65cdd7768f522a77a373436da94e487b71000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011daff2aafad75d737db926da0aff783b4537f6a39b6beedf191fe5bc54691ad", - "linkReferences": {}, - "deployedLinkReferences": {}, - "factoryDeps": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/contracts/L1.sol/L1.dbg.json b/packages/integration-tests/src/playbook/artifacts-zk/contracts/L1.sol/L1.dbg.json deleted file mode 100644 index 973a2e83f9..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/contracts/L1.sol/L1.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../build-info/92cb10df65f6d26368974b9012699389.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/contracts/L1.sol/L1.json b/packages/integration-tests/src/playbook/artifacts-zk/contracts/L1.sol/L1.json deleted file mode 100644 index 0aa711a944..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/contracts/L1.sol/L1.json +++ /dev/null @@ -1,293 +0,0 @@ -{ - "_format": "hh-zksolc-artifact-1", - "contractName": "L1", - "sourceName": "contracts/L1.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "_recipient", - "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": [ - { - "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" - } - ], - "bytecode": "0x0002000000000002000a00000000000200010000000103550000006001100270000001780010019d0000000101200190000000410000c13d0000008001000039000000400010043f0000000001000031000000040110008c000002db0000413d0000000101000367000000000101043b000000e0011002700000018b0210009c000001010000a13d0000018c0210009c000001230000213d000001900210009c000001810000613d000001910210009c000001c70000613d000001920110009c000002db0000c13d0000000001000416000000000110004c000002db0000c13d000000040100008a00000000011000310000017b02000041000000000310004c000000000300001900000000030240190000017b01100197000000000410004c000000000200a0190000017b0110009c00000000010300190000000001026019000000000110004c000002db0000c13d0000000405000039000000000405041a000000010640019000000001014002700000007f0210018f00000000010260190000001f0210008c00000000020000190000000102002039000000000224013f0000000102200190000002ea0000c13d000000400200043d0000000003120436000000000660004c000002fa0000c13d000001000500008a000000000454016f0000000000430435000000000110004c00000020040000390000000004006019000003070000013d0000000001000416000000000110004c000002db0000c13d00000000010000310000009f02100039000000200800008a000000000282016f00000179032000410000017a0330009c000000510000213d0000019e0100004100000000001004350000004101000039000000040010043f0000019f01000041000005dc00010430000000400020043f0000001f0210018f000000010300036700000005041002720000005f0000613d00000000050000190000000506500210000000000763034f000000000707043b000000800660003900000000007604350000000105500039000000000645004b000000570000413d000000000520004c0000006e0000613d0000000504400210000000000343034f00000003022002100000008004400039000000000504043300000000052501cf000000000525022f000000000303043b0000010002200089000000000323022f00000000022301cf000000000252019f00000000002404350000017b02000041000000200310008c000000000300001900000000030240190000017b01100197000000000410004c000000000200a0190000017b0110009c00000000010300190000000001026019000000000110004c000002db0000c13d000000800100043d0000017c041001970000017c0110009c000002db0000213d000000400b00043d0000017d01b0009c0000004b0000213d0000004001b00039000000400010043f0000000e01000039000000000c1b04360000017e0100004100000000001c0435000000400600043d0000017d0160009c0000004b0000213d0000004001600039000000400010043f000000020500003900000000075604360000017f010000410000000000170435000000000a0b04330000018001a0009c0000004b0000213d0000000309000039000000000109041a000000010210019000000001011002700000007f0310018f000000000301c0190000001f0130008c00000000010000190000000101002039000000010110018f000000000112004b000002ea0000c13d000000200130008c000300000004001d000800000006001d000900000005001d000a00000008001d000700000007001d000000ce0000413d000100000003001d00020000000c001d00040000000b001d00050000000a001d000600000009001d000000000090043500000178010000410000000002000414000001780320009c0000000001024019000000c00110021000000181011001c7000080100200003905da05d50000040f0000000a080000290000000102200190000002db0000613d000000050a0000290000001f02a0003900000005022002700000002003a0008c0000000002004019000000000301043b00000001010000290000001f01100039000000050110027000000000011300190000000002230019000000000312004b0000000905000029000000080600002900000007070000290000000609000029000000040b000029000000020c000029000000ce0000813d000000000002041b0000000102200039000000000312004b000000ca0000413d0000001f01a0008c000003440000a13d00040000000b001d00050000000a001d000600000009001d000000000090043500000178010000410000000002000414000001780320009c0000000001024019000000c00110021000000181011001c7000080100200003905da05d50000040f0000000a080000290000000102200190000002db0000613d000000050a00002900000000038a01700000002002000039000000000101043b0000000806000029000000040b000029000000f00000613d000000200200003900000000040000190000000005b200190000000005050433000000000051041b000000200220003900000001011000390000002004400039000000000534004b000000e80000413d0000000003a3004b00000007070000290000000609000029000000fd0000813d0000000303a00210000000f80330018f000000010400008a000000000334022f000000000343013f0000000002b200190000000002020433000000000232016f000000000021041b00000001010000390000000102a0021000000009050000290000034e0000013d000001930210009c0000015a0000a13d000001940210009c000001eb0000613d000001950210009c000002060000613d000001960110009c000002db0000c13d0000000001000416000000000110004c000002db0000c13d000000040100008a00000000011000310000017b02000041000000000310004c000000000300001900000000030240190000017b01100197000000000410004c000000000200a0190000017b0110009c00000000010300190000000001026019000000000110004c000002db0000c13d000000400100043d000000120200003900000000002104350000017802000041000001780310009c0000000001028019000000400110021000000199011001c7000005db0001042e0000018d0210009c000002550000613d0000018e0210009c000002a70000613d0000018f0110009c000002db0000c13d0000000001000416000000000110004c000002db0000c13d000000040100008a00000000011000310000017b02000041000000400310008c000000000300001900000000030240190000017b01100197000000000410004c000000000200a0190000017b0110009c00000000010300190000000001026019000000000110004c000002db0000c13d00000001020003670000000401200370000000000101043b0000017c0310009c000002db0000213d0000002402200370000000000302043b0000017c0230009c000002db0000213d00000000001004350000000101000039000000200010043f0000004002000039000a00000002001d0000000001000019000900000003001d05da049f0000040f00000009020000290000000000200435000000200010043f00000000010000190000000a0200002905da049f0000040f000000000101041a000000400200043d00000000001204350000017801000041000001780320009c0000000001024019000000400110021000000199011001c7000005db0001042e000001970210009c000002ca0000613d000001980110009c000002db0000c13d0000000001000416000000000110004c000002db0000c13d000000040100008a00000000011000310000017b02000041000000400310008c000000000300001900000000030240190000017b01100197000000000410004c000000000200a0190000017b0110009c00000000010300190000000001026019000000000110004c000002db0000c13d00000001010003670000000402100370000000000202043b0000017c0320009c000002db0000213d0000002401100370000000000301043b000000000100041105da05690000040f0000000101000039000000400200043d00000000001204350000017801000041000001780320009c0000000001024019000000400110021000000199011001c7000005db0001042e0000000001000416000000000110004c000002db0000c13d000000040100008a00000000011000310000017b02000041000000400310008c000000000300001900000000030240190000017b01100197000000000410004c000000000200a0190000017b0110009c00000000010300190000000001026019000000000110004c000002db0000c13d00000004010000390000000101100367000000000101043b000a00000001001d0000017c0110009c000002db0000213d0000000001000411000800000001001d00000000001004350000000101000039000900000001001d000000200010043f00000178010000410000000002000414000001780320009c0000000001024019000000c00110021000000184011001c7000080100200003905da05d50000040f0000000102200190000002db0000613d000000000101043b0000000a020000290000000000200435000000200010043f00000178010000410000000002000414000001780320009c0000000001024019000000c00110021000000184011001c7000080100200003905da05d50000040f0000000102200190000002db0000613d000000000101043b000000000101041a00000024020000390000000102200367000000000202043b0000000003120019000000000123004b000000000100001900000001010040390000000101100190000003b50000613d0000019e0100004100000000001004350000001101000039000000040010043f0000019f01000041000005dc000104300000000001000416000000000110004c000002db0000c13d000000040100008a00000000011000310000017b02000041000000200310008c000000000300001900000000030240190000017b01100197000000000410004c000000000200a0190000017b0110009c00000000010300190000000001026019000000000110004c000002db0000c13d00000004010000390000000101100367000000000101043b0000017c0210009c000002db0000213d0000000000100435000000200000043f0000004002000039000000000100001905da049f0000040f000000000101041a000000400200043d00000000001204350000017801000041000001780320009c0000000001024019000000400110021000000199011001c7000005db0001042e0000000001000416000000000110004c000002db0000c13d000000040100008a00000000011000310000017b02000041000000000310004c000000000300001900000000030240190000017b01100197000000000410004c000000000200a0190000017b0110009c00000000010300190000000001026019000000000110004c000002db0000c13d0000000201000039000000000101041a000000400200043d00000000001204350000017801000041000001780320009c0000000001024019000000400110021000000199011001c7000005db0001042e0000000001000416000000000110004c000002db0000c13d000000040100008a00000000011000310000017b02000041000000600310008c000000000300001900000000030240190000017b01100197000000000410004c000000000200a0190000017b0110009c00000000010300190000000001026019000000000110004c000002db0000c13d00000001010003670000000402100370000000000402043b0000017c0240009c000002db0000213d0000002402100370000000000202043b000a00000002001d0000017c0220009c000002db0000213d0000004401100370000000000101043b000800000001001d00000000004004350000000101000039000700000001001d000000200010043f00000178010000410000000002000414000001780320009c0000000001024019000000c00110021000000184011001c70000801002000039000900000004001d05da05d50000040f0000000102200190000002db0000613d000000000101043b0000000002000411000600000002001d0000000000200435000000200010043f00000178010000410000000002000414000001780320009c0000000001024019000000c00110021000000184011001c7000080100200003905da05d50000040f00000009030000290000000102200190000002db0000613d000000000101043b000000000201041a000000010100008a000000000112004b000003ce0000c13d00000000010300190000000a02000029000000080300002905da04cb0000040f000000400100043d000000070200002900000000002104350000017802000041000001780310009c0000000001028019000000400110021000000199011001c7000005db0001042e0000000001000416000000000110004c000002db0000c13d000000040100008a00000000011000310000017b02000041000000400310008c000000000300001900000000030240190000017b01100197000000000410004c000000000200a0190000017b0110009c00000000010300190000000001026019000000000110004c000002db0000c13d00000001010003670000000402100370000000000202043b000a00000002001d0000017c0220009c000002db0000213d0000002401100370000000000101043b000900000001001d0000000001000411000700000001001d00000000001004350000000101000039000800000001001d000000200010043f00000178010000410000000002000414000001780320009c0000000001024019000000c00110021000000184011001c7000080100200003905da05d50000040f0000000102200190000002db0000613d000000000101043b0000000a020000290000000000200435000000200010043f00000178010000410000000002000414000001780320009c0000000001024019000000c00110021000000184011001c7000080100200003905da05d50000040f0000000102200190000002db0000613d000000000101043b000000000101041a0000000903000029000000000231004b000003c10000813d000000400100043d00000064021000390000019a03000041000000000032043500000044021000390000019b030000410000000000320435000000240210003900000025030000390000000000320435000001890200004100000000002104350000000402100039000000200300003900000000003204350000017802000041000001780310009c000000000102801900000040011002100000019c011001c7000005dc000104300000000001000416000000000110004c000002db0000c13d000000040100008a00000000011000310000017b02000041000000400310008c000000000300001900000000030240190000017b01100197000000000410004c000000000200a0190000017b0110009c00000000010300190000000001026019000000000110004c000002db0000c13d00000001010003670000000402100370000000000202043b0000017c0320009c000002db0000213d0000002401100370000000000301043b000000000100041105da04cb0000040f0000000101000039000000400200043d00000000001204350000017801000041000001780320009c0000000001024019000000400110021000000199011001c7000005db0001042e0000000001000416000000000110004c000002db0000c13d000000040100008a00000000011000310000017b02000041000000000310004c000000000300001900000000030240190000017b01100197000000000410004c000000000200a0190000017b0110009c00000000010300190000000001026019000000000110004c000002dd0000613d0000000001000019000005dc000104300000000303000039000000000203041a000000010420019000000001012002700000007f0510018f000000000601001900000000060560190000001f0560008c00000000050000190000000105002039000000000552013f0000000105500190000002f00000613d0000019e0100004100000000001004350000002201000039000000040010043f0000019f01000041000005dc00010430000000800060043f000000000440004c000003200000c13d000001000300008a000000000232016f000000a00020043f000000000160004c000000c001000039000000a0010060390000032f0000013d0000000000500435000000000410004c0000000004000019000003070000613d0000019d0500004100000000040000190000000006430019000000000705041a000000000076043500000001055000390000002004400039000000000614004b000003000000413d0000003f01400039000000200300008a000000000331016f0000000001230019000000000331004b00000000040000190000000104004039000001800310009c0000004b0000213d00000001034001900000004b0000c13d000000400010043f000a00000001001d05da04b50000040f0000000a0400002900000000014100490000017802000041000001780310009c0000000001028019000001780340009c000000000204401900000040022002100000006001100210000000000121019f000005db0001042e0000000000300435000000a001000039000000000260004c000003350000613d000001a60200004100000000040000190000000003040019000000000402041a000000a005300039000000000045043500000001022000390000002004300039000000000564004b000003260000413d000000c0013000390000001f01100039000000200200008a000000000121016f0000017902100041000001a70220009c0000004b0000413d000a00000001001d000000400010043f000000800200003905da04b50000040f0000000a0400002900000000014100490000017802000041000001780310009c0000000001028019000001780340009c000000000204401900000040022002100000006001100210000000000121019f000005db0001042e0000000001a0004c0000000001000019000003480000613d00000000010c04330000000302a00210000000010300008a000000000223022f000000000232013f000000000221016f0000000101a00210000000000112019f000000000019041b0000000006060433000001800160009c0000004b0000213d0000000404000039000000000104041a000000010210019000000001021002700000007f0320018f000000000302c0190000001f0230008c00000000020000190000000102002039000000000121013f0000000101100190000002ea0000c13d000000200130008c000003830000413d000400000003001d000600000006001d000500000004001d000000000040043500000178010000410000000002000414000001780320009c0000000001024019000000c00110021000000181011001c7000080100200003905da05d50000040f0000000a080000290000000102200190000002db0000613d00000006060000290000001f026000390000000502200270000000200360008c0000000002004019000000000301043b00000004010000290000001f01100039000000050110027000000000011300190000000002230019000000000312004b00000007070000290000000504000029000003830000813d000000000002041b0000000102200039000000000312004b0000037f0000413d0000001f0160008c000003e30000a13d000600000006001d000500000004001d000000000040043500000178010000410000000002000414000001780320009c0000000001024019000000c00110021000000181011001c7000080100200003905da05d50000040f00000001022001900000000a02000029000002db0000613d000000060300002900000000032301700000002002000039000000000101043b0000000806000029000003a30000613d0000002002000039000000000400001900000000056200190000000005050433000000000051041b000000200220003900000001011000390000002004400039000000000534004b0000039b0000413d0000000605000029000000000353004b000003b00000813d0000000303500210000000f80330018f000000010400008a000000000334022f000000000343013f000000080400002900000000024200190000000002020433000000000232016f000000000021041b0000000101000039000000010250021000000003030000290000000504000029000003ee0000013d00000008010000290000000a0200002905da05690000040f000000400100043d000000090200002900000000002104350000017802000041000001780310009c0000000001028019000000400110021000000199011001c7000005db0001042e000000000331004900000007010000290000000a0200002905da05690000040f000000400100043d000000080200002900000000002104350000017802000041000001780310009c0000000001028019000000400110021000000199011001c7000005db0001042e0000000801000029000000000112004b000004040000813d000000400100043d0000004402100039000001a503000041000000000032043500000024021000390000001d030000390000000000320435000001890200004100000000002104350000000402100039000000200300003900000000003204350000017802000041000001780310009c000000000102801900000040011002100000018a011001c7000005dc00010430000000000160004c0000000001000019000003e70000613d00000000010704330000000302600210000000010300008a000000000223022f000000000232013f000000000221016f00000001016002100000000303000029000000000112019f000000000014041b000000000130004c0000041c0000c13d000000400100043d00000044021000390000018803000041000000000032043500000024021000390000001f030000390000000000320435000001890200004100000000002104350000000402100039000000200300003900000000003204350000017802000041000001780310009c000000000102801900000040011002100000018a011001c7000005dc00010430000500000002001d000000000130004c0000044f0000c13d000000400100043d0000006402100039000001a30300004100000000003204350000004402100039000001a4030000410000000000320435000000240210003900000024030000390000000000320435000001890200004100000000002104350000000402100039000000200300003900000000003204350000017802000041000001780310009c000000000102801900000040011002100000019c011001c7000005dc000104300000000901000029000000000101041a000001820210009c000001c10000813d00000183011000410000000902000029000000000012041b0000000000300435000000200000043f00000178010000410000000002000414000001780320009c0000000001024019000000c00110021000000184011001c7000080100200003905da05d50000040f00000003060000290000000102200190000002db0000613d000000000101043b000000000201041a000001850320009c000001c10000213d0000018302200041000000000021041b0000018301000041000000400200043d000000000012043500000178010000410000000003000414000001780430009c0000000003018019000001780420009c00000000010240190000004001100210000000c002300210000000000121019f00000181011001c70000800d0200003900000003030000390000018604000041000000000500001905da05d00000040f0000000101200190000002db0000613d0000002001000039000001000010044300000120000004430000018701000041000005db0001042e00000006010000290000017c01100198000600000001001d000004680000c13d000000400100043d0000006402100039000001a10300004100000000003204350000004402100039000001a2030000410000000000320435000000240210003900000022030000390000000000320435000001890200004100000000002104350000000402100039000000200300003900000000003204350000017802000041000001780310009c000000000102801900000040011002100000019c011001c7000005dc00010430000000090100002900000000001004350000000701000029000000200010043f00000178010000410000000002000414000001780320009c0000000001024019000000c00110021000000184011001c7000080100200003905da05d50000040f0000000102200190000002db0000613d000000000101043b00000006020000290000000000200435000000200010043f00000178010000410000000002000414000001780320009c0000000001024019000000c00110021000000184011001c7000080100200003905da05d50000040f00000005030000290000000102200190000002db0000613d00000008020000290000000002230049000000000101043b000000000021041b000000400100043d000000000021043500000178020000410000000003000414000001780430009c0000000003028019000001780410009c00000000010280190000004001100210000000c002300210000000000112019f00000181011001c70000800d020000390000000303000039000001a0040000410000000905000029000000060600002905da05d00000040f00000009030000290000000101200190000002480000c13d000002db0000013d0000017803000041000001780410009c00000000010380190000004001100210000001780420009c00000000020380190000006002200210000000000112019f0000000002000414000001780420009c0000000002038019000000c002200210000000000112019f000001a8011001c7000080100200003905da05d50000040f0000000102200190000004b30000613d000000000101043b000000000001042d0000000001000019000005dc0001043000000020030000390000000004310436000000000302043300000000003404350000004001100039000000000430004c000004c40000613d000000000400001900000000054100190000002004400039000000000624001900000000060604330000000000650435000000000534004b000004bd0000413d000000000231001900000000000204350000001f02300039000000200300008a000000000232016f0000000001210019000000000001042d00040000000000020000017c01100198000005240000613d000400000003001d0000017c02200198000200000002001d000005390000613d000300000001001d0000000000100435000000200000043f00000178010000410000000002000414000001780320009c0000000001024019000000c00110021000000184011001c7000080100200003905da05d50000040f0000000102200190000005220000613d000000000101043b000000000201041a0000000401000029000100000002001d000000000112004b0000054e0000413d00000003010000290000000000100435000000200000043f00000178010000410000000002000414000001780320009c0000000001024019000000c00110021000000184011001c7000080100200003905da05d50000040f0000000102200190000005220000613d000000040200002900000001030000290000000002230049000000000101043b000000000021041b0000000201000029000000000010043500000178010000410000000002000414000001780320009c0000000001024019000000c00110021000000184011001c7000080100200003905da05d50000040f0000000102200190000005220000613d000000000101043b000000000301041a00000004040000290000000002430019000000000332004b000000000300001900000001030040390000000103300190000005630000c13d000000000021041b000000400100043d000000000041043500000178020000410000000003000414000001780430009c0000000003028019000001780410009c00000000010280190000004001100210000000c002300210000000000112019f00000181011001c70000800d02000039000000030300003900000186040000410000000305000029000000020600002905da05d00000040f0000000101200190000005220000613d000000000001042d0000000001000019000005dc00010430000000400100043d0000006402100039000001ad0300004100000000003204350000004402100039000001ae030000410000000000320435000000240210003900000025030000390000000000320435000001890200004100000000002104350000000402100039000000200300003900000000003204350000017802000041000001780310009c000000000102801900000040011002100000019c011001c7000005dc00010430000000400100043d0000006402100039000001ab0300004100000000003204350000004402100039000001ac030000410000000000320435000000240210003900000023030000390000000000320435000001890200004100000000002104350000000402100039000000200300003900000000003204350000017802000041000001780310009c000000000102801900000040011002100000019c011001c7000005dc00010430000000400100043d0000006402100039000001a90300004100000000003204350000004402100039000001aa030000410000000000320435000000240210003900000026030000390000000000320435000001890200004100000000002104350000000402100039000000200300003900000000003204350000017802000041000001780310009c000000000102801900000040011002100000019c011001c7000005dc000104300000019e0100004100000000001004350000001101000039000000040010043f0000019f01000041000005dc0001043000030000000000020000017c01100198000005a60000613d000200000003001d0000017c02200198000300000002001d000005bb0000613d000100000001001d00000000001004350000000101000039000000200010043f00000178010000410000000002000414000001780320009c0000000001024019000000c00110021000000184011001c7000080100200003905da05d50000040f00000001022001900000000304000029000005a40000613d000000000101043b0000000000400435000000200010043f00000178010000410000000002000414000001780320009c0000000001024019000000c00110021000000184011001c7000080100200003905da05d50000040f00000003060000290000000102200190000005a40000613d000000000101043b0000000202000029000000000021041b000000400100043d000000000021043500000178020000410000000003000414000001780430009c0000000003028019000001780410009c00000000010280190000004001100210000000c002300210000000000112019f00000181011001c70000800d020000390000000303000039000001a004000041000000010500002905da05d00000040f0000000101200190000005a40000613d000000000001042d0000000001000019000005dc00010430000000400100043d0000006402100039000001a30300004100000000003204350000004402100039000001a4030000410000000000320435000000240210003900000024030000390000000000320435000001890200004100000000002104350000000402100039000000200300003900000000003204350000017802000041000001780310009c000000000102801900000040011002100000019c011001c7000005dc00010430000000400100043d0000006402100039000001a10300004100000000003204350000004402100039000001a2030000410000000000320435000000240210003900000022030000390000000000320435000001890200004100000000002104350000000402100039000000200300003900000000003204350000017802000041000001780310009c000000000102801900000040011002100000019c011001c7000005dc00010430000005d3002104210000000102000039000000000001042d0000000002000019000000000001042d000005d8002104230000000102000039000000000001042d0000000002000019000000000001042d000005da00000432000005db0001042e000005dc0001043000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff000000000000007f8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000ffffffffffffffbf4c3120455243323020746f6b656e0000000000000000000000000000000000004c31000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff0200000000000000000000000000000000000020000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffc9ca36523a2160000000000000000000000000000000000000000000000000003635c9adc5dea000000200000000000000000000000000000000000040000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffc9ca36523a215fffffddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef000000020000000000000000000000000000004000000100000000000000000045524332303a206d696e7420746f20746865207a65726f20616464726573730008c379a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064000000000000000000000000000000000000000000000000000000000000000000000000000000003950935000000000000000000000000000000000000000000000000000000000a457c2d600000000000000000000000000000000000000000000000000000000a457c2d700000000000000000000000000000000000000000000000000000000a9059cbb00000000000000000000000000000000000000000000000000000000dd62ed3e00000000000000000000000000000000000000000000000000000000395093510000000000000000000000000000000000000000000000000000000070a082310000000000000000000000000000000000000000000000000000000095d89b410000000000000000000000000000000000000000000000000000000018160ddc0000000000000000000000000000000000000000000000000000000018160ddd0000000000000000000000000000000000000000000000000000000023b872dd00000000000000000000000000000000000000000000000000000000313ce5670000000000000000000000000000000000000000000000000000000006fdde0300000000000000000000000000000000000000000000000000000000095ea7b30000000000000000000000000000000000000020000000000000000000000000207a65726f00000000000000000000000000000000000000000000000000000045524332303a2064656372656173656420616c6c6f77616e63652062656c6f7700000000000000000000000000000000000000840000000000000000000000008a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b4e487b710000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000000000000000000000008c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925737300000000000000000000000000000000000000000000000000000000000045524332303a20617070726f766520746f20746865207a65726f206164647265726573730000000000000000000000000000000000000000000000000000000045524332303a20617070726f76652066726f6d20746865207a65726f2061646445524332303a20696e73756666696369656e7420616c6c6f77616e6365000000c2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85bffffffffffffffffffffffffffffffffffffffffffffffff00000000000000800200000000000000000000000000000000000000000000000000000000000000616c616e6365000000000000000000000000000000000000000000000000000045524332303a207472616e7366657220616d6f756e7420657863656564732062657373000000000000000000000000000000000000000000000000000000000045524332303a207472616e7366657220746f20746865207a65726f2061646472647265737300000000000000000000000000000000000000000000000000000045524332303a207472616e736665722066726f6d20746865207a65726f20616400000000000000000000000000000000000000000000000000000000000000006ef210ce4408c02de1c46dffae2168709cb9bcf2c84f9eae0a52bde6a9ee79a0", - "deployedBytecode": "0x0002000000000002000a00000000000200010000000103550000006001100270000001780010019d0000000101200190000000410000c13d0000008001000039000000400010043f0000000001000031000000040110008c000002db0000413d0000000101000367000000000101043b000000e0011002700000018b0210009c000001010000a13d0000018c0210009c000001230000213d000001900210009c000001810000613d000001910210009c000001c70000613d000001920110009c000002db0000c13d0000000001000416000000000110004c000002db0000c13d000000040100008a00000000011000310000017b02000041000000000310004c000000000300001900000000030240190000017b01100197000000000410004c000000000200a0190000017b0110009c00000000010300190000000001026019000000000110004c000002db0000c13d0000000405000039000000000405041a000000010640019000000001014002700000007f0210018f00000000010260190000001f0210008c00000000020000190000000102002039000000000224013f0000000102200190000002ea0000c13d000000400200043d0000000003120436000000000660004c000002fa0000c13d000001000500008a000000000454016f0000000000430435000000000110004c00000020040000390000000004006019000003070000013d0000000001000416000000000110004c000002db0000c13d00000000010000310000009f02100039000000200800008a000000000282016f00000179032000410000017a0330009c000000510000213d0000019e0100004100000000001004350000004101000039000000040010043f0000019f01000041000005dc00010430000000400020043f0000001f0210018f000000010300036700000005041002720000005f0000613d00000000050000190000000506500210000000000763034f000000000707043b000000800660003900000000007604350000000105500039000000000645004b000000570000413d000000000520004c0000006e0000613d0000000504400210000000000343034f00000003022002100000008004400039000000000504043300000000052501cf000000000525022f000000000303043b0000010002200089000000000323022f00000000022301cf000000000252019f00000000002404350000017b02000041000000200310008c000000000300001900000000030240190000017b01100197000000000410004c000000000200a0190000017b0110009c00000000010300190000000001026019000000000110004c000002db0000c13d000000800100043d0000017c041001970000017c0110009c000002db0000213d000000400b00043d0000017d01b0009c0000004b0000213d0000004001b00039000000400010043f0000000e01000039000000000c1b04360000017e0100004100000000001c0435000000400600043d0000017d0160009c0000004b0000213d0000004001600039000000400010043f000000020500003900000000075604360000017f010000410000000000170435000000000a0b04330000018001a0009c0000004b0000213d0000000309000039000000000109041a000000010210019000000001011002700000007f0310018f000000000301c0190000001f0130008c00000000010000190000000101002039000000010110018f000000000112004b000002ea0000c13d000000200130008c000300000004001d000800000006001d000900000005001d000a00000008001d000700000007001d000000ce0000413d000100000003001d00020000000c001d00040000000b001d00050000000a001d000600000009001d000000000090043500000178010000410000000002000414000001780320009c0000000001024019000000c00110021000000181011001c7000080100200003905da05d50000040f0000000a080000290000000102200190000002db0000613d000000050a0000290000001f02a0003900000005022002700000002003a0008c0000000002004019000000000301043b00000001010000290000001f01100039000000050110027000000000011300190000000002230019000000000312004b0000000905000029000000080600002900000007070000290000000609000029000000040b000029000000020c000029000000ce0000813d000000000002041b0000000102200039000000000312004b000000ca0000413d0000001f01a0008c000003440000a13d00040000000b001d00050000000a001d000600000009001d000000000090043500000178010000410000000002000414000001780320009c0000000001024019000000c00110021000000181011001c7000080100200003905da05d50000040f0000000a080000290000000102200190000002db0000613d000000050a00002900000000038a01700000002002000039000000000101043b0000000806000029000000040b000029000000f00000613d000000200200003900000000040000190000000005b200190000000005050433000000000051041b000000200220003900000001011000390000002004400039000000000534004b000000e80000413d0000000003a3004b00000007070000290000000609000029000000fd0000813d0000000303a00210000000f80330018f000000010400008a000000000334022f000000000343013f0000000002b200190000000002020433000000000232016f000000000021041b00000001010000390000000102a0021000000009050000290000034e0000013d000001930210009c0000015a0000a13d000001940210009c000001eb0000613d000001950210009c000002060000613d000001960110009c000002db0000c13d0000000001000416000000000110004c000002db0000c13d000000040100008a00000000011000310000017b02000041000000000310004c000000000300001900000000030240190000017b01100197000000000410004c000000000200a0190000017b0110009c00000000010300190000000001026019000000000110004c000002db0000c13d000000400100043d000000120200003900000000002104350000017802000041000001780310009c0000000001028019000000400110021000000199011001c7000005db0001042e0000018d0210009c000002550000613d0000018e0210009c000002a70000613d0000018f0110009c000002db0000c13d0000000001000416000000000110004c000002db0000c13d000000040100008a00000000011000310000017b02000041000000400310008c000000000300001900000000030240190000017b01100197000000000410004c000000000200a0190000017b0110009c00000000010300190000000001026019000000000110004c000002db0000c13d00000001020003670000000401200370000000000101043b0000017c0310009c000002db0000213d0000002402200370000000000302043b0000017c0230009c000002db0000213d00000000001004350000000101000039000000200010043f0000004002000039000a00000002001d0000000001000019000900000003001d05da049f0000040f00000009020000290000000000200435000000200010043f00000000010000190000000a0200002905da049f0000040f000000000101041a000000400200043d00000000001204350000017801000041000001780320009c0000000001024019000000400110021000000199011001c7000005db0001042e000001970210009c000002ca0000613d000001980110009c000002db0000c13d0000000001000416000000000110004c000002db0000c13d000000040100008a00000000011000310000017b02000041000000400310008c000000000300001900000000030240190000017b01100197000000000410004c000000000200a0190000017b0110009c00000000010300190000000001026019000000000110004c000002db0000c13d00000001010003670000000402100370000000000202043b0000017c0320009c000002db0000213d0000002401100370000000000301043b000000000100041105da05690000040f0000000101000039000000400200043d00000000001204350000017801000041000001780320009c0000000001024019000000400110021000000199011001c7000005db0001042e0000000001000416000000000110004c000002db0000c13d000000040100008a00000000011000310000017b02000041000000400310008c000000000300001900000000030240190000017b01100197000000000410004c000000000200a0190000017b0110009c00000000010300190000000001026019000000000110004c000002db0000c13d00000004010000390000000101100367000000000101043b000a00000001001d0000017c0110009c000002db0000213d0000000001000411000800000001001d00000000001004350000000101000039000900000001001d000000200010043f00000178010000410000000002000414000001780320009c0000000001024019000000c00110021000000184011001c7000080100200003905da05d50000040f0000000102200190000002db0000613d000000000101043b0000000a020000290000000000200435000000200010043f00000178010000410000000002000414000001780320009c0000000001024019000000c00110021000000184011001c7000080100200003905da05d50000040f0000000102200190000002db0000613d000000000101043b000000000101041a00000024020000390000000102200367000000000202043b0000000003120019000000000123004b000000000100001900000001010040390000000101100190000003b50000613d0000019e0100004100000000001004350000001101000039000000040010043f0000019f01000041000005dc000104300000000001000416000000000110004c000002db0000c13d000000040100008a00000000011000310000017b02000041000000200310008c000000000300001900000000030240190000017b01100197000000000410004c000000000200a0190000017b0110009c00000000010300190000000001026019000000000110004c000002db0000c13d00000004010000390000000101100367000000000101043b0000017c0210009c000002db0000213d0000000000100435000000200000043f0000004002000039000000000100001905da049f0000040f000000000101041a000000400200043d00000000001204350000017801000041000001780320009c0000000001024019000000400110021000000199011001c7000005db0001042e0000000001000416000000000110004c000002db0000c13d000000040100008a00000000011000310000017b02000041000000000310004c000000000300001900000000030240190000017b01100197000000000410004c000000000200a0190000017b0110009c00000000010300190000000001026019000000000110004c000002db0000c13d0000000201000039000000000101041a000000400200043d00000000001204350000017801000041000001780320009c0000000001024019000000400110021000000199011001c7000005db0001042e0000000001000416000000000110004c000002db0000c13d000000040100008a00000000011000310000017b02000041000000600310008c000000000300001900000000030240190000017b01100197000000000410004c000000000200a0190000017b0110009c00000000010300190000000001026019000000000110004c000002db0000c13d00000001010003670000000402100370000000000402043b0000017c0240009c000002db0000213d0000002402100370000000000202043b000a00000002001d0000017c0220009c000002db0000213d0000004401100370000000000101043b000800000001001d00000000004004350000000101000039000700000001001d000000200010043f00000178010000410000000002000414000001780320009c0000000001024019000000c00110021000000184011001c70000801002000039000900000004001d05da05d50000040f0000000102200190000002db0000613d000000000101043b0000000002000411000600000002001d0000000000200435000000200010043f00000178010000410000000002000414000001780320009c0000000001024019000000c00110021000000184011001c7000080100200003905da05d50000040f00000009030000290000000102200190000002db0000613d000000000101043b000000000201041a000000010100008a000000000112004b000003ce0000c13d00000000010300190000000a02000029000000080300002905da04cb0000040f000000400100043d000000070200002900000000002104350000017802000041000001780310009c0000000001028019000000400110021000000199011001c7000005db0001042e0000000001000416000000000110004c000002db0000c13d000000040100008a00000000011000310000017b02000041000000400310008c000000000300001900000000030240190000017b01100197000000000410004c000000000200a0190000017b0110009c00000000010300190000000001026019000000000110004c000002db0000c13d00000001010003670000000402100370000000000202043b000a00000002001d0000017c0220009c000002db0000213d0000002401100370000000000101043b000900000001001d0000000001000411000700000001001d00000000001004350000000101000039000800000001001d000000200010043f00000178010000410000000002000414000001780320009c0000000001024019000000c00110021000000184011001c7000080100200003905da05d50000040f0000000102200190000002db0000613d000000000101043b0000000a020000290000000000200435000000200010043f00000178010000410000000002000414000001780320009c0000000001024019000000c00110021000000184011001c7000080100200003905da05d50000040f0000000102200190000002db0000613d000000000101043b000000000101041a0000000903000029000000000231004b000003c10000813d000000400100043d00000064021000390000019a03000041000000000032043500000044021000390000019b030000410000000000320435000000240210003900000025030000390000000000320435000001890200004100000000002104350000000402100039000000200300003900000000003204350000017802000041000001780310009c000000000102801900000040011002100000019c011001c7000005dc000104300000000001000416000000000110004c000002db0000c13d000000040100008a00000000011000310000017b02000041000000400310008c000000000300001900000000030240190000017b01100197000000000410004c000000000200a0190000017b0110009c00000000010300190000000001026019000000000110004c000002db0000c13d00000001010003670000000402100370000000000202043b0000017c0320009c000002db0000213d0000002401100370000000000301043b000000000100041105da04cb0000040f0000000101000039000000400200043d00000000001204350000017801000041000001780320009c0000000001024019000000400110021000000199011001c7000005db0001042e0000000001000416000000000110004c000002db0000c13d000000040100008a00000000011000310000017b02000041000000000310004c000000000300001900000000030240190000017b01100197000000000410004c000000000200a0190000017b0110009c00000000010300190000000001026019000000000110004c000002dd0000613d0000000001000019000005dc000104300000000303000039000000000203041a000000010420019000000001012002700000007f0510018f000000000601001900000000060560190000001f0560008c00000000050000190000000105002039000000000552013f0000000105500190000002f00000613d0000019e0100004100000000001004350000002201000039000000040010043f0000019f01000041000005dc00010430000000800060043f000000000440004c000003200000c13d000001000300008a000000000232016f000000a00020043f000000000160004c000000c001000039000000a0010060390000032f0000013d0000000000500435000000000410004c0000000004000019000003070000613d0000019d0500004100000000040000190000000006430019000000000705041a000000000076043500000001055000390000002004400039000000000614004b000003000000413d0000003f01400039000000200300008a000000000331016f0000000001230019000000000331004b00000000040000190000000104004039000001800310009c0000004b0000213d00000001034001900000004b0000c13d000000400010043f000a00000001001d05da04b50000040f0000000a0400002900000000014100490000017802000041000001780310009c0000000001028019000001780340009c000000000204401900000040022002100000006001100210000000000121019f000005db0001042e0000000000300435000000a001000039000000000260004c000003350000613d000001a60200004100000000040000190000000003040019000000000402041a000000a005300039000000000045043500000001022000390000002004300039000000000564004b000003260000413d000000c0013000390000001f01100039000000200200008a000000000121016f0000017902100041000001a70220009c0000004b0000413d000a00000001001d000000400010043f000000800200003905da04b50000040f0000000a0400002900000000014100490000017802000041000001780310009c0000000001028019000001780340009c000000000204401900000040022002100000006001100210000000000121019f000005db0001042e0000000001a0004c0000000001000019000003480000613d00000000010c04330000000302a00210000000010300008a000000000223022f000000000232013f000000000221016f0000000101a00210000000000112019f000000000019041b0000000006060433000001800160009c0000004b0000213d0000000404000039000000000104041a000000010210019000000001021002700000007f0320018f000000000302c0190000001f0230008c00000000020000190000000102002039000000000121013f0000000101100190000002ea0000c13d000000200130008c000003830000413d000400000003001d000600000006001d000500000004001d000000000040043500000178010000410000000002000414000001780320009c0000000001024019000000c00110021000000181011001c7000080100200003905da05d50000040f0000000a080000290000000102200190000002db0000613d00000006060000290000001f026000390000000502200270000000200360008c0000000002004019000000000301043b00000004010000290000001f01100039000000050110027000000000011300190000000002230019000000000312004b00000007070000290000000504000029000003830000813d000000000002041b0000000102200039000000000312004b0000037f0000413d0000001f0160008c000003e30000a13d000600000006001d000500000004001d000000000040043500000178010000410000000002000414000001780320009c0000000001024019000000c00110021000000181011001c7000080100200003905da05d50000040f00000001022001900000000a02000029000002db0000613d000000060300002900000000032301700000002002000039000000000101043b0000000806000029000003a30000613d0000002002000039000000000400001900000000056200190000000005050433000000000051041b000000200220003900000001011000390000002004400039000000000534004b0000039b0000413d0000000605000029000000000353004b000003b00000813d0000000303500210000000f80330018f000000010400008a000000000334022f000000000343013f000000080400002900000000024200190000000002020433000000000232016f000000000021041b0000000101000039000000010250021000000003030000290000000504000029000003ee0000013d00000008010000290000000a0200002905da05690000040f000000400100043d000000090200002900000000002104350000017802000041000001780310009c0000000001028019000000400110021000000199011001c7000005db0001042e000000000331004900000007010000290000000a0200002905da05690000040f000000400100043d000000080200002900000000002104350000017802000041000001780310009c0000000001028019000000400110021000000199011001c7000005db0001042e0000000801000029000000000112004b000004040000813d000000400100043d0000004402100039000001a503000041000000000032043500000024021000390000001d030000390000000000320435000001890200004100000000002104350000000402100039000000200300003900000000003204350000017802000041000001780310009c000000000102801900000040011002100000018a011001c7000005dc00010430000000000160004c0000000001000019000003e70000613d00000000010704330000000302600210000000010300008a000000000223022f000000000232013f000000000221016f00000001016002100000000303000029000000000112019f000000000014041b000000000130004c0000041c0000c13d000000400100043d00000044021000390000018803000041000000000032043500000024021000390000001f030000390000000000320435000001890200004100000000002104350000000402100039000000200300003900000000003204350000017802000041000001780310009c000000000102801900000040011002100000018a011001c7000005dc00010430000500000002001d000000000130004c0000044f0000c13d000000400100043d0000006402100039000001a30300004100000000003204350000004402100039000001a4030000410000000000320435000000240210003900000024030000390000000000320435000001890200004100000000002104350000000402100039000000200300003900000000003204350000017802000041000001780310009c000000000102801900000040011002100000019c011001c7000005dc000104300000000901000029000000000101041a000001820210009c000001c10000813d00000183011000410000000902000029000000000012041b0000000000300435000000200000043f00000178010000410000000002000414000001780320009c0000000001024019000000c00110021000000184011001c7000080100200003905da05d50000040f00000003060000290000000102200190000002db0000613d000000000101043b000000000201041a000001850320009c000001c10000213d0000018302200041000000000021041b0000018301000041000000400200043d000000000012043500000178010000410000000003000414000001780430009c0000000003018019000001780420009c00000000010240190000004001100210000000c002300210000000000121019f00000181011001c70000800d0200003900000003030000390000018604000041000000000500001905da05d00000040f0000000101200190000002db0000613d0000002001000039000001000010044300000120000004430000018701000041000005db0001042e00000006010000290000017c01100198000600000001001d000004680000c13d000000400100043d0000006402100039000001a10300004100000000003204350000004402100039000001a2030000410000000000320435000000240210003900000022030000390000000000320435000001890200004100000000002104350000000402100039000000200300003900000000003204350000017802000041000001780310009c000000000102801900000040011002100000019c011001c7000005dc00010430000000090100002900000000001004350000000701000029000000200010043f00000178010000410000000002000414000001780320009c0000000001024019000000c00110021000000184011001c7000080100200003905da05d50000040f0000000102200190000002db0000613d000000000101043b00000006020000290000000000200435000000200010043f00000178010000410000000002000414000001780320009c0000000001024019000000c00110021000000184011001c7000080100200003905da05d50000040f00000005030000290000000102200190000002db0000613d00000008020000290000000002230049000000000101043b000000000021041b000000400100043d000000000021043500000178020000410000000003000414000001780430009c0000000003028019000001780410009c00000000010280190000004001100210000000c002300210000000000112019f00000181011001c70000800d020000390000000303000039000001a0040000410000000905000029000000060600002905da05d00000040f00000009030000290000000101200190000002480000c13d000002db0000013d0000017803000041000001780410009c00000000010380190000004001100210000001780420009c00000000020380190000006002200210000000000112019f0000000002000414000001780420009c0000000002038019000000c002200210000000000112019f000001a8011001c7000080100200003905da05d50000040f0000000102200190000004b30000613d000000000101043b000000000001042d0000000001000019000005dc0001043000000020030000390000000004310436000000000302043300000000003404350000004001100039000000000430004c000004c40000613d000000000400001900000000054100190000002004400039000000000624001900000000060604330000000000650435000000000534004b000004bd0000413d000000000231001900000000000204350000001f02300039000000200300008a000000000232016f0000000001210019000000000001042d00040000000000020000017c01100198000005240000613d000400000003001d0000017c02200198000200000002001d000005390000613d000300000001001d0000000000100435000000200000043f00000178010000410000000002000414000001780320009c0000000001024019000000c00110021000000184011001c7000080100200003905da05d50000040f0000000102200190000005220000613d000000000101043b000000000201041a0000000401000029000100000002001d000000000112004b0000054e0000413d00000003010000290000000000100435000000200000043f00000178010000410000000002000414000001780320009c0000000001024019000000c00110021000000184011001c7000080100200003905da05d50000040f0000000102200190000005220000613d000000040200002900000001030000290000000002230049000000000101043b000000000021041b0000000201000029000000000010043500000178010000410000000002000414000001780320009c0000000001024019000000c00110021000000184011001c7000080100200003905da05d50000040f0000000102200190000005220000613d000000000101043b000000000301041a00000004040000290000000002430019000000000332004b000000000300001900000001030040390000000103300190000005630000c13d000000000021041b000000400100043d000000000041043500000178020000410000000003000414000001780430009c0000000003028019000001780410009c00000000010280190000004001100210000000c002300210000000000112019f00000181011001c70000800d02000039000000030300003900000186040000410000000305000029000000020600002905da05d00000040f0000000101200190000005220000613d000000000001042d0000000001000019000005dc00010430000000400100043d0000006402100039000001ad0300004100000000003204350000004402100039000001ae030000410000000000320435000000240210003900000025030000390000000000320435000001890200004100000000002104350000000402100039000000200300003900000000003204350000017802000041000001780310009c000000000102801900000040011002100000019c011001c7000005dc00010430000000400100043d0000006402100039000001ab0300004100000000003204350000004402100039000001ac030000410000000000320435000000240210003900000023030000390000000000320435000001890200004100000000002104350000000402100039000000200300003900000000003204350000017802000041000001780310009c000000000102801900000040011002100000019c011001c7000005dc00010430000000400100043d0000006402100039000001a90300004100000000003204350000004402100039000001aa030000410000000000320435000000240210003900000026030000390000000000320435000001890200004100000000002104350000000402100039000000200300003900000000003204350000017802000041000001780310009c000000000102801900000040011002100000019c011001c7000005dc000104300000019e0100004100000000001004350000001101000039000000040010043f0000019f01000041000005dc0001043000030000000000020000017c01100198000005a60000613d000200000003001d0000017c02200198000300000002001d000005bb0000613d000100000001001d00000000001004350000000101000039000000200010043f00000178010000410000000002000414000001780320009c0000000001024019000000c00110021000000184011001c7000080100200003905da05d50000040f00000001022001900000000304000029000005a40000613d000000000101043b0000000000400435000000200010043f00000178010000410000000002000414000001780320009c0000000001024019000000c00110021000000184011001c7000080100200003905da05d50000040f00000003060000290000000102200190000005a40000613d000000000101043b0000000202000029000000000021041b000000400100043d000000000021043500000178020000410000000003000414000001780430009c0000000003028019000001780410009c00000000010280190000004001100210000000c002300210000000000112019f00000181011001c70000800d020000390000000303000039000001a004000041000000010500002905da05d00000040f0000000101200190000005a40000613d000000000001042d0000000001000019000005dc00010430000000400100043d0000006402100039000001a30300004100000000003204350000004402100039000001a4030000410000000000320435000000240210003900000024030000390000000000320435000001890200004100000000002104350000000402100039000000200300003900000000003204350000017802000041000001780310009c000000000102801900000040011002100000019c011001c7000005dc00010430000000400100043d0000006402100039000001a10300004100000000003204350000004402100039000001a2030000410000000000320435000000240210003900000022030000390000000000320435000001890200004100000000002104350000000402100039000000200300003900000000003204350000017802000041000001780310009c000000000102801900000040011002100000019c011001c7000005dc00010430000005d3002104210000000102000039000000000001042d0000000002000019000000000001042d000005d8002104230000000102000039000000000001042d0000000002000019000000000001042d000005da00000432000005db0001042e000005dc0001043000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff000000000000007f8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000ffffffffffffffbf4c3120455243323020746f6b656e0000000000000000000000000000000000004c31000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff0200000000000000000000000000000000000020000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffc9ca36523a2160000000000000000000000000000000000000000000000000003635c9adc5dea000000200000000000000000000000000000000000040000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffc9ca36523a215fffffddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef000000020000000000000000000000000000004000000100000000000000000045524332303a206d696e7420746f20746865207a65726f20616464726573730008c379a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064000000000000000000000000000000000000000000000000000000000000000000000000000000003950935000000000000000000000000000000000000000000000000000000000a457c2d600000000000000000000000000000000000000000000000000000000a457c2d700000000000000000000000000000000000000000000000000000000a9059cbb00000000000000000000000000000000000000000000000000000000dd62ed3e00000000000000000000000000000000000000000000000000000000395093510000000000000000000000000000000000000000000000000000000070a082310000000000000000000000000000000000000000000000000000000095d89b410000000000000000000000000000000000000000000000000000000018160ddc0000000000000000000000000000000000000000000000000000000018160ddd0000000000000000000000000000000000000000000000000000000023b872dd00000000000000000000000000000000000000000000000000000000313ce5670000000000000000000000000000000000000000000000000000000006fdde0300000000000000000000000000000000000000000000000000000000095ea7b30000000000000000000000000000000000000020000000000000000000000000207a65726f00000000000000000000000000000000000000000000000000000045524332303a2064656372656173656420616c6c6f77616e63652062656c6f7700000000000000000000000000000000000000840000000000000000000000008a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b4e487b710000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000000000000000000000008c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925737300000000000000000000000000000000000000000000000000000000000045524332303a20617070726f766520746f20746865207a65726f206164647265726573730000000000000000000000000000000000000000000000000000000045524332303a20617070726f76652066726f6d20746865207a65726f2061646445524332303a20696e73756666696369656e7420616c6c6f77616e6365000000c2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85bffffffffffffffffffffffffffffffffffffffffffffffff00000000000000800200000000000000000000000000000000000000000000000000000000000000616c616e6365000000000000000000000000000000000000000000000000000045524332303a207472616e7366657220616d6f756e7420657863656564732062657373000000000000000000000000000000000000000000000000000000000045524332303a207472616e7366657220746f20746865207a65726f2061646472647265737300000000000000000000000000000000000000000000000000000045524332303a207472616e736665722066726f6d20746865207a65726f20616400000000000000000000000000000000000000000000000000000000000000006ef210ce4408c02de1c46dffae2168709cb9bcf2c84f9eae0a52bde6a9ee79a0", - "linkReferences": {}, - "deployedLinkReferences": {}, - "factoryDeps": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/contracts/L2.sol/L2.dbg.json b/packages/integration-tests/src/playbook/artifacts-zk/contracts/L2.sol/L2.dbg.json deleted file mode 100644 index 973a2e83f9..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/contracts/L2.sol/L2.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../build-info/92cb10df65f6d26368974b9012699389.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/contracts/L2.sol/L2.json b/packages/integration-tests/src/playbook/artifacts-zk/contracts/L2.sol/L2.json deleted file mode 100644 index 2a70a7a274..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/contracts/L2.sol/L2.json +++ /dev/null @@ -1,287 +0,0 @@ -{ - "_format": "hh-zksolc-artifact-1", - "contractName": "L2", - "sourceName": "contracts/L2.sol", - "abi": [ - { - "inputs": [], - "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" - } - ], - "bytecode": "0x0002000000000002000600000000000200010000000103550000006001100270000001670010019d0000000101200190000000410000c13d0000008001000039000000400010043f0000000001000031000000040110008c0000045a0000413d0000000101000367000000000101043b000000e001100270000001760210009c0000005c0000a13d000001770210009c0000007e0000213d0000017b0210009c0000016f0000613d0000017c0210009c000001bb0000613d0000017d0110009c0000045a0000c13d0000000001000416000000000110004c0000045a0000c13d000000040100008a00000000011000310000018402000041000000000310004c000000000300001900000000030240190000018401100197000000000410004c000000000200a019000001840110009c00000000010300190000000001026019000000000110004c0000045a0000c13d0000000405000039000000000405041a000000010640019000000001014002700000007f0210018f00000000010260190000001f0210008c00000000020000190000000102002039000000000224013f0000000102200190000000c10000c13d000000400200043d0000000003120436000000000660004c000003730000c13d000001000500008a000000000454016f0000000000430435000000000110004c00000020040000390000000004006019000003800000013d0000000001000416000000000110004c0000045a0000c13d000000c001000039000000400010043f0000000e01000039000000800010043f0000016801000041000000a00010043f000000400500043d000001690150009c000000560000813d0000004001500039000000400010043f000000020400003900000000064504360000016a010000410000000000160435000000800800043d0000016b0180009c000000b50000a13d0000018b0100004100000000001004350000004101000039000000040010043f0000018c0100004100000599000104300000017e0210009c000000c70000a13d0000017f0210009c000001df0000613d000001800210009c000001fa0000613d000001810110009c0000045a0000c13d0000000001000416000000000110004c0000045a0000c13d000000040100008a00000000011000310000018402000041000000000310004c000000000300001900000000030240190000018401100197000000000410004c000000000200a019000001840110009c00000000010300190000000001026019000000000110004c0000045a0000c13d000000400100043d000000120200003900000000002104350000016702000041000001670310009c0000000001028019000000400110021000000186011001c7000005980001042e000001780210009c000002490000613d000001790210009c0000029b0000613d0000017a0110009c0000045a0000c13d0000000001000416000000000110004c0000045a0000c13d000000040100008a00000000011000310000018402000041000000400310008c000000000300001900000000030240190000018401100197000000000410004c000000000200a019000001840110009c00000000010300190000000001026019000000000110004c0000045a0000c13d00000001020003670000000401200370000000000101043b000001850310009c0000045a0000213d0000002402200370000000000302043b000001850230009c0000045a0000213d00000000001004350000000101000039000000200010043f0000004002000039000600000002001d0000000001000019000500000003001d0597045c0000040f00000005020000290000000000200435000000200010043f000000000100001900000006020000290597045c0000040f000000000101041a000000400200043d00000000001204350000016701000041000001670320009c0000000001024019000000400110021000000186011001c7000005980001042e0000000307000039000000000107041a000000010210019000000001011002700000007f0310018f000000000301c0190000001f0130008c00000000010000190000000101002039000000010110018f000000000112004b000000ee0000613d0000018b0100004100000000001004350000002201000039000000040010043f0000018c010000410000059900010430000001820210009c000001470000613d000001830110009c0000045a0000c13d0000000001000416000000000110004c0000045a0000c13d000000040100008a00000000011000310000018402000041000000400310008c000000000300001900000000030240190000018401100197000000000410004c000000000200a019000001840110009c00000000010300190000000001026019000000000110004c0000045a0000c13d00000001010003670000000402100370000000000202043b000001850320009c0000045a0000213d0000002401100370000000000301043b0000000001000411059705260000040f0000000101000039000000400200043d00000000001204350000016701000041000001670320009c0000000001024019000000400110021000000186011001c7000005980001042e000000200130008c000600000004001d000500000005001d000400000006001d000001160000413d000100000003001d000200000008001d000300000007001d000000000070043500000167010000410000000002000414000001670320009c0000000001024019000000c0011002100000016c011001c70000801002000039059705920000040f00000001022001900000045a0000613d00000002080000290000001f028000390000000502200270000000200380008c0000000002004019000000000301043b00000001010000290000001f01100039000000050110027000000000011300190000000002230019000000000312004b0000000604000029000000050500002900000004060000290000000307000029000001160000813d000000000002041b0000000102200039000000000312004b000001120000413d0000001f0180008c000002be0000a13d000200000008001d000300000007001d000000000070043500000167010000410000000002000414000001670320009c0000000001024019000000c0011002100000016c011001c70000801002000039059705920000040f00000001022001900000045a0000613d000000200200008a000000020800002900000000032801700000002002000039000000000101043b000001350000613d0000002002000039000000000400001900000080052000390000000005050433000000000051041b000000200220003900000001011000390000002004400039000000000534004b0000012d0000413d000000000383004b000000050500002900000004060000290000000307000029000001430000813d0000000303800210000000f80330018f000000010400008a000000000334022f000000000343013f00000080022000390000000002020433000000000232016f000000000021041b000000010100003900000001028002100000000604000029000002c80000013d0000000001000416000000000110004c0000045a0000c13d000000040100008a00000000011000310000018402000041000000000310004c000000000300001900000000030240190000018401100197000000000410004c000000000200a019000001840110009c00000000010300190000000001026019000000000110004c0000045a0000c13d0000000303000039000000000203041a000000010420019000000001012002700000007f0510018f000000000601001900000000060560190000001f0560008c00000000050000190000000105002039000000000552013f0000000105500190000000c10000c13d000000800060043f000000000440004c0000034f0000c13d000001000300008a000000000232016f000000a00020043f000000000160004c000000c001000039000000a0010060390000035e0000013d0000000001000416000000000110004c0000045a0000c13d000000040100008a00000000011000310000018402000041000000400310008c000000000300001900000000030240190000018401100197000000000410004c000000000200a019000001840110009c00000000010300190000000001026019000000000110004c0000045a0000c13d00000004010000390000000101100367000000000101043b000600000001001d000001850110009c0000045a0000213d0000000001000411000400000001001d00000000001004350000000101000039000500000001001d000000200010043f00000167010000410000000002000414000001670320009c0000000001024019000000c0011002100000016f011001c70000801002000039059705920000040f00000001022001900000045a0000613d000000000101043b00000006020000290000000000200435000000200010043f00000167010000410000000002000414000001670320009c0000000001024019000000c0011002100000016f011001c70000801002000039059705920000040f00000001022001900000045a0000613d000000000101043b000000000101041a00000024020000390000000102200367000000000202043b0000000003120019000000000123004b0000000001000019000000010100403900000001011001900000039c0000c13d00000004010000290000000602000029059705260000040f000000400100043d000000050200002900000000002104350000016702000041000001670310009c0000000001028019000000400110021000000186011001c7000005980001042e0000000001000416000000000110004c0000045a0000c13d000000040100008a00000000011000310000018402000041000000200310008c000000000300001900000000030240190000018401100197000000000410004c000000000200a019000001840110009c00000000010300190000000001026019000000000110004c0000045a0000c13d00000004010000390000000101100367000000000101043b000001850210009c0000045a0000213d0000000000100435000000200000043f000000400200003900000000010000190597045c0000040f000000000101041a000000400200043d00000000001204350000016701000041000001670320009c0000000001024019000000400110021000000186011001c7000005980001042e0000000001000416000000000110004c0000045a0000c13d000000040100008a00000000011000310000018402000041000000000310004c000000000300001900000000030240190000018401100197000000000410004c000000000200a019000001840110009c00000000010300190000000001026019000000000110004c0000045a0000c13d0000000201000039000000000101041a000000400200043d00000000001204350000016701000041000001670320009c0000000001024019000000400110021000000186011001c7000005980001042e0000000001000416000000000110004c0000045a0000c13d000000040100008a00000000011000310000018402000041000000600310008c000000000300001900000000030240190000018401100197000000000410004c000000000200a019000001840110009c00000000010300190000000001026019000000000110004c0000045a0000c13d00000001010003670000000402100370000000000402043b000001850240009c0000045a0000213d0000002402100370000000000202043b000600000002001d000001850220009c0000045a0000213d0000004401100370000000000101043b000400000001001d00000000004004350000000101000039000300000001001d000000200010043f00000167010000410000000002000414000001670320009c0000000001024019000000c0011002100000016f011001c70000801002000039000500000004001d059705920000040f00000001022001900000045a0000613d000000000101043b0000000002000411000200000002001d0000000000200435000000200010043f00000167010000410000000002000414000001670320009c0000000001024019000000c0011002100000016f011001c70000801002000039059705920000040f000000050300002900000001022001900000045a0000613d000000000101043b000000000201041a000000010100008a000000000112004b000003de0000c13d000000000103001900000006020000290000000403000029059704880000040f000000400100043d000000030200002900000000002104350000016702000041000001670310009c0000000001028019000000400110021000000186011001c7000005980001042e0000000001000416000000000110004c0000045a0000c13d000000040100008a00000000011000310000018402000041000000400310008c000000000300001900000000030240190000018401100197000000000410004c000000000200a019000001840110009c00000000010300190000000001026019000000000110004c0000045a0000c13d00000001010003670000000402100370000000000202043b000600000002001d000001850220009c0000045a0000213d0000002401100370000000000101043b000500000001001d0000000001000411000300000001001d00000000001004350000000101000039000400000001001d000000200010043f00000167010000410000000002000414000001670320009c0000000001024019000000c0011002100000016f011001c70000801002000039059705920000040f00000001022001900000045a0000613d000000000101043b00000006020000290000000000200435000000200010043f00000167010000410000000002000414000001670320009c0000000001024019000000c0011002100000016f011001c70000801002000039059705920000040f00000001022001900000045a0000613d000000000101043b000000000101041a0000000503000029000000000231004b000003d10000813d000000400100043d000000640210003900000187030000410000000000320435000000440210003900000188030000410000000000320435000000240210003900000025030000390000000000320435000001740200004100000000002104350000000402100039000000200300003900000000003204350000016702000041000001670310009c0000000001028019000000400110021000000189011001c700000599000104300000000001000416000000000110004c0000045a0000c13d000000040100008a00000000011000310000018402000041000000400310008c000000000300001900000000030240190000018401100197000000000410004c000000000200a019000001840110009c00000000010300190000000001026019000000000110004c0000045a0000c13d00000001010003670000000402100370000000000202043b000001850320009c0000045a0000213d0000002401100370000000000301043b0000000001000411059704880000040f0000000101000039000000400200043d00000000001204350000016701000041000001670320009c0000000001024019000000400110021000000186011001c7000005980001042e000000000180004c0000000001000019000002c20000613d000000a00100043d0000000302800210000000010300008a000000000223022f000000000232013f000000000221016f0000000101800210000000000112019f000000000017041b00000000080504330000016b0180009c000000560000213d0000000407000039000000000107041a000000010210019000000001021002700000007f0320018f000000000302c0190000001f0230008c00000000020000190000000102002039000000000121013f0000000101100190000000c10000c13d000000200130008c000002fe0000413d000100000003001d000200000008001d000300000007001d000000000070043500000167010000410000000002000414000001670320009c0000000001024019000000c0011002100000016c011001c70000801002000039059705920000040f00000001022001900000045a0000613d00000002080000290000001f028000390000000502200270000000200380008c0000000002004019000000000301043b00000001010000290000001f01100039000000050110027000000000011300190000000002230019000000000312004b0000000604000029000000050500002900000004060000290000000307000029000002fe0000813d000000000002041b0000000102200039000000000312004b000002fa0000413d0000001f0180008c0000032e0000a13d000200000008001d000300000007001d000000000070043500000167010000410000000002000414000001670320009c0000000001024019000000c0011002100000016c011001c70000801002000039059705920000040f00000001022001900000045a0000613d000000200200008a000000020800002900000000032801700000002002000039000000000101043b00000005060000290000031e0000613d0000002002000039000000000400001900000000056200190000000005050433000000000051041b000000200220003900000001011000390000002004400039000000000534004b000003160000413d000000000383004b00000003070000290000032a0000813d0000000303800210000000f80330018f000000010400008a000000000334022f000000000343013f00000000026200190000000002020433000000000232016f000000000021041b000000010100003900000001028002100000000604000029000003380000013d000000000180004c0000000001000019000003320000613d00000000010604330000000302800210000000010300008a000000000223022f000000000232013f000000000221016f0000000101800210000000000112019f000000000017041b0000000003000411000000000130004c000003990000c13d000000400100043d00000044021000390000017303000041000000000032043500000024021000390000001f030000390000000000320435000001740200004100000000002104350000000402100039000000200300003900000000003204350000016702000041000001670310009c0000000001028019000000400110021000000175011001c700000599000104300000000000300435000000a001000039000000000260004c000003640000613d000001930200004100000000040000190000000003040019000000000402041a000000a005300039000000000045043500000001022000390000002004300039000000000564004b000003550000413d000000c0013000390000001f01100039000000200200008a000000000121016f0000019402100041000001950220009c000000560000413d000600000001001d000000400010043f0000008002000039059704720000040f000000060400002900000000014100490000016702000041000001670310009c0000000001028019000001670340009c000000000204401900000040022002100000006001100210000000000121019f000005980001042e0000000000500435000000000410004c0000000004000019000003800000613d0000018a0500004100000000040000190000000006430019000000000705041a000000000076043500000001055000390000002004400039000000000614004b000003790000413d0000003f01400039000000200300008a000000000331016f0000000001230019000000000331004b000000000400001900000001040040390000016b0310009c000000560000213d0000000103400190000000560000c13d000000400010043f000600000001001d059704720000040f000000060400002900000000014100490000016702000041000001670310009c0000000001028019000001670340009c000000000204401900000040022002100000006001100210000000000121019f000005980001042e000000000104041a0000016d0210009c000003a20000413d0000018b0100004100000000001004350000001101000039000000040010043f0000018c0100004100000599000104300000016e01100041000000000014041b000600000003001d0000000000300435000000200000043f00000167010000410000000002000414000001670320009c0000000001024019000000c0011002100000016f011001c70000801002000039059705920000040f00000001022001900000045a0000613d000000000101043b000000000201041a000001700320009c00000006060000290000039c0000213d0000016e02200041000000000021041b0000016e01000041000000400200043d000000000012043500000167010000410000000003000414000001670430009c0000000003018019000001670420009c00000000010240190000004001100210000000c002300210000000000121019f0000016c011001c70000800d020000390000000303000039000001710400004100000000050000190597058d0000040f00000001012001900000045a0000613d0000002001000039000001000010044300000120000004430000017201000041000005980001042e000000000331004900000003010000290000000602000029059705260000040f000000400100043d000000040200002900000000002104350000016702000041000001670310009c0000000001028019000000400110021000000186011001c7000005980001042e0000000401000029000000000112004b000003f30000813d000000400100043d00000044021000390000019203000041000000000032043500000024021000390000001d030000390000000000320435000001740200004100000000002104350000000402100039000000200300003900000000003204350000016702000041000001670310009c0000000001028019000000400110021000000175011001c70000059900010430000100000002001d000000000130004c0000040b0000c13d000000400100043d000000640210003900000190030000410000000000320435000000440210003900000191030000410000000000320435000000240210003900000024030000390000000000320435000001740200004100000000002104350000000402100039000000200300003900000000003204350000016702000041000001670310009c0000000001028019000000400110021000000189011001c7000005990001043000000002010000290000018501100198000200000001001d000004240000c13d000000400100043d00000064021000390000018e03000041000000000032043500000044021000390000018f030000410000000000320435000000240210003900000022030000390000000000320435000001740200004100000000002104350000000402100039000000200300003900000000003204350000016702000041000001670310009c0000000001028019000000400110021000000189011001c70000059900010430000000050100002900000000001004350000000301000029000000200010043f00000167010000410000000002000414000001670320009c0000000001024019000000c0011002100000016f011001c70000801002000039059705920000040f00000001022001900000045a0000613d000000000101043b00000002020000290000000000200435000000200010043f00000167010000410000000002000414000001670320009c0000000001024019000000c0011002100000016f011001c70000801002000039059705920000040f000000010300002900000001022001900000045a0000613d00000004020000290000000002230049000000000101043b000000000021041b000000400100043d000000000021043500000167020000410000000003000414000001670430009c0000000003028019000001670410009c00000000010280190000004001100210000000c002300210000000000112019f0000016c011001c70000800d0200003900000003030000390000018d04000041000000050500002900000002060000290597058d0000040f000000050300002900000001012001900000023c0000c13d000000000100001900000599000104300000016703000041000001670410009c00000000010380190000004001100210000001670420009c00000000020380190000006002200210000000000112019f0000000002000414000001670420009c0000000002038019000000c002200210000000000112019f00000196011001c70000801002000039059705920000040f0000000102200190000004700000613d000000000101043b000000000001042d0000000001000019000005990001043000000020030000390000000004310436000000000302043300000000003404350000004001100039000000000430004c000004810000613d000000000400001900000000054100190000002004400039000000000624001900000000060604330000000000650435000000000534004b0000047a0000413d000000000231001900000000000204350000001f02300039000000200300008a000000000232016f0000000001210019000000000001042d00040000000000020000018501100198000004e10000613d000400000003001d0000018502200198000200000002001d000004f60000613d000300000001001d0000000000100435000000200000043f00000167010000410000000002000414000001670320009c0000000001024019000000c0011002100000016f011001c70000801002000039059705920000040f0000000102200190000004df0000613d000000000101043b000000000201041a0000000401000029000100000002001d000000000112004b0000050b0000413d00000003010000290000000000100435000000200000043f00000167010000410000000002000414000001670320009c0000000001024019000000c0011002100000016f011001c70000801002000039059705920000040f0000000102200190000004df0000613d000000040200002900000001030000290000000002230049000000000101043b000000000021041b0000000201000029000000000010043500000167010000410000000002000414000001670320009c0000000001024019000000c0011002100000016f011001c70000801002000039059705920000040f0000000102200190000004df0000613d000000000101043b000000000301041a00000004040000290000000002430019000000000332004b000000000300001900000001030040390000000103300190000005200000c13d000000000021041b000000400100043d000000000041043500000167020000410000000003000414000001670430009c0000000003028019000001670410009c00000000010280190000004001100210000000c002300210000000000112019f0000016c011001c70000800d0200003900000003030000390000017104000041000000030500002900000002060000290597058d0000040f0000000101200190000004df0000613d000000000001042d00000000010000190000059900010430000000400100043d00000064021000390000019b03000041000000000032043500000044021000390000019c030000410000000000320435000000240210003900000025030000390000000000320435000001740200004100000000002104350000000402100039000000200300003900000000003204350000016702000041000001670310009c0000000001028019000000400110021000000189011001c70000059900010430000000400100043d00000064021000390000019903000041000000000032043500000044021000390000019a030000410000000000320435000000240210003900000023030000390000000000320435000001740200004100000000002104350000000402100039000000200300003900000000003204350000016702000041000001670310009c0000000001028019000000400110021000000189011001c70000059900010430000000400100043d000000640210003900000197030000410000000000320435000000440210003900000198030000410000000000320435000000240210003900000026030000390000000000320435000001740200004100000000002104350000000402100039000000200300003900000000003204350000016702000041000001670310009c0000000001028019000000400110021000000189011001c700000599000104300000018b0100004100000000001004350000001101000039000000040010043f0000018c01000041000005990001043000030000000000020000018501100198000005630000613d000200000003001d0000018502200198000300000002001d000005780000613d000100000001001d00000000001004350000000101000039000000200010043f00000167010000410000000002000414000001670320009c0000000001024019000000c0011002100000016f011001c70000801002000039059705920000040f00000001022001900000000304000029000005610000613d000000000101043b0000000000400435000000200010043f00000167010000410000000002000414000001670320009c0000000001024019000000c0011002100000016f011001c70000801002000039059705920000040f00000003060000290000000102200190000005610000613d000000000101043b0000000202000029000000000021041b000000400100043d000000000021043500000167020000410000000003000414000001670430009c0000000003028019000001670410009c00000000010280190000004001100210000000c002300210000000000112019f0000016c011001c70000800d0200003900000003030000390000018d0400004100000001050000290597058d0000040f0000000101200190000005610000613d000000000001042d00000000010000190000059900010430000000400100043d000000640210003900000190030000410000000000320435000000440210003900000191030000410000000000320435000000240210003900000024030000390000000000320435000001740200004100000000002104350000000402100039000000200300003900000000003204350000016702000041000001670310009c0000000001028019000000400110021000000189011001c70000059900010430000000400100043d00000064021000390000018e03000041000000000032043500000044021000390000018f030000410000000000320435000000240210003900000022030000390000000000320435000001740200004100000000002104350000000402100039000000200300003900000000003204350000016702000041000001670310009c0000000001028019000000400110021000000189011001c7000005990001043000000590002104210000000102000039000000000001042d0000000002000019000000000001042d00000595002104230000000102000039000000000001042d0000000002000019000000000001042d0000059700000432000005980001042e00000599000104300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff4c3220455243323020746f6b656e000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffc04c32000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff0200000000000000000000000000000000000020000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffc9ca36523a2160000000000000000000000000000000000000000000000000003635c9adc5dea000000200000000000000000000000000000000000040000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffc9ca36523a215fffffddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef000000020000000000000000000000000000004000000100000000000000000045524332303a206d696e7420746f20746865207a65726f20616464726573730008c379a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064000000000000000000000000000000000000000000000000000000000000000000000000000000003950935000000000000000000000000000000000000000000000000000000000a457c2d600000000000000000000000000000000000000000000000000000000a457c2d700000000000000000000000000000000000000000000000000000000a9059cbb00000000000000000000000000000000000000000000000000000000dd62ed3e00000000000000000000000000000000000000000000000000000000395093510000000000000000000000000000000000000000000000000000000070a082310000000000000000000000000000000000000000000000000000000095d89b410000000000000000000000000000000000000000000000000000000018160ddc0000000000000000000000000000000000000000000000000000000018160ddd0000000000000000000000000000000000000000000000000000000023b872dd00000000000000000000000000000000000000000000000000000000313ce5670000000000000000000000000000000000000000000000000000000006fdde0300000000000000000000000000000000000000000000000000000000095ea7b38000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000020000000000000000000000000207a65726f00000000000000000000000000000000000000000000000000000045524332303a2064656372656173656420616c6c6f77616e63652062656c6f7700000000000000000000000000000000000000840000000000000000000000008a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b4e487b710000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000000000000000000000008c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925737300000000000000000000000000000000000000000000000000000000000045524332303a20617070726f766520746f20746865207a65726f206164647265726573730000000000000000000000000000000000000000000000000000000045524332303a20617070726f76652066726f6d20746865207a65726f2061646445524332303a20696e73756666696369656e7420616c6c6f77616e6365000000c2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85bffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff00000000000000800200000000000000000000000000000000000000000000000000000000000000616c616e6365000000000000000000000000000000000000000000000000000045524332303a207472616e7366657220616d6f756e7420657863656564732062657373000000000000000000000000000000000000000000000000000000000045524332303a207472616e7366657220746f20746865207a65726f2061646472647265737300000000000000000000000000000000000000000000000000000045524332303a207472616e736665722066726f6d20746865207a65726f206164000000000000000000000000000000000000000000000000000000000000000050f3f40105524292a21c67a9252a8c9dcd15d3dc829973e79c992d321fcafb2f", - "deployedBytecode": "0x0002000000000002000600000000000200010000000103550000006001100270000001670010019d0000000101200190000000410000c13d0000008001000039000000400010043f0000000001000031000000040110008c0000045a0000413d0000000101000367000000000101043b000000e001100270000001760210009c0000005c0000a13d000001770210009c0000007e0000213d0000017b0210009c0000016f0000613d0000017c0210009c000001bb0000613d0000017d0110009c0000045a0000c13d0000000001000416000000000110004c0000045a0000c13d000000040100008a00000000011000310000018402000041000000000310004c000000000300001900000000030240190000018401100197000000000410004c000000000200a019000001840110009c00000000010300190000000001026019000000000110004c0000045a0000c13d0000000405000039000000000405041a000000010640019000000001014002700000007f0210018f00000000010260190000001f0210008c00000000020000190000000102002039000000000224013f0000000102200190000000c10000c13d000000400200043d0000000003120436000000000660004c000003730000c13d000001000500008a000000000454016f0000000000430435000000000110004c00000020040000390000000004006019000003800000013d0000000001000416000000000110004c0000045a0000c13d000000c001000039000000400010043f0000000e01000039000000800010043f0000016801000041000000a00010043f000000400500043d000001690150009c000000560000813d0000004001500039000000400010043f000000020400003900000000064504360000016a010000410000000000160435000000800800043d0000016b0180009c000000b50000a13d0000018b0100004100000000001004350000004101000039000000040010043f0000018c0100004100000599000104300000017e0210009c000000c70000a13d0000017f0210009c000001df0000613d000001800210009c000001fa0000613d000001810110009c0000045a0000c13d0000000001000416000000000110004c0000045a0000c13d000000040100008a00000000011000310000018402000041000000000310004c000000000300001900000000030240190000018401100197000000000410004c000000000200a019000001840110009c00000000010300190000000001026019000000000110004c0000045a0000c13d000000400100043d000000120200003900000000002104350000016702000041000001670310009c0000000001028019000000400110021000000186011001c7000005980001042e000001780210009c000002490000613d000001790210009c0000029b0000613d0000017a0110009c0000045a0000c13d0000000001000416000000000110004c0000045a0000c13d000000040100008a00000000011000310000018402000041000000400310008c000000000300001900000000030240190000018401100197000000000410004c000000000200a019000001840110009c00000000010300190000000001026019000000000110004c0000045a0000c13d00000001020003670000000401200370000000000101043b000001850310009c0000045a0000213d0000002402200370000000000302043b000001850230009c0000045a0000213d00000000001004350000000101000039000000200010043f0000004002000039000600000002001d0000000001000019000500000003001d0597045c0000040f00000005020000290000000000200435000000200010043f000000000100001900000006020000290597045c0000040f000000000101041a000000400200043d00000000001204350000016701000041000001670320009c0000000001024019000000400110021000000186011001c7000005980001042e0000000307000039000000000107041a000000010210019000000001011002700000007f0310018f000000000301c0190000001f0130008c00000000010000190000000101002039000000010110018f000000000112004b000000ee0000613d0000018b0100004100000000001004350000002201000039000000040010043f0000018c010000410000059900010430000001820210009c000001470000613d000001830110009c0000045a0000c13d0000000001000416000000000110004c0000045a0000c13d000000040100008a00000000011000310000018402000041000000400310008c000000000300001900000000030240190000018401100197000000000410004c000000000200a019000001840110009c00000000010300190000000001026019000000000110004c0000045a0000c13d00000001010003670000000402100370000000000202043b000001850320009c0000045a0000213d0000002401100370000000000301043b0000000001000411059705260000040f0000000101000039000000400200043d00000000001204350000016701000041000001670320009c0000000001024019000000400110021000000186011001c7000005980001042e000000200130008c000600000004001d000500000005001d000400000006001d000001160000413d000100000003001d000200000008001d000300000007001d000000000070043500000167010000410000000002000414000001670320009c0000000001024019000000c0011002100000016c011001c70000801002000039059705920000040f00000001022001900000045a0000613d00000002080000290000001f028000390000000502200270000000200380008c0000000002004019000000000301043b00000001010000290000001f01100039000000050110027000000000011300190000000002230019000000000312004b0000000604000029000000050500002900000004060000290000000307000029000001160000813d000000000002041b0000000102200039000000000312004b000001120000413d0000001f0180008c000002be0000a13d000200000008001d000300000007001d000000000070043500000167010000410000000002000414000001670320009c0000000001024019000000c0011002100000016c011001c70000801002000039059705920000040f00000001022001900000045a0000613d000000200200008a000000020800002900000000032801700000002002000039000000000101043b000001350000613d0000002002000039000000000400001900000080052000390000000005050433000000000051041b000000200220003900000001011000390000002004400039000000000534004b0000012d0000413d000000000383004b000000050500002900000004060000290000000307000029000001430000813d0000000303800210000000f80330018f000000010400008a000000000334022f000000000343013f00000080022000390000000002020433000000000232016f000000000021041b000000010100003900000001028002100000000604000029000002c80000013d0000000001000416000000000110004c0000045a0000c13d000000040100008a00000000011000310000018402000041000000000310004c000000000300001900000000030240190000018401100197000000000410004c000000000200a019000001840110009c00000000010300190000000001026019000000000110004c0000045a0000c13d0000000303000039000000000203041a000000010420019000000001012002700000007f0510018f000000000601001900000000060560190000001f0560008c00000000050000190000000105002039000000000552013f0000000105500190000000c10000c13d000000800060043f000000000440004c0000034f0000c13d000001000300008a000000000232016f000000a00020043f000000000160004c000000c001000039000000a0010060390000035e0000013d0000000001000416000000000110004c0000045a0000c13d000000040100008a00000000011000310000018402000041000000400310008c000000000300001900000000030240190000018401100197000000000410004c000000000200a019000001840110009c00000000010300190000000001026019000000000110004c0000045a0000c13d00000004010000390000000101100367000000000101043b000600000001001d000001850110009c0000045a0000213d0000000001000411000400000001001d00000000001004350000000101000039000500000001001d000000200010043f00000167010000410000000002000414000001670320009c0000000001024019000000c0011002100000016f011001c70000801002000039059705920000040f00000001022001900000045a0000613d000000000101043b00000006020000290000000000200435000000200010043f00000167010000410000000002000414000001670320009c0000000001024019000000c0011002100000016f011001c70000801002000039059705920000040f00000001022001900000045a0000613d000000000101043b000000000101041a00000024020000390000000102200367000000000202043b0000000003120019000000000123004b0000000001000019000000010100403900000001011001900000039c0000c13d00000004010000290000000602000029059705260000040f000000400100043d000000050200002900000000002104350000016702000041000001670310009c0000000001028019000000400110021000000186011001c7000005980001042e0000000001000416000000000110004c0000045a0000c13d000000040100008a00000000011000310000018402000041000000200310008c000000000300001900000000030240190000018401100197000000000410004c000000000200a019000001840110009c00000000010300190000000001026019000000000110004c0000045a0000c13d00000004010000390000000101100367000000000101043b000001850210009c0000045a0000213d0000000000100435000000200000043f000000400200003900000000010000190597045c0000040f000000000101041a000000400200043d00000000001204350000016701000041000001670320009c0000000001024019000000400110021000000186011001c7000005980001042e0000000001000416000000000110004c0000045a0000c13d000000040100008a00000000011000310000018402000041000000000310004c000000000300001900000000030240190000018401100197000000000410004c000000000200a019000001840110009c00000000010300190000000001026019000000000110004c0000045a0000c13d0000000201000039000000000101041a000000400200043d00000000001204350000016701000041000001670320009c0000000001024019000000400110021000000186011001c7000005980001042e0000000001000416000000000110004c0000045a0000c13d000000040100008a00000000011000310000018402000041000000600310008c000000000300001900000000030240190000018401100197000000000410004c000000000200a019000001840110009c00000000010300190000000001026019000000000110004c0000045a0000c13d00000001010003670000000402100370000000000402043b000001850240009c0000045a0000213d0000002402100370000000000202043b000600000002001d000001850220009c0000045a0000213d0000004401100370000000000101043b000400000001001d00000000004004350000000101000039000300000001001d000000200010043f00000167010000410000000002000414000001670320009c0000000001024019000000c0011002100000016f011001c70000801002000039000500000004001d059705920000040f00000001022001900000045a0000613d000000000101043b0000000002000411000200000002001d0000000000200435000000200010043f00000167010000410000000002000414000001670320009c0000000001024019000000c0011002100000016f011001c70000801002000039059705920000040f000000050300002900000001022001900000045a0000613d000000000101043b000000000201041a000000010100008a000000000112004b000003de0000c13d000000000103001900000006020000290000000403000029059704880000040f000000400100043d000000030200002900000000002104350000016702000041000001670310009c0000000001028019000000400110021000000186011001c7000005980001042e0000000001000416000000000110004c0000045a0000c13d000000040100008a00000000011000310000018402000041000000400310008c000000000300001900000000030240190000018401100197000000000410004c000000000200a019000001840110009c00000000010300190000000001026019000000000110004c0000045a0000c13d00000001010003670000000402100370000000000202043b000600000002001d000001850220009c0000045a0000213d0000002401100370000000000101043b000500000001001d0000000001000411000300000001001d00000000001004350000000101000039000400000001001d000000200010043f00000167010000410000000002000414000001670320009c0000000001024019000000c0011002100000016f011001c70000801002000039059705920000040f00000001022001900000045a0000613d000000000101043b00000006020000290000000000200435000000200010043f00000167010000410000000002000414000001670320009c0000000001024019000000c0011002100000016f011001c70000801002000039059705920000040f00000001022001900000045a0000613d000000000101043b000000000101041a0000000503000029000000000231004b000003d10000813d000000400100043d000000640210003900000187030000410000000000320435000000440210003900000188030000410000000000320435000000240210003900000025030000390000000000320435000001740200004100000000002104350000000402100039000000200300003900000000003204350000016702000041000001670310009c0000000001028019000000400110021000000189011001c700000599000104300000000001000416000000000110004c0000045a0000c13d000000040100008a00000000011000310000018402000041000000400310008c000000000300001900000000030240190000018401100197000000000410004c000000000200a019000001840110009c00000000010300190000000001026019000000000110004c0000045a0000c13d00000001010003670000000402100370000000000202043b000001850320009c0000045a0000213d0000002401100370000000000301043b0000000001000411059704880000040f0000000101000039000000400200043d00000000001204350000016701000041000001670320009c0000000001024019000000400110021000000186011001c7000005980001042e000000000180004c0000000001000019000002c20000613d000000a00100043d0000000302800210000000010300008a000000000223022f000000000232013f000000000221016f0000000101800210000000000112019f000000000017041b00000000080504330000016b0180009c000000560000213d0000000407000039000000000107041a000000010210019000000001021002700000007f0320018f000000000302c0190000001f0230008c00000000020000190000000102002039000000000121013f0000000101100190000000c10000c13d000000200130008c000002fe0000413d000100000003001d000200000008001d000300000007001d000000000070043500000167010000410000000002000414000001670320009c0000000001024019000000c0011002100000016c011001c70000801002000039059705920000040f00000001022001900000045a0000613d00000002080000290000001f028000390000000502200270000000200380008c0000000002004019000000000301043b00000001010000290000001f01100039000000050110027000000000011300190000000002230019000000000312004b0000000604000029000000050500002900000004060000290000000307000029000002fe0000813d000000000002041b0000000102200039000000000312004b000002fa0000413d0000001f0180008c0000032e0000a13d000200000008001d000300000007001d000000000070043500000167010000410000000002000414000001670320009c0000000001024019000000c0011002100000016c011001c70000801002000039059705920000040f00000001022001900000045a0000613d000000200200008a000000020800002900000000032801700000002002000039000000000101043b00000005060000290000031e0000613d0000002002000039000000000400001900000000056200190000000005050433000000000051041b000000200220003900000001011000390000002004400039000000000534004b000003160000413d000000000383004b00000003070000290000032a0000813d0000000303800210000000f80330018f000000010400008a000000000334022f000000000343013f00000000026200190000000002020433000000000232016f000000000021041b000000010100003900000001028002100000000604000029000003380000013d000000000180004c0000000001000019000003320000613d00000000010604330000000302800210000000010300008a000000000223022f000000000232013f000000000221016f0000000101800210000000000112019f000000000017041b0000000003000411000000000130004c000003990000c13d000000400100043d00000044021000390000017303000041000000000032043500000024021000390000001f030000390000000000320435000001740200004100000000002104350000000402100039000000200300003900000000003204350000016702000041000001670310009c0000000001028019000000400110021000000175011001c700000599000104300000000000300435000000a001000039000000000260004c000003640000613d000001930200004100000000040000190000000003040019000000000402041a000000a005300039000000000045043500000001022000390000002004300039000000000564004b000003550000413d000000c0013000390000001f01100039000000200200008a000000000121016f0000019402100041000001950220009c000000560000413d000600000001001d000000400010043f0000008002000039059704720000040f000000060400002900000000014100490000016702000041000001670310009c0000000001028019000001670340009c000000000204401900000040022002100000006001100210000000000121019f000005980001042e0000000000500435000000000410004c0000000004000019000003800000613d0000018a0500004100000000040000190000000006430019000000000705041a000000000076043500000001055000390000002004400039000000000614004b000003790000413d0000003f01400039000000200300008a000000000331016f0000000001230019000000000331004b000000000400001900000001040040390000016b0310009c000000560000213d0000000103400190000000560000c13d000000400010043f000600000001001d059704720000040f000000060400002900000000014100490000016702000041000001670310009c0000000001028019000001670340009c000000000204401900000040022002100000006001100210000000000121019f000005980001042e000000000104041a0000016d0210009c000003a20000413d0000018b0100004100000000001004350000001101000039000000040010043f0000018c0100004100000599000104300000016e01100041000000000014041b000600000003001d0000000000300435000000200000043f00000167010000410000000002000414000001670320009c0000000001024019000000c0011002100000016f011001c70000801002000039059705920000040f00000001022001900000045a0000613d000000000101043b000000000201041a000001700320009c00000006060000290000039c0000213d0000016e02200041000000000021041b0000016e01000041000000400200043d000000000012043500000167010000410000000003000414000001670430009c0000000003018019000001670420009c00000000010240190000004001100210000000c002300210000000000121019f0000016c011001c70000800d020000390000000303000039000001710400004100000000050000190597058d0000040f00000001012001900000045a0000613d0000002001000039000001000010044300000120000004430000017201000041000005980001042e000000000331004900000003010000290000000602000029059705260000040f000000400100043d000000040200002900000000002104350000016702000041000001670310009c0000000001028019000000400110021000000186011001c7000005980001042e0000000401000029000000000112004b000003f30000813d000000400100043d00000044021000390000019203000041000000000032043500000024021000390000001d030000390000000000320435000001740200004100000000002104350000000402100039000000200300003900000000003204350000016702000041000001670310009c0000000001028019000000400110021000000175011001c70000059900010430000100000002001d000000000130004c0000040b0000c13d000000400100043d000000640210003900000190030000410000000000320435000000440210003900000191030000410000000000320435000000240210003900000024030000390000000000320435000001740200004100000000002104350000000402100039000000200300003900000000003204350000016702000041000001670310009c0000000001028019000000400110021000000189011001c7000005990001043000000002010000290000018501100198000200000001001d000004240000c13d000000400100043d00000064021000390000018e03000041000000000032043500000044021000390000018f030000410000000000320435000000240210003900000022030000390000000000320435000001740200004100000000002104350000000402100039000000200300003900000000003204350000016702000041000001670310009c0000000001028019000000400110021000000189011001c70000059900010430000000050100002900000000001004350000000301000029000000200010043f00000167010000410000000002000414000001670320009c0000000001024019000000c0011002100000016f011001c70000801002000039059705920000040f00000001022001900000045a0000613d000000000101043b00000002020000290000000000200435000000200010043f00000167010000410000000002000414000001670320009c0000000001024019000000c0011002100000016f011001c70000801002000039059705920000040f000000010300002900000001022001900000045a0000613d00000004020000290000000002230049000000000101043b000000000021041b000000400100043d000000000021043500000167020000410000000003000414000001670430009c0000000003028019000001670410009c00000000010280190000004001100210000000c002300210000000000112019f0000016c011001c70000800d0200003900000003030000390000018d04000041000000050500002900000002060000290597058d0000040f000000050300002900000001012001900000023c0000c13d000000000100001900000599000104300000016703000041000001670410009c00000000010380190000004001100210000001670420009c00000000020380190000006002200210000000000112019f0000000002000414000001670420009c0000000002038019000000c002200210000000000112019f00000196011001c70000801002000039059705920000040f0000000102200190000004700000613d000000000101043b000000000001042d0000000001000019000005990001043000000020030000390000000004310436000000000302043300000000003404350000004001100039000000000430004c000004810000613d000000000400001900000000054100190000002004400039000000000624001900000000060604330000000000650435000000000534004b0000047a0000413d000000000231001900000000000204350000001f02300039000000200300008a000000000232016f0000000001210019000000000001042d00040000000000020000018501100198000004e10000613d000400000003001d0000018502200198000200000002001d000004f60000613d000300000001001d0000000000100435000000200000043f00000167010000410000000002000414000001670320009c0000000001024019000000c0011002100000016f011001c70000801002000039059705920000040f0000000102200190000004df0000613d000000000101043b000000000201041a0000000401000029000100000002001d000000000112004b0000050b0000413d00000003010000290000000000100435000000200000043f00000167010000410000000002000414000001670320009c0000000001024019000000c0011002100000016f011001c70000801002000039059705920000040f0000000102200190000004df0000613d000000040200002900000001030000290000000002230049000000000101043b000000000021041b0000000201000029000000000010043500000167010000410000000002000414000001670320009c0000000001024019000000c0011002100000016f011001c70000801002000039059705920000040f0000000102200190000004df0000613d000000000101043b000000000301041a00000004040000290000000002430019000000000332004b000000000300001900000001030040390000000103300190000005200000c13d000000000021041b000000400100043d000000000041043500000167020000410000000003000414000001670430009c0000000003028019000001670410009c00000000010280190000004001100210000000c002300210000000000112019f0000016c011001c70000800d0200003900000003030000390000017104000041000000030500002900000002060000290597058d0000040f0000000101200190000004df0000613d000000000001042d00000000010000190000059900010430000000400100043d00000064021000390000019b03000041000000000032043500000044021000390000019c030000410000000000320435000000240210003900000025030000390000000000320435000001740200004100000000002104350000000402100039000000200300003900000000003204350000016702000041000001670310009c0000000001028019000000400110021000000189011001c70000059900010430000000400100043d00000064021000390000019903000041000000000032043500000044021000390000019a030000410000000000320435000000240210003900000023030000390000000000320435000001740200004100000000002104350000000402100039000000200300003900000000003204350000016702000041000001670310009c0000000001028019000000400110021000000189011001c70000059900010430000000400100043d000000640210003900000197030000410000000000320435000000440210003900000198030000410000000000320435000000240210003900000026030000390000000000320435000001740200004100000000002104350000000402100039000000200300003900000000003204350000016702000041000001670310009c0000000001028019000000400110021000000189011001c700000599000104300000018b0100004100000000001004350000001101000039000000040010043f0000018c01000041000005990001043000030000000000020000018501100198000005630000613d000200000003001d0000018502200198000300000002001d000005780000613d000100000001001d00000000001004350000000101000039000000200010043f00000167010000410000000002000414000001670320009c0000000001024019000000c0011002100000016f011001c70000801002000039059705920000040f00000001022001900000000304000029000005610000613d000000000101043b0000000000400435000000200010043f00000167010000410000000002000414000001670320009c0000000001024019000000c0011002100000016f011001c70000801002000039059705920000040f00000003060000290000000102200190000005610000613d000000000101043b0000000202000029000000000021041b000000400100043d000000000021043500000167020000410000000003000414000001670430009c0000000003028019000001670410009c00000000010280190000004001100210000000c002300210000000000112019f0000016c011001c70000800d0200003900000003030000390000018d0400004100000001050000290597058d0000040f0000000101200190000005610000613d000000000001042d00000000010000190000059900010430000000400100043d000000640210003900000190030000410000000000320435000000440210003900000191030000410000000000320435000000240210003900000024030000390000000000320435000001740200004100000000002104350000000402100039000000200300003900000000003204350000016702000041000001670310009c0000000001028019000000400110021000000189011001c70000059900010430000000400100043d00000064021000390000018e03000041000000000032043500000044021000390000018f030000410000000000320435000000240210003900000022030000390000000000320435000001740200004100000000002104350000000402100039000000200300003900000000003204350000016702000041000001670310009c0000000001028019000000400110021000000189011001c7000005990001043000000590002104210000000102000039000000000001042d0000000002000019000000000001042d00000595002104230000000102000039000000000001042d0000000002000019000000000001042d0000059700000432000005980001042e00000599000104300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff4c3220455243323020746f6b656e000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffc04c32000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff0200000000000000000000000000000000000020000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffc9ca36523a2160000000000000000000000000000000000000000000000000003635c9adc5dea000000200000000000000000000000000000000000040000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffc9ca36523a215fffffddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef000000020000000000000000000000000000004000000100000000000000000045524332303a206d696e7420746f20746865207a65726f20616464726573730008c379a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064000000000000000000000000000000000000000000000000000000000000000000000000000000003950935000000000000000000000000000000000000000000000000000000000a457c2d600000000000000000000000000000000000000000000000000000000a457c2d700000000000000000000000000000000000000000000000000000000a9059cbb00000000000000000000000000000000000000000000000000000000dd62ed3e00000000000000000000000000000000000000000000000000000000395093510000000000000000000000000000000000000000000000000000000070a082310000000000000000000000000000000000000000000000000000000095d89b410000000000000000000000000000000000000000000000000000000018160ddc0000000000000000000000000000000000000000000000000000000018160ddd0000000000000000000000000000000000000000000000000000000023b872dd00000000000000000000000000000000000000000000000000000000313ce5670000000000000000000000000000000000000000000000000000000006fdde0300000000000000000000000000000000000000000000000000000000095ea7b38000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000020000000000000000000000000207a65726f00000000000000000000000000000000000000000000000000000045524332303a2064656372656173656420616c6c6f77616e63652062656c6f7700000000000000000000000000000000000000840000000000000000000000008a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b4e487b710000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000000000000000000000008c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925737300000000000000000000000000000000000000000000000000000000000045524332303a20617070726f766520746f20746865207a65726f206164647265726573730000000000000000000000000000000000000000000000000000000045524332303a20617070726f76652066726f6d20746865207a65726f2061646445524332303a20696e73756666696369656e7420616c6c6f77616e6365000000c2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85bffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff00000000000000800200000000000000000000000000000000000000000000000000000000000000616c616e6365000000000000000000000000000000000000000000000000000045524332303a207472616e7366657220616d6f756e7420657863656564732062657373000000000000000000000000000000000000000000000000000000000045524332303a207472616e7366657220746f20746865207a65726f2061646472647265737300000000000000000000000000000000000000000000000000000045524332303a207472616e736665722066726f6d20746865207a65726f206164000000000000000000000000000000000000000000000000000000000000000050f3f40105524292a21c67a9252a8c9dcd15d3dc829973e79c992d321fcafb2f", - "linkReferences": {}, - "deployedLinkReferences": {}, - "factoryDeps": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/contracts/Middle.sol/IGreeter.dbg.json b/packages/integration-tests/src/playbook/artifacts-zk/contracts/Middle.sol/IGreeter.dbg.json deleted file mode 100644 index 973a2e83f9..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/contracts/Middle.sol/IGreeter.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../build-info/92cb10df65f6d26368974b9012699389.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/contracts/Middle.sol/IGreeter.json b/packages/integration-tests/src/playbook/artifacts-zk/contracts/Middle.sol/IGreeter.json deleted file mode 100644 index 36c953eed4..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/contracts/Middle.sol/IGreeter.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "_format": "hh-zksolc-artifact-1", - "contractName": "IGreeter", - "sourceName": "contracts/Middle.sol", - "abi": [ - { - "inputs": [], - "name": "greet", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "name": "setGreeting", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {}, - "factoryDeps": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/contracts/Middle.sol/Middle.dbg.json b/packages/integration-tests/src/playbook/artifacts-zk/contracts/Middle.sol/Middle.dbg.json deleted file mode 100644 index 973a2e83f9..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/contracts/Middle.sol/Middle.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../build-info/92cb10df65f6d26368974b9012699389.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/contracts/Middle.sol/Middle.json b/packages/integration-tests/src/playbook/artifacts-zk/contracts/Middle.sol/Middle.json deleted file mode 100644 index b1ca3463d9..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/contracts/Middle.sol/Middle.json +++ /dev/null @@ -1,62 +0,0 @@ -{ - "_format": "hh-zksolc-artifact-1", - "contractName": "Middle", - "sourceName": "contracts/Middle.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "_myAddress", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [], - "name": "callGreeter", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "myAddress", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "string", - "name": "newGreeting", - "type": "string" - } - ], - "name": "setGreet", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x00040000000000020003000000000002000000000301001900000060033002700000008c04300197000300000041035500020000000103550000008c0030019d000100000000001f00000001012001900000002f0000c13d0000008001000039000000400010043f0000000001000031000000040110008c000001a10000413d0000000201000367000000000101043b000000e001100270000000910210009c000000730000613d000000920210009c0000008f0000613d000000930110009c000001a10000c13d0000000001000416000000000110004c000001a10000c13d000000040100008a00000000011000310000008d02000041000000000310004c000000000300001900000000030240190000008d01100197000000000410004c000000000200a0190000008d0110009c00000000010300190000000001026019000000000110004c000001a10000c13d000000000100041a0000008e01100197000000800010043f0000009c010000410000022a0001042e0000000001000416000000000110004c000001a10000c13d00000000010000310000009f02100039000000200300008a000000000232016f0000007f0320008c0000003e0000213d0000009a0100004100000000001004350000004101000039000000040010043f0000009b010000410000022b00010430000000400020043f0000001f0210018f000000020300036700000005041002720000004c0000613d00000000050000190000000506500210000000000763034f000000000707043b000000800660003900000000007604350000000105500039000000000645004b000000440000413d000000000520004c0000005b0000613d0000000504400210000000000343034f00000003022002100000008004400039000000000504043300000000052501cf000000000525022f000000000303043b0000010002200089000000000323022f00000000022301cf000000000252019f00000000002404350000008d02000041000000200310008c000000000300001900000000030240190000008d01100197000000000410004c000000000200a0190000008d0110009c00000000010300190000000001026019000000000110004c000001a10000c13d000000800100043d0000008e0210009c000001a10000213d000000000200041a0000008f02200197000000000112019f000000000010041b00000020010000390000010000100443000001200000044300000090010000410000022a0001042e0000000001000416000000000110004c000001a10000c13d000000040100008a00000000011000310000008d02000041000000000310004c000000000300001900000000030240190000008d01100197000000000410004c000000000200a0190000008d0110009c00000000010300190000000001026019000000000110004c000001a10000c13d000000000200041a000000400800043d0000009401000041000000000018043500000000010004140000008e02200197000000040320008c0000013b0000c13d000000030100036700000001030000310000014e0000013d0000000001000416000000000110004c000001a10000c13d0000000001000031000000040210008a0000008d03000041000000200420008c000000000400001900000000040340190000008d02200197000000000520004c000000000300a0190000008d0220009c00000000020400190000000002036019000000000220004c000001a10000c13d00000002020003670000000403200370000000000303043b000000960430009c000001a10000213d00000023043000390000008d05000041000000000614004b000000000600001900000000060580190000008d011001970000008d04400197000000000714004b0000000005008019000000000114013f0000008d0110009c00000000010600190000000001056019000000000110004c000001a10000c13d0000000401300039000000000112034f000000000101043b000000960210009c000000380000213d0000003f02100039000000200600008a000000000262016f000000400700043d0000000002270019000000000472004b00000000040000190000000104004039000000960520009c000000380000213d0000000104400190000000380000c13d000000400020043f0000000002170436000000240430003900000000034100190000000005000031000000000353004b000001a10000213d000200000007001d000300000006001d0000001f0310018f00000002044003670000000505100272000000db0000613d000000000600001900000005076002100000000008720019000000000774034f000000000707043b00000000007804350000000106600039000000000756004b000000d30000413d000000000630004c000000ea0000613d0000000505500210000000000454034f00000000055200190000000303300210000000000605043300000000063601cf000000000636022f000000000404043b0000010003300089000000000434022f00000000033401cf000000000363019f000000000035043500000000011200190000000000010435000000000100041a000000970200004100000000002004390000008e01100197000100000001001d00000004001004430000008c0100004100000000020004140000008c0320009c0000000001024019000000c00110021000000098011001c70000800202000039022902240000040f000000010220019000000003070000290000000208000029000001a10000613d000000000101043b000000000110004c000001a10000613d000000400a00043d000000990100004100000000001a04350000000402a0003900000000010004140000002003000039000000000032043500000000090804330000002403a0003900000000009304350000004403a00039000000000490004c000001160000613d000000000400001900000000053400190000002004400039000000000684001900000000060604330000000000650435000000000594004b0000010f0000413d000000000339001900000000000304350000000102000029000000040320008c000001360000613d0000001f03900039000000000573016f0000008c030000410000008c04a0009c000000000403001900000000040a4019000000400440021000000044065000390000008c0560009c000000000503001900000000050640190000006005500210000000000545019f0000008c0410009c0000000001038019000000c001100210000000000115019f00030000000a001d0229021f0000040f000000030a000029000000000301001900000060033002700001008c0030019d0000008c0430019700030000000103550000000102200190000001e30000613d0000009601a0009c000000380000213d0000004000a0043f00000000010000190000022a0001042e0000008c030000410000008c0410009c00000000010380190000008c0480009c00000000030840190000004003300210000000c001100210000000000131019f00000095011001c7000300000008001d022902240000040f0000000308000029000000000301001900000060033002700001008c0030019d0000008c0330019700030000000103550000000102200190000001a30000613d0000001f0230018f00000005043002720000015a0000613d000000000500001900000005065002100000000007680019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b000001520000413d000000000520004c000001690000613d0000000504400210000000000141034f00000000044800190000000302200210000000000504043300000000052501cf000000000525022f000000000101043b0000010002200089000000000121022f00000000012101cf000000000151019f00000000001404350000001f02300039000000200100008a000000000412016f0000000002840019000000000442004b00000000040000190000000104004039000000960520009c000000380000213d0000000104400190000000380000c13d0000008d04000041000000200530008c000000000500001900000000050440190000008d06300197000000000760004c000000000400a0190000008d0660009c000000000405c019000000400020043f000000000440004c000001a10000c13d0000000004080433000000960540009c000001a10000213d000000000583001900000000038400190000001f043000390000008d06000041000000000754004b000000000700001900000000070680190000008d044001970000008d08500197000000000984004b0000000006008019000000000484013f0000008d0440009c00000000040700190000000004066019000000000440004c000001a10000c13d0000000043030434000000960630009c000000380000213d0000003f06300039000000000116016f0000000001210019000000960610009c000000380000213d000000400010043f00000000013204360000000006430019000000000556004b000001c90000a13d00000000010000190000022b00010430000000400200043d0000001f0430018f0000000503300272000001b00000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b000001a80000413d000000000540004c000001bf0000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001304350000008c0100004100000001030000310000008c0430009c00000000030180190000008c0420009c000000000102401900000040011002100000006002300210000000000112019f0000022b00010430000000000530004c000001d30000613d000000000500001900000000061500190000000007450019000000000707043300000000007604350000002005500039000000000635004b000001cc0000413d00000000011300190000000000010435000000400100043d000300000001001d022902090000040f000000030400002900000000014100490000008c020000410000008c0310009c00000000010280190000008c0340009c000000000204401900000040022002100000006001100210000000000121019f0000022a0001042e000000400200043d0000001f0340018f0000000504400272000001f00000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b000001e80000413d000000000530004c000001ff0000613d0000000504400210000000000141034f00000000044200190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f00000000001404350000008c0100004100000001030000310000008c0430009c00000000030180190000008c0420009c000000000102401900000040011002100000006002300210000000000112019f0000022b0001043000000020030000390000000004310436000000000302043300000000003404350000004001100039000000000430004c000002180000613d000000000400001900000000051400190000002004400039000000000624001900000000060604330000000000650435000000000534004b000002110000413d000000000213001900000000000204350000001f02300039000000200300008a000000000232016f0000000001210019000000000001042d00000222002104210000000102000039000000000001042d0000000002000019000000000001042d00000227002104230000000102000039000000000001042d0000000002000019000000000001042d00000229000004320000022a0001042e0000022b00010430000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000020000000000000000000000000000004000000100000000000000000000000000000000000000000000000000000000000000000000000000d7b4291c000000000000000000000000000000000000000000000000000000009698086b0000000000000000000000000000000000000000000000000000000026b85ee1cfae3217000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff1806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b830200000200000000000000000000000000000024000000000000000000000000a4136862000000000000000000000000000000000000000000000000000000004e487b71000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000000000000000000000000000000000000000002000000080000000000000000000000000000000000000000000000000000000000000000000000000000000008ad0c80787522d86161b20b75bf9336bac306035f207b217f324b5607d27492a", - "deployedBytecode": "0x00040000000000020003000000000002000000000301001900000060033002700000008c04300197000300000041035500020000000103550000008c0030019d000100000000001f00000001012001900000002f0000c13d0000008001000039000000400010043f0000000001000031000000040110008c000001a10000413d0000000201000367000000000101043b000000e001100270000000910210009c000000730000613d000000920210009c0000008f0000613d000000930110009c000001a10000c13d0000000001000416000000000110004c000001a10000c13d000000040100008a00000000011000310000008d02000041000000000310004c000000000300001900000000030240190000008d01100197000000000410004c000000000200a0190000008d0110009c00000000010300190000000001026019000000000110004c000001a10000c13d000000000100041a0000008e01100197000000800010043f0000009c010000410000022a0001042e0000000001000416000000000110004c000001a10000c13d00000000010000310000009f02100039000000200300008a000000000232016f0000007f0320008c0000003e0000213d0000009a0100004100000000001004350000004101000039000000040010043f0000009b010000410000022b00010430000000400020043f0000001f0210018f000000020300036700000005041002720000004c0000613d00000000050000190000000506500210000000000763034f000000000707043b000000800660003900000000007604350000000105500039000000000645004b000000440000413d000000000520004c0000005b0000613d0000000504400210000000000343034f00000003022002100000008004400039000000000504043300000000052501cf000000000525022f000000000303043b0000010002200089000000000323022f00000000022301cf000000000252019f00000000002404350000008d02000041000000200310008c000000000300001900000000030240190000008d01100197000000000410004c000000000200a0190000008d0110009c00000000010300190000000001026019000000000110004c000001a10000c13d000000800100043d0000008e0210009c000001a10000213d000000000200041a0000008f02200197000000000112019f000000000010041b00000020010000390000010000100443000001200000044300000090010000410000022a0001042e0000000001000416000000000110004c000001a10000c13d000000040100008a00000000011000310000008d02000041000000000310004c000000000300001900000000030240190000008d01100197000000000410004c000000000200a0190000008d0110009c00000000010300190000000001026019000000000110004c000001a10000c13d000000000200041a000000400800043d0000009401000041000000000018043500000000010004140000008e02200197000000040320008c0000013b0000c13d000000030100036700000001030000310000014e0000013d0000000001000416000000000110004c000001a10000c13d0000000001000031000000040210008a0000008d03000041000000200420008c000000000400001900000000040340190000008d02200197000000000520004c000000000300a0190000008d0220009c00000000020400190000000002036019000000000220004c000001a10000c13d00000002020003670000000403200370000000000303043b000000960430009c000001a10000213d00000023043000390000008d05000041000000000614004b000000000600001900000000060580190000008d011001970000008d04400197000000000714004b0000000005008019000000000114013f0000008d0110009c00000000010600190000000001056019000000000110004c000001a10000c13d0000000401300039000000000112034f000000000101043b000000960210009c000000380000213d0000003f02100039000000200600008a000000000262016f000000400700043d0000000002270019000000000472004b00000000040000190000000104004039000000960520009c000000380000213d0000000104400190000000380000c13d000000400020043f0000000002170436000000240430003900000000034100190000000005000031000000000353004b000001a10000213d000200000007001d000300000006001d0000001f0310018f00000002044003670000000505100272000000db0000613d000000000600001900000005076002100000000008720019000000000774034f000000000707043b00000000007804350000000106600039000000000756004b000000d30000413d000000000630004c000000ea0000613d0000000505500210000000000454034f00000000055200190000000303300210000000000605043300000000063601cf000000000636022f000000000404043b0000010003300089000000000434022f00000000033401cf000000000363019f000000000035043500000000011200190000000000010435000000000100041a000000970200004100000000002004390000008e01100197000100000001001d00000004001004430000008c0100004100000000020004140000008c0320009c0000000001024019000000c00110021000000098011001c70000800202000039022902240000040f000000010220019000000003070000290000000208000029000001a10000613d000000000101043b000000000110004c000001a10000613d000000400a00043d000000990100004100000000001a04350000000402a0003900000000010004140000002003000039000000000032043500000000090804330000002403a0003900000000009304350000004403a00039000000000490004c000001160000613d000000000400001900000000053400190000002004400039000000000684001900000000060604330000000000650435000000000594004b0000010f0000413d000000000339001900000000000304350000000102000029000000040320008c000001360000613d0000001f03900039000000000573016f0000008c030000410000008c04a0009c000000000403001900000000040a4019000000400440021000000044065000390000008c0560009c000000000503001900000000050640190000006005500210000000000545019f0000008c0410009c0000000001038019000000c001100210000000000115019f00030000000a001d0229021f0000040f000000030a000029000000000301001900000060033002700001008c0030019d0000008c0430019700030000000103550000000102200190000001e30000613d0000009601a0009c000000380000213d0000004000a0043f00000000010000190000022a0001042e0000008c030000410000008c0410009c00000000010380190000008c0480009c00000000030840190000004003300210000000c001100210000000000131019f00000095011001c7000300000008001d022902240000040f0000000308000029000000000301001900000060033002700001008c0030019d0000008c0330019700030000000103550000000102200190000001a30000613d0000001f0230018f00000005043002720000015a0000613d000000000500001900000005065002100000000007680019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b000001520000413d000000000520004c000001690000613d0000000504400210000000000141034f00000000044800190000000302200210000000000504043300000000052501cf000000000525022f000000000101043b0000010002200089000000000121022f00000000012101cf000000000151019f00000000001404350000001f02300039000000200100008a000000000412016f0000000002840019000000000442004b00000000040000190000000104004039000000960520009c000000380000213d0000000104400190000000380000c13d0000008d04000041000000200530008c000000000500001900000000050440190000008d06300197000000000760004c000000000400a0190000008d0660009c000000000405c019000000400020043f000000000440004c000001a10000c13d0000000004080433000000960540009c000001a10000213d000000000583001900000000038400190000001f043000390000008d06000041000000000754004b000000000700001900000000070680190000008d044001970000008d08500197000000000984004b0000000006008019000000000484013f0000008d0440009c00000000040700190000000004066019000000000440004c000001a10000c13d0000000043030434000000960630009c000000380000213d0000003f06300039000000000116016f0000000001210019000000960610009c000000380000213d000000400010043f00000000013204360000000006430019000000000556004b000001c90000a13d00000000010000190000022b00010430000000400200043d0000001f0430018f0000000503300272000001b00000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b000001a80000413d000000000540004c000001bf0000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001304350000008c0100004100000001030000310000008c0430009c00000000030180190000008c0420009c000000000102401900000040011002100000006002300210000000000112019f0000022b00010430000000000530004c000001d30000613d000000000500001900000000061500190000000007450019000000000707043300000000007604350000002005500039000000000635004b000001cc0000413d00000000011300190000000000010435000000400100043d000300000001001d022902090000040f000000030400002900000000014100490000008c020000410000008c0310009c00000000010280190000008c0340009c000000000204401900000040022002100000006001100210000000000121019f0000022a0001042e000000400200043d0000001f0340018f0000000504400272000001f00000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b000001e80000413d000000000530004c000001ff0000613d0000000504400210000000000141034f00000000044200190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f00000000001404350000008c0100004100000001030000310000008c0430009c00000000030180190000008c0420009c000000000102401900000040011002100000006002300210000000000112019f0000022b0001043000000020030000390000000004310436000000000302043300000000003404350000004001100039000000000430004c000002180000613d000000000400001900000000051400190000002004400039000000000624001900000000060604330000000000650435000000000534004b000002110000413d000000000213001900000000000204350000001f02300039000000200300008a000000000232016f0000000001210019000000000001042d00000222002104210000000102000039000000000001042d0000000002000019000000000001042d00000227002104230000000102000039000000000001042d0000000002000019000000000001042d00000229000004320000022a0001042e0000022b00010430000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000020000000000000000000000000000004000000100000000000000000000000000000000000000000000000000000000000000000000000000d7b4291c000000000000000000000000000000000000000000000000000000009698086b0000000000000000000000000000000000000000000000000000000026b85ee1cfae3217000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff1806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b830200000200000000000000000000000000000024000000000000000000000000a4136862000000000000000000000000000000000000000000000000000000004e487b71000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000000000000000000000000000000000000000002000000080000000000000000000000000000000000000000000000000000000000000000000000000000000008ad0c80787522d86161b20b75bf9336bac306035f207b217f324b5607d27492a", - "linkReferences": {}, - "deployedLinkReferences": {}, - "factoryDeps": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/contracts/MultiTransfer.sol/TokenF2L2.dbg.json b/packages/integration-tests/src/playbook/artifacts-zk/contracts/MultiTransfer.sol/TokenF2L2.dbg.json deleted file mode 100644 index 973a2e83f9..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/contracts/MultiTransfer.sol/TokenF2L2.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../build-info/92cb10df65f6d26368974b9012699389.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/contracts/MultiTransfer.sol/TokenF2L2.json b/packages/integration-tests/src/playbook/artifacts-zk/contracts/MultiTransfer.sol/TokenF2L2.json deleted file mode 100644 index 024c12eccb..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/contracts/MultiTransfer.sol/TokenF2L2.json +++ /dev/null @@ -1,108 +0,0 @@ -{ - "_format": "hh-zksolc-artifact-1", - "contractName": "TokenF2L2", - "sourceName": "contracts/MultiTransfer.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "_owner", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_from", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_timestamp", - "type": "uint256" - } - ], - "name": "Paid", - "type": "event" - }, - { - "inputs": [], - "name": "getBalance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address[]", - "name": "_recivers", - "type": "address[]" - }, - { - "internalType": "address[]", - "name": "_tokenAddresses", - "type": "address[]" - }, - { - "internalType": "uint256[]", - "name": "_tokenAmounts", - "type": "uint256[]" - } - ], - "name": "multiTransfer", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "pay", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "stateMutability": "payable", - "type": "receive" - } - ], - "bytecode": "0x000400000000000200000000030100190000006003300270000000e00430019700030000004103550002000000010355000000e00030019d000100000000001f0000000101200190000000260000c13d0000008002000039000000400020043f0000000003000031000000040130008c000000350000413d0000000201000367000000000401043b000000e004400270000000e50540009c0000003a0000213d000000e80140009c000001220000613d000000e90140009c0000014e0000c13d000000040130008a000000e102000041000000000310004c00000000030000190000000003024019000000e101100197000000000410004c000000000200a019000000e10110009c00000000010300190000000001026019000000000110004c0000014e0000c13d000000370000013d0000000001000416000000000110004c0000014e0000c13d00000000010000310000009f02100039000000200300008a000000000232016f0000007f0320008c000000ed0000213d000000eb0100004100000000001004350000004101000039000000040010043f000000ec010000410000037e00010430000000000130004c0000014e0000c13d037c016b0000040f00000000010000190000037d0001042e000000e60540009c0000013d0000613d000000e70440009c0000014e0000c13d000000040430008a000000e105000041000000600640008c00000000060000190000000006054019000000e104400197000000000740004c000000000500a019000000e10440009c00000000040600190000000004056019000000000440004c0000014e0000c13d0000000404100370000000000404043b000000ea0540009c0000014e0000213d0000002305400039000000e106000041000000000735004b00000000070000190000000007068019000000e108300197000000e105500197000000000985004b0000000006008019000000000585013f000000e10550009c00000000050700190000000005066019000000000550004c0000014e0000c13d0000000405400039000000000151034f000000000601043b000000ea0160009c0000002f0000213d0000000505600210000000bf07500039000000200100008a000000000717016f000000ea0870009c0000002f0000213d000000400070043f000000800060043f00000024044000390000000005450019000000000335004b0000014e0000213d000000000360004c0000007a0000613d0000000203400367000000000303043b000000e20630009c0000014e0000213d000000200220003900000000003204350000002004400039000000000354004b000000710000413d00000002020003670000002403200370000000000303043b000000ea0430009c0000014e0000213d00000023053000390000000004000031000000e106000041000000000745004b00000000070000190000000007068019000000e105500197000000e108400197000000000985004b0000000006008019000000000585013f000000e10550009c00000000050700190000000005066019000000000550004c0000014e0000c13d0000000405300039000000000252034f000000000502043b000000ea0250009c0000002f0000213d00000005065002100000003f02600039000000000712016f000000400200043d0000000007720019000000000827004b00000000080000190000000108004039000000ea0970009c0000002f0000213d00000001088001900000002f0000c13d000000400070043f000000000052043500000024033000390000000006360019000000000446004b0000014e0000213d000000000450004c000000b20000613d00000000040200190000000205300367000000000505043b000000e20750009c0000014e0000213d000000200440003900000000005404350000002003300039000000000563004b000000a90000413d00000002030003670000004404300370000000000404043b000000ea0540009c0000014e0000213d00000023054000390000000006000031000000e107000041000000000865004b00000000080000190000000008078019000000e106600197000000e105500197000000000965004b0000000007008019000000000565013f000000e10550009c00000000050800190000000005076019000000000550004c0000014e0000c13d0000000405400039000000000353034f000000000503043b000000ea0350009c0000002f0000213d00000005065002100000003f03600039000000000113016f000000400300043d0000000001130019000000000731004b00000000070000190000000107004039000000ea0810009c0000002f0000213d00000001077001900000002f0000c13d000000400010043f0000000000530435000000240140003900000000041600190000000006000031000000000664004b0000014e0000213d000000000550004c000000e90000613d00000000050300190000000206100367000000000606043b000000200550003900000000006504350000002001100039000000000641004b000000e20000413d0000008001000039037c01950000040f00000000010000190000037d0001042e000000400020043f0000001f0210018f00000002030003670000000504100272000000fb0000613d00000000050000190000000506500210000000000763034f000000000707043b000000800660003900000000007604350000000105500039000000000645004b000000f30000413d000000000520004c0000010a0000613d0000000504400210000000000343034f00000003022002100000008004400039000000000504043300000000052501cf000000000525022f000000000303043b0000010002200089000000000323022f00000000022301cf000000000252019f0000000000240435000000e102000041000000200310008c00000000030000190000000003024019000000e101100197000000000410004c000000000200a019000000e10110009c00000000010300190000000001026019000000000110004c0000014e0000c13d000000800100043d000000e20210009c0000014e0000213d000000000200041a000000e302200197000000000112019f000000000010041b000000200100003900000100001004430000012000000443000000e4010000410000037d0001042e0000000001000416000000000110004c0000014e0000c13d000000040100008a0000000001100031000000e102000041000000000310004c00000000030000190000000003024019000000e101100197000000000410004c000000000200a019000000e10110009c00000000010300190000000001026019000000000110004c0000014e0000c13d000000ee010000410000000000100439000000000100041000000004001004430000800a010000390000002402000039037c015a0000040f000000800010043f000000ef010000410000037d0001042e0000000001000416000000000110004c0000014e0000c13d000000040100008a0000000001100031000000e102000041000000000310004c00000000030000190000000003024019000000e101100197000000000410004c000000000200a019000000e10110009c00000000010300190000000001026019000000000110004c000001500000613d00000000010000190000037e00010430000000000100041a000000e201100197000000400200043d0000000000120435000000e001000041000000e00320009c00000000010240190000004001100210000000ed011001c70000037d0001042e0000000003010019000000e0010000410000000004000414000000e00540009c0000000001044019000000c00110021000000060022002100000000001120019000000f0011000410000000002030019037c03770000040f0000000102200190000001690000613d000000000101043b000000000001042d00000000010000190000037e000104300002000000000002000000400200043d0000000001000416000200000002001d0000000001120436000100000001001d000000f1010000410000000000100439000000e0010000410000000002000414000000e00320009c0000000001024019000000c001100210000000f2011001c70000800b02000039037c03770000040f0000000102200190000001930000613d000000000101043b00000001020000290000000000120435000000e0010000410000000002000414000000e00320009c00000000020180190000000204000029000000e00340009c00000000010440190000004001100210000000c002200210000000000112019f000000f3011001c70000800d020000390000000203000039000000f4040000410000000005000411037c03720000040f0000000101200190000001930000613d000000000001042d00000000010000190000037e00010430000b000000000002000000000400041a000000e2054001970000000004000411000000000445004b000003600000c13d00000000050204330000000004030433000000000445004b0000034f0000c13d0000000004010433000000000445004b0000034f0000c13d000000000450004c000002c30000613d0000000004000410000200000004001d0000800a04000039000100000004001d000000000a000019000900000003001d000800000002001d000700000001001d000001b60000013d00000001012001900000031f0000613d000000010aa000390000000802000029000000000102043300000000011a004b00000009030000290000000701000029000002c30000813d00000000050104330000000504a00210000000200640003900000000042600190000000004040433000000e204400198000b0000000a001d000001fc0000613d0000000002a5004b000002c40000a13d00000000020304330000000002a2004b000002c40000a13d0000000002360019000000000116001900000000010104330000000002020433000000400500043d000000440350003900000000002304350000002003500039000000f902000041000600000003001d0000000000230435000000e2011001970000002402500039000000000012043500000044010000390000000000150435000000fa0150009c000002ca0000813d0000008002500039000000400020043f000000fb0150009c000002ca0000213d000000c001500039000000400010043f0000002001000039000400000001001d000300000002001d0000000000120435000500000005001d000000a001500039000000fc020000410000000000210435000000fd010000410000000000100439000a00000004001d0000000400400443000000e0010000410000000002000414000000e00320009c0000000001024019000000c001100210000000fe011001c70000800202000039037c03770000040f0000000b0a0000290000000102200190000002d00000613d000000000101043b000000000110004c000002d20000613d00000000010004140000000a02000029000000040320008c000002220000c13d00000001020000390000000103000031000002390000013d0000000002a5004b000002c40000a13d00000000021600190000000002020433000000e201200197000a00000001001d00000000020304330000000002a2004b000002c40000a13d00000000013600190000000001010433000600000001001d000000ee01000041000000000010043900000002010000290000000400100443000000e0010000410000000002000414000000e00320009c0000000001024019000000c001100210000000fe011001c70000000102000029037c03770000040f0000000b0a0000290000000102200190000002d00000613d000000000101043b0000000603000029000000000131004b0000000a04000029000003340000413d0000000001000414000000040240008c0000027f0000c13d00000001020000390000000101000031000002960000013d000000e0060000410000000604000029000000e00340009c00000000030600190000000003044019000000400330021000000005040000290000000004040433000000e00540009c00000000040680190000006004400210000000000334019f000000e00410009c0000000001068019000000c001100210000000000113019f037c03720000040f0000000b0a000029000000010220018f00030000000103550000006001100270000100e00010019d000000e0031001970000006001000039000000000430004c000002660000613d0000003f01300039000000200400008a000000000441016f000000400100043d0000000004410019000000000514004b00000000050000190000000105004039000000ea0640009c000002ca0000213d0000000105500190000002ca0000c13d000000400040043f0000000003310436000000030400036700000001060000310000000505600272000002570000613d000000000700001900000005087002100000000009830019000000000884034f000000000808043b00000000008904350000000107700039000000000857004b0000024f0000413d0000001f06600190000002660000613d0000000505500210000000000454034f00000000035300190000000305600210000000000603043300000000065601cf000000000656022f000000000404043b0000010005500089000000000454022f00000000045401cf000000000464019f00000000004304350000000013010434000000000220004c000002e40000613d000000000230004c000001af0000613d000000e102000041000000200430008c00000000040000190000000004024019000000e103300197000000000530004c000000000200a019000000e10330009c000000000204c019000000000220004c000002d00000c13d0000000001010433000000000210004c0000000002000019000000010200c039000000000221004b000002d00000c13d000000000110004c000001af0000c13d0000030a0000013d000000e002000041000000e00510009c0000000001028019000000c001100210000000000230004c0000028f0000613d00000103011001c700008009020000390000000005000019037c03720000040f00030000000103550000006001100270000100e00010019d000000e0011001970000000b0a000029000002960000013d0000000002040019037c03720000040f00030000000103550000006001100270000100e00010019d000000e0011001970000000b0a000029000000000310004c000001ad0000613d0000003f03100039000000200400008a000000000443016f000000400300043d0000000004430019000000000534004b00000000050000190000000105004039000000ea0640009c000002ca0000213d0000000105500190000002ca0000c13d000000400040043f0000000001130436000000030300036700000001050000310000000504500272000002b30000613d000000000600001900000005076002100000000008710019000000000773034f000000000707043b00000000007804350000000106600039000000000746004b000002ab0000413d0000001f05500190000001ad0000613d0000000504400210000000000343034f00000000014100190000000304500210000000000501043300000000054501cf000000000545022f000000000303043b0000010004400089000000000343022f00000000034301cf000000000353019f0000000000310435000001ad0000013d000000000001042d000000eb0100004100000000001004350000003201000039000000040010043f000000ec010000410000037e00010430000000eb0100004100000000001004350000004101000039000000040010043f000000ec010000410000037e0001043000000000010000190000037e00010430000000400100043d00000044021000390000010203000041000000000032043500000024021000390000001d030000390000000000320435000000f6020000410000000000210435000000040210003900000004030000290000000000320435000000e002000041000000e00310009c00000000010280190000004001100210000000f7011001c70000037e00010430000000000230004c000003460000c13d000000400100043d000000f602000041000000000021043500000004021000390000000403000029000000000032043500000003070000290000000002070433000000240310003900000000002304350000004403100039000000000420004c000002fb0000613d000000000400001900000000053400190000002004400039000000000674001900000000060604330000000000650435000000000524004b000002f40000413d0000001f04200039000000200500008a000000000454016f000000000232001900000000000204350000004402400039000000e003000041000000e00420009c0000000002038019000000e00410009c000000000103801900000040011002100000006002200210000000000112019f0000037e00010430000000400100043d0000006402100039000000ff03000041000000000032043500000044021000390000010003000041000000000032043500000024021000390000002a030000390000000000320435000000f6020000410000000000210435000000040210003900000004030000290000000000320435000000e002000041000000e00310009c0000000001028019000000400110021000000101011001c70000037e00010430000000400100043d00000064021000390000010403000041000000000032043500000044021000390000010503000041000000000032043500000024021000390000003a030000390000000000320435000000f6020000410000000000210435000000040210003900000020030000390000000000320435000000e002000041000000e00310009c0000000001028019000000400110021000000101011001c70000037e00010430000000400100043d00000044021000390000010603000041000000000032043500000024021000390000001d030000390000000000320435000000f6020000410000000000210435000000040210003900000020030000390000000000320435000000e002000041000000e00310009c00000000010280190000004001100210000000f7011001c70000037e00010430000000e002000041000000e00410009c0000000001028019000000e00430009c000000000203401900000060022002100000004001100210000000000112019f0000037e00010430000000400100043d0000004402100039000000f8030000410000000000320435000000f602000041000000000021043500000024021000390000002003000039000000000032043500000004021000390000000000320435000000e002000041000000e00310009c00000000010280190000004001100210000000f7011001c70000037e00010430000000400100043d0000004402100039000000f5030000410000000000320435000000240210003900000015030000390000000000320435000000f6020000410000000000210435000000040210003900000020030000390000000000320435000000e002000041000000e00310009c00000000010280190000004001100210000000f7011001c70000037e0001043000000375002104210000000102000039000000000001042d0000000002000019000000000001042d0000037a002104230000000102000039000000000001042d0000000002000019000000000001042d0000037c000004320000037d0001042e0000037e00010430000000000000000000000000000000000000000000000000000000000000000000000000ffffffff8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000200000000000000000000000000000040000001000000000000000000000000000000000000000000000000000000000000000000000000008da5cb5a000000000000000000000000000000000000000000000000000000008da5cb5b00000000000000000000000000000000000000000000000000000000cd72250d0000000000000000000000000000000000000000000000000000000012065fe0000000000000000000000000000000000000000000000000000000001b9265b8000000000000000000000000000000000000000000000000ffffffffffffffff4e487b7100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002400000000000000000000000000000000000000000000000000000000000000200000000000000000000000009cc7f708afc65944829bd487b90b72536b1951864fbfc14e125fc972a6507f3900000000000000000000000000000000000000200000008000000000000000000200000200000000000000000000000000000000000000000000000000000000796b89b91644bc98cd93958e4c9038275d622183e25ac5af08cc6b5d9553913202000002000000000000000000000000000000040000000000000000000000000200000000000000000000000000000000000040000000000000000000000000df9a51129930649214df58f542322c245372c6f2fa6fc3c9b40d927c597cd230596f7520617265206e6f7420746865206f776e6572000000000000000000000008c379a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064000000000000000000000000417272617973206d7573742068617665207468652073616d65206c656e677468a9059cbb00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff80000000000000000000000000000000000000000000000000ffffffffffffff3f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65641806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b8302000002000000000000000000000000000000240000000000000000000000006f742073756363656564000000000000000000000000000000000000000000005361666545524332303a204552433230206f7065726174696f6e20646964206e0000000000000000000000000000000000000084000000000000000000000000416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000002000000000000000000000000000000000000000000000000000000000000006563697069656e74206d61792068617665207265766572746564000000000000416464726573733a20756e61626c6520746f2073656e642076616c75652c2072416464726573733a20696e73756666696369656e742062616c616e63650000000000000000000000000000000000000000000000000000000000000000000000b0f2987959443a75f5e5f63c7ad86855957a7f17ddec4aa651bf7b7707c372a9", - "deployedBytecode": "0x000400000000000200000000030100190000006003300270000000e00430019700030000004103550002000000010355000000e00030019d000100000000001f0000000101200190000000260000c13d0000008002000039000000400020043f0000000003000031000000040130008c000000350000413d0000000201000367000000000401043b000000e004400270000000e50540009c0000003a0000213d000000e80140009c000001220000613d000000e90140009c0000014e0000c13d000000040130008a000000e102000041000000000310004c00000000030000190000000003024019000000e101100197000000000410004c000000000200a019000000e10110009c00000000010300190000000001026019000000000110004c0000014e0000c13d000000370000013d0000000001000416000000000110004c0000014e0000c13d00000000010000310000009f02100039000000200300008a000000000232016f0000007f0320008c000000ed0000213d000000eb0100004100000000001004350000004101000039000000040010043f000000ec010000410000037e00010430000000000130004c0000014e0000c13d037c016b0000040f00000000010000190000037d0001042e000000e60540009c0000013d0000613d000000e70440009c0000014e0000c13d000000040430008a000000e105000041000000600640008c00000000060000190000000006054019000000e104400197000000000740004c000000000500a019000000e10440009c00000000040600190000000004056019000000000440004c0000014e0000c13d0000000404100370000000000404043b000000ea0540009c0000014e0000213d0000002305400039000000e106000041000000000735004b00000000070000190000000007068019000000e108300197000000e105500197000000000985004b0000000006008019000000000585013f000000e10550009c00000000050700190000000005066019000000000550004c0000014e0000c13d0000000405400039000000000151034f000000000601043b000000ea0160009c0000002f0000213d0000000505600210000000bf07500039000000200100008a000000000717016f000000ea0870009c0000002f0000213d000000400070043f000000800060043f00000024044000390000000005450019000000000335004b0000014e0000213d000000000360004c0000007a0000613d0000000203400367000000000303043b000000e20630009c0000014e0000213d000000200220003900000000003204350000002004400039000000000354004b000000710000413d00000002020003670000002403200370000000000303043b000000ea0430009c0000014e0000213d00000023053000390000000004000031000000e106000041000000000745004b00000000070000190000000007068019000000e105500197000000e108400197000000000985004b0000000006008019000000000585013f000000e10550009c00000000050700190000000005066019000000000550004c0000014e0000c13d0000000405300039000000000252034f000000000502043b000000ea0250009c0000002f0000213d00000005065002100000003f02600039000000000712016f000000400200043d0000000007720019000000000827004b00000000080000190000000108004039000000ea0970009c0000002f0000213d00000001088001900000002f0000c13d000000400070043f000000000052043500000024033000390000000006360019000000000446004b0000014e0000213d000000000450004c000000b20000613d00000000040200190000000205300367000000000505043b000000e20750009c0000014e0000213d000000200440003900000000005404350000002003300039000000000563004b000000a90000413d00000002030003670000004404300370000000000404043b000000ea0540009c0000014e0000213d00000023054000390000000006000031000000e107000041000000000865004b00000000080000190000000008078019000000e106600197000000e105500197000000000965004b0000000007008019000000000565013f000000e10550009c00000000050800190000000005076019000000000550004c0000014e0000c13d0000000405400039000000000353034f000000000503043b000000ea0350009c0000002f0000213d00000005065002100000003f03600039000000000113016f000000400300043d0000000001130019000000000731004b00000000070000190000000107004039000000ea0810009c0000002f0000213d00000001077001900000002f0000c13d000000400010043f0000000000530435000000240140003900000000041600190000000006000031000000000664004b0000014e0000213d000000000550004c000000e90000613d00000000050300190000000206100367000000000606043b000000200550003900000000006504350000002001100039000000000641004b000000e20000413d0000008001000039037c01950000040f00000000010000190000037d0001042e000000400020043f0000001f0210018f00000002030003670000000504100272000000fb0000613d00000000050000190000000506500210000000000763034f000000000707043b000000800660003900000000007604350000000105500039000000000645004b000000f30000413d000000000520004c0000010a0000613d0000000504400210000000000343034f00000003022002100000008004400039000000000504043300000000052501cf000000000525022f000000000303043b0000010002200089000000000323022f00000000022301cf000000000252019f0000000000240435000000e102000041000000200310008c00000000030000190000000003024019000000e101100197000000000410004c000000000200a019000000e10110009c00000000010300190000000001026019000000000110004c0000014e0000c13d000000800100043d000000e20210009c0000014e0000213d000000000200041a000000e302200197000000000112019f000000000010041b000000200100003900000100001004430000012000000443000000e4010000410000037d0001042e0000000001000416000000000110004c0000014e0000c13d000000040100008a0000000001100031000000e102000041000000000310004c00000000030000190000000003024019000000e101100197000000000410004c000000000200a019000000e10110009c00000000010300190000000001026019000000000110004c0000014e0000c13d000000ee010000410000000000100439000000000100041000000004001004430000800a010000390000002402000039037c015a0000040f000000800010043f000000ef010000410000037d0001042e0000000001000416000000000110004c0000014e0000c13d000000040100008a0000000001100031000000e102000041000000000310004c00000000030000190000000003024019000000e101100197000000000410004c000000000200a019000000e10110009c00000000010300190000000001026019000000000110004c000001500000613d00000000010000190000037e00010430000000000100041a000000e201100197000000400200043d0000000000120435000000e001000041000000e00320009c00000000010240190000004001100210000000ed011001c70000037d0001042e0000000003010019000000e0010000410000000004000414000000e00540009c0000000001044019000000c00110021000000060022002100000000001120019000000f0011000410000000002030019037c03770000040f0000000102200190000001690000613d000000000101043b000000000001042d00000000010000190000037e000104300002000000000002000000400200043d0000000001000416000200000002001d0000000001120436000100000001001d000000f1010000410000000000100439000000e0010000410000000002000414000000e00320009c0000000001024019000000c001100210000000f2011001c70000800b02000039037c03770000040f0000000102200190000001930000613d000000000101043b00000001020000290000000000120435000000e0010000410000000002000414000000e00320009c00000000020180190000000204000029000000e00340009c00000000010440190000004001100210000000c002200210000000000112019f000000f3011001c70000800d020000390000000203000039000000f4040000410000000005000411037c03720000040f0000000101200190000001930000613d000000000001042d00000000010000190000037e00010430000b000000000002000000000400041a000000e2054001970000000004000411000000000445004b000003600000c13d00000000050204330000000004030433000000000445004b0000034f0000c13d0000000004010433000000000445004b0000034f0000c13d000000000450004c000002c30000613d0000000004000410000200000004001d0000800a04000039000100000004001d000000000a000019000900000003001d000800000002001d000700000001001d000001b60000013d00000001012001900000031f0000613d000000010aa000390000000802000029000000000102043300000000011a004b00000009030000290000000701000029000002c30000813d00000000050104330000000504a00210000000200640003900000000042600190000000004040433000000e204400198000b0000000a001d000001fc0000613d0000000002a5004b000002c40000a13d00000000020304330000000002a2004b000002c40000a13d0000000002360019000000000116001900000000010104330000000002020433000000400500043d000000440350003900000000002304350000002003500039000000f902000041000600000003001d0000000000230435000000e2011001970000002402500039000000000012043500000044010000390000000000150435000000fa0150009c000002ca0000813d0000008002500039000000400020043f000000fb0150009c000002ca0000213d000000c001500039000000400010043f0000002001000039000400000001001d000300000002001d0000000000120435000500000005001d000000a001500039000000fc020000410000000000210435000000fd010000410000000000100439000a00000004001d0000000400400443000000e0010000410000000002000414000000e00320009c0000000001024019000000c001100210000000fe011001c70000800202000039037c03770000040f0000000b0a0000290000000102200190000002d00000613d000000000101043b000000000110004c000002d20000613d00000000010004140000000a02000029000000040320008c000002220000c13d00000001020000390000000103000031000002390000013d0000000002a5004b000002c40000a13d00000000021600190000000002020433000000e201200197000a00000001001d00000000020304330000000002a2004b000002c40000a13d00000000013600190000000001010433000600000001001d000000ee01000041000000000010043900000002010000290000000400100443000000e0010000410000000002000414000000e00320009c0000000001024019000000c001100210000000fe011001c70000000102000029037c03770000040f0000000b0a0000290000000102200190000002d00000613d000000000101043b0000000603000029000000000131004b0000000a04000029000003340000413d0000000001000414000000040240008c0000027f0000c13d00000001020000390000000101000031000002960000013d000000e0060000410000000604000029000000e00340009c00000000030600190000000003044019000000400330021000000005040000290000000004040433000000e00540009c00000000040680190000006004400210000000000334019f000000e00410009c0000000001068019000000c001100210000000000113019f037c03720000040f0000000b0a000029000000010220018f00030000000103550000006001100270000100e00010019d000000e0031001970000006001000039000000000430004c000002660000613d0000003f01300039000000200400008a000000000441016f000000400100043d0000000004410019000000000514004b00000000050000190000000105004039000000ea0640009c000002ca0000213d0000000105500190000002ca0000c13d000000400040043f0000000003310436000000030400036700000001060000310000000505600272000002570000613d000000000700001900000005087002100000000009830019000000000884034f000000000808043b00000000008904350000000107700039000000000857004b0000024f0000413d0000001f06600190000002660000613d0000000505500210000000000454034f00000000035300190000000305600210000000000603043300000000065601cf000000000656022f000000000404043b0000010005500089000000000454022f00000000045401cf000000000464019f00000000004304350000000013010434000000000220004c000002e40000613d000000000230004c000001af0000613d000000e102000041000000200430008c00000000040000190000000004024019000000e103300197000000000530004c000000000200a019000000e10330009c000000000204c019000000000220004c000002d00000c13d0000000001010433000000000210004c0000000002000019000000010200c039000000000221004b000002d00000c13d000000000110004c000001af0000c13d0000030a0000013d000000e002000041000000e00510009c0000000001028019000000c001100210000000000230004c0000028f0000613d00000103011001c700008009020000390000000005000019037c03720000040f00030000000103550000006001100270000100e00010019d000000e0011001970000000b0a000029000002960000013d0000000002040019037c03720000040f00030000000103550000006001100270000100e00010019d000000e0011001970000000b0a000029000000000310004c000001ad0000613d0000003f03100039000000200400008a000000000443016f000000400300043d0000000004430019000000000534004b00000000050000190000000105004039000000ea0640009c000002ca0000213d0000000105500190000002ca0000c13d000000400040043f0000000001130436000000030300036700000001050000310000000504500272000002b30000613d000000000600001900000005076002100000000008710019000000000773034f000000000707043b00000000007804350000000106600039000000000746004b000002ab0000413d0000001f05500190000001ad0000613d0000000504400210000000000343034f00000000014100190000000304500210000000000501043300000000054501cf000000000545022f000000000303043b0000010004400089000000000343022f00000000034301cf000000000353019f0000000000310435000001ad0000013d000000000001042d000000eb0100004100000000001004350000003201000039000000040010043f000000ec010000410000037e00010430000000eb0100004100000000001004350000004101000039000000040010043f000000ec010000410000037e0001043000000000010000190000037e00010430000000400100043d00000044021000390000010203000041000000000032043500000024021000390000001d030000390000000000320435000000f6020000410000000000210435000000040210003900000004030000290000000000320435000000e002000041000000e00310009c00000000010280190000004001100210000000f7011001c70000037e00010430000000000230004c000003460000c13d000000400100043d000000f602000041000000000021043500000004021000390000000403000029000000000032043500000003070000290000000002070433000000240310003900000000002304350000004403100039000000000420004c000002fb0000613d000000000400001900000000053400190000002004400039000000000674001900000000060604330000000000650435000000000524004b000002f40000413d0000001f04200039000000200500008a000000000454016f000000000232001900000000000204350000004402400039000000e003000041000000e00420009c0000000002038019000000e00410009c000000000103801900000040011002100000006002200210000000000112019f0000037e00010430000000400100043d0000006402100039000000ff03000041000000000032043500000044021000390000010003000041000000000032043500000024021000390000002a030000390000000000320435000000f6020000410000000000210435000000040210003900000004030000290000000000320435000000e002000041000000e00310009c0000000001028019000000400110021000000101011001c70000037e00010430000000400100043d00000064021000390000010403000041000000000032043500000044021000390000010503000041000000000032043500000024021000390000003a030000390000000000320435000000f6020000410000000000210435000000040210003900000020030000390000000000320435000000e002000041000000e00310009c0000000001028019000000400110021000000101011001c70000037e00010430000000400100043d00000044021000390000010603000041000000000032043500000024021000390000001d030000390000000000320435000000f6020000410000000000210435000000040210003900000020030000390000000000320435000000e002000041000000e00310009c00000000010280190000004001100210000000f7011001c70000037e00010430000000e002000041000000e00410009c0000000001028019000000e00430009c000000000203401900000060022002100000004001100210000000000112019f0000037e00010430000000400100043d0000004402100039000000f8030000410000000000320435000000f602000041000000000021043500000024021000390000002003000039000000000032043500000004021000390000000000320435000000e002000041000000e00310009c00000000010280190000004001100210000000f7011001c70000037e00010430000000400100043d0000004402100039000000f5030000410000000000320435000000240210003900000015030000390000000000320435000000f6020000410000000000210435000000040210003900000020030000390000000000320435000000e002000041000000e00310009c00000000010280190000004001100210000000f7011001c70000037e0001043000000375002104210000000102000039000000000001042d0000000002000019000000000001042d0000037a002104230000000102000039000000000001042d0000000002000019000000000001042d0000037c000004320000037d0001042e0000037e00010430000000000000000000000000000000000000000000000000000000000000000000000000ffffffff8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000200000000000000000000000000000040000001000000000000000000000000000000000000000000000000000000000000000000000000008da5cb5a000000000000000000000000000000000000000000000000000000008da5cb5b00000000000000000000000000000000000000000000000000000000cd72250d0000000000000000000000000000000000000000000000000000000012065fe0000000000000000000000000000000000000000000000000000000001b9265b8000000000000000000000000000000000000000000000000ffffffffffffffff4e487b7100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002400000000000000000000000000000000000000000000000000000000000000200000000000000000000000009cc7f708afc65944829bd487b90b72536b1951864fbfc14e125fc972a6507f3900000000000000000000000000000000000000200000008000000000000000000200000200000000000000000000000000000000000000000000000000000000796b89b91644bc98cd93958e4c9038275d622183e25ac5af08cc6b5d9553913202000002000000000000000000000000000000040000000000000000000000000200000000000000000000000000000000000040000000000000000000000000df9a51129930649214df58f542322c245372c6f2fa6fc3c9b40d927c597cd230596f7520617265206e6f7420746865206f776e6572000000000000000000000008c379a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064000000000000000000000000417272617973206d7573742068617665207468652073616d65206c656e677468a9059cbb00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff80000000000000000000000000000000000000000000000000ffffffffffffff3f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65641806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b8302000002000000000000000000000000000000240000000000000000000000006f742073756363656564000000000000000000000000000000000000000000005361666545524332303a204552433230206f7065726174696f6e20646964206e0000000000000000000000000000000000000084000000000000000000000000416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000002000000000000000000000000000000000000000000000000000000000000006563697069656e74206d61792068617665207265766572746564000000000000416464726573733a20756e61626c6520746f2073656e642076616c75652c2072416464726573733a20696e73756666696369656e742062616c616e63650000000000000000000000000000000000000000000000000000000000000000000000b0f2987959443a75f5e5f63c7ad86855957a7f17ddec4aa651bf7b7707c372a9", - "linkReferences": {}, - "deployedLinkReferences": {}, - "factoryDeps": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/contracts/MyERC20.sol/MyERC20.dbg.json b/packages/integration-tests/src/playbook/artifacts-zk/contracts/MyERC20.sol/MyERC20.dbg.json deleted file mode 100644 index 973a2e83f9..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/contracts/MyERC20.sol/MyERC20.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../build-info/92cb10df65f6d26368974b9012699389.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/contracts/MyERC20.sol/MyERC20.json b/packages/integration-tests/src/playbook/artifacts-zk/contracts/MyERC20.sol/MyERC20.json deleted file mode 100644 index 35aff2c888..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/contracts/MyERC20.sol/MyERC20.json +++ /dev/null @@ -1,327 +0,0 @@ -{ - "_format": "hh-zksolc-artifact-1", - "contractName": "MyERC20", - "sourceName": "contracts/MyERC20.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "string", - "name": "name_", - "type": "string" - }, - { - "internalType": "string", - "name": "symbol_", - "type": "string" - }, - { - "internalType": "uint8", - "name": "decimals_", - "type": "uint8" - } - ], - "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": [ - { - "internalType": "address", - "name": "_to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - } - ], - "name": "mint", - "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" - } - ], - "bytecode": "0x00020000000000020009000000000002000100000001035500000060011002700000019c0010019d0000008001000039000000400010043f0000000101200190000000340000c13d0000000001000031000000040110008c000003650000413d0000000101000367000000000101043b000000e001100270000001a10210009c000001420000213d000001a90210009c000001720000213d000001ad0210009c000001fb0000613d000001ae0210009c0000021f0000613d000001af0110009c000003650000c13d0000000001000416000000000110004c000003650000c13d000000040100008a00000000011000310000019e02000041000000000310004c000000000300001900000000030240190000019e01100197000000000410004c000000000200a0190000019e0110009c00000000010300190000000001026019000000000110004c000003650000c13d0000000201000039000000000101041a000000400200043d00000000001204350000019c010000410000019c0320009c00000000010240190000004001100210000001b1011001c70000066a0001042e0000000001000416000000000110004c000003650000c13d00000000020000310000001f01200039000000200a00008a0000000004a1016f000000400100043d0000000003140019000000000443004b000000000400001900000001040040390000019d0530009c000003e00000213d0000000104400190000003e00000c13d000000400030043f0000001f0320018f00000001040003670000000505200272000000520000613d000000000600001900000005076002100000000008710019000000000774034f000000000707043b00000000007804350000000106600039000000000756004b0000004a0000413d000000000630004c000000610000613d0000000505500210000000000454034f00000000055100190000000303300210000000000605043300000000063601cf000000000636022f000000000404043b0000010003300089000000000434022f00000000033401cf000000000363019f00000000003504350000019e03000041000000600420008c000000000400001900000000040340190000019e05200197000000000650004c000000000300a0190000019e0550009c000000000304c019000000000330004c000003650000c13d00000000340104340000019d0540009c000003650000213d000000000221001900000000041400190000001f054000390000019e06000041000000000725004b000000000700001900000000070680190000019e055001970000019e08200197000000000985004b0000000006008019000000000585013f0000019e0550009c00000000050700190000000005066019000000000550004c000003650000c13d00000000050404330000019d0650009c000003e00000213d0000003f065000390000000006a6016f000000400b00043d00000000066b00190000000007b6004b000000000700001900000001070040390000019d0860009c000003e00000213d0000000107700190000003e00000c13d000000400060043f000000000c5b043600000020065000390000000007460019000000000727004b000003650000213d000000000750004c0000009e0000613d000000000700001900000020077000390000000008b70019000000000947001900000000090904330000000000980435000000000857004b000000970000413d00000000046b0019000000000004043500000000030304330000019d0430009c000003650000213d00000000031300190000001f043000390000019e05000041000000000624004b000000000600001900000000060580190000019e044001970000019e07200197000000000874004b0000000005008019000000000474013f0000019e0440009c00000000040600190000000004056019000000000440004c000003650000c13d00000000040304330000019d0540009c000003e00000213d0000003f054000390000000005a5016f000000400800043d0000000005580019000000000685004b000000000600001900000001060040390000019d0750009c000003e00000213d0000000106600190000003e00000c13d000000400050043f0000000005480436000800000005001d00000020054000390000000006350019000000000226004b000003650000213d00060000000c001d00090000000b001d00070000000a001d000000000240004c000000d50000613d000000000200001900000020022000390000000006820019000000000732001900000000070704330000000000760435000000000642004b000000ce0000413d0000000002580019000000000002043500000040011000390000000001010433000500000001001d000000ff0110008c0000000901000029000003650000213d0000000001010433000400000001001d0000019d0110009c000003e00000213d000100000008001d0000000301000039000300000001001d000000000101041a000000010210019000000001011002700000007f0310018f0000000001036019000200000001001d0000001f0110008c00000000010000190000000101002039000000010110018f000000000112004b000002190000c13d0000000201000029000000200110008c000001100000413d000000030100002900000000001004350000019c0100004100000000020004140000019c0320009c0000000001024019000000c0011002100000019f011001c70000801002000039066906640000040f0000000102200190000003650000613d00000004030000290000001f023000390000000502200270000000200330008c0000000002004019000000000301043b00000002010000290000001f01100039000000050110027000000000011300190000000002230019000000000312004b000001100000813d000000000002041b0000000102200039000000000312004b0000010c0000413d00000004010000290000001f0110008c0000049c0000a13d000000030100002900000000001004350000019c0100004100000000020004140000019c0320009c0000000001024019000000c0011002100000019f011001c70000801002000039066906640000040f000000010220019000000007020000290000000906000029000003650000613d000000040300002900000000032301700000002002000039000000000101043b000001300000613d0000002002000039000000000400001900000000056200190000000005050433000000000051041b000000200220003900000001011000390000002004400039000000000534004b000001280000413d0000000404000029000000000343004b0000013e0000813d00000004030000290000000303300210000000f80330018f000000010400008a000000000334022f000000000343013f000000090400002900000000024200190000000002020433000000000232016f000000000021041b000000010100003900000004020000290000000102200210000004a90000013d000001a20210009c000001c40000213d000001a60210009c000002420000613d000001a70210009c0000026e0000613d000001a80110009c000003650000c13d0000000001000416000000000110004c000003650000c13d000000040100008a00000000011000310000019e02000041000000000310004c000000000300001900000000030240190000019e01100197000000000410004c000000000200a0190000019e0110009c00000000010300190000000001026019000000000110004c000003650000c13d0000000405000039000000000405041a000000010640019000000001014002700000007f0210018f00000000010260190000001f0210008c00000000020000190000000102002039000000000224013f0000000102200190000002190000c13d000000400200043d0000000003120436000000000660004c0000037e0000c13d000001000500008a000000000454016f0000000000430435000000000110004c000000200400003900000000040060190000038b0000013d000001aa0210009c000002920000613d000001ab0210009c000002e10000613d000001ac0110009c000003650000c13d0000000001000416000000000110004c000003650000c13d000000040100008a00000000011000310000019e02000041000000400310008c000000000300001900000000030240190000019e01100197000000000410004c000000000200a0190000019e0110009c00000000010300190000000001026019000000000110004c000003650000c13d00000004010000390000000101100367000000000101043b000900000001001d000001b00110009c000003650000213d0000000001000411000700000001001d00000000001004350000000101000039000800000001001d000000200010043f0000019c0100004100000000020004140000019c0320009c0000000001024019000000c001100210000001b2011001c70000801002000039066906640000040f0000000102200190000003650000613d000000000101043b00000009020000290000000000200435000000200010043f0000019c0100004100000000020004140000019c0320009c0000000001024019000000c001100210000001b2011001c70000801002000039066906640000040f0000000102200190000003650000613d000000000101043b000000000101041a00000024020000390000000102200367000000000202043b0000000003120019000000000123004b000000000100001900000001010040390000000101100190000003c50000c13d00000007010000290000000902000029066905f80000040f000000400100043d000000080200002900000000002104350000019c020000410000019c0310009c00000000010280190000004001100210000001b1011001c70000066a0001042e000001a30210009c000002fd0000613d000001a40210009c0000034f0000613d000001a50110009c000003650000c13d0000000001000416000000000110004c000003650000c13d000000040100008a00000000011000310000019e02000041000000400310008c000000000300001900000000030240190000019e01100197000000000410004c000000000200a0190000019e0110009c00000000010300190000000001026019000000000110004c000003650000c13d00000001020003670000000401200370000000000101043b000001b00310009c000003650000213d0000002402200370000000000302043b000001b00230009c000003650000213d00000000001004350000000101000039000000200010043f0000004002000039000900000002001d0000000001000019000800000003001d0669052e0000040f00000008020000290000000000200435000000200010043f000000000100001900000009020000290669052e0000040f000000000101041a000000400200043d00000000001204350000019c010000410000019c0320009c00000000010240190000004001100210000001b1011001c70000066a0001042e0000000001000416000000000110004c000003650000c13d000000040100008a00000000011000310000019e02000041000000000310004c000000000300001900000000030240190000019e01100197000000000410004c000000000200a0190000019e0110009c00000000010300190000000001026019000000000110004c000003650000c13d0000000303000039000000000203041a000000010420019000000001012002700000007f0510018f000000000601001900000000060560190000001f0560008c00000000050000190000000105002039000000000552013f0000000105500190000003670000613d000001bb0100004100000000001004350000002201000039000000040010043f000001bc010000410000066b000104300000000001000416000000000110004c000003650000c13d000000040100008a00000000011000310000019e02000041000000400310008c000000000300001900000000030240190000019e01100197000000000410004c000000000200a0190000019e0110009c00000000010300190000000001026019000000000110004c000003650000c13d00000001010003670000000402100370000000000202043b000001b00320009c000003650000213d0000002401100370000000000301043b0000000001000411066905f80000040f0000000101000039000000400200043d00000000001204350000019c010000410000019c0320009c00000000010240190000004001100210000001b1011001c70000066a0001042e0000000001000416000000000110004c000003650000c13d000000040100008a00000000011000310000019e02000041000000400310008c000000000300001900000000030240190000019e01100197000000000410004c000000000200a0190000019e0110009c00000000010300190000000001026019000000000110004c000003650000c13d00000001010003670000000402100370000000000402043b000001b00240009c000003650000213d0000002401100370000000000501043b000000000140004c000003a40000c13d000000400100043d0000004402100039000001b903000041000000000032043500000024021000390000001f030000390000000000320435000001b50200004100000000002104350000000402100039000000200300003900000000003204350000019c020000410000019c0310009c00000000010280190000004001100210000001ba011001c70000066b000104300000000001000416000000000110004c000003650000c13d000000040100008a00000000011000310000019e02000041000000200310008c000000000300001900000000030240190000019e01100197000000000410004c000000000200a0190000019e0110009c00000000010300190000000001026019000000000110004c000003650000c13d00000004010000390000000101100367000000000101043b000001b00210009c000003650000213d0000000000100435000000200000043f000000400200003900000000010000190669052e0000040f000000000101041a000000400200043d00000000001204350000019c010000410000019c0320009c00000000010240190000004001100210000001b1011001c70000066a0001042e0000000001000416000000000110004c000003650000c13d000000040100008a00000000011000310000019e02000041000000600310008c000000000300001900000000030240190000019e01100197000000000410004c000000000200a0190000019e0110009c00000000010300190000000001026019000000000110004c000003650000c13d00000001010003670000000402100370000000000402043b000001b00240009c000003650000213d0000002402100370000000000202043b000900000002001d000001b00220009c000003650000213d0000004401100370000000000101043b000700000001001d00000000004004350000000101000039000600000001001d000000200010043f0000019c0100004100000000020004140000019c0320009c0000000001024019000000c001100210000001b2011001c70000801002000039000800000004001d066906640000040f0000000102200190000003650000613d000000000101043b0000000002000411000500000002001d0000000000200435000000200010043f0000019c0100004100000000020004140000019c0320009c0000000001024019000000c001100210000001b2011001c70000801002000039066906640000040f00000008030000290000000102200190000003650000613d000000000101043b000000000201041a000000010100008a000000000112004b000004020000c13d0000000001030019000000090200002900000007030000290669055a0000040f000000400100043d000000060200002900000000002104350000019c020000410000019c0310009c00000000010280190000004001100210000001b1011001c70000066a0001042e0000000001000416000000000110004c000003650000c13d000000040100008a00000000011000310000019e02000041000000000310004c000000000300001900000000030240190000019e01100197000000000410004c000000000200a0190000019e0110009c00000000010300190000000001026019000000000110004c000003650000c13d0000000501000039000000000101041a000000ff0110018f000000400200043d00000000001204350000019c010000410000019c0320009c00000000010240190000004001100210000001b1011001c70000066a0001042e0000000001000416000000000110004c000003650000c13d000000040100008a00000000011000310000019e02000041000000400310008c000000000300001900000000030240190000019e01100197000000000410004c000000000200a0190000019e0110009c00000000010300190000000001026019000000000110004c000003650000c13d00000001010003670000000402100370000000000202043b000900000002001d000001b00220009c000003650000213d0000002401100370000000000101043b000800000001001d0000000001000411000600000001001d00000000001004350000000101000039000700000001001d000000200010043f0000019c0100004100000000020004140000019c0320009c0000000001024019000000c001100210000001b2011001c70000801002000039066906640000040f0000000102200190000003650000613d000000000101043b00000009020000290000000000200435000000200010043f0000019c0100004100000000020004140000019c0320009c0000000001024019000000c001100210000001b2011001c70000801002000039066906640000040f0000000102200190000003650000613d000000000101043b000000000101041a0000000803000029000000000231004b000003f50000813d000000400100043d0000006402100039000001b30300004100000000003204350000004402100039000001b4030000410000000000320435000000240210003900000025030000390000000000320435000001b50200004100000000002104350000000402100039000000200300003900000000003204350000019c020000410000019c0310009c00000000010280190000004001100210000001b6011001c70000066b000104300000000001000416000000000110004c000003650000c13d000000040100008a00000000011000310000019e02000041000000400310008c000000000300001900000000030240190000019e01100197000000000410004c000000000200a0190000019e0110009c00000000010300190000000001026019000000000110004c000003650000c13d00000001010003670000000402100370000000000202043b000001b00320009c000003710000a13d00000000010000190000066b00010430000000800060043f000000000440004c000003cb0000c13d000001000300008a000000000232016f000000a00020043f000000000160004c000000c001000039000000a001006039000003da0000013d0000002401100370000000000301043b00000000010004110669055a0000040f0000000101000039000000400200043d00000000001204350000019c010000410000019c0320009c00000000010240190000004001100210000001b1011001c70000066a0001042e0000000000500435000000000410004c00000000040000190000038b0000613d000001b70500004100000000040000190000000006430019000000000705041a000000000076043500000001055000390000002004400039000000000614004b000003840000413d0000003f01400039000000200300008a000000000331016f0000000001230019000000000331004b000000000400001900000001040040390000019d0310009c000003e00000213d0000000103400190000003e00000c13d000000400010043f000900000001001d066905440000040f000000090400002900000000014100490000019c020000410000019c0310009c00000000010280190000019c0340009c000000000204401900000040022002100000006001100210000000000121019f0000066a0001042e0000000201000039000000000301041a0000000002530019000000000332004b000000000300001900000001030040390000000103300190000003c50000c13d000800000005001d000000000021041b0000000000400435000000200000043f0000019c0100004100000000020004140000019c0320009c0000000001024019000000c001100210000001b2011001c70000801002000039000900000004001d066906640000040f00000009060000290000000102200190000003650000613d000000000101043b000000000301041a00000008040000290000000002430019000000000332004b000000000300001900000001030040390000000103300190000004170000613d000001bb0100004100000000001004350000001101000039000000040010043f000001bc010000410000066b000104300000000000300435000000a001000039000000000260004c000003e60000613d000001c30200004100000000040000190000000003040019000000000402041a000000a005300039000000000045043500000001022000390000002004300039000000000564004b000003d10000413d000000c0013000390000001f01100039000000200200008a000000000121016f000001c402100041000001c50220009c000003e60000813d000001bb0100004100000000001004350000004101000039000000040010043f000001bc010000410000066b00010430000900000001001d000000400010043f0000008002000039066905440000040f000000090400002900000000014100490000019c020000410000019c0310009c00000000010280190000019c0340009c000000000204401900000040022002100000006001100210000000000121019f0000066a0001042e000000000331004900000006010000290000000902000029066905f80000040f000000400100043d000000070200002900000000002104350000019c020000410000019c0310009c00000000010280190000004001100210000001b1011001c70000066a0001042e0000000701000029000000000112004b000004340000813d000000400100043d0000004402100039000001c203000041000000000032043500000024021000390000001d030000390000000000320435000001b50200004100000000002104350000000402100039000000200300003900000000003204350000019c020000410000019c0310009c00000000010280190000004001100210000001ba011001c70000066b00010430000000000021041b000000400100043d00000000004104350000019c0200004100000000030004140000019c0430009c00000000030280190000019c0410009c00000000010280190000004001100210000000c002300210000000000112019f0000019f011001c70000800d020000390000000303000039000001b80400004100000000050000190669065f0000040f0000000101200190000003650000613d000000400100043d000000010200003900000000002104350000019c020000410000019c0310009c00000000010280190000004001100210000001b1011001c70000066a0001042e000400000002001d000000000130004c0000044c0000c13d000000400100043d0000006402100039000001c00300004100000000003204350000004402100039000001c1030000410000000000320435000000240210003900000024030000390000000000320435000001b50200004100000000002104350000000402100039000000200300003900000000003204350000019c020000410000019c0310009c00000000010280190000004001100210000001b6011001c70000066b000104300000000501000029000001b001100198000500000001001d000004650000c13d000000400100043d0000006402100039000001be0300004100000000003204350000004402100039000001bf030000410000000000320435000000240210003900000022030000390000000000320435000001b50200004100000000002104350000000402100039000000200300003900000000003204350000019c020000410000019c0310009c00000000010280190000004001100210000001b6011001c70000066b00010430000000080100002900000000001004350000000601000029000000200010043f0000019c0100004100000000020004140000019c0320009c0000000001024019000000c001100210000001b2011001c70000801002000039066906640000040f0000000102200190000003650000613d000000000101043b00000005020000290000000000200435000000200010043f0000019c0100004100000000020004140000019c0320009c0000000001024019000000c001100210000001b2011001c70000801002000039066906640000040f00000004030000290000000102200190000003650000613d00000007020000290000000002230049000000000101043b000000000021041b000000400100043d00000000002104350000019c0200004100000000030004140000019c0430009c00000000030280190000019c0410009c00000000010280190000004001100210000000c002300210000000000112019f0000019f011001c70000800d020000390000000303000039000001bd04000041000000080500002900000005060000290669065f0000040f00000008030000290000000101200190000002d40000c13d000003650000013d0000000401000029000000000110004c0000000001000019000004a20000613d0000000601000029000000000101043300000004040000290000000302400210000000010300008a000000000223022f000000000232013f000000000221016f0000000101400210000000000112019f0000000302000029000000000012041b00000001010000290000000001010433000900000001001d0000019d0110009c000003e00000213d0000000401000039000600000001001d000000000101041a000000010210019000000001021002700000007f0320018f0000000002036019000400000002001d0000001f0220008c00000000020000190000000102002039000000000121013f0000000101100190000002190000c13d0000000401000029000000200110008c000004df0000413d000000060100002900000000001004350000019c0100004100000000020004140000019c0320009c0000000001024019000000c0011002100000019f011001c70000801002000039066906640000040f0000000102200190000003650000613d00000009030000290000001f023000390000000502200270000000200330008c0000000002004019000000000301043b00000004010000290000001f01100039000000050110027000000000011300190000000002230019000000000312004b000004df0000813d000000000002041b0000000102200039000000000312004b000004db0000413d00000009010000290000001f0110008c000005110000a13d000000060100002900000000001004350000019c0100004100000000020004140000019c0320009c0000000001024019000000c0011002100000019f011001c70000801002000039066906640000040f000000010220019000000007020000290000000106000029000003650000613d000000090300002900000000032301700000002002000039000000000101043b000004ff0000613d0000002002000039000000000400001900000000056200190000000005050433000000000051041b000000200220003900000001011000390000002004400039000000000534004b000004f70000413d0000000904000029000000000343004b0000050d0000813d00000009030000290000000303300210000000f80330018f000000010400008a000000000334022f000000000343013f000000010400002900000000024200190000000002020433000000000232016f000000000021041b0000000101000039000000090200002900000001022002100000051e0000013d0000000901000029000000000110004c0000000001000019000005170000613d0000000801000029000000000101043300000009040000290000000302400210000000010300008a000000000223022f000000000232013f000000000221016f0000000101400210000000000112019f0000000602000029000000000012041b0000000501000039000000000201041a000001000300008a000000000232016f0000000503000029000000ff0330018f000000000232019f000000000021041b000000200100003900000100001004430000012000000443000001a0010000410000066a0001042e0000019c030000410000019c0410009c000000000103801900000040011002100000019c0420009c00000000020380190000006002200210000000000112019f00000000020004140000019c0420009c0000000002038019000000c002200210000000000112019f000001c6011001c70000801002000039066906640000040f0000000102200190000005420000613d000000000101043b000000000001042d00000000010000190000066b0001043000000020030000390000000004310436000000000302043300000000003404350000004001100039000000000430004c000005530000613d000000000400001900000000054100190000002004400039000000000624001900000000060604330000000000650435000000000534004b0000054c0000413d000000000231001900000000000204350000001f02300039000000200300008a000000000232016f0000000001210019000000000001042d0004000000000002000001b001100198000005b30000613d000400000003001d000001b002200198000200000002001d000005c80000613d000300000001001d0000000000100435000000200000043f0000019c0100004100000000020004140000019c0320009c0000000001024019000000c001100210000001b2011001c70000801002000039066906640000040f0000000102200190000005b10000613d000000000101043b000000000201041a0000000401000029000100000002001d000000000112004b000005dd0000413d00000003010000290000000000100435000000200000043f0000019c0100004100000000020004140000019c0320009c0000000001024019000000c001100210000001b2011001c70000801002000039066906640000040f0000000102200190000005b10000613d000000040200002900000001030000290000000002230049000000000101043b000000000021041b000000020100002900000000001004350000019c0100004100000000020004140000019c0320009c0000000001024019000000c001100210000001b2011001c70000801002000039066906640000040f0000000102200190000005b10000613d000000000101043b000000000301041a00000004040000290000000002430019000000000332004b000000000300001900000001030040390000000103300190000005f20000c13d000000000021041b000000400100043d00000000004104350000019c0200004100000000030004140000019c0430009c00000000030280190000019c0410009c00000000010280190000004001100210000000c002300210000000000112019f0000019f011001c70000800d020000390000000303000039000001b804000041000000030500002900000002060000290669065f0000040f0000000101200190000005b10000613d000000000001042d00000000010000190000066b00010430000000400100043d0000006402100039000001cb0300004100000000003204350000004402100039000001cc030000410000000000320435000000240210003900000025030000390000000000320435000001b50200004100000000002104350000000402100039000000200300003900000000003204350000019c020000410000019c0310009c00000000010280190000004001100210000001b6011001c70000066b00010430000000400100043d0000006402100039000001c90300004100000000003204350000004402100039000001ca030000410000000000320435000000240210003900000023030000390000000000320435000001b50200004100000000002104350000000402100039000000200300003900000000003204350000019c020000410000019c0310009c00000000010280190000004001100210000001b6011001c70000066b00010430000000400100043d0000006402100039000001c70300004100000000003204350000004402100039000001c8030000410000000000320435000000240210003900000026030000390000000000320435000001b50200004100000000002104350000000402100039000000200300003900000000003204350000019c020000410000019c0310009c00000000010280190000004001100210000001b6011001c70000066b00010430000001bb0100004100000000001004350000001101000039000000040010043f000001bc010000410000066b000104300003000000000002000001b001100198000006350000613d000200000003001d000001b002200198000300000002001d0000064a0000613d000100000001001d00000000001004350000000101000039000000200010043f0000019c0100004100000000020004140000019c0320009c0000000001024019000000c001100210000001b2011001c70000801002000039066906640000040f00000001022001900000000304000029000006330000613d000000000101043b0000000000400435000000200010043f0000019c0100004100000000020004140000019c0320009c0000000001024019000000c001100210000001b2011001c70000801002000039066906640000040f00000003060000290000000102200190000006330000613d000000000101043b0000000202000029000000000021041b000000400100043d00000000002104350000019c0200004100000000030004140000019c0430009c00000000030280190000019c0410009c00000000010280190000004001100210000000c002300210000000000112019f0000019f011001c70000800d020000390000000303000039000001bd0400004100000001050000290669065f0000040f0000000101200190000006330000613d000000000001042d00000000010000190000066b00010430000000400100043d0000006402100039000001c00300004100000000003204350000004402100039000001c1030000410000000000320435000000240210003900000024030000390000000000320435000001b50200004100000000002104350000000402100039000000200300003900000000003204350000019c020000410000019c0310009c00000000010280190000004001100210000001b6011001c70000066b00010430000000400100043d0000006402100039000001be0300004100000000003204350000004402100039000001bf030000410000000000320435000000240210003900000022030000390000000000320435000001b50200004100000000002104350000000402100039000000200300003900000000003204350000019c020000410000019c0310009c00000000010280190000004001100210000001b6011001c70000066b0001043000000662002104210000000102000039000000000001042d0000000002000019000000000001042d00000667002104230000000102000039000000000001042d0000000002000019000000000001042d00000669000004320000066a0001042e0000066b00010430000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff000000000000000000000000000000000000000000000000ffffffffffffffff8000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000002000000000000000000000000000000002000000000000000000000000000000400000010000000000000000000000000000000000000000000000000000000000000000000000000040c10f1800000000000000000000000000000000000000000000000000000000a457c2d600000000000000000000000000000000000000000000000000000000a457c2d700000000000000000000000000000000000000000000000000000000a9059cbb00000000000000000000000000000000000000000000000000000000dd62ed3e0000000000000000000000000000000000000000000000000000000040c10f190000000000000000000000000000000000000000000000000000000070a082310000000000000000000000000000000000000000000000000000000095d89b410000000000000000000000000000000000000000000000000000000023b872dc0000000000000000000000000000000000000000000000000000000023b872dd00000000000000000000000000000000000000000000000000000000313ce56700000000000000000000000000000000000000000000000000000000395093510000000000000000000000000000000000000000000000000000000006fdde0300000000000000000000000000000000000000000000000000000000095ea7b30000000000000000000000000000000000000000000000000000000018160ddd000000000000000000000000ffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000200000000000000000000000000200000000000000000000000000000000000040000000000000000000000000207a65726f00000000000000000000000000000000000000000000000000000045524332303a2064656372656173656420616c6c6f77616e63652062656c6f7708c379a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000840000000000000000000000008a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19bddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef45524332303a206d696e7420746f20746865207a65726f20616464726573730000000000000000000000000000000000000000640000000000000000000000004e487b710000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000000000000000000000008c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925737300000000000000000000000000000000000000000000000000000000000045524332303a20617070726f766520746f20746865207a65726f206164647265726573730000000000000000000000000000000000000000000000000000000045524332303a20617070726f76652066726f6d20746865207a65726f2061646445524332303a20696e73756666696369656e7420616c6c6f77616e6365000000c2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85bffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff00000000000000800200000000000000000000000000000000000000000000000000000000000000616c616e6365000000000000000000000000000000000000000000000000000045524332303a207472616e7366657220616d6f756e7420657863656564732062657373000000000000000000000000000000000000000000000000000000000045524332303a207472616e7366657220746f20746865207a65726f2061646472647265737300000000000000000000000000000000000000000000000000000045524332303a207472616e736665722066726f6d20746865207a65726f2061640000000000000000000000000000000000000000000000000000000000000000b364ddbf62f2a32b5e7a71e5f754a6311e8665c7b7e61bd7d4aae58227db2750", - "deployedBytecode": "0x00020000000000020009000000000002000100000001035500000060011002700000019c0010019d0000008001000039000000400010043f0000000101200190000000340000c13d0000000001000031000000040110008c000003650000413d0000000101000367000000000101043b000000e001100270000001a10210009c000001420000213d000001a90210009c000001720000213d000001ad0210009c000001fb0000613d000001ae0210009c0000021f0000613d000001af0110009c000003650000c13d0000000001000416000000000110004c000003650000c13d000000040100008a00000000011000310000019e02000041000000000310004c000000000300001900000000030240190000019e01100197000000000410004c000000000200a0190000019e0110009c00000000010300190000000001026019000000000110004c000003650000c13d0000000201000039000000000101041a000000400200043d00000000001204350000019c010000410000019c0320009c00000000010240190000004001100210000001b1011001c70000066a0001042e0000000001000416000000000110004c000003650000c13d00000000020000310000001f01200039000000200a00008a0000000004a1016f000000400100043d0000000003140019000000000443004b000000000400001900000001040040390000019d0530009c000003e00000213d0000000104400190000003e00000c13d000000400030043f0000001f0320018f00000001040003670000000505200272000000520000613d000000000600001900000005076002100000000008710019000000000774034f000000000707043b00000000007804350000000106600039000000000756004b0000004a0000413d000000000630004c000000610000613d0000000505500210000000000454034f00000000055100190000000303300210000000000605043300000000063601cf000000000636022f000000000404043b0000010003300089000000000434022f00000000033401cf000000000363019f00000000003504350000019e03000041000000600420008c000000000400001900000000040340190000019e05200197000000000650004c000000000300a0190000019e0550009c000000000304c019000000000330004c000003650000c13d00000000340104340000019d0540009c000003650000213d000000000221001900000000041400190000001f054000390000019e06000041000000000725004b000000000700001900000000070680190000019e055001970000019e08200197000000000985004b0000000006008019000000000585013f0000019e0550009c00000000050700190000000005066019000000000550004c000003650000c13d00000000050404330000019d0650009c000003e00000213d0000003f065000390000000006a6016f000000400b00043d00000000066b00190000000007b6004b000000000700001900000001070040390000019d0860009c000003e00000213d0000000107700190000003e00000c13d000000400060043f000000000c5b043600000020065000390000000007460019000000000727004b000003650000213d000000000750004c0000009e0000613d000000000700001900000020077000390000000008b70019000000000947001900000000090904330000000000980435000000000857004b000000970000413d00000000046b0019000000000004043500000000030304330000019d0430009c000003650000213d00000000031300190000001f043000390000019e05000041000000000624004b000000000600001900000000060580190000019e044001970000019e07200197000000000874004b0000000005008019000000000474013f0000019e0440009c00000000040600190000000004056019000000000440004c000003650000c13d00000000040304330000019d0540009c000003e00000213d0000003f054000390000000005a5016f000000400800043d0000000005580019000000000685004b000000000600001900000001060040390000019d0750009c000003e00000213d0000000106600190000003e00000c13d000000400050043f0000000005480436000800000005001d00000020054000390000000006350019000000000226004b000003650000213d00060000000c001d00090000000b001d00070000000a001d000000000240004c000000d50000613d000000000200001900000020022000390000000006820019000000000732001900000000070704330000000000760435000000000642004b000000ce0000413d0000000002580019000000000002043500000040011000390000000001010433000500000001001d000000ff0110008c0000000901000029000003650000213d0000000001010433000400000001001d0000019d0110009c000003e00000213d000100000008001d0000000301000039000300000001001d000000000101041a000000010210019000000001011002700000007f0310018f0000000001036019000200000001001d0000001f0110008c00000000010000190000000101002039000000010110018f000000000112004b000002190000c13d0000000201000029000000200110008c000001100000413d000000030100002900000000001004350000019c0100004100000000020004140000019c0320009c0000000001024019000000c0011002100000019f011001c70000801002000039066906640000040f0000000102200190000003650000613d00000004030000290000001f023000390000000502200270000000200330008c0000000002004019000000000301043b00000002010000290000001f01100039000000050110027000000000011300190000000002230019000000000312004b000001100000813d000000000002041b0000000102200039000000000312004b0000010c0000413d00000004010000290000001f0110008c0000049c0000a13d000000030100002900000000001004350000019c0100004100000000020004140000019c0320009c0000000001024019000000c0011002100000019f011001c70000801002000039066906640000040f000000010220019000000007020000290000000906000029000003650000613d000000040300002900000000032301700000002002000039000000000101043b000001300000613d0000002002000039000000000400001900000000056200190000000005050433000000000051041b000000200220003900000001011000390000002004400039000000000534004b000001280000413d0000000404000029000000000343004b0000013e0000813d00000004030000290000000303300210000000f80330018f000000010400008a000000000334022f000000000343013f000000090400002900000000024200190000000002020433000000000232016f000000000021041b000000010100003900000004020000290000000102200210000004a90000013d000001a20210009c000001c40000213d000001a60210009c000002420000613d000001a70210009c0000026e0000613d000001a80110009c000003650000c13d0000000001000416000000000110004c000003650000c13d000000040100008a00000000011000310000019e02000041000000000310004c000000000300001900000000030240190000019e01100197000000000410004c000000000200a0190000019e0110009c00000000010300190000000001026019000000000110004c000003650000c13d0000000405000039000000000405041a000000010640019000000001014002700000007f0210018f00000000010260190000001f0210008c00000000020000190000000102002039000000000224013f0000000102200190000002190000c13d000000400200043d0000000003120436000000000660004c0000037e0000c13d000001000500008a000000000454016f0000000000430435000000000110004c000000200400003900000000040060190000038b0000013d000001aa0210009c000002920000613d000001ab0210009c000002e10000613d000001ac0110009c000003650000c13d0000000001000416000000000110004c000003650000c13d000000040100008a00000000011000310000019e02000041000000400310008c000000000300001900000000030240190000019e01100197000000000410004c000000000200a0190000019e0110009c00000000010300190000000001026019000000000110004c000003650000c13d00000004010000390000000101100367000000000101043b000900000001001d000001b00110009c000003650000213d0000000001000411000700000001001d00000000001004350000000101000039000800000001001d000000200010043f0000019c0100004100000000020004140000019c0320009c0000000001024019000000c001100210000001b2011001c70000801002000039066906640000040f0000000102200190000003650000613d000000000101043b00000009020000290000000000200435000000200010043f0000019c0100004100000000020004140000019c0320009c0000000001024019000000c001100210000001b2011001c70000801002000039066906640000040f0000000102200190000003650000613d000000000101043b000000000101041a00000024020000390000000102200367000000000202043b0000000003120019000000000123004b000000000100001900000001010040390000000101100190000003c50000c13d00000007010000290000000902000029066905f80000040f000000400100043d000000080200002900000000002104350000019c020000410000019c0310009c00000000010280190000004001100210000001b1011001c70000066a0001042e000001a30210009c000002fd0000613d000001a40210009c0000034f0000613d000001a50110009c000003650000c13d0000000001000416000000000110004c000003650000c13d000000040100008a00000000011000310000019e02000041000000400310008c000000000300001900000000030240190000019e01100197000000000410004c000000000200a0190000019e0110009c00000000010300190000000001026019000000000110004c000003650000c13d00000001020003670000000401200370000000000101043b000001b00310009c000003650000213d0000002402200370000000000302043b000001b00230009c000003650000213d00000000001004350000000101000039000000200010043f0000004002000039000900000002001d0000000001000019000800000003001d0669052e0000040f00000008020000290000000000200435000000200010043f000000000100001900000009020000290669052e0000040f000000000101041a000000400200043d00000000001204350000019c010000410000019c0320009c00000000010240190000004001100210000001b1011001c70000066a0001042e0000000001000416000000000110004c000003650000c13d000000040100008a00000000011000310000019e02000041000000000310004c000000000300001900000000030240190000019e01100197000000000410004c000000000200a0190000019e0110009c00000000010300190000000001026019000000000110004c000003650000c13d0000000303000039000000000203041a000000010420019000000001012002700000007f0510018f000000000601001900000000060560190000001f0560008c00000000050000190000000105002039000000000552013f0000000105500190000003670000613d000001bb0100004100000000001004350000002201000039000000040010043f000001bc010000410000066b000104300000000001000416000000000110004c000003650000c13d000000040100008a00000000011000310000019e02000041000000400310008c000000000300001900000000030240190000019e01100197000000000410004c000000000200a0190000019e0110009c00000000010300190000000001026019000000000110004c000003650000c13d00000001010003670000000402100370000000000202043b000001b00320009c000003650000213d0000002401100370000000000301043b0000000001000411066905f80000040f0000000101000039000000400200043d00000000001204350000019c010000410000019c0320009c00000000010240190000004001100210000001b1011001c70000066a0001042e0000000001000416000000000110004c000003650000c13d000000040100008a00000000011000310000019e02000041000000400310008c000000000300001900000000030240190000019e01100197000000000410004c000000000200a0190000019e0110009c00000000010300190000000001026019000000000110004c000003650000c13d00000001010003670000000402100370000000000402043b000001b00240009c000003650000213d0000002401100370000000000501043b000000000140004c000003a40000c13d000000400100043d0000004402100039000001b903000041000000000032043500000024021000390000001f030000390000000000320435000001b50200004100000000002104350000000402100039000000200300003900000000003204350000019c020000410000019c0310009c00000000010280190000004001100210000001ba011001c70000066b000104300000000001000416000000000110004c000003650000c13d000000040100008a00000000011000310000019e02000041000000200310008c000000000300001900000000030240190000019e01100197000000000410004c000000000200a0190000019e0110009c00000000010300190000000001026019000000000110004c000003650000c13d00000004010000390000000101100367000000000101043b000001b00210009c000003650000213d0000000000100435000000200000043f000000400200003900000000010000190669052e0000040f000000000101041a000000400200043d00000000001204350000019c010000410000019c0320009c00000000010240190000004001100210000001b1011001c70000066a0001042e0000000001000416000000000110004c000003650000c13d000000040100008a00000000011000310000019e02000041000000600310008c000000000300001900000000030240190000019e01100197000000000410004c000000000200a0190000019e0110009c00000000010300190000000001026019000000000110004c000003650000c13d00000001010003670000000402100370000000000402043b000001b00240009c000003650000213d0000002402100370000000000202043b000900000002001d000001b00220009c000003650000213d0000004401100370000000000101043b000700000001001d00000000004004350000000101000039000600000001001d000000200010043f0000019c0100004100000000020004140000019c0320009c0000000001024019000000c001100210000001b2011001c70000801002000039000800000004001d066906640000040f0000000102200190000003650000613d000000000101043b0000000002000411000500000002001d0000000000200435000000200010043f0000019c0100004100000000020004140000019c0320009c0000000001024019000000c001100210000001b2011001c70000801002000039066906640000040f00000008030000290000000102200190000003650000613d000000000101043b000000000201041a000000010100008a000000000112004b000004020000c13d0000000001030019000000090200002900000007030000290669055a0000040f000000400100043d000000060200002900000000002104350000019c020000410000019c0310009c00000000010280190000004001100210000001b1011001c70000066a0001042e0000000001000416000000000110004c000003650000c13d000000040100008a00000000011000310000019e02000041000000000310004c000000000300001900000000030240190000019e01100197000000000410004c000000000200a0190000019e0110009c00000000010300190000000001026019000000000110004c000003650000c13d0000000501000039000000000101041a000000ff0110018f000000400200043d00000000001204350000019c010000410000019c0320009c00000000010240190000004001100210000001b1011001c70000066a0001042e0000000001000416000000000110004c000003650000c13d000000040100008a00000000011000310000019e02000041000000400310008c000000000300001900000000030240190000019e01100197000000000410004c000000000200a0190000019e0110009c00000000010300190000000001026019000000000110004c000003650000c13d00000001010003670000000402100370000000000202043b000900000002001d000001b00220009c000003650000213d0000002401100370000000000101043b000800000001001d0000000001000411000600000001001d00000000001004350000000101000039000700000001001d000000200010043f0000019c0100004100000000020004140000019c0320009c0000000001024019000000c001100210000001b2011001c70000801002000039066906640000040f0000000102200190000003650000613d000000000101043b00000009020000290000000000200435000000200010043f0000019c0100004100000000020004140000019c0320009c0000000001024019000000c001100210000001b2011001c70000801002000039066906640000040f0000000102200190000003650000613d000000000101043b000000000101041a0000000803000029000000000231004b000003f50000813d000000400100043d0000006402100039000001b30300004100000000003204350000004402100039000001b4030000410000000000320435000000240210003900000025030000390000000000320435000001b50200004100000000002104350000000402100039000000200300003900000000003204350000019c020000410000019c0310009c00000000010280190000004001100210000001b6011001c70000066b000104300000000001000416000000000110004c000003650000c13d000000040100008a00000000011000310000019e02000041000000400310008c000000000300001900000000030240190000019e01100197000000000410004c000000000200a0190000019e0110009c00000000010300190000000001026019000000000110004c000003650000c13d00000001010003670000000402100370000000000202043b000001b00320009c000003710000a13d00000000010000190000066b00010430000000800060043f000000000440004c000003cb0000c13d000001000300008a000000000232016f000000a00020043f000000000160004c000000c001000039000000a001006039000003da0000013d0000002401100370000000000301043b00000000010004110669055a0000040f0000000101000039000000400200043d00000000001204350000019c010000410000019c0320009c00000000010240190000004001100210000001b1011001c70000066a0001042e0000000000500435000000000410004c00000000040000190000038b0000613d000001b70500004100000000040000190000000006430019000000000705041a000000000076043500000001055000390000002004400039000000000614004b000003840000413d0000003f01400039000000200300008a000000000331016f0000000001230019000000000331004b000000000400001900000001040040390000019d0310009c000003e00000213d0000000103400190000003e00000c13d000000400010043f000900000001001d066905440000040f000000090400002900000000014100490000019c020000410000019c0310009c00000000010280190000019c0340009c000000000204401900000040022002100000006001100210000000000121019f0000066a0001042e0000000201000039000000000301041a0000000002530019000000000332004b000000000300001900000001030040390000000103300190000003c50000c13d000800000005001d000000000021041b0000000000400435000000200000043f0000019c0100004100000000020004140000019c0320009c0000000001024019000000c001100210000001b2011001c70000801002000039000900000004001d066906640000040f00000009060000290000000102200190000003650000613d000000000101043b000000000301041a00000008040000290000000002430019000000000332004b000000000300001900000001030040390000000103300190000004170000613d000001bb0100004100000000001004350000001101000039000000040010043f000001bc010000410000066b000104300000000000300435000000a001000039000000000260004c000003e60000613d000001c30200004100000000040000190000000003040019000000000402041a000000a005300039000000000045043500000001022000390000002004300039000000000564004b000003d10000413d000000c0013000390000001f01100039000000200200008a000000000121016f000001c402100041000001c50220009c000003e60000813d000001bb0100004100000000001004350000004101000039000000040010043f000001bc010000410000066b00010430000900000001001d000000400010043f0000008002000039066905440000040f000000090400002900000000014100490000019c020000410000019c0310009c00000000010280190000019c0340009c000000000204401900000040022002100000006001100210000000000121019f0000066a0001042e000000000331004900000006010000290000000902000029066905f80000040f000000400100043d000000070200002900000000002104350000019c020000410000019c0310009c00000000010280190000004001100210000001b1011001c70000066a0001042e0000000701000029000000000112004b000004340000813d000000400100043d0000004402100039000001c203000041000000000032043500000024021000390000001d030000390000000000320435000001b50200004100000000002104350000000402100039000000200300003900000000003204350000019c020000410000019c0310009c00000000010280190000004001100210000001ba011001c70000066b00010430000000000021041b000000400100043d00000000004104350000019c0200004100000000030004140000019c0430009c00000000030280190000019c0410009c00000000010280190000004001100210000000c002300210000000000112019f0000019f011001c70000800d020000390000000303000039000001b80400004100000000050000190669065f0000040f0000000101200190000003650000613d000000400100043d000000010200003900000000002104350000019c020000410000019c0310009c00000000010280190000004001100210000001b1011001c70000066a0001042e000400000002001d000000000130004c0000044c0000c13d000000400100043d0000006402100039000001c00300004100000000003204350000004402100039000001c1030000410000000000320435000000240210003900000024030000390000000000320435000001b50200004100000000002104350000000402100039000000200300003900000000003204350000019c020000410000019c0310009c00000000010280190000004001100210000001b6011001c70000066b000104300000000501000029000001b001100198000500000001001d000004650000c13d000000400100043d0000006402100039000001be0300004100000000003204350000004402100039000001bf030000410000000000320435000000240210003900000022030000390000000000320435000001b50200004100000000002104350000000402100039000000200300003900000000003204350000019c020000410000019c0310009c00000000010280190000004001100210000001b6011001c70000066b00010430000000080100002900000000001004350000000601000029000000200010043f0000019c0100004100000000020004140000019c0320009c0000000001024019000000c001100210000001b2011001c70000801002000039066906640000040f0000000102200190000003650000613d000000000101043b00000005020000290000000000200435000000200010043f0000019c0100004100000000020004140000019c0320009c0000000001024019000000c001100210000001b2011001c70000801002000039066906640000040f00000004030000290000000102200190000003650000613d00000007020000290000000002230049000000000101043b000000000021041b000000400100043d00000000002104350000019c0200004100000000030004140000019c0430009c00000000030280190000019c0410009c00000000010280190000004001100210000000c002300210000000000112019f0000019f011001c70000800d020000390000000303000039000001bd04000041000000080500002900000005060000290669065f0000040f00000008030000290000000101200190000002d40000c13d000003650000013d0000000401000029000000000110004c0000000001000019000004a20000613d0000000601000029000000000101043300000004040000290000000302400210000000010300008a000000000223022f000000000232013f000000000221016f0000000101400210000000000112019f0000000302000029000000000012041b00000001010000290000000001010433000900000001001d0000019d0110009c000003e00000213d0000000401000039000600000001001d000000000101041a000000010210019000000001021002700000007f0320018f0000000002036019000400000002001d0000001f0220008c00000000020000190000000102002039000000000121013f0000000101100190000002190000c13d0000000401000029000000200110008c000004df0000413d000000060100002900000000001004350000019c0100004100000000020004140000019c0320009c0000000001024019000000c0011002100000019f011001c70000801002000039066906640000040f0000000102200190000003650000613d00000009030000290000001f023000390000000502200270000000200330008c0000000002004019000000000301043b00000004010000290000001f01100039000000050110027000000000011300190000000002230019000000000312004b000004df0000813d000000000002041b0000000102200039000000000312004b000004db0000413d00000009010000290000001f0110008c000005110000a13d000000060100002900000000001004350000019c0100004100000000020004140000019c0320009c0000000001024019000000c0011002100000019f011001c70000801002000039066906640000040f000000010220019000000007020000290000000106000029000003650000613d000000090300002900000000032301700000002002000039000000000101043b000004ff0000613d0000002002000039000000000400001900000000056200190000000005050433000000000051041b000000200220003900000001011000390000002004400039000000000534004b000004f70000413d0000000904000029000000000343004b0000050d0000813d00000009030000290000000303300210000000f80330018f000000010400008a000000000334022f000000000343013f000000010400002900000000024200190000000002020433000000000232016f000000000021041b0000000101000039000000090200002900000001022002100000051e0000013d0000000901000029000000000110004c0000000001000019000005170000613d0000000801000029000000000101043300000009040000290000000302400210000000010300008a000000000223022f000000000232013f000000000221016f0000000101400210000000000112019f0000000602000029000000000012041b0000000501000039000000000201041a000001000300008a000000000232016f0000000503000029000000ff0330018f000000000232019f000000000021041b000000200100003900000100001004430000012000000443000001a0010000410000066a0001042e0000019c030000410000019c0410009c000000000103801900000040011002100000019c0420009c00000000020380190000006002200210000000000112019f00000000020004140000019c0420009c0000000002038019000000c002200210000000000112019f000001c6011001c70000801002000039066906640000040f0000000102200190000005420000613d000000000101043b000000000001042d00000000010000190000066b0001043000000020030000390000000004310436000000000302043300000000003404350000004001100039000000000430004c000005530000613d000000000400001900000000054100190000002004400039000000000624001900000000060604330000000000650435000000000534004b0000054c0000413d000000000231001900000000000204350000001f02300039000000200300008a000000000232016f0000000001210019000000000001042d0004000000000002000001b001100198000005b30000613d000400000003001d000001b002200198000200000002001d000005c80000613d000300000001001d0000000000100435000000200000043f0000019c0100004100000000020004140000019c0320009c0000000001024019000000c001100210000001b2011001c70000801002000039066906640000040f0000000102200190000005b10000613d000000000101043b000000000201041a0000000401000029000100000002001d000000000112004b000005dd0000413d00000003010000290000000000100435000000200000043f0000019c0100004100000000020004140000019c0320009c0000000001024019000000c001100210000001b2011001c70000801002000039066906640000040f0000000102200190000005b10000613d000000040200002900000001030000290000000002230049000000000101043b000000000021041b000000020100002900000000001004350000019c0100004100000000020004140000019c0320009c0000000001024019000000c001100210000001b2011001c70000801002000039066906640000040f0000000102200190000005b10000613d000000000101043b000000000301041a00000004040000290000000002430019000000000332004b000000000300001900000001030040390000000103300190000005f20000c13d000000000021041b000000400100043d00000000004104350000019c0200004100000000030004140000019c0430009c00000000030280190000019c0410009c00000000010280190000004001100210000000c002300210000000000112019f0000019f011001c70000800d020000390000000303000039000001b804000041000000030500002900000002060000290669065f0000040f0000000101200190000005b10000613d000000000001042d00000000010000190000066b00010430000000400100043d0000006402100039000001cb0300004100000000003204350000004402100039000001cc030000410000000000320435000000240210003900000025030000390000000000320435000001b50200004100000000002104350000000402100039000000200300003900000000003204350000019c020000410000019c0310009c00000000010280190000004001100210000001b6011001c70000066b00010430000000400100043d0000006402100039000001c90300004100000000003204350000004402100039000001ca030000410000000000320435000000240210003900000023030000390000000000320435000001b50200004100000000002104350000000402100039000000200300003900000000003204350000019c020000410000019c0310009c00000000010280190000004001100210000001b6011001c70000066b00010430000000400100043d0000006402100039000001c70300004100000000003204350000004402100039000001c8030000410000000000320435000000240210003900000026030000390000000000320435000001b50200004100000000002104350000000402100039000000200300003900000000003204350000019c020000410000019c0310009c00000000010280190000004001100210000001b6011001c70000066b00010430000001bb0100004100000000001004350000001101000039000000040010043f000001bc010000410000066b000104300003000000000002000001b001100198000006350000613d000200000003001d000001b002200198000300000002001d0000064a0000613d000100000001001d00000000001004350000000101000039000000200010043f0000019c0100004100000000020004140000019c0320009c0000000001024019000000c001100210000001b2011001c70000801002000039066906640000040f00000001022001900000000304000029000006330000613d000000000101043b0000000000400435000000200010043f0000019c0100004100000000020004140000019c0320009c0000000001024019000000c001100210000001b2011001c70000801002000039066906640000040f00000003060000290000000102200190000006330000613d000000000101043b0000000202000029000000000021041b000000400100043d00000000002104350000019c0200004100000000030004140000019c0430009c00000000030280190000019c0410009c00000000010280190000004001100210000000c002300210000000000112019f0000019f011001c70000800d020000390000000303000039000001bd0400004100000001050000290669065f0000040f0000000101200190000006330000613d000000000001042d00000000010000190000066b00010430000000400100043d0000006402100039000001c00300004100000000003204350000004402100039000001c1030000410000000000320435000000240210003900000024030000390000000000320435000001b50200004100000000002104350000000402100039000000200300003900000000003204350000019c020000410000019c0310009c00000000010280190000004001100210000001b6011001c70000066b00010430000000400100043d0000006402100039000001be0300004100000000003204350000004402100039000001bf030000410000000000320435000000240210003900000022030000390000000000320435000001b50200004100000000002104350000000402100039000000200300003900000000003204350000019c020000410000019c0310009c00000000010280190000004001100210000001b6011001c70000066b0001043000000662002104210000000102000039000000000001042d0000000002000019000000000001042d00000667002104230000000102000039000000000001042d0000000002000019000000000001042d00000669000004320000066a0001042e0000066b00010430000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff000000000000000000000000000000000000000000000000ffffffffffffffff8000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000002000000000000000000000000000000002000000000000000000000000000000400000010000000000000000000000000000000000000000000000000000000000000000000000000040c10f1800000000000000000000000000000000000000000000000000000000a457c2d600000000000000000000000000000000000000000000000000000000a457c2d700000000000000000000000000000000000000000000000000000000a9059cbb00000000000000000000000000000000000000000000000000000000dd62ed3e0000000000000000000000000000000000000000000000000000000040c10f190000000000000000000000000000000000000000000000000000000070a082310000000000000000000000000000000000000000000000000000000095d89b410000000000000000000000000000000000000000000000000000000023b872dc0000000000000000000000000000000000000000000000000000000023b872dd00000000000000000000000000000000000000000000000000000000313ce56700000000000000000000000000000000000000000000000000000000395093510000000000000000000000000000000000000000000000000000000006fdde0300000000000000000000000000000000000000000000000000000000095ea7b30000000000000000000000000000000000000000000000000000000018160ddd000000000000000000000000ffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000200000000000000000000000000200000000000000000000000000000000000040000000000000000000000000207a65726f00000000000000000000000000000000000000000000000000000045524332303a2064656372656173656420616c6c6f77616e63652062656c6f7708c379a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000840000000000000000000000008a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19bddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef45524332303a206d696e7420746f20746865207a65726f20616464726573730000000000000000000000000000000000000000640000000000000000000000004e487b710000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000000000000000000000008c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925737300000000000000000000000000000000000000000000000000000000000045524332303a20617070726f766520746f20746865207a65726f206164647265726573730000000000000000000000000000000000000000000000000000000045524332303a20617070726f76652066726f6d20746865207a65726f2061646445524332303a20696e73756666696369656e7420616c6c6f77616e6365000000c2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85bffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff00000000000000800200000000000000000000000000000000000000000000000000000000000000616c616e6365000000000000000000000000000000000000000000000000000045524332303a207472616e7366657220616d6f756e7420657863656564732062657373000000000000000000000000000000000000000000000000000000000045524332303a207472616e7366657220746f20746865207a65726f2061646472647265737300000000000000000000000000000000000000000000000000000045524332303a207472616e736665722066726f6d20746865207a65726f2061640000000000000000000000000000000000000000000000000000000000000000b364ddbf62f2a32b5e7a71e5f754a6311e8665c7b7e61bd7d4aae58227db2750", - "linkReferences": {}, - "deployedLinkReferences": {}, - "factoryDeps": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/contracts/MyNFT.sol/MyNFT.dbg.json b/packages/integration-tests/src/playbook/artifacts-zk/contracts/MyNFT.sol/MyNFT.dbg.json deleted file mode 100644 index 973a2e83f9..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/contracts/MyNFT.sol/MyNFT.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../build-info/92cb10df65f6d26368974b9012699389.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/contracts/MyNFT.sol/MyNFT.json b/packages/integration-tests/src/playbook/artifacts-zk/contracts/MyNFT.sol/MyNFT.json deleted file mode 100644 index b7a635f4d8..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/contracts/MyNFT.sol/MyNFT.json +++ /dev/null @@ -1,423 +0,0 @@ -{ - "_format": "hh-zksolc-artifact-1", - "contractName": "MyNFT", - "sourceName": "contracts/MyNFT.sol", - "abi": [ - { - "inputs": [], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "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": "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": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "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": "address", - "name": "recipient", - "type": "address" - }, - { - "internalType": "string", - "name": "tokenURI", - "type": "string" - } - ], - "name": "mintNFT", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "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": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "ownerOf", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "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": "nonpayable", - "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": "nonpayable", - "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": "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": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x00040000000000020005000000000002000000000301001900000060033002700000033d04300197000300000041035500020000000103550000033d0030019d000100000000001f0000000101200190000000520000c13d0000008001000039000000400010043f0000000001000031000000040110008c000005a30000413d0000000201000367000000000101043b000000e001100270000003480210009c0000006d0000a13d000003490210009c000000b50000a13d0000034a0210009c000001430000a13d0000034b0210009c0000021a0000613d0000034c0210009c000002490000613d0000034d0110009c000005a30000c13d0000000001000416000000000110004c000005a30000c13d000000040100008a00000000011000310000036002000041000000200310008c000000000300001900000000030240190000036001100197000000000410004c000000000200a019000003600110009c00000000010300190000000001026019000000000110004c000005a30000c13d00000004010000390000000201100367000000000101043b000003450210009c000005a30000213d0000000702000039000000000202041a00000345022001970000000003000411000000000232004b0000043c0000c13d000000000210004c000004ef0000c13d000000400100043d000000640210003900000361030000410000000000320435000000440210003900000362030000410000000000320435000000240210003900000026030000390000000000320435000003630200004100000000002104350000000402100039000000200300003900000000003204350000033d020000410000033d0310009c0000000001028019000000400110021000000364011001c700000cf1000104300000000001000416000000000110004c000005a30000c13d000000c001000039000000400010043f0000000501000039000000800010043f0000033e01000041000000a00010043f000000400400043d0000033f0140009c000000670000813d0000004001400039000000400010043f0000000301000039000000000514043600000340010000410000000000150435000000800600043d000003410160009c000000a40000a13d0000036a0100004100000000001004350000004101000039000000040010043f0000036b0100004100000cf100010430000003550210009c000000d70000213d0000035b0210009c0000016c0000213d0000035e0210009c000002c80000613d0000035f0110009c000005a30000c13d0000000001000416000000000110004c000005a30000c13d000000040100008a00000000011000310000036002000041000000000310004c000000000300001900000000030240190000036001100197000000000410004c000000000200a019000003600110009c00000000010300190000000001026019000000000110004c000005a30000c13d000000000300041a000000010430019000000001013002700000007f0210018f000000000701001900000000070260190000001f0270008c00000000020000190000000102002039000000000223013f0000000102200190000000af0000c13d000000400100043d0000000002710436000000000440004c000004900000613d0000000000000435000000000370004c0000000003000019000004960000613d000003770400004100000000030000190000000005320019000000000604041a000000000065043500000001044000390000002003300039000000000573004b0000009c0000413d000004960000013d000000000100041a000000010210019000000001011002700000007f0310018f000000000301c0190000001f0130008c00000000010000190000000101002039000000010110018f000000000112004b000000f00000613d0000036a0100004100000000001004350000002201000039000000040010043f0000036b0100004100000cf100010430000003500210009c000001b00000213d000003530210009c000002f00000613d000003540110009c000005a30000c13d0000000001000416000000000110004c000005a30000c13d000000040100008a00000000011000310000036002000041000000000310004c000000000300001900000000030240190000036001100197000000000410004c000000000200a019000003600110009c00000000010300190000000001026019000000000110004c000005a30000c13d0000000701000039000000000101041a0000034501100197000000400200043d00000000001204350000033d010000410000033d0320009c0000000001024019000000400110021000000369011001c700000cf00001042e000003560210009c000001e90000213d000003590210009c000003180000613d0000035a0110009c000005a30000c13d0000000001000416000000000110004c000005a30000c13d00000000010000310cef05e40000040f000500000001001d000400000002001d000300000003001d000000400100043d000200000001001d0cef05ff0000040f000000020400002900000000000404350000000501000029000000040200002900000003030000290cef07140000040f000000000100001900000cf00001042e000000200130008c000500000004001d000400000005001d000001140000413d000200000003001d000300000006001d00000000000004350000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000342011001c700008010020000390cef0cea0000040f0000000102200190000005a30000613d00000003060000290000001f026000390000000502200270000000200360008c0000000002004019000000000301043b00000002010000290000001f01100039000000050110027000000000011300190000000002230019000000000312004b00000005040000290000000405000029000001140000813d000000000002041b0000000102200039000000000312004b000001100000413d0000001f0160008c000003cd0000a13d000300000006001d00000000000004350000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000342011001c700008010020000390cef0cea0000040f0000000102200190000005a30000613d000000200200008a00000003070000290000000002270170000000a003000039000000000101043b000001340000613d00000020050000390000000003000019000000000405001900000080054000390000000005050433000000000051041b000000200540003900000001011000390000002003300039000000000623004b0000012a0000413d000000a003400039000000000272004b0000013e0000813d0000000302700210000000f80220018f000000010400008a000000000224022f000000000242013f0000000003030433000000000223016f000000000021041b0000000101000039000000010270021000000005040000290000000405000029000003d70000013d0000034e0210009c0000032a0000613d0000034f0110009c000005a30000c13d0000000001000416000000000110004c000005a30000c13d000000040100008a00000000011000310000036002000041000000200310008c000000000300001900000000030240190000036001100197000000000410004c000000000200a019000003600110009c00000000010300190000000001026019000000000110004c000005a30000c13d00000004010000390000000201100367000000000101043b0cef0ba60000040f0000002002000039000000400300043d000500000003001d00000000022304360cef05bb0000040f000000050400002900000000014100490000033d020000410000033d0310009c00000000010280190000033d0340009c000000000204401900000040022002100000006001100210000000000121019f00000cf00001042e0000035c0210009c000003680000613d0000035d0110009c000005a30000c13d0000000001000416000000000110004c000005a30000c13d000000040100008a00000000011000310000036002000041000000400310008c000000000300001900000000030240190000036001100197000000000410004c000000000200a019000003600110009c00000000010300190000000001026019000000000110004c000005a30000c13d00000002010003670000000402100370000000000202043b000500000002001d000003450220009c000005a30000213d0000002401100370000000000101043b000400000001001d00000000001004350000000201000039000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f0000000102200190000005a30000613d000000000101043b000000000101041a0000034502100198000004f20000c13d000000400100043d000000640210003900000375030000410000000000320435000000440210003900000376030000410000000000320435000000240210003900000029030000390000000000320435000003630200004100000000002104350000000402100039000000200300003900000000003204350000033d020000410000033d0310009c0000000001028019000000400110021000000364011001c700000cf100010430000003510210009c000003860000613d000003520110009c000005a30000c13d0000000001000416000000000110004c000005a30000c13d000000040100008a00000000011000310000036002000041000000400310008c000000000300001900000000030240190000036001100197000000000410004c000000000200a019000003600110009c00000000010300190000000001026019000000000110004c000005a30000c13d00000002010003670000000402100370000000000202043b000500000002001d000003450220009c000005a30000213d0000002401100370000000000201043b000000000120004c0000000001000019000000010100c039000400000002001d000000000112004b000005a30000c13d00000000020004110000000501000029000000000112004b000004b70000c13d000000400100043d00000044021000390000036e030000410000000000320435000000240210003900000019030000390000000000320435000003630200004100000000002104350000000402100039000000200300003900000000003204350000033d020000410000033d0310009c0000000001028019000000400110021000000367011001c700000cf100010430000003570210009c000003af0000613d000003580110009c000005a30000c13d0000000001000416000000000110004c000005a30000c13d000000040100008a00000000011000310000036002000041000000200310008c000000000300001900000000030240190000036001100197000000000410004c000000000200a019000003600110009c00000000010300190000000001026019000000000110004c000005a30000c13d00000004010000390000000201100367000000000101043b000003450210009c000005a30000213d000000000210004c000004a80000c13d000000400100043d00000064021000390000037103000041000000000032043500000044021000390000037203000041000000000032043500000024021000390000002a030000390000000000320435000003630200004100000000002104350000000402100039000000200300003900000000003204350000033d020000410000033d0310009c0000000001028019000000400110021000000364011001c700000cf1000104300000000001000416000000000110004c000005a30000c13d000000040100008a00000000011000310000036002000041000000400310008c000000000300001900000000030240190000036001100197000000000410004c000000000200a019000003600110009c00000000010300190000000001026019000000000110004c000005a30000c13d00000002020003670000000401200370000000000101043b000003450310009c000005a30000213d0000002402200370000000000202043b000500000002001d000003450220009c000005a30000213d00000000001004350000000501000039000000200010043f000000400200003900000000010000190cef05a50000040f00000005020000290cef066e0000040f000000000101041a000000ff011001900000000001000019000000010100c039000000400200043d00000000001204350000033d010000410000033d0320009c0000000001024019000000400110021000000369011001c700000cf00001042e0000000001000416000000000110004c000005a30000c13d0000000001000031000000040210008a0000036003000041000000400420008c000000000400001900000000040340190000036002200197000000000520004c000000000300a019000003600220009c00000000020400190000000002036019000000000220004c000005a30000c13d00000002020003670000000403200370000000000303043b000500000003001d000003450330009c000005a30000213d0000002403200370000000000303043b000003410430009c000005a30000213d00000023043000390000036005000041000000000614004b0000000006000019000000000605801900000360071001970000036004400197000000000874004b0000000005008019000000000474013f000003600440009c00000000040600190000000004056019000000000440004c000005a30000c13d0000000404300039000000000242034f000000000202043b000003410420009c000000670000213d0000003f04200039000000200500008a000000000454016f000000400700043d0000000004470019000000000574004b00000000050000190000000105004039000003410640009c000000670000213d0000000105500190000000670000c13d0000002405300039000000400040043f000400000007001d00000000032704360000000004520019000000000114004b000005a30000213d0000001f0120018f00000002045003670000000505200272000002980000613d000000000600001900000005076002100000000008730019000000000774034f000000000707043b00000000007804350000000106600039000000000756004b000002900000413d000000000610004c000002a70000613d0000000505500210000000000454034f00000000055300190000000301100210000000000605043300000000061601cf000000000616022f000000000404043b0000010001100089000000000414022f00000000011401cf000000000161019f0000000000150435000000000123001900000000000104350000000701000039000000000101041a00000345011001970000000002000411000000000121004b0000043c0000c13d0000000801000039000000000201041a0000000102200039000300000002001d000000000021041b0000000501000029000000000110004c000005350000c13d000000400100043d00000044021000390000036c03000041000000000032043500000363020000410000000000210435000000240210003900000020030000390000000000320435000000040210003900000000003204350000033d020000410000033d0310009c0000000001028019000000400110021000000367011001c700000cf1000104300000000001000416000000000110004c000005a30000c13d000000040100008a00000000011000310000036002000041000000200310008c000000000300001900000000030240190000036001100197000000000410004c000000000200a019000003600110009c00000000010300190000000001026019000000000110004c000005a30000c13d00000004010000390000000201100367000000000101043b0000037802100197000000000212004b000005a30000c13d0000000102000039000003790310009c000002e70000613d0000037a0310009c000002e70000613d0000037b0110009c00000000020000190000000102006039000000010120018f000000400200043d00000000001204350000033d010000410000033d0320009c0000000001024019000000400110021000000369011001c700000cf00001042e0000000001000416000000000110004c000005a30000c13d000000040100008a00000000011000310000036002000041000000000310004c000000000300001900000000030240190000036001100197000000000410004c000000000200a019000003600110009c00000000010300190000000001026019000000000110004c000005a30000c13d0000000701000039000000000201041a00000345032001970000000005000411000000000353004b0000043c0000c13d0000034302200197000000000021041b0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000344011001c70000800d020000390000000303000039000003460400004100000000060000190cef0ce50000040f0000000101200190000005a30000613d000000000100001900000cf00001042e0000000001000416000000000110004c000005a30000c13d00000000010000310cef05e40000040f000500000001001d000400000002001d0000000002030019000300000002001d00000000010004110cef08cd0000040f0cef06fc0000040f0000000501000029000000040200002900000003030000290cef09820000040f000000000100001900000cf00001042e0000000001000416000000000110004c000005a30000c13d0000000003000031000000040130008a0000036002000041000000800410008c000000000400001900000000040240190000036001100197000000000510004c000000000200a019000003600110009c00000000010400190000000001026019000000000110004c000005a30000c13d00000002010003670000000402100370000000000202043b000500000002001d000003450220009c000005a30000213d0000002402100370000000000202043b000400000002001d000003450220009c000005a30000213d0000006402100370000000000402043b000003410240009c000005a30000213d00000023024000390000036005000041000000000632004b0000000006000019000000000605801900000360073001970000036002200197000000000872004b0000000005008019000000000272013f000003600220009c00000000020600190000000002056019000000000220004c000005a30000c13d0000000402400039000000000221034f000000000202043b0000004401100370000000000101043b000300000001001d00000024014000390cef061d0000040f00000000040100190000000501000029000000040200002900000003030000290cef07140000040f000000000100001900000cf00001042e0000000001000416000000000110004c000005a30000c13d000000040100008a00000000011000310000036002000041000000200310008c000000000300001900000000030240190000036001100197000000000410004c000000000200a019000003600110009c00000000010300190000000001026019000000000110004c000005a30000c13d00000004010000390000000201100367000000000101043b0cef06c00000040f0000034501100197000000400200043d00000000001204350000033d010000410000033d0320009c0000000001024019000000400110021000000369011001c700000cf00001042e0000000001000416000000000110004c000005a30000c13d000000040100008a00000000011000310000036002000041000000000310004c000000000300001900000000030240190000036001100197000000000410004c000000000200a019000003600110009c00000000010300190000000001026019000000000110004c000005a30000c13d0000000104000039000000000304041a000000010530019000000001013002700000007f0210018f000000000701001900000000070260190000001f0270008c00000000020000190000000102002039000000000223013f0000000102200190000000af0000c13d000000400100043d0000000002710436000000000550004c000004710000c13d000001000400008a000000000343016f0000000000320435000000000270004c000000200300003900000000030060190000047e0000013d0000000001000416000000000110004c000005a30000c13d000000040100008a00000000011000310000036002000041000000200310008c000000000300001900000000030240190000036001100197000000000410004c000000000200a019000003600110009c00000000010300190000000001026019000000000110004c000005a30000c13d00000004010000390000000201100367000000000101043b0cef067f0000040f0000034501100197000000400200043d00000000001204350000033d010000410000033d0320009c0000000001024019000000400110021000000369011001c700000cf00001042e000000000160004c0000000001000019000003d10000613d000000a00100043d0000000302600210000000010300008a000000000223022f000000000232013f000000000221016f0000000101600210000000000112019f000000000010041b0000000007040433000003410170009c000000670000213d0000000106000039000000000106041a000000010210019000000001021002700000007f0320018f000000000302c0190000001f0230008c00000000020000190000000102002039000000000121013f0000000101100190000000af0000c13d000000200130008c0000040d0000413d000100000003001d000200000007001d000300000006001d000000010100003900000000001004350000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000342011001c700008010020000390cef0cea0000040f0000000102200190000005a30000613d00000002070000290000001f027000390000000502200270000000200370008c0000000002004019000000000301043b00000001010000290000001f01100039000000050110027000000000011300190000000002230019000000000312004b0000000504000029000000040500002900000003060000290000040d0000813d000000000002041b0000000102200039000000000312004b000004090000413d0000001f0170008c0000044d0000a13d000200000007001d000300000006001d00000000006004350000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000342011001c700008010020000390cef0cea0000040f0000000102200190000005a30000613d000000200200008a000000020700002900000000032701700000002002000039000000000101043b00000005060000290000042d0000613d0000002002000039000000000400001900000000056200190000000005050433000000000051041b000000200220003900000001011000390000002004400039000000000534004b000004250000413d000000000373004b000004380000813d0000000303700210000000f80330018f000000010400008a000000000334022f000000000343013f00000000026200190000000002020433000000000232016f000000000021041b000000010170021000000003060000290000000002060019000004570000013d000000400100043d00000044021000390000037003000041000000000032043500000363020000410000000000210435000000240210003900000020030000390000000000320435000000040210003900000000003204350000033d020000410000033d0310009c0000000001028019000000400110021000000367011001c700000cf100010430000000000170004c0000000001000019000004510000613d00000000010504330000000302700210000000010300008a000000000223022f000000000232013f000000000121016f0000000102700210000000000121019f000000000016041b0000000701000039000000000201041a00000343032001970000000006000411000000000363019f000000000031041b0000033d0100004100000000030004140000033d0430009c0000000001034019000000c00110021000000344011001c700000345052001970000800d02000039000000030300003900000346040000410cef0ce50000040f0000000101200190000005a30000613d000000200100003900000100001004430000012000000443000003470100004100000cf00001042e0000000000400435000000000370004c00000000030000190000047e0000613d0000036f0400004100000000030000190000000005320019000000000604041a000000000065043500000001044000390000002003300039000000000573004b000004770000413d0000002002300039000500000001001d0cef060a0000040f000000400100043d000400000001001d00000005020000290cef05ce0000040f000000040400002900000000014100490000033d020000410000033d0310009c00000000010280190000033d0340009c000000000204401900000040022002100000006001100210000000000121019f00000cf00001042e000001000400008a000000000343016f0000000000320435000000000270004c000000200300003900000000030060190000002002300039000500000001001d0cef060a0000040f000000400100043d000400000001001d00000005020000290cef05ce0000040f000000040400002900000000014100490000033d020000410000033d0310009c00000000010280190000033d0340009c000000000204401900000040022002100000006001100210000000000121019f00000cf00001042e00000000001004350000000301000039000000200010043f000000400200003900000000010000190cef05a50000040f000000000101041a000000400200043d00000000001204350000033d010000410000033d0320009c0000000001024019000000400110021000000369011001c700000cf00001042e000300000002001d00000000002004350000000501000039000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f0000000102200190000005a30000613d000000000101043b00000005020000290000000000200435000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f0000000102200190000005a30000613d000000000101043b000000000201041a000001000300008a000000000232016f0000000403000029000000000232019f000000000021041b000000400100043d00000000003104350000033d0200004100000000030004140000033d0430009c00000000030280190000033d0410009c00000000010280190000004001100210000000c002300210000000000112019f00000342011001c70000800d0200003900000003030000390000036d04000041000000030500002900000005060000290cef0ce50000040f0000000101200190000003160000c13d000005a30000013d0cef06580000040f000000000100001900000cf00001042e0000000501000029000000000121004b0000050a0000c13d000000400100043d000000640210003900000373030000410000000000320435000000440210003900000374030000410000000000320435000000240210003900000021030000390000000000320435000003630200004100000000002104350000000402100039000000200300003900000000003204350000033d020000410000033d0310009c0000000001028019000000400110021000000364011001c700000cf10001043000000001010000390000000003000411000300000003001d000000000323004b000005150000c13d0cef06a80000040f000000050100002900000004020000290cef0a680000040f000000000100001900000cf00001042e00000000002004350000000501000039000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f0000000102200190000005a30000613d000000000101043b000000030200002900000345022001970000000000200435000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f0000000102200190000005a30000613d000000000101043b000000000101041a000000ff0110018f0000050f0000013d000000030100002900000000001004350000000201000039000200000001001d000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f0000000102200190000005a30000613d000000000101043b000000000101041a0000034501100198000005610000c13d000000050100002900000000001004350000000301000039000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f0000000102200190000005a30000613d000000000101043b000000000201041a000000010300008a000000000332004b000005730000c13d0000036a0100004100000000001004350000001101000039000000040010043f0000036b0100004100000cf100010430000000400100043d00000044021000390000036603000041000000000032043500000024021000390000001c030000390000000000320435000003630200004100000000002104350000000402100039000000200300003900000000003204350000033d020000410000033d0310009c0000000001028019000000400110021000000367011001c700000cf1000104300000000102200039000000000021041b000000030100002900000000001004350000000201000029000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f0000000102200190000005a30000613d000000000101043b000000000201041a00000343022001970000000506000029000000000262019f000000000021041b0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000344011001c70000800d0200003900000004030000390000036804000041000000000500001900000003070000290cef0ce50000040f0000000101200190000005a30000613d000000030100002900000004020000290cef0c320000040f000000400100043d000000030200002900000000002104350000033d020000410000033d0310009c0000000001028019000000400110021000000369011001c700000cf00001042e000000000100001900000cf1000104300000033d030000410000033d0410009c000000000103801900000040011002100000033d0420009c00000000020380190000006002200210000000000112019f00000000020004140000033d0420009c0000000002038019000000c002200210000000000112019f00000344011001c700008010020000390cef0cea0000040f0000000102200190000005b90000613d000000000101043b000000000001042d000000000100001900000cf10001043000000000030104330000000002320436000000000430004c000005c70000613d000000000400001900000000052400190000002004400039000000000614001900000000060604330000000000650435000000000534004b000005c00000413d000000000123001900000000000104350000001f01300039000000200300008a000000000131016f0000000001120019000000000001042d00000020030000390000000004310436000000000302043300000000003404350000004001100039000000000430004c000005dd0000613d000000000400001900000000051400190000002004400039000000000624001900000000060604330000000000650435000000000534004b000005d60000413d000000000213001900000000000204350000001f02300039000000200300008a000000000232016f0000000001120019000000000001042d000000040110008a00000360020000410000005f0310008c000000000300001900000000030220190000036001100197000000000410004c0000000002008019000003600110009c00000000010300190000000001026019000000000110004c000005fd0000613d00000002030003670000000401300370000000000101043b000003450210009c000005fd0000213d0000002402300370000000000202043b000003450420009c000005fd0000213d0000004403300370000000000303043b000000000001042d000000000100001900000cf1000104300000037c0210009c000006040000813d0000002001100039000000400010043f000000000001042d0000036a0100004100000000001004350000004101000039000000040010043f0000036b0100004100000cf1000104300000001f02200039000000200300008a000000000232016f0000000001120019000000000221004b00000000020000190000000102004039000003410310009c000006170000213d0000000102200190000006170000c13d000000400010043f000000000001042d0000036a0100004100000000001004350000004101000039000000040010043f0000036b0100004100000cf10001043000000000040100190000037d0120009c000006500000813d0000003f01200039000000200500008a000000000551016f000000400100043d0000000005510019000000000615004b00000000060000190000000106004039000003410750009c000006500000213d0000000106600190000006500000c13d000000400050043f00000000052104360000000006420019000000000336004b000006560000213d0000001f0320018f000000020440036700000005062002720000063e0000613d000000000700001900000005087002100000000009850019000000000884034f000000000808043b00000000008904350000000107700039000000000867004b000006360000413d000000000730004c0000064d0000613d0000000506600210000000000464034f00000000066500190000000303300210000000000706043300000000073701cf000000000737022f000000000404043b0000010003300089000000000434022f00000000033401cf000000000373019f000000000036043500000000022500190000000000020435000000000001042d0000036a0100004100000000001004350000004101000039000000040010043f0000036b0100004100000cf100010430000000000100001900000cf10001043000000345061001970000000701000039000000000201041a0000034303200197000000000363019f000000000031041b0000033d0100004100000000030004140000033d0430009c0000000001034019000000c00110021000000344011001c700000345052001970000800d02000039000000030300003900000346040000410cef0ce50000040f00000001012001900000066c0000613d000000000001042d000000000100001900000cf10001043000000345022001970000000000200435000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f00000001022001900000067d0000613d000000000101043b000000000001042d000000000100001900000cf10001043000000000001004350000000201000039000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f0000000102200190000006910000613d000000000101043b000000000101041a0000034501100198000006930000613d000000000001042d000000000100001900000cf100010430000000400100043d000000640210003900000375030000410000000000320435000000440210003900000376030000410000000000320435000000240210003900000029030000390000000000320435000003630200004100000000002104350000000402100039000000200300003900000000003204350000033d020000410000033d0310009c0000000001028019000000400110021000000364011001c700000cf100010430000000000110004c000006ab0000613d000000000001042d000000400100043d00000064021000390000037e03000041000000000032043500000044021000390000037f030000410000000000320435000000240210003900000038030000390000000000320435000003630200004100000000002104350000000402100039000000200300003900000000003204350000033d020000410000033d0310009c0000000001028019000000400110021000000364011001c700000cf1000104300001000000000002000100000001001d00000000001004350000000201000039000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f0000000102200190000006e50000613d000000000101043b000000000101041a0000034501100198000006e70000613d000000010100002900000000001004350000000401000039000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f0000000102200190000006e50000613d000000000101043b000000000101041a0000034501100197000000000001042d000000000100001900000cf100010430000000400100043d00000064021000390000038003000041000000000032043500000044021000390000038103000041000000000032043500000024021000390000002c030000390000000000320435000003630200004100000000002104350000000402100039000000200300003900000000003204350000033d020000410000033d0310009c0000000001028019000000400110021000000364011001c700000cf100010430000000000110004c000006ff0000613d000000000001042d000000400100043d000000640210003900000382030000410000000000320435000000440210003900000383030000410000000000320435000000240210003900000031030000390000000000320435000003630200004100000000002104350000000402100039000000200300003900000000003204350000033d020000410000033d0310009c0000000001028019000000400110021000000364011001c700000cf1000104300008000000000002000200000004001d000400000002001d000500000001001d000800000003001d00000000003004350000000201000039000700000001001d000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f0000000102200190000008290000613d000000000101043b000000000101041a0000034501100198000008460000613d000000080100002900000000001004350000000701000029000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f0000000102200190000008290000613d000000000101043b000000000101041a00000345011001980000082b0000613d00000000020004110000034502200197000600000002001d000000000212004b000007870000613d00000000001004350000000501000039000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f0000000102200190000008290000613d000000000101043b00000006020000290000000000200435000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f0000000102200190000008290000613d000000000101043b000000000101041a000000ff01100190000007870000c13d000000080100002900000000001004350000000701000029000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f0000000102200190000008290000613d000000000101043b000000000101041a0000034501100198000008960000613d000000080100002900000000001004350000000401000039000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f0000000102200190000008290000613d000000000101043b000000000101041a00000345011001970000000602000029000000000121004b000008ab0000c13d000000080100002900000000001004350000000701000029000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f0000000102200190000008290000613d000000000101043b000000000101041a0000034501100198000600000001001d0000082b0000613d000000050100002900000345011001970000000602000029000000000112004b0000085b0000c13d00000004010000290000034501100198000300000001001d000008700000613d000000080100002900000000001004350000000401000039000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f0000000102200190000008290000613d000000000101043b000000000201041a0000034302200197000000000021041b000000080100002900000000001004350000000701000029000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f0000000102200190000008290000613d000000000101043b000000000101041a00000345051001980000082b0000613d0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000344011001c70000800d0200003900000004030000390000038604000041000000000600001900000008070000290cef0ce50000040f0000000101200190000008290000613d000000060100002900000000001004350000000301000039000100000001001d000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f0000000102200190000008290000613d000000000101043b000000000201041a000000000320004c000008400000613d000000010220008a000000000021041b000000030100002900000000001004350000000101000029000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f0000000102200190000008290000613d000000000101043b000000000201041a000000010300008a000000000332004b000008400000613d0000000102200039000000000021041b000000080100002900000000001004350000000701000029000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f0000000102200190000008290000613d000000000101043b000000000201041a00000343022001970000000306000029000000000262019f000000000021041b0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000344011001c70000800d0200003900000004030000390000036804000041000000060500002900000008070000290cef0ce50000040f0000000101200190000008290000613d00000005010000290000000402000029000000080300002900000002040000290cef0ab80000040f000000000110004c000008850000613d000000000001042d000000000100001900000cf100010430000000400100043d000000640210003900000375030000410000000000320435000000440210003900000376030000410000000000320435000000240210003900000029030000390000000000320435000003630200004100000000002104350000000402100039000000200300003900000000003204350000033d020000410000033d0310009c0000000001028019000000400110021000000364011001c700000cf1000104300000036a0100004100000000001004350000001101000039000000040010043f0000036b0100004100000cf100010430000000400100043d00000064021000390000038003000041000000000032043500000044021000390000038903000041000000000032043500000024021000390000002c030000390000000000320435000003630200004100000000002104350000000402100039000000200300003900000000003204350000033d020000410000033d0310009c0000000001028019000000400110021000000364011001c700000cf100010430000000400100043d000000640210003900000384030000410000000000320435000000440210003900000385030000410000000000320435000000240210003900000025030000390000000000320435000003630200004100000000002104350000000402100039000000200300003900000000003204350000033d020000410000033d0310009c0000000001028019000000400110021000000364011001c700000cf100010430000000400100043d000000640210003900000387030000410000000000320435000000440210003900000388030000410000000000320435000000240210003900000024030000390000000000320435000003630200004100000000002104350000000402100039000000200300003900000000003204350000033d020000410000033d0310009c0000000001028019000000400110021000000364011001c700000cf100010430000000400200043d000800000002001d0000036301000041000000000012043500000004012000390cef08c00000040f000000080400002900000000014100490000033d020000410000033d0310009c00000000010280190000033d0340009c000000000204401900000040022002100000006001100210000000000121019f00000cf100010430000000400100043d00000064021000390000038003000041000000000032043500000044021000390000038103000041000000000032043500000024021000390000002c030000390000000000320435000003630200004100000000002104350000000402100039000000200300003900000000003204350000033d020000410000033d0310009c0000000001028019000000400110021000000364011001c700000cf100010430000000400100043d000000640210003900000382030000410000000000320435000000440210003900000383030000410000000000320435000000240210003900000031030000390000000000320435000003630200004100000000002104350000000402100039000000200300003900000000003204350000033d020000410000033d0310009c0000000001028019000000400110021000000364011001c700000cf10001043000000060021000390000038a03000041000000000032043500000040021000390000038b030000410000000000320435000000200210003900000032030000390000000000320435000000200200003900000000002104350000008001100039000000000001042d0003000000000002000100000001001d000300000002001d00000000002004350000000201000039000200000001001d000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f0000000102200190000009410000613d000000000101043b000000000101041a0000034501100198000009430000613d000000030100002900000000001004350000000201000029000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f0000000102200190000009410000613d000000000101043b000000000101041a0000034502100198000009580000613d000000010100003900000001030000290000034503300197000100000003001d000000000323004b000009400000613d00000000002004350000000501000039000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f0000000102200190000009410000613d000000000101043b00000001020000290000000000200435000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f0000000102200190000009410000613d000000000101043b000000000101041a000000ff01100190000009400000c13d000000030100002900000000001004350000000201000029000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f0000000102200190000009410000613d000000000101043b000000000101041a00000345011001980000096d0000613d000000030100002900000000001004350000000401000039000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f0000000102200190000009410000613d000000000101043b000000000101041a00000345011001970000000102000029000000000121004b00000000010000190000000101006039000000000001042d000000000100001900000cf100010430000000400100043d00000064021000390000038003000041000000000032043500000044021000390000038903000041000000000032043500000024021000390000002c030000390000000000320435000003630200004100000000002104350000000402100039000000200300003900000000003204350000033d020000410000033d0310009c0000000001028019000000400110021000000364011001c700000cf100010430000000400100043d000000640210003900000375030000410000000000320435000000440210003900000376030000410000000000320435000000240210003900000029030000390000000000320435000003630200004100000000002104350000000402100039000000200300003900000000003204350000033d020000410000033d0310009c0000000001028019000000400110021000000364011001c700000cf100010430000000400100043d00000064021000390000038003000041000000000032043500000044021000390000038103000041000000000032043500000024021000390000002c030000390000000000320435000003630200004100000000002104350000000402100039000000200300003900000000003204350000033d020000410000033d0310009c0000000001028019000000400110021000000364011001c700000cf1000104300005000000000002000100000002001d000200000001001d000500000003001d00000000003004350000000201000039000300000001001d000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f000000010220019000000a210000613d000000000101043b000000000101041a0000034501100198000400000001001d00000a230000613d000000020100002900000345011001970000000402000029000000000112004b00000a3e0000c13d00000001010000290000034501100198000200000001001d00000a530000613d000000050100002900000000001004350000000401000039000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f000000010220019000000a210000613d000000000101043b000000000201041a0000034302200197000000000021041b000000050100002900000000001004350000000301000029000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f000000010220019000000a210000613d000000000101043b000000000101041a000003450510019800000a230000613d0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000344011001c70000800d0200003900000004030000390000038604000041000000000600001900000005070000290cef0ce50000040f000000010120019000000a210000613d000000040100002900000000001004350000000301000039000100000001001d000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f000000010220019000000a210000613d000000000101043b000000000201041a000000000320004c00000a380000613d000000010220008a000000000021041b000000020100002900000000001004350000000101000029000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f000000010220019000000a210000613d000000000101043b000000000201041a000000010300008a000000000332004b00000a380000613d0000000102200039000000000021041b000000050100002900000000001004350000000301000029000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f000000010220019000000a210000613d000000000101043b000000000201041a00000343022001970000000206000029000000000262019f000000000021041b0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000344011001c70000800d0200003900000004030000390000036804000041000000040500002900000005070000290cef0ce50000040f000000010120019000000a210000613d000000000001042d000000000100001900000cf100010430000000400100043d000000640210003900000375030000410000000000320435000000440210003900000376030000410000000000320435000000240210003900000029030000390000000000320435000003630200004100000000002104350000000402100039000000200300003900000000003204350000033d020000410000033d0310009c0000000001028019000000400110021000000364011001c700000cf1000104300000036a0100004100000000001004350000001101000039000000040010043f0000036b0100004100000cf100010430000000400100043d000000640210003900000384030000410000000000320435000000440210003900000385030000410000000000320435000000240210003900000025030000390000000000320435000003630200004100000000002104350000000402100039000000200300003900000000003204350000033d020000410000033d0310009c0000000001028019000000400110021000000364011001c700000cf100010430000000400100043d000000640210003900000387030000410000000000320435000000440210003900000388030000410000000000320435000000240210003900000024030000390000000000320435000003630200004100000000002104350000000402100039000000200300003900000000003204350000033d020000410000033d0310009c0000000001028019000000400110021000000364011001c700000cf1000104300002000000000002000100000001001d000200000002001d00000000002004350000000401000039000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f000000010220019000000aa10000613d00000001020000290000034503200197000000000101043b000000000201041a0000034302200197000100000003001d000000000232019f000000000021041b000000020100002900000000001004350000000201000039000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f000000010220019000000aa10000613d0000000207000029000000000101043b000000000101041a000003450510019800000aa30000613d0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000344011001c70000800d020000390000000403000039000003860400004100000001060000290cef0ce50000040f000000010120019000000aa10000613d000000000001042d000000000100001900000cf100010430000000400100043d000000640210003900000375030000410000000000320435000000440210003900000376030000410000000000320435000000240210003900000029030000390000000000320435000003630200004100000000002104350000000402100039000000200300003900000000003204350000033d020000410000033d0310009c0000000001028019000000400110021000000364011001c700000cf1000104300006000000000002000400000004001d000200000003001d000100000001001d0000038c010000410000000000100439000300000002001d00000004002004430000033d0100004100000000020004140000033d0320009c0000000001024019000000c0011002100000038d011001c700008002020000390cef0cea0000040f000000000301034f000000010120019000000b530000613d0000000101000039000000000203043b000000000220004c00000b520000613d000000400a00043d0000038e0100004100000000001a04350000006402a000390000000001000414000000800300003900000000003204350000004402a0003900000002030000290000000000320435000000010200002900000345022001970000002403a000390000000000230435000000000200041100000345022001970000000403a000390000000000230435000000040800002900000000030804330000008402a000390000000000320435000000a404a0003900000003020000290000034502200197000000000530004c00000af20000613d000000000500001900000000064500190000002005500039000000000785001900000000070704330000000000760435000000000635004b00000aeb0000413d00000000044300190000000000040435000000040420008c00000aff0000c13d0000000001000415000000060110008a00000020011000c90000000103000031000000200230008c00000020040000390000000004034019000600000000001d00000b3c0000013d0000001f03300039000000200400008a000000000343016f0000033d040000410000033d05a0009c000000000504001900000000050a40190000004005500210000000a4033000390000033d0630009c00000000030480190000006003300210000000000353019f0000033d0510009c0000000001048019000000c001100210000000000113019f00040000000a001d0cef0ce50000040f000000040a000029000000000301001900000060033002700000033d03300197000000200430008c000000200400003900000000040340190000001f0540018f000000050640027200000b250000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b00000b1d0000413d000000000750004c00000b340000613d0000000506600210000000000761034f00000000066a00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f00030000000103550000000001000415000000050110008a00000020011000c9000500000000001d000000010220019000000b550000613d0000001f02400039000000600420018f0000000002a40019000000000442004b00000000040000190000000104004039000003410520009c00000b970000213d000000010440019000000b970000c13d000000400020043f000000200230008c00000b530000413d00000000020a04330000037803200197000000000323004b00000b530000c13d000000200110011a000000000102001f0000038e0120009c00000000010000190000000101006039000000000001042d000000000100001900000cf1000104300000006001000039000000000230004c00000b6c0000c13d0000000021010434000000000310004c00000b9d0000c13d000000400200043d000400000002001d0000036301000041000000000012043500000004012000390cef08c00000040f000000040400002900000000014100490000033d020000410000033d0310009c00000000010280190000033d0340009c000000000204401900000040022002100000006001100210000000000121019f00000cf1000104300000003f013000390000038f02100197000000400100043d0000000002210019000000000412004b00000000040000190000000104004039000003410520009c00000b970000213d000000010440019000000b970000c13d000000400020043f0000000002310436000000030300036700000001050000310000001f0450018f000000050550027200000b870000613d000000000600001900000005076002100000000008720019000000000773034f000000000707043b00000000007804350000000106600039000000000756004b00000b7f0000413d000000000640004c00000b580000613d0000000505500210000000000353034f00000000025200190000000304400210000000000502043300000000054501cf000000000545022f000000000303043b0000010004400089000000000343022f00000000034301cf000000000353019f000000000032043500000b580000013d0000036a0100004100000000001004350000004101000039000000040010043f0000036b0100004100000cf1000104300000033d030000410000033d0420009c00000000020380190000033d0410009c000000000103801900000060011002100000004002200210000000000121019f00000cf1000104300003000000000002000300000001001d00000000001004350000000201000039000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f000000010220019000000c0f0000613d000000000101043b000000000101041a000003450110019800000c170000613d000000030100002900000000001004350000000601000039000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f000000010220019000000c0f0000613d000000000101043b000000000201041a000000010320019000000001042002700000007f0540018f000000000604001900000000060560190000001f0460008c00000000040000190000000104002039000000010440018f000000000443004b00000c2c0000c13d000000400500043d0000000004650436000000000330004c00000bf60000613d000100000004001d000200000006001d000300000005001d00000000001004350000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000342011001c700008010020000390cef0cea0000040f000000010220019000000c0f0000613d0000000206000029000000000260004c00000000020000190000000305000029000000010700002900000bfc0000613d000000000101043b00000000020000190000000003270019000000000401041a000000000043043500000001011000390000002002200039000000000362004b00000bee0000413d00000bfc0000013d000001000100008a000000000112016f0000000000140435000000000160004c000000200200003900000000020060190000003f01200039000000200200008a000000000221016f0000000001520019000000000221004b00000000020000190000000102004039000003410310009c00000c110000213d000000010220019000000c110000c13d000000400010043f000003900210009c00000c110000213d0000002002100039000000400020043f00000000000104350000000001050019000000000001042d000000000100001900000cf1000104300000036a0100004100000000001004350000004101000039000000040010043f0000036b0100004100000cf100010430000000400100043d000000640210003900000391030000410000000000320435000000440210003900000392030000410000000000320435000000240210003900000031030000390000000000320435000003630200004100000000002104350000000402100039000000200300003900000000003204350000033d020000410000033d0310009c0000000001028019000000400110021000000364011001c700000cf1000104300000036a0100004100000000001004350000002201000039000000040010043f0000036b0100004100000cf1000104300005000000000002000500000002001d000400000001001d00000000001004350000000201000039000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f000000010220019000000cc20000613d000000000101043b000000000101041a000003450110019800000cc40000613d000000040100002900000000001004350000000601000039000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f000000010220019000000cc20000613d000000000401043b000000050100002900000000650104340000037d0150009c00000cd90000813d000000000104041a000000010210019000000001011002700000007f0310018f000000000301c0190000001f0130008c00000000010000190000000101002039000000010110018f000000000112004b00000cdf0000c13d000000200130008c000400000004001d000300000005001d00000c880000413d000100000003001d000200000006001d00000000004004350000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000342011001c700008010020000390cef0cea0000040f000000010220019000000cc20000613d00000003050000290000001f025000390000000502200270000000200350008c0000000002004019000000000301043b00000001010000290000001f01100039000000050110027000000000011300190000000002230019000000000312004b0000000404000029000000020600002900000c880000813d000000000002041b0000000102200039000000000312004b00000c840000413d0000001f0150008c00000cb50000a13d00000000004004350000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000342011001c700008010020000390cef0cea0000040f000000010220019000000cc20000613d000000200200008a000000030700002900000000032701700000002002000039000000000101043b000000050600002900000ca60000613d0000002002000039000000000400001900000000056200190000000005050433000000000051041b000000200220003900000001011000390000002004400039000000000534004b00000c9e0000413d000000000373004b00000cb10000813d0000000303700210000000f80330018f000000010400008a000000000334022f000000000343013f00000000026200190000000002020433000000000232016f000000000021041b00000001010000390000000102700210000000040400002900000cbf0000013d000000000150004c000000000100001900000cb90000613d00000000010604330000000302500210000000010300008a000000000223022f000000000232013f000000000221016f0000000101500210000000000112019f000000000014041b000000000001042d000000000100001900000cf100010430000000400100043d00000064021000390000039303000041000000000032043500000044021000390000039403000041000000000032043500000024021000390000002e030000390000000000320435000003630200004100000000002104350000000402100039000000200300003900000000003204350000033d020000410000033d0310009c0000000001028019000000400110021000000364011001c700000cf1000104300000036a0100004100000000001004350000004101000039000000040010043f0000036b0100004100000cf1000104300000036a0100004100000000001004350000002201000039000000040010043f0000036b0100004100000cf10001043000000ce8002104210000000102000039000000000001042d0000000002000019000000000001042d00000ced002104230000000102000039000000000001042d0000000002000019000000000001042d00000cef0000043200000cf00001042e00000cf1000104300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff4d794e4654000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffc04e46540000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff0200000000000000000000000000000000000020000000000000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0000000020000000000000000000000000000004000000100000000000000000000000000000000000000000000000000000000000000000000000000715018a500000000000000000000000000000000000000000000000000000000b88d4fdd00000000000000000000000000000000000000000000000000000000e985e9c400000000000000000000000000000000000000000000000000000000e985e9c500000000000000000000000000000000000000000000000000000000eacabe1400000000000000000000000000000000000000000000000000000000f2fde38b00000000000000000000000000000000000000000000000000000000b88d4fde00000000000000000000000000000000000000000000000000000000c87b56dd0000000000000000000000000000000000000000000000000000000095d89b400000000000000000000000000000000000000000000000000000000095d89b4100000000000000000000000000000000000000000000000000000000a22cb46500000000000000000000000000000000000000000000000000000000715018a6000000000000000000000000000000000000000000000000000000008da5cb5b0000000000000000000000000000000000000000000000000000000023b872dc000000000000000000000000000000000000000000000000000000006352211d000000000000000000000000000000000000000000000000000000006352211e0000000000000000000000000000000000000000000000000000000070a082310000000000000000000000000000000000000000000000000000000023b872dd0000000000000000000000000000000000000000000000000000000042842e0e00000000000000000000000000000000000000000000000000000000081812fb00000000000000000000000000000000000000000000000000000000081812fc00000000000000000000000000000000000000000000000000000000095ea7b30000000000000000000000000000000000000000000000000000000001ffc9a70000000000000000000000000000000000000000000000000000000006fdde03800000000000000000000000000000000000000000000000000000000000000064647265737300000000000000000000000000000000000000000000000000004f776e61626c653a206e6577206f776e657220697320746865207a65726f206108c379a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008400000000000000000000000002000000000000000000000000000000000000400000000000000000000000004552433732313a20746f6b656e20616c7265616479206d696e746564000000000000000000000000000000000000000000000064000000000000000000000000ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef00000000000000000000000000000000000000200000000000000000000000004e487b710000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000000000000000000000004552433732313a206d696e7420746f20746865207a65726f206164647265737317307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c314552433732313a20617070726f766520746f2063616c6c657200000000000000b10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf64f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572726f2061646472657373000000000000000000000000000000000000000000004552433732313a2062616c616e636520717565727920666f7220746865207a6572000000000000000000000000000000000000000000000000000000000000004552433732313a20617070726f76616c20746f2063757272656e74206f776e65656e7420746f6b656e00000000000000000000000000000000000000000000004552433732313a206f776e657220717565727920666f72206e6f6e6578697374290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563ffffffff0000000000000000000000000000000000000000000000000000000080ac58cd000000000000000000000000000000000000000000000000000000005b5e139f0000000000000000000000000000000000000000000000000000000001ffc9a700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffe000000000000000000000000000000000000000000000000100000000000000006e6572206e6f7220617070726f76656420666f7220616c6c00000000000000004552433732313a20617070726f76652063616c6c6572206973206e6f74206f77697374656e7420746f6b656e00000000000000000000000000000000000000004552433732313a20617070726f76656420717565727920666f72206e6f6e6578776e6572206e6f7220617070726f7665640000000000000000000000000000004552433732313a207472616e736665722063616c6c6572206973206e6f74206f6f776e65720000000000000000000000000000000000000000000000000000004552433732313a207472616e736665722066726f6d20696e636f7272656374208c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92572657373000000000000000000000000000000000000000000000000000000004552433732313a207472616e7366657220746f20746865207a65726f206164644552433732313a206f70657261746f7220717565727920666f72206e6f6e657863656976657220696d706c656d656e74657200000000000000000000000000004552433732313a207472616e7366657220746f206e6f6e2045524337323152651806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b830200000200000000000000000000000000000024000000000000000000000000150b7a020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001ffffffe0000000000000000000000000000000000000000000000000ffffffffffffffdf6e6f6e6578697374656e7420746f6b656e00000000000000000000000000000045524337323155524953746f726167653a2055524920717565727920666f72206578697374656e7420746f6b656e00000000000000000000000000000000000045524337323155524953746f726167653a2055524920736574206f66206e6f6e0000000000000000000000000000000000000000000000000000000000000000311de4497f01547d67160eca78d4da43bcb08e5f202edd55fee501e4eae35cb1", - "deployedBytecode": "0x00040000000000020005000000000002000000000301001900000060033002700000033d04300197000300000041035500020000000103550000033d0030019d000100000000001f0000000101200190000000520000c13d0000008001000039000000400010043f0000000001000031000000040110008c000005a30000413d0000000201000367000000000101043b000000e001100270000003480210009c0000006d0000a13d000003490210009c000000b50000a13d0000034a0210009c000001430000a13d0000034b0210009c0000021a0000613d0000034c0210009c000002490000613d0000034d0110009c000005a30000c13d0000000001000416000000000110004c000005a30000c13d000000040100008a00000000011000310000036002000041000000200310008c000000000300001900000000030240190000036001100197000000000410004c000000000200a019000003600110009c00000000010300190000000001026019000000000110004c000005a30000c13d00000004010000390000000201100367000000000101043b000003450210009c000005a30000213d0000000702000039000000000202041a00000345022001970000000003000411000000000232004b0000043c0000c13d000000000210004c000004ef0000c13d000000400100043d000000640210003900000361030000410000000000320435000000440210003900000362030000410000000000320435000000240210003900000026030000390000000000320435000003630200004100000000002104350000000402100039000000200300003900000000003204350000033d020000410000033d0310009c0000000001028019000000400110021000000364011001c700000cf1000104300000000001000416000000000110004c000005a30000c13d000000c001000039000000400010043f0000000501000039000000800010043f0000033e01000041000000a00010043f000000400400043d0000033f0140009c000000670000813d0000004001400039000000400010043f0000000301000039000000000514043600000340010000410000000000150435000000800600043d000003410160009c000000a40000a13d0000036a0100004100000000001004350000004101000039000000040010043f0000036b0100004100000cf100010430000003550210009c000000d70000213d0000035b0210009c0000016c0000213d0000035e0210009c000002c80000613d0000035f0110009c000005a30000c13d0000000001000416000000000110004c000005a30000c13d000000040100008a00000000011000310000036002000041000000000310004c000000000300001900000000030240190000036001100197000000000410004c000000000200a019000003600110009c00000000010300190000000001026019000000000110004c000005a30000c13d000000000300041a000000010430019000000001013002700000007f0210018f000000000701001900000000070260190000001f0270008c00000000020000190000000102002039000000000223013f0000000102200190000000af0000c13d000000400100043d0000000002710436000000000440004c000004900000613d0000000000000435000000000370004c0000000003000019000004960000613d000003770400004100000000030000190000000005320019000000000604041a000000000065043500000001044000390000002003300039000000000573004b0000009c0000413d000004960000013d000000000100041a000000010210019000000001011002700000007f0310018f000000000301c0190000001f0130008c00000000010000190000000101002039000000010110018f000000000112004b000000f00000613d0000036a0100004100000000001004350000002201000039000000040010043f0000036b0100004100000cf100010430000003500210009c000001b00000213d000003530210009c000002f00000613d000003540110009c000005a30000c13d0000000001000416000000000110004c000005a30000c13d000000040100008a00000000011000310000036002000041000000000310004c000000000300001900000000030240190000036001100197000000000410004c000000000200a019000003600110009c00000000010300190000000001026019000000000110004c000005a30000c13d0000000701000039000000000101041a0000034501100197000000400200043d00000000001204350000033d010000410000033d0320009c0000000001024019000000400110021000000369011001c700000cf00001042e000003560210009c000001e90000213d000003590210009c000003180000613d0000035a0110009c000005a30000c13d0000000001000416000000000110004c000005a30000c13d00000000010000310cef05e40000040f000500000001001d000400000002001d000300000003001d000000400100043d000200000001001d0cef05ff0000040f000000020400002900000000000404350000000501000029000000040200002900000003030000290cef07140000040f000000000100001900000cf00001042e000000200130008c000500000004001d000400000005001d000001140000413d000200000003001d000300000006001d00000000000004350000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000342011001c700008010020000390cef0cea0000040f0000000102200190000005a30000613d00000003060000290000001f026000390000000502200270000000200360008c0000000002004019000000000301043b00000002010000290000001f01100039000000050110027000000000011300190000000002230019000000000312004b00000005040000290000000405000029000001140000813d000000000002041b0000000102200039000000000312004b000001100000413d0000001f0160008c000003cd0000a13d000300000006001d00000000000004350000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000342011001c700008010020000390cef0cea0000040f0000000102200190000005a30000613d000000200200008a00000003070000290000000002270170000000a003000039000000000101043b000001340000613d00000020050000390000000003000019000000000405001900000080054000390000000005050433000000000051041b000000200540003900000001011000390000002003300039000000000623004b0000012a0000413d000000a003400039000000000272004b0000013e0000813d0000000302700210000000f80220018f000000010400008a000000000224022f000000000242013f0000000003030433000000000223016f000000000021041b0000000101000039000000010270021000000005040000290000000405000029000003d70000013d0000034e0210009c0000032a0000613d0000034f0110009c000005a30000c13d0000000001000416000000000110004c000005a30000c13d000000040100008a00000000011000310000036002000041000000200310008c000000000300001900000000030240190000036001100197000000000410004c000000000200a019000003600110009c00000000010300190000000001026019000000000110004c000005a30000c13d00000004010000390000000201100367000000000101043b0cef0ba60000040f0000002002000039000000400300043d000500000003001d00000000022304360cef05bb0000040f000000050400002900000000014100490000033d020000410000033d0310009c00000000010280190000033d0340009c000000000204401900000040022002100000006001100210000000000121019f00000cf00001042e0000035c0210009c000003680000613d0000035d0110009c000005a30000c13d0000000001000416000000000110004c000005a30000c13d000000040100008a00000000011000310000036002000041000000400310008c000000000300001900000000030240190000036001100197000000000410004c000000000200a019000003600110009c00000000010300190000000001026019000000000110004c000005a30000c13d00000002010003670000000402100370000000000202043b000500000002001d000003450220009c000005a30000213d0000002401100370000000000101043b000400000001001d00000000001004350000000201000039000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f0000000102200190000005a30000613d000000000101043b000000000101041a0000034502100198000004f20000c13d000000400100043d000000640210003900000375030000410000000000320435000000440210003900000376030000410000000000320435000000240210003900000029030000390000000000320435000003630200004100000000002104350000000402100039000000200300003900000000003204350000033d020000410000033d0310009c0000000001028019000000400110021000000364011001c700000cf100010430000003510210009c000003860000613d000003520110009c000005a30000c13d0000000001000416000000000110004c000005a30000c13d000000040100008a00000000011000310000036002000041000000400310008c000000000300001900000000030240190000036001100197000000000410004c000000000200a019000003600110009c00000000010300190000000001026019000000000110004c000005a30000c13d00000002010003670000000402100370000000000202043b000500000002001d000003450220009c000005a30000213d0000002401100370000000000201043b000000000120004c0000000001000019000000010100c039000400000002001d000000000112004b000005a30000c13d00000000020004110000000501000029000000000112004b000004b70000c13d000000400100043d00000044021000390000036e030000410000000000320435000000240210003900000019030000390000000000320435000003630200004100000000002104350000000402100039000000200300003900000000003204350000033d020000410000033d0310009c0000000001028019000000400110021000000367011001c700000cf100010430000003570210009c000003af0000613d000003580110009c000005a30000c13d0000000001000416000000000110004c000005a30000c13d000000040100008a00000000011000310000036002000041000000200310008c000000000300001900000000030240190000036001100197000000000410004c000000000200a019000003600110009c00000000010300190000000001026019000000000110004c000005a30000c13d00000004010000390000000201100367000000000101043b000003450210009c000005a30000213d000000000210004c000004a80000c13d000000400100043d00000064021000390000037103000041000000000032043500000044021000390000037203000041000000000032043500000024021000390000002a030000390000000000320435000003630200004100000000002104350000000402100039000000200300003900000000003204350000033d020000410000033d0310009c0000000001028019000000400110021000000364011001c700000cf1000104300000000001000416000000000110004c000005a30000c13d000000040100008a00000000011000310000036002000041000000400310008c000000000300001900000000030240190000036001100197000000000410004c000000000200a019000003600110009c00000000010300190000000001026019000000000110004c000005a30000c13d00000002020003670000000401200370000000000101043b000003450310009c000005a30000213d0000002402200370000000000202043b000500000002001d000003450220009c000005a30000213d00000000001004350000000501000039000000200010043f000000400200003900000000010000190cef05a50000040f00000005020000290cef066e0000040f000000000101041a000000ff011001900000000001000019000000010100c039000000400200043d00000000001204350000033d010000410000033d0320009c0000000001024019000000400110021000000369011001c700000cf00001042e0000000001000416000000000110004c000005a30000c13d0000000001000031000000040210008a0000036003000041000000400420008c000000000400001900000000040340190000036002200197000000000520004c000000000300a019000003600220009c00000000020400190000000002036019000000000220004c000005a30000c13d00000002020003670000000403200370000000000303043b000500000003001d000003450330009c000005a30000213d0000002403200370000000000303043b000003410430009c000005a30000213d00000023043000390000036005000041000000000614004b0000000006000019000000000605801900000360071001970000036004400197000000000874004b0000000005008019000000000474013f000003600440009c00000000040600190000000004056019000000000440004c000005a30000c13d0000000404300039000000000242034f000000000202043b000003410420009c000000670000213d0000003f04200039000000200500008a000000000454016f000000400700043d0000000004470019000000000574004b00000000050000190000000105004039000003410640009c000000670000213d0000000105500190000000670000c13d0000002405300039000000400040043f000400000007001d00000000032704360000000004520019000000000114004b000005a30000213d0000001f0120018f00000002045003670000000505200272000002980000613d000000000600001900000005076002100000000008730019000000000774034f000000000707043b00000000007804350000000106600039000000000756004b000002900000413d000000000610004c000002a70000613d0000000505500210000000000454034f00000000055300190000000301100210000000000605043300000000061601cf000000000616022f000000000404043b0000010001100089000000000414022f00000000011401cf000000000161019f0000000000150435000000000123001900000000000104350000000701000039000000000101041a00000345011001970000000002000411000000000121004b0000043c0000c13d0000000801000039000000000201041a0000000102200039000300000002001d000000000021041b0000000501000029000000000110004c000005350000c13d000000400100043d00000044021000390000036c03000041000000000032043500000363020000410000000000210435000000240210003900000020030000390000000000320435000000040210003900000000003204350000033d020000410000033d0310009c0000000001028019000000400110021000000367011001c700000cf1000104300000000001000416000000000110004c000005a30000c13d000000040100008a00000000011000310000036002000041000000200310008c000000000300001900000000030240190000036001100197000000000410004c000000000200a019000003600110009c00000000010300190000000001026019000000000110004c000005a30000c13d00000004010000390000000201100367000000000101043b0000037802100197000000000212004b000005a30000c13d0000000102000039000003790310009c000002e70000613d0000037a0310009c000002e70000613d0000037b0110009c00000000020000190000000102006039000000010120018f000000400200043d00000000001204350000033d010000410000033d0320009c0000000001024019000000400110021000000369011001c700000cf00001042e0000000001000416000000000110004c000005a30000c13d000000040100008a00000000011000310000036002000041000000000310004c000000000300001900000000030240190000036001100197000000000410004c000000000200a019000003600110009c00000000010300190000000001026019000000000110004c000005a30000c13d0000000701000039000000000201041a00000345032001970000000005000411000000000353004b0000043c0000c13d0000034302200197000000000021041b0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000344011001c70000800d020000390000000303000039000003460400004100000000060000190cef0ce50000040f0000000101200190000005a30000613d000000000100001900000cf00001042e0000000001000416000000000110004c000005a30000c13d00000000010000310cef05e40000040f000500000001001d000400000002001d0000000002030019000300000002001d00000000010004110cef08cd0000040f0cef06fc0000040f0000000501000029000000040200002900000003030000290cef09820000040f000000000100001900000cf00001042e0000000001000416000000000110004c000005a30000c13d0000000003000031000000040130008a0000036002000041000000800410008c000000000400001900000000040240190000036001100197000000000510004c000000000200a019000003600110009c00000000010400190000000001026019000000000110004c000005a30000c13d00000002010003670000000402100370000000000202043b000500000002001d000003450220009c000005a30000213d0000002402100370000000000202043b000400000002001d000003450220009c000005a30000213d0000006402100370000000000402043b000003410240009c000005a30000213d00000023024000390000036005000041000000000632004b0000000006000019000000000605801900000360073001970000036002200197000000000872004b0000000005008019000000000272013f000003600220009c00000000020600190000000002056019000000000220004c000005a30000c13d0000000402400039000000000221034f000000000202043b0000004401100370000000000101043b000300000001001d00000024014000390cef061d0000040f00000000040100190000000501000029000000040200002900000003030000290cef07140000040f000000000100001900000cf00001042e0000000001000416000000000110004c000005a30000c13d000000040100008a00000000011000310000036002000041000000200310008c000000000300001900000000030240190000036001100197000000000410004c000000000200a019000003600110009c00000000010300190000000001026019000000000110004c000005a30000c13d00000004010000390000000201100367000000000101043b0cef06c00000040f0000034501100197000000400200043d00000000001204350000033d010000410000033d0320009c0000000001024019000000400110021000000369011001c700000cf00001042e0000000001000416000000000110004c000005a30000c13d000000040100008a00000000011000310000036002000041000000000310004c000000000300001900000000030240190000036001100197000000000410004c000000000200a019000003600110009c00000000010300190000000001026019000000000110004c000005a30000c13d0000000104000039000000000304041a000000010530019000000001013002700000007f0210018f000000000701001900000000070260190000001f0270008c00000000020000190000000102002039000000000223013f0000000102200190000000af0000c13d000000400100043d0000000002710436000000000550004c000004710000c13d000001000400008a000000000343016f0000000000320435000000000270004c000000200300003900000000030060190000047e0000013d0000000001000416000000000110004c000005a30000c13d000000040100008a00000000011000310000036002000041000000200310008c000000000300001900000000030240190000036001100197000000000410004c000000000200a019000003600110009c00000000010300190000000001026019000000000110004c000005a30000c13d00000004010000390000000201100367000000000101043b0cef067f0000040f0000034501100197000000400200043d00000000001204350000033d010000410000033d0320009c0000000001024019000000400110021000000369011001c700000cf00001042e000000000160004c0000000001000019000003d10000613d000000a00100043d0000000302600210000000010300008a000000000223022f000000000232013f000000000221016f0000000101600210000000000112019f000000000010041b0000000007040433000003410170009c000000670000213d0000000106000039000000000106041a000000010210019000000001021002700000007f0320018f000000000302c0190000001f0230008c00000000020000190000000102002039000000000121013f0000000101100190000000af0000c13d000000200130008c0000040d0000413d000100000003001d000200000007001d000300000006001d000000010100003900000000001004350000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000342011001c700008010020000390cef0cea0000040f0000000102200190000005a30000613d00000002070000290000001f027000390000000502200270000000200370008c0000000002004019000000000301043b00000001010000290000001f01100039000000050110027000000000011300190000000002230019000000000312004b0000000504000029000000040500002900000003060000290000040d0000813d000000000002041b0000000102200039000000000312004b000004090000413d0000001f0170008c0000044d0000a13d000200000007001d000300000006001d00000000006004350000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000342011001c700008010020000390cef0cea0000040f0000000102200190000005a30000613d000000200200008a000000020700002900000000032701700000002002000039000000000101043b00000005060000290000042d0000613d0000002002000039000000000400001900000000056200190000000005050433000000000051041b000000200220003900000001011000390000002004400039000000000534004b000004250000413d000000000373004b000004380000813d0000000303700210000000f80330018f000000010400008a000000000334022f000000000343013f00000000026200190000000002020433000000000232016f000000000021041b000000010170021000000003060000290000000002060019000004570000013d000000400100043d00000044021000390000037003000041000000000032043500000363020000410000000000210435000000240210003900000020030000390000000000320435000000040210003900000000003204350000033d020000410000033d0310009c0000000001028019000000400110021000000367011001c700000cf100010430000000000170004c0000000001000019000004510000613d00000000010504330000000302700210000000010300008a000000000223022f000000000232013f000000000121016f0000000102700210000000000121019f000000000016041b0000000701000039000000000201041a00000343032001970000000006000411000000000363019f000000000031041b0000033d0100004100000000030004140000033d0430009c0000000001034019000000c00110021000000344011001c700000345052001970000800d02000039000000030300003900000346040000410cef0ce50000040f0000000101200190000005a30000613d000000200100003900000100001004430000012000000443000003470100004100000cf00001042e0000000000400435000000000370004c00000000030000190000047e0000613d0000036f0400004100000000030000190000000005320019000000000604041a000000000065043500000001044000390000002003300039000000000573004b000004770000413d0000002002300039000500000001001d0cef060a0000040f000000400100043d000400000001001d00000005020000290cef05ce0000040f000000040400002900000000014100490000033d020000410000033d0310009c00000000010280190000033d0340009c000000000204401900000040022002100000006001100210000000000121019f00000cf00001042e000001000400008a000000000343016f0000000000320435000000000270004c000000200300003900000000030060190000002002300039000500000001001d0cef060a0000040f000000400100043d000400000001001d00000005020000290cef05ce0000040f000000040400002900000000014100490000033d020000410000033d0310009c00000000010280190000033d0340009c000000000204401900000040022002100000006001100210000000000121019f00000cf00001042e00000000001004350000000301000039000000200010043f000000400200003900000000010000190cef05a50000040f000000000101041a000000400200043d00000000001204350000033d010000410000033d0320009c0000000001024019000000400110021000000369011001c700000cf00001042e000300000002001d00000000002004350000000501000039000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f0000000102200190000005a30000613d000000000101043b00000005020000290000000000200435000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f0000000102200190000005a30000613d000000000101043b000000000201041a000001000300008a000000000232016f0000000403000029000000000232019f000000000021041b000000400100043d00000000003104350000033d0200004100000000030004140000033d0430009c00000000030280190000033d0410009c00000000010280190000004001100210000000c002300210000000000112019f00000342011001c70000800d0200003900000003030000390000036d04000041000000030500002900000005060000290cef0ce50000040f0000000101200190000003160000c13d000005a30000013d0cef06580000040f000000000100001900000cf00001042e0000000501000029000000000121004b0000050a0000c13d000000400100043d000000640210003900000373030000410000000000320435000000440210003900000374030000410000000000320435000000240210003900000021030000390000000000320435000003630200004100000000002104350000000402100039000000200300003900000000003204350000033d020000410000033d0310009c0000000001028019000000400110021000000364011001c700000cf10001043000000001010000390000000003000411000300000003001d000000000323004b000005150000c13d0cef06a80000040f000000050100002900000004020000290cef0a680000040f000000000100001900000cf00001042e00000000002004350000000501000039000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f0000000102200190000005a30000613d000000000101043b000000030200002900000345022001970000000000200435000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f0000000102200190000005a30000613d000000000101043b000000000101041a000000ff0110018f0000050f0000013d000000030100002900000000001004350000000201000039000200000001001d000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f0000000102200190000005a30000613d000000000101043b000000000101041a0000034501100198000005610000c13d000000050100002900000000001004350000000301000039000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f0000000102200190000005a30000613d000000000101043b000000000201041a000000010300008a000000000332004b000005730000c13d0000036a0100004100000000001004350000001101000039000000040010043f0000036b0100004100000cf100010430000000400100043d00000044021000390000036603000041000000000032043500000024021000390000001c030000390000000000320435000003630200004100000000002104350000000402100039000000200300003900000000003204350000033d020000410000033d0310009c0000000001028019000000400110021000000367011001c700000cf1000104300000000102200039000000000021041b000000030100002900000000001004350000000201000029000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f0000000102200190000005a30000613d000000000101043b000000000201041a00000343022001970000000506000029000000000262019f000000000021041b0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000344011001c70000800d0200003900000004030000390000036804000041000000000500001900000003070000290cef0ce50000040f0000000101200190000005a30000613d000000030100002900000004020000290cef0c320000040f000000400100043d000000030200002900000000002104350000033d020000410000033d0310009c0000000001028019000000400110021000000369011001c700000cf00001042e000000000100001900000cf1000104300000033d030000410000033d0410009c000000000103801900000040011002100000033d0420009c00000000020380190000006002200210000000000112019f00000000020004140000033d0420009c0000000002038019000000c002200210000000000112019f00000344011001c700008010020000390cef0cea0000040f0000000102200190000005b90000613d000000000101043b000000000001042d000000000100001900000cf10001043000000000030104330000000002320436000000000430004c000005c70000613d000000000400001900000000052400190000002004400039000000000614001900000000060604330000000000650435000000000534004b000005c00000413d000000000123001900000000000104350000001f01300039000000200300008a000000000131016f0000000001120019000000000001042d00000020030000390000000004310436000000000302043300000000003404350000004001100039000000000430004c000005dd0000613d000000000400001900000000051400190000002004400039000000000624001900000000060604330000000000650435000000000534004b000005d60000413d000000000213001900000000000204350000001f02300039000000200300008a000000000232016f0000000001120019000000000001042d000000040110008a00000360020000410000005f0310008c000000000300001900000000030220190000036001100197000000000410004c0000000002008019000003600110009c00000000010300190000000001026019000000000110004c000005fd0000613d00000002030003670000000401300370000000000101043b000003450210009c000005fd0000213d0000002402300370000000000202043b000003450420009c000005fd0000213d0000004403300370000000000303043b000000000001042d000000000100001900000cf1000104300000037c0210009c000006040000813d0000002001100039000000400010043f000000000001042d0000036a0100004100000000001004350000004101000039000000040010043f0000036b0100004100000cf1000104300000001f02200039000000200300008a000000000232016f0000000001120019000000000221004b00000000020000190000000102004039000003410310009c000006170000213d0000000102200190000006170000c13d000000400010043f000000000001042d0000036a0100004100000000001004350000004101000039000000040010043f0000036b0100004100000cf10001043000000000040100190000037d0120009c000006500000813d0000003f01200039000000200500008a000000000551016f000000400100043d0000000005510019000000000615004b00000000060000190000000106004039000003410750009c000006500000213d0000000106600190000006500000c13d000000400050043f00000000052104360000000006420019000000000336004b000006560000213d0000001f0320018f000000020440036700000005062002720000063e0000613d000000000700001900000005087002100000000009850019000000000884034f000000000808043b00000000008904350000000107700039000000000867004b000006360000413d000000000730004c0000064d0000613d0000000506600210000000000464034f00000000066500190000000303300210000000000706043300000000073701cf000000000737022f000000000404043b0000010003300089000000000434022f00000000033401cf000000000373019f000000000036043500000000022500190000000000020435000000000001042d0000036a0100004100000000001004350000004101000039000000040010043f0000036b0100004100000cf100010430000000000100001900000cf10001043000000345061001970000000701000039000000000201041a0000034303200197000000000363019f000000000031041b0000033d0100004100000000030004140000033d0430009c0000000001034019000000c00110021000000344011001c700000345052001970000800d02000039000000030300003900000346040000410cef0ce50000040f00000001012001900000066c0000613d000000000001042d000000000100001900000cf10001043000000345022001970000000000200435000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f00000001022001900000067d0000613d000000000101043b000000000001042d000000000100001900000cf10001043000000000001004350000000201000039000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f0000000102200190000006910000613d000000000101043b000000000101041a0000034501100198000006930000613d000000000001042d000000000100001900000cf100010430000000400100043d000000640210003900000375030000410000000000320435000000440210003900000376030000410000000000320435000000240210003900000029030000390000000000320435000003630200004100000000002104350000000402100039000000200300003900000000003204350000033d020000410000033d0310009c0000000001028019000000400110021000000364011001c700000cf100010430000000000110004c000006ab0000613d000000000001042d000000400100043d00000064021000390000037e03000041000000000032043500000044021000390000037f030000410000000000320435000000240210003900000038030000390000000000320435000003630200004100000000002104350000000402100039000000200300003900000000003204350000033d020000410000033d0310009c0000000001028019000000400110021000000364011001c700000cf1000104300001000000000002000100000001001d00000000001004350000000201000039000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f0000000102200190000006e50000613d000000000101043b000000000101041a0000034501100198000006e70000613d000000010100002900000000001004350000000401000039000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f0000000102200190000006e50000613d000000000101043b000000000101041a0000034501100197000000000001042d000000000100001900000cf100010430000000400100043d00000064021000390000038003000041000000000032043500000044021000390000038103000041000000000032043500000024021000390000002c030000390000000000320435000003630200004100000000002104350000000402100039000000200300003900000000003204350000033d020000410000033d0310009c0000000001028019000000400110021000000364011001c700000cf100010430000000000110004c000006ff0000613d000000000001042d000000400100043d000000640210003900000382030000410000000000320435000000440210003900000383030000410000000000320435000000240210003900000031030000390000000000320435000003630200004100000000002104350000000402100039000000200300003900000000003204350000033d020000410000033d0310009c0000000001028019000000400110021000000364011001c700000cf1000104300008000000000002000200000004001d000400000002001d000500000001001d000800000003001d00000000003004350000000201000039000700000001001d000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f0000000102200190000008290000613d000000000101043b000000000101041a0000034501100198000008460000613d000000080100002900000000001004350000000701000029000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f0000000102200190000008290000613d000000000101043b000000000101041a00000345011001980000082b0000613d00000000020004110000034502200197000600000002001d000000000212004b000007870000613d00000000001004350000000501000039000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f0000000102200190000008290000613d000000000101043b00000006020000290000000000200435000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f0000000102200190000008290000613d000000000101043b000000000101041a000000ff01100190000007870000c13d000000080100002900000000001004350000000701000029000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f0000000102200190000008290000613d000000000101043b000000000101041a0000034501100198000008960000613d000000080100002900000000001004350000000401000039000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f0000000102200190000008290000613d000000000101043b000000000101041a00000345011001970000000602000029000000000121004b000008ab0000c13d000000080100002900000000001004350000000701000029000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f0000000102200190000008290000613d000000000101043b000000000101041a0000034501100198000600000001001d0000082b0000613d000000050100002900000345011001970000000602000029000000000112004b0000085b0000c13d00000004010000290000034501100198000300000001001d000008700000613d000000080100002900000000001004350000000401000039000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f0000000102200190000008290000613d000000000101043b000000000201041a0000034302200197000000000021041b000000080100002900000000001004350000000701000029000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f0000000102200190000008290000613d000000000101043b000000000101041a00000345051001980000082b0000613d0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000344011001c70000800d0200003900000004030000390000038604000041000000000600001900000008070000290cef0ce50000040f0000000101200190000008290000613d000000060100002900000000001004350000000301000039000100000001001d000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f0000000102200190000008290000613d000000000101043b000000000201041a000000000320004c000008400000613d000000010220008a000000000021041b000000030100002900000000001004350000000101000029000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f0000000102200190000008290000613d000000000101043b000000000201041a000000010300008a000000000332004b000008400000613d0000000102200039000000000021041b000000080100002900000000001004350000000701000029000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f0000000102200190000008290000613d000000000101043b000000000201041a00000343022001970000000306000029000000000262019f000000000021041b0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000344011001c70000800d0200003900000004030000390000036804000041000000060500002900000008070000290cef0ce50000040f0000000101200190000008290000613d00000005010000290000000402000029000000080300002900000002040000290cef0ab80000040f000000000110004c000008850000613d000000000001042d000000000100001900000cf100010430000000400100043d000000640210003900000375030000410000000000320435000000440210003900000376030000410000000000320435000000240210003900000029030000390000000000320435000003630200004100000000002104350000000402100039000000200300003900000000003204350000033d020000410000033d0310009c0000000001028019000000400110021000000364011001c700000cf1000104300000036a0100004100000000001004350000001101000039000000040010043f0000036b0100004100000cf100010430000000400100043d00000064021000390000038003000041000000000032043500000044021000390000038903000041000000000032043500000024021000390000002c030000390000000000320435000003630200004100000000002104350000000402100039000000200300003900000000003204350000033d020000410000033d0310009c0000000001028019000000400110021000000364011001c700000cf100010430000000400100043d000000640210003900000384030000410000000000320435000000440210003900000385030000410000000000320435000000240210003900000025030000390000000000320435000003630200004100000000002104350000000402100039000000200300003900000000003204350000033d020000410000033d0310009c0000000001028019000000400110021000000364011001c700000cf100010430000000400100043d000000640210003900000387030000410000000000320435000000440210003900000388030000410000000000320435000000240210003900000024030000390000000000320435000003630200004100000000002104350000000402100039000000200300003900000000003204350000033d020000410000033d0310009c0000000001028019000000400110021000000364011001c700000cf100010430000000400200043d000800000002001d0000036301000041000000000012043500000004012000390cef08c00000040f000000080400002900000000014100490000033d020000410000033d0310009c00000000010280190000033d0340009c000000000204401900000040022002100000006001100210000000000121019f00000cf100010430000000400100043d00000064021000390000038003000041000000000032043500000044021000390000038103000041000000000032043500000024021000390000002c030000390000000000320435000003630200004100000000002104350000000402100039000000200300003900000000003204350000033d020000410000033d0310009c0000000001028019000000400110021000000364011001c700000cf100010430000000400100043d000000640210003900000382030000410000000000320435000000440210003900000383030000410000000000320435000000240210003900000031030000390000000000320435000003630200004100000000002104350000000402100039000000200300003900000000003204350000033d020000410000033d0310009c0000000001028019000000400110021000000364011001c700000cf10001043000000060021000390000038a03000041000000000032043500000040021000390000038b030000410000000000320435000000200210003900000032030000390000000000320435000000200200003900000000002104350000008001100039000000000001042d0003000000000002000100000001001d000300000002001d00000000002004350000000201000039000200000001001d000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f0000000102200190000009410000613d000000000101043b000000000101041a0000034501100198000009430000613d000000030100002900000000001004350000000201000029000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f0000000102200190000009410000613d000000000101043b000000000101041a0000034502100198000009580000613d000000010100003900000001030000290000034503300197000100000003001d000000000323004b000009400000613d00000000002004350000000501000039000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f0000000102200190000009410000613d000000000101043b00000001020000290000000000200435000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f0000000102200190000009410000613d000000000101043b000000000101041a000000ff01100190000009400000c13d000000030100002900000000001004350000000201000029000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f0000000102200190000009410000613d000000000101043b000000000101041a00000345011001980000096d0000613d000000030100002900000000001004350000000401000039000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f0000000102200190000009410000613d000000000101043b000000000101041a00000345011001970000000102000029000000000121004b00000000010000190000000101006039000000000001042d000000000100001900000cf100010430000000400100043d00000064021000390000038003000041000000000032043500000044021000390000038903000041000000000032043500000024021000390000002c030000390000000000320435000003630200004100000000002104350000000402100039000000200300003900000000003204350000033d020000410000033d0310009c0000000001028019000000400110021000000364011001c700000cf100010430000000400100043d000000640210003900000375030000410000000000320435000000440210003900000376030000410000000000320435000000240210003900000029030000390000000000320435000003630200004100000000002104350000000402100039000000200300003900000000003204350000033d020000410000033d0310009c0000000001028019000000400110021000000364011001c700000cf100010430000000400100043d00000064021000390000038003000041000000000032043500000044021000390000038103000041000000000032043500000024021000390000002c030000390000000000320435000003630200004100000000002104350000000402100039000000200300003900000000003204350000033d020000410000033d0310009c0000000001028019000000400110021000000364011001c700000cf1000104300005000000000002000100000002001d000200000001001d000500000003001d00000000003004350000000201000039000300000001001d000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f000000010220019000000a210000613d000000000101043b000000000101041a0000034501100198000400000001001d00000a230000613d000000020100002900000345011001970000000402000029000000000112004b00000a3e0000c13d00000001010000290000034501100198000200000001001d00000a530000613d000000050100002900000000001004350000000401000039000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f000000010220019000000a210000613d000000000101043b000000000201041a0000034302200197000000000021041b000000050100002900000000001004350000000301000029000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f000000010220019000000a210000613d000000000101043b000000000101041a000003450510019800000a230000613d0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000344011001c70000800d0200003900000004030000390000038604000041000000000600001900000005070000290cef0ce50000040f000000010120019000000a210000613d000000040100002900000000001004350000000301000039000100000001001d000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f000000010220019000000a210000613d000000000101043b000000000201041a000000000320004c00000a380000613d000000010220008a000000000021041b000000020100002900000000001004350000000101000029000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f000000010220019000000a210000613d000000000101043b000000000201041a000000010300008a000000000332004b00000a380000613d0000000102200039000000000021041b000000050100002900000000001004350000000301000029000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f000000010220019000000a210000613d000000000101043b000000000201041a00000343022001970000000206000029000000000262019f000000000021041b0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000344011001c70000800d0200003900000004030000390000036804000041000000040500002900000005070000290cef0ce50000040f000000010120019000000a210000613d000000000001042d000000000100001900000cf100010430000000400100043d000000640210003900000375030000410000000000320435000000440210003900000376030000410000000000320435000000240210003900000029030000390000000000320435000003630200004100000000002104350000000402100039000000200300003900000000003204350000033d020000410000033d0310009c0000000001028019000000400110021000000364011001c700000cf1000104300000036a0100004100000000001004350000001101000039000000040010043f0000036b0100004100000cf100010430000000400100043d000000640210003900000384030000410000000000320435000000440210003900000385030000410000000000320435000000240210003900000025030000390000000000320435000003630200004100000000002104350000000402100039000000200300003900000000003204350000033d020000410000033d0310009c0000000001028019000000400110021000000364011001c700000cf100010430000000400100043d000000640210003900000387030000410000000000320435000000440210003900000388030000410000000000320435000000240210003900000024030000390000000000320435000003630200004100000000002104350000000402100039000000200300003900000000003204350000033d020000410000033d0310009c0000000001028019000000400110021000000364011001c700000cf1000104300002000000000002000100000001001d000200000002001d00000000002004350000000401000039000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f000000010220019000000aa10000613d00000001020000290000034503200197000000000101043b000000000201041a0000034302200197000100000003001d000000000232019f000000000021041b000000020100002900000000001004350000000201000039000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f000000010220019000000aa10000613d0000000207000029000000000101043b000000000101041a000003450510019800000aa30000613d0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000344011001c70000800d020000390000000403000039000003860400004100000001060000290cef0ce50000040f000000010120019000000aa10000613d000000000001042d000000000100001900000cf100010430000000400100043d000000640210003900000375030000410000000000320435000000440210003900000376030000410000000000320435000000240210003900000029030000390000000000320435000003630200004100000000002104350000000402100039000000200300003900000000003204350000033d020000410000033d0310009c0000000001028019000000400110021000000364011001c700000cf1000104300006000000000002000400000004001d000200000003001d000100000001001d0000038c010000410000000000100439000300000002001d00000004002004430000033d0100004100000000020004140000033d0320009c0000000001024019000000c0011002100000038d011001c700008002020000390cef0cea0000040f000000000301034f000000010120019000000b530000613d0000000101000039000000000203043b000000000220004c00000b520000613d000000400a00043d0000038e0100004100000000001a04350000006402a000390000000001000414000000800300003900000000003204350000004402a0003900000002030000290000000000320435000000010200002900000345022001970000002403a000390000000000230435000000000200041100000345022001970000000403a000390000000000230435000000040800002900000000030804330000008402a000390000000000320435000000a404a0003900000003020000290000034502200197000000000530004c00000af20000613d000000000500001900000000064500190000002005500039000000000785001900000000070704330000000000760435000000000635004b00000aeb0000413d00000000044300190000000000040435000000040420008c00000aff0000c13d0000000001000415000000060110008a00000020011000c90000000103000031000000200230008c00000020040000390000000004034019000600000000001d00000b3c0000013d0000001f03300039000000200400008a000000000343016f0000033d040000410000033d05a0009c000000000504001900000000050a40190000004005500210000000a4033000390000033d0630009c00000000030480190000006003300210000000000353019f0000033d0510009c0000000001048019000000c001100210000000000113019f00040000000a001d0cef0ce50000040f000000040a000029000000000301001900000060033002700000033d03300197000000200430008c000000200400003900000000040340190000001f0540018f000000050640027200000b250000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b00000b1d0000413d000000000750004c00000b340000613d0000000506600210000000000761034f00000000066a00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f00030000000103550000000001000415000000050110008a00000020011000c9000500000000001d000000010220019000000b550000613d0000001f02400039000000600420018f0000000002a40019000000000442004b00000000040000190000000104004039000003410520009c00000b970000213d000000010440019000000b970000c13d000000400020043f000000200230008c00000b530000413d00000000020a04330000037803200197000000000323004b00000b530000c13d000000200110011a000000000102001f0000038e0120009c00000000010000190000000101006039000000000001042d000000000100001900000cf1000104300000006001000039000000000230004c00000b6c0000c13d0000000021010434000000000310004c00000b9d0000c13d000000400200043d000400000002001d0000036301000041000000000012043500000004012000390cef08c00000040f000000040400002900000000014100490000033d020000410000033d0310009c00000000010280190000033d0340009c000000000204401900000040022002100000006001100210000000000121019f00000cf1000104300000003f013000390000038f02100197000000400100043d0000000002210019000000000412004b00000000040000190000000104004039000003410520009c00000b970000213d000000010440019000000b970000c13d000000400020043f0000000002310436000000030300036700000001050000310000001f0450018f000000050550027200000b870000613d000000000600001900000005076002100000000008720019000000000773034f000000000707043b00000000007804350000000106600039000000000756004b00000b7f0000413d000000000640004c00000b580000613d0000000505500210000000000353034f00000000025200190000000304400210000000000502043300000000054501cf000000000545022f000000000303043b0000010004400089000000000343022f00000000034301cf000000000353019f000000000032043500000b580000013d0000036a0100004100000000001004350000004101000039000000040010043f0000036b0100004100000cf1000104300000033d030000410000033d0420009c00000000020380190000033d0410009c000000000103801900000060011002100000004002200210000000000121019f00000cf1000104300003000000000002000300000001001d00000000001004350000000201000039000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f000000010220019000000c0f0000613d000000000101043b000000000101041a000003450110019800000c170000613d000000030100002900000000001004350000000601000039000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f000000010220019000000c0f0000613d000000000101043b000000000201041a000000010320019000000001042002700000007f0540018f000000000604001900000000060560190000001f0460008c00000000040000190000000104002039000000010440018f000000000443004b00000c2c0000c13d000000400500043d0000000004650436000000000330004c00000bf60000613d000100000004001d000200000006001d000300000005001d00000000001004350000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000342011001c700008010020000390cef0cea0000040f000000010220019000000c0f0000613d0000000206000029000000000260004c00000000020000190000000305000029000000010700002900000bfc0000613d000000000101043b00000000020000190000000003270019000000000401041a000000000043043500000001011000390000002002200039000000000362004b00000bee0000413d00000bfc0000013d000001000100008a000000000112016f0000000000140435000000000160004c000000200200003900000000020060190000003f01200039000000200200008a000000000221016f0000000001520019000000000221004b00000000020000190000000102004039000003410310009c00000c110000213d000000010220019000000c110000c13d000000400010043f000003900210009c00000c110000213d0000002002100039000000400020043f00000000000104350000000001050019000000000001042d000000000100001900000cf1000104300000036a0100004100000000001004350000004101000039000000040010043f0000036b0100004100000cf100010430000000400100043d000000640210003900000391030000410000000000320435000000440210003900000392030000410000000000320435000000240210003900000031030000390000000000320435000003630200004100000000002104350000000402100039000000200300003900000000003204350000033d020000410000033d0310009c0000000001028019000000400110021000000364011001c700000cf1000104300000036a0100004100000000001004350000002201000039000000040010043f0000036b0100004100000cf1000104300005000000000002000500000002001d000400000001001d00000000001004350000000201000039000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f000000010220019000000cc20000613d000000000101043b000000000101041a000003450110019800000cc40000613d000000040100002900000000001004350000000601000039000000200010043f0000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000365011001c700008010020000390cef0cea0000040f000000010220019000000cc20000613d000000000401043b000000050100002900000000650104340000037d0150009c00000cd90000813d000000000104041a000000010210019000000001011002700000007f0310018f000000000301c0190000001f0130008c00000000010000190000000101002039000000010110018f000000000112004b00000cdf0000c13d000000200130008c000400000004001d000300000005001d00000c880000413d000100000003001d000200000006001d00000000004004350000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000342011001c700008010020000390cef0cea0000040f000000010220019000000cc20000613d00000003050000290000001f025000390000000502200270000000200350008c0000000002004019000000000301043b00000001010000290000001f01100039000000050110027000000000011300190000000002230019000000000312004b0000000404000029000000020600002900000c880000813d000000000002041b0000000102200039000000000312004b00000c840000413d0000001f0150008c00000cb50000a13d00000000004004350000033d0100004100000000020004140000033d0320009c0000000001024019000000c00110021000000342011001c700008010020000390cef0cea0000040f000000010220019000000cc20000613d000000200200008a000000030700002900000000032701700000002002000039000000000101043b000000050600002900000ca60000613d0000002002000039000000000400001900000000056200190000000005050433000000000051041b000000200220003900000001011000390000002004400039000000000534004b00000c9e0000413d000000000373004b00000cb10000813d0000000303700210000000f80330018f000000010400008a000000000334022f000000000343013f00000000026200190000000002020433000000000232016f000000000021041b00000001010000390000000102700210000000040400002900000cbf0000013d000000000150004c000000000100001900000cb90000613d00000000010604330000000302500210000000010300008a000000000223022f000000000232013f000000000221016f0000000101500210000000000112019f000000000014041b000000000001042d000000000100001900000cf100010430000000400100043d00000064021000390000039303000041000000000032043500000044021000390000039403000041000000000032043500000024021000390000002e030000390000000000320435000003630200004100000000002104350000000402100039000000200300003900000000003204350000033d020000410000033d0310009c0000000001028019000000400110021000000364011001c700000cf1000104300000036a0100004100000000001004350000004101000039000000040010043f0000036b0100004100000cf1000104300000036a0100004100000000001004350000002201000039000000040010043f0000036b0100004100000cf10001043000000ce8002104210000000102000039000000000001042d0000000002000019000000000001042d00000ced002104230000000102000039000000000001042d0000000002000019000000000001042d00000cef0000043200000cf00001042e00000cf1000104300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff4d794e4654000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffc04e46540000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff0200000000000000000000000000000000000020000000000000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0000000020000000000000000000000000000004000000100000000000000000000000000000000000000000000000000000000000000000000000000715018a500000000000000000000000000000000000000000000000000000000b88d4fdd00000000000000000000000000000000000000000000000000000000e985e9c400000000000000000000000000000000000000000000000000000000e985e9c500000000000000000000000000000000000000000000000000000000eacabe1400000000000000000000000000000000000000000000000000000000f2fde38b00000000000000000000000000000000000000000000000000000000b88d4fde00000000000000000000000000000000000000000000000000000000c87b56dd0000000000000000000000000000000000000000000000000000000095d89b400000000000000000000000000000000000000000000000000000000095d89b4100000000000000000000000000000000000000000000000000000000a22cb46500000000000000000000000000000000000000000000000000000000715018a6000000000000000000000000000000000000000000000000000000008da5cb5b0000000000000000000000000000000000000000000000000000000023b872dc000000000000000000000000000000000000000000000000000000006352211d000000000000000000000000000000000000000000000000000000006352211e0000000000000000000000000000000000000000000000000000000070a082310000000000000000000000000000000000000000000000000000000023b872dd0000000000000000000000000000000000000000000000000000000042842e0e00000000000000000000000000000000000000000000000000000000081812fb00000000000000000000000000000000000000000000000000000000081812fc00000000000000000000000000000000000000000000000000000000095ea7b30000000000000000000000000000000000000000000000000000000001ffc9a70000000000000000000000000000000000000000000000000000000006fdde03800000000000000000000000000000000000000000000000000000000000000064647265737300000000000000000000000000000000000000000000000000004f776e61626c653a206e6577206f776e657220697320746865207a65726f206108c379a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008400000000000000000000000002000000000000000000000000000000000000400000000000000000000000004552433732313a20746f6b656e20616c7265616479206d696e746564000000000000000000000000000000000000000000000064000000000000000000000000ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef00000000000000000000000000000000000000200000000000000000000000004e487b710000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000000000000000000000004552433732313a206d696e7420746f20746865207a65726f206164647265737317307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c314552433732313a20617070726f766520746f2063616c6c657200000000000000b10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf64f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572726f2061646472657373000000000000000000000000000000000000000000004552433732313a2062616c616e636520717565727920666f7220746865207a6572000000000000000000000000000000000000000000000000000000000000004552433732313a20617070726f76616c20746f2063757272656e74206f776e65656e7420746f6b656e00000000000000000000000000000000000000000000004552433732313a206f776e657220717565727920666f72206e6f6e6578697374290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563ffffffff0000000000000000000000000000000000000000000000000000000080ac58cd000000000000000000000000000000000000000000000000000000005b5e139f0000000000000000000000000000000000000000000000000000000001ffc9a700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffe000000000000000000000000000000000000000000000000100000000000000006e6572206e6f7220617070726f76656420666f7220616c6c00000000000000004552433732313a20617070726f76652063616c6c6572206973206e6f74206f77697374656e7420746f6b656e00000000000000000000000000000000000000004552433732313a20617070726f76656420717565727920666f72206e6f6e6578776e6572206e6f7220617070726f7665640000000000000000000000000000004552433732313a207472616e736665722063616c6c6572206973206e6f74206f6f776e65720000000000000000000000000000000000000000000000000000004552433732313a207472616e736665722066726f6d20696e636f7272656374208c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92572657373000000000000000000000000000000000000000000000000000000004552433732313a207472616e7366657220746f20746865207a65726f206164644552433732313a206f70657261746f7220717565727920666f72206e6f6e657863656976657220696d706c656d656e74657200000000000000000000000000004552433732313a207472616e7366657220746f206e6f6e2045524337323152651806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b830200000200000000000000000000000000000024000000000000000000000000150b7a020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001ffffffe0000000000000000000000000000000000000000000000000ffffffffffffffdf6e6f6e6578697374656e7420746f6b656e00000000000000000000000000000045524337323155524953746f726167653a2055524920717565727920666f72206578697374656e7420746f6b656e00000000000000000000000000000000000045524337323155524953746f726167653a2055524920736574206f66206e6f6e0000000000000000000000000000000000000000000000000000000000000000311de4497f01547d67160eca78d4da43bcb08e5f202edd55fee501e4eae35cb1", - "linkReferences": {}, - "deployedLinkReferences": {}, - "factoryDeps": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/contracts/MyPaymaster.sol/MyPaymaster.dbg.json b/packages/integration-tests/src/playbook/artifacts-zk/contracts/MyPaymaster.sol/MyPaymaster.dbg.json deleted file mode 100644 index 973a2e83f9..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/contracts/MyPaymaster.sol/MyPaymaster.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../build-info/92cb10df65f6d26368974b9012699389.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/contracts/MyPaymaster.sol/MyPaymaster.json b/packages/integration-tests/src/playbook/artifacts-zk/contracts/MyPaymaster.sol/MyPaymaster.json deleted file mode 100644 index 4041c4c7a8..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/contracts/MyPaymaster.sol/MyPaymaster.json +++ /dev/null @@ -1,276 +0,0 @@ -{ - "_format": "hh-zksolc-artifact-1", - "contractName": "MyPaymaster", - "sourceName": "contracts/MyPaymaster.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "_erc20", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [], - "name": "allowedToken", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "_context", - "type": "bytes" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "txType", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "from", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "to", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "gasLimit", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "gasPerPubdataByteLimit", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxFeePerGas", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxPriorityFeePerGas", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "paymaster", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "uint256[4]", - "name": "reserved", - "type": "uint256[4]" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "signature", - "type": "bytes" - }, - { - "internalType": "bytes32[]", - "name": "factoryDeps", - "type": "bytes32[]" - }, - { - "internalType": "bytes", - "name": "paymasterInput", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "reservedDynamic", - "type": "bytes" - } - ], - "internalType": "struct Transaction", - "name": "_transaction", - "type": "tuple" - }, - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - }, - { - "internalType": "enum ExecutionResult", - "name": "_txResult", - "type": "uint8" - }, - { - "internalType": "uint256", - "name": "_maxRefundedGas", - "type": "uint256" - } - ], - "name": "postTransaction", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "txType", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "from", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "to", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "gasLimit", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "gasPerPubdataByteLimit", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxFeePerGas", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxPriorityFeePerGas", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "paymaster", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "uint256[4]", - "name": "reserved", - "type": "uint256[4]" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "signature", - "type": "bytes" - }, - { - "internalType": "bytes32[]", - "name": "factoryDeps", - "type": "bytes32[]" - }, - { - "internalType": "bytes", - "name": "paymasterInput", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "reservedDynamic", - "type": "bytes" - } - ], - "internalType": "struct Transaction", - "name": "_transaction", - "type": "tuple" - } - ], - "name": "validateAndPayForPaymasterTransaction", - "outputs": [ - { - "internalType": "bytes4", - "name": "magic", - "type": "bytes4" - }, - { - "internalType": "bytes", - "name": "context", - "type": "bytes" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "stateMutability": "payable", - "type": "receive" - } - ], - "bytecode": "0x0004000000000002000700000000000200000000030100190000006003300270000000e10430019700030000004103550002000000010355000000e10030019d000100000000001f0000000101200190000000340000c13d0000008001000039000000400010043f0000000002000031000000040120008c000000430000413d0000000201000367000000000301043b000000e003300270000000e60430009c0000007c0000613d000000e70430009c000000d10000613d000000e80130009c000000dd0000c13d0000000001000416000000000110004c000000dd0000c13d000000040100008a0000000001100031000000e202000041000000000310004c00000000030000190000000003024019000000e201100197000000000410004c000000000200a019000000e20110009c00000000010300190000000001026019000000000110004c000000dd0000c13d000000000100041a000000e301100197000000400200043d0000000000120435000000e101000041000000e10320009c00000000010240190000004001100210000000e9011001c7000003810001042e0000000001000416000000000110004c000000dd0000c13d00000000010000310000009f02100039000000200300008a000000000232016f0000007f0320008c000000470000213d000000f40100004100000000001004350000004101000039000000040010043f000000f5010000410000038200010430000000000120004c000000dd0000c13d0000000001000019000003810001042e000000400020043f0000001f0210018f00000002030003670000000504100272000000550000613d00000000050000190000000506500210000000000763034f000000000707043b000000800660003900000000007604350000000105500039000000000645004b0000004d0000413d000000000520004c000000640000613d0000000504400210000000000343034f00000003022002100000008004400039000000000504043300000000052501cf000000000525022f000000000303043b0000010002200089000000000323022f00000000022301cf000000000252019f0000000000240435000000e202000041000000200310008c00000000030000190000000003024019000000e201100197000000000410004c000000000200a019000000e20110009c00000000010300190000000001026019000000000110004c000000dd0000c13d000000800100043d000000e30210009c000000dd0000213d000000000200041a000000e402200197000000000112019f000000000010041b000000200100003900000100001004430000012000000443000000e501000041000003810001042e000000040320008a000000e204000041000000600530008c00000000050000190000000005044019000000e203300197000000000630004c000000000400a019000000e20330009c00000000030500190000000003046019000000000330004c000000dd0000c13d0000004403100370000000000a03043b000000ea03a0009c000000dd0000213d0000000403a000390000000004320049000000e205000041000002600640008c00000000060000190000000006054019000000e204400197000000000740004c000000000500a019000000e20440009c00000000040600190000000004056019000000000440004c000000dd0000c13d0000022404a00039000000000441034f0000000005a20049000000230550008a000000000404043b000000e206000041000000000754004b00000000070000190000000007068019000000e205500197000000e208400197000000000958004b0000000006008019000000000558013f000000e20550009c00000000050700190000000005066019000000000550004c000000dd0000c13d0000000003340019000000000431034f000000000404043b000000ea0540009c000000dd0000213d00000000054200490000002002300039000000e206000041000000000752004b00000000070000190000000007062019000000e205500197000000e208200197000000000958004b0000000006008019000000000558013f000000e20550009c00000000050700190000000005066019000000000550004c000000dd0000c13d000000030540008c000001110000213d000000ed01000041000000800010043f0000002001000039000000840010043f0000003a01000039000000a40010043f000000fa01000041000000c40010043f000000fb01000041000000e40010043f000000fc010000410000038200010430000000040320008a000000e204000041000000c00530008c00000000050000190000000005044019000000e206300197000000000760004c000000000400a019000000e20660009c000000000405c019000000000440004c000000df0000613d000000000100001900000382000104300000000404100370000000000404043b000000ea0540009c000000dd0000213d0000002305400039000000e206000041000000000725004b00000000070000190000000007068019000000e208200197000000e205500197000000000985004b0000000006008019000000000585013f000000e20550009c00000000050700190000000005066019000000000550004c000000dd0000c13d0000000405400039000000000551034f000000000505043b000000ea0650009c000000dd0000213d00000000045400190000002404400039000000000224004b000000dd0000213d0000002402100370000000000202043b000000ea0420009c000000dd0000213d0000000002230049000000e203000041000002600420008c00000000040000190000000004034019000000e202200197000000000520004c000000000300a019000000e20220009c00000000020400190000000002036019000000000220004c000000dd0000c13d0000008401100370000000000101043b000000010110008c000000dd0000213d000000450000013d000000000221034f000000000202043b000000eb02200197000000ec0220009c000001860000c13d000000040240008a000000600420008c000000dd0000413d0000002404300039000000000541034f000000000505043b000700000005001d000000e30550009c000000dd0000213d0000006405300039000000000551034f0000004403300039000000000331034f000000000303043b000600000003001d000000000305043b000000ea0530009c000000dd0000213d000000000242001900000000034300190000001f04300039000000e205000041000000000624004b00000000060000190000000006058019000000e204400197000000e207200197000000000874004b0000000005008019000000000474013f000000e20440009c00000000040600190000000004056019000000000440004c000000dd0000c13d00050000000a001d000000000131034f000000000101043b000000ea0410009c0000003d0000213d000000bf04100039000000200500008a000000000454016f000000ea0540009c0000003d0000213d000000400040043f000000800010043f00000020033000390000000004310019000000000224004b000000dd0000213d0000001f0210018f00000002033003670000000504100272000001560000613d00000000050000190000000506500210000000000763034f000000000707043b000000a00660003900000000007604350000000105500039000000000645004b0000014e0000413d000000000520004c000001650000613d0000000504400210000000000343034f0000000302200210000000a004400039000000000504043300000000052501cf000000000525022f000000000303043b0000010002200089000000000323022f00000000022301cf000000000252019f0000000000240435000000a0011000390000000000010435000000000100041a000000e3011001970000000702000029000000000112004b000001900000c13d000000050100002900000024011000390000000201100367000000000201043b000000400500043d000000f20100004100000000001504350000000001000410000000e30410019700000024035000390000000001000414000200000004001d0000000000430435000000e303200197000400000005001d0000000402500039000100000003001d00000000003204350000000702000029000000040220008c000001a20000c13d0000000103000031000000200130008c00000020040000390000000004034019000001d50000013d000000ed01000041000000800010043f0000002001000039000000840010043f0000001a01000039000000a40010043f000000ee01000041000000c40010043f000000ef010000410000038200010430000000400100043d0000004402100039000000f003000041000000000032043500000024021000390000000d030000390000000000320435000000ed020000410000000000210435000000040210003900000020030000390000000000320435000000e102000041000000e10310009c00000000010280190000004001100210000000f1011001c70000038200010430000000e102000041000000e10310009c00000000010280190000000404000029000000e10340009c00000000020440190000004002200210000000c001100210000000000121019f000000f3011001c700000007020000290380037b0000040f000000040a00002900000000030100190000006003300270000000e103300197000000200430008c000000200400003900000000040340190000001f0540018f0000000506400272000001c10000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b000001b90000413d000000000750004c000001d10000613d0000000506600210000000000761034f000000040800002900000000066800190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f00030000000103550000000102200190000001fb0000613d0000001f01400039000000600110018f00000004020000290000000002210019000000000112004b00000000010000190000000101004039000300000002001d000000ea0220009c0000003d0000213d00000001011001900000003d0000c13d0000000301000029000000400010043f000000200130008c000000dd0000413d00000004010000290000000001010433000000000110004c000002210000c13d00000003030000290000004401300039000000f9020000410000000000210435000000240130003900000015020000390000000000210435000000ed010000410000000000130435000000040130003900000020020000390000000000210435000000e101000041000000e10230009c00000000010340190000004001100210000000f1011001c70000038200010430000000400200043d0000001f0430018f0000000503300272000002080000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b000002000000413d000000000540004c000002170000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000000e1010000410000000103000031000000e10430009c0000000003018019000000e10420009c000000000102401900000040011002100000006002300210000000000112019f0000038200010430000000050400002900000064014000390000000202000367000000000312034f000000a401400039000000000112034f000000000101043b000000000203043b00000000342100a9000500000004001d000000000320004c000002310000613d000000050300002900000000322300d9000000000112004b000002b00000c13d000000f6010000410000000304000029000000000014043500000044024000390000000001000414000000060300002900000000003204350000002402400039000000020300002900000000003204350000000402400039000000010300002900000000003204350000000702000029000000040220008c000002460000c13d0000000103000031000000200130008c00000020040000390000000004034019000002790000013d000000e102000041000000e10310009c00000000010280190000000304000029000000e10340009c00000000020440190000004002200210000000c001100210000000000121019f000000f1011001c70000000702000029038003760000040f000000030a00002900000000030100190000006003300270000000e103300197000000200430008c000000200400003900000000040340190000001f0540018f0000000506400272000002650000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b0000025d0000413d000000000750004c000002750000613d0000000506600210000000000761034f000000030800002900000000066800190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f00030000000103550000000101200190000002b60000613d0000001f01400039000000600110018f00000003020000290000000001210019000000ea0210009c0000003d0000213d000000400010043f000000200130008c000000dd0000413d00000003010000290000000001010433000000000210004c0000000002000019000000010200c039000000000121004b000000dd0000c13d000000e103000041000700000003001d0000000001000414000000e10210009c0000000001038019000000c001100210000000f8021001c70000000503000029000000000430004c000000000102c0190000800902000039000080010200603900008001040000390000000005000019038003760000040f000600000002001d00000000020100190000006002200270000100e10020019d00030000000103550380031a0000040f0000000601000029000000010110018f0380035e0000040f000000400100043d000600000001001d038003000000040f00000006040000290000000001410049000000e10210009c00000007030000290000000001038019000000e10240009c0000000002030019000000000204401900000040022002100000006001100210000000000121019f000003810001042e000000f40100004100000000001004350000001101000039000000040010043f000000f50100004100000382000104300000006001000039000000000230004c000002e30000613d0000003f01300039000000f702100197000000400100043d0000000002210019000000000412004b00000000040000190000000104004039000000ea0520009c0000003d0000213d00000001044001900000003d0000c13d000000400020043f0000000002310436000000030300036700000001050000310000001f0450018f0000000505500272000002d40000613d000000000600001900000005076002100000000008720019000000000773034f000000000707043b00000000007804350000000106600039000000000756004b000002cc0000413d000000000640004c000002e30000613d0000000505500210000000000353034f00000000025200190000000304400210000000000502043300000000054501cf000000000545022f000000000303043b0000010004400089000000000343022f00000000034301cf000000000353019f00000000003204350000000021010434000000050310008c000002ef0000413d000000e103000041000000e10420009c0000000002038019000000e10410009c000000000103801900000060011002100000004002200210000000000121019f0000038200010430000000400200043d000700000002001d000000ed0100004100000000001204350000000401200039038003510000040f00000007040000290000000001410049000000e102000041000000e10310009c0000000001028019000000e10340009c000000000204401900000040022002100000006001100210000000000121019f0000038200010430000000200210003900000040030000390000000000320435000000fd0200004100000000002104350000004003100039000000600200043d00000000002304350000006001100039000000000320004c000003130000613d000000000300001900000000043100190000008005300039000000000505043300000000005404350000002003300039000000000423004b0000030c0000413d000000000321001900000000000304350000001f02200039000000200300008a000000000232016f0000000001210019000000000001042d000000600100003900000001020000320000034a0000613d000000fe0120009c0000034b0000813d0000003f01200039000000200300008a000000000331016f000000400100043d0000000003310019000000000413004b00000000040000190000000104004039000000ea0530009c0000034b0000213d00000001044001900000034b0000c13d000000400030043f0000000002210436000000030300036700000001050000310000001f0450018f00000005055002720000033b0000613d000000000600001900000005076002100000000008720019000000000773034f000000000707043b00000000007804350000000106600039000000000756004b000003330000413d000000000640004c0000034a0000613d0000000505500210000000000353034f00000000025200190000000304400210000000000502043300000000054501cf000000000545022f000000000303043b0000010004400089000000000343022f00000000034301cf000000000353019f0000000000320435000000000001042d000000f40100004100000000001004350000004101000039000000040010043f000000f50100004100000382000104300000006002100039000000ff03000041000000000032043500000040021000390000010003000041000000000032043500000020021000390000002a030000390000000000320435000000200200003900000000002104350000008001100039000000000001042d000000000110004c000003610000613d000000000001042d000000400100043d00000064021000390000010103000041000000000032043500000044021000390000010203000041000000000032043500000024021000390000002a030000390000000000320435000000ed020000410000000000210435000000040210003900000020030000390000000000320435000000e102000041000000e10310009c0000000001028019000000400110021000000103011001c7000003820001043000000379002104210000000102000039000000000001042d0000000002000019000000000001042d0000037e002104230000000102000039000000000001042d0000000002000019000000000001042d0000038000000432000003810001042e0000038200010430000000000000000000000000000000000000000000000000000000000000000000000000ffffffff8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000020000000000000000000000000000004000000100000000000000000000000000000000000000000000000000000000000000000000000000038a24bc00000000000000000000000000000000000000000000000000000000817b17f00000000000000000000000000000000000000000000000000000000085fa292f0000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000949431dc0000000000000000000000000000000000000000000000000000000008c379a000000000000000000000000000000000000000000000000000000000556e737570706f72746564207061796d617374657220666c6f770000000000000000000000000000000000000000000000000064000000800000000000000000496e76616c696420746f6b656e000000000000000000000000000000000000000000000000000000000000000000000000000064000000000000000000000000dd62ed3e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000440000000000000000000000004e487b7100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002400000000000000000000000023b872dd0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001ffffffe002000000000000000000000000000000000000000000000000000000000000004d696e20616c6c6f77616e636520746f6f206c6f770000000000000000000000546865207374616e64617264207061796d617374657220696e707574206d757374206265206174206c656173742034206279746573206c6f6e670000000000000000000000000000000000000000000000000084000000800000000000000000038a24bc0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000007327206163636f756e74000000000000000000000000000000000000000000004661696c656420746f207472616e7366657246726f6d2066726f6d2075736572626f6f746c6f61646572000000000000000000000000000000000000000000004661696c656420746f207472616e736665722066756e647320746f2074686520000000000000000000000000000000000000008400000000000000000000000016d6eaaf8503a681a042bb590f4f8cbfec8c3ccaa01e88f5dd693df39764a1ca", - "deployedBytecode": "0x0004000000000002000700000000000200000000030100190000006003300270000000e10430019700030000004103550002000000010355000000e10030019d000100000000001f0000000101200190000000340000c13d0000008001000039000000400010043f0000000002000031000000040120008c000000430000413d0000000201000367000000000301043b000000e003300270000000e60430009c0000007c0000613d000000e70430009c000000d10000613d000000e80130009c000000dd0000c13d0000000001000416000000000110004c000000dd0000c13d000000040100008a0000000001100031000000e202000041000000000310004c00000000030000190000000003024019000000e201100197000000000410004c000000000200a019000000e20110009c00000000010300190000000001026019000000000110004c000000dd0000c13d000000000100041a000000e301100197000000400200043d0000000000120435000000e101000041000000e10320009c00000000010240190000004001100210000000e9011001c7000003810001042e0000000001000416000000000110004c000000dd0000c13d00000000010000310000009f02100039000000200300008a000000000232016f0000007f0320008c000000470000213d000000f40100004100000000001004350000004101000039000000040010043f000000f5010000410000038200010430000000000120004c000000dd0000c13d0000000001000019000003810001042e000000400020043f0000001f0210018f00000002030003670000000504100272000000550000613d00000000050000190000000506500210000000000763034f000000000707043b000000800660003900000000007604350000000105500039000000000645004b0000004d0000413d000000000520004c000000640000613d0000000504400210000000000343034f00000003022002100000008004400039000000000504043300000000052501cf000000000525022f000000000303043b0000010002200089000000000323022f00000000022301cf000000000252019f0000000000240435000000e202000041000000200310008c00000000030000190000000003024019000000e201100197000000000410004c000000000200a019000000e20110009c00000000010300190000000001026019000000000110004c000000dd0000c13d000000800100043d000000e30210009c000000dd0000213d000000000200041a000000e402200197000000000112019f000000000010041b000000200100003900000100001004430000012000000443000000e501000041000003810001042e000000040320008a000000e204000041000000600530008c00000000050000190000000005044019000000e203300197000000000630004c000000000400a019000000e20330009c00000000030500190000000003046019000000000330004c000000dd0000c13d0000004403100370000000000a03043b000000ea03a0009c000000dd0000213d0000000403a000390000000004320049000000e205000041000002600640008c00000000060000190000000006054019000000e204400197000000000740004c000000000500a019000000e20440009c00000000040600190000000004056019000000000440004c000000dd0000c13d0000022404a00039000000000441034f0000000005a20049000000230550008a000000000404043b000000e206000041000000000754004b00000000070000190000000007068019000000e205500197000000e208400197000000000958004b0000000006008019000000000558013f000000e20550009c00000000050700190000000005066019000000000550004c000000dd0000c13d0000000003340019000000000431034f000000000404043b000000ea0540009c000000dd0000213d00000000054200490000002002300039000000e206000041000000000752004b00000000070000190000000007062019000000e205500197000000e208200197000000000958004b0000000006008019000000000558013f000000e20550009c00000000050700190000000005066019000000000550004c000000dd0000c13d000000030540008c000001110000213d000000ed01000041000000800010043f0000002001000039000000840010043f0000003a01000039000000a40010043f000000fa01000041000000c40010043f000000fb01000041000000e40010043f000000fc010000410000038200010430000000040320008a000000e204000041000000c00530008c00000000050000190000000005044019000000e206300197000000000760004c000000000400a019000000e20660009c000000000405c019000000000440004c000000df0000613d000000000100001900000382000104300000000404100370000000000404043b000000ea0540009c000000dd0000213d0000002305400039000000e206000041000000000725004b00000000070000190000000007068019000000e208200197000000e205500197000000000985004b0000000006008019000000000585013f000000e20550009c00000000050700190000000005066019000000000550004c000000dd0000c13d0000000405400039000000000551034f000000000505043b000000ea0650009c000000dd0000213d00000000045400190000002404400039000000000224004b000000dd0000213d0000002402100370000000000202043b000000ea0420009c000000dd0000213d0000000002230049000000e203000041000002600420008c00000000040000190000000004034019000000e202200197000000000520004c000000000300a019000000e20220009c00000000020400190000000002036019000000000220004c000000dd0000c13d0000008401100370000000000101043b000000010110008c000000dd0000213d000000450000013d000000000221034f000000000202043b000000eb02200197000000ec0220009c000001860000c13d000000040240008a000000600420008c000000dd0000413d0000002404300039000000000541034f000000000505043b000700000005001d000000e30550009c000000dd0000213d0000006405300039000000000551034f0000004403300039000000000331034f000000000303043b000600000003001d000000000305043b000000ea0530009c000000dd0000213d000000000242001900000000034300190000001f04300039000000e205000041000000000624004b00000000060000190000000006058019000000e204400197000000e207200197000000000874004b0000000005008019000000000474013f000000e20440009c00000000040600190000000004056019000000000440004c000000dd0000c13d00050000000a001d000000000131034f000000000101043b000000ea0410009c0000003d0000213d000000bf04100039000000200500008a000000000454016f000000ea0540009c0000003d0000213d000000400040043f000000800010043f00000020033000390000000004310019000000000224004b000000dd0000213d0000001f0210018f00000002033003670000000504100272000001560000613d00000000050000190000000506500210000000000763034f000000000707043b000000a00660003900000000007604350000000105500039000000000645004b0000014e0000413d000000000520004c000001650000613d0000000504400210000000000343034f0000000302200210000000a004400039000000000504043300000000052501cf000000000525022f000000000303043b0000010002200089000000000323022f00000000022301cf000000000252019f0000000000240435000000a0011000390000000000010435000000000100041a000000e3011001970000000702000029000000000112004b000001900000c13d000000050100002900000024011000390000000201100367000000000201043b000000400500043d000000f20100004100000000001504350000000001000410000000e30410019700000024035000390000000001000414000200000004001d0000000000430435000000e303200197000400000005001d0000000402500039000100000003001d00000000003204350000000702000029000000040220008c000001a20000c13d0000000103000031000000200130008c00000020040000390000000004034019000001d50000013d000000ed01000041000000800010043f0000002001000039000000840010043f0000001a01000039000000a40010043f000000ee01000041000000c40010043f000000ef010000410000038200010430000000400100043d0000004402100039000000f003000041000000000032043500000024021000390000000d030000390000000000320435000000ed020000410000000000210435000000040210003900000020030000390000000000320435000000e102000041000000e10310009c00000000010280190000004001100210000000f1011001c70000038200010430000000e102000041000000e10310009c00000000010280190000000404000029000000e10340009c00000000020440190000004002200210000000c001100210000000000121019f000000f3011001c700000007020000290380037b0000040f000000040a00002900000000030100190000006003300270000000e103300197000000200430008c000000200400003900000000040340190000001f0540018f0000000506400272000001c10000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b000001b90000413d000000000750004c000001d10000613d0000000506600210000000000761034f000000040800002900000000066800190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f00030000000103550000000102200190000001fb0000613d0000001f01400039000000600110018f00000004020000290000000002210019000000000112004b00000000010000190000000101004039000300000002001d000000ea0220009c0000003d0000213d00000001011001900000003d0000c13d0000000301000029000000400010043f000000200130008c000000dd0000413d00000004010000290000000001010433000000000110004c000002210000c13d00000003030000290000004401300039000000f9020000410000000000210435000000240130003900000015020000390000000000210435000000ed010000410000000000130435000000040130003900000020020000390000000000210435000000e101000041000000e10230009c00000000010340190000004001100210000000f1011001c70000038200010430000000400200043d0000001f0430018f0000000503300272000002080000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b000002000000413d000000000540004c000002170000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000000e1010000410000000103000031000000e10430009c0000000003018019000000e10420009c000000000102401900000040011002100000006002300210000000000112019f0000038200010430000000050400002900000064014000390000000202000367000000000312034f000000a401400039000000000112034f000000000101043b000000000203043b00000000342100a9000500000004001d000000000320004c000002310000613d000000050300002900000000322300d9000000000112004b000002b00000c13d000000f6010000410000000304000029000000000014043500000044024000390000000001000414000000060300002900000000003204350000002402400039000000020300002900000000003204350000000402400039000000010300002900000000003204350000000702000029000000040220008c000002460000c13d0000000103000031000000200130008c00000020040000390000000004034019000002790000013d000000e102000041000000e10310009c00000000010280190000000304000029000000e10340009c00000000020440190000004002200210000000c001100210000000000121019f000000f1011001c70000000702000029038003760000040f000000030a00002900000000030100190000006003300270000000e103300197000000200430008c000000200400003900000000040340190000001f0540018f0000000506400272000002650000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b0000025d0000413d000000000750004c000002750000613d0000000506600210000000000761034f000000030800002900000000066800190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f00030000000103550000000101200190000002b60000613d0000001f01400039000000600110018f00000003020000290000000001210019000000ea0210009c0000003d0000213d000000400010043f000000200130008c000000dd0000413d00000003010000290000000001010433000000000210004c0000000002000019000000010200c039000000000121004b000000dd0000c13d000000e103000041000700000003001d0000000001000414000000e10210009c0000000001038019000000c001100210000000f8021001c70000000503000029000000000430004c000000000102c0190000800902000039000080010200603900008001040000390000000005000019038003760000040f000600000002001d00000000020100190000006002200270000100e10020019d00030000000103550380031a0000040f0000000601000029000000010110018f0380035e0000040f000000400100043d000600000001001d038003000000040f00000006040000290000000001410049000000e10210009c00000007030000290000000001038019000000e10240009c0000000002030019000000000204401900000040022002100000006001100210000000000121019f000003810001042e000000f40100004100000000001004350000001101000039000000040010043f000000f50100004100000382000104300000006001000039000000000230004c000002e30000613d0000003f01300039000000f702100197000000400100043d0000000002210019000000000412004b00000000040000190000000104004039000000ea0520009c0000003d0000213d00000001044001900000003d0000c13d000000400020043f0000000002310436000000030300036700000001050000310000001f0450018f0000000505500272000002d40000613d000000000600001900000005076002100000000008720019000000000773034f000000000707043b00000000007804350000000106600039000000000756004b000002cc0000413d000000000640004c000002e30000613d0000000505500210000000000353034f00000000025200190000000304400210000000000502043300000000054501cf000000000545022f000000000303043b0000010004400089000000000343022f00000000034301cf000000000353019f00000000003204350000000021010434000000050310008c000002ef0000413d000000e103000041000000e10420009c0000000002038019000000e10410009c000000000103801900000060011002100000004002200210000000000121019f0000038200010430000000400200043d000700000002001d000000ed0100004100000000001204350000000401200039038003510000040f00000007040000290000000001410049000000e102000041000000e10310009c0000000001028019000000e10340009c000000000204401900000040022002100000006001100210000000000121019f0000038200010430000000200210003900000040030000390000000000320435000000fd0200004100000000002104350000004003100039000000600200043d00000000002304350000006001100039000000000320004c000003130000613d000000000300001900000000043100190000008005300039000000000505043300000000005404350000002003300039000000000423004b0000030c0000413d000000000321001900000000000304350000001f02200039000000200300008a000000000232016f0000000001210019000000000001042d000000600100003900000001020000320000034a0000613d000000fe0120009c0000034b0000813d0000003f01200039000000200300008a000000000331016f000000400100043d0000000003310019000000000413004b00000000040000190000000104004039000000ea0530009c0000034b0000213d00000001044001900000034b0000c13d000000400030043f0000000002210436000000030300036700000001050000310000001f0450018f00000005055002720000033b0000613d000000000600001900000005076002100000000008720019000000000773034f000000000707043b00000000007804350000000106600039000000000756004b000003330000413d000000000640004c0000034a0000613d0000000505500210000000000353034f00000000025200190000000304400210000000000502043300000000054501cf000000000545022f000000000303043b0000010004400089000000000343022f00000000034301cf000000000353019f0000000000320435000000000001042d000000f40100004100000000001004350000004101000039000000040010043f000000f50100004100000382000104300000006002100039000000ff03000041000000000032043500000040021000390000010003000041000000000032043500000020021000390000002a030000390000000000320435000000200200003900000000002104350000008001100039000000000001042d000000000110004c000003610000613d000000000001042d000000400100043d00000064021000390000010103000041000000000032043500000044021000390000010203000041000000000032043500000024021000390000002a030000390000000000320435000000ed020000410000000000210435000000040210003900000020030000390000000000320435000000e102000041000000e10310009c0000000001028019000000400110021000000103011001c7000003820001043000000379002104210000000102000039000000000001042d0000000002000019000000000001042d0000037e002104230000000102000039000000000001042d0000000002000019000000000001042d0000038000000432000003810001042e0000038200010430000000000000000000000000000000000000000000000000000000000000000000000000ffffffff8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000020000000000000000000000000000004000000100000000000000000000000000000000000000000000000000000000000000000000000000038a24bc00000000000000000000000000000000000000000000000000000000817b17f00000000000000000000000000000000000000000000000000000000085fa292f0000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000949431dc0000000000000000000000000000000000000000000000000000000008c379a000000000000000000000000000000000000000000000000000000000556e737570706f72746564207061796d617374657220666c6f770000000000000000000000000000000000000000000000000064000000800000000000000000496e76616c696420746f6b656e000000000000000000000000000000000000000000000000000000000000000000000000000064000000000000000000000000dd62ed3e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000440000000000000000000000004e487b7100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002400000000000000000000000023b872dd0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001ffffffe002000000000000000000000000000000000000000000000000000000000000004d696e20616c6c6f77616e636520746f6f206c6f770000000000000000000000546865207374616e64617264207061796d617374657220696e707574206d757374206265206174206c656173742034206279746573206c6f6e670000000000000000000000000000000000000000000000000084000000800000000000000000038a24bc0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000007327206163636f756e74000000000000000000000000000000000000000000004661696c656420746f207472616e7366657246726f6d2066726f6d2075736572626f6f746c6f61646572000000000000000000000000000000000000000000004661696c656420746f207472616e736665722066756e647320746f2074686520000000000000000000000000000000000000008400000000000000000000000016d6eaaf8503a681a042bb590f4f8cbfec8c3ccaa01e88f5dd693df39764a1ca", - "linkReferences": {}, - "deployedLinkReferences": {}, - "factoryDeps": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/contracts/Root.sol/Root.dbg.json b/packages/integration-tests/src/playbook/artifacts-zk/contracts/Root.sol/Root.dbg.json deleted file mode 100644 index 973a2e83f9..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/contracts/Root.sol/Root.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../build-info/92cb10df65f6d26368974b9012699389.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts-zk/contracts/Root.sol/Root.json b/packages/integration-tests/src/playbook/artifacts-zk/contracts/Root.sol/Root.json deleted file mode 100644 index 8d2e0234d3..0000000000 --- a/packages/integration-tests/src/playbook/artifacts-zk/contracts/Root.sol/Root.json +++ /dev/null @@ -1,62 +0,0 @@ -{ - "_format": "hh-zksolc-artifact-1", - "contractName": "Root", - "sourceName": "contracts/Root.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "string", - "name": "_greeting", - "type": "string" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "string", - "name": "greeting", - "type": "string" - } - ], - "name": "SetGreeting", - "type": "event" - }, - { - "inputs": [], - "name": "greet", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "string", - "name": "_greeting", - "type": "string" - } - ], - "name": "setGreeting", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x0002000000000002000400000000000200010000000103550000006001100270000000920010019d0000008001000039000000400010043f0000000101200190000000a80000c13d0000000001000031000000040110008c0000010e0000413d0000000101000367000000000101043b000000e001100270000000980210009c000000fd0000613d000000990110009c0000010e0000c13d0000000001000416000000000110004c0000010e0000c13d0000000001000031000000040210008a0000009403000041000000200420008c000000000400001900000000040340190000009402200197000000000520004c000000000300a019000000940220009c00000000020400190000000002036019000000000220004c0000010e0000c13d00000001020003670000000403200370000000000303043b000000930430009c0000010e0000213d00000023043000390000009405000041000000000614004b0000000006000019000000000605801900000094011001970000009404400197000000000714004b0000000005008019000000000114013f000000940110009c00000000010600190000000001056019000000000110004c0000010e0000c13d0000000401300039000000000112034f000000000201043b000000930120009c000000f70000213d000000bf04200039000000200100008a000000000414016f000000930540009c000000f70000213d000000400040043f000000800020043f000000240430003900000000034200190000000005000031000000000353004b0000010e0000213d0000001f0320018f00000001044003670000000505200272000000560000613d00000000060000190000000507600210000000000874034f000000000808043b000000a00770003900000000008704350000000106600039000000000756004b0000004e0000413d000000000630004c000000650000613d0000000505500210000000000454034f0000000303300210000000a005500039000000000605043300000000063601cf000000000636022f000000000404043b0000010003300089000000000434022f00000000033401cf000000000363019f0000000000350435000000a0022000390000000000020435000000800200043d000000930320009c000000f70000213d000000000400041a000000010340019000000001034002700000007f0530018f00000000030560190000001f0530008c00000000050000190000000105002039000000000454013f00000001044001900000011c0000c13d000000200430008c000000870000413d0000001f0420003900000005044002700000009a044000410000009a05000041000000200620008c000000000405401900000000000004350000001f0330003900000005033002700000009a03300041000000000534004b000000870000813d000000000004041b0000000104400039000000000534004b000000830000413d0000001f0320008c000001d80000a13d00000000041201700000009a03000041000000a00500003900000000000004350000009b0000613d00000020070000390000009a030000410000000005000019000000000607001900000080076000390000000007070433000000000073041b000000200760003900000001033000390000002005500039000000000845004b000000910000413d000000a005600039000000000424004b000000a50000813d0000000304200210000000f80440018f000000010600008a000000000446022f000000000464013f0000000005050433000000000445016f000000000043041b00000001030000390000000104200210000001e20000013d0000000001000416000000000110004c0000010e0000c13d00000000010000310000001f02100039000000200900008a000000000492016f000000400200043d0000000003240019000000000443004b00000000040000190000000104004039000000930530009c000000f70000213d0000000104400190000000f70000c13d000000400030043f0000001f0310018f00000001040003670000000505100272000000c60000613d000000000600001900000005076002100000000008720019000000000774034f000000000707043b00000000007804350000000106600039000000000756004b000000be0000413d000000000630004c000000d50000613d0000000505500210000000000454034f00000000055200190000000303300210000000000605043300000000063601cf000000000636022f000000000404043b0000010003300089000000000434022f00000000033401cf000000000363019f00000000003504350000009403000041000000200410008c000000000400001900000000040340190000009405100197000000000650004c000000000300a019000000940550009c000000000304c019000000000330004c0000010e0000c13d0000000004020433000000930340009c0000010e0000213d000000000312001900000000012400190000001f021000390000009404000041000000000532004b0000000005000019000000000504801900000094022001970000009406300197000000000762004b0000000004008019000000000262013f000000940220009c00000000020500190000000002046019000000000220004c0000010e0000c13d0000000002010433000000930420009c000001340000a13d0000009d0100004100000000001004350000004101000039000000040010043f0000009e0100004100000243000104300000000001000416000000000110004c0000010e0000c13d000000040100008a00000000011000310000009402000041000000000310004c000000000300001900000000030240190000009401100197000000000410004c000000000200a019000000940110009c00000000010300190000000001026019000000000110004c000001100000613d00000000010000190000024300010430000000000300041a000000010430019000000001013002700000007f0210018f000000000701001900000000070260190000001f0270008c00000000020000190000000102002039000000000223013f0000000102200190000001220000613d0000009d0100004100000000001004350000002201000039000000040010043f0000009e010000410000024300010430000000400100043d0000000002710436000000000440004c000001af0000613d0000000000000435000000000370004c0000000003000019000001b50000613d0000009a0400004100000000030000190000000005320019000000000604041a000000000065043500000001044000390000002003300039000000000573004b0000012c0000413d000001b50000013d0000003f04200039000000000494016f000000400700043d0000000004470019000000000574004b00000000050000190000000105004039000000930640009c000000f70000213d0000000105500190000000f70000c13d000000400040043f000000000627043600000000042100190000002004400039000000000334004b0000010e0000213d000000000320004c0000014f0000613d000000000300001900000000046300190000002003300039000000000513001900000000050504330000000000540435000000000423004b000001480000413d00000000012600190000000000010435000000000100041a000000010210019000000001011002700000007f0310018f000000000301c0190000001f0130008c00000000010000190000000101002039000000010110018f000000000112004b0000011c0000c13d000000200130008c0000017b0000413d000100000003001d000000000000043500000092010000410000000002000414000000920320009c0000000001024019000000c00110021000000095011001c70000801002000039000400000009001d000300000007001d000200000006001d0241023c0000040f00000002060000290000000307000029000000040900002900000001022001900000010e0000613d000000000101043b00000001020000290000001f0220003900000005022002700000000002210019000000000321004b0000017b0000813d000000000001041b0000000101100039000000000321004b000001770000413d0000009601000041000000000010041b0000000004070433000000930140009c000000f70000213d0000001f0140008c000001c70000a13d000200000004001d000000000000043500000092010000410000000002000414000000920320009c0000000001024019000000c00110021000000095011001c70000801002000039000400000009001d000300000007001d0241023c0000040f0000000306000029000000040300002900000001022001900000010e0000613d000000020700002900000000033701700000002002000039000000000101043b000001a10000613d0000002002000039000000000400001900000000056200190000000005050433000000000051041b000000200220003900000001011000390000002004400039000000000534004b000001990000413d000000000373004b000001ac0000813d0000000303700210000000f80330018f000000010400008a000000000334022f000000000343013f00000000026200190000000002020433000000000232016f000000000021041b00000001010000390000000102700210000001d10000013d000001000400008a000000000343016f0000000000320435000000000270004c000000200300003900000000030060190000002002300039000400000001001d0241020e0000040f000000400100043d000300000001001d0000000402000029024102210000040f000000030400002900000000014100490000009202000041000000920310009c0000000001028019000000920340009c000000000204401900000040022002100000006001100210000000000121019f000002420001042e000000000140004c0000000001000019000001cb0000613d00000000010604330000000302400210000000010300008a000000000223022f000000000232013f000000000221016f0000000101400210000000000112019f000000000010041b0000002001000039000001000010044300000120000004430000009701000041000002420001042e000000000320004c0000000003000019000001dc0000613d000000a00300043d0000000304200210000000010500008a000000000445022f000000000454013f000000000443016f0000000103200210000000000234019f000000000020041b0000002003000039000000400200043d0000000004320436000000800300043d00000000003404350000004004200039000000000530004c000001f40000613d00000000050000190000000006450019000000a007500039000000000707043300000000007604350000002005500039000000000635004b000001ed0000413d000000000443001900000000000404350000005f03300039000000000113016f0000009203000041000000920420009c00000000020380190000004002200210000000920410009c00000000010380190000006001100210000000000121019f0000000002000414000000920420009c0000000002038019000000c002200210000000000112019f0000009b011001c70000800d0200003900000001030000390000009c04000041024102370000040f00000001012001900000010e0000613d0000000001000019000002420001042e0000001f02200039000000200300008a000000000232016f0000000001120019000000000221004b00000000020000190000000102004039000000930310009c0000021b0000213d00000001022001900000021b0000c13d000000400010043f000000000001042d0000009d0100004100000000001004350000004101000039000000040010043f0000009e01000041000002430001043000000020030000390000000004310436000000000302043300000000003404350000004001100039000000000430004c000002300000613d000000000400001900000000054100190000002004400039000000000624001900000000060604330000000000650435000000000534004b000002290000413d000000000231001900000000000204350000001f02300039000000200300008a000000000232016f0000000001210019000000000001042d0000023a002104210000000102000039000000000001042d0000000002000019000000000001042d0000023f002104230000000102000039000000000001042d0000000002000019000000000001042d0000024100000432000002420001042e0000024300010430000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff000000000000000000000000000000000000000000000000ffffffffffffffff8000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000002000000000000000000000000048692066726f6d20526f6f740000000000000000000000000000000000000018000000020000000000000000000000000000004000000100000000000000000000000000000000000000000000000000000000000000000000000000cfae321700000000000000000000000000000000000000000000000000000000a4136862290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56302000000000000000000000000000000000000000000000000000000000000004dabe8361a35a905ec9d530e301d2e5c6cf44c65cdd7768f522a77a373436da94e487b710000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b3b95f608f07b1a53792c7ccc830e1cdbcce8dfb925732abaa19415ab1968096", - "deployedBytecode": "0x0002000000000002000400000000000200010000000103550000006001100270000000920010019d0000008001000039000000400010043f0000000101200190000000a80000c13d0000000001000031000000040110008c0000010e0000413d0000000101000367000000000101043b000000e001100270000000980210009c000000fd0000613d000000990110009c0000010e0000c13d0000000001000416000000000110004c0000010e0000c13d0000000001000031000000040210008a0000009403000041000000200420008c000000000400001900000000040340190000009402200197000000000520004c000000000300a019000000940220009c00000000020400190000000002036019000000000220004c0000010e0000c13d00000001020003670000000403200370000000000303043b000000930430009c0000010e0000213d00000023043000390000009405000041000000000614004b0000000006000019000000000605801900000094011001970000009404400197000000000714004b0000000005008019000000000114013f000000940110009c00000000010600190000000001056019000000000110004c0000010e0000c13d0000000401300039000000000112034f000000000201043b000000930120009c000000f70000213d000000bf04200039000000200100008a000000000414016f000000930540009c000000f70000213d000000400040043f000000800020043f000000240430003900000000034200190000000005000031000000000353004b0000010e0000213d0000001f0320018f00000001044003670000000505200272000000560000613d00000000060000190000000507600210000000000874034f000000000808043b000000a00770003900000000008704350000000106600039000000000756004b0000004e0000413d000000000630004c000000650000613d0000000505500210000000000454034f0000000303300210000000a005500039000000000605043300000000063601cf000000000636022f000000000404043b0000010003300089000000000434022f00000000033401cf000000000363019f0000000000350435000000a0022000390000000000020435000000800200043d000000930320009c000000f70000213d000000000400041a000000010340019000000001034002700000007f0530018f00000000030560190000001f0530008c00000000050000190000000105002039000000000454013f00000001044001900000011c0000c13d000000200430008c000000870000413d0000001f0420003900000005044002700000009a044000410000009a05000041000000200620008c000000000405401900000000000004350000001f0330003900000005033002700000009a03300041000000000534004b000000870000813d000000000004041b0000000104400039000000000534004b000000830000413d0000001f0320008c000001d80000a13d00000000041201700000009a03000041000000a00500003900000000000004350000009b0000613d00000020070000390000009a030000410000000005000019000000000607001900000080076000390000000007070433000000000073041b000000200760003900000001033000390000002005500039000000000845004b000000910000413d000000a005600039000000000424004b000000a50000813d0000000304200210000000f80440018f000000010600008a000000000446022f000000000464013f0000000005050433000000000445016f000000000043041b00000001030000390000000104200210000001e20000013d0000000001000416000000000110004c0000010e0000c13d00000000010000310000001f02100039000000200900008a000000000492016f000000400200043d0000000003240019000000000443004b00000000040000190000000104004039000000930530009c000000f70000213d0000000104400190000000f70000c13d000000400030043f0000001f0310018f00000001040003670000000505100272000000c60000613d000000000600001900000005076002100000000008720019000000000774034f000000000707043b00000000007804350000000106600039000000000756004b000000be0000413d000000000630004c000000d50000613d0000000505500210000000000454034f00000000055200190000000303300210000000000605043300000000063601cf000000000636022f000000000404043b0000010003300089000000000434022f00000000033401cf000000000363019f00000000003504350000009403000041000000200410008c000000000400001900000000040340190000009405100197000000000650004c000000000300a019000000940550009c000000000304c019000000000330004c0000010e0000c13d0000000004020433000000930340009c0000010e0000213d000000000312001900000000012400190000001f021000390000009404000041000000000532004b0000000005000019000000000504801900000094022001970000009406300197000000000762004b0000000004008019000000000262013f000000940220009c00000000020500190000000002046019000000000220004c0000010e0000c13d0000000002010433000000930420009c000001340000a13d0000009d0100004100000000001004350000004101000039000000040010043f0000009e0100004100000243000104300000000001000416000000000110004c0000010e0000c13d000000040100008a00000000011000310000009402000041000000000310004c000000000300001900000000030240190000009401100197000000000410004c000000000200a019000000940110009c00000000010300190000000001026019000000000110004c000001100000613d00000000010000190000024300010430000000000300041a000000010430019000000001013002700000007f0210018f000000000701001900000000070260190000001f0270008c00000000020000190000000102002039000000000223013f0000000102200190000001220000613d0000009d0100004100000000001004350000002201000039000000040010043f0000009e010000410000024300010430000000400100043d0000000002710436000000000440004c000001af0000613d0000000000000435000000000370004c0000000003000019000001b50000613d0000009a0400004100000000030000190000000005320019000000000604041a000000000065043500000001044000390000002003300039000000000573004b0000012c0000413d000001b50000013d0000003f04200039000000000494016f000000400700043d0000000004470019000000000574004b00000000050000190000000105004039000000930640009c000000f70000213d0000000105500190000000f70000c13d000000400040043f000000000627043600000000042100190000002004400039000000000334004b0000010e0000213d000000000320004c0000014f0000613d000000000300001900000000046300190000002003300039000000000513001900000000050504330000000000540435000000000423004b000001480000413d00000000012600190000000000010435000000000100041a000000010210019000000001011002700000007f0310018f000000000301c0190000001f0130008c00000000010000190000000101002039000000010110018f000000000112004b0000011c0000c13d000000200130008c0000017b0000413d000100000003001d000000000000043500000092010000410000000002000414000000920320009c0000000001024019000000c00110021000000095011001c70000801002000039000400000009001d000300000007001d000200000006001d0241023c0000040f00000002060000290000000307000029000000040900002900000001022001900000010e0000613d000000000101043b00000001020000290000001f0220003900000005022002700000000002210019000000000321004b0000017b0000813d000000000001041b0000000101100039000000000321004b000001770000413d0000009601000041000000000010041b0000000004070433000000930140009c000000f70000213d0000001f0140008c000001c70000a13d000200000004001d000000000000043500000092010000410000000002000414000000920320009c0000000001024019000000c00110021000000095011001c70000801002000039000400000009001d000300000007001d0241023c0000040f0000000306000029000000040300002900000001022001900000010e0000613d000000020700002900000000033701700000002002000039000000000101043b000001a10000613d0000002002000039000000000400001900000000056200190000000005050433000000000051041b000000200220003900000001011000390000002004400039000000000534004b000001990000413d000000000373004b000001ac0000813d0000000303700210000000f80330018f000000010400008a000000000334022f000000000343013f00000000026200190000000002020433000000000232016f000000000021041b00000001010000390000000102700210000001d10000013d000001000400008a000000000343016f0000000000320435000000000270004c000000200300003900000000030060190000002002300039000400000001001d0241020e0000040f000000400100043d000300000001001d0000000402000029024102210000040f000000030400002900000000014100490000009202000041000000920310009c0000000001028019000000920340009c000000000204401900000040022002100000006001100210000000000121019f000002420001042e000000000140004c0000000001000019000001cb0000613d00000000010604330000000302400210000000010300008a000000000223022f000000000232013f000000000221016f0000000101400210000000000112019f000000000010041b0000002001000039000001000010044300000120000004430000009701000041000002420001042e000000000320004c0000000003000019000001dc0000613d000000a00300043d0000000304200210000000010500008a000000000445022f000000000454013f000000000443016f0000000103200210000000000234019f000000000020041b0000002003000039000000400200043d0000000004320436000000800300043d00000000003404350000004004200039000000000530004c000001f40000613d00000000050000190000000006450019000000a007500039000000000707043300000000007604350000002005500039000000000635004b000001ed0000413d000000000443001900000000000404350000005f03300039000000000113016f0000009203000041000000920420009c00000000020380190000004002200210000000920410009c00000000010380190000006001100210000000000121019f0000000002000414000000920420009c0000000002038019000000c002200210000000000112019f0000009b011001c70000800d0200003900000001030000390000009c04000041024102370000040f00000001012001900000010e0000613d0000000001000019000002420001042e0000001f02200039000000200300008a000000000232016f0000000001120019000000000221004b00000000020000190000000102004039000000930310009c0000021b0000213d00000001022001900000021b0000c13d000000400010043f000000000001042d0000009d0100004100000000001004350000004101000039000000040010043f0000009e01000041000002430001043000000020030000390000000004310436000000000302043300000000003404350000004001100039000000000430004c000002300000613d000000000400001900000000054100190000002004400039000000000624001900000000060604330000000000650435000000000534004b000002290000413d000000000231001900000000000204350000001f02300039000000200300008a000000000232016f0000000001210019000000000001042d0000023a002104210000000102000039000000000001042d0000000002000019000000000001042d0000023f002104230000000102000039000000000001042d0000000002000019000000000001042d0000024100000432000002420001042e0000024300010430000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff000000000000000000000000000000000000000000000000ffffffffffffffff8000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000002000000000000000000000000048692066726f6d20526f6f740000000000000000000000000000000000000018000000020000000000000000000000000000004000000100000000000000000000000000000000000000000000000000000000000000000000000000cfae321700000000000000000000000000000000000000000000000000000000a4136862290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56302000000000000000000000000000000000000000000000000000000000000004dabe8361a35a905ec9d530e301d2e5c6cf44c65cdd7768f522a77a373436da94e487b710000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b3b95f608f07b1a53792c7ccc830e1cdbcce8dfb925732abaa19415ab1968096", - "linkReferences": {}, - "deployedLinkReferences": {}, - "factoryDeps": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/BootloaderUtilities.sol/BootloaderUtilities.dbg.json b/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/BootloaderUtilities.sol/BootloaderUtilities.dbg.json deleted file mode 100644 index 50520f6970..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/BootloaderUtilities.sol/BootloaderUtilities.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/e49535a141eefaebe6d9aa3bc85bbb11.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/BootloaderUtilities.sol/BootloaderUtilities.json b/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/BootloaderUtilities.sol/BootloaderUtilities.json deleted file mode 100644 index 5bd1e575e9..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/BootloaderUtilities.sol/BootloaderUtilities.json +++ /dev/null @@ -1,117 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "BootloaderUtilities", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/BootloaderUtilities.sol", - "abi": [ - { - "inputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "txType", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "from", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "to", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "gasLimit", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "gasPerPubdataByteLimit", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxFeePerGas", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxPriorityFeePerGas", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "paymaster", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "uint256[4]", - "name": "reserved", - "type": "uint256[4]" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "signature", - "type": "bytes" - }, - { - "internalType": "bytes32[]", - "name": "factoryDeps", - "type": "bytes32[]" - }, - { - "internalType": "bytes", - "name": "paymasterInput", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "reservedDynamic", - "type": "bytes" - } - ], - "internalType": "struct Transaction", - "name": "_transaction", - "type": "tuple" - } - ], - "name": "getTransactionHashes", - "outputs": [ - { - "internalType": "bytes32", - "name": "txHash", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "signedTxHash", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x60808060405234610016576114e4908161001c8239f35b600080fdfe6080604052600436101561001257600080fd5b6000803560e01c63ebe4a3d71461002857600080fd5b346101205760031960203682011261012357600435916001600160401b0383116101205761026083600401928436030112610120575061006781610e4a565b918135607181036100ad5750610088610094926101e461008e930190610127565b90610a6a565b826101b5565b602081519101205b604080519182526020820192909252f35b9050806100c357506100be906103f5565b61009c565b600281036100d557506100be90610889565b6001036100e5576100be90610671565b60405162461bcd60e51b8152602060048201526013602482015272556e737570706f72746564207478207479706560681b6044820152606490fd5b80fd5b5080fd5b903590601e198136030182121561015957018035906001600160401b0382116101595760200191813603831361015957565b600080fd5b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b0382111761018f57604052565b61015e565b90601f801991011681019081106001600160401b0382111761018f57604052565b9190604051926020840152604083015260408252606082018281106001600160401b0382111761018f57604052565b9081519160005b8381106101fc575050016000815290565b80602080928401015181850152016101eb565b61023f9061023161022b949360405195869360208501906101e4565b906101e4565b03601f198101845283610194565b565b634e487b7160e01b600052603260045260246000fd5b90156102605790565b610241565b90604010156102605760400190565b6001600160401b03811161018f57601f01601f191660200190565b6040519061029c82610174565b60018252608160f81b6020830152565b906020116101595790602090565b906040116101595760200190602090565b3590602081106102d9575090565b6000199060200360031b1b1690565b156102ef57565b60405162461bcd60e51b815260206004820152600f60248201526e496e76616c696420762076616c756560881b6044820152606490fd5b634e487b7160e01b600052601160045260246000fd5b908160011b918083046002149015171561035257565b610326565b600801908160081161035257565b9190820180921161035257565b989694919285939b9a989694919b6040519c8d9b60208d01610393916101e4565b61039c916101e4565b6103a5916101e4565b6103ae916101e4565b6103b7916101e4565b6103c0916101e4565b91823701600081526103d1916101e4565b6103da916101e4565b6103e3916101e4565b03601f198101835261023f9083610194565b610403610100820135610bfe565b61042661041360a0840135610bfe565b6104206060850135610bfe565b9061020f565b9161043d60408201356001600160a01b0316610bba565b9061044c610120820135610bfe565b926101c082019160606001600160401b036104678584610127565b9050166001811415600014610598576104809150610c81565b6101e08201956104908784610127565b610499916102ac565b6104a2916102cb565b6104ab90610bfe565b956104b68885610127565b6104bf916102ba565b6104c8916102cb565b6104d190610bfe565b976104dc9085610127565b6104e591610265565b610564999061055c90610519903560f81c601b8114801561058e575b61050a906102e8565b61014088013561056e57610bfe565b976105566105518951855101865101875101885101610538848b610127565b90508d519101018d51018b51016001600160401b031690565b610d32565b96610127565b969095610372565b6020815191012090565b6105899061058361057e4661033c565b610357565b90610365565b610bfe565b50601c8114610501565b506105a38483610127565b600160ff1b916001600160f81b0319916105cf916105c19190610257565b356001600160f81b03191690565b161061048057506105de61028f565b610480565b9261023f9461022b61022b9261022b6102319661022b61022b9c9b976040519d8e9b60208d01906101e4565b601a1981019190821161035257565b969492909897959380926040519a8b99600160f81b60208c015260218b01610645916101e4565b61064e916101e4565b610657916101e4565b9182370160008152610668916101e4565b6103d1916101e4565b6106d161067d46610bfe565b61068b610100840135610bfe565b61069860a0850135610bfe565b6106a56060860135610bfe565b906106bc60408701356001600160a01b0316610bba565b926106cb610120880135610bfe565b946105e3565b6101c082019160606001600160401b036106eb8584610127565b9050169060018214156000146107ec575061070590610c81565b925b61070f610d1e565b6101e083019361071f8585610127565b610728916102ac565b610731916102cb565b61073a90610bfe565b936107458682610127565b61074e916102ba565b610757916102cb565b61076090610bfe565b9561076b9082610127565b61077491610265565b61056497906107da906107a290610589903560f81c601b811480156107e2575b61079d906102e8565b61060f565b956107d461055186518551016107b88488610127565b905089519101018a51018b51018951016001600160401b031690565b93610127565b93909261061e565b50601c8114610794565b9390506107f98183610127565b600160ff1b916001600160f81b031991610817916105c19190610257565b161061070757925061082761028f565b92610707565b9492909695939160405197889660208801610847916101e4565b610850916101e4565b610859916101e4565b610668916101e4565b969492909897959380926040519a8b99600160f91b60208c015260218b01610645916101e4565b6108f661089546610bfe565b6108a3610100840135610bfe565b6108b060c0850135610bfe565b6108bd60a0860135610bfe565b6108ca6060870135610bfe565b916108e160408801356001600160a01b0316610bba565b936108f0610120890135610bfe565b9561082d565b6101c082019160606001600160401b036109108584610127565b9050169060018214156000146109c9575061092a90610c81565b925b610934610d1e565b6101e08301936109448585610127565b61094d916102ac565b610956916102cb565b61095f90610bfe565b9361096a8682610127565b610973916102ba565b61097c916102cb565b61098590610bfe565b956109909082610127565b61099991610265565b61056497906109c1906107a290610589903560f81c601b811480156107e25761079d906102e8565b939092610862565b9390506109d68183610127565b600160ff1b916001600160f81b0319916109f4916105c19190610257565b161061092c579250610a0461028f565b9261092c565b15610a1157565b60405162461bcd60e51b815260206004820152601f60248201527f6b656363616b3235362072657475726e656420696e76616c69642064617461006044820152606490fd5b6020815191015190602081106102d9575090565b905a9160009061ffff928280858161ffeb81fa5080610b16575050610a9463ffffffff3616610e35565b63ffffffff8311610ae657610ae392610ad1928291610ac49060c01b63ffffffff60c01b16600160e01b17610e26565b8161fff6618010fa610b96565b610ade6020825114610a0a565b610a56565b90565b60405162461bcd60e51b81526020600482015260086024820152674f766572666c6f7760c01b6044820152606490fd5b63ffffffff918380868161ffe9878616fa5081018091116103525736039036821161035257610b459116610e35565b610a94565b60405190610b5782610174565b6001825260203681840137565b90610b6e82610274565b610b7b6040519182610194565b8281528092610b8c601f1991610274565b0190602036910137565b15610bb0573d90610ba682610b64565b916000602084013e565b3d806000803e6000fd5b90604051610bc781610174565b60158152602560fa1b602082015260609290921b6bffffffffffffffffffffffff19166021830152565b8051156102605760200190565b906080821015610c3e57610c10610b4a565b9180610c2c5750600160ff1b5b60001a610c2983610bf1565b53565b60f81b6001600160f81b031916610c1d565b610c4782610d9e565b91610c5460028401610b64565b926081810160f81b6001600160f81b03191660001a610c7285610bf1565b53601f0360031b1b6021830152565b6001600160401b031660018114610d08576038811015610cc457610ca3610b4a565b9060800160f81b6001600160f81b03191660001a610cc082610bf1565b5390565b610ccd81610d9e565b90610cda60028301610b64565b9160b8810160f81b6001600160f81b03191660001a610cf884610bf1565b53601f0360031b1b602182015290565b634e487b7160e01b600052600160045260246000fd5b610d26610b4a565b9060c0610c2983610bf1565b6001600160401b0316906038821015610d6a57610d4d610b4a565b9160c00160f81b6001600160f81b03191660001a610c2983610bf1565b610d7382610d9e565b91610d8060028401610b64565b9260f8808201901b6001600160f81b03191660001a610c7285610bf1565b906000916fffffffffffffffffffffffffffffffff8111610e1a575b806001600160401b0360ff9211610e0c575b63ffffffff8111610dfe575b61ffff8111610df0575b11610de957565b9060010190565b60029060101c930192610de2565b60049060201c930192610dd8565b60089060401c930192610dcc565b6010925060801c610dba565b600061ffff8161ffe78194fa50565b600061ffff8161ffe863ffffffff829516fa50565b803580610e5b5750610ae3906111c7565b60718103610e6d5750610ae390610f24565b60028103610e7f5750610ae39061141b565b600103610e8f57610ae39061132e565b60405162461bcd60e51b815260206004820152601760248201527f456e636f64696e6720756e737570706f727465642074780000000000000000006044820152606490fd5b903590601e198136030182121561015957018035906001600160401b03821161015957602001918160051b3603831361015957565b91906001600160fb1b0381116101595760051b809282370190565b611127611133610f6292610f3f6100886101c0830183610127565b61105f610f50610200840184610ed4565b60405197602089019289928491610f09565b0396610f76601f1998898101835282610194565b51902091611053610f8e610088610220870187610127565b6040519485936020850197610120810135906101008101359060e08101359060c0810135908c60a0820135916080810135916060820135916040810135916020820135913590999693909d9c9b9895926101a09b9895926101c08c019f7f848e1bfa1ac4e3576b728bda6721b215c70a7799a5b4866282a71bab954baac88d5260208d015260408c015260608b015260808a015260a089015260c088015260e08701526101008601526101208501526101408401526101608301526101808201520152565b03868101835282610194565b5190209260405160208101906110fc816110f046859190606060808401937fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6e81527f19b453ce45aaaaf3a300f5a9ec95869b4f28ab10430b572ee218c3a6a5e07d6f60208201527fad7c5bef027816a800da1736444fb58a807ef4c9603b7848673f7e3a68eb14a560408201520152565b03848101835282610194565b51902093604051938491602083019687909160429261190160f01b8352600283015260228201520190565b03908101835282610194565b51902090565b9061023f60026111539360405194859160208301906101e4565b61010160f71b815203601d19810185520183610194565b9694919285939998969491996040519a8b9960208b01611189916101e4565b611192916101e4565b61119b916101e4565b6111a4916101e4565b6111ad916101e4565b6111b6916101e4565b91823701600081526103e3916101e4565b610564906111d9610100820135610bfe565b6111e961041360a0840135610bfe565b9161120060408201356001600160a01b0316610bba565b9261120f610120830135610bfe565b6101c083019460606001600160401b036112298887610127565b9050169060018214156000146112ae575061124390610c81565b925b606096610140860135611290575b611288906105566105518951855101865101875101885101611275848b610127565b90508c519101016001600160401b031690565b96909561116a565b96506112886112a66112a146610bfe565b611139565b979050611253565b9390506112bb8786610127565b600160ff1b916001600160f81b0319916112d9916105c19190610257565b16106112455792506112e961028f565b92611245565b929361023f94816113206102319561022b61022b9b9a966040519c8d9a600160f81b60208d015260218c01906101e4565b9182370190600082526101e4565b6105649061133e61067d46610bfe565b6101c082019160606001600160401b036113588584610127565b90501660018114156000146113ad576113719150610c81565b6113a561137c610d1e565b946107d461055186518551016113928488610127565b905089519101016001600160401b031690565b9390926112ef565b506113b88483610127565b600160ff1b916001600160f81b0319916113d6916105c19190610257565b161061137157506113e561028f565b611371565b929361023f94816113206102319561022b61022b9b9a966040519c8d9a600160f91b60208d015260218c01906101e4565b6105649061142b61089546610bfe565b6101c082019160606001600160401b036114458584610127565b90501660018114156000146114715761145e9150610c81565b61146961137c610d1e565b9390926113ea565b5061147c8483610127565b600160ff1b916001600160f81b03199161149a916105c19190610257565b161061145e57506114a961028f565b61145e56fea26469706673582212201ec62201581e0bc2ce1269f0fb33fcd1a9bb5abf856e4634e565726ba47cf39864736f6c63430008120033", - "deployedBytecode": "0x6080604052600436101561001257600080fd5b6000803560e01c63ebe4a3d71461002857600080fd5b346101205760031960203682011261012357600435916001600160401b0383116101205761026083600401928436030112610120575061006781610e4a565b918135607181036100ad5750610088610094926101e461008e930190610127565b90610a6a565b826101b5565b602081519101205b604080519182526020820192909252f35b9050806100c357506100be906103f5565b61009c565b600281036100d557506100be90610889565b6001036100e5576100be90610671565b60405162461bcd60e51b8152602060048201526013602482015272556e737570706f72746564207478207479706560681b6044820152606490fd5b80fd5b5080fd5b903590601e198136030182121561015957018035906001600160401b0382116101595760200191813603831361015957565b600080fd5b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b0382111761018f57604052565b61015e565b90601f801991011681019081106001600160401b0382111761018f57604052565b9190604051926020840152604083015260408252606082018281106001600160401b0382111761018f57604052565b9081519160005b8381106101fc575050016000815290565b80602080928401015181850152016101eb565b61023f9061023161022b949360405195869360208501906101e4565b906101e4565b03601f198101845283610194565b565b634e487b7160e01b600052603260045260246000fd5b90156102605790565b610241565b90604010156102605760400190565b6001600160401b03811161018f57601f01601f191660200190565b6040519061029c82610174565b60018252608160f81b6020830152565b906020116101595790602090565b906040116101595760200190602090565b3590602081106102d9575090565b6000199060200360031b1b1690565b156102ef57565b60405162461bcd60e51b815260206004820152600f60248201526e496e76616c696420762076616c756560881b6044820152606490fd5b634e487b7160e01b600052601160045260246000fd5b908160011b918083046002149015171561035257565b610326565b600801908160081161035257565b9190820180921161035257565b989694919285939b9a989694919b6040519c8d9b60208d01610393916101e4565b61039c916101e4565b6103a5916101e4565b6103ae916101e4565b6103b7916101e4565b6103c0916101e4565b91823701600081526103d1916101e4565b6103da916101e4565b6103e3916101e4565b03601f198101835261023f9083610194565b610403610100820135610bfe565b61042661041360a0840135610bfe565b6104206060850135610bfe565b9061020f565b9161043d60408201356001600160a01b0316610bba565b9061044c610120820135610bfe565b926101c082019160606001600160401b036104678584610127565b9050166001811415600014610598576104809150610c81565b6101e08201956104908784610127565b610499916102ac565b6104a2916102cb565b6104ab90610bfe565b956104b68885610127565b6104bf916102ba565b6104c8916102cb565b6104d190610bfe565b976104dc9085610127565b6104e591610265565b610564999061055c90610519903560f81c601b8114801561058e575b61050a906102e8565b61014088013561056e57610bfe565b976105566105518951855101865101875101885101610538848b610127565b90508d519101018d51018b51016001600160401b031690565b610d32565b96610127565b969095610372565b6020815191012090565b6105899061058361057e4661033c565b610357565b90610365565b610bfe565b50601c8114610501565b506105a38483610127565b600160ff1b916001600160f81b0319916105cf916105c19190610257565b356001600160f81b03191690565b161061048057506105de61028f565b610480565b9261023f9461022b61022b9261022b6102319661022b61022b9c9b976040519d8e9b60208d01906101e4565b601a1981019190821161035257565b969492909897959380926040519a8b99600160f81b60208c015260218b01610645916101e4565b61064e916101e4565b610657916101e4565b9182370160008152610668916101e4565b6103d1916101e4565b6106d161067d46610bfe565b61068b610100840135610bfe565b61069860a0850135610bfe565b6106a56060860135610bfe565b906106bc60408701356001600160a01b0316610bba565b926106cb610120880135610bfe565b946105e3565b6101c082019160606001600160401b036106eb8584610127565b9050169060018214156000146107ec575061070590610c81565b925b61070f610d1e565b6101e083019361071f8585610127565b610728916102ac565b610731916102cb565b61073a90610bfe565b936107458682610127565b61074e916102ba565b610757916102cb565b61076090610bfe565b9561076b9082610127565b61077491610265565b61056497906107da906107a290610589903560f81c601b811480156107e2575b61079d906102e8565b61060f565b956107d461055186518551016107b88488610127565b905089519101018a51018b51018951016001600160401b031690565b93610127565b93909261061e565b50601c8114610794565b9390506107f98183610127565b600160ff1b916001600160f81b031991610817916105c19190610257565b161061070757925061082761028f565b92610707565b9492909695939160405197889660208801610847916101e4565b610850916101e4565b610859916101e4565b610668916101e4565b969492909897959380926040519a8b99600160f91b60208c015260218b01610645916101e4565b6108f661089546610bfe565b6108a3610100840135610bfe565b6108b060c0850135610bfe565b6108bd60a0860135610bfe565b6108ca6060870135610bfe565b916108e160408801356001600160a01b0316610bba565b936108f0610120890135610bfe565b9561082d565b6101c082019160606001600160401b036109108584610127565b9050169060018214156000146109c9575061092a90610c81565b925b610934610d1e565b6101e08301936109448585610127565b61094d916102ac565b610956916102cb565b61095f90610bfe565b9361096a8682610127565b610973916102ba565b61097c916102cb565b61098590610bfe565b956109909082610127565b61099991610265565b61056497906109c1906107a290610589903560f81c601b811480156107e25761079d906102e8565b939092610862565b9390506109d68183610127565b600160ff1b916001600160f81b0319916109f4916105c19190610257565b161061092c579250610a0461028f565b9261092c565b15610a1157565b60405162461bcd60e51b815260206004820152601f60248201527f6b656363616b3235362072657475726e656420696e76616c69642064617461006044820152606490fd5b6020815191015190602081106102d9575090565b905a9160009061ffff928280858161ffeb81fa5080610b16575050610a9463ffffffff3616610e35565b63ffffffff8311610ae657610ae392610ad1928291610ac49060c01b63ffffffff60c01b16600160e01b17610e26565b8161fff6618010fa610b96565b610ade6020825114610a0a565b610a56565b90565b60405162461bcd60e51b81526020600482015260086024820152674f766572666c6f7760c01b6044820152606490fd5b63ffffffff918380868161ffe9878616fa5081018091116103525736039036821161035257610b459116610e35565b610a94565b60405190610b5782610174565b6001825260203681840137565b90610b6e82610274565b610b7b6040519182610194565b8281528092610b8c601f1991610274565b0190602036910137565b15610bb0573d90610ba682610b64565b916000602084013e565b3d806000803e6000fd5b90604051610bc781610174565b60158152602560fa1b602082015260609290921b6bffffffffffffffffffffffff19166021830152565b8051156102605760200190565b906080821015610c3e57610c10610b4a565b9180610c2c5750600160ff1b5b60001a610c2983610bf1565b53565b60f81b6001600160f81b031916610c1d565b610c4782610d9e565b91610c5460028401610b64565b926081810160f81b6001600160f81b03191660001a610c7285610bf1565b53601f0360031b1b6021830152565b6001600160401b031660018114610d08576038811015610cc457610ca3610b4a565b9060800160f81b6001600160f81b03191660001a610cc082610bf1565b5390565b610ccd81610d9e565b90610cda60028301610b64565b9160b8810160f81b6001600160f81b03191660001a610cf884610bf1565b53601f0360031b1b602182015290565b634e487b7160e01b600052600160045260246000fd5b610d26610b4a565b9060c0610c2983610bf1565b6001600160401b0316906038821015610d6a57610d4d610b4a565b9160c00160f81b6001600160f81b03191660001a610c2983610bf1565b610d7382610d9e565b91610d8060028401610b64565b9260f8808201901b6001600160f81b03191660001a610c7285610bf1565b906000916fffffffffffffffffffffffffffffffff8111610e1a575b806001600160401b0360ff9211610e0c575b63ffffffff8111610dfe575b61ffff8111610df0575b11610de957565b9060010190565b60029060101c930192610de2565b60049060201c930192610dd8565b60089060401c930192610dcc565b6010925060801c610dba565b600061ffff8161ffe78194fa50565b600061ffff8161ffe863ffffffff829516fa50565b803580610e5b5750610ae3906111c7565b60718103610e6d5750610ae390610f24565b60028103610e7f5750610ae39061141b565b600103610e8f57610ae39061132e565b60405162461bcd60e51b815260206004820152601760248201527f456e636f64696e6720756e737570706f727465642074780000000000000000006044820152606490fd5b903590601e198136030182121561015957018035906001600160401b03821161015957602001918160051b3603831361015957565b91906001600160fb1b0381116101595760051b809282370190565b611127611133610f6292610f3f6100886101c0830183610127565b61105f610f50610200840184610ed4565b60405197602089019289928491610f09565b0396610f76601f1998898101835282610194565b51902091611053610f8e610088610220870187610127565b6040519485936020850197610120810135906101008101359060e08101359060c0810135908c60a0820135916080810135916060820135916040810135916020820135913590999693909d9c9b9895926101a09b9895926101c08c019f7f848e1bfa1ac4e3576b728bda6721b215c70a7799a5b4866282a71bab954baac88d5260208d015260408c015260608b015260808a015260a089015260c088015260e08701526101008601526101208501526101408401526101608301526101808201520152565b03868101835282610194565b5190209260405160208101906110fc816110f046859190606060808401937fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6e81527f19b453ce45aaaaf3a300f5a9ec95869b4f28ab10430b572ee218c3a6a5e07d6f60208201527fad7c5bef027816a800da1736444fb58a807ef4c9603b7848673f7e3a68eb14a560408201520152565b03848101835282610194565b51902093604051938491602083019687909160429261190160f01b8352600283015260228201520190565b03908101835282610194565b51902090565b9061023f60026111539360405194859160208301906101e4565b61010160f71b815203601d19810185520183610194565b9694919285939998969491996040519a8b9960208b01611189916101e4565b611192916101e4565b61119b916101e4565b6111a4916101e4565b6111ad916101e4565b6111b6916101e4565b91823701600081526103e3916101e4565b610564906111d9610100820135610bfe565b6111e961041360a0840135610bfe565b9161120060408201356001600160a01b0316610bba565b9261120f610120830135610bfe565b6101c083019460606001600160401b036112298887610127565b9050169060018214156000146112ae575061124390610c81565b925b606096610140860135611290575b611288906105566105518951855101865101875101885101611275848b610127565b90508c519101016001600160401b031690565b96909561116a565b96506112886112a66112a146610bfe565b611139565b979050611253565b9390506112bb8786610127565b600160ff1b916001600160f81b0319916112d9916105c19190610257565b16106112455792506112e961028f565b92611245565b929361023f94816113206102319561022b61022b9b9a966040519c8d9a600160f81b60208d015260218c01906101e4565b9182370190600082526101e4565b6105649061133e61067d46610bfe565b6101c082019160606001600160401b036113588584610127565b90501660018114156000146113ad576113719150610c81565b6113a561137c610d1e565b946107d461055186518551016113928488610127565b905089519101016001600160401b031690565b9390926112ef565b506113b88483610127565b600160ff1b916001600160f81b0319916113d6916105c19190610257565b161061137157506113e561028f565b611371565b929361023f94816113206102319561022b61022b9b9a966040519c8d9a600160f91b60208d015260218c01906101e4565b6105649061142b61089546610bfe565b6101c082019160606001600160401b036114458584610127565b90501660018114156000146114715761145e9150610c81565b61146961137c610d1e565b9390926113ea565b5061147c8483610127565b600160ff1b916001600160f81b03199161149a916105c19190610257565b161061145e57506114a961028f565b61145e56fea26469706673582212201ec62201581e0bc2ce1269f0fb33fcd1a9bb5abf856e4634e565726ba47cf39864736f6c63430008120033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IAccountCodeStorage.sol/IAccountCodeStorage.dbg.json b/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IAccountCodeStorage.sol/IAccountCodeStorage.dbg.json deleted file mode 100644 index 71abf31f67..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IAccountCodeStorage.sol/IAccountCodeStorage.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../../build-info/e49535a141eefaebe6d9aa3bc85bbb11.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IAccountCodeStorage.sol/IAccountCodeStorage.json b/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IAccountCodeStorage.sol/IAccountCodeStorage.json deleted file mode 100644 index b2b95c09dd..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IAccountCodeStorage.sol/IAccountCodeStorage.json +++ /dev/null @@ -1,117 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IAccountCodeStorage", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IAccountCodeStorage.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "uint256", - "name": "_input", - "type": "uint256" - } - ], - "name": "getCodeHash", - "outputs": [ - { - "internalType": "bytes32", - "name": "codeHash", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_input", - "type": "uint256" - } - ], - "name": "getCodeSize", - "outputs": [ - { - "internalType": "uint256", - "name": "codeSize", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_address", - "type": "address" - } - ], - "name": "getRawCodeHash", - "outputs": [ - { - "internalType": "bytes32", - "name": "codeHash", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_address", - "type": "address" - } - ], - "name": "markAccountCodeHashAsConstructed", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_address", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "_hash", - "type": "bytes32" - } - ], - "name": "storeAccountConstructedCodeHash", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_address", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "_hash", - "type": "bytes32" - } - ], - "name": "storeAccountConstructingCodeHash", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBootloaderUtilities.sol/IBootloaderUtilities.dbg.json b/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBootloaderUtilities.sol/IBootloaderUtilities.dbg.json deleted file mode 100644 index 71abf31f67..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBootloaderUtilities.sol/IBootloaderUtilities.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../../build-info/e49535a141eefaebe6d9aa3bc85bbb11.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBootloaderUtilities.sol/IBootloaderUtilities.json b/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBootloaderUtilities.sol/IBootloaderUtilities.json deleted file mode 100644 index f6a7abf672..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBootloaderUtilities.sol/IBootloaderUtilities.json +++ /dev/null @@ -1,117 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IBootloaderUtilities", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBootloaderUtilities.sol", - "abi": [ - { - "inputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "txType", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "from", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "to", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "gasLimit", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "gasPerPubdataByteLimit", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxFeePerGas", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxPriorityFeePerGas", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "paymaster", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "uint256[4]", - "name": "reserved", - "type": "uint256[4]" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "signature", - "type": "bytes" - }, - { - "internalType": "bytes32[]", - "name": "factoryDeps", - "type": "bytes32[]" - }, - { - "internalType": "bytes", - "name": "paymasterInput", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "reservedDynamic", - "type": "bytes" - } - ], - "internalType": "struct Transaction", - "name": "_transaction", - "type": "tuple" - } - ], - "name": "getTransactionHashes", - "outputs": [ - { - "internalType": "bytes32", - "name": "txHash", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "signedTxHash", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBytecodeCompressor.sol/IBytecodeCompressor.dbg.json b/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBytecodeCompressor.sol/IBytecodeCompressor.dbg.json deleted file mode 100644 index 71abf31f67..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBytecodeCompressor.sol/IBytecodeCompressor.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../../build-info/e49535a141eefaebe6d9aa3bc85bbb11.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBytecodeCompressor.sol/IBytecodeCompressor.json b/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBytecodeCompressor.sol/IBytecodeCompressor.json deleted file mode 100644 index 9165d0f81b..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBytecodeCompressor.sol/IBytecodeCompressor.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IBytecodeCompressor", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBytecodeCompressor.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "bytes", - "name": "_bytecode", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "_rawCompressedData", - "type": "bytes" - } - ], - "name": "publishCompressedBytecode", - "outputs": [ - { - "internalType": "bytes32", - "name": "bytecodeHash", - "type": "bytes32" - } - ], - "stateMutability": "payable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IContractDeployer.sol/IContractDeployer.dbg.json b/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IContractDeployer.sol/IContractDeployer.dbg.json deleted file mode 100644 index 71abf31f67..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IContractDeployer.sol/IContractDeployer.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../../build-info/e49535a141eefaebe6d9aa3bc85bbb11.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IContractDeployer.sol/IContractDeployer.json b/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IContractDeployer.sol/IContractDeployer.json deleted file mode 100644 index 782c034eb8..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IContractDeployer.sol/IContractDeployer.json +++ /dev/null @@ -1,315 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IContractDeployer", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IContractDeployer.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "accountAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "enum IContractDeployer.AccountNonceOrdering", - "name": "nonceOrdering", - "type": "uint8" - } - ], - "name": "AccountNonceOrderingUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "accountAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "enum IContractDeployer.AccountAbstractionVersion", - "name": "aaVersion", - "type": "uint8" - } - ], - "name": "AccountVersionUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "deployerAddress", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "bytecodeHash", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "contractAddress", - "type": "address" - } - ], - "name": "ContractDeployed", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_salt", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "_bytecodeHash", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "_input", - "type": "bytes" - } - ], - "name": "create", - "outputs": [ - { - "internalType": "address", - "name": "newAddress", - "type": "address" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_salt", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "_bytecodeHash", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "_input", - "type": "bytes" - } - ], - "name": "create2", - "outputs": [ - { - "internalType": "address", - "name": "newAddress", - "type": "address" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_salt", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "_bytecodeHash", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "_input", - "type": "bytes" - }, - { - "internalType": "enum IContractDeployer.AccountAbstractionVersion", - "name": "_aaVersion", - "type": "uint8" - } - ], - "name": "create2Account", - "outputs": [ - { - "internalType": "address", - "name": "newAddress", - "type": "address" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_salt", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "_bytecodeHash", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "_input", - "type": "bytes" - }, - { - "internalType": "enum IContractDeployer.AccountAbstractionVersion", - "name": "_aaVersion", - "type": "uint8" - } - ], - "name": "createAccount", - "outputs": [ - { - "internalType": "address", - "name": "newAddress", - "type": "address" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_address", - "type": "address" - } - ], - "name": "getAccountInfo", - "outputs": [ - { - "components": [ - { - "internalType": "enum IContractDeployer.AccountAbstractionVersion", - "name": "supportedAAVersion", - "type": "uint8" - }, - { - "internalType": "enum IContractDeployer.AccountNonceOrdering", - "name": "nonceOrdering", - "type": "uint8" - } - ], - "internalType": "struct IContractDeployer.AccountInfo", - "name": "info", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_sender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_senderNonce", - "type": "uint256" - } - ], - "name": "getNewAddressCreate", - "outputs": [ - { - "internalType": "address", - "name": "newAddress", - "type": "address" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_sender", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "_bytecodeHash", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "_salt", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "_input", - "type": "bytes" - } - ], - "name": "getNewAddressCreate2", - "outputs": [ - { - "internalType": "address", - "name": "newAddress", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "enum IContractDeployer.AccountAbstractionVersion", - "name": "_version", - "type": "uint8" - } - ], - "name": "updateAccountVersion", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "enum IContractDeployer.AccountNonceOrdering", - "name": "_nonceOrdering", - "type": "uint8" - } - ], - "name": "updateNonceOrdering", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IEthToken.sol/IEthToken.dbg.json b/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IEthToken.sol/IEthToken.dbg.json deleted file mode 100644 index 71abf31f67..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IEthToken.sol/IEthToken.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../../build-info/e49535a141eefaebe6d9aa3bc85bbb11.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IEthToken.sol/IEthToken.json b/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IEthToken.sol/IEthToken.json deleted file mode 100644 index 5d3571a4d8..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IEthToken.sol/IEthToken.json +++ /dev/null @@ -1,205 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IEthToken", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IEthToken.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "Mint", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_l2Sender", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "_l1Receiver", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - } - ], - "name": "Withdrawal", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "decimals", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_account", - "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": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "pure", - "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": "_amount", - "type": "uint256" - } - ], - "name": "transferFromTo", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_l1Receiver", - "type": "address" - } - ], - "name": "withdraw", - "outputs": [], - "stateMutability": "payable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IImmutableSimulator.sol/IImmutableSimulator.dbg.json b/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IImmutableSimulator.sol/IImmutableSimulator.dbg.json deleted file mode 100644 index 71abf31f67..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IImmutableSimulator.sol/IImmutableSimulator.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../../build-info/e49535a141eefaebe6d9aa3bc85bbb11.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IImmutableSimulator.sol/IImmutableSimulator.json b/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IImmutableSimulator.sol/IImmutableSimulator.json deleted file mode 100644 index 031fd8322d..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IImmutableSimulator.sol/IImmutableSimulator.json +++ /dev/null @@ -1,65 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IImmutableSimulator", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IImmutableSimulator.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "_dest", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_index", - "type": "uint256" - } - ], - "name": "getImmutable", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_dest", - "type": "address" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "index", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "value", - "type": "bytes32" - } - ], - "internalType": "struct ImmutableData[]", - "name": "_immutables", - "type": "tuple[]" - } - ], - "name": "setImmutables", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IKnownCodesStorage.sol/IKnownCodesStorage.dbg.json b/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IKnownCodesStorage.sol/IKnownCodesStorage.dbg.json deleted file mode 100644 index 71abf31f67..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IKnownCodesStorage.sol/IKnownCodesStorage.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../../build-info/e49535a141eefaebe6d9aa3bc85bbb11.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IKnownCodesStorage.sol/IKnownCodesStorage.json b/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IKnownCodesStorage.sol/IKnownCodesStorage.json deleted file mode 100644 index c38ba55b94..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IKnownCodesStorage.sol/IKnownCodesStorage.json +++ /dev/null @@ -1,90 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IKnownCodesStorage", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IKnownCodesStorage.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "bytecodeHash", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "bool", - "name": "sendBytecodeToL1", - "type": "bool" - } - ], - "name": "MarkedAsKnown", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_hash", - "type": "bytes32" - } - ], - "name": "getMarker", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_bytecodeHash", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "_l1PreimageHash", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "_l1PreimageBytesLen", - "type": "uint256" - } - ], - "name": "markBytecodeAsPublished", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bool", - "name": "_shouldSendToL1", - "type": "bool" - }, - { - "internalType": "bytes32[]", - "name": "_hashes", - "type": "bytes32[]" - } - ], - "name": "markFactoryDeps", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IL1Messenger.sol/IL1Messenger.dbg.json b/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IL1Messenger.sol/IL1Messenger.dbg.json deleted file mode 100644 index 71abf31f67..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IL1Messenger.sol/IL1Messenger.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../../build-info/e49535a141eefaebe6d9aa3bc85bbb11.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IL1Messenger.sol/IL1Messenger.json b/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IL1Messenger.sol/IL1Messenger.json deleted file mode 100644 index 452972aef8..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IL1Messenger.sol/IL1Messenger.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IL1Messenger", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IL1Messenger.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_sender", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "_hash", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "_message", - "type": "bytes" - } - ], - "name": "L1MessageSent", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "_message", - "type": "bytes" - } - ], - "name": "sendToL1", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/INonceHolder.sol/INonceHolder.dbg.json b/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/INonceHolder.sol/INonceHolder.dbg.json deleted file mode 100644 index 71abf31f67..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/INonceHolder.sol/INonceHolder.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../../build-info/e49535a141eefaebe6d9aa3bc85bbb11.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/INonceHolder.sol/INonceHolder.json b/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/INonceHolder.sol/INonceHolder.json deleted file mode 100644 index fe7908b00b..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/INonceHolder.sol/INonceHolder.json +++ /dev/null @@ -1,228 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "INonceHolder", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/interfaces/INonceHolder.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "accountAddress", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "key", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "ValueSetUnderNonce", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_address", - "type": "address" - } - ], - "name": "getDeploymentNonce", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_address", - "type": "address" - } - ], - "name": "getMinNonce", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_address", - "type": "address" - } - ], - "name": "getRawNonce", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_key", - "type": "uint256" - } - ], - "name": "getValueUnderNonce", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_value", - "type": "uint256" - } - ], - "name": "increaseMinNonce", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_address", - "type": "address" - } - ], - "name": "incrementDeploymentNonce", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_expectedNonce", - "type": "uint256" - } - ], - "name": "incrementMinNonceIfEquals", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_address", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_nonce", - "type": "uint256" - } - ], - "name": "isNonceUsed", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_key", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_value", - "type": "uint256" - } - ], - "name": "setValueUnderNonce", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_address", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_key", - "type": "uint256" - }, - { - "internalType": "bool", - "name": "_shouldBeUsed", - "type": "bool" - } - ], - "name": "validateNonceUsage", - "outputs": [], - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymaster.sol/IPaymaster.dbg.json b/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymaster.sol/IPaymaster.dbg.json deleted file mode 100644 index 71abf31f67..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymaster.sol/IPaymaster.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../../build-info/e49535a141eefaebe6d9aa3bc85bbb11.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymaster.sol/IPaymaster.json b/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymaster.sol/IPaymaster.json deleted file mode 100644 index 789bde51d9..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymaster.sol/IPaymaster.json +++ /dev/null @@ -1,247 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IPaymaster", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymaster.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "bytes", - "name": "_context", - "type": "bytes" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "txType", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "from", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "to", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "gasLimit", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "gasPerPubdataByteLimit", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxFeePerGas", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxPriorityFeePerGas", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "paymaster", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "uint256[4]", - "name": "reserved", - "type": "uint256[4]" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "signature", - "type": "bytes" - }, - { - "internalType": "bytes32[]", - "name": "factoryDeps", - "type": "bytes32[]" - }, - { - "internalType": "bytes", - "name": "paymasterInput", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "reservedDynamic", - "type": "bytes" - } - ], - "internalType": "struct Transaction", - "name": "_transaction", - "type": "tuple" - }, - { - "internalType": "bytes32", - "name": "_txHash", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "_suggestedSignedHash", - "type": "bytes32" - }, - { - "internalType": "enum ExecutionResult", - "name": "_txResult", - "type": "uint8" - }, - { - "internalType": "uint256", - "name": "_maxRefundedGas", - "type": "uint256" - } - ], - "name": "postTransaction", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_txHash", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "_suggestedSignedHash", - "type": "bytes32" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "txType", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "from", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "to", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "gasLimit", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "gasPerPubdataByteLimit", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxFeePerGas", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxPriorityFeePerGas", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "paymaster", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "uint256[4]", - "name": "reserved", - "type": "uint256[4]" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "signature", - "type": "bytes" - }, - { - "internalType": "bytes32[]", - "name": "factoryDeps", - "type": "bytes32[]" - }, - { - "internalType": "bytes", - "name": "paymasterInput", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "reservedDynamic", - "type": "bytes" - } - ], - "internalType": "struct Transaction", - "name": "_transaction", - "type": "tuple" - } - ], - "name": "validateAndPayForPaymasterTransaction", - "outputs": [ - { - "internalType": "bytes4", - "name": "magic", - "type": "bytes4" - }, - { - "internalType": "bytes", - "name": "context", - "type": "bytes" - } - ], - "stateMutability": "payable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymasterFlow.sol/IPaymasterFlow.dbg.json b/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymasterFlow.sol/IPaymasterFlow.dbg.json deleted file mode 100644 index 71abf31f67..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymasterFlow.sol/IPaymasterFlow.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../../build-info/e49535a141eefaebe6d9aa3bc85bbb11.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymasterFlow.sol/IPaymasterFlow.json b/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymasterFlow.sol/IPaymasterFlow.json deleted file mode 100644 index acd0dc5a56..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymasterFlow.sol/IPaymasterFlow.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IPaymasterFlow", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymasterFlow.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "_token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_minAllowance", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "_innerInput", - "type": "bytes" - } - ], - "name": "approvalBased", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "input", - "type": "bytes" - } - ], - "name": "general", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/ISystemContext.sol/ISystemContext.dbg.json b/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/ISystemContext.sol/ISystemContext.dbg.json deleted file mode 100644 index 71abf31f67..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/ISystemContext.sol/ISystemContext.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../../build-info/e49535a141eefaebe6d9aa3bc85bbb11.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/ISystemContext.sol/ISystemContext.json b/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/ISystemContext.sol/ISystemContext.json deleted file mode 100644 index 79bee65871..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/ISystemContext.sol/ISystemContext.json +++ /dev/null @@ -1,184 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "ISystemContext", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/interfaces/ISystemContext.sol", - "abi": [ - { - "inputs": [], - "name": "baseFee", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "blockGasLimit", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_block", - "type": "uint256" - } - ], - "name": "blockHash", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "chainId", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "coinbase", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "difficulty", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "gasPrice", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_block", - "type": "uint256" - } - ], - "name": "getBlockHashEVM", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getBlockNumber", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getBlockNumberAndTimestamp", - "outputs": [ - { - "internalType": "uint256", - "name": "blockNumber", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "blockTimestamp", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getBlockTimestamp", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "origin", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/libraries/EfficientCall.sol/EfficientCall.dbg.json b/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/libraries/EfficientCall.sol/EfficientCall.dbg.json deleted file mode 100644 index 71abf31f67..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/libraries/EfficientCall.sol/EfficientCall.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../../build-info/e49535a141eefaebe6d9aa3bc85bbb11.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/libraries/EfficientCall.sol/EfficientCall.json b/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/libraries/EfficientCall.sol/EfficientCall.json deleted file mode 100644 index 5465aacba2..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/libraries/EfficientCall.sol/EfficientCall.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "EfficientCall", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/libraries/EfficientCall.sol", - "abi": [], - "bytecode": "0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea264697066735822122025c78a7eb7061c43ae12416b82bd02b6699e007a7905bcb61261fe4900c10d3464736f6c63430008120033", - "deployedBytecode": "0x600080fdfea264697066735822122025c78a7eb7061c43ae12416b82bd02b6699e007a7905bcb61261fe4900c10d3464736f6c63430008120033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/libraries/RLPEncoder.sol/RLPEncoder.dbg.json b/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/libraries/RLPEncoder.sol/RLPEncoder.dbg.json deleted file mode 100644 index 71abf31f67..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/libraries/RLPEncoder.sol/RLPEncoder.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../../build-info/e49535a141eefaebe6d9aa3bc85bbb11.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/libraries/RLPEncoder.sol/RLPEncoder.json b/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/libraries/RLPEncoder.sol/RLPEncoder.json deleted file mode 100644 index f0393fe3a0..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/libraries/RLPEncoder.sol/RLPEncoder.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "RLPEncoder", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/libraries/RLPEncoder.sol", - "abi": [], - "bytecode": "0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea26469706673582212204bea743b455214c7175807a495f4fb38a8690a1e1f6c4d8b74d230b571dacb0864736f6c63430008120033", - "deployedBytecode": "0x600080fdfea26469706673582212204bea743b455214c7175807a495f4fb38a8690a1e1f6c4d8b74d230b571dacb0864736f6c63430008120033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractHelper.sol/ISystemContract.dbg.json b/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractHelper.sol/ISystemContract.dbg.json deleted file mode 100644 index 71abf31f67..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractHelper.sol/ISystemContract.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../../build-info/e49535a141eefaebe6d9aa3bc85bbb11.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractHelper.sol/ISystemContract.json b/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractHelper.sol/ISystemContract.json deleted file mode 100644 index f1ff4d5e26..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractHelper.sol/ISystemContract.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "ISystemContract", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractHelper.sol", - "abi": [], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractHelper.sol/SystemContractHelper.dbg.json b/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractHelper.sol/SystemContractHelper.dbg.json deleted file mode 100644 index 71abf31f67..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractHelper.sol/SystemContractHelper.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../../build-info/e49535a141eefaebe6d9aa3bc85bbb11.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractHelper.sol/SystemContractHelper.json b/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractHelper.sol/SystemContractHelper.json deleted file mode 100644 index ea0b1157b0..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractHelper.sol/SystemContractHelper.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "SystemContractHelper", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractHelper.sol", - "abi": [], - "bytecode": "0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220f4be7bf0462d852cb2e7f145f68daeca7172c05981b602bb2ea3871e65c7d6e664736f6c63430008120033", - "deployedBytecode": "0x600080fdfea2646970667358221220f4be7bf0462d852cb2e7f145f68daeca7172c05981b602bb2ea3871e65c7d6e664736f6c63430008120033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractsCaller.sol/SystemContractsCaller.dbg.json b/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractsCaller.sol/SystemContractsCaller.dbg.json deleted file mode 100644 index 71abf31f67..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractsCaller.sol/SystemContractsCaller.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../../build-info/e49535a141eefaebe6d9aa3bc85bbb11.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractsCaller.sol/SystemContractsCaller.json b/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractsCaller.sol/SystemContractsCaller.json deleted file mode 100644 index 478e3ed98d..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractsCaller.sol/SystemContractsCaller.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "SystemContractsCaller", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractsCaller.sol", - "abi": [], - "bytecode": "0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea264697066735822122039d99a6780026d2a89898e0998e4ac3137b9f7747e676e1187e2899a1fbb071c64736f6c63430008120033", - "deployedBytecode": "0x600080fdfea264697066735822122039d99a6780026d2a89898e0998e4ac3137b9f7747e676e1187e2899a1fbb071c64736f6c63430008120033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/libraries/TransactionHelper.sol/TransactionHelper.dbg.json b/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/libraries/TransactionHelper.sol/TransactionHelper.dbg.json deleted file mode 100644 index 71abf31f67..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/libraries/TransactionHelper.sol/TransactionHelper.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../../build-info/e49535a141eefaebe6d9aa3bc85bbb11.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/libraries/TransactionHelper.sol/TransactionHelper.json b/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/libraries/TransactionHelper.sol/TransactionHelper.json deleted file mode 100644 index d5eef8a303..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/libraries/TransactionHelper.sol/TransactionHelper.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "TransactionHelper", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/libraries/TransactionHelper.sol", - "abi": [], - "bytecode": "0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220023c79b805f279cf37dab836c1123895007f802f4551fc0402e993ba4ad51dbd64736f6c63430008120033", - "deployedBytecode": "0x600080fdfea2646970667358221220023c79b805f279cf37dab836c1123895007f802f4551fc0402e993ba4ad51dbd64736f6c63430008120033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/libraries/Utils.sol/Utils.dbg.json b/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/libraries/Utils.sol/Utils.dbg.json deleted file mode 100644 index 71abf31f67..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/libraries/Utils.sol/Utils.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../../build-info/e49535a141eefaebe6d9aa3bc85bbb11.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/libraries/Utils.sol/Utils.json b/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/libraries/Utils.sol/Utils.json deleted file mode 100644 index 117a3e06e2..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/libraries/Utils.sol/Utils.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "Utils", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/libraries/Utils.sol", - "abi": [], - "bytecode": "0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220cda790b0fda0c8de3ee1bda342d1bc887c69410acffc03bcf629d72bcc2cadbe64736f6c63430008120033", - "deployedBytecode": "0x600080fdfea2646970667358221220cda790b0fda0c8de3ee1bda342d1bc887c69410acffc03bcf629d72bcc2cadbe64736f6c63430008120033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/IERC20.sol/IERC20.dbg.json b/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/IERC20.sol/IERC20.dbg.json deleted file mode 100644 index afa612f56c..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/IERC20.sol/IERC20.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../../../../build-info/e49535a141eefaebe6d9aa3bc85bbb11.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/IERC20.sol/IERC20.json b/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/IERC20.sol/IERC20.json deleted file mode 100644 index 95bf2e1017..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/IERC20.sol/IERC20.json +++ /dev/null @@ -1,194 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IERC20", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/IERC20.sol", - "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" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/extensions/IERC20Permit.sol/IERC20Permit.dbg.json b/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/extensions/IERC20Permit.sol/IERC20Permit.dbg.json deleted file mode 100644 index 9ec901aaa3..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/extensions/IERC20Permit.sol/IERC20Permit.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../../../../../build-info/e49535a141eefaebe6d9aa3bc85bbb11.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/extensions/IERC20Permit.sol/IERC20Permit.json b/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/extensions/IERC20Permit.sol/IERC20Permit.json deleted file mode 100644 index fd4d82681e..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/extensions/IERC20Permit.sol/IERC20Permit.json +++ /dev/null @@ -1,86 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IERC20Permit", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/extensions/IERC20Permit.sol", - "abi": [ - { - "inputs": [], - "name": "DOMAIN_SEPARATOR", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "nonces", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "permit", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/utils/SafeERC20.sol/SafeERC20.dbg.json b/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/utils/SafeERC20.sol/SafeERC20.dbg.json deleted file mode 100644 index 9ec901aaa3..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/utils/SafeERC20.sol/SafeERC20.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../../../../../build-info/e49535a141eefaebe6d9aa3bc85bbb11.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/utils/SafeERC20.sol/SafeERC20.json b/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/utils/SafeERC20.sol/SafeERC20.json deleted file mode 100644 index b680edb670..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/utils/SafeERC20.sol/SafeERC20.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "SafeERC20", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/utils/SafeERC20.sol", - "abi": [], - "bytecode": "0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220f9f1240120c242b1326825687e71c6462d02eccd50c82b79c3efe417d5c04edc64736f6c63430008120033", - "deployedBytecode": "0x600080fdfea2646970667358221220f9f1240120c242b1326825687e71c6462d02eccd50c82b79c3efe417d5c04edc64736f6c63430008120033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/utils/Address.sol/Address.dbg.json b/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/utils/Address.sol/Address.dbg.json deleted file mode 100644 index 1573d0801d..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/utils/Address.sol/Address.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../../../build-info/e49535a141eefaebe6d9aa3bc85bbb11.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/utils/Address.sol/Address.json b/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/utils/Address.sol/Address.json deleted file mode 100644 index 54d2728b29..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/utils/Address.sol/Address.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "Address", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/utils/Address.sol", - "abi": [], - "bytecode": "0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220fa930808715f13d9e1cd9184730fc8baebb074123b08e81ffed2c39ebd282d2564736f6c63430008120033", - "deployedBytecode": "0x600080fdfea2646970667358221220fa930808715f13d9e1cd9184730fc8baebb074123b08e81ffed2c39ebd282d2564736f6c63430008120033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/access/Ownable.sol/Ownable.dbg.json b/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/access/Ownable.sol/Ownable.dbg.json deleted file mode 100644 index 020edc770e..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/access/Ownable.sol/Ownable.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../build-info/e49535a141eefaebe6d9aa3bc85bbb11.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/access/Ownable.sol/Ownable.json b/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/access/Ownable.sol/Ownable.json deleted file mode 100644 index 33254f2e50..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/access/Ownable.sol/Ownable.json +++ /dev/null @@ -1,63 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "Ownable", - "sourceName": "@openzeppelin/contracts/access/Ownable.sol", - "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" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.dbg.json b/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.dbg.json deleted file mode 100644 index 50520f6970..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/e49535a141eefaebe6d9aa3bc85bbb11.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.json b/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.json deleted file mode 100644 index 3c09da7b94..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.json +++ /dev/null @@ -1,297 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "ERC20", - "sourceName": "@openzeppelin/contracts/token/ERC20/ERC20.sol", - "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" - } - ], - "bytecode": "0x6080604052346200031d5762000c77803803806200001d8162000322565b9283398101906040818303126200031d5780516001600160401b03908181116200031d57836200004f91840162000348565b91602093848201518381116200031d576200006b920162000348565b82518281116200021d576003918254916001958684811c9416801562000312575b88851014620002fc578190601f94858111620002a6575b5088908583116001146200023f5760009262000233575b505060001982861b1c191690861b1783555b80519384116200021d5760049586548681811c9116801562000212575b82821014620001fd57838111620001b2575b508092851160011462000144575093839491849260009562000138575b50501b92600019911b1c19161790555b6040516108bc9081620003bb8239f35b01519350388062000118565b92919084601f1981168860005285600020956000905b898383106200019757505050106200017c575b50505050811b01905562000128565b01519060f884600019921b161c19169055388080806200016d565b8587015189559097019694850194889350908101906200015a565b87600052816000208480880160051c820192848910620001f3575b0160051c019087905b828110620001e6575050620000fb565b60008155018790620001d6565b92508192620001cd565b602288634e487b7160e01b6000525260246000fd5b90607f1690620000e9565b634e487b7160e01b600052604160045260246000fd5b015190503880620000ba565b90889350601f19831691876000528a6000209260005b8c8282106200028f575050841162000276575b505050811b018355620000cc565b015160001983881b60f8161c1916905538808062000268565b8385015186558c9790950194938401930162000255565b90915085600052886000208580850160051c8201928b8610620002f2575b918a91869594930160051c01915b828110620002e2575050620000a3565b600081558594508a9101620002d2565b92508192620002c4565b634e487b7160e01b600052602260045260246000fd5b93607f16936200008c565b600080fd5b6040519190601f01601f191682016001600160401b038111838210176200021d57604052565b919080601f840112156200031d5782516001600160401b0381116200021d576020906200037e601f8201601f1916830162000322565b928184528282870101116200031d5760005b818110620003a657508260009394955001015290565b85810183015184820184015282016200039056fe608060408181526004918236101561001657600080fd5b600092833560e01c91826306fdde031461049657508163095ea7b31461046c57816318160ddd1461044d57816323b872dd14610383578163313ce56714610367578163395093511461031757816370a08231146102e057816395d89b41146101c1578163a457c2d71461011957508063a9059cbb146100e95763dd62ed3e1461009e57600080fd5b346100e557806003193601126100e557806020926100ba6105bb565b6100c26105d6565b6001600160a01b0391821683526001865283832091168252845220549051908152f35b5080fd5b50346100e557806003193601126100e5576020906101126101086105bb565b602435903361060f565b5160018152f35b905082346101be57826003193601126101be576101346105bb565b918360243592338152600160205281812060018060a01b038616825260205220549082821061016d576020856101128585038733610784565b608490602086519162461bcd60e51b8352820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152fd5b80fd5b8383346100e557816003193601126100e557805190828454600181811c908083169283156102d6575b60209384841081146102c3578388529081156102a75750600114610252575b505050829003601f01601f191682019267ffffffffffffffff84118385101761023f575082918261023b925282610572565b0390f35b634e487b7160e01b815260418552602490fd5b8787529192508591837f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b8385106102935750505050830101858080610209565b80548886018301529301928490820161027d565b60ff1916878501525050151560051b8401019050858080610209565b634e487b7160e01b895260228a52602489fd5b91607f16916101ea565b5050346100e55760203660031901126100e55760209181906001600160a01b036103086105bb565b16815280845220549051908152f35b5050346100e557806003193601126100e55761011260209261036061033a6105bb565b338352600186528483206001600160a01b038216845286529184902054602435906105ec565b9033610784565b5050346100e557816003193601126100e5576020905160128152f35b839150346100e55760603660031901126100e55761039f6105bb565b6103a76105d6565b91846044359460018060a01b0384168152600160205281812033825260205220549060001982036103e1575b60208661011287878761060f565b84821061040a57509183916103ff6020969561011295033383610784565b9193948193506103d3565b606490602087519162461bcd60e51b8352820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152fd5b5050346100e557816003193601126100e5576020906002549051908152f35b5050346100e557806003193601126100e55760209061011261048c6105bb565b6024359033610784565b8490843461056e578260031936011261056e5782600354600181811c90808316928315610564575b60209384841081146102c3578388529081156102a7575060011461050e57505050829003601f01601f191682019267ffffffffffffffff84118385101761023f575082918261023b925282610572565b600387529192508591837fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b8385106105505750505050830101858080610209565b80548886018301529301928490820161053a565b91607f16916104be565b8280fd5b6020808252825181830181905290939260005b8281106105a757505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610585565b600435906001600160a01b03821682036105d157565b600080fd5b602435906001600160a01b03821682036105d157565b919082018092116105f957565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b0390811691821561073157169182156106e05760008281528060205260408120549180831061068c57604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9587602096528286520382822055868152206106818282546105ec565b9055604051908152a3565b60405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608490fd5b60405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608490fd5b60405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608490fd5b6001600160a01b0390811691821561083557169182156107e55760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925918360005260018252604060002085600052825280604060002055604051908152a3565b60405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608490fd5b60405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608490fdfea264697066735822122089f98b8f1179a8eb361b949e7a7cbb83915b4eeb0aa0229e65cdabb14559f42664736f6c63430008120033", - "deployedBytecode": "0x608060408181526004918236101561001657600080fd5b600092833560e01c91826306fdde031461049657508163095ea7b31461046c57816318160ddd1461044d57816323b872dd14610383578163313ce56714610367578163395093511461031757816370a08231146102e057816395d89b41146101c1578163a457c2d71461011957508063a9059cbb146100e95763dd62ed3e1461009e57600080fd5b346100e557806003193601126100e557806020926100ba6105bb565b6100c26105d6565b6001600160a01b0391821683526001865283832091168252845220549051908152f35b5080fd5b50346100e557806003193601126100e5576020906101126101086105bb565b602435903361060f565b5160018152f35b905082346101be57826003193601126101be576101346105bb565b918360243592338152600160205281812060018060a01b038616825260205220549082821061016d576020856101128585038733610784565b608490602086519162461bcd60e51b8352820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152fd5b80fd5b8383346100e557816003193601126100e557805190828454600181811c908083169283156102d6575b60209384841081146102c3578388529081156102a75750600114610252575b505050829003601f01601f191682019267ffffffffffffffff84118385101761023f575082918261023b925282610572565b0390f35b634e487b7160e01b815260418552602490fd5b8787529192508591837f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b8385106102935750505050830101858080610209565b80548886018301529301928490820161027d565b60ff1916878501525050151560051b8401019050858080610209565b634e487b7160e01b895260228a52602489fd5b91607f16916101ea565b5050346100e55760203660031901126100e55760209181906001600160a01b036103086105bb565b16815280845220549051908152f35b5050346100e557806003193601126100e55761011260209261036061033a6105bb565b338352600186528483206001600160a01b038216845286529184902054602435906105ec565b9033610784565b5050346100e557816003193601126100e5576020905160128152f35b839150346100e55760603660031901126100e55761039f6105bb565b6103a76105d6565b91846044359460018060a01b0384168152600160205281812033825260205220549060001982036103e1575b60208661011287878761060f565b84821061040a57509183916103ff6020969561011295033383610784565b9193948193506103d3565b606490602087519162461bcd60e51b8352820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152fd5b5050346100e557816003193601126100e5576020906002549051908152f35b5050346100e557806003193601126100e55760209061011261048c6105bb565b6024359033610784565b8490843461056e578260031936011261056e5782600354600181811c90808316928315610564575b60209384841081146102c3578388529081156102a7575060011461050e57505050829003601f01601f191682019267ffffffffffffffff84118385101761023f575082918261023b925282610572565b600387529192508591837fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b8385106105505750505050830101858080610209565b80548886018301529301928490820161053a565b91607f16916104be565b8280fd5b6020808252825181830181905290939260005b8281106105a757505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610585565b600435906001600160a01b03821682036105d157565b600080fd5b602435906001600160a01b03821682036105d157565b919082018092116105f957565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b0390811691821561073157169182156106e05760008281528060205260408120549180831061068c57604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9587602096528286520382822055868152206106818282546105ec565b9055604051908152a3565b60405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608490fd5b60405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608490fd5b60405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608490fd5b6001600160a01b0390811691821561083557169182156107e55760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925918360005260018252604060002085600052825280604060002055604051908152a3565b60405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608490fd5b60405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608490fdfea264697066735822122089f98b8f1179a8eb361b949e7a7cbb83915b4eeb0aa0229e65cdabb14559f42664736f6c63430008120033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.dbg.json b/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.dbg.json deleted file mode 100644 index 50520f6970..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/e49535a141eefaebe6d9aa3bc85bbb11.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.json b/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.json deleted file mode 100644 index 76b073c088..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.json +++ /dev/null @@ -1,194 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IERC20", - "sourceName": "@openzeppelin/contracts/token/ERC20/IERC20.sol", - "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" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.dbg.json b/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.dbg.json deleted file mode 100644 index 71abf31f67..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../../build-info/e49535a141eefaebe6d9aa3bc85bbb11.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.json b/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.json deleted file mode 100644 index 0436b92577..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.json +++ /dev/null @@ -1,233 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IERC20Metadata", - "sourceName": "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol", - "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" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol/SafeERC20.dbg.json b/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol/SafeERC20.dbg.json deleted file mode 100644 index 71abf31f67..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol/SafeERC20.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../../build-info/e49535a141eefaebe6d9aa3bc85bbb11.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol/SafeERC20.json b/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol/SafeERC20.json deleted file mode 100644 index ab6e70e0b1..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol/SafeERC20.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "SafeERC20", - "sourceName": "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", - "abi": [], - "bytecode": "0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea264697066735822122087f908664cc8239262fe5e2f6316e73010cb9af19451a913cabcddca895132cd64736f6c63430008120033", - "deployedBytecode": "0x600080fdfea264697066735822122087f908664cc8239262fe5e2f6316e73010cb9af19451a913cabcddca895132cd64736f6c63430008120033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/token/ERC721/ERC721.sol/ERC721.dbg.json b/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/token/ERC721/ERC721.sol/ERC721.dbg.json deleted file mode 100644 index 50520f6970..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/token/ERC721/ERC721.sol/ERC721.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/e49535a141eefaebe6d9aa3bc85bbb11.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/token/ERC721/ERC721.sol/ERC721.json b/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/token/ERC721/ERC721.sol/ERC721.json deleted file mode 100644 index df4384d151..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/token/ERC721/ERC721.sol/ERC721.json +++ /dev/null @@ -1,357 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "ERC721", - "sourceName": "@openzeppelin/contracts/token/ERC721/ERC721.sol", - "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": "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": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "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": "", - "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": "nonpayable", - "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": "nonpayable", - "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": "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": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x6080604052346200031957620015b6803803806200001d816200031e565b928339810190604081830312620003195780516001600160401b03908181116200031957836200004f91840162000344565b916020938482015183811162000319576200006b920162000344565b825190828211620003035760008054926001958685811c95168015620002f8575b88861014620002e4578190601f9586811162000291575b5088908683116001146200022d57849262000221575b5050600019600383901b1c191690861b1781555b81519384116200020d5784548581811c9116801562000202575b87821014620001ee57838111620001a6575b50859284116001146200014157839495509262000135575b5050600019600383901b1c191690821b1790555b6040516111ff9081620003b78239f35b01519050388062000111565b9190601f1984169585845280842093905b8782106200018e5750508385961062000174575b505050811b01905562000125565b015160001960f88460031b161c1916905538808062000166565b80878596829496860151815501950193019062000152565b8582528682208480870160051c820192898810620001e4575b0160051c019086905b828110620001d8575050620000f9565b838155018690620001c8565b92508192620001bf565b634e487b7160e01b82526022600452602482fd5b90607f1690620000e7565b634e487b7160e01b81526041600452602490fd5b015190503880620000b9565b8480528985208994509190601f198416865b8c8282106200027a575050841162000260575b505050811b018155620000cd565b015160001960f88460031b161c1916905538808062000252565b8385015186558c979095019493840193016200023f565b9091508380528884208680850160051c8201928b8610620002da575b918a91869594930160051c01915b828110620002cb575050620000a3565b8681558594508a9101620002bb565b92508192620002ad565b634e487b7160e01b83526022600452602483fd5b94607f16946200008c565b634e487b7160e01b600052604160045260246000fd5b600080fd5b6040519190601f01601f191682016001600160401b038111838210176200030357604052565b919080601f84011215620003195782516001600160401b03811162000303576020906200037a601f8201601f191683016200031e565b92818452828287010111620003195760005b818110620003a257508260009394955001015290565b85810183015184820184015282016200038c56fe6080604052600436101561001257600080fd5b60003560e01c806301ffc9a7146100e757806306fdde03146100e2578063081812fc146100dd578063095ea7b3146100d857806323b872dd146100d357806342842e0e146100ce5780636352211e146100c957806370a08231146100c457806395d89b41146100bf578063a22cb465146100ba578063b88d4fde146100b5578063c87b56dd146100b05763e985e9c5146100ab57600080fd5b6108fc565b610813565b61078a565b610629565b610568565b6104c6565b6104a8565b610480565b610457565b610333565b6102d7565b6101cd565b610103565b6001600160e01b03198116036100fe57565b600080fd5b346100fe5760203660031901126100fe576020600435610122816100ec565b63ffffffff60e01b166380ac58cd60e01b8114908115610160575b811561014f575b506040519015158152f35b6301ffc9a760e01b14905038610144565b635b5e139f60e01b8114915061013d565b60005b8381106101845750506000910152565b8181015183820152602001610174565b906020916101ad81518092818552858086019101610171565b601f01601f1916010190565b9060206101ca928181520190610194565b90565b346100fe576000806003193601126102d457604051908080549060019180831c928082169283156102ca575b60209283861085146102b6578588526020880194908115610295575060011461023d575b6102398761022d8189038261074c565b604051918291826101b9565b0390f35b6000805294509192917f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b838610610284575050509101905061022d82610239388061021d565b805485870152948201948101610268565b60ff191685525050505090151560051b01905061022d82610239388061021d565b634e487b7160e01b82526022600452602482fd5b93607f16936101f9565b80fd5b346100fe5760203660031901126100fe5760206102f5600435610a6d565b6040516001600160a01b039091168152f35b600435906001600160a01b03821682036100fe57565b602435906001600160a01b03821682036100fe57565b346100fe5760403660031901126100fe5761034c610307565b60243561035881610959565b916001600160a01b0380841690821681146103d35761038a9361038591331490811561038c575b506109fb565b610f18565b005b6001600160a01b031660009081526005602052604090206103cd91506103c69033905b9060018060a01b0316600052602052604060002090565b5460ff1690565b3861037f565b60405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608490fd5b60609060031901126100fe576001600160a01b039060043582811681036100fe579160243590811681036100fe579060443590565b346100fe5761038a61046836610422565b9161047b6104768433610c00565b610aff565b610d8e565b346100fe5761038a61049136610422565b906040519261049f8461072b565b60008452610b65565b346100fe5760203660031901126100fe5760206102f5600435610959565b346100fe5760203660031901126100fe576001600160a01b036104e7610307565b168015610510576000526003602052610239604060002054604051918291829190602083019252565b60405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604482015269726f206164647265737360b01b6064820152608490fd5b346100fe576000806003193601126102d4576040519080600190815480831c9280821692831561061f575b60209283861085146102b657858852602088019490811561029557506001146105c6576102398761022d8189038261074c565b600160005294509192917fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b83861061060e575050509101905061022d82610239388061021d565b8054858701529482019481016105f2565b93607f1693610593565b346100fe5760403660031901126100fe57610642610307565b60243580151581036100fe576001600160a01b038216913383146106d0578161068d61069e9233600052600560205260406000209060018060a01b0316600052602052604060002090565b9060ff801983541691151516179055565b604051901515815233907f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3190602090a3005b60405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606490fd5b634e487b7160e01b600052604160045260246000fd5b6020810190811067ffffffffffffffff82111761074757604052565b610715565b90601f8019910116810190811067ffffffffffffffff82111761074757604052565b67ffffffffffffffff811161074757601f01601f191660200190565b346100fe5760803660031901126100fe576107a3610307565b6107ab61031d565b6064359167ffffffffffffffff83116100fe57366023840112156100fe578260040135916107d88361076e565b926107e6604051948561074c565b80845236602482870101116100fe57602081600092602461038a9801838801378501015260443591610b65565b346100fe5760203660031901126100fe576004356000818152600260205260409020546001600160a01b03161561089f5761084c6109d1565b80511561088d5761022d6108799161087f6108696102399561110e565b60405194859360208501906109e4565b906109e4565b03601f19810183528261074c565b505061023961089a6109d1565b61022d565b60405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b6064820152608490fd5b346100fe5760403660031901126100fe57602060ff61094d61091c610307565b61092461031d565b6001600160a01b0391821660009081526005865260408082209290931681526020919091522090565b54166040519015158152f35b6000908152600260205260409020546001600160a01b0316801561097a5790565b60405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201526832b73a103a37b5b2b760b91b6064820152608490fd5b604051906109de8261072b565b60008252565b906109f760209282815194859201610171565b0190565b15610a0257565b60405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c00000000000000006064820152608490fd5b6000818152600260205260409020546001600160a01b031615610aa5576000908152600460205260409020546001600160a01b031690565b60405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608490fd5b15610b0657565b60405162461bcd60e51b815260206004820152603160248201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6044820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b6064820152608490fd5b90610b89939291610b796104768433610c00565b610b84838383610d8e565b610ff2565b15610b9057565b60405162461bcd60e51b815280610ba960048201610bad565b0390fd5b60809060208152603260208201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b60608201520190565b6000828152600260205260409020546001600160a01b031615610c9657610c2682610959565b9160018060a01b0390818316928285168414948515610c65575b50508315610c4f575b50505090565b610c5b91929350610a6d565b1614388080610c49565b6001600160a01b0316600090815260056020526040902091945060ff91610c8c91906103af565b5416923880610c40565b60405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608490fd5b15610cf757565b60405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608490fd5b634e487b7160e01b600052601160045260246000fd5b600019810191908211610d6d57565b610d48565b9060018201809211610d6d57565b6030019081603011610d6d57565b90610d9883610959565b6001600160a01b038381169290918216839003610e7157610de7610e4a92821694610dc4861515610cf0565b610dcd87610ec4565b6001600160a01b0316600090815260036020526040902090565b610df18154610d5e565b90556001600160a01b0381166000908152600360205260409020610e158154610d72565b9055610e2b856000526002602052604060002090565b80546001600160a01b0319166001600160a01b03909216919091179055565b7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4565b60405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b6064820152608490fd5b600081815260046020526040812080546001600160a01b03191690556001600160a01b03610ef183610959565b167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258280a4565b600082815260046020526040902080546001600160a01b0319166001600160a01b0383161790556001600160a01b0380610f5184610959565b169116907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600080a4565b908160209103126100fe57516101ca816100ec565b6001600160a01b0391821681529116602082015260408101919091526080606082018190526101ca92910190610194565b3d15610fed573d90610fd38261076e565b91610fe1604051938461074c565b82523d6000602084013e565b606090565b92909190823b156110ac57611025926020926000604051809681958294630a85bd0160e11b9a8b85523360048601610f91565b03926001600160a01b03165af16000918161107c575b5061106e57611048610fc2565b805190816110695760405162461bcd60e51b815280610ba960048201610bad565b602001fd5b6001600160e01b0319161490565b61109e91925060203d81116110a5575b611096818361074c565b810190610f7c565b903861103b565b503d61108c565b50505050600190565b906110bf8261076e565b6110cc604051918261074c565b82815280926110dd601f199161076e565b0190602036910137565b9081518110156110f8570160200190565b634e487b7160e01b600052603260045260246000fd5b801561119a576000818181805b61117e5750611129816110b5565b935b6111355750505090565b61113e90610d5e565b90600a90611169611159611153848406610d80565b60ff1690565b60f81b6001600160f81b03191690565b841a61117584876110e7565b5304908161112b565b91506000198114610d6d576001600a910191048084929161111b565b506040516040810181811067ffffffffffffffff8211176107475760405260018152600360fc1b60208201529056fea26469706673582212201f806aae0a9b76f74c0e2e628ee4298ae6cc78505b14b8a17d7ce1d9e564234a64736f6c63430008120033", - "deployedBytecode": "0x6080604052600436101561001257600080fd5b60003560e01c806301ffc9a7146100e757806306fdde03146100e2578063081812fc146100dd578063095ea7b3146100d857806323b872dd146100d357806342842e0e146100ce5780636352211e146100c957806370a08231146100c457806395d89b41146100bf578063a22cb465146100ba578063b88d4fde146100b5578063c87b56dd146100b05763e985e9c5146100ab57600080fd5b6108fc565b610813565b61078a565b610629565b610568565b6104c6565b6104a8565b610480565b610457565b610333565b6102d7565b6101cd565b610103565b6001600160e01b03198116036100fe57565b600080fd5b346100fe5760203660031901126100fe576020600435610122816100ec565b63ffffffff60e01b166380ac58cd60e01b8114908115610160575b811561014f575b506040519015158152f35b6301ffc9a760e01b14905038610144565b635b5e139f60e01b8114915061013d565b60005b8381106101845750506000910152565b8181015183820152602001610174565b906020916101ad81518092818552858086019101610171565b601f01601f1916010190565b9060206101ca928181520190610194565b90565b346100fe576000806003193601126102d457604051908080549060019180831c928082169283156102ca575b60209283861085146102b6578588526020880194908115610295575060011461023d575b6102398761022d8189038261074c565b604051918291826101b9565b0390f35b6000805294509192917f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b838610610284575050509101905061022d82610239388061021d565b805485870152948201948101610268565b60ff191685525050505090151560051b01905061022d82610239388061021d565b634e487b7160e01b82526022600452602482fd5b93607f16936101f9565b80fd5b346100fe5760203660031901126100fe5760206102f5600435610a6d565b6040516001600160a01b039091168152f35b600435906001600160a01b03821682036100fe57565b602435906001600160a01b03821682036100fe57565b346100fe5760403660031901126100fe5761034c610307565b60243561035881610959565b916001600160a01b0380841690821681146103d35761038a9361038591331490811561038c575b506109fb565b610f18565b005b6001600160a01b031660009081526005602052604090206103cd91506103c69033905b9060018060a01b0316600052602052604060002090565b5460ff1690565b3861037f565b60405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608490fd5b60609060031901126100fe576001600160a01b039060043582811681036100fe579160243590811681036100fe579060443590565b346100fe5761038a61046836610422565b9161047b6104768433610c00565b610aff565b610d8e565b346100fe5761038a61049136610422565b906040519261049f8461072b565b60008452610b65565b346100fe5760203660031901126100fe5760206102f5600435610959565b346100fe5760203660031901126100fe576001600160a01b036104e7610307565b168015610510576000526003602052610239604060002054604051918291829190602083019252565b60405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604482015269726f206164647265737360b01b6064820152608490fd5b346100fe576000806003193601126102d4576040519080600190815480831c9280821692831561061f575b60209283861085146102b657858852602088019490811561029557506001146105c6576102398761022d8189038261074c565b600160005294509192917fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b83861061060e575050509101905061022d82610239388061021d565b8054858701529482019481016105f2565b93607f1693610593565b346100fe5760403660031901126100fe57610642610307565b60243580151581036100fe576001600160a01b038216913383146106d0578161068d61069e9233600052600560205260406000209060018060a01b0316600052602052604060002090565b9060ff801983541691151516179055565b604051901515815233907f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3190602090a3005b60405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606490fd5b634e487b7160e01b600052604160045260246000fd5b6020810190811067ffffffffffffffff82111761074757604052565b610715565b90601f8019910116810190811067ffffffffffffffff82111761074757604052565b67ffffffffffffffff811161074757601f01601f191660200190565b346100fe5760803660031901126100fe576107a3610307565b6107ab61031d565b6064359167ffffffffffffffff83116100fe57366023840112156100fe578260040135916107d88361076e565b926107e6604051948561074c565b80845236602482870101116100fe57602081600092602461038a9801838801378501015260443591610b65565b346100fe5760203660031901126100fe576004356000818152600260205260409020546001600160a01b03161561089f5761084c6109d1565b80511561088d5761022d6108799161087f6108696102399561110e565b60405194859360208501906109e4565b906109e4565b03601f19810183528261074c565b505061023961089a6109d1565b61022d565b60405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b6064820152608490fd5b346100fe5760403660031901126100fe57602060ff61094d61091c610307565b61092461031d565b6001600160a01b0391821660009081526005865260408082209290931681526020919091522090565b54166040519015158152f35b6000908152600260205260409020546001600160a01b0316801561097a5790565b60405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201526832b73a103a37b5b2b760b91b6064820152608490fd5b604051906109de8261072b565b60008252565b906109f760209282815194859201610171565b0190565b15610a0257565b60405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c00000000000000006064820152608490fd5b6000818152600260205260409020546001600160a01b031615610aa5576000908152600460205260409020546001600160a01b031690565b60405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608490fd5b15610b0657565b60405162461bcd60e51b815260206004820152603160248201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6044820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b6064820152608490fd5b90610b89939291610b796104768433610c00565b610b84838383610d8e565b610ff2565b15610b9057565b60405162461bcd60e51b815280610ba960048201610bad565b0390fd5b60809060208152603260208201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b60608201520190565b6000828152600260205260409020546001600160a01b031615610c9657610c2682610959565b9160018060a01b0390818316928285168414948515610c65575b50508315610c4f575b50505090565b610c5b91929350610a6d565b1614388080610c49565b6001600160a01b0316600090815260056020526040902091945060ff91610c8c91906103af565b5416923880610c40565b60405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608490fd5b15610cf757565b60405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608490fd5b634e487b7160e01b600052601160045260246000fd5b600019810191908211610d6d57565b610d48565b9060018201809211610d6d57565b6030019081603011610d6d57565b90610d9883610959565b6001600160a01b038381169290918216839003610e7157610de7610e4a92821694610dc4861515610cf0565b610dcd87610ec4565b6001600160a01b0316600090815260036020526040902090565b610df18154610d5e565b90556001600160a01b0381166000908152600360205260409020610e158154610d72565b9055610e2b856000526002602052604060002090565b80546001600160a01b0319166001600160a01b03909216919091179055565b7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4565b60405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b6064820152608490fd5b600081815260046020526040812080546001600160a01b03191690556001600160a01b03610ef183610959565b167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258280a4565b600082815260046020526040902080546001600160a01b0319166001600160a01b0383161790556001600160a01b0380610f5184610959565b169116907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600080a4565b908160209103126100fe57516101ca816100ec565b6001600160a01b0391821681529116602082015260408101919091526080606082018190526101ca92910190610194565b3d15610fed573d90610fd38261076e565b91610fe1604051938461074c565b82523d6000602084013e565b606090565b92909190823b156110ac57611025926020926000604051809681958294630a85bd0160e11b9a8b85523360048601610f91565b03926001600160a01b03165af16000918161107c575b5061106e57611048610fc2565b805190816110695760405162461bcd60e51b815280610ba960048201610bad565b602001fd5b6001600160e01b0319161490565b61109e91925060203d81116110a5575b611096818361074c565b810190610f7c565b903861103b565b503d61108c565b50505050600190565b906110bf8261076e565b6110cc604051918261074c565b82815280926110dd601f199161076e565b0190602036910137565b9081518110156110f8570160200190565b634e487b7160e01b600052603260045260246000fd5b801561119a576000818181805b61117e5750611129816110b5565b935b6111355750505090565b61113e90610d5e565b90600a90611169611159611153848406610d80565b60ff1690565b60f81b6001600160f81b03191690565b841a61117584876110e7565b5304908161112b565b91506000198114610d6d576001600a910191048084929161111b565b506040516040810181811067ffffffffffffffff8211176107475760405260018152600360fc1b60208201529056fea26469706673582212201f806aae0a9b76f74c0e2e628ee4298ae6cc78505b14b8a17d7ce1d9e564234a64736f6c63430008120033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/token/ERC721/IERC721.sol/IERC721.dbg.json b/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/token/ERC721/IERC721.sol/IERC721.dbg.json deleted file mode 100644 index 50520f6970..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/token/ERC721/IERC721.sol/IERC721.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/e49535a141eefaebe6d9aa3bc85bbb11.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/token/ERC721/IERC721.sol/IERC721.json b/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/token/ERC721/IERC721.sol/IERC721.json deleted file mode 100644 index 3f0fc3afb2..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/token/ERC721/IERC721.sol/IERC721.json +++ /dev/null @@ -1,296 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IERC721", - "sourceName": "@openzeppelin/contracts/token/ERC721/IERC721.sol", - "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": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "balance", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "getApproved", - "outputs": [ - { - "internalType": "address", - "name": "operator", - "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": "owner", - "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": "nonpayable", - "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": "nonpayable", - "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": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol/IERC721Receiver.dbg.json b/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol/IERC721Receiver.dbg.json deleted file mode 100644 index 50520f6970..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol/IERC721Receiver.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/e49535a141eefaebe6d9aa3bc85bbb11.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol/IERC721Receiver.json b/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol/IERC721Receiver.json deleted file mode 100644 index e91c7b089a..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol/IERC721Receiver.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IERC721Receiver", - "sourceName": "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol", - "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" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol/ERC721URIStorage.dbg.json b/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol/ERC721URIStorage.dbg.json deleted file mode 100644 index 71abf31f67..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol/ERC721URIStorage.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../../build-info/e49535a141eefaebe6d9aa3bc85bbb11.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol/ERC721URIStorage.json b/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol/ERC721URIStorage.json deleted file mode 100644 index 15d113f9bd..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol/ERC721URIStorage.json +++ /dev/null @@ -1,341 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "ERC721URIStorage", - "sourceName": "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol", - "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": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "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": "", - "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": "nonpayable", - "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": "nonpayable", - "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": "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": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol/IERC721Metadata.dbg.json b/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol/IERC721Metadata.dbg.json deleted file mode 100644 index 71abf31f67..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol/IERC721Metadata.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../../build-info/e49535a141eefaebe6d9aa3bc85bbb11.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol/IERC721Metadata.json b/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol/IERC721Metadata.json deleted file mode 100644 index 3fe3866889..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol/IERC721Metadata.json +++ /dev/null @@ -1,341 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IERC721Metadata", - "sourceName": "@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol", - "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": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "balance", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "getApproved", - "outputs": [ - { - "internalType": "address", - "name": "operator", - "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": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "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": "tokenId", - "type": "uint256" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "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": "nonpayable", - "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": "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": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/utils/Address.sol/Address.dbg.json b/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/utils/Address.sol/Address.dbg.json deleted file mode 100644 index 020edc770e..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/utils/Address.sol/Address.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../build-info/e49535a141eefaebe6d9aa3bc85bbb11.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/utils/Address.sol/Address.json b/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/utils/Address.sol/Address.json deleted file mode 100644 index 2f3144c3b9..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/utils/Address.sol/Address.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "Address", - "sourceName": "@openzeppelin/contracts/utils/Address.sol", - "abi": [], - "bytecode": "0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220ac43faee7ca38d4cdd1c70b68eaef36126725ad73108bf35bfdddf3a813602f964736f6c63430008120033", - "deployedBytecode": "0x600080fdfea2646970667358221220ac43faee7ca38d4cdd1c70b68eaef36126725ad73108bf35bfdddf3a813602f964736f6c63430008120033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.dbg.json b/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.dbg.json deleted file mode 100644 index 020edc770e..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../build-info/e49535a141eefaebe6d9aa3bc85bbb11.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.json b/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.json deleted file mode 100644 index 8fe86fc78f..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "Context", - "sourceName": "@openzeppelin/contracts/utils/Context.sol", - "abi": [], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/utils/Counters.sol/Counters.dbg.json b/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/utils/Counters.sol/Counters.dbg.json deleted file mode 100644 index 020edc770e..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/utils/Counters.sol/Counters.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../build-info/e49535a141eefaebe6d9aa3bc85bbb11.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/utils/Counters.sol/Counters.json b/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/utils/Counters.sol/Counters.json deleted file mode 100644 index 5a1d6ec000..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/utils/Counters.sol/Counters.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "Counters", - "sourceName": "@openzeppelin/contracts/utils/Counters.sol", - "abi": [], - "bytecode": "0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea26469706673582212201ab5e9bac94912824cc03ae7702411d9f1763cc09f043182d066a3951912758964736f6c63430008120033", - "deployedBytecode": "0x600080fdfea26469706673582212201ab5e9bac94912824cc03ae7702411d9f1763cc09f043182d066a3951912758964736f6c63430008120033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/utils/Strings.sol/Strings.dbg.json b/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/utils/Strings.sol/Strings.dbg.json deleted file mode 100644 index 020edc770e..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/utils/Strings.sol/Strings.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../build-info/e49535a141eefaebe6d9aa3bc85bbb11.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/utils/Strings.sol/Strings.json b/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/utils/Strings.sol/Strings.json deleted file mode 100644 index 2f724083df..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/utils/Strings.sol/Strings.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "Strings", - "sourceName": "@openzeppelin/contracts/utils/Strings.sol", - "abi": [], - "bytecode": "0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220dd915b48356224801e0798b666bc79756a6226faf0c5e85aea7d83184b1a65df64736f6c63430008120033", - "deployedBytecode": "0x600080fdfea2646970667358221220dd915b48356224801e0798b666bc79756a6226faf0c5e85aea7d83184b1a65df64736f6c63430008120033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/utils/introspection/ERC165.sol/ERC165.dbg.json b/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/utils/introspection/ERC165.sol/ERC165.dbg.json deleted file mode 100644 index 50520f6970..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/utils/introspection/ERC165.sol/ERC165.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/e49535a141eefaebe6d9aa3bc85bbb11.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/utils/introspection/ERC165.sol/ERC165.json b/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/utils/introspection/ERC165.sol/ERC165.json deleted file mode 100644 index 1304472c7c..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/utils/introspection/ERC165.sol/ERC165.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "ERC165", - "sourceName": "@openzeppelin/contracts/utils/introspection/ERC165.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/utils/introspection/IERC165.sol/IERC165.dbg.json b/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/utils/introspection/IERC165.sol/IERC165.dbg.json deleted file mode 100644 index 50520f6970..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/utils/introspection/IERC165.sol/IERC165.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/e49535a141eefaebe6d9aa3bc85bbb11.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/utils/introspection/IERC165.sol/IERC165.json b/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/utils/introspection/IERC165.sol/IERC165.json deleted file mode 100644 index ff87f91eed..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/@openzeppelin/contracts/utils/introspection/IERC165.sol/IERC165.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IERC165", - "sourceName": "@openzeppelin/contracts/utils/introspection/IERC165.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts/build-info/e49535a141eefaebe6d9aa3bc85bbb11.json b/packages/integration-tests/src/playbook/artifacts/build-info/e49535a141eefaebe6d9aa3bc85bbb11.json deleted file mode 100644 index cc4cf123dc..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/build-info/e49535a141eefaebe6d9aa3bc85bbb11.json +++ /dev/null @@ -1 +0,0 @@ -{"id":"e49535a141eefaebe6d9aa3bc85bbb11","_format":"hh-sol-build-info-1","solcVersion":"0.8.18","solcLongVersion":"0.8.18+commit.87f61d96","input":{"language":"Solidity","sources":{"@matterlabs/zksync-contracts/l2/system-contracts/BootloaderUtilities.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\nimport \"./interfaces/IBootloaderUtilities.sol\";\nimport \"./libraries/TransactionHelper.sol\";\nimport \"./libraries/RLPEncoder.sol\";\nimport \"./libraries/EfficientCall.sol\";\n\n/**\n * @author Matter Labs\n * @notice A contract that provides some utility methods for the bootloader\n * that is very hard to write in Yul.\n */\ncontract BootloaderUtilities is IBootloaderUtilities {\n using TransactionHelper for *;\n\n /// @notice Calculates the canonical transaction hash and the recommended transaction hash.\n /// @param _transaction The transaction.\n /// @return txHash and signedTxHash of the transaction, i.e. the transaction hash to be used in the explorer and commits to all\n /// the fields of the transaction and the recommended hash to be signed for this transaction.\n /// @dev txHash must be unique for all transactions.\n function getTransactionHashes(\n Transaction calldata _transaction\n ) external view override returns (bytes32 txHash, bytes32 signedTxHash) {\n signedTxHash = _transaction.encodeHash();\n if (_transaction.txType == EIP_712_TX_TYPE) {\n txHash = keccak256(bytes.concat(signedTxHash, EfficientCall.keccak(_transaction.signature)));\n } else if (_transaction.txType == LEGACY_TX_TYPE) {\n txHash = encodeLegacyTransactionHash(_transaction);\n } else if (_transaction.txType == EIP_1559_TX_TYPE) {\n txHash = encodeEIP1559TransactionHash(_transaction);\n } else if (_transaction.txType == EIP_2930_TX_TYPE) {\n txHash = encodeEIP2930TransactionHash(_transaction);\n } else {\n revert(\"Unsupported tx type\");\n }\n }\n\n /// @notice Calculates the hash for a legacy transaction.\n /// @param _transaction The legacy transaction.\n /// @return txHash The hash of the transaction.\n function encodeLegacyTransactionHash(Transaction calldata _transaction) internal view returns (bytes32 txHash) {\n // Hash of legacy transactions are encoded as one of the:\n // - RLP(nonce, gasPrice, gasLimit, to, value, data, chainId, 0, 0)\n // - RLP(nonce, gasPrice, gasLimit, to, value, data)\n //\n // In this RLP encoding, only the first one above list appears, so we encode each element\n // inside list and then concatenate the length of all elements with them.\n\n bytes memory encodedNonce = RLPEncoder.encodeUint256(_transaction.nonce);\n // Encode `gasPrice` and `gasLimit` together to prevent \"stack too deep error\".\n bytes memory encodedGasParam;\n {\n bytes memory encodedGasPrice = RLPEncoder.encodeUint256(_transaction.maxFeePerGas);\n bytes memory encodedGasLimit = RLPEncoder.encodeUint256(_transaction.gasLimit);\n encodedGasParam = bytes.concat(encodedGasPrice, encodedGasLimit);\n }\n\n bytes memory encodedTo = RLPEncoder.encodeAddress(address(uint160(_transaction.to)));\n bytes memory encodedValue = RLPEncoder.encodeUint256(_transaction.value);\n // Encode only the length of the transaction data, and not the data itself,\n // so as not to copy to memory a potentially huge transaction data twice.\n bytes memory encodedDataLength;\n {\n // Safe cast, because the length of the transaction data can't be so large.\n uint64 txDataLen = uint64(_transaction.data.length);\n if (txDataLen != 1) {\n // If the length is not equal to one, then only using the length can it be encoded definitely.\n encodedDataLength = RLPEncoder.encodeNonSingleBytesLen(txDataLen);\n } else if (_transaction.data[0] >= 0x80) {\n // If input is a byte in [0x80, 0xff] range, RLP encoding will concatenates 0x81 with the byte.\n encodedDataLength = hex\"81\";\n }\n // Otherwise the length is not encoded at all.\n }\n\n bytes memory rEncoded;\n {\n uint256 rInt = uint256(bytes32(_transaction.signature[0:32]));\n rEncoded = RLPEncoder.encodeUint256(rInt);\n }\n bytes memory sEncoded;\n {\n uint256 sInt = uint256(bytes32(_transaction.signature[32:64]));\n sEncoded = RLPEncoder.encodeUint256(sInt);\n }\n bytes memory vEncoded;\n {\n uint256 vInt = uint256(uint8(_transaction.signature[64]));\n require(vInt == 27 || vInt == 28, \"Invalid v value\");\n\n // If the `chainId` is specified in the transaction, then the `v` value is encoded as\n // `35 + y + 2 * chainId == vInt + 8 + 2 * chainId`, where y - parity bit (see EIP-155).\n if (_transaction.reserved[0] != 0) {\n vInt += 8 + block.chainid * 2;\n }\n\n vEncoded = RLPEncoder.encodeUint256(vInt);\n }\n\n bytes memory encodedListLength;\n unchecked {\n uint256 listLength = encodedNonce.length +\n encodedGasParam.length +\n encodedTo.length +\n encodedValue.length +\n encodedDataLength.length +\n _transaction.data.length +\n rEncoded.length +\n sEncoded.length +\n vEncoded.length;\n\n // Safe cast, because the length of the list can't be so large.\n encodedListLength = RLPEncoder.encodeListLen(uint64(listLength));\n }\n\n return\n keccak256(\n bytes.concat(\n encodedListLength,\n encodedNonce,\n encodedGasParam,\n encodedTo,\n encodedValue,\n encodedDataLength,\n _transaction.data,\n vEncoded,\n rEncoded,\n sEncoded\n )\n );\n }\n\n /// @notice Calculates the hash for an EIP2930 transaction.\n /// @param _transaction The EIP2930 transaction.\n /// @return txHash The hash of the transaction.\n function encodeEIP2930TransactionHash(Transaction calldata _transaction) internal view returns (bytes32) {\n // Encode all fixed-length params to avoid \"stack too deep error\"\n bytes memory encodedFixedLengthParams;\n {\n bytes memory encodedChainId = RLPEncoder.encodeUint256(block.chainid);\n bytes memory encodedNonce = RLPEncoder.encodeUint256(_transaction.nonce);\n bytes memory encodedGasPrice = RLPEncoder.encodeUint256(_transaction.maxFeePerGas);\n bytes memory encodedGasLimit = RLPEncoder.encodeUint256(_transaction.gasLimit);\n bytes memory encodedTo = RLPEncoder.encodeAddress(address(uint160(_transaction.to)));\n bytes memory encodedValue = RLPEncoder.encodeUint256(_transaction.value);\n encodedFixedLengthParams = bytes.concat(\n encodedChainId,\n encodedNonce,\n encodedGasPrice,\n encodedGasLimit,\n encodedTo,\n encodedValue\n );\n }\n\n // Encode only the length of the transaction data, and not the data itself,\n // so as not to copy to memory a potentially huge transaction data twice.\n bytes memory encodedDataLength;\n {\n // Safe cast, because the length of the transaction data can't be so large.\n uint64 txDataLen = uint64(_transaction.data.length);\n if (txDataLen != 1) {\n // If the length is not equal to one, then only using the length can it be encoded definitely.\n encodedDataLength = RLPEncoder.encodeNonSingleBytesLen(txDataLen);\n } else if (_transaction.data[0] >= 0x80) {\n // If input is a byte in [0x80, 0xff] range, RLP encoding will concatenates 0x81 with the byte.\n encodedDataLength = hex\"81\";\n }\n // Otherwise the length is not encoded at all.\n }\n\n // On zkSync, access lists are always zero length (at least for now).\n bytes memory encodedAccessListLength = RLPEncoder.encodeListLen(0);\n\n bytes memory rEncoded;\n {\n uint256 rInt = uint256(bytes32(_transaction.signature[0:32]));\n rEncoded = RLPEncoder.encodeUint256(rInt);\n }\n bytes memory sEncoded;\n {\n uint256 sInt = uint256(bytes32(_transaction.signature[32:64]));\n sEncoded = RLPEncoder.encodeUint256(sInt);\n }\n bytes memory vEncoded;\n {\n uint256 vInt = uint256(uint8(_transaction.signature[64]));\n require(vInt == 27 || vInt == 28, \"Invalid v value\");\n\n vEncoded = RLPEncoder.encodeUint256(vInt - 27);\n }\n\n bytes memory encodedListLength;\n unchecked {\n uint256 listLength = encodedFixedLengthParams.length +\n encodedDataLength.length +\n _transaction.data.length +\n encodedAccessListLength.length +\n rEncoded.length +\n sEncoded.length +\n vEncoded.length;\n\n // Safe cast, because the length of the list can't be so large.\n encodedListLength = RLPEncoder.encodeListLen(uint64(listLength));\n }\n\n return\n keccak256(\n bytes.concat(\n \"\\x01\",\n encodedListLength,\n encodedFixedLengthParams,\n encodedDataLength,\n _transaction.data,\n encodedAccessListLength,\n vEncoded,\n rEncoded,\n sEncoded\n )\n );\n }\n\n /// @notice Calculates the hash for an EIP1559 transaction.\n /// @param _transaction The legacy transaction.\n /// @return txHash The hash of the transaction.\n function encodeEIP1559TransactionHash(Transaction calldata _transaction) internal view returns (bytes32) {\n // The formula for hash of EIP1559 transaction in the original proposal:\n // https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1559.md\n\n // Encode all fixed-length params to avoid \"stack too deep error\"\n bytes memory encodedFixedLengthParams;\n {\n bytes memory encodedChainId = RLPEncoder.encodeUint256(block.chainid);\n bytes memory encodedNonce = RLPEncoder.encodeUint256(_transaction.nonce);\n bytes memory encodedMaxPriorityFeePerGas = RLPEncoder.encodeUint256(_transaction.maxPriorityFeePerGas);\n bytes memory encodedMaxFeePerGas = RLPEncoder.encodeUint256(_transaction.maxFeePerGas);\n bytes memory encodedGasLimit = RLPEncoder.encodeUint256(_transaction.gasLimit);\n bytes memory encodedTo = RLPEncoder.encodeAddress(address(uint160(_transaction.to)));\n bytes memory encodedValue = RLPEncoder.encodeUint256(_transaction.value);\n encodedFixedLengthParams = bytes.concat(\n encodedChainId,\n encodedNonce,\n encodedMaxPriorityFeePerGas,\n encodedMaxFeePerGas,\n encodedGasLimit,\n encodedTo,\n encodedValue\n );\n }\n\n // Encode only the length of the transaction data, and not the data itself,\n // so as not to copy to memory a potentially huge transaction data twice.\n bytes memory encodedDataLength;\n {\n // Safe cast, because the length of the transaction data can't be so large.\n uint64 txDataLen = uint64(_transaction.data.length);\n if (txDataLen != 1) {\n // If the length is not equal to one, then only using the length can it be encoded definitely.\n encodedDataLength = RLPEncoder.encodeNonSingleBytesLen(txDataLen);\n } else if (_transaction.data[0] >= 0x80) {\n // If input is a byte in [0x80, 0xff] range, RLP encoding will concatenates 0x81 with the byte.\n encodedDataLength = hex\"81\";\n }\n // Otherwise the length is not encoded at all.\n }\n\n // On zkSync, access lists are always zero length (at least for now).\n bytes memory encodedAccessListLength = RLPEncoder.encodeListLen(0);\n\n bytes memory rEncoded;\n {\n uint256 rInt = uint256(bytes32(_transaction.signature[0:32]));\n rEncoded = RLPEncoder.encodeUint256(rInt);\n }\n bytes memory sEncoded;\n {\n uint256 sInt = uint256(bytes32(_transaction.signature[32:64]));\n sEncoded = RLPEncoder.encodeUint256(sInt);\n }\n bytes memory vEncoded;\n {\n uint256 vInt = uint256(uint8(_transaction.signature[64]));\n require(vInt == 27 || vInt == 28, \"Invalid v value\");\n\n vEncoded = RLPEncoder.encodeUint256(vInt - 27);\n }\n\n bytes memory encodedListLength;\n unchecked {\n uint256 listLength = encodedFixedLengthParams.length +\n encodedDataLength.length +\n _transaction.data.length +\n encodedAccessListLength.length +\n rEncoded.length +\n sEncoded.length +\n vEncoded.length;\n\n // Safe cast, because the length of the list can't be so large.\n encodedListLength = RLPEncoder.encodeListLen(uint64(listLength));\n }\n\n return\n keccak256(\n bytes.concat(\n \"\\x02\",\n encodedListLength,\n encodedFixedLengthParams,\n encodedDataLength,\n _transaction.data,\n encodedAccessListLength,\n vEncoded,\n rEncoded,\n sEncoded\n )\n );\n }\n}\n"},"@matterlabs/zksync-contracts/l2/system-contracts/Constants.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\nimport \"./interfaces/IAccountCodeStorage.sol\";\nimport \"./interfaces/INonceHolder.sol\";\nimport \"./interfaces/IContractDeployer.sol\";\nimport \"./interfaces/IKnownCodesStorage.sol\";\nimport \"./interfaces/IImmutableSimulator.sol\";\nimport \"./interfaces/IEthToken.sol\";\nimport \"./interfaces/IL1Messenger.sol\";\nimport \"./interfaces/ISystemContext.sol\";\nimport \"./interfaces/IBytecodeCompressor.sol\";\nimport \"./BootloaderUtilities.sol\";\n\n/// @dev All the system contracts introduced by zkSync have their addresses\n/// started from 2^15 in order to avoid collision with Ethereum precompiles.\nuint160 constant SYSTEM_CONTRACTS_OFFSET = 0x8000; // 2^15\n\n/// @dev All the system contracts must be located in the kernel space,\n/// i.e. their addresses must be below 2^16.\nuint160 constant MAX_SYSTEM_CONTRACT_ADDRESS = 0xffff; // 2^16 - 1\n\naddress constant ECRECOVER_SYSTEM_CONTRACT = address(0x01);\naddress constant SHA256_SYSTEM_CONTRACT = address(0x02);\n\n/// @dev The current maximum deployed precompile address.\n/// Note: currently only two precompiles are deployed:\n/// 0x01 - ecrecover\n/// 0x02 - sha256\n/// Important! So the constant should be updated if more precompiles are deployed.\nuint256 constant CURRENT_MAX_PRECOMPILE_ADDRESS = uint256(uint160(SHA256_SYSTEM_CONTRACT));\n\naddress payable constant BOOTLOADER_FORMAL_ADDRESS = payable(address(SYSTEM_CONTRACTS_OFFSET + 0x01));\nIAccountCodeStorage constant ACCOUNT_CODE_STORAGE_SYSTEM_CONTRACT = IAccountCodeStorage(\n address(SYSTEM_CONTRACTS_OFFSET + 0x02)\n);\nINonceHolder constant NONCE_HOLDER_SYSTEM_CONTRACT = INonceHolder(address(SYSTEM_CONTRACTS_OFFSET + 0x03));\nIKnownCodesStorage constant KNOWN_CODE_STORAGE_CONTRACT = IKnownCodesStorage(address(SYSTEM_CONTRACTS_OFFSET + 0x04));\nIImmutableSimulator constant IMMUTABLE_SIMULATOR_SYSTEM_CONTRACT = IImmutableSimulator(\n address(SYSTEM_CONTRACTS_OFFSET + 0x05)\n);\nIContractDeployer constant DEPLOYER_SYSTEM_CONTRACT = IContractDeployer(address(SYSTEM_CONTRACTS_OFFSET + 0x06));\n\n// A contract that is allowed to deploy any codehash\n// on any address. To be used only during an upgrade.\naddress constant FORCE_DEPLOYER = address(SYSTEM_CONTRACTS_OFFSET + 0x07);\nIL1Messenger constant L1_MESSENGER_CONTRACT = IL1Messenger(address(SYSTEM_CONTRACTS_OFFSET + 0x08));\naddress constant MSG_VALUE_SYSTEM_CONTRACT = address(SYSTEM_CONTRACTS_OFFSET + 0x09);\n\nIEthToken constant ETH_TOKEN_SYSTEM_CONTRACT = IEthToken(address(SYSTEM_CONTRACTS_OFFSET + 0x0a));\n\naddress constant KECCAK256_SYSTEM_CONTRACT = address(SYSTEM_CONTRACTS_OFFSET + 0x10);\n\nISystemContext constant SYSTEM_CONTEXT_CONTRACT = ISystemContext(payable(address(SYSTEM_CONTRACTS_OFFSET + 0x0b)));\n\nBootloaderUtilities constant BOOTLOADER_UTILITIES = BootloaderUtilities(address(SYSTEM_CONTRACTS_OFFSET + 0x0c));\n\naddress constant EVENT_WRITER_CONTRACT = address(SYSTEM_CONTRACTS_OFFSET + 0x0d);\n\nIBytecodeCompressor constant BYTECODE_COMPRESSOR_CONTRACT = IBytecodeCompressor(\n address(SYSTEM_CONTRACTS_OFFSET + 0x0e)\n);\n\n/// @dev If the bitwise AND of the extraAbi[2] param when calling the MSG_VALUE_SIMULATOR\n/// is non-zero, the call will be assumed to be a system one.\nuint256 constant MSG_VALUE_SIMULATOR_IS_SYSTEM_BIT = 1;\n\n/// @dev The maximal msg.value that context can have\nuint256 constant MAX_MSG_VALUE = 2 ** 128 - 1;\n\n/// @dev Prefix used during derivation of account addresses using CREATE2\n/// @dev keccak256(\"zksyncCreate2\")\nbytes32 constant CREATE2_PREFIX = 0x2020dba91b30cc0006188af794c2fb30dd8520db7e2c088b7fc7c103c00ca494;\n/// @dev Prefix used during derivation of account addresses using CREATE\n/// @dev keccak256(\"zksyncCreate\")\nbytes32 constant CREATE_PREFIX = 0x63bae3a9951d38e8a3fbb7b70909afc1200610fc5bc55ade242f815974674f23;\n"},"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IAccountCodeStorage.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\ninterface IAccountCodeStorage {\n function storeAccountConstructingCodeHash(address _address, bytes32 _hash) external;\n\n function storeAccountConstructedCodeHash(address _address, bytes32 _hash) external;\n\n function markAccountCodeHashAsConstructed(address _address) external;\n\n function getRawCodeHash(address _address) external view returns (bytes32 codeHash);\n\n function getCodeHash(uint256 _input) external view returns (bytes32 codeHash);\n\n function getCodeSize(uint256 _input) external view returns (uint256 codeSize);\n}\n"},"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBootloaderUtilities.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\nimport \"../libraries/TransactionHelper.sol\";\n\ninterface IBootloaderUtilities {\n function getTransactionHashes(\n Transaction calldata _transaction\n ) external view returns (bytes32 txHash, bytes32 signedTxHash);\n}\n"},"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBytecodeCompressor.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\ninterface IBytecodeCompressor {\n function publishCompressedBytecode(\n bytes calldata _bytecode,\n bytes calldata _rawCompressedData\n ) external payable returns (bytes32 bytecodeHash);\n}\n"},"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IContractDeployer.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\ninterface IContractDeployer {\n /// @notice Defines the version of the account abstraction protocol\n /// that a contract claims to follow.\n /// - `None` means that the account is just a contract and it should never be interacted\n /// with as a custom account\n /// - `Version1` means that the account follows the first version of the account abstraction protocol\n enum AccountAbstractionVersion {\n None,\n Version1\n }\n\n /// @notice Defines the nonce ordering used by the account\n /// - `Sequential` means that it is expected that the nonces are monotonic and increment by 1\n /// at a time (the same as EOAs).\n /// - `Arbitrary` means that the nonces for the accounts can be arbitrary. The operator\n /// should serve the transactions from such an account on a first-come-first-serve basis.\n /// @dev This ordering is more of a suggestion to the operator on how the AA expects its transactions\n /// to be processed and is not considered as a system invariant.\n enum AccountNonceOrdering {\n Sequential,\n Arbitrary\n }\n\n struct AccountInfo {\n AccountAbstractionVersion supportedAAVersion;\n AccountNonceOrdering nonceOrdering;\n }\n\n event ContractDeployed(\n address indexed deployerAddress,\n bytes32 indexed bytecodeHash,\n address indexed contractAddress\n );\n\n event AccountNonceOrderingUpdated(address indexed accountAddress, AccountNonceOrdering nonceOrdering);\n\n event AccountVersionUpdated(address indexed accountAddress, AccountAbstractionVersion aaVersion);\n\n function getNewAddressCreate2(\n address _sender,\n bytes32 _bytecodeHash,\n bytes32 _salt,\n bytes calldata _input\n ) external view returns (address newAddress);\n\n function getNewAddressCreate(address _sender, uint256 _senderNonce) external pure returns (address newAddress);\n\n function create2(\n bytes32 _salt,\n bytes32 _bytecodeHash,\n bytes calldata _input\n ) external payable returns (address newAddress);\n\n function create2Account(\n bytes32 _salt,\n bytes32 _bytecodeHash,\n bytes calldata _input,\n AccountAbstractionVersion _aaVersion\n ) external payable returns (address newAddress);\n\n /// @dev While the `_salt` parameter is not used anywhere here,\n /// it is still needed for consistency between `create` and\n /// `create2` functions (required by the compiler).\n function create(\n bytes32 _salt,\n bytes32 _bytecodeHash,\n bytes calldata _input\n ) external payable returns (address newAddress);\n\n /// @dev While `_salt` is never used here, we leave it here as a parameter\n /// for the consistency with the `create` function.\n function createAccount(\n bytes32 _salt,\n bytes32 _bytecodeHash,\n bytes calldata _input,\n AccountAbstractionVersion _aaVersion\n ) external payable returns (address newAddress);\n\n /// @notice Returns the information about a certain AA.\n function getAccountInfo(address _address) external view returns (AccountInfo memory info);\n\n /// @notice Can be called by an account to update its account version\n function updateAccountVersion(AccountAbstractionVersion _version) external;\n\n /// @notice Can be called by an account to update its nonce ordering\n function updateNonceOrdering(AccountNonceOrdering _nonceOrdering) external;\n}\n"},"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IEthToken.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\ninterface IEthToken {\n function balanceOf(uint256) external view returns (uint256);\n\n function transferFromTo(address _from, address _to, uint256 _amount) external;\n\n function totalSupply() external view returns (uint256);\n\n function name() external pure returns (string memory);\n\n function symbol() external pure returns (string memory);\n\n function decimals() external pure returns (uint8);\n\n function mint(address _account, uint256 _amount) external;\n\n function withdraw(address _l1Receiver) external payable;\n\n event Mint(address indexed account, uint256 amount);\n\n event Transfer(address indexed from, address indexed to, uint256 value);\n\n event Withdrawal(address indexed _l2Sender, address indexed _l1Receiver, uint256 _amount);\n}\n"},"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IImmutableSimulator.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\nstruct ImmutableData {\n uint256 index;\n bytes32 value;\n}\n\ninterface IImmutableSimulator {\n function getImmutable(address _dest, uint256 _index) external view returns (bytes32);\n\n function setImmutables(address _dest, ImmutableData[] calldata _immutables) external;\n}\n"},"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IKnownCodesStorage.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\ninterface IKnownCodesStorage {\n event MarkedAsKnown(bytes32 indexed bytecodeHash, bool indexed sendBytecodeToL1);\n\n function markFactoryDeps(bool _shouldSendToL1, bytes32[] calldata _hashes) external;\n\n function markBytecodeAsPublished(\n bytes32 _bytecodeHash,\n bytes32 _l1PreimageHash,\n uint256 _l1PreimageBytesLen\n ) external;\n\n function getMarker(bytes32 _hash) external view returns (uint256);\n}\n"},"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IL1Messenger.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\ninterface IL1Messenger {\n // Possibly in the future we will be able to track the messages sent to L1 with\n // some hooks in the VM. For now, it is much easier to track them with L2 events.\n event L1MessageSent(address indexed _sender, bytes32 indexed _hash, bytes _message);\n\n function sendToL1(bytes memory _message) external returns (bytes32);\n}\n"},"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/INonceHolder.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\n/**\n * @author Matter Labs\n * @dev Interface of the nonce holder contract -- a contract used by the system to ensure\n * that there is always a unique identifier for a transaction with a particular account (we call it nonce).\n * In other words, the pair of (address, nonce) should always be unique.\n * @dev Custom accounts should use methods of this contract to store nonces or other possible unique identifiers\n * for the transaction.\n */\ninterface INonceHolder {\n event ValueSetUnderNonce(address indexed accountAddress, uint256 indexed key, uint256 value);\n\n /// @dev Returns the current minimal nonce for account.\n function getMinNonce(address _address) external view returns (uint256);\n\n /// @dev Returns the raw version of the current minimal nonce\n /// (equal to minNonce + 2^128 * deployment nonce).\n function getRawNonce(address _address) external view returns (uint256);\n\n /// @dev Increases the minimal nonce for the msg.sender.\n function increaseMinNonce(uint256 _value) external returns (uint256);\n\n /// @dev Sets the nonce value `key` as used.\n function setValueUnderNonce(uint256 _key, uint256 _value) external;\n\n /// @dev Gets the value stored inside a custom nonce.\n function getValueUnderNonce(uint256 _key) external view returns (uint256);\n\n /// @dev A convenience method to increment the minimal nonce if it is equal\n /// to the `_expectedNonce`.\n function incrementMinNonceIfEquals(uint256 _expectedNonce) external;\n\n /// @dev Returns the deployment nonce for the accounts used for CREATE opcode.\n function getDeploymentNonce(address _address) external view returns (uint256);\n\n /// @dev Increments the deployment nonce for the account and returns the previous one.\n function incrementDeploymentNonce(address _address) external returns (uint256);\n\n /// @dev Determines whether a certain nonce has been already used for an account.\n function validateNonceUsage(address _address, uint256 _key, bool _shouldBeUsed) external view;\n\n /// @dev Returns whether a nonce has been used for an account.\n function isNonceUsed(address _address, uint256 _nonce) external view returns (bool);\n}\n"},"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymaster.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\nimport \"../libraries/TransactionHelper.sol\";\n\nenum ExecutionResult {\n Revert,\n Success\n}\n\nbytes4 constant PAYMASTER_VALIDATION_SUCCESS_MAGIC = IPaymaster.validateAndPayForPaymasterTransaction.selector;\n\ninterface IPaymaster {\n /// @dev Called by the bootloader to verify that the paymaster agrees to pay for the\n /// fee for the transaction. This transaction should also send the necessary amount of funds onto the bootloader\n /// address.\n /// @param _txHash The hash of the transaction\n /// @param _suggestedSignedHash The hash of the transaction that is signed by an EOA\n /// @param _transaction The transaction itself.\n /// @return magic The value that should be equal to the signature of the validateAndPayForPaymasterTransaction\n /// if the paymaster agrees to pay for the transaction.\n /// @return context The \"context\" of the transaction: an array of bytes of length at most 1024 bytes, which will be\n /// passed to the `postTransaction` method of the account.\n /// @dev The developer should strive to preserve as many steps as possible both for valid\n /// and invalid transactions as this very method is also used during the gas fee estimation\n /// (without some of the necessary data, e.g. signature).\n function validateAndPayForPaymasterTransaction(\n bytes32 _txHash,\n bytes32 _suggestedSignedHash,\n Transaction calldata _transaction\n ) external payable returns (bytes4 magic, bytes memory context);\n\n /// @dev Called by the bootloader after the execution of the transaction. Please note that\n /// there is no guarantee that this method will be called at all. Unlike the original EIP4337,\n /// this method won't be called if the transaction execution results in out-of-gas.\n /// @param _context, the context of the execution, returned by the \"validateAndPayForPaymasterTransaction\" method.\n /// @param _transaction, the users' transaction.\n /// @param _txResult, the result of the transaction execution (success or failure).\n /// @param _maxRefundedGas, the upper bound on the amout of gas that could be refunded to the paymaster.\n /// @dev The exact amount refunded depends on the gas spent by the \"postOp\" itself and so the developers should\n /// take that into account.\n function postTransaction(\n bytes calldata _context,\n Transaction calldata _transaction,\n bytes32 _txHash,\n bytes32 _suggestedSignedHash,\n ExecutionResult _txResult,\n uint256 _maxRefundedGas\n ) external payable;\n}\n"},"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymasterFlow.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\n/**\n * @author Matter Labs\n * @dev The interface that is used for encoding/decoding of\n * different types of paymaster flows.\n * @notice This is NOT an interface to be implementated\n * by contracts. It is just used for encoding.\n */\ninterface IPaymasterFlow {\n function general(bytes calldata input) external;\n\n function approvalBased(address _token, uint256 _minAllowance, bytes calldata _innerInput) external;\n}\n"},"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/ISystemContext.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\n/**\n * @author Matter Labs\n * @notice Contract that stores some of the context variables, that may be either\n * block-scoped, tx-scoped or system-wide.\n */\ninterface ISystemContext {\n function chainId() external view returns (uint256);\n\n function origin() external view returns (address);\n\n function gasPrice() external view returns (uint256);\n\n function blockGasLimit() external view returns (uint256);\n\n function coinbase() external view returns (address);\n\n function difficulty() external view returns (uint256);\n\n function baseFee() external view returns (uint256);\n\n function blockHash(uint256 _block) external view returns (bytes32);\n\n function getBlockHashEVM(uint256 _block) external view returns (bytes32);\n\n function getBlockNumberAndTimestamp() external view returns (uint256 blockNumber, uint256 blockTimestamp);\n\n // Note, that for now, the implementation of the bootloader allows this variables to\n // be incremented multiple times inside a block, so it should not relied upon right now.\n function getBlockNumber() external view returns (uint256);\n\n function getBlockTimestamp() external view returns (uint256);\n}\n"},"@matterlabs/zksync-contracts/l2/system-contracts/libraries/EfficientCall.sol":{"content":"// SPDX-License-Identifier: MIT OR Apache-2.0\n\npragma solidity ^0.8.0;\n\nimport \"./SystemContractHelper.sol\";\nimport \"./Utils.sol\";\nimport {SHA256_SYSTEM_CONTRACT, KECCAK256_SYSTEM_CONTRACT} from \"../Constants.sol\";\n\n/**\n * @author Matter Labs\n * @notice This library is used to perform ultra-efficient calls using zkEVM-specific features.\n * @dev EVM calls always accept a memory slice as input and return a memory slice as output.\n * Therefore, even if the user has a ready-made calldata slice, they still need to copy it to memory\n * before calling. This is especially inefficient for large inputs (proxies, multi-calls, etc.).\n * In turn, zkEVM operates over a fat pointer, which is a set of (memory page, offset, start, length) in the memory/calldata/returndata.\n * This allows forwarding the calldata slice as is, without copying it to memory.\n * @dev Fat pointer is not just an integer, it is an extended data type supported on the VM level.\n * zkEVM creates the wellformed fat pointers for all the calldata/returndata regions, later\n * the contract may manipulate the already created fat pointers to forward a slice of the data, but not\n * to create new fat pointers!\n * @dev The allowed operation on fat pointers are:\n * 1. `ptr.add` - Transforms `ptr.offset` into `ptr.offset + u32(_value)`. If overflow happens then it panics.\n * 2. `ptr.sub` - Transforms `ptr.offset` into `ptr.offset - u32(_value)`. If underflow happens then it panics.\n * 3. `ptr.pack` - Do the concatenation between the lowest 128 bits of the pointer itself and the highest 128 bits of `_value`. It is typically used to prepare the ABI for external calls.\n * 4. `ptr.shrink` - Transforms `ptr.length` into `ptr.length - u32(_shrink)`. If underflow happens then it panics.\n * @dev The call opcodes accept the fat pointer and change it to its canonical form before passing it to the child call\n * 1. `ptr.start` is transformed into `ptr.offset + ptr.start`\n * 2. `ptr.length` is transformed into `ptr.length - ptr.offset`\n * 3. `ptr.offset` is transformed into `0`\n */\nlibrary EfficientCall {\n /// @notice Call the `keccak256` without copying calldata to memory.\n /// @param _data The preimage data.\n /// @return The `keccak256` hash.\n function keccak(bytes calldata _data) internal view returns (bytes32) {\n bytes memory returnData = staticCall(gasleft(), KECCAK256_SYSTEM_CONTRACT, _data);\n require(returnData.length == 32, \"keccak256 returned invalid data\");\n return bytes32(returnData);\n }\n\n /// @notice Call the `sha256` precompile without copying calldata to memory.\n /// @param _data The preimage data.\n /// @return The `sha256` hash.\n function sha(bytes calldata _data) internal view returns (bytes32) {\n bytes memory returnData = staticCall(gasleft(), SHA256_SYSTEM_CONTRACT, _data);\n require(returnData.length == 32, \"sha returned invalid data\");\n return bytes32(returnData);\n }\n\n /// @notice Perform a `call` without copying calldata to memory.\n /// @param _gas The gas to use for the call.\n /// @param _address The address to call.\n /// @param _value The `msg.value` to send.\n /// @param _data The calldata to use for the call.\n /// @param _isSystem Whether the call should contain the `isSystem` flag.\n /// @return returnData The copied to memory return data.\n function call(\n uint256 _gas,\n address _address,\n uint256 _value,\n bytes calldata _data,\n bool _isSystem\n ) internal returns (bytes memory returnData) {\n bool success = rawCall(_gas, _address, _value, _data, _isSystem);\n returnData = _verifyCallResult(success);\n }\n\n /// @notice Perform a `staticCall` without copying calldata to memory.\n /// @param _gas The gas to use for the call.\n /// @param _address The address to call.\n /// @param _data The calldata to use for the call.\n /// @return returnData The copied to memory return data.\n function staticCall(\n uint256 _gas,\n address _address,\n bytes calldata _data\n ) internal view returns (bytes memory returnData) {\n bool success = rawStaticCall(_gas, _address, _data);\n returnData = _verifyCallResult(success);\n }\n\n /// @notice Perform a `delegateCall` without copying calldata to memory.\n /// @param _gas The gas to use for the call.\n /// @param _address The address to call.\n /// @param _data The calldata to use for the call.\n /// @return returnData The copied to memory return data.\n function delegateCall(\n uint256 _gas,\n address _address,\n bytes calldata _data\n ) internal returns (bytes memory returnData) {\n bool success = rawDelegateCall(_gas, _address, _data);\n returnData = _verifyCallResult(success);\n }\n\n /// @notice Perform a `mimicCall` (a call with custom msg.sender) without copying calldata to memory.\n /// @param _gas The gas to use for the call.\n /// @param _address The address to call.\n /// @param _data The calldata to use for the call.\n /// @param _whoToMimic The `msg.sender` for the next call.\n /// @param _isConstructor Whether the call should contain the `isConstructor` flag.\n /// @param _isSystem Whether the call should contain the `isSystem` flag.\n /// @return returnData The copied to memory return data.\n function mimicCall(\n uint256 _gas,\n address _address,\n bytes calldata _data,\n address _whoToMimic,\n bool _isConstructor,\n bool _isSystem\n ) internal returns (bytes memory returnData) {\n bool success = rawMimicCall(_gas, _address, _data, _whoToMimic, _isConstructor, _isSystem);\n returnData = _verifyCallResult(success);\n }\n\n /// @notice Perform a `call` without copying calldata to memory.\n /// @param _gas The gas to use for the call.\n /// @param _address The address to call.\n /// @param _value The `msg.value` to send.\n /// @param _data The calldata to use for the call.\n /// @param _isSystem Whether the call should contain the `isSystem` flag.\n /// @return success whether the call was successful.\n function rawCall(\n uint256 _gas,\n address _address,\n uint256 _value,\n bytes calldata _data,\n bool _isSystem\n ) internal returns (bool success) {\n if (_value == 0) {\n _loadFarCallABIIntoActivePtr(_gas, _data, false, _isSystem);\n\n address callAddr = RAW_FAR_CALL_BY_REF_CALL_ADDRESS;\n assembly {\n success := call(_address, callAddr, 0, 0, 0xFFFF, 0, 0)\n }\n } else {\n _loadFarCallABIIntoActivePtr(_gas, _data, false, true);\n\n // If there is provided `msg.value` call the `MsgValueSimulator` to forward ether.\n address msgValueSimulator = MSG_VALUE_SYSTEM_CONTRACT;\n address callAddr = SYSTEM_CALL_BY_REF_CALL_ADDRESS;\n // We need to supply the mask to the MsgValueSimulator to denote\n // that the call should be a system one.\n uint256 forwardMask = _isSystem ? MSG_VALUE_SIMULATOR_IS_SYSTEM_BIT : 0;\n\n assembly {\n success := call(msgValueSimulator, callAddr, _value, _address, 0xFFFF, forwardMask, 0)\n }\n }\n }\n\n /// @notice Perform a `staticCall` without copying calldata to memory.\n /// @param _gas The gas to use for the call.\n /// @param _address The address to call.\n /// @param _data The calldata to use for the call.\n /// @return success whether the call was successful.\n function rawStaticCall(uint256 _gas, address _address, bytes calldata _data) internal view returns (bool success) {\n _loadFarCallABIIntoActivePtr(_gas, _data, false, false);\n\n address callAddr = RAW_FAR_CALL_BY_REF_CALL_ADDRESS;\n assembly {\n success := staticcall(_address, callAddr, 0, 0xFFFF, 0, 0)\n }\n }\n\n /// @notice Perform a `delegatecall` without copying calldata to memory.\n /// @param _gas The gas to use for the call.\n /// @param _address The address to call.\n /// @param _data The calldata to use for the call.\n /// @return success whether the call was successful.\n function rawDelegateCall(uint256 _gas, address _address, bytes calldata _data) internal returns (bool success) {\n _loadFarCallABIIntoActivePtr(_gas, _data, false, false);\n\n address callAddr = RAW_FAR_CALL_BY_REF_CALL_ADDRESS;\n assembly {\n success := delegatecall(_address, callAddr, 0, 0xFFFF, 0, 0)\n }\n }\n\n /// @notice Perform a `mimicCall` (call with custom msg.sender) without copying calldata to memory.\n /// @param _gas The gas to use for the call.\n /// @param _address The address to call.\n /// @param _data The calldata to use for the call.\n /// @param _whoToMimic The `msg.sender` for the next call.\n /// @param _isConstructor Whether the call should contain the `isConstructor` flag.\n /// @param _isSystem Whether the call should contain the `isSystem` flag.\n /// @return success whether the call was successful.\n /// @dev If called not in kernel mode, it will result in a revert (enforced by the VM)\n function rawMimicCall(\n uint256 _gas,\n address _address,\n bytes calldata _data,\n address _whoToMimic,\n bool _isConstructor,\n bool _isSystem\n ) internal returns (bool success) {\n _loadFarCallABIIntoActivePtr(_gas, _data, _isConstructor, _isSystem);\n\n address callAddr = MIMIC_CALL_BY_REF_CALL_ADDRESS;\n uint256 cleanupMask = ADDRESS_MASK;\n assembly {\n // Clearing values before usage in assembly, since Solidity\n // doesn't do it by default\n _whoToMimic := and(_whoToMimic, cleanupMask)\n\n success := call(_address, callAddr, 0, 0, _whoToMimic, 0, 0)\n }\n }\n\n /// @dev Verify that a low-level call was successful, and revert if it wasn't, by bubbling the revert reason.\n /// @param _success Whether the call was successful.\n /// @return returnData The copied to memory return data.\n function _verifyCallResult(bool _success) private pure returns (bytes memory returnData) {\n if (_success) {\n uint256 size;\n assembly {\n size := returndatasize()\n }\n\n returnData = new bytes(size);\n assembly {\n returndatacopy(add(returnData, 0x20), 0, size)\n }\n } else {\n propagateRevert();\n }\n }\n\n /// @dev Propagate the revert reason from the current call to the caller.\n function propagateRevert() internal pure {\n assembly {\n let size := returndatasize()\n returndatacopy(0, 0, size)\n revert(0, size)\n }\n }\n\n /// @dev Load the far call ABI into active ptr, that will be used for the next call by reference.\n /// @param _gas The gas to be passed to the call.\n /// @param _data The calldata to be passed to the call.\n /// @param _isConstructor Whether the call is a constructor call.\n /// @param _isSystem Whether the call is a system call.\n function _loadFarCallABIIntoActivePtr(\n uint256 _gas,\n bytes calldata _data,\n bool _isConstructor,\n bool _isSystem\n ) private view {\n SystemContractHelper.loadCalldataIntoActivePtr();\n\n // Currently, zkEVM considers the pointer valid if(ptr.offset < ptr.length || (ptr.length == 0 && ptr.offset == 0)), otherwise panics.\n // So, if the data is empty we need to make the `ptr.length = ptr.offset = 0`, otherwise follow standard logic.\n if (_data.length == 0) {\n // Safe to cast, offset is never bigger than `type(uint32).max`\n SystemContractHelper.ptrShrinkIntoActive(uint32(msg.data.length));\n } else {\n uint256 dataOffset;\n assembly {\n dataOffset := _data.offset\n }\n\n // Safe to cast, offset is never bigger than `type(uint32).max`\n SystemContractHelper.ptrAddIntoActive(uint32(dataOffset));\n // Safe to cast, `data.length` is never bigger than `type(uint32).max`\n uint32 shrinkTo = uint32(msg.data.length - (_data.length + dataOffset));\n SystemContractHelper.ptrShrinkIntoActive(shrinkTo);\n }\n\n uint32 gas = Utils.safeCastToU32(_gas);\n uint256 farCallAbi = SystemContractsCaller.getFarCallABIWithEmptyFatPointer(\n gas,\n // Only rollup is supported for now\n 0,\n CalldataForwardingMode.ForwardFatPointer,\n _isConstructor,\n _isSystem\n );\n SystemContractHelper.ptrPackIntoActivePtr(farCallAbi);\n }\n}\n"},"@matterlabs/zksync-contracts/l2/system-contracts/libraries/RLPEncoder.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\nlibrary RLPEncoder {\n function encodeAddress(address _val) internal pure returns (bytes memory encoded) {\n // The size is equal to 20 bytes of the address itself + 1 for encoding bytes length in RLP.\n encoded = new bytes(0x15);\n\n bytes20 shiftedVal = bytes20(_val);\n assembly {\n // In the first byte we write the encoded length as 0x80 + 0x14 == 0x94.\n mstore(add(encoded, 0x20), 0x9400000000000000000000000000000000000000000000000000000000000000)\n // Write address data without stripping zeros.\n mstore(add(encoded, 0x21), shiftedVal)\n }\n }\n\n function encodeUint256(uint256 _val) internal pure returns (bytes memory encoded) {\n unchecked {\n if (_val < 128) {\n encoded = new bytes(1);\n // Handle zero as a non-value, since stripping zeroes results in an empty byte array\n encoded[0] = (_val == 0) ? bytes1(uint8(128)) : bytes1(uint8(_val));\n } else {\n uint256 hbs = _highestByteSet(_val);\n\n encoded = new bytes(hbs + 2);\n encoded[0] = bytes1(uint8(hbs + 0x81));\n\n uint256 lbs = 31 - hbs;\n uint256 shiftedVal = _val << (lbs * 8);\n\n assembly {\n mstore(add(encoded, 0x21), shiftedVal)\n }\n }\n }\n }\n\n /// @notice Encodes the size of bytes in RLP format.\n /// @param _len The length of the bytes to encode. It has a `uint64` type since as larger values are not supported.\n /// NOTE: panics if the length is 1 since the length encoding is ambiguous in this case.\n function encodeNonSingleBytesLen(uint64 _len) internal pure returns (bytes memory) {\n assert(_len != 1);\n return _encodeLength(_len, 0x80);\n }\n\n /// @notice Encodes the size of list items in RLP format.\n /// @param _len The length of the bytes to encode. It has a `uint64` type since as larger values are not supported.\n function encodeListLen(uint64 _len) internal pure returns (bytes memory) {\n return _encodeLength(_len, 0xc0);\n }\n\n function _encodeLength(uint64 _len, uint256 _offset) private pure returns (bytes memory encoded) {\n unchecked {\n if (_len < 56) {\n encoded = new bytes(1);\n encoded[0] = bytes1(uint8(_len + _offset));\n } else {\n uint256 hbs = _highestByteSet(uint256(_len));\n\n encoded = new bytes(hbs + 2);\n encoded[0] = bytes1(uint8(_offset + hbs + 56));\n\n uint256 lbs = 31 - hbs;\n uint256 shiftedVal = uint256(_len) << (lbs * 8);\n\n assembly {\n mstore(add(encoded, 0x21), shiftedVal)\n }\n }\n }\n }\n\n /// @notice Computes the index of the highest byte set in number.\n /// @notice Uses little endian ordering (The least significant byte has index `0`).\n /// NOTE: returns `0` for `0`\n function _highestByteSet(uint256 _number) private pure returns (uint256 hbs) {\n unchecked {\n if (_number > type(uint128).max) {\n _number >>= 128;\n hbs += 16;\n }\n if (_number > type(uint64).max) {\n _number >>= 64;\n hbs += 8;\n }\n if (_number > type(uint32).max) {\n _number >>= 32;\n hbs += 4;\n }\n if (_number > type(uint16).max) {\n _number >>= 16;\n hbs += 2;\n }\n if (_number > type(uint8).max) {\n hbs += 1;\n }\n }\n }\n}\n"},"@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractHelper.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8;\n\nimport {MAX_SYSTEM_CONTRACT_ADDRESS, MSG_VALUE_SYSTEM_CONTRACT} from \"../Constants.sol\";\n\nimport \"./SystemContractsCaller.sol\";\nimport \"./Utils.sol\";\n\nuint256 constant UINT32_MASK = 0xffffffff;\nuint256 constant UINT128_MASK = 0xffffffffffffffffffffffffffffffff;\n/// @dev The mask that is used to convert any uint256 to a proper address.\n/// It needs to be padded with `00` to be treated as uint256 by Solidity\nuint256 constant ADDRESS_MASK = 0x00ffffffffffffffffffffffffffffffffffffffff;\n\nstruct ZkSyncMeta {\n uint32 gasPerPubdataByte;\n uint32 heapSize;\n uint32 auxHeapSize;\n uint8 shardId;\n uint8 callerShardId;\n uint8 codeShardId;\n}\n\nenum Global {\n CalldataPtr,\n CallFlags,\n ExtraABIData1,\n ExtraABIData2,\n ReturndataPtr\n}\n\n/**\n * @author Matter Labs\n * @notice Library used for accessing zkEVM-specific opcodes, needed for the development\n * of system contracts.\n * @dev While this library will be eventually available to public, some of the provided\n * methods won't work for non-system contracts. We will not recommend this library\n * for external use.\n */\nlibrary SystemContractHelper {\n /// @notice Send an L2Log to L1.\n /// @param _isService The `isService` flag.\n /// @param _key The `key` part of the L2Log.\n /// @param _value The `value` part of the L2Log.\n /// @dev The meaning of all these parameters is context-dependent, but they\n /// have no intrinsic meaning per se.\n function toL1(bool _isService, bytes32 _key, bytes32 _value) internal {\n address callAddr = TO_L1_CALL_ADDRESS;\n assembly {\n // Ensuring that the type is bool\n _isService := and(_isService, 1)\n // This `success` is always 0, but the method always succeeds\n // (except for the cases when there is not enough gas)\n let success := call(_isService, callAddr, _key, _value, 0xFFFF, 0, 0)\n }\n }\n\n /// @notice Get address of the currently executed code.\n /// @dev This allows differentiating between `call` and `delegatecall`.\n /// During the former `this` and `codeAddress` are the same, while\n /// during the latter they are not.\n function getCodeAddress() internal view returns (address addr) {\n address callAddr = CODE_ADDRESS_CALL_ADDRESS;\n assembly {\n addr := staticcall(0, callAddr, 0, 0xFFFF, 0, 0)\n }\n }\n\n /// @notice Provide a compiler hint, by placing calldata fat pointer into virtual `ACTIVE_PTR`,\n /// that can be manipulated by `ptr.add`/`ptr.sub`/`ptr.pack`/`ptr.shrink` later.\n /// @dev This allows making a call by forwarding calldata pointer to the child call.\n /// It is a much more efficient way to forward calldata, than standard EVM bytes copying.\n function loadCalldataIntoActivePtr() internal view {\n address callAddr = LOAD_CALLDATA_INTO_ACTIVE_PTR_CALL_ADDRESS;\n assembly {\n pop(staticcall(0, callAddr, 0, 0xFFFF, 0, 0))\n }\n }\n\n /// @notice Compiler simulation of the `ptr.pack` opcode for the virtual `ACTIVE_PTR` pointer.\n /// @dev Do the concatenation between lowest part of `ACTIVE_PTR` and highest part of `_farCallAbi`\n /// forming packed fat pointer for a far call or ret ABI when necessary.\n /// Note: Panics if the lowest 128 bits of `_farCallAbi` are not zeroes.\n function ptrPackIntoActivePtr(uint256 _farCallAbi) internal view {\n address callAddr = PTR_PACK_INTO_ACTIVE_CALL_ADDRESS;\n assembly {\n pop(staticcall(_farCallAbi, callAddr, 0, 0xFFFF, 0, 0))\n }\n }\n\n /// @notice Compiler simulation of the `ptr.add` opcode for the virtual `ACTIVE_PTR` pointer.\n /// @dev Transforms `ACTIVE_PTR.offset` into `ACTIVE_PTR.offset + u32(_value)`. If overflow happens then it panics.\n function ptrAddIntoActive(uint32 _value) internal view {\n address callAddr = PTR_ADD_INTO_ACTIVE_CALL_ADDRESS;\n uint256 cleanupMask = UINT32_MASK;\n assembly {\n // Clearing input params as they are not cleaned by Solidity by default\n _value := and(_value, cleanupMask)\n pop(staticcall(_value, callAddr, 0, 0xFFFF, 0, 0))\n }\n }\n\n /// @notice Compiler simulation of the `ptr.shrink` opcode for the virtual `ACTIVE_PTR` pointer.\n /// @dev Transforms `ACTIVE_PTR.length` into `ACTIVE_PTR.length - u32(_shrink)`. If underflow happens then it panics.\n function ptrShrinkIntoActive(uint32 _shrink) internal view {\n address callAddr = PTR_SHRINK_INTO_ACTIVE_CALL_ADDRESS;\n uint256 cleanupMask = UINT32_MASK;\n assembly {\n // Clearing input params as they are not cleaned by Solidity by default\n _shrink := and(_shrink, cleanupMask)\n pop(staticcall(_shrink, callAddr, 0, 0xFFFF, 0, 0))\n }\n }\n\n /// @notice packs precompile parameters into one word\n /// @param _inputMemoryOffset The memory offset in 32-byte words for the input data for calling the precompile.\n /// @param _inputMemoryLength The length of the input data in words.\n /// @param _outputMemoryOffset The memory offset in 32-byte words for the output data.\n /// @param _outputMemoryLength The length of the output data in words.\n /// @param _perPrecompileInterpreted The constant, the meaning of which is defined separately for\n /// each precompile. For information, please read the documentation of the precompilecall log in\n /// the VM.\n function packPrecompileParams(\n uint32 _inputMemoryOffset,\n uint32 _inputMemoryLength,\n uint32 _outputMemoryOffset,\n uint32 _outputMemoryLength,\n uint64 _perPrecompileInterpreted\n ) internal pure returns (uint256 rawParams) {\n rawParams = _inputMemoryOffset;\n rawParams |= uint256(_inputMemoryLength) << 32;\n rawParams |= uint256(_outputMemoryOffset) << 64;\n rawParams |= uint256(_outputMemoryLength) << 96;\n rawParams |= uint256(_perPrecompileInterpreted) << 192;\n }\n\n /// @notice Call precompile with given parameters.\n /// @param _rawParams The packed precompile params. They can be retrieved by\n /// the `packPrecompileParams` method.\n /// @param _gasToBurn The number of gas to burn during this call.\n /// @return success Whether the call was successful.\n /// @dev The list of currently available precompiles sha256, keccak256, ecrecover.\n /// NOTE: The precompile type depends on `this` which calls precompile, which means that only\n /// system contracts corresponding to the list of precompiles above can do `precompileCall`.\n /// @dev If used not in the `sha256`, `keccak256` or `ecrecover` contracts, it will just burn the gas provided.\n function precompileCall(uint256 _rawParams, uint32 _gasToBurn) internal view returns (bool success) {\n address callAddr = PRECOMPILE_CALL_ADDRESS;\n\n // After `precompileCall` gas will be burned down to 0 if there are not enough of them,\n // thats why it should be checked before the call.\n require(gasleft() >= _gasToBurn);\n uint256 cleanupMask = UINT32_MASK;\n assembly {\n // Clearing input params as they are not cleaned by Solidity by default\n _gasToBurn := and(_gasToBurn, cleanupMask)\n success := staticcall(_rawParams, callAddr, _gasToBurn, 0xFFFF, 0, 0)\n }\n }\n\n /// @notice Set `msg.value` to next far call.\n /// @param _value The msg.value that will be used for the *next* call.\n /// @dev If called not in kernel mode, it will result in a revert (enforced by the VM)\n function setValueForNextFarCall(uint128 _value) internal returns (bool success) {\n uint256 cleanupMask = UINT128_MASK;\n address callAddr = SET_CONTEXT_VALUE_CALL_ADDRESS;\n assembly {\n // Clearing input params as they are not cleaned by Solidity by default\n _value := and(_value, cleanupMask)\n success := call(0, callAddr, _value, 0, 0xFFFF, 0, 0)\n }\n }\n\n /// @notice Initialize a new event.\n /// @param initializer The event initializing value.\n /// @param value1 The first topic or data chunk.\n function eventInitialize(uint256 initializer, uint256 value1) internal {\n address callAddr = EVENT_INITIALIZE_ADDRESS;\n assembly {\n pop(call(initializer, callAddr, value1, 0, 0xFFFF, 0, 0))\n }\n }\n\n /// @notice Continue writing the previously initialized event.\n /// @param value1 The first topic or data chunk.\n /// @param value2 The second topic or data chunk.\n function eventWrite(uint256 value1, uint256 value2) internal {\n address callAddr = EVENT_WRITE_ADDRESS;\n assembly {\n pop(call(value1, callAddr, value2, 0, 0xFFFF, 0, 0))\n }\n }\n\n /// @notice Get the packed representation of the `ZkSyncMeta` from the current context.\n /// @return meta The packed representation of the ZkSyncMeta.\n /// @dev The fields in ZkSyncMeta are NOT tightly packed, i.e. there is a special rule on how\n /// they are packed. For more information, please read the documentation on ZkSyncMeta.\n function getZkSyncMetaBytes() internal view returns (uint256 meta) {\n address callAddr = META_CALL_ADDRESS;\n assembly {\n meta := staticcall(0, callAddr, 0, 0xFFFF, 0, 0)\n }\n }\n\n /// @notice Returns the bits [offset..offset+size-1] of the meta.\n /// @param meta Packed representation of the ZkSyncMeta.\n /// @param offset The offset of the bits.\n /// @param size The size of the extracted number in bits.\n /// @return result The extracted number.\n function extractNumberFromMeta(uint256 meta, uint256 offset, uint256 size) internal pure returns (uint256 result) {\n // Firstly, we delete all the bits after the field\n uint256 shifted = (meta << (256 - size - offset));\n // Then we shift everything back\n result = (shifted >> (256 - size));\n }\n\n /// @notice Given the packed representation of `ZkSyncMeta`, retrieves the number of gas\n /// that a single byte sent to L1 as pubdata costs.\n /// @param meta Packed representation of the ZkSyncMeta.\n /// @return gasPerPubdataByte The current price in gas per pubdata byte.\n function getGasPerPubdataByteFromMeta(uint256 meta) internal pure returns (uint32 gasPerPubdataByte) {\n gasPerPubdataByte = uint32(extractNumberFromMeta(meta, META_GAS_PER_PUBDATA_BYTE_OFFSET, 32));\n }\n\n /// @notice Given the packed representation of `ZkSyncMeta`, retrieves the number of the current size\n /// of the heap in bytes.\n /// @param meta Packed representation of the ZkSyncMeta.\n /// @return heapSize The size of the memory in bytes byte.\n /// @dev The following expression: getHeapSizeFromMeta(getZkSyncMetaBytes()) is\n /// equivalent to the MSIZE in Solidity.\n function getHeapSizeFromMeta(uint256 meta) internal pure returns (uint32 heapSize) {\n heapSize = uint32(extractNumberFromMeta(meta, META_HEAP_SIZE_OFFSET, 32));\n }\n\n /// @notice Given the packed representation of `ZkSyncMeta`, retrieves the number of the current size\n /// of the auxilary heap in bytes.\n /// @param meta Packed representation of the ZkSyncMeta.\n /// @return auxHeapSize The size of the auxilary memory in bytes byte.\n /// @dev You can read more on auxilary memory in the VM1.2 documentation.\n function getAuxHeapSizeFromMeta(uint256 meta) internal pure returns (uint32 auxHeapSize) {\n auxHeapSize = uint32(extractNumberFromMeta(meta, META_AUX_HEAP_SIZE_OFFSET, 32));\n }\n\n /// @notice Given the packed representation of `ZkSyncMeta`, retrieves the shardId of `this`.\n /// @param meta Packed representation of the ZkSyncMeta.\n /// @return shardId The shardId of `this`.\n /// @dev Currently only shard 0 (zkRollup) is supported.\n function getShardIdFromMeta(uint256 meta) internal pure returns (uint8 shardId) {\n shardId = uint8(extractNumberFromMeta(meta, META_SHARD_ID_OFFSET, 8));\n }\n\n /// @notice Given the packed representation of `ZkSyncMeta`, retrieves the shardId of\n /// the msg.sender.\n /// @param meta Packed representation of the ZkSyncMeta.\n /// @return callerShardId The shardId of the msg.sender.\n /// @dev Currently only shard 0 (zkRollup) is supported.\n function getCallerShardIdFromMeta(uint256 meta) internal pure returns (uint8 callerShardId) {\n callerShardId = uint8(extractNumberFromMeta(meta, META_CALLER_SHARD_ID_OFFSET, 8));\n }\n\n /// @notice Given the packed representation of `ZkSyncMeta`, retrieves the shardId of\n /// the currently executed code.\n /// @param meta Packed representation of the ZkSyncMeta.\n /// @return codeShardId The shardId of the currently executed code.\n /// @dev Currently only shard 0 (zkRollup) is supported.\n function getCodeShardIdFromMeta(uint256 meta) internal pure returns (uint8 codeShardId) {\n codeShardId = uint8(extractNumberFromMeta(meta, META_CODE_SHARD_ID_OFFSET, 8));\n }\n\n /// @notice Retrieves the ZkSyncMeta structure.\n /// @return meta The ZkSyncMeta execution context parameters.\n function getZkSyncMeta() internal view returns (ZkSyncMeta memory meta) {\n uint256 metaPacked = getZkSyncMetaBytes();\n meta.gasPerPubdataByte = getGasPerPubdataByteFromMeta(metaPacked);\n meta.shardId = getShardIdFromMeta(metaPacked);\n meta.callerShardId = getCallerShardIdFromMeta(metaPacked);\n meta.codeShardId = getCodeShardIdFromMeta(metaPacked);\n }\n\n /// @notice Returns the call flags for the current call.\n /// @return callFlags The bitmask of the callflags.\n /// @dev Call flags is the value of the first register\n /// at the start of the call.\n /// @dev The zero bit of the callFlags indicates whether the call is\n /// a constructor call. The first bit of the callFlags indicates whether\n /// the call is a system one.\n function getCallFlags() internal view returns (uint256 callFlags) {\n address callAddr = CALLFLAGS_CALL_ADDRESS;\n assembly {\n callFlags := staticcall(0, callAddr, 0, 0xFFFF, 0, 0)\n }\n }\n\n /// @notice Returns the current calldata pointer.\n /// @return ptr The current calldata pointer.\n /// @dev NOTE: This file is just an integer and it can not be used\n /// to forward the calldata to the next calls in any way.\n function getCalldataPtr() internal view returns (uint256 ptr) {\n address callAddr = PTR_CALLDATA_CALL_ADDRESS;\n assembly {\n ptr := staticcall(0, callAddr, 0, 0xFFFF, 0, 0)\n }\n }\n\n /// @notice Returns the N-th extraAbiParam for the current call.\n /// @return extraAbiData The value of the N-th extraAbiParam for this call.\n /// @dev It is equal to the value of the (N+2)-th register\n /// at the start of the call.\n function getExtraAbiData(uint256 index) internal view returns (uint256 extraAbiData) {\n require(index < 10, \"There are only 10 accessible registers\");\n\n address callAddr = GET_EXTRA_ABI_DATA_ADDRESS;\n assembly {\n extraAbiData := staticcall(index, callAddr, 0, 0xFFFF, 0, 0)\n }\n }\n\n /// @notice Retuns whether the current call is a system call.\n /// @return `true` or `false` based on whether the current call is a system call.\n function isSystemCall() internal view returns (bool) {\n uint256 callFlags = getCallFlags();\n // When the system call is passed, the 2-bit it set to 1\n return (callFlags & 2) != 0;\n }\n\n /// @notice Returns whether the address is a system contract.\n /// @param _address The address to test\n /// @return `true` or `false` based on whether the `_address` is a system contract.\n function isSystemContract(address _address) internal pure returns (bool) {\n return uint160(_address) <= uint160(MAX_SYSTEM_CONTRACT_ADDRESS);\n }\n}\n\n/// @dev Solidity does not allow exporting modifiers via libraries, so\n/// the only way to do reuse modifiers is to have a base contract\nabstract contract ISystemContract {\n /// @notice Modifier that makes sure that the method\n /// can only be called via a system call.\n modifier onlySystemCall() {\n require(\n SystemContractHelper.isSystemCall() || SystemContractHelper.isSystemContract(msg.sender),\n \"This method require system call flag\"\n );\n _;\n }\n}\n"},"@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractsCaller.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8;\n\nimport {MSG_VALUE_SYSTEM_CONTRACT, MSG_VALUE_SIMULATOR_IS_SYSTEM_BIT} from \"../Constants.sol\";\nimport \"./Utils.sol\";\n\n// Addresses used for the compiler to be replaced with the\n// zkSync-specific opcodes during the compilation.\n// IMPORTANT: these are just compile-time constants and are used\n// only if used in-place by Yul optimizer.\naddress constant TO_L1_CALL_ADDRESS = address((1 << 16) - 1);\naddress constant CODE_ADDRESS_CALL_ADDRESS = address((1 << 16) - 2);\naddress constant PRECOMPILE_CALL_ADDRESS = address((1 << 16) - 3);\naddress constant META_CALL_ADDRESS = address((1 << 16) - 4);\naddress constant MIMIC_CALL_CALL_ADDRESS = address((1 << 16) - 5);\naddress constant SYSTEM_MIMIC_CALL_CALL_ADDRESS = address((1 << 16) - 6);\naddress constant MIMIC_CALL_BY_REF_CALL_ADDRESS = address((1 << 16) - 7);\naddress constant SYSTEM_MIMIC_CALL_BY_REF_CALL_ADDRESS = address((1 << 16) - 8);\naddress constant RAW_FAR_CALL_CALL_ADDRESS = address((1 << 16) - 9);\naddress constant RAW_FAR_CALL_BY_REF_CALL_ADDRESS = address((1 << 16) - 10);\naddress constant SYSTEM_CALL_CALL_ADDRESS = address((1 << 16) - 11);\naddress constant SYSTEM_CALL_BY_REF_CALL_ADDRESS = address((1 << 16) - 12);\naddress constant SET_CONTEXT_VALUE_CALL_ADDRESS = address((1 << 16) - 13);\naddress constant SET_PUBDATA_PRICE_CALL_ADDRESS = address((1 << 16) - 14);\naddress constant INCREMENT_TX_COUNTER_CALL_ADDRESS = address((1 << 16) - 15);\naddress constant PTR_CALLDATA_CALL_ADDRESS = address((1 << 16) - 16);\naddress constant CALLFLAGS_CALL_ADDRESS = address((1 << 16) - 17);\naddress constant PTR_RETURNDATA_CALL_ADDRESS = address((1 << 16) - 18);\naddress constant EVENT_INITIALIZE_ADDRESS = address((1 << 16) - 19);\naddress constant EVENT_WRITE_ADDRESS = address((1 << 16) - 20);\naddress constant LOAD_CALLDATA_INTO_ACTIVE_PTR_CALL_ADDRESS = address((1 << 16) - 21);\naddress constant LOAD_LATEST_RETURNDATA_INTO_ACTIVE_PTR_CALL_ADDRESS = address((1 << 16) - 22);\naddress constant PTR_ADD_INTO_ACTIVE_CALL_ADDRESS = address((1 << 16) - 23);\naddress constant PTR_SHRINK_INTO_ACTIVE_CALL_ADDRESS = address((1 << 16) - 24);\naddress constant PTR_PACK_INTO_ACTIVE_CALL_ADDRESS = address((1 << 16) - 25);\naddress constant MULTIPLICATION_HIGH_ADDRESS = address((1 << 16) - 26);\naddress constant GET_EXTRA_ABI_DATA_ADDRESS = address((1 << 16) - 27);\n\n// All the offsets are in bits\nuint256 constant META_GAS_PER_PUBDATA_BYTE_OFFSET = 0 * 8;\nuint256 constant META_HEAP_SIZE_OFFSET = 8 * 8;\nuint256 constant META_AUX_HEAP_SIZE_OFFSET = 12 * 8;\nuint256 constant META_SHARD_ID_OFFSET = 28 * 8;\nuint256 constant META_CALLER_SHARD_ID_OFFSET = 29 * 8;\nuint256 constant META_CODE_SHARD_ID_OFFSET = 30 * 8;\n\n/// @notice The way to forward the calldata:\n/// - Use the current heap (i.e. the same as on EVM).\n/// - Use the auxiliary heap.\n/// - Forward via a pointer\n/// @dev Note, that currently, users do not have access to the auxiliary\n/// heap and so the only type of forwarding that will be used by the users\n/// are UseHeap and ForwardFatPointer for forwarding a slice of the current calldata\n/// to the next call.\nenum CalldataForwardingMode {\n UseHeap,\n ForwardFatPointer,\n UseAuxHeap\n}\n\n/**\n * @author Matter Labs\n * @notice A library that allows calling contracts with the `isSystem` flag.\n * @dev It is needed to call ContractDeployer and NonceHolder.\n */\nlibrary SystemContractsCaller {\n /// @notice Makes a call with the `isSystem` flag.\n /// @param gasLimit The gas limit for the call.\n /// @param to The address to call.\n /// @param value The value to pass with the transaction.\n /// @param data The calldata.\n /// @return success Whether the transaction has been successful.\n /// @dev Note, that the `isSystem` flag can only be set when calling system contracts.\n function systemCall(uint32 gasLimit, address to, uint256 value, bytes memory data) internal returns (bool success) {\n address callAddr = SYSTEM_CALL_CALL_ADDRESS;\n\n uint32 dataStart;\n assembly {\n dataStart := add(data, 0x20)\n }\n uint32 dataLength = uint32(Utils.safeCastToU32(data.length));\n\n uint256 farCallAbi = SystemContractsCaller.getFarCallABI(\n 0,\n 0,\n dataStart,\n dataLength,\n gasLimit,\n // Only rollup is supported for now\n 0,\n CalldataForwardingMode.UseHeap,\n false,\n true\n );\n\n if (value == 0) {\n // Doing the system call directly\n assembly {\n success := call(to, callAddr, 0, 0, farCallAbi, 0, 0)\n }\n } else {\n address msgValueSimulator = MSG_VALUE_SYSTEM_CONTRACT;\n // We need to supply the mask to the MsgValueSimulator to denote\n // that the call should be a system one.\n uint256 forwardMask = MSG_VALUE_SIMULATOR_IS_SYSTEM_BIT;\n\n assembly {\n success := call(msgValueSimulator, callAddr, value, to, farCallAbi, forwardMask, 0)\n }\n }\n }\n\n /// @notice Makes a call with the `isSystem` flag.\n /// @param gasLimit The gas limit for the call.\n /// @param to The address to call.\n /// @param value The value to pass with the transaction.\n /// @param data The calldata.\n /// @return success Whether the transaction has been successful.\n /// @return returnData The returndata of the transaction (revert reason in case the transaction has failed).\n /// @dev Note, that the `isSystem` flag can only be set when calling system contracts.\n function systemCallWithReturndata(\n uint32 gasLimit,\n address to,\n uint128 value,\n bytes memory data\n ) internal returns (bool success, bytes memory returnData) {\n success = systemCall(gasLimit, to, value, data);\n\n uint256 size;\n assembly {\n size := returndatasize()\n }\n\n returnData = new bytes(size);\n assembly {\n returndatacopy(add(returnData, 0x20), 0, size)\n }\n }\n\n /// @notice Makes a call with the `isSystem` flag.\n /// @param gasLimit The gas limit for the call.\n /// @param to The address to call.\n /// @param value The value to pass with the transaction.\n /// @param data The calldata.\n /// @return returnData The returndata of the transaction. In case the transaction reverts, the error\n /// bubbles up to the parent frame.\n /// @dev Note, that the `isSystem` flag can only be set when calling system contracts.\n function systemCallWithPropagatedRevert(\n uint32 gasLimit,\n address to,\n uint128 value,\n bytes memory data\n ) internal returns (bytes memory returnData) {\n bool success;\n (success, returnData) = systemCallWithReturndata(gasLimit, to, value, data);\n\n if (!success) {\n assembly {\n let size := mload(returnData)\n revert(add(returnData, 0x20), size)\n }\n }\n }\n\n /// @notice Calculates the packed representation of the FarCallABI.\n /// @param dataOffset Calldata offset in memory. Provide 0 unless using custom pointer.\n /// @param memoryPage Memory page to use. Provide 0 unless using custom pointer.\n /// @param dataStart The start of the calldata slice. Provide the offset in memory\n /// if not using custom pointer.\n /// @param dataLength The calldata length. Provide the length of the calldata in bytes\n /// unless using custom pointer.\n /// @param gasPassed The gas to pass with the call.\n /// @param shardId Of the account to call. Currently only 0 is supported.\n /// @param forwardingMode The forwarding mode to use:\n /// - provide CalldataForwardingMode.UseHeap when using your current memory\n /// - provide CalldataForwardingMode.ForwardFatPointer when using custom pointer.\n /// @param isConstructorCall Whether the call will be a call to the constructor\n /// (ignored when the caller is not a system contract).\n /// @param isSystemCall Whether the call will have the `isSystem` flag.\n /// @return farCallAbi The far call ABI.\n /// @dev The `FarCallABI` has the following structure:\n /// pub struct FarCallABI {\n /// pub memory_quasi_fat_pointer: FatPointer,\n /// pub gas_passed: u32,\n /// pub shard_id: u8,\n /// pub forwarding_mode: FarCallForwardPageType,\n /// pub constructor_call: bool,\n /// pub to_system: bool,\n /// }\n ///\n /// The FatPointer struct:\n ///\n /// pub struct FatPointer {\n /// pub offset: u32, // offset relative to `start`\n /// pub memory_page: u32, // memory page where slice is located\n /// pub start: u32, // absolute start of the slice\n /// pub length: u32, // length of the slice\n /// }\n ///\n /// @dev Note, that the actual layout is the following:\n ///\n /// [0..32) bits -- the calldata offset\n /// [32..64) bits -- the memory page to use. Can be left blank in most of the cases.\n /// [64..96) bits -- the absolute start of the slice\n /// [96..128) bits -- the length of the slice.\n /// [128..192) bits -- empty bits.\n /// [192..224) bits -- gasPassed.\n /// [224..232) bits -- forwarding_mode\n /// [232..240) bits -- shard id.\n /// [240..248) bits -- constructor call flag\n /// [248..256] bits -- system call flag\n function getFarCallABI(\n uint32 dataOffset,\n uint32 memoryPage,\n uint32 dataStart,\n uint32 dataLength,\n uint32 gasPassed,\n uint8 shardId,\n CalldataForwardingMode forwardingMode,\n bool isConstructorCall,\n bool isSystemCall\n ) internal pure returns (uint256 farCallAbi) {\n // Fill in the call parameter fields\n farCallAbi = getFarCallABIWithEmptyFatPointer(\n gasPassed,\n shardId,\n forwardingMode,\n isConstructorCall,\n isSystemCall\n );\n // Fill in the fat pointer fields\n farCallAbi |= dataOffset;\n farCallAbi |= (uint256(memoryPage) << 32);\n farCallAbi |= (uint256(dataStart) << 64);\n farCallAbi |= (uint256(dataLength) << 96);\n }\n\n /// @notice Calculates the packed representation of the FarCallABI with zero fat pointer fields.\n /// @param gasPassed The gas to pass with the call.\n /// @param shardId Of the account to call. Currently only 0 is supported.\n /// @param forwardingMode The forwarding mode to use:\n /// - provide CalldataForwardingMode.UseHeap when using your current memory\n /// - provide CalldataForwardingMode.ForwardFatPointer when using custom pointer.\n /// @param isConstructorCall Whether the call will be a call to the constructor\n /// (ignored when the caller is not a system contract).\n /// @param isSystemCall Whether the call will have the `isSystem` flag.\n /// @return farCallAbiWithEmptyFatPtr The far call ABI with zero fat pointer fields.\n function getFarCallABIWithEmptyFatPointer(\n uint32 gasPassed,\n uint8 shardId,\n CalldataForwardingMode forwardingMode,\n bool isConstructorCall,\n bool isSystemCall\n ) internal pure returns (uint256 farCallAbiWithEmptyFatPtr) {\n farCallAbiWithEmptyFatPtr |= (uint256(gasPassed) << 192);\n farCallAbiWithEmptyFatPtr |= (uint256(forwardingMode) << 224);\n farCallAbiWithEmptyFatPtr |= (uint256(shardId) << 232);\n if (isConstructorCall) {\n farCallAbiWithEmptyFatPtr |= (1 << 240);\n }\n if (isSystemCall) {\n farCallAbiWithEmptyFatPtr |= (1 << 248);\n }\n }\n}\n"},"@matterlabs/zksync-contracts/l2/system-contracts/libraries/TransactionHelper.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\nimport \"../openzeppelin/token/ERC20/IERC20.sol\";\nimport \"../openzeppelin/token/ERC20/utils/SafeERC20.sol\";\n\nimport \"../interfaces/IPaymasterFlow.sol\";\nimport \"../interfaces/IContractDeployer.sol\";\nimport {ETH_TOKEN_SYSTEM_CONTRACT, BOOTLOADER_FORMAL_ADDRESS} from \"../Constants.sol\";\nimport \"./RLPEncoder.sol\";\nimport \"./EfficientCall.sol\";\n\n/// @dev The type id of zkSync's EIP-712-signed transaction.\nuint8 constant EIP_712_TX_TYPE = 0x71;\n\n/// @dev The type id of legacy transactions.\nuint8 constant LEGACY_TX_TYPE = 0x0;\n/// @dev The type id of legacy transactions.\nuint8 constant EIP_2930_TX_TYPE = 0x01;\n/// @dev The type id of EIP1559 transactions.\nuint8 constant EIP_1559_TX_TYPE = 0x02;\n\n/// @notice Structure used to represent zkSync transaction.\nstruct Transaction {\n // The type of the transaction.\n uint256 txType;\n // The caller.\n uint256 from;\n // The callee.\n uint256 to;\n // The gasLimit to pass with the transaction.\n // It has the same meaning as Ethereum's gasLimit.\n uint256 gasLimit;\n // The maximum amount of gas the user is willing to pay for a byte of pubdata.\n uint256 gasPerPubdataByteLimit;\n // The maximum fee per gas that the user is willing to pay.\n // It is akin to EIP1559's maxFeePerGas.\n uint256 maxFeePerGas;\n // The maximum priority fee per gas that the user is willing to pay.\n // It is akin to EIP1559's maxPriorityFeePerGas.\n uint256 maxPriorityFeePerGas;\n // The transaction's paymaster. If there is no paymaster, it is equal to 0.\n uint256 paymaster;\n // The nonce of the transaction.\n uint256 nonce;\n // The value to pass with the transaction.\n uint256 value;\n // In the future, we might want to add some\n // new fields to the struct. The `txData` struct\n // is to be passed to account and any changes to its structure\n // would mean a breaking change to these accounts. In order to prevent this,\n // we should keep some fields as \"reserved\".\n // It is also recommended that their length is fixed, since\n // it would allow easier proof integration (in case we will need\n // some special circuit for preprocessing transactions).\n uint256[4] reserved;\n // The transaction's calldata.\n bytes data;\n // The signature of the transaction.\n bytes signature;\n // The properly formatted hashes of bytecodes that must be published on L1\n // with the inclusion of this transaction. Note, that a bytecode has been published\n // before, the user won't pay fees for its republishing.\n bytes32[] factoryDeps;\n // The input to the paymaster.\n bytes paymasterInput;\n // Reserved dynamic type for the future use-case. Using it should be avoided,\n // But it is still here, just in case we want to enable some additional functionality.\n bytes reservedDynamic;\n}\n\n/**\n * @author Matter Labs\n * @notice Library is used to help custom accounts to work with common methods for the Transaction type.\n */\nlibrary TransactionHelper {\n using SafeERC20 for IERC20;\n\n /// @notice The EIP-712 typehash for the contract's domain\n bytes32 constant EIP712_DOMAIN_TYPEHASH = keccak256(\"EIP712Domain(string name,string version,uint256 chainId)\");\n\n bytes32 constant EIP712_TRANSACTION_TYPE_HASH =\n keccak256(\n \"Transaction(uint256 txType,uint256 from,uint256 to,uint256 gasLimit,uint256 gasPerPubdataByteLimit,uint256 maxFeePerGas,uint256 maxPriorityFeePerGas,uint256 paymaster,uint256 nonce,uint256 value,bytes data,bytes32[] factoryDeps,bytes paymasterInput)\"\n );\n\n /// @notice Whether the token is Ethereum.\n /// @param _addr The address of the token\n /// @return `true` or `false` based on whether the token is Ether.\n /// @dev This method assumes that address is Ether either if the address is 0 (for convenience)\n /// or if the address is the address of the L2EthToken system contract.\n function isEthToken(uint256 _addr) internal pure returns (bool) {\n return _addr == uint256(uint160(address(ETH_TOKEN_SYSTEM_CONTRACT))) || _addr == 0;\n }\n\n /// @notice Calculate the suggested signed hash of the transaction,\n /// i.e. the hash that is signed by EOAs and is recommended to be signed by other accounts.\n function encodeHash(Transaction calldata _transaction) internal view returns (bytes32 resultHash) {\n if (_transaction.txType == LEGACY_TX_TYPE) {\n resultHash = _encodeHashLegacyTransaction(_transaction);\n } else if (_transaction.txType == EIP_712_TX_TYPE) {\n resultHash = _encodeHashEIP712Transaction(_transaction);\n } else if (_transaction.txType == EIP_1559_TX_TYPE) {\n resultHash = _encodeHashEIP1559Transaction(_transaction);\n } else if (_transaction.txType == EIP_2930_TX_TYPE) {\n resultHash = _encodeHashEIP2930Transaction(_transaction);\n } else {\n // Currently no other transaction types are supported.\n // Any new transaction types will be processed in a similar manner.\n revert(\"Encoding unsupported tx\");\n }\n }\n\n /// @notice Encode hash of the zkSync native transaction type.\n /// @return keccak256 hash of the EIP-712 encoded representation of transaction\n function _encodeHashEIP712Transaction(Transaction calldata _transaction) private view returns (bytes32) {\n bytes32 structHash = keccak256(\n abi.encode(\n EIP712_TRANSACTION_TYPE_HASH,\n _transaction.txType,\n _transaction.from,\n _transaction.to,\n _transaction.gasLimit,\n _transaction.gasPerPubdataByteLimit,\n _transaction.maxFeePerGas,\n _transaction.maxPriorityFeePerGas,\n _transaction.paymaster,\n _transaction.nonce,\n _transaction.value,\n EfficientCall.keccak(_transaction.data),\n keccak256(abi.encodePacked(_transaction.factoryDeps)),\n EfficientCall.keccak(_transaction.paymasterInput)\n )\n );\n\n bytes32 domainSeparator = keccak256(\n abi.encode(EIP712_DOMAIN_TYPEHASH, keccak256(\"zkSync\"), keccak256(\"2\"), block.chainid)\n );\n\n return keccak256(abi.encodePacked(\"\\x19\\x01\", domainSeparator, structHash));\n }\n\n /// @notice Encode hash of the legacy transaction type.\n /// @return keccak256 of the serialized RLP encoded representation of transaction\n function _encodeHashLegacyTransaction(Transaction calldata _transaction) private view returns (bytes32) {\n // Hash of legacy transactions are encoded as one of the:\n // - RLP(nonce, gasPrice, gasLimit, to, value, data, chainId, 0, 0)\n // - RLP(nonce, gasPrice, gasLimit, to, value, data)\n //\n // In this RLP encoding, only the first one above list appears, so we encode each element\n // inside list and then concatenate the length of all elements with them.\n\n bytes memory encodedNonce = RLPEncoder.encodeUint256(_transaction.nonce);\n // Encode `gasPrice` and `gasLimit` together to prevent \"stack too deep error\".\n bytes memory encodedGasParam;\n {\n bytes memory encodedGasPrice = RLPEncoder.encodeUint256(_transaction.maxFeePerGas);\n bytes memory encodedGasLimit = RLPEncoder.encodeUint256(_transaction.gasLimit);\n encodedGasParam = bytes.concat(encodedGasPrice, encodedGasLimit);\n }\n\n bytes memory encodedTo = RLPEncoder.encodeAddress(address(uint160(_transaction.to)));\n bytes memory encodedValue = RLPEncoder.encodeUint256(_transaction.value);\n // Encode only the length of the transaction data, and not the data itself,\n // so as not to copy to memory a potentially huge transaction data twice.\n bytes memory encodedDataLength;\n {\n // Safe cast, because the length of the transaction data can't be so large.\n uint64 txDataLen = uint64(_transaction.data.length);\n if (txDataLen != 1) {\n // If the length is not equal to one, then only using the length can it be encoded definitely.\n encodedDataLength = RLPEncoder.encodeNonSingleBytesLen(txDataLen);\n } else if (_transaction.data[0] >= 0x80) {\n // If input is a byte in [0x80, 0xff] range, RLP encoding will concatenates 0x81 with the byte.\n encodedDataLength = hex\"81\";\n }\n // Otherwise the length is not encoded at all.\n }\n\n // Encode `chainId` according to EIP-155, but only if the `chainId` is specified in the transaction.\n bytes memory encodedChainId;\n if (_transaction.reserved[0] != 0) {\n encodedChainId = bytes.concat(RLPEncoder.encodeUint256(block.chainid), hex\"80_80\");\n }\n\n bytes memory encodedListLength;\n unchecked {\n uint256 listLength = encodedNonce.length +\n encodedGasParam.length +\n encodedTo.length +\n encodedValue.length +\n encodedDataLength.length +\n _transaction.data.length +\n encodedChainId.length;\n\n // Safe cast, because the length of the list can't be so large.\n encodedListLength = RLPEncoder.encodeListLen(uint64(listLength));\n }\n\n return\n keccak256(\n bytes.concat(\n encodedListLength,\n encodedNonce,\n encodedGasParam,\n encodedTo,\n encodedValue,\n encodedDataLength,\n _transaction.data,\n encodedChainId\n )\n );\n }\n\n /// @notice Encode hash of the EIP2930 transaction type.\n /// @return keccak256 of the serialized RLP encoded representation of transaction\n function _encodeHashEIP2930Transaction(Transaction calldata _transaction) private view returns (bytes32) {\n // Hash of EIP2930 transactions is encoded the following way:\n // H(0x01 || RLP(chain_id, nonce, gas_price, gas_limit, destination, amount, data, access_list))\n //\n // Note, that on zkSync access lists are not supported and should always be empty.\n\n // Encode all fixed-length params to avoid \"stack too deep error\"\n bytes memory encodedFixedLengthParams;\n {\n bytes memory encodedChainId = RLPEncoder.encodeUint256(block.chainid);\n bytes memory encodedNonce = RLPEncoder.encodeUint256(_transaction.nonce);\n bytes memory encodedGasPrice = RLPEncoder.encodeUint256(_transaction.maxFeePerGas);\n bytes memory encodedGasLimit = RLPEncoder.encodeUint256(_transaction.gasLimit);\n bytes memory encodedTo = RLPEncoder.encodeAddress(address(uint160(_transaction.to)));\n bytes memory encodedValue = RLPEncoder.encodeUint256(_transaction.value);\n encodedFixedLengthParams = bytes.concat(\n encodedChainId,\n encodedNonce,\n encodedGasPrice,\n encodedGasLimit,\n encodedTo,\n encodedValue\n );\n }\n\n // Encode only the length of the transaction data, and not the data itself,\n // so as not to copy to memory a potentially huge transaction data twice.\n bytes memory encodedDataLength;\n {\n // Safe cast, because the length of the transaction data can't be so large.\n uint64 txDataLen = uint64(_transaction.data.length);\n if (txDataLen != 1) {\n // If the length is not equal to one, then only using the length can it be encoded definitely.\n encodedDataLength = RLPEncoder.encodeNonSingleBytesLen(txDataLen);\n } else if (_transaction.data[0] >= 0x80) {\n // If input is a byte in [0x80, 0xff] range, RLP encoding will concatenates 0x81 with the byte.\n encodedDataLength = hex\"81\";\n }\n // Otherwise the length is not encoded at all.\n }\n\n // On zkSync, access lists are always zero length (at least for now).\n bytes memory encodedAccessListLength = RLPEncoder.encodeListLen(0);\n\n bytes memory encodedListLength;\n unchecked {\n uint256 listLength = encodedFixedLengthParams.length +\n encodedDataLength.length +\n _transaction.data.length +\n encodedAccessListLength.length;\n\n // Safe cast, because the length of the list can't be so large.\n encodedListLength = RLPEncoder.encodeListLen(uint64(listLength));\n }\n\n return\n keccak256(\n bytes.concat(\n \"\\x01\",\n encodedListLength,\n encodedFixedLengthParams,\n encodedDataLength,\n _transaction.data,\n encodedAccessListLength\n )\n );\n }\n\n /// @notice Encode hash of the EIP1559 transaction type.\n /// @return keccak256 of the serialized RLP encoded representation of transaction\n function _encodeHashEIP1559Transaction(Transaction calldata _transaction) private view returns (bytes32) {\n // Hash of EIP1559 transactions is encoded the following way:\n // H(0x02 || RLP(chain_id, nonce, max_priority_fee_per_gas, max_fee_per_gas, gas_limit, destination, amount, data, access_list))\n //\n // Note, that on zkSync access lists are not supported and should always be empty.\n\n // Encode all fixed-length params to avoid \"stack too deep error\"\n bytes memory encodedFixedLengthParams;\n {\n bytes memory encodedChainId = RLPEncoder.encodeUint256(block.chainid);\n bytes memory encodedNonce = RLPEncoder.encodeUint256(_transaction.nonce);\n bytes memory encodedMaxPriorityFeePerGas = RLPEncoder.encodeUint256(_transaction.maxPriorityFeePerGas);\n bytes memory encodedMaxFeePerGas = RLPEncoder.encodeUint256(_transaction.maxFeePerGas);\n bytes memory encodedGasLimit = RLPEncoder.encodeUint256(_transaction.gasLimit);\n bytes memory encodedTo = RLPEncoder.encodeAddress(address(uint160(_transaction.to)));\n bytes memory encodedValue = RLPEncoder.encodeUint256(_transaction.value);\n encodedFixedLengthParams = bytes.concat(\n encodedChainId,\n encodedNonce,\n encodedMaxPriorityFeePerGas,\n encodedMaxFeePerGas,\n encodedGasLimit,\n encodedTo,\n encodedValue\n );\n }\n\n // Encode only the length of the transaction data, and not the data itself,\n // so as not to copy to memory a potentially huge transaction data twice.\n bytes memory encodedDataLength;\n {\n // Safe cast, because the length of the transaction data can't be so large.\n uint64 txDataLen = uint64(_transaction.data.length);\n if (txDataLen != 1) {\n // If the length is not equal to one, then only using the length can it be encoded definitely.\n encodedDataLength = RLPEncoder.encodeNonSingleBytesLen(txDataLen);\n } else if (_transaction.data[0] >= 0x80) {\n // If input is a byte in [0x80, 0xff] range, RLP encoding will concatenates 0x81 with the byte.\n encodedDataLength = hex\"81\";\n }\n // Otherwise the length is not encoded at all.\n }\n\n // On zkSync, access lists are always zero length (at least for now).\n bytes memory encodedAccessListLength = RLPEncoder.encodeListLen(0);\n\n bytes memory encodedListLength;\n unchecked {\n uint256 listLength = encodedFixedLengthParams.length +\n encodedDataLength.length +\n _transaction.data.length +\n encodedAccessListLength.length;\n\n // Safe cast, because the length of the list can't be so large.\n encodedListLength = RLPEncoder.encodeListLen(uint64(listLength));\n }\n\n return\n keccak256(\n bytes.concat(\n \"\\x02\",\n encodedListLength,\n encodedFixedLengthParams,\n encodedDataLength,\n _transaction.data,\n encodedAccessListLength\n )\n );\n }\n\n /// @notice Processes the common paymaster flows, e.g. setting proper allowance\n /// for tokens, etc. For more information on the expected behavior, check out\n /// the \"Paymaster flows\" section in the documentation.\n function processPaymasterInput(Transaction calldata _transaction) internal {\n require(_transaction.paymasterInput.length >= 4, \"The standard paymaster input must be at least 4 bytes long\");\n\n bytes4 paymasterInputSelector = bytes4(_transaction.paymasterInput[0:4]);\n if (paymasterInputSelector == IPaymasterFlow.approvalBased.selector) {\n require(\n _transaction.paymasterInput.length >= 68,\n \"The approvalBased paymaster input must be at least 68 bytes long\"\n );\n\n // While the actual data consists of address, uint256 and bytes data,\n // the data is needed only for the paymaster, so we ignore it here for the sake of optimization\n (address token, uint256 minAllowance) = abi.decode(_transaction.paymasterInput[4:68], (address, uint256));\n address paymaster = address(uint160(_transaction.paymaster));\n\n uint256 currentAllowance = IERC20(token).allowance(address(this), paymaster);\n if (currentAllowance < minAllowance) {\n // Some tokens, e.g. USDT require that the allowance is firsty set to zero\n // and only then updated to the new value.\n\n IERC20(token).safeApprove(paymaster, 0);\n IERC20(token).safeApprove(paymaster, minAllowance);\n }\n } else if (paymasterInputSelector == IPaymasterFlow.general.selector) {\n // Do nothing. general(bytes) paymaster flow means that the paymaster must interpret these bytes on his own.\n } else {\n revert(\"Unsupported paymaster flow\");\n }\n }\n\n /// @notice Pays the required fee for the transaction to the bootloader.\n /// @dev Currently it pays the maximum amount \"_transaction.maxFeePerGas * _transaction.gasLimit\",\n /// it will change in the future.\n function payToTheBootloader(Transaction calldata _transaction) internal returns (bool success) {\n address bootloaderAddr = BOOTLOADER_FORMAL_ADDRESS;\n uint256 amount = _transaction.maxFeePerGas * _transaction.gasLimit;\n\n assembly {\n success := call(gas(), bootloaderAddr, amount, 0, 0, 0, 0)\n }\n }\n\n // Returns the balance required to process the transaction.\n function totalRequiredBalance(Transaction calldata _transaction) internal pure returns (uint256 requiredBalance) {\n if (address(uint160(_transaction.paymaster)) != address(0)) {\n // Paymaster pays for the fee\n requiredBalance = _transaction.value;\n } else {\n // The user should have enough balance for both the fee and the value of the transaction\n requiredBalance = _transaction.maxFeePerGas * _transaction.gasLimit + _transaction.value;\n }\n }\n}\n"},"@matterlabs/zksync-contracts/l2/system-contracts/libraries/Utils.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity >=0.8.0;\n\nimport \"./EfficientCall.sol\";\n\n/**\n * @author Matter Labs\n * @dev Common utilities used in zkSync system contracts\n */\nlibrary Utils {\n /// @dev Bit mask of bytecode hash \"isConstructor\" marker\n bytes32 constant IS_CONSTRUCTOR_BYTECODE_HASH_BIT_MASK =\n 0x00ff000000000000000000000000000000000000000000000000000000000000;\n\n /// @dev Bit mask to set the \"isConstructor\" marker in the bytecode hash\n bytes32 constant SET_IS_CONSTRUCTOR_MARKER_BIT_MASK =\n 0x0001000000000000000000000000000000000000000000000000000000000000;\n\n function safeCastToU128(uint256 _x) internal pure returns (uint128) {\n require(_x <= type(uint128).max, \"Overflow\");\n\n return uint128(_x);\n }\n\n function safeCastToU32(uint256 _x) internal pure returns (uint32) {\n require(_x <= type(uint32).max, \"Overflow\");\n\n return uint32(_x);\n }\n\n function safeCastToU24(uint256 _x) internal pure returns (uint24) {\n require(_x <= type(uint24).max, \"Overflow\");\n\n return uint24(_x);\n }\n\n /// @return codeLength The bytecode length in bytes\n function bytecodeLenInBytes(bytes32 _bytecodeHash) internal pure returns (uint256 codeLength) {\n codeLength = bytecodeLenInWords(_bytecodeHash) << 5; // _bytecodeHash * 32\n }\n\n /// @return codeLengthInWords The bytecode length in machine words\n function bytecodeLenInWords(bytes32 _bytecodeHash) internal pure returns (uint256 codeLengthInWords) {\n unchecked {\n codeLengthInWords = uint256(uint8(_bytecodeHash[2])) * 256 + uint256(uint8(_bytecodeHash[3]));\n }\n }\n\n /// @notice Denotes whether bytecode hash corresponds to a contract that already constructed\n function isContractConstructed(bytes32 _bytecodeHash) internal pure returns (bool) {\n return _bytecodeHash[1] == 0x00;\n }\n\n /// @notice Denotes whether bytecode hash corresponds to a contract that is on constructor or has already been constructed\n function isContractConstructing(bytes32 _bytecodeHash) internal pure returns (bool) {\n return _bytecodeHash[1] == 0x01;\n }\n\n /// @notice Sets \"isConstructor\" flag to TRUE for the bytecode hash\n /// @param _bytecodeHash The bytecode hash for which it is needed to set the constructing flag\n /// @return The bytecode hash with \"isConstructor\" flag set to TRUE\n function constructingBytecodeHash(bytes32 _bytecodeHash) internal pure returns (bytes32) {\n // Clear the \"isConstructor\" marker and set it to 0x01.\n return constructedBytecodeHash(_bytecodeHash) | SET_IS_CONSTRUCTOR_MARKER_BIT_MASK;\n }\n\n /// @notice Sets \"isConstructor\" flag to FALSE for the bytecode hash\n /// @param _bytecodeHash The bytecode hash for which it is needed to set the constructing flag\n /// @return The bytecode hash with \"isConstructor\" flag set to FALSE\n function constructedBytecodeHash(bytes32 _bytecodeHash) internal pure returns (bytes32) {\n return _bytecodeHash & ~IS_CONSTRUCTOR_BYTECODE_HASH_BIT_MASK;\n }\n\n /// @notice Validate the bytecode format and calculate its hash.\n /// @param _bytecode The bytecode to hash.\n /// @return hashedBytecode The 32-byte hash of the bytecode.\n /// Note: The function reverts the execution if the bytecode has non expected format:\n /// - Bytecode bytes length is not a multiple of 32\n /// - Bytecode bytes length is not less than 2^21 bytes (2^16 words)\n /// - Bytecode words length is not odd\n function hashL2Bytecode(bytes calldata _bytecode) internal view returns (bytes32 hashedBytecode) {\n // Note that the length of the bytecode must be provided in 32-byte words.\n require(_bytecode.length % 32 == 0, \"po\");\n\n uint256 bytecodeLenInWords = _bytecode.length / 32;\n require(bytecodeLenInWords < 2 ** 16, \"pp\"); // bytecode length must be less than 2^16 words\n require(bytecodeLenInWords % 2 == 1, \"pr\"); // bytecode length in words must be odd\n hashedBytecode =\n EfficientCall.sha(_bytecode) &\n 0x00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF;\n // Setting the version of the hash\n hashedBytecode = (hashedBytecode | bytes32(uint256(1 << 248)));\n // Setting the length\n hashedBytecode = hashedBytecode | bytes32(bytecodeLenInWords << 224);\n }\n}\n"},"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/extensions/IERC20Permit.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Permit.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in\n * https://eips.ethereum.org/EIPS/eip-2612[EIP-2612].\n *\n * Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by\n * presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't\n * need to send a transaction, and thus is not required to hold Ether at all.\n */\ninterface IERC20Permit {\n /**\n * @dev Sets `value` as the allowance of `spender` over ``owner``'s tokens,\n * given ``owner``'s signed approval.\n *\n * IMPORTANT: The same issues {IERC20-approve} has related to transaction\n * ordering also apply here.\n *\n * Emits an {Approval} event.\n *\n * Requirements:\n *\n * - `spender` cannot be the zero address.\n * - `deadline` must be a timestamp in the future.\n * - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner`\n * over the EIP712-formatted function arguments.\n * - the signature must use ``owner``'s current nonce (see {nonces}).\n *\n * For more information on the signature format, see the\n * https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP\n * section].\n */\n function permit(\n address owner,\n address spender,\n uint256 value,\n uint256 deadline,\n uint8 v,\n bytes32 r,\n bytes32 s\n ) external;\n\n /**\n * @dev Returns the current nonce for `owner`. This value must be\n * included whenever a signature is generated for {permit}.\n *\n * Every successful call to {permit} increases ``owner``'s nonce by one. This\n * prevents a signature from being used multiple times.\n */\n function nonces(address owner) external view returns (uint256);\n\n /**\n * @dev Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}.\n */\n // solhint-disable-next-line func-name-mixedcase\n function DOMAIN_SEPARATOR() external view returns (bytes32);\n}\n"},"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/IERC20.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Interface of the ERC20 standard as defined in the EIP.\n */\ninterface IERC20 {\n /**\n * @dev Emitted when `value` tokens are moved from one account (`from`) to\n * another (`to`).\n *\n * Note that `value` may be zero.\n */\n event Transfer(address indexed from, address indexed to, uint256 value);\n\n /**\n * @dev Emitted when the allowance of a `spender` for an `owner` is set by\n * a call to {approve}. `value` is the new allowance.\n */\n event Approval(address indexed owner, address indexed spender, uint256 value);\n\n /**\n * @dev Returns the amount of tokens in existence.\n */\n function totalSupply() external view returns (uint256);\n\n /**\n * @dev Returns the amount of tokens owned by `account`.\n */\n function balanceOf(address account) external view returns (uint256);\n\n /**\n * @dev Moves `amount` tokens from the caller's account to `to`.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * Emits a {Transfer} event.\n */\n function transfer(address to, uint256 amount) external returns (bool);\n\n /**\n * @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 *\n * This value changes when {approve} or {transferFrom} are called.\n */\n function allowance(address owner, address spender) external view returns (uint256);\n\n /**\n * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\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 *\n * Emits an {Approval} event.\n */\n function approve(address spender, uint256 amount) external returns (bool);\n\n /**\n * @dev Moves `amount` tokens from `from` to `to` using the\n * allowance mechanism. `amount` is then deducted from the caller's\n * allowance.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * Emits a {Transfer} event.\n */\n function transferFrom(\n address from,\n address to,\n uint256 amount\n ) external returns (bool);\n}\n"},"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/utils/SafeERC20.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.8.0) (token/ERC20/utils/SafeERC20.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../IERC20.sol\";\nimport \"../extensions/IERC20Permit.sol\";\nimport \"../../../utils/Address.sol\";\n\n/**\n * @title SafeERC20\n * @dev Wrappers around ERC20 operations that throw on failure (when the token\n * contract returns false). Tokens that return no value (and instead revert or\n * throw on failure) are also supported, non-reverting calls are assumed to be\n * successful.\n * To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,\n * which allows you to call the safe operations as `token.safeTransfer(...)`, etc.\n */\nlibrary SafeERC20 {\n using Address for address;\n\n function safeTransfer(\n IERC20 token,\n address to,\n uint256 value\n ) internal {\n _callOptionalReturn(\n token,\n abi.encodeWithSelector(token.transfer.selector, to, value)\n );\n }\n\n function safeTransferFrom(\n IERC20 token,\n address from,\n address to,\n uint256 value\n ) internal {\n _callOptionalReturn(\n token,\n abi.encodeWithSelector(token.transferFrom.selector, from, to, value)\n );\n }\n\n /**\n * @dev Deprecated. This function has issues similar to the ones found in\n * {IERC20-approve}, and its usage is discouraged.\n *\n * Whenever possible, use {safeIncreaseAllowance} and\n * {safeDecreaseAllowance} instead.\n */\n function safeApprove(\n IERC20 token,\n address spender,\n uint256 value\n ) internal {\n // safeApprove should only be called when setting an initial allowance,\n // or when resetting it to zero. To increase and decrease it, use\n // 'safeIncreaseAllowance' and 'safeDecreaseAllowance'\n require(\n (value == 0) || (token.allowance(address(this), spender) == 0),\n \"SafeERC20: approve from non-zero to non-zero allowance\"\n );\n _callOptionalReturn(\n token,\n abi.encodeWithSelector(token.approve.selector, spender, value)\n );\n }\n\n function safeIncreaseAllowance(\n IERC20 token,\n address spender,\n uint256 value\n ) internal {\n uint256 newAllowance = token.allowance(address(this), spender) + value;\n _callOptionalReturn(\n token,\n abi.encodeWithSelector(\n token.approve.selector,\n spender,\n newAllowance\n )\n );\n }\n\n function safeDecreaseAllowance(\n IERC20 token,\n address spender,\n uint256 value\n ) internal {\n unchecked {\n uint256 oldAllowance = token.allowance(address(this), spender);\n require(\n oldAllowance >= value,\n \"SafeERC20: decreased allowance below zero\"\n );\n uint256 newAllowance = oldAllowance - value;\n _callOptionalReturn(\n token,\n abi.encodeWithSelector(\n token.approve.selector,\n spender,\n newAllowance\n )\n );\n }\n }\n\n function safePermit(\n IERC20Permit token,\n address owner,\n address spender,\n uint256 value,\n uint256 deadline,\n uint8 v,\n bytes32 r,\n bytes32 s\n ) internal {\n uint256 nonceBefore = token.nonces(owner);\n token.permit(owner, spender, value, deadline, v, r, s);\n uint256 nonceAfter = token.nonces(owner);\n require(\n nonceAfter == nonceBefore + 1,\n \"SafeERC20: permit did not succeed\"\n );\n }\n\n /**\n * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\n * on the return value: the return value is optional (but if data is returned, it must not be false).\n * @param token The token targeted by the call.\n * @param data The call data (encoded using abi.encode or one of its variants).\n */\n function _callOptionalReturn(IERC20 token, bytes memory data) private {\n // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since\n // we're implementing it ourselves. We use {Address-functionCall} to perform this call, which verifies that\n // the target address contains contract code and also asserts for success in the low-level call.\n\n bytes memory returndata = address(token).functionCall(\n data,\n \"SafeERC20: low-level call failed\"\n );\n if (returndata.length > 0) {\n // Return data is optional\n require(\n abi.decode(returndata, (bool)),\n \"SafeERC20: ERC20 operation did not succeed\"\n );\n }\n }\n}\n"},"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/utils/Address.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.8.0) (utils/Address.sol)\n\npragma solidity ^0.8.1;\n\n/**\n * @dev Collection of functions related to the address type\n */\nlibrary Address {\n /**\n * @dev Returns true if `account` is a contract.\n *\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 *\n * Among others, `isContract` will return false for the following\n * types of addresses:\n *\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 *\n * [IMPORTANT]\n * ====\n * You shouldn't rely on `isContract` to protect against flash loan attacks!\n *\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 * ====\n */\n function isContract(address account) internal view returns (bool) {\n // This method relies on extcodesize/address.code.length, which returns 0\n // for contracts in construction, since the code is only stored at the end\n // of the constructor execution.\n\n return account.code.length > 0;\n }\n\n /**\n * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n * `recipient`, forwarding all available gas and reverting on errors.\n *\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 *\n * https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n *\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].\n */\n function sendValue(address payable recipient, uint256 amount) internal {\n require(\n address(this).balance >= amount,\n \"Address: insufficient balance\"\n );\n\n (bool success, ) = recipient.call{value: amount}(\"\");\n require(\n success,\n \"Address: unable to send value, recipient may have reverted\"\n );\n }\n\n /**\n * @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 *\n * If `target` reverts with a revert reason, it is bubbled up by this\n * function (like regular Solidity function calls).\n *\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 *\n * Requirements:\n *\n * - `target` must be a contract.\n * - calling `target` with `data` must not revert.\n *\n * _Available since v3.1._\n */\n function functionCall(address target, bytes memory data)\n internal\n returns (bytes memory)\n {\n return\n functionCallWithValue(\n target,\n data,\n 0,\n \"Address: low-level call failed\"\n );\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n * `errorMessage` as a fallback revert reason when `target` reverts.\n *\n * _Available since v3.1._\n */\n function functionCall(\n address target,\n bytes memory data,\n string memory errorMessage\n ) internal returns (bytes memory) {\n return functionCallWithValue(target, data, 0, errorMessage);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but also transferring `value` wei to `target`.\n *\n * Requirements:\n *\n * - the calling contract must have an ETH balance of at least `value`.\n * - the called Solidity function must be `payable`.\n *\n * _Available since v3.1._\n */\n function functionCallWithValue(\n address target,\n bytes memory data,\n uint256 value\n ) internal returns (bytes memory) {\n return\n functionCallWithValue(\n target,\n data,\n value,\n \"Address: low-level call with value failed\"\n );\n }\n\n /**\n * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n * with `errorMessage` as a fallback revert reason when `target` reverts.\n *\n * _Available since v3.1._\n */\n function functionCallWithValue(\n address target,\n bytes memory data,\n uint256 value,\n string memory errorMessage\n ) internal returns (bytes memory) {\n require(\n address(this).balance >= value,\n \"Address: insufficient balance for call\"\n );\n (bool success, bytes memory returndata) = target.call{value: value}(\n data\n );\n return\n verifyCallResultFromTarget(\n target,\n success,\n returndata,\n errorMessage\n );\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but performing a static call.\n *\n * _Available since v3.3._\n */\n function functionStaticCall(address target, bytes memory data)\n internal\n view\n returns (bytes memory)\n {\n return\n functionStaticCall(\n target,\n data,\n \"Address: low-level static call failed\"\n );\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n * but performing a static call.\n *\n * _Available since v3.3._\n */\n function functionStaticCall(\n address target,\n bytes memory data,\n string memory errorMessage\n ) internal view returns (bytes memory) {\n (bool success, bytes memory returndata) = target.staticcall(data);\n return\n verifyCallResultFromTarget(\n target,\n success,\n returndata,\n errorMessage\n );\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but performing a delegate call.\n *\n * _Available since v3.4._\n */\n function functionDelegateCall(address target, bytes memory data)\n internal\n returns (bytes memory)\n {\n return\n functionDelegateCall(\n target,\n data,\n \"Address: low-level delegate call failed\"\n );\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n * but performing a delegate call.\n *\n * _Available since v3.4._\n */\n function functionDelegateCall(\n address target,\n bytes memory data,\n string memory errorMessage\n ) internal returns (bytes memory) {\n (bool success, bytes memory returndata) = target.delegatecall(data);\n return\n verifyCallResultFromTarget(\n target,\n success,\n returndata,\n errorMessage\n );\n }\n\n /**\n * @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 *\n * _Available since v4.8._\n */\n function verifyCallResultFromTarget(\n address target,\n bool success,\n bytes memory returndata,\n string memory errorMessage\n ) internal view returns (bytes memory) {\n if (success) {\n if (returndata.length == 0) {\n // only check isContract if the call was successful and the return data is empty\n // otherwise we already know that it was a contract\n require(isContract(target), \"Address: call to non-contract\");\n }\n return returndata;\n } else {\n _revert(returndata, errorMessage);\n }\n }\n\n /**\n * @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 *\n * _Available since v4.3._\n */\n function verifyCallResult(\n bool success,\n bytes memory returndata,\n string memory errorMessage\n ) internal pure returns (bytes memory) {\n if (success) {\n return returndata;\n } else {\n _revert(returndata, errorMessage);\n }\n }\n\n function _revert(bytes memory returndata, string memory errorMessage)\n private\n pure\n {\n // Look for revert reason and bubble it up if present\n if (returndata.length > 0) {\n // The easiest way to bubble the revert reason is using memory via assembly\n /// @solidity memory-safe-assembly\n assembly {\n let returndata_size := mload(returndata)\n revert(add(32, returndata), returndata_size)\n }\n } else {\n revert(errorMessage);\n }\n }\n}\n"},"@openzeppelin/contracts/access/Ownable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (access/Ownable.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../utils/Context.sol\";\n\n/**\n * @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 *\n * By default, the owner account will be the one that deploys the contract. This\n * can later be changed with {transferOwnership}.\n *\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.\n */\nabstract contract Ownable is Context {\n address private _owner;\n\n event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\n\n /**\n * @dev Initializes the contract setting the deployer as the initial owner.\n */\n constructor() {\n _transferOwnership(_msgSender());\n }\n\n /**\n * @dev Returns the address of the current owner.\n */\n function owner() public view virtual returns (address) {\n return _owner;\n }\n\n /**\n * @dev Throws if called by any account other than the owner.\n */\n modifier onlyOwner() {\n require(owner() == _msgSender(), \"Ownable: caller is not the owner\");\n _;\n }\n\n /**\n * @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 *\n * NOTE: Renouncing ownership will leave the contract without an owner,\n * thereby removing any functionality that is only available to the owner.\n */\n function renounceOwnership() public virtual onlyOwner {\n _transferOwnership(address(0));\n }\n\n /**\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\n * Can only be called by the current owner.\n */\n function transferOwnership(address newOwner) public virtual onlyOwner {\n require(newOwner != address(0), \"Ownable: new owner is the zero address\");\n _transferOwnership(newOwner);\n }\n\n /**\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\n * Internal function without access restriction.\n */\n function _transferOwnership(address newOwner) internal virtual {\n address oldOwner = _owner;\n _owner = newOwner;\n emit OwnershipTransferred(oldOwner, newOwner);\n }\n}\n"},"@openzeppelin/contracts/token/ERC20/ERC20.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/ERC20.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./IERC20.sol\";\nimport \"./extensions/IERC20Metadata.sol\";\nimport \"../../utils/Context.sol\";\n\n/**\n * @dev Implementation of the {IERC20} interface.\n *\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 *\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 *\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 *\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 *\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}.\n */\ncontract ERC20 is Context, IERC20, IERC20Metadata {\n mapping(address => uint256) private _balances;\n\n mapping(address => mapping(address => uint256)) private _allowances;\n\n uint256 private _totalSupply;\n\n string private _name;\n string private _symbol;\n\n /**\n * @dev Sets the values for {name} and {symbol}.\n *\n * The default value of {decimals} is 18. To select a different value for\n * {decimals} you should overload it.\n *\n * All two of these values are immutable: they can only be set once during\n * construction.\n */\n constructor(string memory name_, string memory symbol_) {\n _name = name_;\n _symbol = symbol_;\n }\n\n /**\n * @dev Returns the name of the token.\n */\n function name() public view virtual override returns (string memory) {\n return _name;\n }\n\n /**\n * @dev Returns the symbol of the token, usually a shorter version of the\n * name.\n */\n function symbol() public view virtual override returns (string memory) {\n return _symbol;\n }\n\n /**\n * @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 *\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 *\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}.\n */\n function decimals() public view virtual override returns (uint8) {\n return 18;\n }\n\n /**\n * @dev See {IERC20-totalSupply}.\n */\n function totalSupply() public view virtual override returns (uint256) {\n return _totalSupply;\n }\n\n /**\n * @dev See {IERC20-balanceOf}.\n */\n function balanceOf(address account) public view virtual override returns (uint256) {\n return _balances[account];\n }\n\n /**\n * @dev See {IERC20-transfer}.\n *\n * Requirements:\n *\n * - `to` cannot be the zero address.\n * - the caller must have a balance of at least `amount`.\n */\n function transfer(address to, uint256 amount) public virtual override returns (bool) {\n address owner = _msgSender();\n _transfer(owner, to, amount);\n return true;\n }\n\n /**\n * @dev See {IERC20-allowance}.\n */\n function allowance(address owner, address spender) public view virtual override returns (uint256) {\n return _allowances[owner][spender];\n }\n\n /**\n * @dev See {IERC20-approve}.\n *\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 *\n * Requirements:\n *\n * - `spender` cannot be the zero address.\n */\n function approve(address spender, uint256 amount) public virtual override returns (bool) {\n address owner = _msgSender();\n _approve(owner, spender, amount);\n return true;\n }\n\n /**\n * @dev See {IERC20-transferFrom}.\n *\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 *\n * NOTE: Does not update the allowance if the current allowance\n * is the maximum `uint256`.\n *\n * Requirements:\n *\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`.\n */\n function transferFrom(\n address from,\n address to,\n uint256 amount\n ) public virtual override returns (bool) {\n address spender = _msgSender();\n _spendAllowance(from, spender, amount);\n _transfer(from, to, amount);\n return true;\n }\n\n /**\n * @dev Atomically increases the allowance granted to `spender` by the caller.\n *\n * This is an alternative to {approve} that can be used as a mitigation for\n * problems described in {IERC20-approve}.\n *\n * Emits an {Approval} event indicating the updated allowance.\n *\n * Requirements:\n *\n * - `spender` cannot be the zero address.\n */\n function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {\n address owner = _msgSender();\n _approve(owner, spender, allowance(owner, spender) + addedValue);\n return true;\n }\n\n /**\n * @dev Atomically decreases the allowance granted to `spender` by the caller.\n *\n * This is an alternative to {approve} that can be used as a mitigation for\n * problems described in {IERC20-approve}.\n *\n * Emits an {Approval} event indicating the updated allowance.\n *\n * Requirements:\n *\n * - `spender` cannot be the zero address.\n * - `spender` must have allowance for the caller of at least\n * `subtractedValue`.\n */\n function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {\n address owner = _msgSender();\n uint256 currentAllowance = allowance(owner, spender);\n require(currentAllowance >= subtractedValue, \"ERC20: decreased allowance below zero\");\n unchecked {\n _approve(owner, spender, currentAllowance - subtractedValue);\n }\n\n return true;\n }\n\n /**\n * @dev Moves `amount` of tokens from `sender` to `recipient`.\n *\n * This internal function is equivalent to {transfer}, and can be used to\n * e.g. implement automatic token fees, slashing mechanisms, etc.\n *\n * Emits a {Transfer} event.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `from` must have a balance of at least `amount`.\n */\n function _transfer(\n address from,\n address to,\n uint256 amount\n ) internal virtual {\n require(from != address(0), \"ERC20: transfer from the zero address\");\n require(to != address(0), \"ERC20: transfer to the zero address\");\n\n _beforeTokenTransfer(from, to, amount);\n\n uint256 fromBalance = _balances[from];\n require(fromBalance >= amount, \"ERC20: transfer amount exceeds balance\");\n unchecked {\n _balances[from] = fromBalance - amount;\n }\n _balances[to] += amount;\n\n emit Transfer(from, to, amount);\n\n _afterTokenTransfer(from, to, amount);\n }\n\n /** @dev Creates `amount` tokens and assigns them to `account`, increasing\n * the total supply.\n *\n * Emits a {Transfer} event with `from` set to the zero address.\n *\n * Requirements:\n *\n * - `account` cannot be the zero address.\n */\n function _mint(address account, uint256 amount) internal virtual {\n require(account != address(0), \"ERC20: mint to the zero address\");\n\n _beforeTokenTransfer(address(0), account, amount);\n\n _totalSupply += amount;\n _balances[account] += amount;\n emit Transfer(address(0), account, amount);\n\n _afterTokenTransfer(address(0), account, amount);\n }\n\n /**\n * @dev Destroys `amount` tokens from `account`, reducing the\n * total supply.\n *\n * Emits a {Transfer} event with `to` set to the zero address.\n *\n * Requirements:\n *\n * - `account` cannot be the zero address.\n * - `account` must have at least `amount` tokens.\n */\n function _burn(address account, uint256 amount) internal virtual {\n require(account != address(0), \"ERC20: burn from the zero address\");\n\n _beforeTokenTransfer(account, address(0), amount);\n\n uint256 accountBalance = _balances[account];\n require(accountBalance >= amount, \"ERC20: burn amount exceeds balance\");\n unchecked {\n _balances[account] = accountBalance - amount;\n }\n _totalSupply -= amount;\n\n emit Transfer(account, address(0), amount);\n\n _afterTokenTransfer(account, address(0), amount);\n }\n\n /**\n * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.\n *\n * This internal function is equivalent to `approve`, and can be used to\n * e.g. set automatic allowances for certain subsystems, etc.\n *\n * Emits an {Approval} event.\n *\n * Requirements:\n *\n * - `owner` cannot be the zero address.\n * - `spender` cannot be the zero address.\n */\n function _approve(\n address owner,\n address spender,\n uint256 amount\n ) internal virtual {\n require(owner != address(0), \"ERC20: approve from the zero address\");\n require(spender != address(0), \"ERC20: approve to the zero address\");\n\n _allowances[owner][spender] = amount;\n emit Approval(owner, spender, amount);\n }\n\n /**\n * @dev Updates `owner` s allowance for `spender` based on spent `amount`.\n *\n * Does not update the allowance amount in case of infinite allowance.\n * Revert if not enough allowance is available.\n *\n * Might emit an {Approval} event.\n */\n function _spendAllowance(\n address owner,\n address spender,\n uint256 amount\n ) internal virtual {\n uint256 currentAllowance = allowance(owner, spender);\n if (currentAllowance != type(uint256).max) {\n require(currentAllowance >= amount, \"ERC20: insufficient allowance\");\n unchecked {\n _approve(owner, spender, currentAllowance - amount);\n }\n }\n }\n\n /**\n * @dev Hook that is called before any transfer of tokens. This includes\n * minting and burning.\n *\n * Calling conditions:\n *\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 *\n * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\n */\n function _beforeTokenTransfer(\n address from,\n address to,\n uint256 amount\n ) internal virtual {}\n\n /**\n * @dev Hook that is called after any transfer of tokens. This includes\n * minting and burning.\n *\n * Calling conditions:\n *\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 *\n * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\n */\n function _afterTokenTransfer(\n address from,\n address to,\n uint256 amount\n ) internal virtual {}\n}\n"},"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../IERC20.sol\";\n\n/**\n * @dev Interface for the optional metadata functions from the ERC20 standard.\n *\n * _Available since v4.1._\n */\ninterface IERC20Metadata is IERC20 {\n /**\n * @dev Returns the name of the token.\n */\n function name() external view returns (string memory);\n\n /**\n * @dev Returns the symbol of the token.\n */\n function symbol() external view returns (string memory);\n\n /**\n * @dev Returns the decimals places of the token.\n */\n function decimals() external view returns (uint8);\n}\n"},"@openzeppelin/contracts/token/ERC20/IERC20.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Interface of the ERC20 standard as defined in the EIP.\n */\ninterface IERC20 {\n /**\n * @dev Emitted when `value` tokens are moved from one account (`from`) to\n * another (`to`).\n *\n * Note that `value` may be zero.\n */\n event Transfer(address indexed from, address indexed to, uint256 value);\n\n /**\n * @dev Emitted when the allowance of a `spender` for an `owner` is set by\n * a call to {approve}. `value` is the new allowance.\n */\n event Approval(address indexed owner, address indexed spender, uint256 value);\n\n /**\n * @dev Returns the amount of tokens in existence.\n */\n function totalSupply() external view returns (uint256);\n\n /**\n * @dev Returns the amount of tokens owned by `account`.\n */\n function balanceOf(address account) external view returns (uint256);\n\n /**\n * @dev Moves `amount` tokens from the caller's account to `to`.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * Emits a {Transfer} event.\n */\n function transfer(address to, uint256 amount) external returns (bool);\n\n /**\n * @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 *\n * This value changes when {approve} or {transferFrom} are called.\n */\n function allowance(address owner, address spender) external view returns (uint256);\n\n /**\n * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\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 *\n * Emits an {Approval} event.\n */\n function approve(address spender, uint256 amount) external returns (bool);\n\n /**\n * @dev Moves `amount` tokens from `from` to `to` using the\n * allowance mechanism. `amount` is then deducted from the caller's\n * allowance.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * Emits a {Transfer} event.\n */\n function transferFrom(\n address from,\n address to,\n uint256 amount\n ) external returns (bool);\n}\n"},"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (token/ERC20/utils/SafeERC20.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../IERC20.sol\";\nimport \"../../../utils/Address.sol\";\n\n/**\n * @title SafeERC20\n * @dev Wrappers around ERC20 operations that throw on failure (when the token\n * contract returns false). Tokens that return no value (and instead revert or\n * throw on failure) are also supported, non-reverting calls are assumed to be\n * successful.\n * To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,\n * which allows you to call the safe operations as `token.safeTransfer(...)`, etc.\n */\nlibrary SafeERC20 {\n using Address for address;\n\n function safeTransfer(\n IERC20 token,\n address to,\n uint256 value\n ) internal {\n _callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));\n }\n\n function safeTransferFrom(\n IERC20 token,\n address from,\n address to,\n uint256 value\n ) internal {\n _callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value));\n }\n\n /**\n * @dev Deprecated. This function has issues similar to the ones found in\n * {IERC20-approve}, and its usage is discouraged.\n *\n * Whenever possible, use {safeIncreaseAllowance} and\n * {safeDecreaseAllowance} instead.\n */\n function safeApprove(\n IERC20 token,\n address spender,\n uint256 value\n ) internal {\n // safeApprove should only be called when setting an initial allowance,\n // or when resetting it to zero. To increase and decrease it, use\n // 'safeIncreaseAllowance' and 'safeDecreaseAllowance'\n require(\n (value == 0) || (token.allowance(address(this), spender) == 0),\n \"SafeERC20: approve from non-zero to non-zero allowance\"\n );\n _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value));\n }\n\n function safeIncreaseAllowance(\n IERC20 token,\n address spender,\n uint256 value\n ) internal {\n uint256 newAllowance = token.allowance(address(this), spender) + value;\n _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));\n }\n\n function safeDecreaseAllowance(\n IERC20 token,\n address spender,\n uint256 value\n ) internal {\n unchecked {\n uint256 oldAllowance = token.allowance(address(this), spender);\n require(oldAllowance >= value, \"SafeERC20: decreased allowance below zero\");\n uint256 newAllowance = oldAllowance - value;\n _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));\n }\n }\n\n /**\n * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\n * on the return value: the return value is optional (but if data is returned, it must not be false).\n * @param token The token targeted by the call.\n * @param data The call data (encoded using abi.encode or one of its variants).\n */\n function _callOptionalReturn(IERC20 token, bytes memory data) private {\n // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since\n // we're implementing it ourselves. We use {Address.functionCall} to perform this call, which verifies that\n // the target address contains contract code and also asserts for success in the low-level call.\n\n bytes memory returndata = address(token).functionCall(data, \"SafeERC20: low-level call failed\");\n if (returndata.length > 0) {\n // Return data is optional\n require(abi.decode(returndata, (bool)), \"SafeERC20: ERC20 operation did not succeed\");\n }\n }\n}\n"},"@openzeppelin/contracts/token/ERC721/ERC721.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC721/ERC721.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./IERC721.sol\";\nimport \"./IERC721Receiver.sol\";\nimport \"./extensions/IERC721Metadata.sol\";\nimport \"../../utils/Address.sol\";\nimport \"../../utils/Context.sol\";\nimport \"../../utils/Strings.sol\";\nimport \"../../utils/introspection/ERC165.sol\";\n\n/**\n * @dev Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including\n * the Metadata extension, but not including the Enumerable extension, which is available separately as\n * {ERC721Enumerable}.\n */\ncontract ERC721 is Context, ERC165, IERC721, IERC721Metadata {\n using Address for address;\n using Strings for uint256;\n\n // Token name\n string private _name;\n\n // Token symbol\n string private _symbol;\n\n // Mapping from token ID to owner address\n mapping(uint256 => address) private _owners;\n\n // Mapping owner address to token count\n mapping(address => uint256) private _balances;\n\n // Mapping from token ID to approved address\n mapping(uint256 => address) private _tokenApprovals;\n\n // Mapping from owner to operator approvals\n mapping(address => mapping(address => bool)) private _operatorApprovals;\n\n /**\n * @dev Initializes the contract by setting a `name` and a `symbol` to the token collection.\n */\n constructor(string memory name_, string memory symbol_) {\n _name = name_;\n _symbol = symbol_;\n }\n\n /**\n * @dev See {IERC165-supportsInterface}.\n */\n function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165, IERC165) returns (bool) {\n return\n interfaceId == type(IERC721).interfaceId ||\n interfaceId == type(IERC721Metadata).interfaceId ||\n super.supportsInterface(interfaceId);\n }\n\n /**\n * @dev See {IERC721-balanceOf}.\n */\n function balanceOf(address owner) public view virtual override returns (uint256) {\n require(owner != address(0), \"ERC721: balance query for the zero address\");\n return _balances[owner];\n }\n\n /**\n * @dev See {IERC721-ownerOf}.\n */\n function ownerOf(uint256 tokenId) public view virtual override returns (address) {\n address owner = _owners[tokenId];\n require(owner != address(0), \"ERC721: owner query for nonexistent token\");\n return owner;\n }\n\n /**\n * @dev See {IERC721Metadata-name}.\n */\n function name() public view virtual override returns (string memory) {\n return _name;\n }\n\n /**\n * @dev See {IERC721Metadata-symbol}.\n */\n function symbol() public view virtual override returns (string memory) {\n return _symbol;\n }\n\n /**\n * @dev See {IERC721Metadata-tokenURI}.\n */\n function tokenURI(uint256 tokenId) public view virtual override returns (string memory) {\n require(_exists(tokenId), \"ERC721Metadata: URI query for nonexistent token\");\n\n string memory baseURI = _baseURI();\n return bytes(baseURI).length > 0 ? string(abi.encodePacked(baseURI, tokenId.toString())) : \"\";\n }\n\n /**\n * @dev Base URI for computing {tokenURI}. If set, the resulting URI for each\n * token will be the concatenation of the `baseURI` and the `tokenId`. Empty\n * by default, can be overridden in child contracts.\n */\n function _baseURI() internal view virtual returns (string memory) {\n return \"\";\n }\n\n /**\n * @dev See {IERC721-approve}.\n */\n function approve(address to, uint256 tokenId) public virtual override {\n address owner = ERC721.ownerOf(tokenId);\n require(to != owner, \"ERC721: approval to current owner\");\n\n require(\n _msgSender() == owner || isApprovedForAll(owner, _msgSender()),\n \"ERC721: approve caller is not owner nor approved for all\"\n );\n\n _approve(to, tokenId);\n }\n\n /**\n * @dev See {IERC721-getApproved}.\n */\n function getApproved(uint256 tokenId) public view virtual override returns (address) {\n require(_exists(tokenId), \"ERC721: approved query for nonexistent token\");\n\n return _tokenApprovals[tokenId];\n }\n\n /**\n * @dev See {IERC721-setApprovalForAll}.\n */\n function setApprovalForAll(address operator, bool approved) public virtual override {\n _setApprovalForAll(_msgSender(), operator, approved);\n }\n\n /**\n * @dev See {IERC721-isApprovedForAll}.\n */\n function isApprovedForAll(address owner, address operator) public view virtual override returns (bool) {\n return _operatorApprovals[owner][operator];\n }\n\n /**\n * @dev See {IERC721-transferFrom}.\n */\n function transferFrom(\n address from,\n address to,\n uint256 tokenId\n ) public virtual override {\n //solhint-disable-next-line max-line-length\n require(_isApprovedOrOwner(_msgSender(), tokenId), \"ERC721: transfer caller is not owner nor approved\");\n\n _transfer(from, to, tokenId);\n }\n\n /**\n * @dev See {IERC721-safeTransferFrom}.\n */\n function safeTransferFrom(\n address from,\n address to,\n uint256 tokenId\n ) public virtual override {\n safeTransferFrom(from, to, tokenId, \"\");\n }\n\n /**\n * @dev See {IERC721-safeTransferFrom}.\n */\n function safeTransferFrom(\n address from,\n address to,\n uint256 tokenId,\n bytes memory _data\n ) public virtual override {\n require(_isApprovedOrOwner(_msgSender(), tokenId), \"ERC721: transfer caller is not owner nor approved\");\n _safeTransfer(from, to, tokenId, _data);\n }\n\n /**\n * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n * are aware of the ERC721 protocol to prevent tokens from being forever locked.\n *\n * `_data` is additional data, it has no specified format and it is sent in call to `to`.\n *\n * This internal function is equivalent to {safeTransferFrom}, and can be used to e.g.\n * implement alternative mechanisms to perform token transfer, such as signature-based.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must exist and be owned by `from`.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function _safeTransfer(\n address from,\n address to,\n uint256 tokenId,\n bytes memory _data\n ) internal virtual {\n _transfer(from, to, tokenId);\n require(_checkOnERC721Received(from, to, tokenId, _data), \"ERC721: transfer to non ERC721Receiver implementer\");\n }\n\n /**\n * @dev Returns whether `tokenId` exists.\n *\n * Tokens can be managed by their owner or approved accounts via {approve} or {setApprovalForAll}.\n *\n * Tokens start existing when they are minted (`_mint`),\n * and stop existing when they are burned (`_burn`).\n */\n function _exists(uint256 tokenId) internal view virtual returns (bool) {\n return _owners[tokenId] != address(0);\n }\n\n /**\n * @dev Returns whether `spender` is allowed to manage `tokenId`.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n */\n function _isApprovedOrOwner(address spender, uint256 tokenId) internal view virtual returns (bool) {\n require(_exists(tokenId), \"ERC721: operator query for nonexistent token\");\n address owner = ERC721.ownerOf(tokenId);\n return (spender == owner || isApprovedForAll(owner, spender) || getApproved(tokenId) == spender);\n }\n\n /**\n * @dev Safely mints `tokenId` and transfers it to `to`.\n *\n * Requirements:\n *\n * - `tokenId` must not exist.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function _safeMint(address to, uint256 tokenId) internal virtual {\n _safeMint(to, tokenId, \"\");\n }\n\n /**\n * @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is\n * forwarded in {IERC721Receiver-onERC721Received} to contract recipients.\n */\n function _safeMint(\n address to,\n uint256 tokenId,\n bytes memory _data\n ) internal virtual {\n _mint(to, tokenId);\n require(\n _checkOnERC721Received(address(0), to, tokenId, _data),\n \"ERC721: transfer to non ERC721Receiver implementer\"\n );\n }\n\n /**\n * @dev Mints `tokenId` and transfers it to `to`.\n *\n * WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\n *\n * Requirements:\n *\n * - `tokenId` must not exist.\n * - `to` cannot be the zero address.\n *\n * Emits a {Transfer} event.\n */\n function _mint(address to, uint256 tokenId) internal virtual {\n require(to != address(0), \"ERC721: mint to the zero address\");\n require(!_exists(tokenId), \"ERC721: token already minted\");\n\n _beforeTokenTransfer(address(0), to, tokenId);\n\n _balances[to] += 1;\n _owners[tokenId] = to;\n\n emit Transfer(address(0), to, tokenId);\n\n _afterTokenTransfer(address(0), to, tokenId);\n }\n\n /**\n * @dev Destroys `tokenId`.\n * The approval is cleared when the token is burned.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n *\n * Emits a {Transfer} event.\n */\n function _burn(uint256 tokenId) internal virtual {\n address owner = ERC721.ownerOf(tokenId);\n\n _beforeTokenTransfer(owner, address(0), tokenId);\n\n // Clear approvals\n _approve(address(0), tokenId);\n\n _balances[owner] -= 1;\n delete _owners[tokenId];\n\n emit Transfer(owner, address(0), tokenId);\n\n _afterTokenTransfer(owner, address(0), tokenId);\n }\n\n /**\n * @dev Transfers `tokenId` from `from` to `to`.\n * As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\n *\n * Requirements:\n *\n * - `to` cannot be the zero address.\n * - `tokenId` token must be owned by `from`.\n *\n * Emits a {Transfer} event.\n */\n function _transfer(\n address from,\n address to,\n uint256 tokenId\n ) internal virtual {\n require(ERC721.ownerOf(tokenId) == from, \"ERC721: transfer from incorrect owner\");\n require(to != address(0), \"ERC721: transfer to the zero address\");\n\n _beforeTokenTransfer(from, to, tokenId);\n\n // Clear approvals from the previous owner\n _approve(address(0), tokenId);\n\n _balances[from] -= 1;\n _balances[to] += 1;\n _owners[tokenId] = to;\n\n emit Transfer(from, to, tokenId);\n\n _afterTokenTransfer(from, to, tokenId);\n }\n\n /**\n * @dev Approve `to` to operate on `tokenId`\n *\n * Emits a {Approval} event.\n */\n function _approve(address to, uint256 tokenId) internal virtual {\n _tokenApprovals[tokenId] = to;\n emit Approval(ERC721.ownerOf(tokenId), to, tokenId);\n }\n\n /**\n * @dev Approve `operator` to operate on all of `owner` tokens\n *\n * Emits a {ApprovalForAll} event.\n */\n function _setApprovalForAll(\n address owner,\n address operator,\n bool approved\n ) internal virtual {\n require(owner != operator, \"ERC721: approve to caller\");\n _operatorApprovals[owner][operator] = approved;\n emit ApprovalForAll(owner, operator, approved);\n }\n\n /**\n * @dev Internal function to invoke {IERC721Receiver-onERC721Received} on a target address.\n * The call is not executed if the target address is not a contract.\n *\n * @param from address representing the previous owner of the given token ID\n * @param to target address that will receive the tokens\n * @param tokenId uint256 ID of the token to be transferred\n * @param _data bytes optional data to send along with the call\n * @return bool whether the call correctly returned the expected magic value\n */\n function _checkOnERC721Received(\n address from,\n address to,\n uint256 tokenId,\n bytes memory _data\n ) private returns (bool) {\n if (to.isContract()) {\n try IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, _data) returns (bytes4 retval) {\n return retval == IERC721Receiver.onERC721Received.selector;\n } catch (bytes memory reason) {\n if (reason.length == 0) {\n revert(\"ERC721: transfer to non ERC721Receiver implementer\");\n } else {\n assembly {\n revert(add(32, reason), mload(reason))\n }\n }\n }\n } else {\n return true;\n }\n }\n\n /**\n * @dev Hook that is called before any token transfer. This includes minting\n * and burning.\n *\n * Calling conditions:\n *\n * - When `from` and `to` are both non-zero, ``from``'s `tokenId` will be\n * transferred to `to`.\n * - When `from` is zero, `tokenId` will be minted for `to`.\n * - When `to` is zero, ``from``'s `tokenId` will be burned.\n * - `from` and `to` are never both zero.\n *\n * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\n */\n function _beforeTokenTransfer(\n address from,\n address to,\n uint256 tokenId\n ) internal virtual {}\n\n /**\n * @dev Hook that is called after any transfer of tokens. This includes\n * minting and burning.\n *\n * Calling conditions:\n *\n * - when `from` and `to` are both non-zero.\n * - `from` and `to` are never both zero.\n *\n * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\n */\n function _afterTokenTransfer(\n address from,\n address to,\n uint256 tokenId\n ) internal virtual {}\n}\n"},"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (token/ERC721/extensions/ERC721URIStorage.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../ERC721.sol\";\n\n/**\n * @dev ERC721 token with storage based token URI management.\n */\nabstract contract ERC721URIStorage is ERC721 {\n using Strings for uint256;\n\n // Optional mapping for token URIs\n mapping(uint256 => string) private _tokenURIs;\n\n /**\n * @dev See {IERC721Metadata-tokenURI}.\n */\n function tokenURI(uint256 tokenId) public view virtual override returns (string memory) {\n require(_exists(tokenId), \"ERC721URIStorage: URI query for nonexistent token\");\n\n string memory _tokenURI = _tokenURIs[tokenId];\n string memory base = _baseURI();\n\n // If there is no base URI, return the token URI.\n if (bytes(base).length == 0) {\n return _tokenURI;\n }\n // If both are set, concatenate the baseURI and tokenURI (via abi.encodePacked).\n if (bytes(_tokenURI).length > 0) {\n return string(abi.encodePacked(base, _tokenURI));\n }\n\n return super.tokenURI(tokenId);\n }\n\n /**\n * @dev Sets `_tokenURI` as the tokenURI of `tokenId`.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n */\n function _setTokenURI(uint256 tokenId, string memory _tokenURI) internal virtual {\n require(_exists(tokenId), \"ERC721URIStorage: URI set of nonexistent token\");\n _tokenURIs[tokenId] = _tokenURI;\n }\n\n /**\n * @dev Destroys `tokenId`.\n * The approval is cleared when the token is burned.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n *\n * Emits a {Transfer} event.\n */\n function _burn(uint256 tokenId) internal virtual override {\n super._burn(tokenId);\n\n if (bytes(_tokenURIs[tokenId]).length != 0) {\n delete _tokenURIs[tokenId];\n }\n }\n}\n"},"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (token/ERC721/extensions/IERC721Metadata.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../IERC721.sol\";\n\n/**\n * @title ERC-721 Non-Fungible Token Standard, optional metadata extension\n * @dev See https://eips.ethereum.org/EIPS/eip-721\n */\ninterface IERC721Metadata is IERC721 {\n /**\n * @dev Returns the token collection name.\n */\n function name() external view returns (string memory);\n\n /**\n * @dev Returns the token collection symbol.\n */\n function symbol() external view returns (string memory);\n\n /**\n * @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token.\n */\n function tokenURI(uint256 tokenId) external view returns (string memory);\n}\n"},"@openzeppelin/contracts/token/ERC721/IERC721.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC721/IERC721.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../../utils/introspection/IERC165.sol\";\n\n/**\n * @dev Required interface of an ERC721 compliant contract.\n */\ninterface IERC721 is IERC165 {\n /**\n * @dev Emitted when `tokenId` token is transferred from `from` to `to`.\n */\n event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);\n\n /**\n * @dev Emitted when `owner` enables `approved` to manage the `tokenId` token.\n */\n event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);\n\n /**\n * @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\n */\n event ApprovalForAll(address indexed owner, address indexed operator, bool approved);\n\n /**\n * @dev Returns the number of tokens in ``owner``'s account.\n */\n function balanceOf(address owner) external view returns (uint256 balance);\n\n /**\n * @dev Returns the owner of the `tokenId` token.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n */\n function ownerOf(uint256 tokenId) external view returns (address owner);\n\n /**\n * @dev Safely transfers `tokenId` token from `from` to `to`.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must exist and be owned by `from`.\n * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function safeTransferFrom(\n address from,\n address to,\n uint256 tokenId,\n bytes calldata data\n ) external;\n\n /**\n * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n * are aware of the ERC721 protocol to prevent tokens from being forever locked.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must exist and be owned by `from`.\n * - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function safeTransferFrom(\n address from,\n address to,\n uint256 tokenId\n ) external;\n\n /**\n * @dev Transfers `tokenId` token from `from` to `to`.\n *\n * WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must be owned by `from`.\n * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n *\n * Emits a {Transfer} event.\n */\n function transferFrom(\n address from,\n address to,\n uint256 tokenId\n ) external;\n\n /**\n * @dev Gives permission to `to` to transfer `tokenId` token to another account.\n * The approval is cleared when the token is transferred.\n *\n * Only a single account can be approved at a time, so approving the zero address clears previous approvals.\n *\n * Requirements:\n *\n * - The caller must own the token or be an approved operator.\n * - `tokenId` must exist.\n *\n * Emits an {Approval} event.\n */\n function approve(address to, uint256 tokenId) external;\n\n /**\n * @dev Approve or remove `operator` as an operator for the caller.\n * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\n *\n * Requirements:\n *\n * - The `operator` cannot be the caller.\n *\n * Emits an {ApprovalForAll} event.\n */\n function setApprovalForAll(address operator, bool _approved) external;\n\n /**\n * @dev Returns the account approved for `tokenId` token.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n */\n function getApproved(uint256 tokenId) external view returns (address operator);\n\n /**\n * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\n *\n * See {setApprovalForAll}\n */\n function isApprovedForAll(address owner, address operator) external view returns (bool);\n}\n"},"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC721/IERC721Receiver.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @title ERC721 token receiver interface\n * @dev Interface for any contract that wants to support safeTransfers\n * from ERC721 asset contracts.\n */\ninterface IERC721Receiver {\n /**\n * @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\n * by `operator` from `from`, this function is called.\n *\n * It must return its Solidity selector to confirm the token transfer.\n * If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted.\n *\n * The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`.\n */\n function onERC721Received(\n address operator,\n address from,\n uint256 tokenId,\n bytes calldata data\n ) external returns (bytes4);\n}\n"},"@openzeppelin/contracts/utils/Address.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.5.0) (utils/Address.sol)\n\npragma solidity ^0.8.1;\n\n/**\n * @dev Collection of functions related to the address type\n */\nlibrary Address {\n /**\n * @dev Returns true if `account` is a contract.\n *\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 *\n * Among others, `isContract` will return false for the following\n * types of addresses:\n *\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 *\n * [IMPORTANT]\n * ====\n * You shouldn't rely on `isContract` to protect against flash loan attacks!\n *\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 * ====\n */\n function isContract(address account) internal view returns (bool) {\n // This method relies on extcodesize/address.code.length, which returns 0\n // for contracts in construction, since the code is only stored at the end\n // of the constructor execution.\n\n return account.code.length > 0;\n }\n\n /**\n * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n * `recipient`, forwarding all available gas and reverting on errors.\n *\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 *\n * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n *\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].\n */\n function sendValue(address payable recipient, uint256 amount) internal {\n require(address(this).balance >= amount, \"Address: insufficient balance\");\n\n (bool success, ) = recipient.call{value: amount}(\"\");\n require(success, \"Address: unable to send value, recipient may have reverted\");\n }\n\n /**\n * @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 *\n * If `target` reverts with a revert reason, it is bubbled up by this\n * function (like regular Solidity function calls).\n *\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 *\n * Requirements:\n *\n * - `target` must be a contract.\n * - calling `target` with `data` must not revert.\n *\n * _Available since v3.1._\n */\n function functionCall(address target, bytes memory data) internal returns (bytes memory) {\n return functionCall(target, data, \"Address: low-level call failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n * `errorMessage` as a fallback revert reason when `target` reverts.\n *\n * _Available since v3.1._\n */\n function functionCall(\n address target,\n bytes memory data,\n string memory errorMessage\n ) internal returns (bytes memory) {\n return functionCallWithValue(target, data, 0, errorMessage);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but also transferring `value` wei to `target`.\n *\n * Requirements:\n *\n * - the calling contract must have an ETH balance of at least `value`.\n * - the called Solidity function must be `payable`.\n *\n * _Available since v3.1._\n */\n function functionCallWithValue(\n address target,\n bytes memory data,\n uint256 value\n ) internal returns (bytes memory) {\n return functionCallWithValue(target, data, value, \"Address: low-level call with value failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n * with `errorMessage` as a fallback revert reason when `target` reverts.\n *\n * _Available since v3.1._\n */\n function functionCallWithValue(\n address target,\n bytes memory data,\n uint256 value,\n string memory errorMessage\n ) internal returns (bytes memory) {\n require(address(this).balance >= value, \"Address: insufficient balance for call\");\n require(isContract(target), \"Address: call to non-contract\");\n\n (bool success, bytes memory returndata) = target.call{value: value}(data);\n return verifyCallResult(success, returndata, errorMessage);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but performing a static call.\n *\n * _Available since v3.3._\n */\n function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\n return functionStaticCall(target, data, \"Address: low-level static call failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n * but performing a static call.\n *\n * _Available since v3.3._\n */\n function functionStaticCall(\n address target,\n bytes memory data,\n string memory errorMessage\n ) internal view returns (bytes memory) {\n require(isContract(target), \"Address: static call to non-contract\");\n\n (bool success, bytes memory returndata) = target.staticcall(data);\n return verifyCallResult(success, returndata, errorMessage);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but performing a delegate call.\n *\n * _Available since v3.4._\n */\n function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\n return functionDelegateCall(target, data, \"Address: low-level delegate call failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n * but performing a delegate call.\n *\n * _Available since v3.4._\n */\n function functionDelegateCall(\n address target,\n bytes memory data,\n string memory errorMessage\n ) internal returns (bytes memory) {\n require(isContract(target), \"Address: delegate call to non-contract\");\n\n (bool success, bytes memory returndata) = target.delegatecall(data);\n return verifyCallResult(success, returndata, errorMessage);\n }\n\n /**\n * @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 *\n * _Available since v4.3._\n */\n function verifyCallResult(\n bool success,\n bytes memory returndata,\n string memory errorMessage\n ) internal pure returns (bytes memory) {\n if (success) {\n return returndata;\n } else {\n // Look for revert reason and bubble it up if present\n if (returndata.length > 0) {\n // The easiest way to bubble the revert reason is using memory via assembly\n\n assembly {\n let returndata_size := mload(returndata)\n revert(add(32, returndata), returndata_size)\n }\n } else {\n revert(errorMessage);\n }\n }\n }\n}\n"},"@openzeppelin/contracts/utils/Context.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @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 *\n * This contract is only required for intermediate, library-like contracts.\n */\nabstract contract Context {\n function _msgSender() internal view virtual returns (address) {\n return msg.sender;\n }\n\n function _msgData() internal view virtual returns (bytes calldata) {\n return msg.data;\n }\n}\n"},"@openzeppelin/contracts/utils/Counters.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (utils/Counters.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @title Counters\n * @author Matt Condon (@shrugs)\n * @dev Provides counters that can only be incremented, decremented or reset. This can be used e.g. to track the number\n * of elements in a mapping, issuing ERC721 ids, or counting request ids.\n *\n * Include with `using Counters for Counters.Counter;`\n */\nlibrary Counters {\n struct Counter {\n // This variable should never be directly accessed by users of the library: interactions must be restricted to\n // the library's function. As of Solidity v0.5.2, this cannot be enforced, though there is a proposal to add\n // this feature: see https://github.com/ethereum/solidity/issues/4637\n uint256 _value; // default: 0\n }\n\n function current(Counter storage counter) internal view returns (uint256) {\n return counter._value;\n }\n\n function increment(Counter storage counter) internal {\n unchecked {\n counter._value += 1;\n }\n }\n\n function decrement(Counter storage counter) internal {\n uint256 value = counter._value;\n require(value > 0, \"Counter: decrement overflow\");\n unchecked {\n counter._value = value - 1;\n }\n }\n\n function reset(Counter storage counter) internal {\n counter._value = 0;\n }\n}\n"},"@openzeppelin/contracts/utils/introspection/ERC165.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (utils/introspection/ERC165.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./IERC165.sol\";\n\n/**\n * @dev Implementation of the {IERC165} interface.\n *\n * Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check\n * for the additional interface id that will be supported. For example:\n *\n * ```solidity\n * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n * return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\n * }\n * ```\n *\n * Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.\n */\nabstract contract ERC165 is IERC165 {\n /**\n * @dev See {IERC165-supportsInterface}.\n */\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n return interfaceId == type(IERC165).interfaceId;\n }\n}\n"},"@openzeppelin/contracts/utils/introspection/IERC165.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Interface of the ERC165 standard, as defined in the\n * https://eips.ethereum.org/EIPS/eip-165[EIP].\n *\n * Implementers can declare support of contract interfaces, which can then be\n * queried by others ({ERC165Checker}).\n *\n * For an implementation, see {ERC165}.\n */\ninterface IERC165 {\n /**\n * @dev Returns true if this contract implements the interface defined by\n * `interfaceId`. See the corresponding\n * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n * to learn more about how these ids are created.\n *\n * This function call must use less than 30 000 gas.\n */\n function supportsInterface(bytes4 interfaceId) external view returns (bool);\n}\n"},"@openzeppelin/contracts/utils/Strings.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (utils/Strings.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev String operations.\n */\nlibrary Strings {\n bytes16 private constant _HEX_SYMBOLS = \"0123456789abcdef\";\n\n /**\n * @dev Converts a `uint256` to its ASCII `string` decimal representation.\n */\n function toString(uint256 value) internal pure returns (string memory) {\n // Inspired by OraclizeAPI's implementation - MIT licence\n // https://github.com/oraclize/ethereum-api/blob/b42146b063c7d6ee1358846c198246239e9360e8/oraclizeAPI_0.4.25.sol\n\n if (value == 0) {\n return \"0\";\n }\n uint256 temp = value;\n uint256 digits;\n while (temp != 0) {\n digits++;\n temp /= 10;\n }\n bytes memory buffer = new bytes(digits);\n while (value != 0) {\n digits -= 1;\n buffer[digits] = bytes1(uint8(48 + uint256(value % 10)));\n value /= 10;\n }\n return string(buffer);\n }\n\n /**\n * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation.\n */\n function toHexString(uint256 value) internal pure returns (string memory) {\n if (value == 0) {\n return \"0x00\";\n }\n uint256 temp = value;\n uint256 length = 0;\n while (temp != 0) {\n length++;\n temp >>= 8;\n }\n return toHexString(value, length);\n }\n\n /**\n * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length.\n */\n function toHexString(uint256 value, uint256 length) internal pure returns (string memory) {\n bytes memory buffer = new bytes(2 * length + 2);\n buffer[0] = \"0\";\n buffer[1] = \"x\";\n for (uint256 i = 2 * length + 1; i > 1; --i) {\n buffer[i] = _HEX_SYMBOLS[value & 0xf];\n value >>= 4;\n }\n require(value == 0, \"Strings: hex length insufficient\");\n return string(buffer);\n }\n}\n"},"contracts/Caller.sol":{"content":"// SPDX-License-Identifier: Unlicense\npragma solidity ^0.8.0;\n\ninterface IGreeter2 {\n function callGreeter() external view returns (string memory);\n function setGreet(string memory greeting) external;\n}\n\ncontract GCaller {\n address public myAddress;\n address public callAddress;\n string private defaultGreeting = \"Hi from Caller\";\n\n constructor(address _callAddress) {\n myAddress = address(this);\n callAddress = _callAddress;\n }\n\n function newSetGreet(string memory _greeting) external {\n bytes memory greetingBytes = bytes(_greeting);\n string memory greeting = (greetingBytes.length > 0) ? _greeting : defaultGreeting;\n IGreeter2(callAddress).setGreet(greeting);\n }\n\n function newCallGreeter() external view returns (string memory) {\n return IGreeter2(callAddress).callGreeter();\n }\n}"},"contracts/Greeter.sol":{"content":"//SPDX-License-Identifier: Unlicense\npragma solidity ^0.8.0;\n\ncontract Greeter {\n string private greeting;\n\n event SetGreeting(string greeting);\n\n constructor(string memory _greeting) {\n greeting = _greeting;\n }\n\n function greet() public view returns (string memory) {\n return greeting;\n }\n\n function setGreeting(string memory _greeting) public {\n greeting = _greeting;\n\n emit SetGreeting(_greeting);\n }\n}"},"contracts/L1.sol":{"content":"//SPDX-License-Identifier: Unlicense\npragma solidity ^0.8.0;\n\nimport \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\n\ncontract L1 is ERC20 {\n uint256 constant _initial_supply = 1000 * (10 ** 18);\n\n constructor(address _recipient) public ERC20(\"L1 ERC20 token\", \"L1\") {\n _mint(_recipient, _initial_supply);\n }\n}"},"contracts/L2.sol":{"content":"//SPDX-License-Identifier: Unlicense\npragma solidity ^0.8.0;\n\nimport \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\n\ncontract L2 is ERC20 {\n uint256 constant _initial_supply = 1000 * (10 ** 18);\n\n constructor() ERC20(\"L2 ERC20 token\", \"L2\") {\n _mint(msg.sender, _initial_supply);\n }\n}"},"contracts/Middle.sol":{"content":"// SPDX-License-Identifier: Unlicense\npragma solidity ^0.8.0;\n\ninterface IGreeter {\n function greet() external view returns (string memory);\n function setGreeting(string memory) external;\n}\n\ncontract Middle {\n address public myAddress;\n\n constructor(address _myAddress) {\n myAddress = _myAddress;\n }\n\n function setGreet(string memory newGreeting) external {\n IGreeter(myAddress).setGreeting(newGreeting);\n }\n\n function callGreeter() external view returns (string memory) {\n return IGreeter(myAddress).greet();\n }\n}"},"contracts/MultiTransfer.sol":{"content":"// File @openzeppelin/contracts/token/ERC20/IERC20.sol@v4.6.0\n\nimport \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\";\nimport \"@openzeppelin/contracts/utils/Address.sol\";\n\n// SPDX-License-Identifier: MIT\npragma solidity ^0.8.16;\n\n\ncontract TokenF2L2 {\n // Declare the using directive on the contract scope\n using SafeERC20 for IERC20;\n using Address for address payable;\n\n //Be able to receive any funds to the contract\n receive() external payable {\n pay();\n }\n\n function pay() public payable {\n emit Paid(msg.sender, msg.value, block.timestamp);\n }\n\n function getBalance() public view returns (uint) {\n return address(this).balance;\n }\n\n address public owner;\n\n constructor(address _owner) {\n owner = _owner;\n }\n\n event Paid(address indexed _from, uint _amount, uint _timestamp);\n\n modifier onlyOwner() {\n require(owner == msg.sender, \"You are not the owner\");\n _; // continue\n }\n\n function multiTransfer(\n address[] memory _recivers,\n address[] memory _tokenAddresses,\n uint256[] memory _tokenAmounts\n ) public payable onlyOwner {\n // Check that the length of the tokenAddresses array is equal to the length of the tokenAmounts array\n require(_tokenAddresses.length == _tokenAmounts.length, \"Arrays must have the same length\");\n require(_tokenAddresses.length == _recivers.length, \"Arrays must have the same length\");\n\n // Iterate over the arrays and transfer the specified amount of each token\n for (uint i = 0; i < _tokenAddresses.length; i++) {\n if (_tokenAddresses[i] == address(0)) {\n payable(_recivers[i]).sendValue(_tokenAmounts[i]);\n } else {\n // Cast the token address to an IERC20 contract to access its safeTransfer function\n IERC20 token = IERC20(_tokenAddresses[i]);\n\n // Attempt to transfer the specified amount of the token\n token.safeTransfer(_recivers[i], _tokenAmounts[i]);\n }\n }\n }\n}\n"},"contracts/MyERC20.sol":{"content":"// SPDX-License-Identifier: UNLICENSED\n\npragma solidity ^0.8.0;\n\nimport \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\n\ncontract MyERC20 is ERC20 {\n uint8 private _decimals;\n\n constructor(\n string memory name_,\n string memory symbol_,\n uint8 decimals_\n ) ERC20(name_, symbol_) {\n _decimals = decimals_;\n }\n\n function mint(address _to, uint256 _amount) public returns (bool) {\n _mint(_to, _amount);\n return true;\n }\n\n function decimals() public view override returns (uint8) {\n return _decimals;\n }\n}"},"contracts/MyNFT.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\nimport \"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol\";\nimport \"@openzeppelin/contracts/utils/Counters.sol\";\nimport \"@openzeppelin/contracts/access/Ownable.sol\";\n\ncontract MyNFT is ERC721URIStorage, Ownable {\n using Counters for Counters.Counter;\n Counters.Counter private _tokenIds;\n\n constructor() ERC721(\"MyNFT\", \"NFT\") {}\n\n function mintNFT(address recipient, string memory tokenURI) public onlyOwner returns (uint256) {\n _tokenIds.increment();\n\n uint256 newItemId = _tokenIds.current();\n _mint(recipient, newItemId);\n _setTokenURI(newItemId, tokenURI);\n\n return newItemId;\n }\n}\n"},"contracts/MyPaymaster.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\n\nimport {IPaymaster, ExecutionResult, PAYMASTER_VALIDATION_SUCCESS_MAGIC} from \"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymaster.sol\";\nimport {IPaymasterFlow} from \"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymasterFlow.sol\";\nimport {TransactionHelper, Transaction} from \"@matterlabs/zksync-contracts/l2/system-contracts/libraries/TransactionHelper.sol\";\n\nimport \"@matterlabs/zksync-contracts/l2/system-contracts/Constants.sol\";\n\ncontract MyPaymaster is IPaymaster {\n uint256 constant PRICE_FOR_PAYING_FEES = 1;\n\n address public allowedToken;\n\n modifier onlyBootloader() {\n require(\n msg.sender == BOOTLOADER_FORMAL_ADDRESS,\n \"Only bootloader can call this method\"\n );\n // Continure execution if called from the bootloader.\n _;\n }\n\n constructor(address _erc20) {\n allowedToken = _erc20;\n }\n\n function validateAndPayForPaymasterTransaction(\n bytes32,\n bytes32,\n Transaction calldata _transaction\n ) external payable returns (bytes4 magic, bytes memory context) {\n // By default we consider the transaction as accepted.\n magic = PAYMASTER_VALIDATION_SUCCESS_MAGIC;\n require(\n _transaction.paymasterInput.length >= 4,\n \"The standard paymaster input must be at least 4 bytes long\"\n );\n\n bytes4 paymasterInputSelector = bytes4(\n _transaction.paymasterInput[0:4]\n );\n if (paymasterInputSelector == IPaymasterFlow.approvalBased.selector) {\n // While the transaction data consists of address, uint256 and bytes data,\n // the data is not needed for this paymaster\n (address token, uint256 amount, bytes memory data) = abi.decode(\n _transaction.paymasterInput[4:],\n (address, uint256, bytes)\n );\n\n // Verify if token is the correct one\n require(token == allowedToken, \"Invalid token\");\n\n // We verify that the user has provided enough allowance\n address userAddress = address(uint160(_transaction.from));\n\n address thisAddress = address(this);\n\n uint256 providedAllowance = IERC20(token).allowance(\n userAddress,\n thisAddress\n );\n require(\n providedAllowance >= PRICE_FOR_PAYING_FEES,\n \"Min allowance too low\"\n );\n\n // Note, that while the minimal amount of ETH needed is tx.gasPrice * tx.gasLimit,\n // neither paymaster nor account are allowed to access this context variable.\n uint256 requiredETH = _transaction.gasLimit *\n _transaction.maxFeePerGas;\n\n try\n IERC20(token).transferFrom(userAddress, thisAddress, amount)\n {} catch (bytes memory revertReason) {\n // If the revert reason is empty or represented by just a function selector,\n // we replace the error with a more user-friendly message\n if (revertReason.length <= 4) {\n revert(\"Failed to transferFrom from users' account\");\n } else {\n assembly {\n revert(add(0x20, revertReason), mload(revertReason))\n }\n }\n }\n\n // The bootloader never returns any data, so it can safely be ignored here.\n (bool success, ) = payable(BOOTLOADER_FORMAL_ADDRESS).call{\n value: requiredETH\n }(\"\");\n require(success, \"Failed to transfer funds to the bootloader\");\n } else {\n revert(\"Unsupported paymaster flow\");\n }\n }\n\n function postTransaction(\n bytes calldata _context,\n Transaction calldata _transaction,\n bytes32,\n bytes32,\n ExecutionResult _txResult,\n uint256 _maxRefundedGas\n ) external payable override {\n // Refunds are not supported yet.\n }\n\n receive() external payable {}\n}\n"},"contracts/Root.sol":{"content":"//SPDX-License-Identifier: Unlicense\npragma solidity ^0.8.0;\n\ncontract Root {\n string private greeting = \"Hi from Root\";\n\n event SetGreeting(string greeting);\n\n constructor(string memory _greeting) {\n greeting = _greeting;\n }\n\n function greet() public view returns (string memory) {\n return greeting;\n }\n\n function setGreeting(string memory _greeting) public {\n greeting = _greeting;\n\n emit SetGreeting(_greeting);\n }\n}"}},"settings":{"optimizer":{"enabled":true,"runs":200},"viaIR":true,"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"],"":["ast"]}}}},"output":{"errors":[{"component":"general","errorCode":"2519","formattedMessage":"Warning: This declaration shadows an existing declaration.\n --> @matterlabs/zksync-contracts/l2/system-contracts/libraries/Utils.sol:85:9:\n |\n85 | uint256 bytecodeLenInWords = _bytecode.length / 32;\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^\nNote: The shadowed declaration is here:\n --> @matterlabs/zksync-contracts/l2/system-contracts/libraries/Utils.sol:43:5:\n |\n43 | function bytecodeLenInWords(bytes32 _bytecodeHash) internal pure returns (uint256 codeLengthInWords) {\n | ^ (Relevant source part starts here and spans across multiple lines).\n\n","message":"This declaration shadows an existing declaration.","secondarySourceLocations":[{"end":1655,"file":"@matterlabs/zksync-contracts/l2/system-contracts/libraries/Utils.sol","message":"The shadowed declaration is here:","start":1410}],"severity":"warning","sourceLocation":{"end":3789,"file":"@matterlabs/zksync-contracts/l2/system-contracts/libraries/Utils.sol","start":3763},"type":"Warning"},{"component":"general","errorCode":"2462","formattedMessage":"Warning: Visibility for constructor is ignored. If you want the contract to be non-deployable, making it \"abstract\" is sufficient.\n --> contracts/L1.sol:9:5:\n |\n9 | constructor(address _recipient) public ERC20(\"L1 ERC20 token\", \"L1\") {\n | ^ (Relevant source part starts here and spans across multiple lines).\n\n","message":"Visibility for constructor is ignored. If you want the contract to be non-deployable, making it \"abstract\" is sufficient.","severity":"warning","sourceLocation":{"end":325,"file":"contracts/L1.sol","start":205},"type":"Warning"},{"component":"general","errorCode":"5667","formattedMessage":"Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.\n --> contracts/MyPaymaster.sol:34:47:\n |\n34 | ) external payable returns (bytes4 magic, bytes memory context) {\n | ^^^^^^^^^^^^^^^^^^^^\n\n","message":"Unused function parameter. Remove or comment out the variable name to silence this warning.","severity":"warning","sourceLocation":{"end":1216,"file":"contracts/MyPaymaster.sol","start":1196},"type":"Warning"},{"component":"general","errorCode":"2072","formattedMessage":"Warning: Unused local variable.\n --> contracts/MyPaymaster.sol:48:45:\n |\n48 | (address token, uint256 amount, bytes memory data) = abi.decode(\n | ^^^^^^^^^^^^^^^^^\n\n","message":"Unused local variable.","severity":"warning","sourceLocation":{"end":1878,"file":"contracts/MyPaymaster.sol","start":1861},"type":"Warning"}],"sources":{"@matterlabs/zksync-contracts/l2/system-contracts/BootloaderUtilities.sol":{"ast":{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/BootloaderUtilities.sol","exportedSymbols":{"ADDRESS_MASK":[2520],"Address":[5645],"BOOTLOADER_FORMAL_ADDRESS":[958],"BootloaderUtilities":[905],"CALLFLAGS_CALL_ADDRESS":[3261],"CODE_ADDRESS_CALL_ADDRESS":[3096],"CalldataForwardingMode":[3405],"EIP_1559_TX_TYPE":[3710],"EIP_2930_TX_TYPE":[3706],"EIP_712_TX_TYPE":[3698],"ETH_TOKEN_SYSTEM_CONTRACT":[1051],"EVENT_INITIALIZE_ADDRESS":[3283],"EVENT_WRITE_ADDRESS":[3294],"EfficientCall":[2170],"GET_EXTRA_ABI_DATA_ADDRESS":[3371],"Global":[2539],"IBootloaderUtilities":[1180],"IContractDeployer":[1327],"IERC20":[4998],"IERC20Permit":[5034],"INCREMENT_TX_COUNTER_CALL_ADDRESS":[3239],"IPaymasterFlow":[1634],"ISystemContract":[3068],"KECCAK256_SYSTEM_CONTRACT":[1059],"LEGACY_TX_TYPE":[3702],"LOAD_CALLDATA_INTO_ACTIVE_PTR_CALL_ADDRESS":[3305],"LOAD_LATEST_RETURNDATA_INTO_ACTIVE_PTR_CALL_ADDRESS":[3316],"MAX_SYSTEM_CONTRACT_ADDRESS":[925],"META_AUX_HEAP_SIZE_OFFSET":[3386],"META_CALLER_SHARD_ID_OFFSET":[3396],"META_CALL_ADDRESS":[3118],"META_CODE_SHARD_ID_OFFSET":[3401],"META_GAS_PER_PUBDATA_BYTE_OFFSET":[3376],"META_HEAP_SIZE_OFFSET":[3381],"META_SHARD_ID_OFFSET":[3391],"MIMIC_CALL_BY_REF_CALL_ADDRESS":[3151],"MIMIC_CALL_CALL_ADDRESS":[3129],"MSG_VALUE_SIMULATOR_IS_SYSTEM_BIT":[1107],"MSG_VALUE_SYSTEM_CONTRACT":[1040],"MULTIPLICATION_HIGH_ADDRESS":[3360],"PRECOMPILE_CALL_ADDRESS":[3107],"PTR_ADD_INTO_ACTIVE_CALL_ADDRESS":[3327],"PTR_CALLDATA_CALL_ADDRESS":[3250],"PTR_PACK_INTO_ACTIVE_CALL_ADDRESS":[3349],"PTR_RETURNDATA_CALL_ADDRESS":[3272],"PTR_SHRINK_INTO_ACTIVE_CALL_ADDRESS":[3338],"RAW_FAR_CALL_BY_REF_CALL_ADDRESS":[3184],"RAW_FAR_CALL_CALL_ADDRESS":[3173],"RLPEncoder":[2503],"SET_CONTEXT_VALUE_CALL_ADDRESS":[3217],"SET_PUBDATA_PRICE_CALL_ADDRESS":[3228],"SHA256_SYSTEM_CONTRACT":[937],"SYSTEM_CALL_BY_REF_CALL_ADDRESS":[3206],"SYSTEM_CALL_CALL_ADDRESS":[3195],"SYSTEM_MIMIC_CALL_BY_REF_CALL_ADDRESS":[3162],"SYSTEM_MIMIC_CALL_CALL_ADDRESS":[3140],"SafeERC20":[5315],"SystemContractHelper":[3048],"SystemContractsCaller":[3683],"TO_L1_CALL_ADDRESS":[3085],"Transaction":[3746],"TransactionHelper":[4646],"UINT128_MASK":[2516],"UINT32_MASK":[2513],"Utils":[4920],"ZkSyncMeta":[2533]},"id":906,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"33:23:0"},{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBootloaderUtilities.sol","file":"./interfaces/IBootloaderUtilities.sol","id":2,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":906,"sourceUnit":1181,"src":"58:47:0","symbolAliases":[],"unitAlias":""},{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/libraries/TransactionHelper.sol","file":"./libraries/TransactionHelper.sol","id":3,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":906,"sourceUnit":4647,"src":"106:43:0","symbolAliases":[],"unitAlias":""},{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/libraries/RLPEncoder.sol","file":"./libraries/RLPEncoder.sol","id":4,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":906,"sourceUnit":2504,"src":"150:36:0","symbolAliases":[],"unitAlias":""},{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/libraries/EfficientCall.sol","file":"./libraries/EfficientCall.sol","id":5,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":906,"sourceUnit":2171,"src":"187:39:0","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":7,"name":"IBootloaderUtilities","nameLocations":["405:20:0"],"nodeType":"IdentifierPath","referencedDeclaration":1180,"src":"405:20:0"},"id":8,"nodeType":"InheritanceSpecifier","src":"405:20:0"}],"canonicalName":"BootloaderUtilities","contractDependencies":[],"contractKind":"contract","documentation":{"id":6,"nodeType":"StructuredDocumentation","src":"228:144:0","text":" @author Matter Labs\n @notice A contract that provides some utility methods for the bootloader\n that is very hard to write in Yul."},"fullyImplemented":true,"id":905,"linearizedBaseContracts":[905,1180],"name":"BootloaderUtilities","nameLocation":"382:19:0","nodeType":"ContractDefinition","nodes":[{"global":false,"id":10,"libraryName":{"id":9,"name":"TransactionHelper","nameLocations":["438:17:0"],"nodeType":"IdentifierPath","referencedDeclaration":4646,"src":"438:17:0"},"nodeType":"UsingForDirective","src":"432:30:0"},{"baseFunctions":[1179],"body":{"id":90,"nodeType":"Block","src":"1045:665:0","statements":[{"expression":{"id":26,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":22,"name":"signedTxHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20,"src":"1055:12:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":23,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14,"src":"1070:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":24,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1083:10:0","memberName":"encodeHash","nodeType":"MemberAccess","referencedDeclaration":3851,"src":"1070:23:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Transaction_$3746_calldata_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_Transaction_$3746_calldata_ptr_$","typeString":"function (struct Transaction calldata) view returns (bytes32)"}},"id":25,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1070:25:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1055:40:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":27,"nodeType":"ExpressionStatement","src":"1055:40:0"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":31,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":28,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14,"src":"1109:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":29,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1122:6:0","memberName":"txType","nodeType":"MemberAccess","referencedDeclaration":3712,"src":"1109:19:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":30,"name":"EIP_712_TX_TYPE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3698,"src":"1132:15:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"1109:38:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":48,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14,"src":"1276:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":49,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1289:6:0","memberName":"txType","nodeType":"MemberAccess","referencedDeclaration":3712,"src":"1276:19:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":50,"name":"LEGACY_TX_TYPE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3702,"src":"1299:14:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"1276:37:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":62,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":59,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14,"src":"1400:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":60,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1413:6:0","memberName":"txType","nodeType":"MemberAccess","referencedDeclaration":3712,"src":"1400:19:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":61,"name":"EIP_1559_TX_TYPE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3710,"src":"1423:16:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"1400:39:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":70,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14,"src":"1527:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":71,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1540:6:0","memberName":"txType","nodeType":"MemberAccess","referencedDeclaration":3712,"src":"1527:19:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":72,"name":"EIP_2930_TX_TYPE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3706,"src":"1550:16:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"1527:39:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":85,"nodeType":"Block","src":"1650:54:0","statements":[{"expression":{"arguments":[{"hexValue":"556e737570706f727465642074782074797065","id":82,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1671:21:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_80e5a2b1dbea1a10c3ff9dc41a140aa31d17ca0d483cdc36909c7a2458049455","typeString":"literal_string \"Unsupported tx type\""},"value":"Unsupported tx type"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_80e5a2b1dbea1a10c3ff9dc41a140aa31d17ca0d483cdc36909c7a2458049455","typeString":"literal_string \"Unsupported tx type\""}],"id":81,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"1664:6:0","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":83,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1664:29:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84,"nodeType":"ExpressionStatement","src":"1664:29:0"}]},"id":86,"nodeType":"IfStatement","src":"1523:181:0","trueBody":{"id":80,"nodeType":"Block","src":"1568:76:0","statements":[{"expression":{"id":78,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74,"name":"txHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18,"src":"1582:6:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":76,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14,"src":"1620:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}],"id":75,"name":"encodeEIP2930TransactionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":628,"src":"1591:28:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Transaction_$3746_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct Transaction calldata) view returns (bytes32)"}},"id":77,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1591:42:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1582:51:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":79,"nodeType":"ExpressionStatement","src":"1582:51:0"}]}},"id":87,"nodeType":"IfStatement","src":"1396:308:0","trueBody":{"id":69,"nodeType":"Block","src":"1441:76:0","statements":[{"expression":{"id":67,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":63,"name":"txHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18,"src":"1455:6:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":65,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14,"src":"1493:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}],"id":64,"name":"encodeEIP1559TransactionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":904,"src":"1464:28:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Transaction_$3746_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct Transaction calldata) view returns (bytes32)"}},"id":66,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1464:42:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1455:51:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":68,"nodeType":"ExpressionStatement","src":"1455:51:0"}]}},"id":88,"nodeType":"IfStatement","src":"1272:432:0","trueBody":{"id":58,"nodeType":"Block","src":"1315:75:0","statements":[{"expression":{"id":56,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52,"name":"txHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18,"src":"1329:6:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":54,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14,"src":"1366:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}],"id":53,"name":"encodeLegacyTransactionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":361,"src":"1338:27:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Transaction_$3746_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct Transaction calldata) view returns (bytes32)"}},"id":55,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1338:41:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1329:50:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":57,"nodeType":"ExpressionStatement","src":"1329:50:0"}]}},"id":89,"nodeType":"IfStatement","src":"1105:599:0","trueBody":{"id":47,"nodeType":"Block","src":"1149:117:0","statements":[{"expression":{"id":45,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":32,"name":"txHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18,"src":"1163:6:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":37,"name":"signedTxHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20,"src":"1195:12:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"expression":{"id":40,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14,"src":"1230:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":41,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1243:9:0","memberName":"signature","nodeType":"MemberAccess","referencedDeclaration":3738,"src":"1230:22:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":38,"name":"EfficientCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2170,"src":"1209:13:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EfficientCall_$2170_$","typeString":"type(library EfficientCall)"}},"id":39,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1223:6:0","memberName":"keccak","nodeType":"MemberAccess","referencedDeclaration":1743,"src":"1209:20:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (bytes calldata) view returns (bytes32)"}},"id":42,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1209:44:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":35,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1182:5:0","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":34,"name":"bytes","nodeType":"ElementaryTypeName","src":"1182:5:0","typeDescriptions":{}}},"id":36,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1188:6:0","memberName":"concat","nodeType":"MemberAccess","src":"1182:12:0","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":43,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1182:72:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":33,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1172:9:0","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":44,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1172:83:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1163:92:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":46,"nodeType":"ExpressionStatement","src":"1163:92:0"}]}}]},"documentation":{"id":11,"nodeType":"StructuredDocumentation","src":"468:423:0","text":"@notice Calculates the canonical transaction hash and the recommended transaction hash.\n @param _transaction The transaction.\n @return txHash and signedTxHash of the transaction, i.e. the transaction hash to be used in the explorer and commits to all\n the fields of the transaction and the recommended hash to be signed for this transaction.\n @dev txHash must be unique for all transactions."},"functionSelector":"ebe4a3d7","id":91,"implemented":true,"kind":"function","modifiers":[],"name":"getTransactionHashes","nameLocation":"905:20:0","nodeType":"FunctionDefinition","overrides":{"id":16,"nodeType":"OverrideSpecifier","overrides":[],"src":"989:8:0"},"parameters":{"id":15,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14,"mutability":"mutable","name":"_transaction","nameLocation":"956:12:0","nodeType":"VariableDeclaration","scope":91,"src":"935:33:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction"},"typeName":{"id":13,"nodeType":"UserDefinedTypeName","pathNode":{"id":12,"name":"Transaction","nameLocations":["935:11:0"],"nodeType":"IdentifierPath","referencedDeclaration":3746,"src":"935:11:0"},"referencedDeclaration":3746,"src":"935:11:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_storage_ptr","typeString":"struct Transaction"}},"visibility":"internal"}],"src":"925:49:0"},"returnParameters":{"id":21,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18,"mutability":"mutable","name":"txHash","nameLocation":"1015:6:0","nodeType":"VariableDeclaration","scope":91,"src":"1007:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1007:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":20,"mutability":"mutable","name":"signedTxHash","nameLocation":"1031:12:0","nodeType":"VariableDeclaration","scope":91,"src":"1023:20:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1023:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1006:38:0"},"scope":905,"src":"896:814:0","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":360,"nodeType":"Block","src":"1993:3909:0","statements":[{"assignments":[101],"declarations":[{"constant":false,"id":101,"mutability":"mutable","name":"encodedNonce","nameLocation":"2411:12:0","nodeType":"VariableDeclaration","scope":360,"src":"2398:25:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":100,"name":"bytes","nodeType":"ElementaryTypeName","src":"2398:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":107,"initialValue":{"arguments":[{"expression":{"id":104,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":95,"src":"2451:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2464:5:0","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":3728,"src":"2451:18:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":102,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"2426:10:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":103,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2437:13:0","memberName":"encodeUint256","nodeType":"MemberAccess","referencedDeclaration":2286,"src":"2426:24:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":106,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2426:44:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"2398:72:0"},{"assignments":[109],"declarations":[{"constant":false,"id":109,"mutability":"mutable","name":"encodedGasParam","nameLocation":"2581:15:0","nodeType":"VariableDeclaration","scope":360,"src":"2568:28:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":108,"name":"bytes","nodeType":"ElementaryTypeName","src":"2568:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":110,"nodeType":"VariableDeclarationStatement","src":"2568:28:0"},{"id":136,"nodeType":"Block","src":"2606:277:0","statements":[{"assignments":[112],"declarations":[{"constant":false,"id":112,"mutability":"mutable","name":"encodedGasPrice","nameLocation":"2633:15:0","nodeType":"VariableDeclaration","scope":136,"src":"2620:28:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":111,"name":"bytes","nodeType":"ElementaryTypeName","src":"2620:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":118,"initialValue":{"arguments":[{"expression":{"id":115,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":95,"src":"2676:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2689:12:0","memberName":"maxFeePerGas","nodeType":"MemberAccess","referencedDeclaration":3722,"src":"2676:25:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":113,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"2651:10:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2662:13:0","memberName":"encodeUint256","nodeType":"MemberAccess","referencedDeclaration":2286,"src":"2651:24:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":117,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2651:51:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"2620:82:0"},{"assignments":[120],"declarations":[{"constant":false,"id":120,"mutability":"mutable","name":"encodedGasLimit","nameLocation":"2729:15:0","nodeType":"VariableDeclaration","scope":136,"src":"2716:28:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":119,"name":"bytes","nodeType":"ElementaryTypeName","src":"2716:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":126,"initialValue":{"arguments":[{"expression":{"id":123,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":95,"src":"2772:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":124,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2785:8:0","memberName":"gasLimit","nodeType":"MemberAccess","referencedDeclaration":3718,"src":"2772:21:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":121,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"2747:10:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2758:13:0","memberName":"encodeUint256","nodeType":"MemberAccess","referencedDeclaration":2286,"src":"2747:24:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":125,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2747:47:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"2716:78:0"},{"expression":{"id":134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":127,"name":"encodedGasParam","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109,"src":"2808:15:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":131,"name":"encodedGasPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":112,"src":"2839:15:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":132,"name":"encodedGasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":120,"src":"2856:15:0","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":129,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2826:5:0","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":128,"name":"bytes","nodeType":"ElementaryTypeName","src":"2826:5:0","typeDescriptions":{}}},"id":130,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2832:6:0","memberName":"concat","nodeType":"MemberAccess","src":"2826:12:0","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":133,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2826:46:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"2808:64:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":135,"nodeType":"ExpressionStatement","src":"2808:64:0"}]},{"assignments":[138],"declarations":[{"constant":false,"id":138,"mutability":"mutable","name":"encodedTo","nameLocation":"2906:9:0","nodeType":"VariableDeclaration","scope":360,"src":"2893:22:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":137,"name":"bytes","nodeType":"ElementaryTypeName","src":"2893:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":150,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"expression":{"id":145,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":95,"src":"2959:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":146,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2972:2:0","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":3716,"src":"2959:15:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":144,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2951:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":143,"name":"uint160","nodeType":"ElementaryTypeName","src":"2951:7:0","typeDescriptions":{}}},"id":147,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2951:24:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":142,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2943:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":141,"name":"address","nodeType":"ElementaryTypeName","src":"2943:7:0","typeDescriptions":{}}},"id":148,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2943:33:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":139,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"2918:10:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2929:13:0","memberName":"encodeAddress","nodeType":"MemberAccess","referencedDeclaration":2195,"src":"2918:24:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_bytes_memory_ptr_$","typeString":"function (address) pure returns (bytes memory)"}},"id":149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2918:59:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"2893:84:0"},{"assignments":[152],"declarations":[{"constant":false,"id":152,"mutability":"mutable","name":"encodedValue","nameLocation":"3000:12:0","nodeType":"VariableDeclaration","scope":360,"src":"2987:25:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":151,"name":"bytes","nodeType":"ElementaryTypeName","src":"2987:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":158,"initialValue":{"arguments":[{"expression":{"id":155,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":95,"src":"3040:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3053:5:0","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":3730,"src":"3040:18:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":153,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"3015:10:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":154,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3026:13:0","memberName":"encodeUint256","nodeType":"MemberAccess","referencedDeclaration":2286,"src":"3015:24:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":157,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3015:44:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"2987:72:0"},{"assignments":[160],"declarations":[{"constant":false,"id":160,"mutability":"mutable","name":"encodedDataLength","nameLocation":"3248:17:0","nodeType":"VariableDeclaration","scope":360,"src":"3235:30:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":159,"name":"bytes","nodeType":"ElementaryTypeName","src":"3235:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":161,"nodeType":"VariableDeclarationStatement","src":"3235:30:0"},{"id":195,"nodeType":"Block","src":"3275:677:0","statements":[{"assignments":[163],"declarations":[{"constant":false,"id":163,"mutability":"mutable","name":"txDataLen","nameLocation":"3384:9:0","nodeType":"VariableDeclaration","scope":195,"src":"3377:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":162,"name":"uint64","nodeType":"ElementaryTypeName","src":"3377:6:0","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":170,"initialValue":{"arguments":[{"expression":{"expression":{"id":166,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":95,"src":"3403:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3416:4:0","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":3736,"src":"3403:17:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3421:6:0","memberName":"length","nodeType":"MemberAccess","src":"3403:24:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":165,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3396:6:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":164,"name":"uint64","nodeType":"ElementaryTypeName","src":"3396:6:0","typeDescriptions":{}}},"id":169,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3396:32:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"3377:51:0"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":171,"name":"txDataLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":163,"src":"3446:9:0","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"31","id":172,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3459:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3446:14:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"id":187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":182,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":95,"src":"3681:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3694:4:0","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":3736,"src":"3681:17:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":185,"indexExpression":{"hexValue":"30","id":184,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3699:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3681:20:0","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30783830","id":186,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3705:4:0","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"0x80"},"src":"3681:28:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":193,"nodeType":"IfStatement","src":"3677:206:0","trueBody":{"id":192,"nodeType":"Block","src":"3711:172:0","statements":[{"expression":{"id":190,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":188,"name":"encodedDataLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":160,"src":"3841:17:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"81","id":189,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"3861:7:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_1fed454f35701d8970ad2ac06907e973314989ab6eb948eda79c00e416c4bdeb","typeString":"literal_string hex\"81\""}},"src":"3841:27:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":191,"nodeType":"ExpressionStatement","src":"3841:27:0"}]}},"id":194,"nodeType":"IfStatement","src":"3442:441:0","trueBody":{"id":181,"nodeType":"Block","src":"3462:209:0","statements":[{"expression":{"id":179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":174,"name":"encodedDataLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":160,"src":"3591:17:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":177,"name":"txDataLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":163,"src":"3646:9:0","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":175,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"3611:10:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3622:23:0","memberName":"encodeNonSingleBytesLen","nodeType":"MemberAccess","referencedDeclaration":2306,"src":"3611:34:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint64_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint64) pure returns (bytes memory)"}},"id":178,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3611:45:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"3591:65:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":180,"nodeType":"ExpressionStatement","src":"3591:65:0"}]}}]},{"assignments":[197],"declarations":[{"constant":false,"id":197,"mutability":"mutable","name":"rEncoded","nameLocation":"3975:8:0","nodeType":"VariableDeclaration","scope":360,"src":"3962:21:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":196,"name":"bytes","nodeType":"ElementaryTypeName","src":"3962:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":198,"nodeType":"VariableDeclarationStatement","src":"3962:21:0"},{"id":220,"nodeType":"Block","src":"3993:141:0","statements":[{"assignments":[200],"declarations":[{"constant":false,"id":200,"mutability":"mutable","name":"rInt","nameLocation":"4015:4:0","nodeType":"VariableDeclaration","scope":220,"src":"4007:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":199,"name":"uint256","nodeType":"ElementaryTypeName","src":"4007:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":212,"initialValue":{"arguments":[{"arguments":[{"baseExpression":{"expression":{"id":205,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":95,"src":"4038:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4051:9:0","memberName":"signature","nodeType":"MemberAccess","referencedDeclaration":3738,"src":"4038:22:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"endExpression":{"hexValue":"3332","id":208,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4063:2:0","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"id":209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"4038:28:0","startExpression":{"hexValue":"30","id":207,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4061:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}],"id":204,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4030:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":203,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4030:7:0","typeDescriptions":{}}},"id":210,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4030:37:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":202,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4022:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":201,"name":"uint256","nodeType":"ElementaryTypeName","src":"4022:7:0","typeDescriptions":{}}},"id":211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4022:46:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4007:61:0"},{"expression":{"id":218,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":213,"name":"rEncoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":197,"src":"4082:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":216,"name":"rInt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":200,"src":"4118:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":214,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"4093:10:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":215,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4104:13:0","memberName":"encodeUint256","nodeType":"MemberAccess","referencedDeclaration":2286,"src":"4093:24:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":217,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4093:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"4082:41:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":219,"nodeType":"ExpressionStatement","src":"4082:41:0"}]},{"assignments":[222],"declarations":[{"constant":false,"id":222,"mutability":"mutable","name":"sEncoded","nameLocation":"4156:8:0","nodeType":"VariableDeclaration","scope":360,"src":"4143:21:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":221,"name":"bytes","nodeType":"ElementaryTypeName","src":"4143:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":223,"nodeType":"VariableDeclarationStatement","src":"4143:21:0"},{"id":245,"nodeType":"Block","src":"4174:142:0","statements":[{"assignments":[225],"declarations":[{"constant":false,"id":225,"mutability":"mutable","name":"sInt","nameLocation":"4196:4:0","nodeType":"VariableDeclaration","scope":245,"src":"4188:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":224,"name":"uint256","nodeType":"ElementaryTypeName","src":"4188:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":237,"initialValue":{"arguments":[{"arguments":[{"baseExpression":{"expression":{"id":230,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":95,"src":"4219:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4232:9:0","memberName":"signature","nodeType":"MemberAccess","referencedDeclaration":3738,"src":"4219:22:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"endExpression":{"hexValue":"3634","id":233,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4245:2:0","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"id":234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"4219:29:0","startExpression":{"hexValue":"3332","id":232,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4242:2:0","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}],"id":229,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4211:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":228,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4211:7:0","typeDescriptions":{}}},"id":235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4211:38:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":227,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4203:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":226,"name":"uint256","nodeType":"ElementaryTypeName","src":"4203:7:0","typeDescriptions":{}}},"id":236,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4203:47:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4188:62:0"},{"expression":{"id":243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":238,"name":"sEncoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":222,"src":"4264:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":241,"name":"sInt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":225,"src":"4300:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":239,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"4275:10:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4286:13:0","memberName":"encodeUint256","nodeType":"MemberAccess","referencedDeclaration":2286,"src":"4275:24:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":242,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4275:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"4264:41:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":244,"nodeType":"ExpressionStatement","src":"4264:41:0"}]},{"assignments":[247],"declarations":[{"constant":false,"id":247,"mutability":"mutable","name":"vEncoded","nameLocation":"4338:8:0","nodeType":"VariableDeclaration","scope":360,"src":"4325:21:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":246,"name":"bytes","nodeType":"ElementaryTypeName","src":"4325:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":248,"nodeType":"VariableDeclarationStatement","src":"4325:21:0"},{"id":297,"nodeType":"Block","src":"4356:514:0","statements":[{"assignments":[250],"declarations":[{"constant":false,"id":250,"mutability":"mutable","name":"vInt","nameLocation":"4378:4:0","nodeType":"VariableDeclaration","scope":297,"src":"4370:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":249,"name":"uint256","nodeType":"ElementaryTypeName","src":"4370:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":261,"initialValue":{"arguments":[{"arguments":[{"baseExpression":{"expression":{"id":255,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":95,"src":"4399:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4412:9:0","memberName":"signature","nodeType":"MemberAccess","referencedDeclaration":3738,"src":"4399:22:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":258,"indexExpression":{"hexValue":"3634","id":257,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4422:2:0","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4399:26:0","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"id":254,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4393:5:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":253,"name":"uint8","nodeType":"ElementaryTypeName","src":"4393:5:0","typeDescriptions":{}}},"id":259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4393:33:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":252,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4385:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":251,"name":"uint256","nodeType":"ElementaryTypeName","src":"4385:7:0","typeDescriptions":{}}},"id":260,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4385:42:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4370:57:0"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":263,"name":"vInt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":250,"src":"4449:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"3237","id":264,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4457:2:0","typeDescriptions":{"typeIdentifier":"t_rational_27_by_1","typeString":"int_const 27"},"value":"27"},"src":"4449:10:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":268,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":266,"name":"vInt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":250,"src":"4463:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"3238","id":267,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4471:2:0","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"28"},"src":"4463:10:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4449:24:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e76616c696420762076616c7565","id":270,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4475:17:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_f613e52df535beb210f5afa95458c6f7da3e398b02413e7c040934ce67cb08b2","typeString":"literal_string \"Invalid v value\""},"value":"Invalid v value"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f613e52df535beb210f5afa95458c6f7da3e398b02413e7c040934ce67cb08b2","typeString":"literal_string \"Invalid v value\""}],"id":262,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4441:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4441:52:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":272,"nodeType":"ExpressionStatement","src":"4441:52:0"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":278,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":273,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":95,"src":"4711:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4724:8:0","memberName":"reserved","nodeType":"MemberAccess","referencedDeclaration":3734,"src":"4711:21:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$4_calldata_ptr","typeString":"uint256[4] calldata"}},"id":276,"indexExpression":{"hexValue":"30","id":275,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4733:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4711:24:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":277,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4739:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4711:29:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":289,"nodeType":"IfStatement","src":"4707:97:0","trueBody":{"id":288,"nodeType":"Block","src":"4742:62:0","statements":[{"expression":{"id":286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":279,"name":"vInt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":250,"src":"4760:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"38","id":280,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4768:1:0","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":284,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":281,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"4772:5:0","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":282,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4778:7:0","memberName":"chainid","nodeType":"MemberAccess","src":"4772:13:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"32","id":283,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4788:1:0","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"4772:17:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4768:21:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4760:29:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":287,"nodeType":"ExpressionStatement","src":"4760:29:0"}]}},{"expression":{"id":295,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":290,"name":"vEncoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":247,"src":"4818:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":293,"name":"vInt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":250,"src":"4854:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":291,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"4829:10:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4840:13:0","memberName":"encodeUint256","nodeType":"MemberAccess","referencedDeclaration":2286,"src":"4829:24:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":294,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4829:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"4818:41:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":296,"nodeType":"ExpressionStatement","src":"4818:41:0"}]},{"assignments":[299],"declarations":[{"constant":false,"id":299,"mutability":"mutable","name":"encodedListLength","nameLocation":"4893:17:0","nodeType":"VariableDeclaration","scope":360,"src":"4880:30:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":298,"name":"bytes","nodeType":"ElementaryTypeName","src":"4880:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":300,"nodeType":"VariableDeclarationStatement","src":"4880:30:0"},{"id":341,"nodeType":"UncheckedBlock","src":"4920:532:0","statements":[{"assignments":[302],"declarations":[{"constant":false,"id":302,"mutability":"mutable","name":"listLength","nameLocation":"4952:10:0","nodeType":"VariableDeclaration","scope":341,"src":"4944:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":301,"name":"uint256","nodeType":"ElementaryTypeName","src":"4944:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":330,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":326,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":323,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":320,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":316,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":313,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":307,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":303,"name":"encodedNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":101,"src":"4965:12:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":304,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4978:6:0","memberName":"length","nodeType":"MemberAccess","src":"4965:19:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":305,"name":"encodedGasParam","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109,"src":"5003:15:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":306,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5019:6:0","memberName":"length","nodeType":"MemberAccess","src":"5003:22:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4965:60:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":308,"name":"encodedTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":138,"src":"5044:9:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":309,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5054:6:0","memberName":"length","nodeType":"MemberAccess","src":"5044:16:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4965:95:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":311,"name":"encodedValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":152,"src":"5079:12:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5092:6:0","memberName":"length","nodeType":"MemberAccess","src":"5079:19:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4965:133:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":314,"name":"encodedDataLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":160,"src":"5117:17:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5135:6:0","memberName":"length","nodeType":"MemberAccess","src":"5117:24:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4965:176:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"expression":{"id":317,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":95,"src":"5160:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5173:4:0","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":3736,"src":"5160:17:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":319,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5178:6:0","memberName":"length","nodeType":"MemberAccess","src":"5160:24:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4965:219:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":321,"name":"rEncoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":197,"src":"5203:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5212:6:0","memberName":"length","nodeType":"MemberAccess","src":"5203:15:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4965:253:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":324,"name":"sEncoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":222,"src":"5237:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":325,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5246:6:0","memberName":"length","nodeType":"MemberAccess","src":"5237:15:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4965:287:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":327,"name":"vEncoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":247,"src":"5271:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5280:6:0","memberName":"length","nodeType":"MemberAccess","src":"5271:15:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4965:321:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4944:342:0"},{"expression":{"id":339,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":331,"name":"encodedListLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":299,"src":"5377:17:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":336,"name":"listLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":302,"src":"5429:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":335,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5422:6:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":334,"name":"uint64","nodeType":"ElementaryTypeName","src":"5422:6:0","typeDescriptions":{}}},"id":337,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5422:18:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":332,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"5397:10:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5408:13:0","memberName":"encodeListLen","nodeType":"MemberAccess","referencedDeclaration":2320,"src":"5397:24:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint64_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint64) pure returns (bytes memory)"}},"id":338,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5397:44:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"5377:64:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":340,"nodeType":"ExpressionStatement","src":"5377:64:0"}]},{"expression":{"arguments":[{"arguments":[{"id":346,"name":"encodedListLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":299,"src":"5542:17:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":347,"name":"encodedNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":101,"src":"5581:12:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":348,"name":"encodedGasParam","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109,"src":"5615:15:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":349,"name":"encodedTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":138,"src":"5652:9:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":350,"name":"encodedValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":152,"src":"5683:12:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":351,"name":"encodedDataLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":160,"src":"5717:17:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"id":352,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":95,"src":"5756:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5769:4:0","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":3736,"src":"5756:17:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":354,"name":"vEncoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":247,"src":"5795:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":355,"name":"rEncoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":197,"src":"5825:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":356,"name":"sEncoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":222,"src":"5855:8:0","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"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":344,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5508:5:0","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":343,"name":"bytes","nodeType":"ElementaryTypeName","src":"5508:5:0","typeDescriptions":{}}},"id":345,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5514:6:0","memberName":"concat","nodeType":"MemberAccess","src":"5508:12:0","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5508:373:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":342,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5481:9:0","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":358,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5481:414:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":99,"id":359,"nodeType":"Return","src":"5462:433:0"}]},"documentation":{"id":92,"nodeType":"StructuredDocumentation","src":"1716:161:0","text":"@notice Calculates the hash for a legacy transaction.\n @param _transaction The legacy transaction.\n @return txHash The hash of the transaction."},"id":361,"implemented":true,"kind":"function","modifiers":[],"name":"encodeLegacyTransactionHash","nameLocation":"1891:27:0","nodeType":"FunctionDefinition","parameters":{"id":96,"nodeType":"ParameterList","parameters":[{"constant":false,"id":95,"mutability":"mutable","name":"_transaction","nameLocation":"1940:12:0","nodeType":"VariableDeclaration","scope":361,"src":"1919:33:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction"},"typeName":{"id":94,"nodeType":"UserDefinedTypeName","pathNode":{"id":93,"name":"Transaction","nameLocations":["1919:11:0"],"nodeType":"IdentifierPath","referencedDeclaration":3746,"src":"1919:11:0"},"referencedDeclaration":3746,"src":"1919:11:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_storage_ptr","typeString":"struct Transaction"}},"visibility":"internal"}],"src":"1918:35:0"},"returnParameters":{"id":99,"nodeType":"ParameterList","parameters":[{"constant":false,"id":98,"mutability":"mutable","name":"txHash","nameLocation":"1985:6:0","nodeType":"VariableDeclaration","scope":361,"src":"1977:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":97,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1977:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1976:16:0"},"scope":905,"src":"1882:4020:0","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":627,"nodeType":"Block","src":"6182:3558:0","statements":[{"assignments":[371],"declarations":[{"constant":false,"id":371,"mutability":"mutable","name":"encodedFixedLengthParams","nameLocation":"6279:24:0","nodeType":"VariableDeclaration","scope":627,"src":"6266:37:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":370,"name":"bytes","nodeType":"ElementaryTypeName","src":"6266:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":372,"nodeType":"VariableDeclarationStatement","src":"6266:37:0"},{"id":440,"nodeType":"Block","src":"6313:804:0","statements":[{"assignments":[374],"declarations":[{"constant":false,"id":374,"mutability":"mutable","name":"encodedChainId","nameLocation":"6340:14:0","nodeType":"VariableDeclaration","scope":440,"src":"6327:27:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":373,"name":"bytes","nodeType":"ElementaryTypeName","src":"6327:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":380,"initialValue":{"arguments":[{"expression":{"id":377,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"6382:5:0","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6388:7:0","memberName":"chainid","nodeType":"MemberAccess","src":"6382:13:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":375,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"6357:10:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6368:13:0","memberName":"encodeUint256","nodeType":"MemberAccess","referencedDeclaration":2286,"src":"6357:24:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6357:39:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"6327:69:0"},{"assignments":[382],"declarations":[{"constant":false,"id":382,"mutability":"mutable","name":"encodedNonce","nameLocation":"6423:12:0","nodeType":"VariableDeclaration","scope":440,"src":"6410:25:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":381,"name":"bytes","nodeType":"ElementaryTypeName","src":"6410:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":388,"initialValue":{"arguments":[{"expression":{"id":385,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":365,"src":"6463:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":386,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6476:5:0","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":3728,"src":"6463:18:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":383,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"6438:10:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":384,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6449:13:0","memberName":"encodeUint256","nodeType":"MemberAccess","referencedDeclaration":2286,"src":"6438:24:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":387,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6438:44:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"6410:72:0"},{"assignments":[390],"declarations":[{"constant":false,"id":390,"mutability":"mutable","name":"encodedGasPrice","nameLocation":"6509:15:0","nodeType":"VariableDeclaration","scope":440,"src":"6496:28:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":389,"name":"bytes","nodeType":"ElementaryTypeName","src":"6496:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":396,"initialValue":{"arguments":[{"expression":{"id":393,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":365,"src":"6552:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6565:12:0","memberName":"maxFeePerGas","nodeType":"MemberAccess","referencedDeclaration":3722,"src":"6552:25:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":391,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"6527:10:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6538:13:0","memberName":"encodeUint256","nodeType":"MemberAccess","referencedDeclaration":2286,"src":"6527:24:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":395,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6527:51:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"6496:82:0"},{"assignments":[398],"declarations":[{"constant":false,"id":398,"mutability":"mutable","name":"encodedGasLimit","nameLocation":"6605:15:0","nodeType":"VariableDeclaration","scope":440,"src":"6592:28:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":397,"name":"bytes","nodeType":"ElementaryTypeName","src":"6592:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":404,"initialValue":{"arguments":[{"expression":{"id":401,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":365,"src":"6648:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6661:8:0","memberName":"gasLimit","nodeType":"MemberAccess","referencedDeclaration":3718,"src":"6648:21:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":399,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"6623:10:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6634:13:0","memberName":"encodeUint256","nodeType":"MemberAccess","referencedDeclaration":2286,"src":"6623:24:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6623:47:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"6592:78:0"},{"assignments":[406],"declarations":[{"constant":false,"id":406,"mutability":"mutable","name":"encodedTo","nameLocation":"6697:9:0","nodeType":"VariableDeclaration","scope":440,"src":"6684:22:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":405,"name":"bytes","nodeType":"ElementaryTypeName","src":"6684:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":418,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"expression":{"id":413,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":365,"src":"6750:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6763:2:0","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":3716,"src":"6750:15:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":412,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6742:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":411,"name":"uint160","nodeType":"ElementaryTypeName","src":"6742:7:0","typeDescriptions":{}}},"id":415,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6742:24:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":410,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6734:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":409,"name":"address","nodeType":"ElementaryTypeName","src":"6734:7:0","typeDescriptions":{}}},"id":416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6734:33:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":407,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"6709:10:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":408,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6720:13:0","memberName":"encodeAddress","nodeType":"MemberAccess","referencedDeclaration":2195,"src":"6709:24:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_bytes_memory_ptr_$","typeString":"function (address) pure returns (bytes memory)"}},"id":417,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6709:59:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"6684:84:0"},{"assignments":[420],"declarations":[{"constant":false,"id":420,"mutability":"mutable","name":"encodedValue","nameLocation":"6795:12:0","nodeType":"VariableDeclaration","scope":440,"src":"6782:25:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":419,"name":"bytes","nodeType":"ElementaryTypeName","src":"6782:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":426,"initialValue":{"arguments":[{"expression":{"id":423,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":365,"src":"6835:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6848:5:0","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":3730,"src":"6835:18:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":421,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"6810:10:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6821:13:0","memberName":"encodeUint256","nodeType":"MemberAccess","referencedDeclaration":2286,"src":"6810:24:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6810:44:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"6782:72:0"},{"expression":{"id":438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":427,"name":"encodedFixedLengthParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":371,"src":"6868:24:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":431,"name":"encodedChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":374,"src":"6925:14:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":432,"name":"encodedNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":382,"src":"6957:12:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":433,"name":"encodedGasPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":390,"src":"6987:15:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":434,"name":"encodedGasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":398,"src":"7020:15:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":435,"name":"encodedTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":406,"src":"7053:9:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":436,"name":"encodedValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":420,"src":"7080:12:0","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"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":429,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6895:5:0","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":428,"name":"bytes","nodeType":"ElementaryTypeName","src":"6895:5:0","typeDescriptions":{}}},"id":430,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6901:6:0","memberName":"concat","nodeType":"MemberAccess","src":"6895:12:0","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6895:211:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"6868:238:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":439,"nodeType":"ExpressionStatement","src":"6868:238:0"}]},{"assignments":[442],"declarations":[{"constant":false,"id":442,"mutability":"mutable","name":"encodedDataLength","nameLocation":"7306:17:0","nodeType":"VariableDeclaration","scope":627,"src":"7293:30:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":441,"name":"bytes","nodeType":"ElementaryTypeName","src":"7293:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":443,"nodeType":"VariableDeclarationStatement","src":"7293:30:0"},{"id":477,"nodeType":"Block","src":"7333:677:0","statements":[{"assignments":[445],"declarations":[{"constant":false,"id":445,"mutability":"mutable","name":"txDataLen","nameLocation":"7442:9:0","nodeType":"VariableDeclaration","scope":477,"src":"7435:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":444,"name":"uint64","nodeType":"ElementaryTypeName","src":"7435:6:0","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":452,"initialValue":{"arguments":[{"expression":{"expression":{"id":448,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":365,"src":"7461:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7474:4:0","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":3736,"src":"7461:17:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7479:6:0","memberName":"length","nodeType":"MemberAccess","src":"7461:24:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":447,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7454:6:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":446,"name":"uint64","nodeType":"ElementaryTypeName","src":"7454:6:0","typeDescriptions":{}}},"id":451,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7454:32:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"7435:51:0"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":453,"name":"txDataLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":445,"src":"7504:9:0","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"31","id":454,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7517:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7504:14:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"id":469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":464,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":365,"src":"7739:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7752:4:0","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":3736,"src":"7739:17:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":467,"indexExpression":{"hexValue":"30","id":466,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7757:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7739:20:0","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30783830","id":468,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7763:4:0","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"0x80"},"src":"7739:28:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":475,"nodeType":"IfStatement","src":"7735:206:0","trueBody":{"id":474,"nodeType":"Block","src":"7769:172:0","statements":[{"expression":{"id":472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":470,"name":"encodedDataLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":442,"src":"7899:17:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"81","id":471,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"7919:7:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_1fed454f35701d8970ad2ac06907e973314989ab6eb948eda79c00e416c4bdeb","typeString":"literal_string hex\"81\""}},"src":"7899:27:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":473,"nodeType":"ExpressionStatement","src":"7899:27:0"}]}},"id":476,"nodeType":"IfStatement","src":"7500:441:0","trueBody":{"id":463,"nodeType":"Block","src":"7520:209:0","statements":[{"expression":{"id":461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":456,"name":"encodedDataLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":442,"src":"7649:17:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":459,"name":"txDataLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":445,"src":"7704:9:0","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":457,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"7669:10:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":458,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7680:23:0","memberName":"encodeNonSingleBytesLen","nodeType":"MemberAccess","referencedDeclaration":2306,"src":"7669:34:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint64_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint64) pure returns (bytes memory)"}},"id":460,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7669:45:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"7649:65:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":462,"nodeType":"ExpressionStatement","src":"7649:65:0"}]}}]},{"assignments":[479],"declarations":[{"constant":false,"id":479,"mutability":"mutable","name":"encodedAccessListLength","nameLocation":"8111:23:0","nodeType":"VariableDeclaration","scope":627,"src":"8098:36:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":478,"name":"bytes","nodeType":"ElementaryTypeName","src":"8098:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":484,"initialValue":{"arguments":[{"hexValue":"30","id":482,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8162:1:0","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"}],"expression":{"id":480,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"8137:10:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":481,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8148:13:0","memberName":"encodeListLen","nodeType":"MemberAccess","referencedDeclaration":2320,"src":"8137:24:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint64_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint64) pure returns (bytes memory)"}},"id":483,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8137:27:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"8098:66:0"},{"assignments":[486],"declarations":[{"constant":false,"id":486,"mutability":"mutable","name":"rEncoded","nameLocation":"8188:8:0","nodeType":"VariableDeclaration","scope":627,"src":"8175:21:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":485,"name":"bytes","nodeType":"ElementaryTypeName","src":"8175:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":487,"nodeType":"VariableDeclarationStatement","src":"8175:21:0"},{"id":509,"nodeType":"Block","src":"8206:141:0","statements":[{"assignments":[489],"declarations":[{"constant":false,"id":489,"mutability":"mutable","name":"rInt","nameLocation":"8228:4:0","nodeType":"VariableDeclaration","scope":509,"src":"8220:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":488,"name":"uint256","nodeType":"ElementaryTypeName","src":"8220:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":501,"initialValue":{"arguments":[{"arguments":[{"baseExpression":{"expression":{"id":494,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":365,"src":"8251:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8264:9:0","memberName":"signature","nodeType":"MemberAccess","referencedDeclaration":3738,"src":"8251:22:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"endExpression":{"hexValue":"3332","id":497,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8276:2:0","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"id":498,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"8251:28:0","startExpression":{"hexValue":"30","id":496,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8274:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}],"id":493,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8243:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":492,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8243:7:0","typeDescriptions":{}}},"id":499,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8243:37:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":491,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8235:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":490,"name":"uint256","nodeType":"ElementaryTypeName","src":"8235:7:0","typeDescriptions":{}}},"id":500,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8235:46:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8220:61:0"},{"expression":{"id":507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":502,"name":"rEncoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":486,"src":"8295:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":505,"name":"rInt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":489,"src":"8331:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":503,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"8306:10:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8317:13:0","memberName":"encodeUint256","nodeType":"MemberAccess","referencedDeclaration":2286,"src":"8306:24:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":506,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8306:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"8295:41:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":508,"nodeType":"ExpressionStatement","src":"8295:41:0"}]},{"assignments":[511],"declarations":[{"constant":false,"id":511,"mutability":"mutable","name":"sEncoded","nameLocation":"8369:8:0","nodeType":"VariableDeclaration","scope":627,"src":"8356:21:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":510,"name":"bytes","nodeType":"ElementaryTypeName","src":"8356:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":512,"nodeType":"VariableDeclarationStatement","src":"8356:21:0"},{"id":534,"nodeType":"Block","src":"8387:142:0","statements":[{"assignments":[514],"declarations":[{"constant":false,"id":514,"mutability":"mutable","name":"sInt","nameLocation":"8409:4:0","nodeType":"VariableDeclaration","scope":534,"src":"8401:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":513,"name":"uint256","nodeType":"ElementaryTypeName","src":"8401:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":526,"initialValue":{"arguments":[{"arguments":[{"baseExpression":{"expression":{"id":519,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":365,"src":"8432:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8445:9:0","memberName":"signature","nodeType":"MemberAccess","referencedDeclaration":3738,"src":"8432:22:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"endExpression":{"hexValue":"3634","id":522,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8458:2:0","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"id":523,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"8432:29:0","startExpression":{"hexValue":"3332","id":521,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8455:2:0","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}],"id":518,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8424:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":517,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8424:7:0","typeDescriptions":{}}},"id":524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8424:38:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":516,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8416:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":515,"name":"uint256","nodeType":"ElementaryTypeName","src":"8416:7:0","typeDescriptions":{}}},"id":525,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8416:47:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8401:62:0"},{"expression":{"id":532,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":527,"name":"sEncoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":511,"src":"8477:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":530,"name":"sInt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":514,"src":"8513:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":528,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"8488:10:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8499:13:0","memberName":"encodeUint256","nodeType":"MemberAccess","referencedDeclaration":2286,"src":"8488:24:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":531,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8488:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"8477:41:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":533,"nodeType":"ExpressionStatement","src":"8477:41:0"}]},{"assignments":[536],"declarations":[{"constant":false,"id":536,"mutability":"mutable","name":"vEncoded","nameLocation":"8551:8:0","nodeType":"VariableDeclaration","scope":627,"src":"8538:21:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":535,"name":"bytes","nodeType":"ElementaryTypeName","src":"8538:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":537,"nodeType":"VariableDeclarationStatement","src":"8538:21:0"},{"id":571,"nodeType":"Block","src":"8569:209:0","statements":[{"assignments":[539],"declarations":[{"constant":false,"id":539,"mutability":"mutable","name":"vInt","nameLocation":"8591:4:0","nodeType":"VariableDeclaration","scope":571,"src":"8583:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":538,"name":"uint256","nodeType":"ElementaryTypeName","src":"8583:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":550,"initialValue":{"arguments":[{"arguments":[{"baseExpression":{"expression":{"id":544,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":365,"src":"8612:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":545,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8625:9:0","memberName":"signature","nodeType":"MemberAccess","referencedDeclaration":3738,"src":"8612:22:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":547,"indexExpression":{"hexValue":"3634","id":546,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8635:2:0","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8612:26:0","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"id":543,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8606:5:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":542,"name":"uint8","nodeType":"ElementaryTypeName","src":"8606:5:0","typeDescriptions":{}}},"id":548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8606:33:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":541,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8598:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":540,"name":"uint256","nodeType":"ElementaryTypeName","src":"8598:7:0","typeDescriptions":{}}},"id":549,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8598:42:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8583:57:0"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":558,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":552,"name":"vInt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":539,"src":"8662:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"3237","id":553,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8670:2:0","typeDescriptions":{"typeIdentifier":"t_rational_27_by_1","typeString":"int_const 27"},"value":"27"},"src":"8662:10:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":555,"name":"vInt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":539,"src":"8676:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"3238","id":556,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8684:2:0","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"28"},"src":"8676:10:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8662:24:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e76616c696420762076616c7565","id":559,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8688:17:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_f613e52df535beb210f5afa95458c6f7da3e398b02413e7c040934ce67cb08b2","typeString":"literal_string \"Invalid v value\""},"value":"Invalid v value"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f613e52df535beb210f5afa95458c6f7da3e398b02413e7c040934ce67cb08b2","typeString":"literal_string \"Invalid v value\""}],"id":551,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8654:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":560,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8654:52:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":561,"nodeType":"ExpressionStatement","src":"8654:52:0"},{"expression":{"id":569,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":562,"name":"vEncoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":536,"src":"8721:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":567,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":565,"name":"vInt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":539,"src":"8757:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"3237","id":566,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8764:2:0","typeDescriptions":{"typeIdentifier":"t_rational_27_by_1","typeString":"int_const 27"},"value":"27"},"src":"8757:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":563,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"8732:10:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":564,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8743:13:0","memberName":"encodeUint256","nodeType":"MemberAccess","referencedDeclaration":2286,"src":"8732:24:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":568,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8732:35:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"8721:46:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":570,"nodeType":"ExpressionStatement","src":"8721:46:0"}]},{"assignments":[573],"declarations":[{"constant":false,"id":573,"mutability":"mutable","name":"encodedListLength","nameLocation":"8801:17:0","nodeType":"VariableDeclaration","scope":627,"src":"8788:30:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":572,"name":"bytes","nodeType":"ElementaryTypeName","src":"8788:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":574,"nodeType":"VariableDeclarationStatement","src":"8788:30:0"},{"id":609,"nodeType":"UncheckedBlock","src":"8828:479:0","statements":[{"assignments":[576],"declarations":[{"constant":false,"id":576,"mutability":"mutable","name":"listLength","nameLocation":"8860:10:0","nodeType":"VariableDeclaration","scope":609,"src":"8852:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":575,"name":"uint256","nodeType":"ElementaryTypeName","src":"8852:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":598,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":591,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":588,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":581,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":577,"name":"encodedFixedLengthParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":371,"src":"8873:24:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":578,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8898:6:0","memberName":"length","nodeType":"MemberAccess","src":"8873:31:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":579,"name":"encodedDataLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":442,"src":"8923:17:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":580,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8941:6:0","memberName":"length","nodeType":"MemberAccess","src":"8923:24:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8873:74:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"expression":{"id":582,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":365,"src":"8966:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8979:4:0","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":3736,"src":"8966:17:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":584,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8984:6:0","memberName":"length","nodeType":"MemberAccess","src":"8966:24:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8873:117:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":586,"name":"encodedAccessListLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":479,"src":"9009:23:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9033:6:0","memberName":"length","nodeType":"MemberAccess","src":"9009:30:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8873:166:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":589,"name":"rEncoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":486,"src":"9058:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9067:6:0","memberName":"length","nodeType":"MemberAccess","src":"9058:15:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8873:200:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":592,"name":"sEncoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":511,"src":"9092:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":593,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9101:6:0","memberName":"length","nodeType":"MemberAccess","src":"9092:15:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8873:234:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":595,"name":"vEncoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":536,"src":"9126:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9135:6:0","memberName":"length","nodeType":"MemberAccess","src":"9126:15:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8873:268:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8852:289:0"},{"expression":{"id":607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":599,"name":"encodedListLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":573,"src":"9232:17:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":604,"name":"listLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":576,"src":"9284:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":603,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9277:6:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":602,"name":"uint64","nodeType":"ElementaryTypeName","src":"9277:6:0","typeDescriptions":{}}},"id":605,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9277:18:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":600,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"9252:10:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9263:13:0","memberName":"encodeListLen","nodeType":"MemberAccess","referencedDeclaration":2320,"src":"9252:24:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint64_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint64) pure returns (bytes memory)"}},"id":606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9252:44:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"9232:64:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":608,"nodeType":"ExpressionStatement","src":"9232:64:0"}]},{"expression":{"arguments":[{"arguments":[{"hexValue":"01","id":614,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9397:6:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_5fe7f977e71dba2ea1a68e21057beebb9be2ac30c6410aa38d4f3fbe41dcffd2","typeString":"literal_string hex\"01\""},"value":"\u0001"},{"id":615,"name":"encodedListLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":573,"src":"9425:17:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":616,"name":"encodedFixedLengthParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":371,"src":"9464:24:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":617,"name":"encodedDataLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":442,"src":"9510:17:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"id":618,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":365,"src":"9549:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":619,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9562:4:0","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":3736,"src":"9549:17:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":620,"name":"encodedAccessListLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":479,"src":"9588:23:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":621,"name":"vEncoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":536,"src":"9633:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":622,"name":"rEncoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":486,"src":"9663:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":623,"name":"sEncoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":511,"src":"9693:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5fe7f977e71dba2ea1a68e21057beebb9be2ac30c6410aa38d4f3fbe41dcffd2","typeString":"literal_string hex\"01\""},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":612,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9363:5:0","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":611,"name":"bytes","nodeType":"ElementaryTypeName","src":"9363:5:0","typeDescriptions":{}}},"id":613,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9369:6:0","memberName":"concat","nodeType":"MemberAccess","src":"9363:12:0","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9363:356:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":610,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"9336:9:0","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9336:397:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":369,"id":626,"nodeType":"Return","src":"9317:416:0"}]},"documentation":{"id":362,"nodeType":"StructuredDocumentation","src":"5908:164:0","text":"@notice Calculates the hash for an EIP2930 transaction.\n @param _transaction The EIP2930 transaction.\n @return txHash The hash of the transaction."},"id":628,"implemented":true,"kind":"function","modifiers":[],"name":"encodeEIP2930TransactionHash","nameLocation":"6086:28:0","nodeType":"FunctionDefinition","parameters":{"id":366,"nodeType":"ParameterList","parameters":[{"constant":false,"id":365,"mutability":"mutable","name":"_transaction","nameLocation":"6136:12:0","nodeType":"VariableDeclaration","scope":628,"src":"6115:33:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction"},"typeName":{"id":364,"nodeType":"UserDefinedTypeName","pathNode":{"id":363,"name":"Transaction","nameLocations":["6115:11:0"],"nodeType":"IdentifierPath","referencedDeclaration":3746,"src":"6115:11:0"},"referencedDeclaration":3746,"src":"6115:11:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_storage_ptr","typeString":"struct Transaction"}},"visibility":"internal"}],"src":"6114:35:0"},"returnParameters":{"id":369,"nodeType":"ParameterList","parameters":[{"constant":false,"id":368,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":628,"src":"6173:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":367,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6173:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6172:9:0"},"scope":905,"src":"6077:3663:0","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":903,"nodeType":"Block","src":"10019:3882:0","statements":[{"assignments":[638],"declarations":[{"constant":false,"id":638,"mutability":"mutable","name":"encodedFixedLengthParams","nameLocation":"10271:24:0","nodeType":"VariableDeclaration","scope":903,"src":"10258:37:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":637,"name":"bytes","nodeType":"ElementaryTypeName","src":"10258:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":639,"nodeType":"VariableDeclarationStatement","src":"10258:37:0"},{"id":716,"nodeType":"Block","src":"10305:973:0","statements":[{"assignments":[641],"declarations":[{"constant":false,"id":641,"mutability":"mutable","name":"encodedChainId","nameLocation":"10332:14:0","nodeType":"VariableDeclaration","scope":716,"src":"10319:27:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":640,"name":"bytes","nodeType":"ElementaryTypeName","src":"10319:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":647,"initialValue":{"arguments":[{"expression":{"id":644,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"10374:5:0","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10380:7:0","memberName":"chainid","nodeType":"MemberAccess","src":"10374:13:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":642,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"10349:10:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":643,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10360:13:0","memberName":"encodeUint256","nodeType":"MemberAccess","referencedDeclaration":2286,"src":"10349:24:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":646,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10349:39:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"10319:69:0"},{"assignments":[649],"declarations":[{"constant":false,"id":649,"mutability":"mutable","name":"encodedNonce","nameLocation":"10415:12:0","nodeType":"VariableDeclaration","scope":716,"src":"10402:25:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":648,"name":"bytes","nodeType":"ElementaryTypeName","src":"10402:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":655,"initialValue":{"arguments":[{"expression":{"id":652,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":632,"src":"10455:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10468:5:0","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":3728,"src":"10455:18:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":650,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"10430:10:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":651,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10441:13:0","memberName":"encodeUint256","nodeType":"MemberAccess","referencedDeclaration":2286,"src":"10430:24:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":654,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10430:44:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"10402:72:0"},{"assignments":[657],"declarations":[{"constant":false,"id":657,"mutability":"mutable","name":"encodedMaxPriorityFeePerGas","nameLocation":"10501:27:0","nodeType":"VariableDeclaration","scope":716,"src":"10488:40:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":656,"name":"bytes","nodeType":"ElementaryTypeName","src":"10488:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":663,"initialValue":{"arguments":[{"expression":{"id":660,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":632,"src":"10556:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":661,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10569:20:0","memberName":"maxPriorityFeePerGas","nodeType":"MemberAccess","referencedDeclaration":3724,"src":"10556:33:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":658,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"10531:10:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10542:13:0","memberName":"encodeUint256","nodeType":"MemberAccess","referencedDeclaration":2286,"src":"10531:24:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":662,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10531:59:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"10488:102:0"},{"assignments":[665],"declarations":[{"constant":false,"id":665,"mutability":"mutable","name":"encodedMaxFeePerGas","nameLocation":"10617:19:0","nodeType":"VariableDeclaration","scope":716,"src":"10604:32:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":664,"name":"bytes","nodeType":"ElementaryTypeName","src":"10604:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":671,"initialValue":{"arguments":[{"expression":{"id":668,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":632,"src":"10664:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10677:12:0","memberName":"maxFeePerGas","nodeType":"MemberAccess","referencedDeclaration":3722,"src":"10664:25:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":666,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"10639:10:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":667,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10650:13:0","memberName":"encodeUint256","nodeType":"MemberAccess","referencedDeclaration":2286,"src":"10639:24:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":670,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10639:51:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"10604:86:0"},{"assignments":[673],"declarations":[{"constant":false,"id":673,"mutability":"mutable","name":"encodedGasLimit","nameLocation":"10717:15:0","nodeType":"VariableDeclaration","scope":716,"src":"10704:28:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":672,"name":"bytes","nodeType":"ElementaryTypeName","src":"10704:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":679,"initialValue":{"arguments":[{"expression":{"id":676,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":632,"src":"10760:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10773:8:0","memberName":"gasLimit","nodeType":"MemberAccess","referencedDeclaration":3718,"src":"10760:21:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":674,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"10735:10:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10746:13:0","memberName":"encodeUint256","nodeType":"MemberAccess","referencedDeclaration":2286,"src":"10735:24:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":678,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10735:47:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"10704:78:0"},{"assignments":[681],"declarations":[{"constant":false,"id":681,"mutability":"mutable","name":"encodedTo","nameLocation":"10809:9:0","nodeType":"VariableDeclaration","scope":716,"src":"10796:22:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":680,"name":"bytes","nodeType":"ElementaryTypeName","src":"10796:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":693,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"expression":{"id":688,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":632,"src":"10862:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":689,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10875:2:0","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":3716,"src":"10862:15:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":687,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10854:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":686,"name":"uint160","nodeType":"ElementaryTypeName","src":"10854:7:0","typeDescriptions":{}}},"id":690,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10854:24:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":685,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10846:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":684,"name":"address","nodeType":"ElementaryTypeName","src":"10846:7:0","typeDescriptions":{}}},"id":691,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10846:33:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":682,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"10821:10:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":683,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10832:13:0","memberName":"encodeAddress","nodeType":"MemberAccess","referencedDeclaration":2195,"src":"10821:24:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_bytes_memory_ptr_$","typeString":"function (address) pure returns (bytes memory)"}},"id":692,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10821:59:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"10796:84:0"},{"assignments":[695],"declarations":[{"constant":false,"id":695,"mutability":"mutable","name":"encodedValue","nameLocation":"10907:12:0","nodeType":"VariableDeclaration","scope":716,"src":"10894:25:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":694,"name":"bytes","nodeType":"ElementaryTypeName","src":"10894:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":701,"initialValue":{"arguments":[{"expression":{"id":698,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":632,"src":"10947:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":699,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10960:5:0","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":3730,"src":"10947:18:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":696,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"10922:10:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":697,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10933:13:0","memberName":"encodeUint256","nodeType":"MemberAccess","referencedDeclaration":2286,"src":"10922:24:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":700,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10922:44:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"10894:72:0"},{"expression":{"id":714,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":702,"name":"encodedFixedLengthParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":638,"src":"10980:24:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":706,"name":"encodedChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":641,"src":"11037:14:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":707,"name":"encodedNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":649,"src":"11069:12:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":708,"name":"encodedMaxPriorityFeePerGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":657,"src":"11099:27:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":709,"name":"encodedMaxFeePerGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":665,"src":"11144:19:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":710,"name":"encodedGasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":673,"src":"11181:15:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":711,"name":"encodedTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":681,"src":"11214:9:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":712,"name":"encodedValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":695,"src":"11241:12:0","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"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":704,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11007:5:0","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":703,"name":"bytes","nodeType":"ElementaryTypeName","src":"11007:5:0","typeDescriptions":{}}},"id":705,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11013:6:0","memberName":"concat","nodeType":"MemberAccess","src":"11007:12:0","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":713,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11007:260:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"10980:287:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":715,"nodeType":"ExpressionStatement","src":"10980:287:0"}]},{"assignments":[718],"declarations":[{"constant":false,"id":718,"mutability":"mutable","name":"encodedDataLength","nameLocation":"11467:17:0","nodeType":"VariableDeclaration","scope":903,"src":"11454:30:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":717,"name":"bytes","nodeType":"ElementaryTypeName","src":"11454:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":719,"nodeType":"VariableDeclarationStatement","src":"11454:30:0"},{"id":753,"nodeType":"Block","src":"11494:677:0","statements":[{"assignments":[721],"declarations":[{"constant":false,"id":721,"mutability":"mutable","name":"txDataLen","nameLocation":"11603:9:0","nodeType":"VariableDeclaration","scope":753,"src":"11596:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":720,"name":"uint64","nodeType":"ElementaryTypeName","src":"11596:6:0","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":728,"initialValue":{"arguments":[{"expression":{"expression":{"id":724,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":632,"src":"11622:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11635:4:0","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":3736,"src":"11622:17:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":726,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11640:6:0","memberName":"length","nodeType":"MemberAccess","src":"11622:24:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":723,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11615:6:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":722,"name":"uint64","nodeType":"ElementaryTypeName","src":"11615:6:0","typeDescriptions":{}}},"id":727,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11615:32:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"11596:51:0"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":729,"name":"txDataLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":721,"src":"11665:9:0","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"31","id":730,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11678:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"11665:14:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"id":745,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":740,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":632,"src":"11900:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11913:4:0","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":3736,"src":"11900:17:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":743,"indexExpression":{"hexValue":"30","id":742,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11918:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11900:20:0","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30783830","id":744,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11924:4:0","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"0x80"},"src":"11900:28:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":751,"nodeType":"IfStatement","src":"11896:206:0","trueBody":{"id":750,"nodeType":"Block","src":"11930:172:0","statements":[{"expression":{"id":748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":746,"name":"encodedDataLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":718,"src":"12060:17:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"81","id":747,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"12080:7:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_1fed454f35701d8970ad2ac06907e973314989ab6eb948eda79c00e416c4bdeb","typeString":"literal_string hex\"81\""}},"src":"12060:27:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":749,"nodeType":"ExpressionStatement","src":"12060:27:0"}]}},"id":752,"nodeType":"IfStatement","src":"11661:441:0","trueBody":{"id":739,"nodeType":"Block","src":"11681:209:0","statements":[{"expression":{"id":737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":732,"name":"encodedDataLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":718,"src":"11810:17:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":735,"name":"txDataLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":721,"src":"11865:9:0","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":733,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"11830:10:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11841:23:0","memberName":"encodeNonSingleBytesLen","nodeType":"MemberAccess","referencedDeclaration":2306,"src":"11830:34:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint64_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint64) pure returns (bytes memory)"}},"id":736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11830:45:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"11810:65:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":738,"nodeType":"ExpressionStatement","src":"11810:65:0"}]}}]},{"assignments":[755],"declarations":[{"constant":false,"id":755,"mutability":"mutable","name":"encodedAccessListLength","nameLocation":"12272:23:0","nodeType":"VariableDeclaration","scope":903,"src":"12259:36:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":754,"name":"bytes","nodeType":"ElementaryTypeName","src":"12259:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":760,"initialValue":{"arguments":[{"hexValue":"30","id":758,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12323:1:0","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"}],"expression":{"id":756,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"12298:10:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":757,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12309:13:0","memberName":"encodeListLen","nodeType":"MemberAccess","referencedDeclaration":2320,"src":"12298:24:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint64_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint64) pure returns (bytes memory)"}},"id":759,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12298:27:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"12259:66:0"},{"assignments":[762],"declarations":[{"constant":false,"id":762,"mutability":"mutable","name":"rEncoded","nameLocation":"12349:8:0","nodeType":"VariableDeclaration","scope":903,"src":"12336:21:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":761,"name":"bytes","nodeType":"ElementaryTypeName","src":"12336:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":763,"nodeType":"VariableDeclarationStatement","src":"12336:21:0"},{"id":785,"nodeType":"Block","src":"12367:141:0","statements":[{"assignments":[765],"declarations":[{"constant":false,"id":765,"mutability":"mutable","name":"rInt","nameLocation":"12389:4:0","nodeType":"VariableDeclaration","scope":785,"src":"12381:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":764,"name":"uint256","nodeType":"ElementaryTypeName","src":"12381:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":777,"initialValue":{"arguments":[{"arguments":[{"baseExpression":{"expression":{"id":770,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":632,"src":"12412:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":771,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12425:9:0","memberName":"signature","nodeType":"MemberAccess","referencedDeclaration":3738,"src":"12412:22:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"endExpression":{"hexValue":"3332","id":773,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12437:2:0","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"id":774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"12412:28:0","startExpression":{"hexValue":"30","id":772,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12435:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}],"id":769,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12404:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":768,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12404:7:0","typeDescriptions":{}}},"id":775,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12404:37:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":767,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12396:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":766,"name":"uint256","nodeType":"ElementaryTypeName","src":"12396:7:0","typeDescriptions":{}}},"id":776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12396:46:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"12381:61:0"},{"expression":{"id":783,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":778,"name":"rEncoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":762,"src":"12456:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":781,"name":"rInt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":765,"src":"12492:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":779,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"12467:10:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12478:13:0","memberName":"encodeUint256","nodeType":"MemberAccess","referencedDeclaration":2286,"src":"12467:24:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":782,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12467:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"12456:41:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":784,"nodeType":"ExpressionStatement","src":"12456:41:0"}]},{"assignments":[787],"declarations":[{"constant":false,"id":787,"mutability":"mutable","name":"sEncoded","nameLocation":"12530:8:0","nodeType":"VariableDeclaration","scope":903,"src":"12517:21:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":786,"name":"bytes","nodeType":"ElementaryTypeName","src":"12517:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":788,"nodeType":"VariableDeclarationStatement","src":"12517:21:0"},{"id":810,"nodeType":"Block","src":"12548:142:0","statements":[{"assignments":[790],"declarations":[{"constant":false,"id":790,"mutability":"mutable","name":"sInt","nameLocation":"12570:4:0","nodeType":"VariableDeclaration","scope":810,"src":"12562:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":789,"name":"uint256","nodeType":"ElementaryTypeName","src":"12562:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":802,"initialValue":{"arguments":[{"arguments":[{"baseExpression":{"expression":{"id":795,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":632,"src":"12593:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":796,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12606:9:0","memberName":"signature","nodeType":"MemberAccess","referencedDeclaration":3738,"src":"12593:22:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"endExpression":{"hexValue":"3634","id":798,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12619:2:0","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"id":799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"12593:29:0","startExpression":{"hexValue":"3332","id":797,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12616:2:0","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}],"id":794,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12585:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":793,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12585:7:0","typeDescriptions":{}}},"id":800,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12585:38:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":792,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12577:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":791,"name":"uint256","nodeType":"ElementaryTypeName","src":"12577:7:0","typeDescriptions":{}}},"id":801,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12577:47:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"12562:62:0"},{"expression":{"id":808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":803,"name":"sEncoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":787,"src":"12638:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":806,"name":"sInt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":790,"src":"12674:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":804,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"12649:10:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":805,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12660:13:0","memberName":"encodeUint256","nodeType":"MemberAccess","referencedDeclaration":2286,"src":"12649:24:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":807,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12649:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"12638:41:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":809,"nodeType":"ExpressionStatement","src":"12638:41:0"}]},{"assignments":[812],"declarations":[{"constant":false,"id":812,"mutability":"mutable","name":"vEncoded","nameLocation":"12712:8:0","nodeType":"VariableDeclaration","scope":903,"src":"12699:21:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":811,"name":"bytes","nodeType":"ElementaryTypeName","src":"12699:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":813,"nodeType":"VariableDeclarationStatement","src":"12699:21:0"},{"id":847,"nodeType":"Block","src":"12730:209:0","statements":[{"assignments":[815],"declarations":[{"constant":false,"id":815,"mutability":"mutable","name":"vInt","nameLocation":"12752:4:0","nodeType":"VariableDeclaration","scope":847,"src":"12744:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":814,"name":"uint256","nodeType":"ElementaryTypeName","src":"12744:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":826,"initialValue":{"arguments":[{"arguments":[{"baseExpression":{"expression":{"id":820,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":632,"src":"12773:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":821,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12786:9:0","memberName":"signature","nodeType":"MemberAccess","referencedDeclaration":3738,"src":"12773:22:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":823,"indexExpression":{"hexValue":"3634","id":822,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12796:2:0","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12773:26:0","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"id":819,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12767:5:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":818,"name":"uint8","nodeType":"ElementaryTypeName","src":"12767:5:0","typeDescriptions":{}}},"id":824,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12767:33:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":817,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12759:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":816,"name":"uint256","nodeType":"ElementaryTypeName","src":"12759:7:0","typeDescriptions":{}}},"id":825,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12759:42:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"12744:57:0"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":828,"name":"vInt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":815,"src":"12823:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"3237","id":829,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12831:2:0","typeDescriptions":{"typeIdentifier":"t_rational_27_by_1","typeString":"int_const 27"},"value":"27"},"src":"12823:10:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":831,"name":"vInt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":815,"src":"12837:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"3238","id":832,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12845:2:0","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"28"},"src":"12837:10:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"12823:24:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e76616c696420762076616c7565","id":835,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12849:17:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_f613e52df535beb210f5afa95458c6f7da3e398b02413e7c040934ce67cb08b2","typeString":"literal_string \"Invalid v value\""},"value":"Invalid v value"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f613e52df535beb210f5afa95458c6f7da3e398b02413e7c040934ce67cb08b2","typeString":"literal_string \"Invalid v value\""}],"id":827,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"12815:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12815:52:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":837,"nodeType":"ExpressionStatement","src":"12815:52:0"},{"expression":{"id":845,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":838,"name":"vEncoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":812,"src":"12882:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":843,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":841,"name":"vInt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":815,"src":"12918:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"3237","id":842,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12925:2:0","typeDescriptions":{"typeIdentifier":"t_rational_27_by_1","typeString":"int_const 27"},"value":"27"},"src":"12918:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":839,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"12893:10:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12904:13:0","memberName":"encodeUint256","nodeType":"MemberAccess","referencedDeclaration":2286,"src":"12893:24:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":844,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12893:35:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"12882:46:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":846,"nodeType":"ExpressionStatement","src":"12882:46:0"}]},{"assignments":[849],"declarations":[{"constant":false,"id":849,"mutability":"mutable","name":"encodedListLength","nameLocation":"12962:17:0","nodeType":"VariableDeclaration","scope":903,"src":"12949:30:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":848,"name":"bytes","nodeType":"ElementaryTypeName","src":"12949:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":850,"nodeType":"VariableDeclarationStatement","src":"12949:30:0"},{"id":885,"nodeType":"UncheckedBlock","src":"12989:479:0","statements":[{"assignments":[852],"declarations":[{"constant":false,"id":852,"mutability":"mutable","name":"listLength","nameLocation":"13021:10:0","nodeType":"VariableDeclaration","scope":885,"src":"13013:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":851,"name":"uint256","nodeType":"ElementaryTypeName","src":"13013:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":874,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":873,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":867,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":864,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":861,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":853,"name":"encodedFixedLengthParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":638,"src":"13034:24:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":854,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13059:6:0","memberName":"length","nodeType":"MemberAccess","src":"13034:31:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":855,"name":"encodedDataLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":718,"src":"13084:17:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13102:6:0","memberName":"length","nodeType":"MemberAccess","src":"13084:24:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13034:74:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"expression":{"id":858,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":632,"src":"13127:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":859,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13140:4:0","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":3736,"src":"13127:17:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13145:6:0","memberName":"length","nodeType":"MemberAccess","src":"13127:24:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13034:117:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":862,"name":"encodedAccessListLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":755,"src":"13170:23:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13194:6:0","memberName":"length","nodeType":"MemberAccess","src":"13170:30:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13034:166:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":865,"name":"rEncoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":762,"src":"13219:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":866,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13228:6:0","memberName":"length","nodeType":"MemberAccess","src":"13219:15:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13034:200:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":868,"name":"sEncoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":787,"src":"13253:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13262:6:0","memberName":"length","nodeType":"MemberAccess","src":"13253:15:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13034:234:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":871,"name":"vEncoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":812,"src":"13287:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13296:6:0","memberName":"length","nodeType":"MemberAccess","src":"13287:15:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13034:268:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13013:289:0"},{"expression":{"id":883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":875,"name":"encodedListLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":849,"src":"13393:17:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":880,"name":"listLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":852,"src":"13445:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":879,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13438:6:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":878,"name":"uint64","nodeType":"ElementaryTypeName","src":"13438:6:0","typeDescriptions":{}}},"id":881,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13438:18:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":876,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"13413:10:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13424:13:0","memberName":"encodeListLen","nodeType":"MemberAccess","referencedDeclaration":2320,"src":"13413:24:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint64_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint64) pure returns (bytes memory)"}},"id":882,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13413:44:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"13393:64:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":884,"nodeType":"ExpressionStatement","src":"13393:64:0"}]},{"expression":{"arguments":[{"arguments":[{"hexValue":"02","id":890,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13558:6:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_f2ee15ea639b73fa3db9b34a245bdfa015c260c598b211bf05a1ecc4b3e3b4f2","typeString":"literal_string hex\"02\""},"value":"\u0002"},{"id":891,"name":"encodedListLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":849,"src":"13586:17:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":892,"name":"encodedFixedLengthParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":638,"src":"13625:24:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":893,"name":"encodedDataLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":718,"src":"13671:17:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"id":894,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":632,"src":"13710:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":895,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13723:4:0","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":3736,"src":"13710:17:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":896,"name":"encodedAccessListLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":755,"src":"13749:23:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":897,"name":"vEncoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":812,"src":"13794:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":898,"name":"rEncoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":762,"src":"13824:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":899,"name":"sEncoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":787,"src":"13854:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f2ee15ea639b73fa3db9b34a245bdfa015c260c598b211bf05a1ecc4b3e3b4f2","typeString":"literal_string hex\"02\""},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":888,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13524:5:0","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":887,"name":"bytes","nodeType":"ElementaryTypeName","src":"13524:5:0","typeDescriptions":{}}},"id":889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13530:6:0","memberName":"concat","nodeType":"MemberAccess","src":"13524:12:0","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":900,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13524:356:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":886,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"13497:9:0","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":901,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13497:397:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":636,"id":902,"nodeType":"Return","src":"13478:416:0"}]},"documentation":{"id":629,"nodeType":"StructuredDocumentation","src":"9746:163:0","text":"@notice Calculates the hash for an EIP1559 transaction.\n @param _transaction The legacy transaction.\n @return txHash The hash of the transaction."},"id":904,"implemented":true,"kind":"function","modifiers":[],"name":"encodeEIP1559TransactionHash","nameLocation":"9923:28:0","nodeType":"FunctionDefinition","parameters":{"id":633,"nodeType":"ParameterList","parameters":[{"constant":false,"id":632,"mutability":"mutable","name":"_transaction","nameLocation":"9973:12:0","nodeType":"VariableDeclaration","scope":904,"src":"9952:33:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction"},"typeName":{"id":631,"nodeType":"UserDefinedTypeName","pathNode":{"id":630,"name":"Transaction","nameLocations":["9952:11:0"],"nodeType":"IdentifierPath","referencedDeclaration":3746,"src":"9952:11:0"},"referencedDeclaration":3746,"src":"9952:11:0","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_storage_ptr","typeString":"struct Transaction"}},"visibility":"internal"}],"src":"9951:35:0"},"returnParameters":{"id":636,"nodeType":"ParameterList","parameters":[{"constant":false,"id":635,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":904,"src":"10010:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":634,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10010:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"10009:9:0"},"scope":905,"src":"9914:3987:0","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":906,"src":"373:13530:0","usedErrors":[]}],"src":"33:13871:0"},"id":0},"@matterlabs/zksync-contracts/l2/system-contracts/Constants.sol":{"ast":{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/Constants.sol","exportedSymbols":{"ACCOUNT_CODE_STORAGE_SYSTEM_CONTRACT":[969],"BOOTLOADER_FORMAL_ADDRESS":[958],"BOOTLOADER_UTILITIES":[1084],"BYTECODE_COMPRESSOR_CONTRACT":[1103],"BootloaderUtilities":[905],"CREATE2_PREFIX":[1119],"CREATE_PREFIX":[1123],"CURRENT_MAX_PRECOMPILE_ADDRESS":[947],"DEPLOYER_SYSTEM_CONTRACT":[1013],"ECRECOVER_SYSTEM_CONTRACT":[931],"ETH_TOKEN_SYSTEM_CONTRACT":[1051],"EVENT_WRITER_CONTRACT":[1092],"FORCE_DEPLOYER":[1021],"IAccountCodeStorage":[1166],"IBytecodeCompressor":[1192],"IContractDeployer":[1327],"IEthToken":[1400],"IImmutableSimulator":[1426],"IKnownCodesStorage":[1459],"IL1Messenger":[1477],"IMMUTABLE_SIMULATOR_SYSTEM_CONTRACT":[1002],"INonceHolder":[1571],"ISystemContext":[1704],"ImmutableData":[1407],"KECCAK256_SYSTEM_CONTRACT":[1059],"KNOWN_CODE_STORAGE_CONTRACT":[991],"L1_MESSENGER_CONTRACT":[1032],"MAX_MSG_VALUE":[1115],"MAX_SYSTEM_CONTRACT_ADDRESS":[925],"MSG_VALUE_SIMULATOR_IS_SYSTEM_BIT":[1107],"MSG_VALUE_SYSTEM_CONTRACT":[1040],"NONCE_HOLDER_SYSTEM_CONTRACT":[980],"SHA256_SYSTEM_CONTRACT":[937],"SYSTEM_CONTEXT_CONTRACT":[1073],"SYSTEM_CONTRACTS_OFFSET":[921]},"id":1124,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":907,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"33:23:1"},{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IAccountCodeStorage.sol","file":"./interfaces/IAccountCodeStorage.sol","id":908,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1124,"sourceUnit":1167,"src":"58:46:1","symbolAliases":[],"unitAlias":""},{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/INonceHolder.sol","file":"./interfaces/INonceHolder.sol","id":909,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1124,"sourceUnit":1572,"src":"105:39:1","symbolAliases":[],"unitAlias":""},{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IContractDeployer.sol","file":"./interfaces/IContractDeployer.sol","id":910,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1124,"sourceUnit":1328,"src":"145:44:1","symbolAliases":[],"unitAlias":""},{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IKnownCodesStorage.sol","file":"./interfaces/IKnownCodesStorage.sol","id":911,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1124,"sourceUnit":1460,"src":"190:45:1","symbolAliases":[],"unitAlias":""},{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IImmutableSimulator.sol","file":"./interfaces/IImmutableSimulator.sol","id":912,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1124,"sourceUnit":1427,"src":"236:46:1","symbolAliases":[],"unitAlias":""},{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IEthToken.sol","file":"./interfaces/IEthToken.sol","id":913,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1124,"sourceUnit":1401,"src":"283:36:1","symbolAliases":[],"unitAlias":""},{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IL1Messenger.sol","file":"./interfaces/IL1Messenger.sol","id":914,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1124,"sourceUnit":1478,"src":"320:39:1","symbolAliases":[],"unitAlias":""},{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/ISystemContext.sol","file":"./interfaces/ISystemContext.sol","id":915,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1124,"sourceUnit":1705,"src":"360:41:1","symbolAliases":[],"unitAlias":""},{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBytecodeCompressor.sol","file":"./interfaces/IBytecodeCompressor.sol","id":916,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1124,"sourceUnit":1193,"src":"402:46:1","symbolAliases":[],"unitAlias":""},{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/BootloaderUtilities.sol","file":"./BootloaderUtilities.sol","id":917,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1124,"sourceUnit":906,"src":"449:35:1","symbolAliases":[],"unitAlias":""},{"constant":true,"id":921,"mutability":"constant","name":"SYSTEM_CONTRACTS_OFFSET","nameLocation":"656:23:1","nodeType":"VariableDeclaration","scope":1124,"src":"639:49:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"},"typeName":{"id":919,"name":"uint160","nodeType":"ElementaryTypeName","src":"639:7:1","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"value":{"hexValue":"307838303030","id":920,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"682:6:1","typeDescriptions":{"typeIdentifier":"t_rational_32768_by_1","typeString":"int_const 32768"},"value":"0x8000"},"visibility":"internal"},{"constant":true,"id":925,"mutability":"constant","name":"MAX_SYSTEM_CONTRACT_ADDRESS","nameLocation":"832:27:1","nodeType":"VariableDeclaration","scope":1124,"src":"815:53:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"},"typeName":{"id":923,"name":"uint160","nodeType":"ElementaryTypeName","src":"815:7:1","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"value":{"hexValue":"307866666666","id":924,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"862:6:1","typeDescriptions":{"typeIdentifier":"t_rational_65535_by_1","typeString":"int_const 65535"},"value":"0xffff"},"visibility":"internal"},{"constant":true,"id":931,"mutability":"constant","name":"ECRECOVER_SYSTEM_CONTRACT","nameLocation":"900:25:1","nodeType":"VariableDeclaration","scope":1124,"src":"883:58:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":926,"name":"address","nodeType":"ElementaryTypeName","src":"883:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"30783031","id":929,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"936:4:1","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":928,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"928:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":927,"name":"address","nodeType":"ElementaryTypeName","src":"928:7:1","typeDescriptions":{}}},"id":930,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"928:13:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":true,"id":937,"mutability":"constant","name":"SHA256_SYSTEM_CONTRACT","nameLocation":"960:22:1","nodeType":"VariableDeclaration","scope":1124,"src":"943:55:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":932,"name":"address","nodeType":"ElementaryTypeName","src":"943:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"30783032","id":935,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"993:4:1","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"0x02"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":934,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"985:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":933,"name":"address","nodeType":"ElementaryTypeName","src":"985:7:1","typeDescriptions":{}}},"id":936,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"985:13:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":true,"id":947,"mutability":"constant","name":"CURRENT_MAX_PRECOMPILE_ADDRESS","nameLocation":"1253:30:1","nodeType":"VariableDeclaration","scope":1124,"src":"1236:90:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":939,"name":"uint256","nodeType":"ElementaryTypeName","src":"1236:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"arguments":[{"arguments":[{"id":944,"name":"SHA256_SYSTEM_CONTRACT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":937,"src":"1302:22:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":943,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1294:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":942,"name":"uint160","nodeType":"ElementaryTypeName","src":"1294:7:1","typeDescriptions":{}}},"id":945,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1294:31:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":941,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1286:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":940,"name":"uint256","nodeType":"ElementaryTypeName","src":"1286:7:1","typeDescriptions":{}}},"id":946,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1286:40:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":true,"id":958,"mutability":"constant","name":"BOOTLOADER_FORMAL_ADDRESS","nameLocation":"1354:25:1","nodeType":"VariableDeclaration","scope":1124,"src":"1329:101:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":948,"name":"address","nodeType":"ElementaryTypeName","src":"1329:15:1","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"value":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint160","typeString":"uint160"},"id":955,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":953,"name":"SYSTEM_CONTRACTS_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":921,"src":"1398:23:1","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"30783031","id":954,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1424:4:1","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"0x01"},"src":"1398:30:1","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":952,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1390:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":951,"name":"address","nodeType":"ElementaryTypeName","src":"1390:7:1","typeDescriptions":{}}},"id":956,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1390:39:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":950,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1382:8:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":949,"name":"address","nodeType":"ElementaryTypeName","src":"1382:8:1","stateMutability":"payable","typeDescriptions":{}}},"id":957,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1382:48:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":true,"id":969,"mutability":"constant","name":"ACCOUNT_CODE_STORAGE_SYSTEM_CONTRACT","nameLocation":"1461:36:1","nodeType":"VariableDeclaration","scope":1124,"src":"1432:134:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IAccountCodeStorage_$1166","typeString":"contract IAccountCodeStorage"},"typeName":{"id":960,"nodeType":"UserDefinedTypeName","pathNode":{"id":959,"name":"IAccountCodeStorage","nameLocations":["1432:19:1"],"nodeType":"IdentifierPath","referencedDeclaration":1166,"src":"1432:19:1"},"referencedDeclaration":1166,"src":"1432:19:1","typeDescriptions":{"typeIdentifier":"t_contract$_IAccountCodeStorage_$1166","typeString":"contract IAccountCodeStorage"}},"value":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint160","typeString":"uint160"},"id":966,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":964,"name":"SYSTEM_CONTRACTS_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":921,"src":"1533:23:1","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"30783032","id":965,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1559:4:1","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"0x02"},"src":"1533:30:1","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":963,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1525:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":962,"name":"address","nodeType":"ElementaryTypeName","src":"1525:7:1","typeDescriptions":{}}},"id":967,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1525:39:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":961,"name":"IAccountCodeStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1166,"src":"1500:19:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAccountCodeStorage_$1166_$","typeString":"type(contract IAccountCodeStorage)"}},"id":968,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1500:66:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IAccountCodeStorage_$1166","typeString":"contract IAccountCodeStorage"}},"visibility":"internal"},{"constant":true,"id":980,"mutability":"constant","name":"NONCE_HOLDER_SYSTEM_CONTRACT","nameLocation":"1590:28:1","nodeType":"VariableDeclaration","scope":1124,"src":"1568:106:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_INonceHolder_$1571","typeString":"contract INonceHolder"},"typeName":{"id":971,"nodeType":"UserDefinedTypeName","pathNode":{"id":970,"name":"INonceHolder","nameLocations":["1568:12:1"],"nodeType":"IdentifierPath","referencedDeclaration":1571,"src":"1568:12:1"},"referencedDeclaration":1571,"src":"1568:12:1","typeDescriptions":{"typeIdentifier":"t_contract$_INonceHolder_$1571","typeString":"contract INonceHolder"}},"value":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint160","typeString":"uint160"},"id":977,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":975,"name":"SYSTEM_CONTRACTS_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":921,"src":"1642:23:1","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"30783033","id":976,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1668:4:1","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"0x03"},"src":"1642:30:1","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":974,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1634:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":973,"name":"address","nodeType":"ElementaryTypeName","src":"1634:7:1","typeDescriptions":{}}},"id":978,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1634:39:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":972,"name":"INonceHolder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1571,"src":"1621:12:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_INonceHolder_$1571_$","typeString":"type(contract INonceHolder)"}},"id":979,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1621:53:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_INonceHolder_$1571","typeString":"contract INonceHolder"}},"visibility":"internal"},{"constant":true,"id":991,"mutability":"constant","name":"KNOWN_CODE_STORAGE_CONTRACT","nameLocation":"1704:27:1","nodeType":"VariableDeclaration","scope":1124,"src":"1676:117:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IKnownCodesStorage_$1459","typeString":"contract IKnownCodesStorage"},"typeName":{"id":982,"nodeType":"UserDefinedTypeName","pathNode":{"id":981,"name":"IKnownCodesStorage","nameLocations":["1676:18:1"],"nodeType":"IdentifierPath","referencedDeclaration":1459,"src":"1676:18:1"},"referencedDeclaration":1459,"src":"1676:18:1","typeDescriptions":{"typeIdentifier":"t_contract$_IKnownCodesStorage_$1459","typeString":"contract IKnownCodesStorage"}},"value":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint160","typeString":"uint160"},"id":988,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":986,"name":"SYSTEM_CONTRACTS_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":921,"src":"1761:23:1","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"30783034","id":987,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1787:4:1","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"0x04"},"src":"1761:30:1","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":985,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1753:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":984,"name":"address","nodeType":"ElementaryTypeName","src":"1753:7:1","typeDescriptions":{}}},"id":989,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1753:39:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":983,"name":"IKnownCodesStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1459,"src":"1734:18:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IKnownCodesStorage_$1459_$","typeString":"type(contract IKnownCodesStorage)"}},"id":990,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1734:59:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IKnownCodesStorage_$1459","typeString":"contract IKnownCodesStorage"}},"visibility":"internal"},{"constant":true,"id":1002,"mutability":"constant","name":"IMMUTABLE_SIMULATOR_SYSTEM_CONTRACT","nameLocation":"1824:35:1","nodeType":"VariableDeclaration","scope":1124,"src":"1795:133:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IImmutableSimulator_$1426","typeString":"contract IImmutableSimulator"},"typeName":{"id":993,"nodeType":"UserDefinedTypeName","pathNode":{"id":992,"name":"IImmutableSimulator","nameLocations":["1795:19:1"],"nodeType":"IdentifierPath","referencedDeclaration":1426,"src":"1795:19:1"},"referencedDeclaration":1426,"src":"1795:19:1","typeDescriptions":{"typeIdentifier":"t_contract$_IImmutableSimulator_$1426","typeString":"contract IImmutableSimulator"}},"value":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint160","typeString":"uint160"},"id":999,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":997,"name":"SYSTEM_CONTRACTS_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":921,"src":"1895:23:1","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"30783035","id":998,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1921:4:1","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"0x05"},"src":"1895:30:1","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":996,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1887:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":995,"name":"address","nodeType":"ElementaryTypeName","src":"1887:7:1","typeDescriptions":{}}},"id":1000,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1887:39:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":994,"name":"IImmutableSimulator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1426,"src":"1862:19:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IImmutableSimulator_$1426_$","typeString":"type(contract IImmutableSimulator)"}},"id":1001,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1862:66:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IImmutableSimulator_$1426","typeString":"contract IImmutableSimulator"}},"visibility":"internal"},{"constant":true,"id":1013,"mutability":"constant","name":"DEPLOYER_SYSTEM_CONTRACT","nameLocation":"1957:24:1","nodeType":"VariableDeclaration","scope":1124,"src":"1930:112:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IContractDeployer_$1327","typeString":"contract IContractDeployer"},"typeName":{"id":1004,"nodeType":"UserDefinedTypeName","pathNode":{"id":1003,"name":"IContractDeployer","nameLocations":["1930:17:1"],"nodeType":"IdentifierPath","referencedDeclaration":1327,"src":"1930:17:1"},"referencedDeclaration":1327,"src":"1930:17:1","typeDescriptions":{"typeIdentifier":"t_contract$_IContractDeployer_$1327","typeString":"contract IContractDeployer"}},"value":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint160","typeString":"uint160"},"id":1010,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":1008,"name":"SYSTEM_CONTRACTS_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":921,"src":"2010:23:1","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"30783036","id":1009,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2036:4:1","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"0x06"},"src":"2010:30:1","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":1007,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2002:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1006,"name":"address","nodeType":"ElementaryTypeName","src":"2002:7:1","typeDescriptions":{}}},"id":1011,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2002:39:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1005,"name":"IContractDeployer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1327,"src":"1984:17:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IContractDeployer_$1327_$","typeString":"type(contract IContractDeployer)"}},"id":1012,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1984:58:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IContractDeployer_$1327","typeString":"contract IContractDeployer"}},"visibility":"internal"},{"constant":true,"id":1021,"mutability":"constant","name":"FORCE_DEPLOYER","nameLocation":"2169:14:1","nodeType":"VariableDeclaration","scope":1124,"src":"2152:73:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1014,"name":"address","nodeType":"ElementaryTypeName","src":"2152:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"commonType":{"typeIdentifier":"t_uint160","typeString":"uint160"},"id":1019,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":1017,"name":"SYSTEM_CONTRACTS_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":921,"src":"2194:23:1","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"30783037","id":1018,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2220:4:1","typeDescriptions":{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"},"value":"0x07"},"src":"2194:30:1","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":1016,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2186:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1015,"name":"address","nodeType":"ElementaryTypeName","src":"2186:7:1","typeDescriptions":{}}},"id":1020,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2186:39:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":true,"id":1032,"mutability":"constant","name":"L1_MESSENGER_CONTRACT","nameLocation":"2249:21:1","nodeType":"VariableDeclaration","scope":1124,"src":"2227:99:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IL1Messenger_$1477","typeString":"contract IL1Messenger"},"typeName":{"id":1023,"nodeType":"UserDefinedTypeName","pathNode":{"id":1022,"name":"IL1Messenger","nameLocations":["2227:12:1"],"nodeType":"IdentifierPath","referencedDeclaration":1477,"src":"2227:12:1"},"referencedDeclaration":1477,"src":"2227:12:1","typeDescriptions":{"typeIdentifier":"t_contract$_IL1Messenger_$1477","typeString":"contract IL1Messenger"}},"value":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint160","typeString":"uint160"},"id":1029,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":1027,"name":"SYSTEM_CONTRACTS_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":921,"src":"2294:23:1","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"30783038","id":1028,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2320:4:1","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"0x08"},"src":"2294:30:1","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":1026,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2286:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1025,"name":"address","nodeType":"ElementaryTypeName","src":"2286:7:1","typeDescriptions":{}}},"id":1030,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2286:39:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1024,"name":"IL1Messenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1477,"src":"2273:12:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IL1Messenger_$1477_$","typeString":"type(contract IL1Messenger)"}},"id":1031,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2273:53:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IL1Messenger_$1477","typeString":"contract IL1Messenger"}},"visibility":"internal"},{"constant":true,"id":1040,"mutability":"constant","name":"MSG_VALUE_SYSTEM_CONTRACT","nameLocation":"2345:25:1","nodeType":"VariableDeclaration","scope":1124,"src":"2328:84:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1033,"name":"address","nodeType":"ElementaryTypeName","src":"2328:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"commonType":{"typeIdentifier":"t_uint160","typeString":"uint160"},"id":1038,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":1036,"name":"SYSTEM_CONTRACTS_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":921,"src":"2381:23:1","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"30783039","id":1037,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2407:4:1","typeDescriptions":{"typeIdentifier":"t_rational_9_by_1","typeString":"int_const 9"},"value":"0x09"},"src":"2381:30:1","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":1035,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2373:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1034,"name":"address","nodeType":"ElementaryTypeName","src":"2373:7:1","typeDescriptions":{}}},"id":1039,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2373:39:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":true,"id":1051,"mutability":"constant","name":"ETH_TOKEN_SYSTEM_CONTRACT","nameLocation":"2434:25:1","nodeType":"VariableDeclaration","scope":1124,"src":"2415:97:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IEthToken_$1400","typeString":"contract IEthToken"},"typeName":{"id":1042,"nodeType":"UserDefinedTypeName","pathNode":{"id":1041,"name":"IEthToken","nameLocations":["2415:9:1"],"nodeType":"IdentifierPath","referencedDeclaration":1400,"src":"2415:9:1"},"referencedDeclaration":1400,"src":"2415:9:1","typeDescriptions":{"typeIdentifier":"t_contract$_IEthToken_$1400","typeString":"contract IEthToken"}},"value":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint160","typeString":"uint160"},"id":1048,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":1046,"name":"SYSTEM_CONTRACTS_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":921,"src":"2480:23:1","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"30783061","id":1047,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2506:4:1","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"0x0a"},"src":"2480:30:1","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":1045,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2472:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1044,"name":"address","nodeType":"ElementaryTypeName","src":"2472:7:1","typeDescriptions":{}}},"id":1049,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2472:39:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1043,"name":"IEthToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1400,"src":"2462:9:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IEthToken_$1400_$","typeString":"type(contract IEthToken)"}},"id":1050,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2462:50:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IEthToken_$1400","typeString":"contract IEthToken"}},"visibility":"internal"},{"constant":true,"id":1059,"mutability":"constant","name":"KECCAK256_SYSTEM_CONTRACT","nameLocation":"2532:25:1","nodeType":"VariableDeclaration","scope":1124,"src":"2515:84:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1052,"name":"address","nodeType":"ElementaryTypeName","src":"2515:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"commonType":{"typeIdentifier":"t_uint160","typeString":"uint160"},"id":1057,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":1055,"name":"SYSTEM_CONTRACTS_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":921,"src":"2568:23:1","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"30783130","id":1056,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2594:4:1","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"0x10"},"src":"2568:30:1","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":1054,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2560:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1053,"name":"address","nodeType":"ElementaryTypeName","src":"2560:7:1","typeDescriptions":{}}},"id":1058,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2560:39:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":true,"id":1073,"mutability":"constant","name":"SYSTEM_CONTEXT_CONTRACT","nameLocation":"2626:23:1","nodeType":"VariableDeclaration","scope":1124,"src":"2602:114:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ISystemContext_$1704","typeString":"contract ISystemContext"},"typeName":{"id":1061,"nodeType":"UserDefinedTypeName","pathNode":{"id":1060,"name":"ISystemContext","nameLocations":["2602:14:1"],"nodeType":"IdentifierPath","referencedDeclaration":1704,"src":"2602:14:1"},"referencedDeclaration":1704,"src":"2602:14:1","typeDescriptions":{"typeIdentifier":"t_contract$_ISystemContext_$1704","typeString":"contract ISystemContext"}},"value":{"arguments":[{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint160","typeString":"uint160"},"id":1069,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":1067,"name":"SYSTEM_CONTRACTS_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":921,"src":"2683:23:1","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"30783062","id":1068,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2709:4:1","typeDescriptions":{"typeIdentifier":"t_rational_11_by_1","typeString":"int_const 11"},"value":"0x0b"},"src":"2683:30:1","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":1066,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2675:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1065,"name":"address","nodeType":"ElementaryTypeName","src":"2675:7:1","typeDescriptions":{}}},"id":1070,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2675:39:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1064,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2667:8:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":1063,"name":"address","nodeType":"ElementaryTypeName","src":"2667:8:1","stateMutability":"payable","typeDescriptions":{}}},"id":1071,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2667:48:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":1062,"name":"ISystemContext","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1704,"src":"2652:14:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ISystemContext_$1704_$","typeString":"type(contract ISystemContext)"}},"id":1072,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2652:64:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ISystemContext_$1704","typeString":"contract ISystemContext"}},"visibility":"internal"},{"constant":true,"id":1084,"mutability":"constant","name":"BOOTLOADER_UTILITIES","nameLocation":"2748:20:1","nodeType":"VariableDeclaration","scope":1124,"src":"2719:112:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_BootloaderUtilities_$905","typeString":"contract BootloaderUtilities"},"typeName":{"id":1075,"nodeType":"UserDefinedTypeName","pathNode":{"id":1074,"name":"BootloaderUtilities","nameLocations":["2719:19:1"],"nodeType":"IdentifierPath","referencedDeclaration":905,"src":"2719:19:1"},"referencedDeclaration":905,"src":"2719:19:1","typeDescriptions":{"typeIdentifier":"t_contract$_BootloaderUtilities_$905","typeString":"contract BootloaderUtilities"}},"value":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint160","typeString":"uint160"},"id":1081,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":1079,"name":"SYSTEM_CONTRACTS_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":921,"src":"2799:23:1","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"30783063","id":1080,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2825:4:1","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"0x0c"},"src":"2799:30:1","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":1078,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2791:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1077,"name":"address","nodeType":"ElementaryTypeName","src":"2791:7:1","typeDescriptions":{}}},"id":1082,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2791:39:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1076,"name":"BootloaderUtilities","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":905,"src":"2771:19:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BootloaderUtilities_$905_$","typeString":"type(contract BootloaderUtilities)"}},"id":1083,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2771:60:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_BootloaderUtilities_$905","typeString":"contract BootloaderUtilities"}},"visibility":"internal"},{"constant":true,"id":1092,"mutability":"constant","name":"EVENT_WRITER_CONTRACT","nameLocation":"2851:21:1","nodeType":"VariableDeclaration","scope":1124,"src":"2834:80:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1085,"name":"address","nodeType":"ElementaryTypeName","src":"2834:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"commonType":{"typeIdentifier":"t_uint160","typeString":"uint160"},"id":1090,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":1088,"name":"SYSTEM_CONTRACTS_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":921,"src":"2883:23:1","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"30783064","id":1089,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2909:4:1","typeDescriptions":{"typeIdentifier":"t_rational_13_by_1","typeString":"int_const 13"},"value":"0x0d"},"src":"2883:30:1","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":1087,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2875:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1086,"name":"address","nodeType":"ElementaryTypeName","src":"2875:7:1","typeDescriptions":{}}},"id":1091,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2875:39:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":true,"id":1103,"mutability":"constant","name":"BYTECODE_COMPRESSOR_CONTRACT","nameLocation":"2946:28:1","nodeType":"VariableDeclaration","scope":1124,"src":"2917:126:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IBytecodeCompressor_$1192","typeString":"contract IBytecodeCompressor"},"typeName":{"id":1094,"nodeType":"UserDefinedTypeName","pathNode":{"id":1093,"name":"IBytecodeCompressor","nameLocations":["2917:19:1"],"nodeType":"IdentifierPath","referencedDeclaration":1192,"src":"2917:19:1"},"referencedDeclaration":1192,"src":"2917:19:1","typeDescriptions":{"typeIdentifier":"t_contract$_IBytecodeCompressor_$1192","typeString":"contract IBytecodeCompressor"}},"value":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint160","typeString":"uint160"},"id":1100,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":1098,"name":"SYSTEM_CONTRACTS_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":921,"src":"3010:23:1","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"30783065","id":1099,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3036:4:1","typeDescriptions":{"typeIdentifier":"t_rational_14_by_1","typeString":"int_const 14"},"value":"0x0e"},"src":"3010:30:1","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":1097,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3002:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1096,"name":"address","nodeType":"ElementaryTypeName","src":"3002:7:1","typeDescriptions":{}}},"id":1101,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3002:39:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1095,"name":"IBytecodeCompressor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1192,"src":"2977:19:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBytecodeCompressor_$1192_$","typeString":"type(contract IBytecodeCompressor)"}},"id":1102,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2977:66:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IBytecodeCompressor_$1192","typeString":"contract IBytecodeCompressor"}},"visibility":"internal"},{"constant":true,"id":1107,"mutability":"constant","name":"MSG_VALUE_SIMULATOR_IS_SYSTEM_BIT","nameLocation":"3215:33:1","nodeType":"VariableDeclaration","scope":1124,"src":"3198:54:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1105,"name":"uint256","nodeType":"ElementaryTypeName","src":"3198:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":1106,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3251:1:1","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"constant":true,"id":1115,"mutability":"constant","name":"MAX_MSG_VALUE","nameLocation":"3325:13:1","nodeType":"VariableDeclaration","scope":1124,"src":"3308:45:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1109,"name":"uint256","nodeType":"ElementaryTypeName","src":"3308:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_340282366920938463463374607431768211455_by_1","typeString":"int_const 3402...(31 digits omitted)...1455"},"id":1114,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"},"id":1112,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":1110,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3341:1:1","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"313238","id":1111,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3346:3:1","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"3341:8:1","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":1113,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3352:1:1","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3341:12:1","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211455_by_1","typeString":"int_const 3402...(31 digits omitted)...1455"}},"visibility":"internal"},{"constant":true,"id":1119,"mutability":"constant","name":"CREATE2_PREFIX","nameLocation":"3483:14:1","nodeType":"VariableDeclaration","scope":1124,"src":"3466:100:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1117,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3466:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307832303230646261393162333063633030303631383861663739346332666233306464383532306462376532633038386237666337633130336330306361343934","id":1118,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3500:66:1","typeDescriptions":{"typeIdentifier":"t_rational_14532066302281872353670009812739458257996995916004049562278051237580304589972_by_1","typeString":"int_const 1453...(69 digits omitted)...9972"},"value":"0x2020dba91b30cc0006188af794c2fb30dd8520db7e2c088b7fc7c103c00ca494"},"visibility":"internal"},{"constant":true,"id":1123,"mutability":"constant","name":"CREATE_PREFIX","nameLocation":"3693:13:1","nodeType":"VariableDeclaration","scope":1124,"src":"3676:99:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1121,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3676:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307836336261653361393935316433386538613366626237623730393039616663313230303631306663356263353561646532343266383135393734363734663233","id":1122,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3709:66:1","typeDescriptions":{"typeIdentifier":"t_rational_45109176832147412956193996987544447529162221282176659798762896814373383655203_by_1","typeString":"int_const 4510...(69 digits omitted)...5203"},"value":"0x63bae3a9951d38e8a3fbb7b70909afc1200610fc5bc55ade242f815974674f23"},"visibility":"internal"}],"src":"33:3744:1"},"id":1},"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IAccountCodeStorage.sol":{"ast":{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IAccountCodeStorage.sol","exportedSymbols":{"IAccountCodeStorage":[1166]},"id":1167,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1125,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"33:23:2"},{"abstract":false,"baseContracts":[],"canonicalName":"IAccountCodeStorage","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":1166,"linearizedBaseContracts":[1166],"name":"IAccountCodeStorage","nameLocation":"68:19:2","nodeType":"ContractDefinition","nodes":[{"functionSelector":"4f1e1be0","id":1132,"implemented":false,"kind":"function","modifiers":[],"name":"storeAccountConstructingCodeHash","nameLocation":"103:32:2","nodeType":"FunctionDefinition","parameters":{"id":1130,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1127,"mutability":"mutable","name":"_address","nameLocation":"144:8:2","nodeType":"VariableDeclaration","scope":1132,"src":"136:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1126,"name":"address","nodeType":"ElementaryTypeName","src":"136:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1129,"mutability":"mutable","name":"_hash","nameLocation":"162:5:2","nodeType":"VariableDeclaration","scope":1132,"src":"154:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1128,"name":"bytes32","nodeType":"ElementaryTypeName","src":"154:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"135:33:2"},"returnParameters":{"id":1131,"nodeType":"ParameterList","parameters":[],"src":"177:0:2"},"scope":1166,"src":"94:84:2","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"0d4651aa","id":1139,"implemented":false,"kind":"function","modifiers":[],"name":"storeAccountConstructedCodeHash","nameLocation":"193:31:2","nodeType":"FunctionDefinition","parameters":{"id":1137,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1134,"mutability":"mutable","name":"_address","nameLocation":"233:8:2","nodeType":"VariableDeclaration","scope":1139,"src":"225:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1133,"name":"address","nodeType":"ElementaryTypeName","src":"225:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1136,"mutability":"mutable","name":"_hash","nameLocation":"251:5:2","nodeType":"VariableDeclaration","scope":1139,"src":"243:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1135,"name":"bytes32","nodeType":"ElementaryTypeName","src":"243:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"224:33:2"},"returnParameters":{"id":1138,"nodeType":"ParameterList","parameters":[],"src":"266:0:2"},"scope":1166,"src":"184:83:2","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"c2e4ff97","id":1144,"implemented":false,"kind":"function","modifiers":[],"name":"markAccountCodeHashAsConstructed","nameLocation":"282:32:2","nodeType":"FunctionDefinition","parameters":{"id":1142,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1141,"mutability":"mutable","name":"_address","nameLocation":"323:8:2","nodeType":"VariableDeclaration","scope":1144,"src":"315:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1140,"name":"address","nodeType":"ElementaryTypeName","src":"315:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"314:18:2"},"returnParameters":{"id":1143,"nodeType":"ParameterList","parameters":[],"src":"341:0:2"},"scope":1166,"src":"273:69:2","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"4de2e468","id":1151,"implemented":false,"kind":"function","modifiers":[],"name":"getRawCodeHash","nameLocation":"357:14:2","nodeType":"FunctionDefinition","parameters":{"id":1147,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1146,"mutability":"mutable","name":"_address","nameLocation":"380:8:2","nodeType":"VariableDeclaration","scope":1151,"src":"372:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1145,"name":"address","nodeType":"ElementaryTypeName","src":"372:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"371:18:2"},"returnParameters":{"id":1150,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1149,"mutability":"mutable","name":"codeHash","nameLocation":"421:8:2","nodeType":"VariableDeclaration","scope":1151,"src":"413:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1148,"name":"bytes32","nodeType":"ElementaryTypeName","src":"413:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"412:18:2"},"scope":1166,"src":"348:83:2","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"e03fe177","id":1158,"implemented":false,"kind":"function","modifiers":[],"name":"getCodeHash","nameLocation":"446:11:2","nodeType":"FunctionDefinition","parameters":{"id":1154,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1153,"mutability":"mutable","name":"_input","nameLocation":"466:6:2","nodeType":"VariableDeclaration","scope":1158,"src":"458:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1152,"name":"uint256","nodeType":"ElementaryTypeName","src":"458:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"457:16:2"},"returnParameters":{"id":1157,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1156,"mutability":"mutable","name":"codeHash","nameLocation":"505:8:2","nodeType":"VariableDeclaration","scope":1158,"src":"497:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1155,"name":"bytes32","nodeType":"ElementaryTypeName","src":"497:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"496:18:2"},"scope":1166,"src":"437:78:2","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"1806aa18","id":1165,"implemented":false,"kind":"function","modifiers":[],"name":"getCodeSize","nameLocation":"530:11:2","nodeType":"FunctionDefinition","parameters":{"id":1161,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1160,"mutability":"mutable","name":"_input","nameLocation":"550:6:2","nodeType":"VariableDeclaration","scope":1165,"src":"542:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1159,"name":"uint256","nodeType":"ElementaryTypeName","src":"542:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"541:16:2"},"returnParameters":{"id":1164,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1163,"mutability":"mutable","name":"codeSize","nameLocation":"589:8:2","nodeType":"VariableDeclaration","scope":1165,"src":"581:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1162,"name":"uint256","nodeType":"ElementaryTypeName","src":"581:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"580:18:2"},"scope":1166,"src":"521:78:2","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":1167,"src":"58:543:2","usedErrors":[]}],"src":"33:569:2"},"id":2},"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBootloaderUtilities.sol":{"ast":{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBootloaderUtilities.sol","exportedSymbols":{"ADDRESS_MASK":[2520],"Address":[5645],"BOOTLOADER_FORMAL_ADDRESS":[958],"CALLFLAGS_CALL_ADDRESS":[3261],"CODE_ADDRESS_CALL_ADDRESS":[3096],"CalldataForwardingMode":[3405],"EIP_1559_TX_TYPE":[3710],"EIP_2930_TX_TYPE":[3706],"EIP_712_TX_TYPE":[3698],"ETH_TOKEN_SYSTEM_CONTRACT":[1051],"EVENT_INITIALIZE_ADDRESS":[3283],"EVENT_WRITE_ADDRESS":[3294],"EfficientCall":[2170],"GET_EXTRA_ABI_DATA_ADDRESS":[3371],"Global":[2539],"IBootloaderUtilities":[1180],"IContractDeployer":[1327],"IERC20":[4998],"IERC20Permit":[5034],"INCREMENT_TX_COUNTER_CALL_ADDRESS":[3239],"IPaymasterFlow":[1634],"ISystemContract":[3068],"KECCAK256_SYSTEM_CONTRACT":[1059],"LEGACY_TX_TYPE":[3702],"LOAD_CALLDATA_INTO_ACTIVE_PTR_CALL_ADDRESS":[3305],"LOAD_LATEST_RETURNDATA_INTO_ACTIVE_PTR_CALL_ADDRESS":[3316],"MAX_SYSTEM_CONTRACT_ADDRESS":[925],"META_AUX_HEAP_SIZE_OFFSET":[3386],"META_CALLER_SHARD_ID_OFFSET":[3396],"META_CALL_ADDRESS":[3118],"META_CODE_SHARD_ID_OFFSET":[3401],"META_GAS_PER_PUBDATA_BYTE_OFFSET":[3376],"META_HEAP_SIZE_OFFSET":[3381],"META_SHARD_ID_OFFSET":[3391],"MIMIC_CALL_BY_REF_CALL_ADDRESS":[3151],"MIMIC_CALL_CALL_ADDRESS":[3129],"MSG_VALUE_SIMULATOR_IS_SYSTEM_BIT":[1107],"MSG_VALUE_SYSTEM_CONTRACT":[1040],"MULTIPLICATION_HIGH_ADDRESS":[3360],"PRECOMPILE_CALL_ADDRESS":[3107],"PTR_ADD_INTO_ACTIVE_CALL_ADDRESS":[3327],"PTR_CALLDATA_CALL_ADDRESS":[3250],"PTR_PACK_INTO_ACTIVE_CALL_ADDRESS":[3349],"PTR_RETURNDATA_CALL_ADDRESS":[3272],"PTR_SHRINK_INTO_ACTIVE_CALL_ADDRESS":[3338],"RAW_FAR_CALL_BY_REF_CALL_ADDRESS":[3184],"RAW_FAR_CALL_CALL_ADDRESS":[3173],"RLPEncoder":[2503],"SET_CONTEXT_VALUE_CALL_ADDRESS":[3217],"SET_PUBDATA_PRICE_CALL_ADDRESS":[3228],"SHA256_SYSTEM_CONTRACT":[937],"SYSTEM_CALL_BY_REF_CALL_ADDRESS":[3206],"SYSTEM_CALL_CALL_ADDRESS":[3195],"SYSTEM_MIMIC_CALL_BY_REF_CALL_ADDRESS":[3162],"SYSTEM_MIMIC_CALL_CALL_ADDRESS":[3140],"SafeERC20":[5315],"SystemContractHelper":[3048],"SystemContractsCaller":[3683],"TO_L1_CALL_ADDRESS":[3085],"Transaction":[3746],"TransactionHelper":[4646],"UINT128_MASK":[2516],"UINT32_MASK":[2513],"Utils":[4920],"ZkSyncMeta":[2533]},"id":1181,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1168,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"33:23:3"},{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/libraries/TransactionHelper.sol","file":"../libraries/TransactionHelper.sol","id":1169,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1181,"sourceUnit":4647,"src":"58:44:3","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"IBootloaderUtilities","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":1180,"linearizedBaseContracts":[1180],"name":"IBootloaderUtilities","nameLocation":"114:20:3","nodeType":"ContractDefinition","nodes":[{"functionSelector":"ebe4a3d7","id":1179,"implemented":false,"kind":"function","modifiers":[],"name":"getTransactionHashes","nameLocation":"150:20:3","nodeType":"FunctionDefinition","parameters":{"id":1173,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1172,"mutability":"mutable","name":"_transaction","nameLocation":"201:12:3","nodeType":"VariableDeclaration","scope":1179,"src":"180:33:3","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction"},"typeName":{"id":1171,"nodeType":"UserDefinedTypeName","pathNode":{"id":1170,"name":"Transaction","nameLocations":["180:11:3"],"nodeType":"IdentifierPath","referencedDeclaration":3746,"src":"180:11:3"},"referencedDeclaration":3746,"src":"180:11:3","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_storage_ptr","typeString":"struct Transaction"}},"visibility":"internal"}],"src":"170:49:3"},"returnParameters":{"id":1178,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1175,"mutability":"mutable","name":"txHash","nameLocation":"251:6:3","nodeType":"VariableDeclaration","scope":1179,"src":"243:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1174,"name":"bytes32","nodeType":"ElementaryTypeName","src":"243:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1177,"mutability":"mutable","name":"signedTxHash","nameLocation":"267:12:3","nodeType":"VariableDeclaration","scope":1179,"src":"259:20:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1176,"name":"bytes32","nodeType":"ElementaryTypeName","src":"259:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"242:38:3"},"scope":1180,"src":"141:140:3","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":1181,"src":"104:179:3","usedErrors":[]}],"src":"33:251:3"},"id":3},"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBytecodeCompressor.sol":{"ast":{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBytecodeCompressor.sol","exportedSymbols":{"IBytecodeCompressor":[1192]},"id":1193,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1182,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"33:23:4"},{"abstract":false,"baseContracts":[],"canonicalName":"IBytecodeCompressor","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":1192,"linearizedBaseContracts":[1192],"name":"IBytecodeCompressor","nameLocation":"68:19:4","nodeType":"ContractDefinition","nodes":[{"functionSelector":"f5e69a47","id":1191,"implemented":false,"kind":"function","modifiers":[],"name":"publishCompressedBytecode","nameLocation":"103:25:4","nodeType":"FunctionDefinition","parameters":{"id":1187,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1184,"mutability":"mutable","name":"_bytecode","nameLocation":"153:9:4","nodeType":"VariableDeclaration","scope":1191,"src":"138:24:4","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1183,"name":"bytes","nodeType":"ElementaryTypeName","src":"138:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1186,"mutability":"mutable","name":"_rawCompressedData","nameLocation":"187:18:4","nodeType":"VariableDeclaration","scope":1191,"src":"172:33:4","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1185,"name":"bytes","nodeType":"ElementaryTypeName","src":"172:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"128:83:4"},"returnParameters":{"id":1190,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1189,"mutability":"mutable","name":"bytecodeHash","nameLocation":"246:12:4","nodeType":"VariableDeclaration","scope":1191,"src":"238:20:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1188,"name":"bytes32","nodeType":"ElementaryTypeName","src":"238:7:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"237:22:4"},"scope":1192,"src":"94:166:4","stateMutability":"payable","virtual":false,"visibility":"external"}],"scope":1193,"src":"58:204:4","usedErrors":[]}],"src":"33:230:4"},"id":4},"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IContractDeployer.sol":{"ast":{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IContractDeployer.sol","exportedSymbols":{"IContractDeployer":[1327]},"id":1328,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1194,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"33:23:5"},{"abstract":false,"baseContracts":[],"canonicalName":"IContractDeployer","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":1327,"linearizedBaseContracts":[1327],"name":"IContractDeployer","nameLocation":"68:17:5","nodeType":"ContractDefinition","nodes":[{"canonicalName":"IContractDeployer.AccountAbstractionVersion","id":1197,"members":[{"id":1195,"name":"None","nameLocation":"479:4:5","nodeType":"EnumValue","src":"479:4:5"},{"id":1196,"name":"Version1","nameLocation":"493:8:5","nodeType":"EnumValue","src":"493:8:5"}],"name":"AccountAbstractionVersion","nameLocation":"443:25:5","nodeType":"EnumDefinition","src":"438:69:5"},{"canonicalName":"IContractDeployer.AccountNonceOrdering","id":1200,"members":[{"id":1198,"name":"Sequential","nameLocation":"1109:10:5","nodeType":"EnumValue","src":"1109:10:5"},{"id":1199,"name":"Arbitrary","nameLocation":"1129:9:5","nodeType":"EnumValue","src":"1129:9:5"}],"name":"AccountNonceOrdering","nameLocation":"1078:20:5","nodeType":"EnumDefinition","src":"1073:71:5"},{"canonicalName":"IContractDeployer.AccountInfo","id":1207,"members":[{"constant":false,"id":1203,"mutability":"mutable","name":"supportedAAVersion","nameLocation":"1205:18:5","nodeType":"VariableDeclaration","scope":1207,"src":"1179:44:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_AccountAbstractionVersion_$1197","typeString":"enum IContractDeployer.AccountAbstractionVersion"},"typeName":{"id":1202,"nodeType":"UserDefinedTypeName","pathNode":{"id":1201,"name":"AccountAbstractionVersion","nameLocations":["1179:25:5"],"nodeType":"IdentifierPath","referencedDeclaration":1197,"src":"1179:25:5"},"referencedDeclaration":1197,"src":"1179:25:5","typeDescriptions":{"typeIdentifier":"t_enum$_AccountAbstractionVersion_$1197","typeString":"enum IContractDeployer.AccountAbstractionVersion"}},"visibility":"internal"},{"constant":false,"id":1206,"mutability":"mutable","name":"nonceOrdering","nameLocation":"1254:13:5","nodeType":"VariableDeclaration","scope":1207,"src":"1233:34:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_AccountNonceOrdering_$1200","typeString":"enum IContractDeployer.AccountNonceOrdering"},"typeName":{"id":1205,"nodeType":"UserDefinedTypeName","pathNode":{"id":1204,"name":"AccountNonceOrdering","nameLocations":["1233:20:5"],"nodeType":"IdentifierPath","referencedDeclaration":1200,"src":"1233:20:5"},"referencedDeclaration":1200,"src":"1233:20:5","typeDescriptions":{"typeIdentifier":"t_enum$_AccountNonceOrdering_$1200","typeString":"enum IContractDeployer.AccountNonceOrdering"}},"visibility":"internal"}],"name":"AccountInfo","nameLocation":"1157:11:5","nodeType":"StructDefinition","scope":1327,"src":"1150:124:5","visibility":"public"},{"anonymous":false,"eventSelector":"290afdae231a3fc0bbae8b1af63698b0a1d79b21ad17df0342dfb952fe74f8e5","id":1215,"name":"ContractDeployed","nameLocation":"1286:16:5","nodeType":"EventDefinition","parameters":{"id":1214,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1209,"indexed":true,"mutability":"mutable","name":"deployerAddress","nameLocation":"1328:15:5","nodeType":"VariableDeclaration","scope":1215,"src":"1312:31:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1208,"name":"address","nodeType":"ElementaryTypeName","src":"1312:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1211,"indexed":true,"mutability":"mutable","name":"bytecodeHash","nameLocation":"1369:12:5","nodeType":"VariableDeclaration","scope":1215,"src":"1353:28:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1210,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1353:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1213,"indexed":true,"mutability":"mutable","name":"contractAddress","nameLocation":"1407:15:5","nodeType":"VariableDeclaration","scope":1215,"src":"1391:31:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1212,"name":"address","nodeType":"ElementaryTypeName","src":"1391:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1302:126:5"},"src":"1280:149:5"},{"anonymous":false,"eventSelector":"c7544194dab38b1652f35439b9b4806d8b71e113f2cf5c1351cb2ecf7c83959a","id":1222,"name":"AccountNonceOrderingUpdated","nameLocation":"1441:27:5","nodeType":"EventDefinition","parameters":{"id":1221,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1217,"indexed":true,"mutability":"mutable","name":"accountAddress","nameLocation":"1485:14:5","nodeType":"VariableDeclaration","scope":1222,"src":"1469:30:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1216,"name":"address","nodeType":"ElementaryTypeName","src":"1469:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1220,"indexed":false,"mutability":"mutable","name":"nonceOrdering","nameLocation":"1522:13:5","nodeType":"VariableDeclaration","scope":1222,"src":"1501:34:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_AccountNonceOrdering_$1200","typeString":"enum IContractDeployer.AccountNonceOrdering"},"typeName":{"id":1219,"nodeType":"UserDefinedTypeName","pathNode":{"id":1218,"name":"AccountNonceOrdering","nameLocations":["1501:20:5"],"nodeType":"IdentifierPath","referencedDeclaration":1200,"src":"1501:20:5"},"referencedDeclaration":1200,"src":"1501:20:5","typeDescriptions":{"typeIdentifier":"t_enum$_AccountNonceOrdering_$1200","typeString":"enum IContractDeployer.AccountNonceOrdering"}},"visibility":"internal"}],"src":"1468:68:5"},"src":"1435:102:5"},{"anonymous":false,"eventSelector":"3fb6f4f15ddd4a75588ca934894ad2cdcab25a5012e2515e1783433d0128611a","id":1229,"name":"AccountVersionUpdated","nameLocation":"1549:21:5","nodeType":"EventDefinition","parameters":{"id":1228,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1224,"indexed":true,"mutability":"mutable","name":"accountAddress","nameLocation":"1587:14:5","nodeType":"VariableDeclaration","scope":1229,"src":"1571:30:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1223,"name":"address","nodeType":"ElementaryTypeName","src":"1571:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1227,"indexed":false,"mutability":"mutable","name":"aaVersion","nameLocation":"1629:9:5","nodeType":"VariableDeclaration","scope":1229,"src":"1603:35:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_AccountAbstractionVersion_$1197","typeString":"enum IContractDeployer.AccountAbstractionVersion"},"typeName":{"id":1226,"nodeType":"UserDefinedTypeName","pathNode":{"id":1225,"name":"AccountAbstractionVersion","nameLocations":["1603:25:5"],"nodeType":"IdentifierPath","referencedDeclaration":1197,"src":"1603:25:5"},"referencedDeclaration":1197,"src":"1603:25:5","typeDescriptions":{"typeIdentifier":"t_enum$_AccountAbstractionVersion_$1197","typeString":"enum IContractDeployer.AccountAbstractionVersion"}},"visibility":"internal"}],"src":"1570:69:5"},"src":"1543:97:5"},{"functionSelector":"84da1fb4","id":1242,"implemented":false,"kind":"function","modifiers":[],"name":"getNewAddressCreate2","nameLocation":"1655:20:5","nodeType":"FunctionDefinition","parameters":{"id":1238,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1231,"mutability":"mutable","name":"_sender","nameLocation":"1693:7:5","nodeType":"VariableDeclaration","scope":1242,"src":"1685:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1230,"name":"address","nodeType":"ElementaryTypeName","src":"1685:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1233,"mutability":"mutable","name":"_bytecodeHash","nameLocation":"1718:13:5","nodeType":"VariableDeclaration","scope":1242,"src":"1710:21:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1232,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1710:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1235,"mutability":"mutable","name":"_salt","nameLocation":"1749:5:5","nodeType":"VariableDeclaration","scope":1242,"src":"1741:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1234,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1741:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1237,"mutability":"mutable","name":"_input","nameLocation":"1779:6:5","nodeType":"VariableDeclaration","scope":1242,"src":"1764:21:5","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1236,"name":"bytes","nodeType":"ElementaryTypeName","src":"1764:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1675:116:5"},"returnParameters":{"id":1241,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1240,"mutability":"mutable","name":"newAddress","nameLocation":"1823:10:5","nodeType":"VariableDeclaration","scope":1242,"src":"1815:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1239,"name":"address","nodeType":"ElementaryTypeName","src":"1815:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1814:20:5"},"scope":1327,"src":"1646:189:5","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"187598a5","id":1251,"implemented":false,"kind":"function","modifiers":[],"name":"getNewAddressCreate","nameLocation":"1850:19:5","nodeType":"FunctionDefinition","parameters":{"id":1247,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1244,"mutability":"mutable","name":"_sender","nameLocation":"1878:7:5","nodeType":"VariableDeclaration","scope":1251,"src":"1870:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1243,"name":"address","nodeType":"ElementaryTypeName","src":"1870:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1246,"mutability":"mutable","name":"_senderNonce","nameLocation":"1895:12:5","nodeType":"VariableDeclaration","scope":1251,"src":"1887:20:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1245,"name":"uint256","nodeType":"ElementaryTypeName","src":"1887:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1869:39:5"},"returnParameters":{"id":1250,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1249,"mutability":"mutable","name":"newAddress","nameLocation":"1940:10:5","nodeType":"VariableDeclaration","scope":1251,"src":"1932:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1248,"name":"address","nodeType":"ElementaryTypeName","src":"1932:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1931:20:5"},"scope":1327,"src":"1841:111:5","stateMutability":"pure","virtual":false,"visibility":"external"},{"functionSelector":"3cda3351","id":1262,"implemented":false,"kind":"function","modifiers":[],"name":"create2","nameLocation":"1967:7:5","nodeType":"FunctionDefinition","parameters":{"id":1258,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1253,"mutability":"mutable","name":"_salt","nameLocation":"1992:5:5","nodeType":"VariableDeclaration","scope":1262,"src":"1984:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1252,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1984:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1255,"mutability":"mutable","name":"_bytecodeHash","nameLocation":"2015:13:5","nodeType":"VariableDeclaration","scope":1262,"src":"2007:21:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1254,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2007:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1257,"mutability":"mutable","name":"_input","nameLocation":"2053:6:5","nodeType":"VariableDeclaration","scope":1262,"src":"2038:21:5","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1256,"name":"bytes","nodeType":"ElementaryTypeName","src":"2038:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1974:91:5"},"returnParameters":{"id":1261,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1260,"mutability":"mutable","name":"newAddress","nameLocation":"2100:10:5","nodeType":"VariableDeclaration","scope":1262,"src":"2092:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1259,"name":"address","nodeType":"ElementaryTypeName","src":"2092:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2091:20:5"},"scope":1327,"src":"1958:154:5","stateMutability":"payable","virtual":false,"visibility":"external"},{"functionSelector":"5d382700","id":1276,"implemented":false,"kind":"function","modifiers":[],"name":"create2Account","nameLocation":"2127:14:5","nodeType":"FunctionDefinition","parameters":{"id":1272,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1264,"mutability":"mutable","name":"_salt","nameLocation":"2159:5:5","nodeType":"VariableDeclaration","scope":1276,"src":"2151:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1263,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2151:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1266,"mutability":"mutable","name":"_bytecodeHash","nameLocation":"2182:13:5","nodeType":"VariableDeclaration","scope":1276,"src":"2174:21:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1265,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2174:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1268,"mutability":"mutable","name":"_input","nameLocation":"2220:6:5","nodeType":"VariableDeclaration","scope":1276,"src":"2205:21:5","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1267,"name":"bytes","nodeType":"ElementaryTypeName","src":"2205:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1271,"mutability":"mutable","name":"_aaVersion","nameLocation":"2262:10:5","nodeType":"VariableDeclaration","scope":1276,"src":"2236:36:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_AccountAbstractionVersion_$1197","typeString":"enum IContractDeployer.AccountAbstractionVersion"},"typeName":{"id":1270,"nodeType":"UserDefinedTypeName","pathNode":{"id":1269,"name":"AccountAbstractionVersion","nameLocations":["2236:25:5"],"nodeType":"IdentifierPath","referencedDeclaration":1197,"src":"2236:25:5"},"referencedDeclaration":1197,"src":"2236:25:5","typeDescriptions":{"typeIdentifier":"t_enum$_AccountAbstractionVersion_$1197","typeString":"enum IContractDeployer.AccountAbstractionVersion"}},"visibility":"internal"}],"src":"2141:137:5"},"returnParameters":{"id":1275,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1274,"mutability":"mutable","name":"newAddress","nameLocation":"2313:10:5","nodeType":"VariableDeclaration","scope":1276,"src":"2305:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1273,"name":"address","nodeType":"ElementaryTypeName","src":"2305:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2304:20:5"},"scope":1327,"src":"2118:207:5","stateMutability":"payable","virtual":false,"visibility":"external"},{"documentation":{"id":1277,"nodeType":"StructuredDocumentation","src":"2331:183:5","text":"@dev While the `_salt` parameter is not used anywhere here,\n it is still needed for consistency between `create` and\n `create2` functions (required by the compiler)."},"functionSelector":"9c4d535b","id":1288,"implemented":false,"kind":"function","modifiers":[],"name":"create","nameLocation":"2528:6:5","nodeType":"FunctionDefinition","parameters":{"id":1284,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1279,"mutability":"mutable","name":"_salt","nameLocation":"2552:5:5","nodeType":"VariableDeclaration","scope":1288,"src":"2544:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1278,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2544:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1281,"mutability":"mutable","name":"_bytecodeHash","nameLocation":"2575:13:5","nodeType":"VariableDeclaration","scope":1288,"src":"2567:21:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1280,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2567:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1283,"mutability":"mutable","name":"_input","nameLocation":"2613:6:5","nodeType":"VariableDeclaration","scope":1288,"src":"2598:21:5","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1282,"name":"bytes","nodeType":"ElementaryTypeName","src":"2598:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2534:91:5"},"returnParameters":{"id":1287,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1286,"mutability":"mutable","name":"newAddress","nameLocation":"2660:10:5","nodeType":"VariableDeclaration","scope":1288,"src":"2652:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1285,"name":"address","nodeType":"ElementaryTypeName","src":"2652:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2651:20:5"},"scope":1327,"src":"2519:153:5","stateMutability":"payable","virtual":false,"visibility":"external"},{"documentation":{"id":1289,"nodeType":"StructuredDocumentation","src":"2678:130:5","text":"@dev While `_salt` is never used here, we leave it here as a parameter\n for the consistency with the `create` function."},"functionSelector":"ecf95b8a","id":1303,"implemented":false,"kind":"function","modifiers":[],"name":"createAccount","nameLocation":"2822:13:5","nodeType":"FunctionDefinition","parameters":{"id":1299,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1291,"mutability":"mutable","name":"_salt","nameLocation":"2853:5:5","nodeType":"VariableDeclaration","scope":1303,"src":"2845:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1290,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2845:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1293,"mutability":"mutable","name":"_bytecodeHash","nameLocation":"2876:13:5","nodeType":"VariableDeclaration","scope":1303,"src":"2868:21:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1292,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2868:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1295,"mutability":"mutable","name":"_input","nameLocation":"2914:6:5","nodeType":"VariableDeclaration","scope":1303,"src":"2899:21:5","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1294,"name":"bytes","nodeType":"ElementaryTypeName","src":"2899:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1298,"mutability":"mutable","name":"_aaVersion","nameLocation":"2956:10:5","nodeType":"VariableDeclaration","scope":1303,"src":"2930:36:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_AccountAbstractionVersion_$1197","typeString":"enum IContractDeployer.AccountAbstractionVersion"},"typeName":{"id":1297,"nodeType":"UserDefinedTypeName","pathNode":{"id":1296,"name":"AccountAbstractionVersion","nameLocations":["2930:25:5"],"nodeType":"IdentifierPath","referencedDeclaration":1197,"src":"2930:25:5"},"referencedDeclaration":1197,"src":"2930:25:5","typeDescriptions":{"typeIdentifier":"t_enum$_AccountAbstractionVersion_$1197","typeString":"enum IContractDeployer.AccountAbstractionVersion"}},"visibility":"internal"}],"src":"2835:137:5"},"returnParameters":{"id":1302,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1301,"mutability":"mutable","name":"newAddress","nameLocation":"3007:10:5","nodeType":"VariableDeclaration","scope":1303,"src":"2999:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1300,"name":"address","nodeType":"ElementaryTypeName","src":"2999:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2998:20:5"},"scope":1327,"src":"2813:206:5","stateMutability":"payable","virtual":false,"visibility":"external"},{"documentation":{"id":1304,"nodeType":"StructuredDocumentation","src":"3025:55:5","text":"@notice Returns the information about a certain AA."},"functionSelector":"7b510fe8","id":1312,"implemented":false,"kind":"function","modifiers":[],"name":"getAccountInfo","nameLocation":"3094:14:5","nodeType":"FunctionDefinition","parameters":{"id":1307,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1306,"mutability":"mutable","name":"_address","nameLocation":"3117:8:5","nodeType":"VariableDeclaration","scope":1312,"src":"3109:16:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1305,"name":"address","nodeType":"ElementaryTypeName","src":"3109:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3108:18:5"},"returnParameters":{"id":1311,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1310,"mutability":"mutable","name":"info","nameLocation":"3169:4:5","nodeType":"VariableDeclaration","scope":1312,"src":"3150:23:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_AccountInfo_$1207_memory_ptr","typeString":"struct IContractDeployer.AccountInfo"},"typeName":{"id":1309,"nodeType":"UserDefinedTypeName","pathNode":{"id":1308,"name":"AccountInfo","nameLocations":["3150:11:5"],"nodeType":"IdentifierPath","referencedDeclaration":1207,"src":"3150:11:5"},"referencedDeclaration":1207,"src":"3150:11:5","typeDescriptions":{"typeIdentifier":"t_struct$_AccountInfo_$1207_storage_ptr","typeString":"struct IContractDeployer.AccountInfo"}},"visibility":"internal"}],"src":"3149:25:5"},"scope":1327,"src":"3085:90:5","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1313,"nodeType":"StructuredDocumentation","src":"3181:69:5","text":"@notice Can be called by an account to update its account version"},"functionSelector":"57180981","id":1319,"implemented":false,"kind":"function","modifiers":[],"name":"updateAccountVersion","nameLocation":"3264:20:5","nodeType":"FunctionDefinition","parameters":{"id":1317,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1316,"mutability":"mutable","name":"_version","nameLocation":"3311:8:5","nodeType":"VariableDeclaration","scope":1319,"src":"3285:34:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_AccountAbstractionVersion_$1197","typeString":"enum IContractDeployer.AccountAbstractionVersion"},"typeName":{"id":1315,"nodeType":"UserDefinedTypeName","pathNode":{"id":1314,"name":"AccountAbstractionVersion","nameLocations":["3285:25:5"],"nodeType":"IdentifierPath","referencedDeclaration":1197,"src":"3285:25:5"},"referencedDeclaration":1197,"src":"3285:25:5","typeDescriptions":{"typeIdentifier":"t_enum$_AccountAbstractionVersion_$1197","typeString":"enum IContractDeployer.AccountAbstractionVersion"}},"visibility":"internal"}],"src":"3284:36:5"},"returnParameters":{"id":1318,"nodeType":"ParameterList","parameters":[],"src":"3329:0:5"},"scope":1327,"src":"3255:75:5","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1320,"nodeType":"StructuredDocumentation","src":"3336:68:5","text":"@notice Can be called by an account to update its nonce ordering"},"functionSelector":"ec8067c7","id":1326,"implemented":false,"kind":"function","modifiers":[],"name":"updateNonceOrdering","nameLocation":"3418:19:5","nodeType":"FunctionDefinition","parameters":{"id":1324,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1323,"mutability":"mutable","name":"_nonceOrdering","nameLocation":"3459:14:5","nodeType":"VariableDeclaration","scope":1326,"src":"3438:35:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_AccountNonceOrdering_$1200","typeString":"enum IContractDeployer.AccountNonceOrdering"},"typeName":{"id":1322,"nodeType":"UserDefinedTypeName","pathNode":{"id":1321,"name":"AccountNonceOrdering","nameLocations":["3438:20:5"],"nodeType":"IdentifierPath","referencedDeclaration":1200,"src":"3438:20:5"},"referencedDeclaration":1200,"src":"3438:20:5","typeDescriptions":{"typeIdentifier":"t_enum$_AccountNonceOrdering_$1200","typeString":"enum IContractDeployer.AccountNonceOrdering"}},"visibility":"internal"}],"src":"3437:37:5"},"returnParameters":{"id":1325,"nodeType":"ParameterList","parameters":[],"src":"3483:0:5"},"scope":1327,"src":"3409:75:5","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":1328,"src":"58:3428:5","usedErrors":[]}],"src":"33:3454:5"},"id":5},"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IEthToken.sol":{"ast":{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IEthToken.sol","exportedSymbols":{"IEthToken":[1400]},"id":1401,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1329,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"33:23:6"},{"abstract":false,"baseContracts":[],"canonicalName":"IEthToken","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":1400,"linearizedBaseContracts":[1400],"name":"IEthToken","nameLocation":"68:9:6","nodeType":"ContractDefinition","nodes":[{"functionSelector":"9cc7f708","id":1336,"implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"93:9:6","nodeType":"FunctionDefinition","parameters":{"id":1332,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1331,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1336,"src":"103:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1330,"name":"uint256","nodeType":"ElementaryTypeName","src":"103:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"102:9:6"},"returnParameters":{"id":1335,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1334,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1336,"src":"135:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1333,"name":"uint256","nodeType":"ElementaryTypeName","src":"135:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"134:9:6"},"scope":1400,"src":"84:60:6","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"579952fc","id":1345,"implemented":false,"kind":"function","modifiers":[],"name":"transferFromTo","nameLocation":"159:14:6","nodeType":"FunctionDefinition","parameters":{"id":1343,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1338,"mutability":"mutable","name":"_from","nameLocation":"182:5:6","nodeType":"VariableDeclaration","scope":1345,"src":"174:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1337,"name":"address","nodeType":"ElementaryTypeName","src":"174:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1340,"mutability":"mutable","name":"_to","nameLocation":"197:3:6","nodeType":"VariableDeclaration","scope":1345,"src":"189:11:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1339,"name":"address","nodeType":"ElementaryTypeName","src":"189:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1342,"mutability":"mutable","name":"_amount","nameLocation":"210:7:6","nodeType":"VariableDeclaration","scope":1345,"src":"202:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1341,"name":"uint256","nodeType":"ElementaryTypeName","src":"202:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"173:45:6"},"returnParameters":{"id":1344,"nodeType":"ParameterList","parameters":[],"src":"227:0:6"},"scope":1400,"src":"150:78:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"18160ddd","id":1350,"implemented":false,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"243:11:6","nodeType":"FunctionDefinition","parameters":{"id":1346,"nodeType":"ParameterList","parameters":[],"src":"254:2:6"},"returnParameters":{"id":1349,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1348,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1350,"src":"280:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1347,"name":"uint256","nodeType":"ElementaryTypeName","src":"280:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"279:9:6"},"scope":1400,"src":"234:55:6","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"06fdde03","id":1355,"implemented":false,"kind":"function","modifiers":[],"name":"name","nameLocation":"304:4:6","nodeType":"FunctionDefinition","parameters":{"id":1351,"nodeType":"ParameterList","parameters":[],"src":"308:2:6"},"returnParameters":{"id":1354,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1353,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1355,"src":"334:13:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1352,"name":"string","nodeType":"ElementaryTypeName","src":"334:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"333:15:6"},"scope":1400,"src":"295:54:6","stateMutability":"pure","virtual":false,"visibility":"external"},{"functionSelector":"95d89b41","id":1360,"implemented":false,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"364:6:6","nodeType":"FunctionDefinition","parameters":{"id":1356,"nodeType":"ParameterList","parameters":[],"src":"370:2:6"},"returnParameters":{"id":1359,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1358,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1360,"src":"396:13:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1357,"name":"string","nodeType":"ElementaryTypeName","src":"396:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"395:15:6"},"scope":1400,"src":"355:56:6","stateMutability":"pure","virtual":false,"visibility":"external"},{"functionSelector":"313ce567","id":1365,"implemented":false,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"426:8:6","nodeType":"FunctionDefinition","parameters":{"id":1361,"nodeType":"ParameterList","parameters":[],"src":"434:2:6"},"returnParameters":{"id":1364,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1363,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1365,"src":"460:5:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1362,"name":"uint8","nodeType":"ElementaryTypeName","src":"460:5:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"459:7:6"},"scope":1400,"src":"417:50:6","stateMutability":"pure","virtual":false,"visibility":"external"},{"functionSelector":"40c10f19","id":1372,"implemented":false,"kind":"function","modifiers":[],"name":"mint","nameLocation":"482:4:6","nodeType":"FunctionDefinition","parameters":{"id":1370,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1367,"mutability":"mutable","name":"_account","nameLocation":"495:8:6","nodeType":"VariableDeclaration","scope":1372,"src":"487:16:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1366,"name":"address","nodeType":"ElementaryTypeName","src":"487:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1369,"mutability":"mutable","name":"_amount","nameLocation":"513:7:6","nodeType":"VariableDeclaration","scope":1372,"src":"505:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1368,"name":"uint256","nodeType":"ElementaryTypeName","src":"505:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"486:35:6"},"returnParameters":{"id":1371,"nodeType":"ParameterList","parameters":[],"src":"530:0:6"},"scope":1400,"src":"473:58:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"51cff8d9","id":1377,"implemented":false,"kind":"function","modifiers":[],"name":"withdraw","nameLocation":"546:8:6","nodeType":"FunctionDefinition","parameters":{"id":1375,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1374,"mutability":"mutable","name":"_l1Receiver","nameLocation":"563:11:6","nodeType":"VariableDeclaration","scope":1377,"src":"555:19:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1373,"name":"address","nodeType":"ElementaryTypeName","src":"555:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"554:21:6"},"returnParameters":{"id":1376,"nodeType":"ParameterList","parameters":[],"src":"592:0:6"},"scope":1400,"src":"537:56:6","stateMutability":"payable","virtual":false,"visibility":"external"},{"anonymous":false,"eventSelector":"0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885","id":1383,"name":"Mint","nameLocation":"605:4:6","nodeType":"EventDefinition","parameters":{"id":1382,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1379,"indexed":true,"mutability":"mutable","name":"account","nameLocation":"626:7:6","nodeType":"VariableDeclaration","scope":1383,"src":"610:23:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1378,"name":"address","nodeType":"ElementaryTypeName","src":"610:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1381,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"643:6:6","nodeType":"VariableDeclaration","scope":1383,"src":"635:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1380,"name":"uint256","nodeType":"ElementaryTypeName","src":"635:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"609:41:6"},"src":"599:52:6"},{"anonymous":false,"eventSelector":"ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","id":1391,"name":"Transfer","nameLocation":"663:8:6","nodeType":"EventDefinition","parameters":{"id":1390,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1385,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"688:4:6","nodeType":"VariableDeclaration","scope":1391,"src":"672:20:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1384,"name":"address","nodeType":"ElementaryTypeName","src":"672:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1387,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"710:2:6","nodeType":"VariableDeclaration","scope":1391,"src":"694:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1386,"name":"address","nodeType":"ElementaryTypeName","src":"694:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1389,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"722:5:6","nodeType":"VariableDeclaration","scope":1391,"src":"714:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1388,"name":"uint256","nodeType":"ElementaryTypeName","src":"714:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"671:57:6"},"src":"657:72:6"},{"anonymous":false,"eventSelector":"2717ead6b9200dd235aad468c9809ea400fe33ac69b5bfaa6d3e90fc922b6398","id":1399,"name":"Withdrawal","nameLocation":"741:10:6","nodeType":"EventDefinition","parameters":{"id":1398,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1393,"indexed":true,"mutability":"mutable","name":"_l2Sender","nameLocation":"768:9:6","nodeType":"VariableDeclaration","scope":1399,"src":"752:25:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1392,"name":"address","nodeType":"ElementaryTypeName","src":"752:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1395,"indexed":true,"mutability":"mutable","name":"_l1Receiver","nameLocation":"795:11:6","nodeType":"VariableDeclaration","scope":1399,"src":"779:27:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1394,"name":"address","nodeType":"ElementaryTypeName","src":"779:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1397,"indexed":false,"mutability":"mutable","name":"_amount","nameLocation":"816:7:6","nodeType":"VariableDeclaration","scope":1399,"src":"808:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1396,"name":"uint256","nodeType":"ElementaryTypeName","src":"808:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"751:73:6"},"src":"735:90:6"}],"scope":1401,"src":"58:769:6","usedErrors":[]}],"src":"33:795:6"},"id":6},"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IImmutableSimulator.sol":{"ast":{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IImmutableSimulator.sol","exportedSymbols":{"IImmutableSimulator":[1426],"ImmutableData":[1407]},"id":1427,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1402,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"33:23:7"},{"canonicalName":"ImmutableData","id":1407,"members":[{"constant":false,"id":1404,"mutability":"mutable","name":"index","nameLocation":"93:5:7","nodeType":"VariableDeclaration","scope":1407,"src":"85:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1403,"name":"uint256","nodeType":"ElementaryTypeName","src":"85:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1406,"mutability":"mutable","name":"value","nameLocation":"112:5:7","nodeType":"VariableDeclaration","scope":1407,"src":"104:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1405,"name":"bytes32","nodeType":"ElementaryTypeName","src":"104:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"ImmutableData","nameLocation":"65:13:7","nodeType":"StructDefinition","scope":1427,"src":"58:62:7","visibility":"public"},{"abstract":false,"baseContracts":[],"canonicalName":"IImmutableSimulator","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":1426,"linearizedBaseContracts":[1426],"name":"IImmutableSimulator","nameLocation":"132:19:7","nodeType":"ContractDefinition","nodes":[{"functionSelector":"310ab089","id":1416,"implemented":false,"kind":"function","modifiers":[],"name":"getImmutable","nameLocation":"167:12:7","nodeType":"FunctionDefinition","parameters":{"id":1412,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1409,"mutability":"mutable","name":"_dest","nameLocation":"188:5:7","nodeType":"VariableDeclaration","scope":1416,"src":"180:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1408,"name":"address","nodeType":"ElementaryTypeName","src":"180:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1411,"mutability":"mutable","name":"_index","nameLocation":"203:6:7","nodeType":"VariableDeclaration","scope":1416,"src":"195:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1410,"name":"uint256","nodeType":"ElementaryTypeName","src":"195:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"179:31:7"},"returnParameters":{"id":1415,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1414,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1416,"src":"234:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1413,"name":"bytes32","nodeType":"ElementaryTypeName","src":"234:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"233:9:7"},"scope":1426,"src":"158:85:7","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"ad7e232e","id":1425,"implemented":false,"kind":"function","modifiers":[],"name":"setImmutables","nameLocation":"258:13:7","nodeType":"FunctionDefinition","parameters":{"id":1423,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1418,"mutability":"mutable","name":"_dest","nameLocation":"280:5:7","nodeType":"VariableDeclaration","scope":1425,"src":"272:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1417,"name":"address","nodeType":"ElementaryTypeName","src":"272:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1422,"mutability":"mutable","name":"_immutables","nameLocation":"312:11:7","nodeType":"VariableDeclaration","scope":1425,"src":"287:36:7","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ImmutableData_$1407_calldata_ptr_$dyn_calldata_ptr","typeString":"struct ImmutableData[]"},"typeName":{"baseType":{"id":1420,"nodeType":"UserDefinedTypeName","pathNode":{"id":1419,"name":"ImmutableData","nameLocations":["287:13:7"],"nodeType":"IdentifierPath","referencedDeclaration":1407,"src":"287:13:7"},"referencedDeclaration":1407,"src":"287:13:7","typeDescriptions":{"typeIdentifier":"t_struct$_ImmutableData_$1407_storage_ptr","typeString":"struct ImmutableData"}},"id":1421,"nodeType":"ArrayTypeName","src":"287:15:7","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ImmutableData_$1407_storage_$dyn_storage_ptr","typeString":"struct ImmutableData[]"}},"visibility":"internal"}],"src":"271:53:7"},"returnParameters":{"id":1424,"nodeType":"ParameterList","parameters":[],"src":"333:0:7"},"scope":1426,"src":"249:85:7","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":1427,"src":"122:214:7","usedErrors":[]}],"src":"33:304:7"},"id":7},"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IKnownCodesStorage.sol":{"ast":{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IKnownCodesStorage.sol","exportedSymbols":{"IKnownCodesStorage":[1459]},"id":1460,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1428,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"33:23:8"},{"abstract":false,"baseContracts":[],"canonicalName":"IKnownCodesStorage","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":1459,"linearizedBaseContracts":[1459],"name":"IKnownCodesStorage","nameLocation":"68:18:8","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"eventSelector":"c94722ff13eacf53547c4741dab5228353a05938ffcdd5d4a2d533ae0e618287","id":1434,"name":"MarkedAsKnown","nameLocation":"99:13:8","nodeType":"EventDefinition","parameters":{"id":1433,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1430,"indexed":true,"mutability":"mutable","name":"bytecodeHash","nameLocation":"129:12:8","nodeType":"VariableDeclaration","scope":1434,"src":"113:28:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1429,"name":"bytes32","nodeType":"ElementaryTypeName","src":"113:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1432,"indexed":true,"mutability":"mutable","name":"sendBytecodeToL1","nameLocation":"156:16:8","nodeType":"VariableDeclaration","scope":1434,"src":"143:29:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1431,"name":"bool","nodeType":"ElementaryTypeName","src":"143:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"112:61:8"},"src":"93:81:8"},{"functionSelector":"e516761e","id":1442,"implemented":false,"kind":"function","modifiers":[],"name":"markFactoryDeps","nameLocation":"189:15:8","nodeType":"FunctionDefinition","parameters":{"id":1440,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1436,"mutability":"mutable","name":"_shouldSendToL1","nameLocation":"210:15:8","nodeType":"VariableDeclaration","scope":1442,"src":"205:20:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1435,"name":"bool","nodeType":"ElementaryTypeName","src":"205:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":1439,"mutability":"mutable","name":"_hashes","nameLocation":"246:7:8","nodeType":"VariableDeclaration","scope":1442,"src":"227:26:8","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":1437,"name":"bytes32","nodeType":"ElementaryTypeName","src":"227:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":1438,"nodeType":"ArrayTypeName","src":"227:9:8","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"204:50:8"},"returnParameters":{"id":1441,"nodeType":"ParameterList","parameters":[],"src":"263:0:8"},"scope":1459,"src":"180:84:8","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"24a55db9","id":1451,"implemented":false,"kind":"function","modifiers":[],"name":"markBytecodeAsPublished","nameLocation":"279:23:8","nodeType":"FunctionDefinition","parameters":{"id":1449,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1444,"mutability":"mutable","name":"_bytecodeHash","nameLocation":"320:13:8","nodeType":"VariableDeclaration","scope":1451,"src":"312:21:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1443,"name":"bytes32","nodeType":"ElementaryTypeName","src":"312:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1446,"mutability":"mutable","name":"_l1PreimageHash","nameLocation":"351:15:8","nodeType":"VariableDeclaration","scope":1451,"src":"343:23:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1445,"name":"bytes32","nodeType":"ElementaryTypeName","src":"343:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1448,"mutability":"mutable","name":"_l1PreimageBytesLen","nameLocation":"384:19:8","nodeType":"VariableDeclaration","scope":1451,"src":"376:27:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1447,"name":"uint256","nodeType":"ElementaryTypeName","src":"376:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"302:107:8"},"returnParameters":{"id":1450,"nodeType":"ParameterList","parameters":[],"src":"418:0:8"},"scope":1459,"src":"270:149:8","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"4c6314f0","id":1458,"implemented":false,"kind":"function","modifiers":[],"name":"getMarker","nameLocation":"434:9:8","nodeType":"FunctionDefinition","parameters":{"id":1454,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1453,"mutability":"mutable","name":"_hash","nameLocation":"452:5:8","nodeType":"VariableDeclaration","scope":1458,"src":"444:13:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1452,"name":"bytes32","nodeType":"ElementaryTypeName","src":"444:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"443:15:8"},"returnParameters":{"id":1457,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1456,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1458,"src":"482:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1455,"name":"uint256","nodeType":"ElementaryTypeName","src":"482:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"481:9:8"},"scope":1459,"src":"425:66:8","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":1460,"src":"58:435:8","usedErrors":[]}],"src":"33:461:8"},"id":8},"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IL1Messenger.sol":{"ast":{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IL1Messenger.sol","exportedSymbols":{"IL1Messenger":[1477]},"id":1478,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1461,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"33:23:9"},{"abstract":false,"baseContracts":[],"canonicalName":"IL1Messenger","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":1477,"linearizedBaseContracts":[1477],"name":"IL1Messenger","nameLocation":"68:12:9","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"eventSelector":"3a36e47291f4201faf137fab081d92295bce2d53be2c6ca68ba82c7faa9ce241","id":1469,"name":"L1MessageSent","nameLocation":"263:13:9","nodeType":"EventDefinition","parameters":{"id":1468,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1463,"indexed":true,"mutability":"mutable","name":"_sender","nameLocation":"293:7:9","nodeType":"VariableDeclaration","scope":1469,"src":"277:23:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1462,"name":"address","nodeType":"ElementaryTypeName","src":"277:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1465,"indexed":true,"mutability":"mutable","name":"_hash","nameLocation":"318:5:9","nodeType":"VariableDeclaration","scope":1469,"src":"302:21:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1464,"name":"bytes32","nodeType":"ElementaryTypeName","src":"302:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1467,"indexed":false,"mutability":"mutable","name":"_message","nameLocation":"331:8:9","nodeType":"VariableDeclaration","scope":1469,"src":"325:14:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1466,"name":"bytes","nodeType":"ElementaryTypeName","src":"325:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"276:64:9"},"src":"257:84:9"},{"functionSelector":"62f84b24","id":1476,"implemented":false,"kind":"function","modifiers":[],"name":"sendToL1","nameLocation":"356:8:9","nodeType":"FunctionDefinition","parameters":{"id":1472,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1471,"mutability":"mutable","name":"_message","nameLocation":"378:8:9","nodeType":"VariableDeclaration","scope":1476,"src":"365:21:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1470,"name":"bytes","nodeType":"ElementaryTypeName","src":"365:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"364:23:9"},"returnParameters":{"id":1475,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1474,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1476,"src":"406:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1473,"name":"bytes32","nodeType":"ElementaryTypeName","src":"406:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"405:9:9"},"scope":1477,"src":"347:68:9","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":1478,"src":"58:359:9","usedErrors":[]}],"src":"33:385:9"},"id":9},"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/INonceHolder.sol":{"ast":{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/INonceHolder.sol","exportedSymbols":{"INonceHolder":[1571]},"id":1572,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1479,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"33:23:10"},{"abstract":false,"baseContracts":[],"canonicalName":"INonceHolder","contractDependencies":[],"contractKind":"interface","documentation":{"id":1480,"nodeType":"StructuredDocumentation","src":"58:438:10","text":" @author Matter Labs\n @dev Interface of the nonce holder contract -- a contract used by the system to ensure\n that there is always a unique identifier for a transaction with a particular account (we call it nonce).\n In other words, the pair of (address, nonce) should always be unique.\n @dev Custom accounts should use methods of this contract to store nonces or other possible unique identifiers\n for the transaction."},"fullyImplemented":false,"id":1571,"linearizedBaseContracts":[1571],"name":"INonceHolder","nameLocation":"507:12:10","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"eventSelector":"da2b716e5a5d5f602b9a5842bcd89c215b125258dfea271a03e5e0e801d93a8c","id":1488,"name":"ValueSetUnderNonce","nameLocation":"532:18:10","nodeType":"EventDefinition","parameters":{"id":1487,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1482,"indexed":true,"mutability":"mutable","name":"accountAddress","nameLocation":"567:14:10","nodeType":"VariableDeclaration","scope":1488,"src":"551:30:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1481,"name":"address","nodeType":"ElementaryTypeName","src":"551:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1484,"indexed":true,"mutability":"mutable","name":"key","nameLocation":"599:3:10","nodeType":"VariableDeclaration","scope":1488,"src":"583:19:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1483,"name":"uint256","nodeType":"ElementaryTypeName","src":"583:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1486,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"612:5:10","nodeType":"VariableDeclaration","scope":1488,"src":"604:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1485,"name":"uint256","nodeType":"ElementaryTypeName","src":"604:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"550:68:10"},"src":"526:93:10"},{"documentation":{"id":1489,"nodeType":"StructuredDocumentation","src":"625:55:10","text":"@dev Returns the current minimal nonce for account."},"functionSelector":"896909dc","id":1496,"implemented":false,"kind":"function","modifiers":[],"name":"getMinNonce","nameLocation":"694:11:10","nodeType":"FunctionDefinition","parameters":{"id":1492,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1491,"mutability":"mutable","name":"_address","nameLocation":"714:8:10","nodeType":"VariableDeclaration","scope":1496,"src":"706:16:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1490,"name":"address","nodeType":"ElementaryTypeName","src":"706:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"705:18:10"},"returnParameters":{"id":1495,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1494,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1496,"src":"747:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1493,"name":"uint256","nodeType":"ElementaryTypeName","src":"747:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"746:9:10"},"scope":1571,"src":"685:71:10","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1497,"nodeType":"StructuredDocumentation","src":"762:117:10","text":"@dev Returns the raw version of the current minimal nonce\n (equal to minNonce + 2^128 * deployment nonce)."},"functionSelector":"5aa9b6b5","id":1504,"implemented":false,"kind":"function","modifiers":[],"name":"getRawNonce","nameLocation":"893:11:10","nodeType":"FunctionDefinition","parameters":{"id":1500,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1499,"mutability":"mutable","name":"_address","nameLocation":"913:8:10","nodeType":"VariableDeclaration","scope":1504,"src":"905:16:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1498,"name":"address","nodeType":"ElementaryTypeName","src":"905:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"904:18:10"},"returnParameters":{"id":1503,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1502,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1504,"src":"946:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1501,"name":"uint256","nodeType":"ElementaryTypeName","src":"946:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"945:9:10"},"scope":1571,"src":"884:71:10","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1505,"nodeType":"StructuredDocumentation","src":"961:56:10","text":"@dev Increases the minimal nonce for the msg.sender."},"functionSelector":"38a78092","id":1512,"implemented":false,"kind":"function","modifiers":[],"name":"increaseMinNonce","nameLocation":"1031:16:10","nodeType":"FunctionDefinition","parameters":{"id":1508,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1507,"mutability":"mutable","name":"_value","nameLocation":"1056:6:10","nodeType":"VariableDeclaration","scope":1512,"src":"1048:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1506,"name":"uint256","nodeType":"ElementaryTypeName","src":"1048:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1047:16:10"},"returnParameters":{"id":1511,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1510,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1512,"src":"1082:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1509,"name":"uint256","nodeType":"ElementaryTypeName","src":"1082:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1081:9:10"},"scope":1571,"src":"1022:69:10","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1513,"nodeType":"StructuredDocumentation","src":"1097:44:10","text":"@dev Sets the nonce value `key` as used."},"functionSelector":"155fd27a","id":1520,"implemented":false,"kind":"function","modifiers":[],"name":"setValueUnderNonce","nameLocation":"1155:18:10","nodeType":"FunctionDefinition","parameters":{"id":1518,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1515,"mutability":"mutable","name":"_key","nameLocation":"1182:4:10","nodeType":"VariableDeclaration","scope":1520,"src":"1174:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1514,"name":"uint256","nodeType":"ElementaryTypeName","src":"1174:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1517,"mutability":"mutable","name":"_value","nameLocation":"1196:6:10","nodeType":"VariableDeclaration","scope":1520,"src":"1188:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1516,"name":"uint256","nodeType":"ElementaryTypeName","src":"1188:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1173:30:10"},"returnParameters":{"id":1519,"nodeType":"ParameterList","parameters":[],"src":"1212:0:10"},"scope":1571,"src":"1146:67:10","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1521,"nodeType":"StructuredDocumentation","src":"1219:53:10","text":"@dev Gets the value stored inside a custom nonce."},"functionSelector":"55d35d18","id":1528,"implemented":false,"kind":"function","modifiers":[],"name":"getValueUnderNonce","nameLocation":"1286:18:10","nodeType":"FunctionDefinition","parameters":{"id":1524,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1523,"mutability":"mutable","name":"_key","nameLocation":"1313:4:10","nodeType":"VariableDeclaration","scope":1528,"src":"1305:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1522,"name":"uint256","nodeType":"ElementaryTypeName","src":"1305:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1304:14:10"},"returnParameters":{"id":1527,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1526,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1528,"src":"1342:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1525,"name":"uint256","nodeType":"ElementaryTypeName","src":"1342:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1341:9:10"},"scope":1571,"src":"1277:74:10","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1529,"nodeType":"StructuredDocumentation","src":"1357:108:10","text":"@dev A convenience method to increment the minimal nonce if it is equal\n to the `_expectedNonce`."},"functionSelector":"e1239cd8","id":1534,"implemented":false,"kind":"function","modifiers":[],"name":"incrementMinNonceIfEquals","nameLocation":"1479:25:10","nodeType":"FunctionDefinition","parameters":{"id":1532,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1531,"mutability":"mutable","name":"_expectedNonce","nameLocation":"1513:14:10","nodeType":"VariableDeclaration","scope":1534,"src":"1505:22:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1530,"name":"uint256","nodeType":"ElementaryTypeName","src":"1505:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1504:24:10"},"returnParameters":{"id":1533,"nodeType":"ParameterList","parameters":[],"src":"1537:0:10"},"scope":1571,"src":"1470:68:10","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1535,"nodeType":"StructuredDocumentation","src":"1544:78:10","text":"@dev Returns the deployment nonce for the accounts used for CREATE opcode."},"functionSelector":"fb1a9a57","id":1542,"implemented":false,"kind":"function","modifiers":[],"name":"getDeploymentNonce","nameLocation":"1636:18:10","nodeType":"FunctionDefinition","parameters":{"id":1538,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1537,"mutability":"mutable","name":"_address","nameLocation":"1663:8:10","nodeType":"VariableDeclaration","scope":1542,"src":"1655:16:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1536,"name":"address","nodeType":"ElementaryTypeName","src":"1655:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1654:18:10"},"returnParameters":{"id":1541,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1540,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1542,"src":"1696:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1539,"name":"uint256","nodeType":"ElementaryTypeName","src":"1696:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1695:9:10"},"scope":1571,"src":"1627:78:10","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1543,"nodeType":"StructuredDocumentation","src":"1711:86:10","text":"@dev Increments the deployment nonce for the account and returns the previous one."},"functionSelector":"306395c6","id":1550,"implemented":false,"kind":"function","modifiers":[],"name":"incrementDeploymentNonce","nameLocation":"1811:24:10","nodeType":"FunctionDefinition","parameters":{"id":1546,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1545,"mutability":"mutable","name":"_address","nameLocation":"1844:8:10","nodeType":"VariableDeclaration","scope":1550,"src":"1836:16:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1544,"name":"address","nodeType":"ElementaryTypeName","src":"1836:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1835:18:10"},"returnParameters":{"id":1549,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1548,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1550,"src":"1872:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1547,"name":"uint256","nodeType":"ElementaryTypeName","src":"1872:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1871:9:10"},"scope":1571,"src":"1802:79:10","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1551,"nodeType":"StructuredDocumentation","src":"1887:81:10","text":"@dev Determines whether a certain nonce has been already used for an account."},"functionSelector":"6ee1dc20","id":1560,"implemented":false,"kind":"function","modifiers":[],"name":"validateNonceUsage","nameLocation":"1982:18:10","nodeType":"FunctionDefinition","parameters":{"id":1558,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1553,"mutability":"mutable","name":"_address","nameLocation":"2009:8:10","nodeType":"VariableDeclaration","scope":1560,"src":"2001:16:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1552,"name":"address","nodeType":"ElementaryTypeName","src":"2001:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1555,"mutability":"mutable","name":"_key","nameLocation":"2027:4:10","nodeType":"VariableDeclaration","scope":1560,"src":"2019:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1554,"name":"uint256","nodeType":"ElementaryTypeName","src":"2019:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1557,"mutability":"mutable","name":"_shouldBeUsed","nameLocation":"2038:13:10","nodeType":"VariableDeclaration","scope":1560,"src":"2033:18:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1556,"name":"bool","nodeType":"ElementaryTypeName","src":"2033:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2000:52:10"},"returnParameters":{"id":1559,"nodeType":"ParameterList","parameters":[],"src":"2066:0:10"},"scope":1571,"src":"1973:94:10","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1561,"nodeType":"StructuredDocumentation","src":"2073:62:10","text":"@dev Returns whether a nonce has been used for an account."},"functionSelector":"cab7e8eb","id":1570,"implemented":false,"kind":"function","modifiers":[],"name":"isNonceUsed","nameLocation":"2149:11:10","nodeType":"FunctionDefinition","parameters":{"id":1566,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1563,"mutability":"mutable","name":"_address","nameLocation":"2169:8:10","nodeType":"VariableDeclaration","scope":1570,"src":"2161:16:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1562,"name":"address","nodeType":"ElementaryTypeName","src":"2161:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1565,"mutability":"mutable","name":"_nonce","nameLocation":"2187:6:10","nodeType":"VariableDeclaration","scope":1570,"src":"2179:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1564,"name":"uint256","nodeType":"ElementaryTypeName","src":"2179:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2160:34:10"},"returnParameters":{"id":1569,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1568,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1570,"src":"2218:4:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1567,"name":"bool","nodeType":"ElementaryTypeName","src":"2218:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2217:6:10"},"scope":1571,"src":"2140:84:10","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":1572,"src":"497:1729:10","usedErrors":[]}],"src":"33:2194:10"},"id":10},"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymaster.sol":{"ast":{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymaster.sol","exportedSymbols":{"ADDRESS_MASK":[2520],"Address":[5645],"BOOTLOADER_FORMAL_ADDRESS":[958],"CALLFLAGS_CALL_ADDRESS":[3261],"CODE_ADDRESS_CALL_ADDRESS":[3096],"CalldataForwardingMode":[3405],"EIP_1559_TX_TYPE":[3710],"EIP_2930_TX_TYPE":[3706],"EIP_712_TX_TYPE":[3698],"ETH_TOKEN_SYSTEM_CONTRACT":[1051],"EVENT_INITIALIZE_ADDRESS":[3283],"EVENT_WRITE_ADDRESS":[3294],"EfficientCall":[2170],"ExecutionResult":[1577],"GET_EXTRA_ABI_DATA_ADDRESS":[3371],"Global":[2539],"IContractDeployer":[1327],"IERC20":[4998],"IERC20Permit":[5034],"INCREMENT_TX_COUNTER_CALL_ADDRESS":[3239],"IPaymaster":[1616],"IPaymasterFlow":[1634],"ISystemContract":[3068],"KECCAK256_SYSTEM_CONTRACT":[1059],"LEGACY_TX_TYPE":[3702],"LOAD_CALLDATA_INTO_ACTIVE_PTR_CALL_ADDRESS":[3305],"LOAD_LATEST_RETURNDATA_INTO_ACTIVE_PTR_CALL_ADDRESS":[3316],"MAX_SYSTEM_CONTRACT_ADDRESS":[925],"META_AUX_HEAP_SIZE_OFFSET":[3386],"META_CALLER_SHARD_ID_OFFSET":[3396],"META_CALL_ADDRESS":[3118],"META_CODE_SHARD_ID_OFFSET":[3401],"META_GAS_PER_PUBDATA_BYTE_OFFSET":[3376],"META_HEAP_SIZE_OFFSET":[3381],"META_SHARD_ID_OFFSET":[3391],"MIMIC_CALL_BY_REF_CALL_ADDRESS":[3151],"MIMIC_CALL_CALL_ADDRESS":[3129],"MSG_VALUE_SIMULATOR_IS_SYSTEM_BIT":[1107],"MSG_VALUE_SYSTEM_CONTRACT":[1040],"MULTIPLICATION_HIGH_ADDRESS":[3360],"PAYMASTER_VALIDATION_SUCCESS_MAGIC":[1582],"PRECOMPILE_CALL_ADDRESS":[3107],"PTR_ADD_INTO_ACTIVE_CALL_ADDRESS":[3327],"PTR_CALLDATA_CALL_ADDRESS":[3250],"PTR_PACK_INTO_ACTIVE_CALL_ADDRESS":[3349],"PTR_RETURNDATA_CALL_ADDRESS":[3272],"PTR_SHRINK_INTO_ACTIVE_CALL_ADDRESS":[3338],"RAW_FAR_CALL_BY_REF_CALL_ADDRESS":[3184],"RAW_FAR_CALL_CALL_ADDRESS":[3173],"RLPEncoder":[2503],"SET_CONTEXT_VALUE_CALL_ADDRESS":[3217],"SET_PUBDATA_PRICE_CALL_ADDRESS":[3228],"SHA256_SYSTEM_CONTRACT":[937],"SYSTEM_CALL_BY_REF_CALL_ADDRESS":[3206],"SYSTEM_CALL_CALL_ADDRESS":[3195],"SYSTEM_MIMIC_CALL_BY_REF_CALL_ADDRESS":[3162],"SYSTEM_MIMIC_CALL_CALL_ADDRESS":[3140],"SafeERC20":[5315],"SystemContractHelper":[3048],"SystemContractsCaller":[3683],"TO_L1_CALL_ADDRESS":[3085],"Transaction":[3746],"TransactionHelper":[4646],"UINT128_MASK":[2516],"UINT32_MASK":[2513],"Utils":[4920],"ZkSyncMeta":[2533]},"id":1617,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1573,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"33:23:11"},{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/libraries/TransactionHelper.sol","file":"../libraries/TransactionHelper.sol","id":1574,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1617,"sourceUnit":4647,"src":"58:44:11","symbolAliases":[],"unitAlias":""},{"canonicalName":"ExecutionResult","id":1577,"members":[{"id":1575,"name":"Revert","nameLocation":"131:6:11","nodeType":"EnumValue","src":"131:6:11"},{"id":1576,"name":"Success","nameLocation":"143:7:11","nodeType":"EnumValue","src":"143:7:11"}],"name":"ExecutionResult","nameLocation":"109:15:11","nodeType":"EnumDefinition","src":"104:48:11"},{"constant":true,"id":1582,"mutability":"constant","name":"PAYMASTER_VALIDATION_SUCCESS_MAGIC","nameLocation":"170:34:11","nodeType":"VariableDeclaration","scope":1617,"src":"154:110:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":1578,"name":"bytes4","nodeType":"ElementaryTypeName","src":"154:6:11","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"value":{"expression":{"expression":{"id":1579,"name":"IPaymaster","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1616,"src":"207:10:11","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPaymaster_$1616_$","typeString":"type(contract IPaymaster)"}},"id":1580,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"218:37:11","memberName":"validateAndPayForPaymasterTransaction","nodeType":"MemberAccess","referencedDeclaration":1597,"src":"207:48:11","typeDescriptions":{"typeIdentifier":"t_function_declaration_payable$_t_bytes32_$_t_bytes32_$_t_struct$_Transaction_$3746_calldata_ptr_$returns$_t_bytes4_$_t_bytes_memory_ptr_$","typeString":"function IPaymaster.validateAndPayForPaymasterTransaction(bytes32,bytes32,struct Transaction calldata) payable returns (bytes4,bytes memory)"}},"id":1581,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"256:8:11","memberName":"selector","nodeType":"MemberAccess","src":"207:57:11","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"abstract":false,"baseContracts":[],"canonicalName":"IPaymaster","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":1616,"linearizedBaseContracts":[1616],"name":"IPaymaster","nameLocation":"277:10:11","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":1583,"nodeType":"StructuredDocumentation","src":"294:1020:11","text":"@dev Called by the bootloader to verify that the paymaster agrees to pay for the\n fee for the transaction. This transaction should also send the necessary amount of funds onto the bootloader\n address.\n @param _txHash The hash of the transaction\n @param _suggestedSignedHash The hash of the transaction that is signed by an EOA\n @param _transaction The transaction itself.\n @return magic The value that should be equal to the signature of the validateAndPayForPaymasterTransaction\n if the paymaster agrees to pay for the transaction.\n @return context The \"context\" of the transaction: an array of bytes of length at most 1024 bytes, which will be\n passed to the `postTransaction` method of the account.\n @dev The developer should strive to preserve as many steps as possible both for valid\n and invalid transactions as this very method is also used during the gas fee estimation\n (without some of the necessary data, e.g. signature)."},"functionSelector":"038a24bc","id":1597,"implemented":false,"kind":"function","modifiers":[],"name":"validateAndPayForPaymasterTransaction","nameLocation":"1328:37:11","nodeType":"FunctionDefinition","parameters":{"id":1591,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1585,"mutability":"mutable","name":"_txHash","nameLocation":"1383:7:11","nodeType":"VariableDeclaration","scope":1597,"src":"1375:15:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1584,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1375:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1587,"mutability":"mutable","name":"_suggestedSignedHash","nameLocation":"1408:20:11","nodeType":"VariableDeclaration","scope":1597,"src":"1400:28:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1586,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1400:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1590,"mutability":"mutable","name":"_transaction","nameLocation":"1459:12:11","nodeType":"VariableDeclaration","scope":1597,"src":"1438:33:11","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction"},"typeName":{"id":1589,"nodeType":"UserDefinedTypeName","pathNode":{"id":1588,"name":"Transaction","nameLocations":["1438:11:11"],"nodeType":"IdentifierPath","referencedDeclaration":3746,"src":"1438:11:11"},"referencedDeclaration":3746,"src":"1438:11:11","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_storage_ptr","typeString":"struct Transaction"}},"visibility":"internal"}],"src":"1365:112:11"},"returnParameters":{"id":1596,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1593,"mutability":"mutable","name":"magic","nameLocation":"1511:5:11","nodeType":"VariableDeclaration","scope":1597,"src":"1504:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":1592,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1504:6:11","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":1595,"mutability":"mutable","name":"context","nameLocation":"1531:7:11","nodeType":"VariableDeclaration","scope":1597,"src":"1518:20:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1594,"name":"bytes","nodeType":"ElementaryTypeName","src":"1518:5:11","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1503:36:11"},"scope":1616,"src":"1319:221:11","stateMutability":"payable","virtual":false,"visibility":"external"},{"documentation":{"id":1598,"nodeType":"StructuredDocumentation","src":"1546:795:11","text":"@dev Called by the bootloader after the execution of the transaction. Please note that\n there is no guarantee that this method will be called at all. Unlike the original EIP4337,\n this method won't be called if the transaction execution results in out-of-gas.\n @param _context, the context of the execution, returned by the \"validateAndPayForPaymasterTransaction\" method.\n @param _transaction, the users' transaction.\n @param _txResult, the result of the transaction execution (success or failure).\n @param _maxRefundedGas, the upper bound on the amout of gas that could be refunded to the paymaster.\n @dev The exact amount refunded depends on the gas spent by the \"postOp\" itself and so the developers should\n take that into account."},"functionSelector":"817b17f0","id":1615,"implemented":false,"kind":"function","modifiers":[],"name":"postTransaction","nameLocation":"2355:15:11","nodeType":"FunctionDefinition","parameters":{"id":1613,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1600,"mutability":"mutable","name":"_context","nameLocation":"2395:8:11","nodeType":"VariableDeclaration","scope":1615,"src":"2380:23:11","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1599,"name":"bytes","nodeType":"ElementaryTypeName","src":"2380:5:11","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1603,"mutability":"mutable","name":"_transaction","nameLocation":"2434:12:11","nodeType":"VariableDeclaration","scope":1615,"src":"2413:33:11","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction"},"typeName":{"id":1602,"nodeType":"UserDefinedTypeName","pathNode":{"id":1601,"name":"Transaction","nameLocations":["2413:11:11"],"nodeType":"IdentifierPath","referencedDeclaration":3746,"src":"2413:11:11"},"referencedDeclaration":3746,"src":"2413:11:11","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_storage_ptr","typeString":"struct Transaction"}},"visibility":"internal"},{"constant":false,"id":1605,"mutability":"mutable","name":"_txHash","nameLocation":"2464:7:11","nodeType":"VariableDeclaration","scope":1615,"src":"2456:15:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1604,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2456:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1607,"mutability":"mutable","name":"_suggestedSignedHash","nameLocation":"2489:20:11","nodeType":"VariableDeclaration","scope":1615,"src":"2481:28:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1606,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2481:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1610,"mutability":"mutable","name":"_txResult","nameLocation":"2535:9:11","nodeType":"VariableDeclaration","scope":1615,"src":"2519:25:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ExecutionResult_$1577","typeString":"enum ExecutionResult"},"typeName":{"id":1609,"nodeType":"UserDefinedTypeName","pathNode":{"id":1608,"name":"ExecutionResult","nameLocations":["2519:15:11"],"nodeType":"IdentifierPath","referencedDeclaration":1577,"src":"2519:15:11"},"referencedDeclaration":1577,"src":"2519:15:11","typeDescriptions":{"typeIdentifier":"t_enum$_ExecutionResult_$1577","typeString":"enum ExecutionResult"}},"visibility":"internal"},{"constant":false,"id":1612,"mutability":"mutable","name":"_maxRefundedGas","nameLocation":"2562:15:11","nodeType":"VariableDeclaration","scope":1615,"src":"2554:23:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1611,"name":"uint256","nodeType":"ElementaryTypeName","src":"2554:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2370:213:11"},"returnParameters":{"id":1614,"nodeType":"ParameterList","parameters":[],"src":"2600:0:11"},"scope":1616,"src":"2346:255:11","stateMutability":"payable","virtual":false,"visibility":"external"}],"scope":1617,"src":"267:2336:11","usedErrors":[]}],"src":"33:2571:11"},"id":11},"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymasterFlow.sol":{"ast":{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymasterFlow.sol","exportedSymbols":{"IPaymasterFlow":[1634]},"id":1635,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1618,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"33:23:12"},{"abstract":false,"baseContracts":[],"canonicalName":"IPaymasterFlow","contractDependencies":[],"contractKind":"interface","documentation":{"id":1619,"nodeType":"StructuredDocumentation","src":"58:232:12","text":" @author Matter Labs\n @dev The interface that is used for encoding/decoding of\n different types of paymaster flows.\n @notice This is NOT an interface to be implementated\n by contracts. It is just used for encoding."},"fullyImplemented":false,"id":1634,"linearizedBaseContracts":[1634],"name":"IPaymasterFlow","nameLocation":"301:14:12","nodeType":"ContractDefinition","nodes":[{"functionSelector":"8c5a3445","id":1624,"implemented":false,"kind":"function","modifiers":[],"name":"general","nameLocation":"331:7:12","nodeType":"FunctionDefinition","parameters":{"id":1622,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1621,"mutability":"mutable","name":"input","nameLocation":"354:5:12","nodeType":"VariableDeclaration","scope":1624,"src":"339:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1620,"name":"bytes","nodeType":"ElementaryTypeName","src":"339:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"338:22:12"},"returnParameters":{"id":1623,"nodeType":"ParameterList","parameters":[],"src":"369:0:12"},"scope":1634,"src":"322:48:12","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"949431dc","id":1633,"implemented":false,"kind":"function","modifiers":[],"name":"approvalBased","nameLocation":"385:13:12","nodeType":"FunctionDefinition","parameters":{"id":1631,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1626,"mutability":"mutable","name":"_token","nameLocation":"407:6:12","nodeType":"VariableDeclaration","scope":1633,"src":"399:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1625,"name":"address","nodeType":"ElementaryTypeName","src":"399:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1628,"mutability":"mutable","name":"_minAllowance","nameLocation":"423:13:12","nodeType":"VariableDeclaration","scope":1633,"src":"415:21:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1627,"name":"uint256","nodeType":"ElementaryTypeName","src":"415:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1630,"mutability":"mutable","name":"_innerInput","nameLocation":"453:11:12","nodeType":"VariableDeclaration","scope":1633,"src":"438:26:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1629,"name":"bytes","nodeType":"ElementaryTypeName","src":"438:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"398:67:12"},"returnParameters":{"id":1632,"nodeType":"ParameterList","parameters":[],"src":"474:0:12"},"scope":1634,"src":"376:99:12","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":1635,"src":"291:186:12","usedErrors":[]}],"src":"33:445:12"},"id":12},"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/ISystemContext.sol":{"ast":{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/ISystemContext.sol","exportedSymbols":{"ISystemContext":[1704]},"id":1705,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1636,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"33:23:13"},{"abstract":false,"baseContracts":[],"canonicalName":"ISystemContext","contractDependencies":[],"contractKind":"interface","documentation":{"id":1637,"nodeType":"StructuredDocumentation","src":"58:155:13","text":" @author Matter Labs\n @notice Contract that stores some of the context variables, that may be either\n block-scoped, tx-scoped or system-wide."},"fullyImplemented":false,"id":1704,"linearizedBaseContracts":[1704],"name":"ISystemContext","nameLocation":"224:14:13","nodeType":"ContractDefinition","nodes":[{"functionSelector":"9a8a0592","id":1642,"implemented":false,"kind":"function","modifiers":[],"name":"chainId","nameLocation":"254:7:13","nodeType":"FunctionDefinition","parameters":{"id":1638,"nodeType":"ParameterList","parameters":[],"src":"261:2:13"},"returnParameters":{"id":1641,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1640,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1642,"src":"287:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1639,"name":"uint256","nodeType":"ElementaryTypeName","src":"287:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"286:9:13"},"scope":1704,"src":"245:51:13","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"938b5f32","id":1647,"implemented":false,"kind":"function","modifiers":[],"name":"origin","nameLocation":"311:6:13","nodeType":"FunctionDefinition","parameters":{"id":1643,"nodeType":"ParameterList","parameters":[],"src":"317:2:13"},"returnParameters":{"id":1646,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1645,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1647,"src":"343:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1644,"name":"address","nodeType":"ElementaryTypeName","src":"343:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"342:9:13"},"scope":1704,"src":"302:50:13","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"fe173b97","id":1652,"implemented":false,"kind":"function","modifiers":[],"name":"gasPrice","nameLocation":"367:8:13","nodeType":"FunctionDefinition","parameters":{"id":1648,"nodeType":"ParameterList","parameters":[],"src":"375:2:13"},"returnParameters":{"id":1651,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1650,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1652,"src":"401:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1649,"name":"uint256","nodeType":"ElementaryTypeName","src":"401:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"400:9:13"},"scope":1704,"src":"358:52:13","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"7877a797","id":1657,"implemented":false,"kind":"function","modifiers":[],"name":"blockGasLimit","nameLocation":"425:13:13","nodeType":"FunctionDefinition","parameters":{"id":1653,"nodeType":"ParameterList","parameters":[],"src":"438:2:13"},"returnParameters":{"id":1656,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1655,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1657,"src":"464:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1654,"name":"uint256","nodeType":"ElementaryTypeName","src":"464:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"463:9:13"},"scope":1704,"src":"416:57:13","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"a6ae0aac","id":1662,"implemented":false,"kind":"function","modifiers":[],"name":"coinbase","nameLocation":"488:8:13","nodeType":"FunctionDefinition","parameters":{"id":1658,"nodeType":"ParameterList","parameters":[],"src":"496:2:13"},"returnParameters":{"id":1661,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1660,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1662,"src":"522:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1659,"name":"address","nodeType":"ElementaryTypeName","src":"522:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"521:9:13"},"scope":1704,"src":"479:52:13","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"19cae462","id":1667,"implemented":false,"kind":"function","modifiers":[],"name":"difficulty","nameLocation":"546:10:13","nodeType":"FunctionDefinition","parameters":{"id":1663,"nodeType":"ParameterList","parameters":[],"src":"556:2:13"},"returnParameters":{"id":1666,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1665,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1667,"src":"582:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1664,"name":"uint256","nodeType":"ElementaryTypeName","src":"582:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"581:9:13"},"scope":1704,"src":"537:54:13","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"6ef25c3a","id":1672,"implemented":false,"kind":"function","modifiers":[],"name":"baseFee","nameLocation":"606:7:13","nodeType":"FunctionDefinition","parameters":{"id":1668,"nodeType":"ParameterList","parameters":[],"src":"613:2:13"},"returnParameters":{"id":1671,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1670,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1672,"src":"639:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1669,"name":"uint256","nodeType":"ElementaryTypeName","src":"639:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"638:9:13"},"scope":1704,"src":"597:51:13","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"85df51fd","id":1679,"implemented":false,"kind":"function","modifiers":[],"name":"blockHash","nameLocation":"663:9:13","nodeType":"FunctionDefinition","parameters":{"id":1675,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1674,"mutability":"mutable","name":"_block","nameLocation":"681:6:13","nodeType":"VariableDeclaration","scope":1679,"src":"673:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1673,"name":"uint256","nodeType":"ElementaryTypeName","src":"673:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"672:16:13"},"returnParameters":{"id":1678,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1677,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1679,"src":"712:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1676,"name":"bytes32","nodeType":"ElementaryTypeName","src":"712:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"711:9:13"},"scope":1704,"src":"654:67:13","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"80b41246","id":1686,"implemented":false,"kind":"function","modifiers":[],"name":"getBlockHashEVM","nameLocation":"736:15:13","nodeType":"FunctionDefinition","parameters":{"id":1682,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1681,"mutability":"mutable","name":"_block","nameLocation":"760:6:13","nodeType":"VariableDeclaration","scope":1686,"src":"752:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1680,"name":"uint256","nodeType":"ElementaryTypeName","src":"752:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"751:16:13"},"returnParameters":{"id":1685,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1684,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1686,"src":"791:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1683,"name":"bytes32","nodeType":"ElementaryTypeName","src":"791:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"790:9:13"},"scope":1704,"src":"727:73:13","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"d4a4ca0d","id":1693,"implemented":false,"kind":"function","modifiers":[],"name":"getBlockNumberAndTimestamp","nameLocation":"815:26:13","nodeType":"FunctionDefinition","parameters":{"id":1687,"nodeType":"ParameterList","parameters":[],"src":"841:2:13"},"returnParameters":{"id":1692,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1689,"mutability":"mutable","name":"blockNumber","nameLocation":"875:11:13","nodeType":"VariableDeclaration","scope":1693,"src":"867:19:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1688,"name":"uint256","nodeType":"ElementaryTypeName","src":"867:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1691,"mutability":"mutable","name":"blockTimestamp","nameLocation":"896:14:13","nodeType":"VariableDeclaration","scope":1693,"src":"888:22:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1690,"name":"uint256","nodeType":"ElementaryTypeName","src":"888:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"866:45:13"},"scope":1704,"src":"806:106:13","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"42cbb15c","id":1698,"implemented":false,"kind":"function","modifiers":[],"name":"getBlockNumber","nameLocation":"1109:14:13","nodeType":"FunctionDefinition","parameters":{"id":1694,"nodeType":"ParameterList","parameters":[],"src":"1123:2:13"},"returnParameters":{"id":1697,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1696,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1698,"src":"1149:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1695,"name":"uint256","nodeType":"ElementaryTypeName","src":"1149:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1148:9:13"},"scope":1704,"src":"1100:58:13","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"796b89b9","id":1703,"implemented":false,"kind":"function","modifiers":[],"name":"getBlockTimestamp","nameLocation":"1173:17:13","nodeType":"FunctionDefinition","parameters":{"id":1699,"nodeType":"ParameterList","parameters":[],"src":"1190:2:13"},"returnParameters":{"id":1702,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1701,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1703,"src":"1216:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1700,"name":"uint256","nodeType":"ElementaryTypeName","src":"1216:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1215:9:13"},"scope":1704,"src":"1164:61:13","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":1705,"src":"214:1013:13","usedErrors":[]}],"src":"33:1195:13"},"id":13},"@matterlabs/zksync-contracts/l2/system-contracts/libraries/EfficientCall.sol":{"ast":{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/libraries/EfficientCall.sol","exportedSymbols":{"ADDRESS_MASK":[2520],"CALLFLAGS_CALL_ADDRESS":[3261],"CODE_ADDRESS_CALL_ADDRESS":[3096],"CalldataForwardingMode":[3405],"EVENT_INITIALIZE_ADDRESS":[3283],"EVENT_WRITE_ADDRESS":[3294],"EfficientCall":[2170],"GET_EXTRA_ABI_DATA_ADDRESS":[3371],"Global":[2539],"INCREMENT_TX_COUNTER_CALL_ADDRESS":[3239],"ISystemContract":[3068],"KECCAK256_SYSTEM_CONTRACT":[1059],"LOAD_CALLDATA_INTO_ACTIVE_PTR_CALL_ADDRESS":[3305],"LOAD_LATEST_RETURNDATA_INTO_ACTIVE_PTR_CALL_ADDRESS":[3316],"MAX_SYSTEM_CONTRACT_ADDRESS":[925],"META_AUX_HEAP_SIZE_OFFSET":[3386],"META_CALLER_SHARD_ID_OFFSET":[3396],"META_CALL_ADDRESS":[3118],"META_CODE_SHARD_ID_OFFSET":[3401],"META_GAS_PER_PUBDATA_BYTE_OFFSET":[3376],"META_HEAP_SIZE_OFFSET":[3381],"META_SHARD_ID_OFFSET":[3391],"MIMIC_CALL_BY_REF_CALL_ADDRESS":[3151],"MIMIC_CALL_CALL_ADDRESS":[3129],"MSG_VALUE_SIMULATOR_IS_SYSTEM_BIT":[1107],"MSG_VALUE_SYSTEM_CONTRACT":[1040],"MULTIPLICATION_HIGH_ADDRESS":[3360],"PRECOMPILE_CALL_ADDRESS":[3107],"PTR_ADD_INTO_ACTIVE_CALL_ADDRESS":[3327],"PTR_CALLDATA_CALL_ADDRESS":[3250],"PTR_PACK_INTO_ACTIVE_CALL_ADDRESS":[3349],"PTR_RETURNDATA_CALL_ADDRESS":[3272],"PTR_SHRINK_INTO_ACTIVE_CALL_ADDRESS":[3338],"RAW_FAR_CALL_BY_REF_CALL_ADDRESS":[3184],"RAW_FAR_CALL_CALL_ADDRESS":[3173],"SET_CONTEXT_VALUE_CALL_ADDRESS":[3217],"SET_PUBDATA_PRICE_CALL_ADDRESS":[3228],"SHA256_SYSTEM_CONTRACT":[937],"SYSTEM_CALL_BY_REF_CALL_ADDRESS":[3206],"SYSTEM_CALL_CALL_ADDRESS":[3195],"SYSTEM_MIMIC_CALL_BY_REF_CALL_ADDRESS":[3162],"SYSTEM_MIMIC_CALL_CALL_ADDRESS":[3140],"SystemContractHelper":[3048],"SystemContractsCaller":[3683],"TO_L1_CALL_ADDRESS":[3085],"UINT128_MASK":[2516],"UINT32_MASK":[2513],"Utils":[4920],"ZkSyncMeta":[2533]},"id":2171,"license":"MIT OR Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":1706,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"47:23:14"},{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractHelper.sol","file":"./SystemContractHelper.sol","id":1707,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2171,"sourceUnit":3069,"src":"72:36:14","symbolAliases":[],"unitAlias":""},{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/libraries/Utils.sol","file":"./Utils.sol","id":1708,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2171,"sourceUnit":4921,"src":"109:21:14","symbolAliases":[],"unitAlias":""},{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/Constants.sol","file":"../Constants.sol","id":1711,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2171,"sourceUnit":1124,"src":"131:83:14","symbolAliases":[{"foreign":{"id":1709,"name":"SHA256_SYSTEM_CONTRACT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":937,"src":"139:22:14","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":1710,"name":"KECCAK256_SYSTEM_CONTRACT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1059,"src":"163:25:14","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"EfficientCall","contractDependencies":[],"contractKind":"library","documentation":{"id":1712,"nodeType":"StructuredDocumentation","src":"216:1831:14","text":" @author Matter Labs\n @notice This library is used to perform ultra-efficient calls using zkEVM-specific features.\n @dev EVM calls always accept a memory slice as input and return a memory slice as output.\n Therefore, even if the user has a ready-made calldata slice, they still need to copy it to memory\n before calling. This is especially inefficient for large inputs (proxies, multi-calls, etc.).\n In turn, zkEVM operates over a fat pointer, which is a set of (memory page, offset, start, length) in the memory/calldata/returndata.\n This allows forwarding the calldata slice as is, without copying it to memory.\n @dev Fat pointer is not just an integer, it is an extended data type supported on the VM level.\n zkEVM creates the wellformed fat pointers for all the calldata/returndata regions, later\n the contract may manipulate the already created fat pointers to forward a slice of the data, but not\n to create new fat pointers!\n @dev The allowed operation on fat pointers are:\n 1. `ptr.add` - Transforms `ptr.offset` into `ptr.offset + u32(_value)`. If overflow happens then it panics.\n 2. `ptr.sub` - Transforms `ptr.offset` into `ptr.offset - u32(_value)`. If underflow happens then it panics.\n 3. `ptr.pack` - Do the concatenation between the lowest 128 bits of the pointer itself and the highest 128 bits of `_value`. It is typically used to prepare the ABI for external calls.\n 4. `ptr.shrink` - Transforms `ptr.length` into `ptr.length - u32(_shrink)`. If underflow happens then it panics.\n @dev The call opcodes accept the fat pointer and change it to its canonical form before passing it to the child call\n 1. `ptr.start` is transformed into `ptr.offset + ptr.start`\n 2. `ptr.length` is transformed into `ptr.length - ptr.offset`\n 3. `ptr.offset` is transformed into `0`"},"fullyImplemented":true,"id":2170,"linearizedBaseContracts":[2170],"name":"EfficientCall","nameLocation":"2056:13:14","nodeType":"ContractDefinition","nodes":[{"body":{"id":1742,"nodeType":"Block","src":"2297:211:14","statements":[{"assignments":[1721],"declarations":[{"constant":false,"id":1721,"mutability":"mutable","name":"returnData","nameLocation":"2320:10:14","nodeType":"VariableDeclaration","scope":1742,"src":"2307:23:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1720,"name":"bytes","nodeType":"ElementaryTypeName","src":"2307:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":1728,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":1723,"name":"gasleft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-7,"src":"2344:7:14","typeDescriptions":{"typeIdentifier":"t_function_gasleft_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":1724,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2344:9:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1725,"name":"KECCAK256_SYSTEM_CONTRACT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1059,"src":"2355:25:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1726,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1715,"src":"2382:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":1722,"name":"staticCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1834,"src":"2333:10:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_address_$_t_bytes_calldata_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256,address,bytes calldata) view returns (bytes memory)"}},"id":1727,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2333:55:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"2307:81:14"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1730,"name":"returnData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1721,"src":"2406:10:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2417:6:14","memberName":"length","nodeType":"MemberAccess","src":"2406:17:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"3332","id":1732,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2427:2:14","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"2406:23:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6b656363616b3235362072657475726e656420696e76616c69642064617461","id":1734,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2431:33:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_74fb2364e538dd0a4f135a7d171d2caf440b5d946ce57a68a1728804c1e895e0","typeString":"literal_string \"keccak256 returned invalid data\""},"value":"keccak256 returned invalid data"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_74fb2364e538dd0a4f135a7d171d2caf440b5d946ce57a68a1728804c1e895e0","typeString":"literal_string \"keccak256 returned invalid data\""}],"id":1729,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2398:7:14","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1735,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2398:67:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1736,"nodeType":"ExpressionStatement","src":"2398:67:14"},{"expression":{"arguments":[{"id":1739,"name":"returnData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1721,"src":"2490:10:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1738,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2482:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":1737,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2482:7:14","typeDescriptions":{}}},"id":1740,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2482:19:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":1719,"id":1741,"nodeType":"Return","src":"2475:26:14"}]},"documentation":{"id":1713,"nodeType":"StructuredDocumentation","src":"2076:146:14","text":"@notice Call the `keccak256` without copying calldata to memory.\n @param _data The preimage data.\n @return The `keccak256` hash."},"id":1743,"implemented":true,"kind":"function","modifiers":[],"name":"keccak","nameLocation":"2236:6:14","nodeType":"FunctionDefinition","parameters":{"id":1716,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1715,"mutability":"mutable","name":"_data","nameLocation":"2258:5:14","nodeType":"VariableDeclaration","scope":1743,"src":"2243:20:14","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1714,"name":"bytes","nodeType":"ElementaryTypeName","src":"2243:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2242:22:14"},"returnParameters":{"id":1719,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1718,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1743,"src":"2288:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1717,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2288:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2287:9:14"},"scope":2170,"src":"2227:281:14","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":1773,"nodeType":"Block","src":"2737:202:14","statements":[{"assignments":[1752],"declarations":[{"constant":false,"id":1752,"mutability":"mutable","name":"returnData","nameLocation":"2760:10:14","nodeType":"VariableDeclaration","scope":1773,"src":"2747:23:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1751,"name":"bytes","nodeType":"ElementaryTypeName","src":"2747:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":1759,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":1754,"name":"gasleft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-7,"src":"2784:7:14","typeDescriptions":{"typeIdentifier":"t_function_gasleft_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":1755,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2784:9:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1756,"name":"SHA256_SYSTEM_CONTRACT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":937,"src":"2795:22:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1757,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1746,"src":"2819:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":1753,"name":"staticCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1834,"src":"2773:10:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_address_$_t_bytes_calldata_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256,address,bytes calldata) view returns (bytes memory)"}},"id":1758,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2773:52:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"2747:78:14"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1761,"name":"returnData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1752,"src":"2843:10:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1762,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2854:6:14","memberName":"length","nodeType":"MemberAccess","src":"2843:17:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"3332","id":1763,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2864:2:14","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"2843:23:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"7368612072657475726e656420696e76616c69642064617461","id":1765,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2868:27:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_388dc6bb8999c3ed3619369d12a4e716fe6564345a82e94feb45dedada332dd3","typeString":"literal_string \"sha returned invalid data\""},"value":"sha returned invalid data"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_388dc6bb8999c3ed3619369d12a4e716fe6564345a82e94feb45dedada332dd3","typeString":"literal_string \"sha returned invalid data\""}],"id":1760,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2835:7:14","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1766,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2835:61:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1767,"nodeType":"ExpressionStatement","src":"2835:61:14"},{"expression":{"arguments":[{"id":1770,"name":"returnData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1752,"src":"2921:10:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1769,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2913:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":1768,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2913:7:14","typeDescriptions":{}}},"id":1771,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2913:19:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":1750,"id":1772,"nodeType":"Return","src":"2906:26:14"}]},"documentation":{"id":1744,"nodeType":"StructuredDocumentation","src":"2514:151:14","text":"@notice Call the `sha256` precompile without copying calldata to memory.\n @param _data The preimage data.\n @return The `sha256` hash."},"id":1774,"implemented":true,"kind":"function","modifiers":[],"name":"sha","nameLocation":"2679:3:14","nodeType":"FunctionDefinition","parameters":{"id":1747,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1746,"mutability":"mutable","name":"_data","nameLocation":"2698:5:14","nodeType":"VariableDeclaration","scope":1774,"src":"2683:20:14","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1745,"name":"bytes","nodeType":"ElementaryTypeName","src":"2683:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2682:22:14"},"returnParameters":{"id":1750,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1749,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1774,"src":"2728:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1748,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2728:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2727:9:14"},"scope":2170,"src":"2670:269:14","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":1806,"nodeType":"Block","src":"3538:130:14","statements":[{"assignments":[1791],"declarations":[{"constant":false,"id":1791,"mutability":"mutable","name":"success","nameLocation":"3553:7:14","nodeType":"VariableDeclaration","scope":1806,"src":"3548:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1790,"name":"bool","nodeType":"ElementaryTypeName","src":"3548:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":1799,"initialValue":{"arguments":[{"id":1793,"name":"_gas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1777,"src":"3571:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1794,"name":"_address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1779,"src":"3577:8:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1795,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1781,"src":"3587:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1796,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1783,"src":"3595:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":1797,"name":"_isSystem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1785,"src":"3602:9:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1792,"name":"rawCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1955,"src":"3563:7:14","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$_t_bool_$returns$_t_bool_$","typeString":"function (uint256,address,uint256,bytes calldata,bool) returns (bool)"}},"id":1798,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3563:49:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"3548:64:14"},{"expression":{"id":1804,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1800,"name":"returnData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1788,"src":"3622:10:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":1802,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1791,"src":"3653:7:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1801,"name":"_verifyCallResult","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2068,"src":"3635:17:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_bytes_memory_ptr_$","typeString":"function (bool) pure returns (bytes memory)"}},"id":1803,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3635:26:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"3622:39:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1805,"nodeType":"ExpressionStatement","src":"3622:39:14"}]},"documentation":{"id":1775,"nodeType":"StructuredDocumentation","src":"2945:399:14","text":"@notice Perform a `call` without copying calldata to memory.\n @param _gas The gas to use for the call.\n @param _address The address to call.\n @param _value The `msg.value` to send.\n @param _data The calldata to use for the call.\n @param _isSystem Whether the call should contain the `isSystem` flag.\n @return returnData The copied to memory return data."},"id":1807,"implemented":true,"kind":"function","modifiers":[],"name":"call","nameLocation":"3358:4:14","nodeType":"FunctionDefinition","parameters":{"id":1786,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1777,"mutability":"mutable","name":"_gas","nameLocation":"3380:4:14","nodeType":"VariableDeclaration","scope":1807,"src":"3372:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1776,"name":"uint256","nodeType":"ElementaryTypeName","src":"3372:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1779,"mutability":"mutable","name":"_address","nameLocation":"3402:8:14","nodeType":"VariableDeclaration","scope":1807,"src":"3394:16:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1778,"name":"address","nodeType":"ElementaryTypeName","src":"3394:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1781,"mutability":"mutable","name":"_value","nameLocation":"3428:6:14","nodeType":"VariableDeclaration","scope":1807,"src":"3420:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1780,"name":"uint256","nodeType":"ElementaryTypeName","src":"3420:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1783,"mutability":"mutable","name":"_data","nameLocation":"3459:5:14","nodeType":"VariableDeclaration","scope":1807,"src":"3444:20:14","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1782,"name":"bytes","nodeType":"ElementaryTypeName","src":"3444:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1785,"mutability":"mutable","name":"_isSystem","nameLocation":"3479:9:14","nodeType":"VariableDeclaration","scope":1807,"src":"3474:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1784,"name":"bool","nodeType":"ElementaryTypeName","src":"3474:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3362:132:14"},"returnParameters":{"id":1789,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1788,"mutability":"mutable","name":"returnData","nameLocation":"3526:10:14","nodeType":"VariableDeclaration","scope":1807,"src":"3513:23:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1787,"name":"bytes","nodeType":"ElementaryTypeName","src":"3513:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3512:25:14"},"scope":2170,"src":"3349:319:14","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":1833,"nodeType":"Block","src":"4111:117:14","statements":[{"assignments":[1820],"declarations":[{"constant":false,"id":1820,"mutability":"mutable","name":"success","nameLocation":"4126:7:14","nodeType":"VariableDeclaration","scope":1833,"src":"4121:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1819,"name":"bool","nodeType":"ElementaryTypeName","src":"4121:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":1826,"initialValue":{"arguments":[{"id":1822,"name":"_gas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1810,"src":"4150:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1823,"name":"_address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1812,"src":"4156:8:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1824,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1814,"src":"4166:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":1821,"name":"rawStaticCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1980,"src":"4136:13:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_address_$_t_bytes_calldata_ptr_$returns$_t_bool_$","typeString":"function (uint256,address,bytes calldata) view returns (bool)"}},"id":1825,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4136:36:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"4121:51:14"},{"expression":{"id":1831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1827,"name":"returnData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1817,"src":"4182:10:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":1829,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1820,"src":"4213:7:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1828,"name":"_verifyCallResult","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2068,"src":"4195:17:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_bytes_memory_ptr_$","typeString":"function (bool) pure returns (bytes memory)"}},"id":1830,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4195:26:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"4182:39:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1832,"nodeType":"ExpressionStatement","src":"4182:39:14"}]},"documentation":{"id":1808,"nodeType":"StructuredDocumentation","src":"3674:280:14","text":"@notice Perform a `staticCall` without copying calldata to memory.\n @param _gas The gas to use for the call.\n @param _address The address to call.\n @param _data The calldata to use for the call.\n @return returnData The copied to memory return data."},"id":1834,"implemented":true,"kind":"function","modifiers":[],"name":"staticCall","nameLocation":"3968:10:14","nodeType":"FunctionDefinition","parameters":{"id":1815,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1810,"mutability":"mutable","name":"_gas","nameLocation":"3996:4:14","nodeType":"VariableDeclaration","scope":1834,"src":"3988:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1809,"name":"uint256","nodeType":"ElementaryTypeName","src":"3988:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1812,"mutability":"mutable","name":"_address","nameLocation":"4018:8:14","nodeType":"VariableDeclaration","scope":1834,"src":"4010:16:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1811,"name":"address","nodeType":"ElementaryTypeName","src":"4010:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1814,"mutability":"mutable","name":"_data","nameLocation":"4051:5:14","nodeType":"VariableDeclaration","scope":1834,"src":"4036:20:14","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1813,"name":"bytes","nodeType":"ElementaryTypeName","src":"4036:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3978:84:14"},"returnParameters":{"id":1818,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1817,"mutability":"mutable","name":"returnData","nameLocation":"4099:10:14","nodeType":"VariableDeclaration","scope":1834,"src":"4086:23:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1816,"name":"bytes","nodeType":"ElementaryTypeName","src":"4086:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4085:25:14"},"scope":2170,"src":"3959:269:14","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":1860,"nodeType":"Block","src":"4670:119:14","statements":[{"assignments":[1847],"declarations":[{"constant":false,"id":1847,"mutability":"mutable","name":"success","nameLocation":"4685:7:14","nodeType":"VariableDeclaration","scope":1860,"src":"4680:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1846,"name":"bool","nodeType":"ElementaryTypeName","src":"4680:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":1853,"initialValue":{"arguments":[{"id":1849,"name":"_gas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1837,"src":"4711:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1850,"name":"_address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1839,"src":"4717:8:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1851,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1841,"src":"4727:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":1848,"name":"rawDelegateCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2005,"src":"4695:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_bytes_calldata_ptr_$returns$_t_bool_$","typeString":"function (uint256,address,bytes calldata) returns (bool)"}},"id":1852,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4695:38:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"4680:53:14"},{"expression":{"id":1858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1854,"name":"returnData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1844,"src":"4743:10:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":1856,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1847,"src":"4774:7:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1855,"name":"_verifyCallResult","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2068,"src":"4756:17:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_bytes_memory_ptr_$","typeString":"function (bool) pure returns (bytes memory)"}},"id":1857,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4756:26:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"4743:39:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1859,"nodeType":"ExpressionStatement","src":"4743:39:14"}]},"documentation":{"id":1835,"nodeType":"StructuredDocumentation","src":"4234:282:14","text":"@notice Perform a `delegateCall` without copying calldata to memory.\n @param _gas The gas to use for the call.\n @param _address The address to call.\n @param _data The calldata to use for the call.\n @return returnData The copied to memory return data."},"id":1861,"implemented":true,"kind":"function","modifiers":[],"name":"delegateCall","nameLocation":"4530:12:14","nodeType":"FunctionDefinition","parameters":{"id":1842,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1837,"mutability":"mutable","name":"_gas","nameLocation":"4560:4:14","nodeType":"VariableDeclaration","scope":1861,"src":"4552:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1836,"name":"uint256","nodeType":"ElementaryTypeName","src":"4552:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1839,"mutability":"mutable","name":"_address","nameLocation":"4582:8:14","nodeType":"VariableDeclaration","scope":1861,"src":"4574:16:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1838,"name":"address","nodeType":"ElementaryTypeName","src":"4574:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1841,"mutability":"mutable","name":"_data","nameLocation":"4615:5:14","nodeType":"VariableDeclaration","scope":1861,"src":"4600:20:14","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1840,"name":"bytes","nodeType":"ElementaryTypeName","src":"4600:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4542:84:14"},"returnParameters":{"id":1845,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1844,"mutability":"mutable","name":"returnData","nameLocation":"4658:10:14","nodeType":"VariableDeclaration","scope":1861,"src":"4645:23:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1843,"name":"bytes","nodeType":"ElementaryTypeName","src":"4645:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4644:25:14"},"scope":2170,"src":"4521:268:14","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":1896,"nodeType":"Block","src":"5568:156:14","statements":[{"assignments":[1880],"declarations":[{"constant":false,"id":1880,"mutability":"mutable","name":"success","nameLocation":"5583:7:14","nodeType":"VariableDeclaration","scope":1896,"src":"5578:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1879,"name":"bool","nodeType":"ElementaryTypeName","src":"5578:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":1889,"initialValue":{"arguments":[{"id":1882,"name":"_gas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1864,"src":"5606:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1883,"name":"_address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1866,"src":"5612:8:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1884,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1868,"src":"5622:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":1885,"name":"_whoToMimic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1870,"src":"5629:11:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1886,"name":"_isConstructor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1872,"src":"5642:14:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":1887,"name":"_isSystem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1874,"src":"5658:9:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1881,"name":"rawMimicCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2040,"src":"5593:12:14","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_bytes_calldata_ptr_$_t_address_$_t_bool_$_t_bool_$returns$_t_bool_$","typeString":"function (uint256,address,bytes calldata,address,bool,bool) returns (bool)"}},"id":1888,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5593:75:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"5578:90:14"},{"expression":{"id":1894,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1890,"name":"returnData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1877,"src":"5678:10:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":1892,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1880,"src":"5709:7:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1891,"name":"_verifyCallResult","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2068,"src":"5691:17:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_bytes_memory_ptr_$","typeString":"function (bool) pure returns (bytes memory)"}},"id":1893,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5691:26:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"5678:39:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1895,"nodeType":"ExpressionStatement","src":"5678:39:14"}]},"documentation":{"id":1862,"nodeType":"StructuredDocumentation","src":"4795:540:14","text":"@notice Perform a `mimicCall` (a call with custom msg.sender) without copying calldata to memory.\n @param _gas The gas to use for the call.\n @param _address The address to call.\n @param _data The calldata to use for the call.\n @param _whoToMimic The `msg.sender` for the next call.\n @param _isConstructor Whether the call should contain the `isConstructor` flag.\n @param _isSystem Whether the call should contain the `isSystem` flag.\n @return returnData The copied to memory return data."},"id":1897,"implemented":true,"kind":"function","modifiers":[],"name":"mimicCall","nameLocation":"5349:9:14","nodeType":"FunctionDefinition","parameters":{"id":1875,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1864,"mutability":"mutable","name":"_gas","nameLocation":"5376:4:14","nodeType":"VariableDeclaration","scope":1897,"src":"5368:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1863,"name":"uint256","nodeType":"ElementaryTypeName","src":"5368:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1866,"mutability":"mutable","name":"_address","nameLocation":"5398:8:14","nodeType":"VariableDeclaration","scope":1897,"src":"5390:16:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1865,"name":"address","nodeType":"ElementaryTypeName","src":"5390:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1868,"mutability":"mutable","name":"_data","nameLocation":"5431:5:14","nodeType":"VariableDeclaration","scope":1897,"src":"5416:20:14","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1867,"name":"bytes","nodeType":"ElementaryTypeName","src":"5416:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1870,"mutability":"mutable","name":"_whoToMimic","nameLocation":"5454:11:14","nodeType":"VariableDeclaration","scope":1897,"src":"5446:19:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1869,"name":"address","nodeType":"ElementaryTypeName","src":"5446:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1872,"mutability":"mutable","name":"_isConstructor","nameLocation":"5480:14:14","nodeType":"VariableDeclaration","scope":1897,"src":"5475:19:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1871,"name":"bool","nodeType":"ElementaryTypeName","src":"5475:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":1874,"mutability":"mutable","name":"_isSystem","nameLocation":"5509:9:14","nodeType":"VariableDeclaration","scope":1897,"src":"5504:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1873,"name":"bool","nodeType":"ElementaryTypeName","src":"5504:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5358:166:14"},"returnParameters":{"id":1878,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1877,"mutability":"mutable","name":"returnData","nameLocation":"5556:10:14","nodeType":"VariableDeclaration","scope":1897,"src":"5543:23:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1876,"name":"bytes","nodeType":"ElementaryTypeName","src":"5543:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5542:25:14"},"scope":2170,"src":"5340:384:14","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":1954,"nodeType":"Block","src":"6311:960:14","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1915,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1913,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1904,"src":"6325:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":1914,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6335:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6325:11:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1952,"nodeType":"Block","src":"6603:662:14","statements":[{"expression":{"arguments":[{"id":1930,"name":"_gas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1900,"src":"6646:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1931,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1906,"src":"6652:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"hexValue":"66616c7365","id":1932,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6659:5:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"74727565","id":1933,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6666:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1929,"name":"_loadFarCallABIIntoActivePtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2169,"src":"6617:28:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_bytes_calldata_ptr_$_t_bool_$_t_bool_$returns$__$","typeString":"function (uint256,bytes calldata,bool,bool) view"}},"id":1934,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6617:54:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1935,"nodeType":"ExpressionStatement","src":"6617:54:14"},{"assignments":[1937],"declarations":[{"constant":false,"id":1937,"mutability":"mutable","name":"msgValueSimulator","nameLocation":"6789:17:14","nodeType":"VariableDeclaration","scope":1952,"src":"6781:25:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1936,"name":"address","nodeType":"ElementaryTypeName","src":"6781:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":1939,"initialValue":{"id":1938,"name":"MSG_VALUE_SYSTEM_CONTRACT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1040,"src":"6809:25:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6781:53:14"},{"assignments":[1941],"declarations":[{"constant":false,"id":1941,"mutability":"mutable","name":"callAddr","nameLocation":"6856:8:14","nodeType":"VariableDeclaration","scope":1952,"src":"6848:16:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1940,"name":"address","nodeType":"ElementaryTypeName","src":"6848:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":1943,"initialValue":{"id":1942,"name":"SYSTEM_CALL_BY_REF_CALL_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3206,"src":"6867:31:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6848:50:14"},{"assignments":[1945],"declarations":[{"constant":false,"id":1945,"mutability":"mutable","name":"forwardMask","nameLocation":"7050:11:14","nodeType":"VariableDeclaration","scope":1952,"src":"7042:19:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1944,"name":"uint256","nodeType":"ElementaryTypeName","src":"7042:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1950,"initialValue":{"condition":{"id":1946,"name":"_isSystem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1908,"src":"7064:9:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":1948,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7112:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":1949,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"7064:49:14","trueExpression":{"id":1947,"name":"MSG_VALUE_SIMULATOR_IS_SYSTEM_BIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1107,"src":"7076:33:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7042:71:14"},{"AST":{"nodeType":"YulBlock","src":"7137:118:14","statements":[{"nodeType":"YulAssignment","src":"7155:86:14","value":{"arguments":[{"name":"msgValueSimulator","nodeType":"YulIdentifier","src":"7171:17:14"},{"name":"callAddr","nodeType":"YulIdentifier","src":"7190:8:14"},{"name":"_value","nodeType":"YulIdentifier","src":"7200:6:14"},{"name":"_address","nodeType":"YulIdentifier","src":"7208:8:14"},{"kind":"number","nodeType":"YulLiteral","src":"7218:6:14","type":"","value":"0xFFFF"},{"name":"forwardMask","nodeType":"YulIdentifier","src":"7226:11:14"},{"kind":"number","nodeType":"YulLiteral","src":"7239:1:14","type":"","value":"0"}],"functionName":{"name":"call","nodeType":"YulIdentifier","src":"7166:4:14"},"nodeType":"YulFunctionCall","src":"7166:75:14"},"variableNames":[{"name":"success","nodeType":"YulIdentifier","src":"7155:7:14"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":1902,"isOffset":false,"isSlot":false,"src":"7208:8:14","valueSize":1},{"declaration":1904,"isOffset":false,"isSlot":false,"src":"7200:6:14","valueSize":1},{"declaration":1941,"isOffset":false,"isSlot":false,"src":"7190:8:14","valueSize":1},{"declaration":1945,"isOffset":false,"isSlot":false,"src":"7226:11:14","valueSize":1},{"declaration":1937,"isOffset":false,"isSlot":false,"src":"7171:17:14","valueSize":1},{"declaration":1911,"isOffset":false,"isSlot":false,"src":"7155:7:14","valueSize":1}],"id":1951,"nodeType":"InlineAssembly","src":"7128:127:14"}]},"id":1953,"nodeType":"IfStatement","src":"6321:944:14","trueBody":{"id":1928,"nodeType":"Block","src":"6338:259:14","statements":[{"expression":{"arguments":[{"id":1917,"name":"_gas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1900,"src":"6381:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1918,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1906,"src":"6387:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"hexValue":"66616c7365","id":1919,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6394:5:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"id":1920,"name":"_isSystem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1908,"src":"6401:9:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1916,"name":"_loadFarCallABIIntoActivePtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2169,"src":"6352:28:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_bytes_calldata_ptr_$_t_bool_$_t_bool_$returns$__$","typeString":"function (uint256,bytes calldata,bool,bool) view"}},"id":1921,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6352:59:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1922,"nodeType":"ExpressionStatement","src":"6352:59:14"},{"assignments":[1924],"declarations":[{"constant":false,"id":1924,"mutability":"mutable","name":"callAddr","nameLocation":"6434:8:14","nodeType":"VariableDeclaration","scope":1928,"src":"6426:16:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1923,"name":"address","nodeType":"ElementaryTypeName","src":"6426:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":1926,"initialValue":{"id":1925,"name":"RAW_FAR_CALL_BY_REF_CALL_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3184,"src":"6445:32:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6426:51:14"},{"AST":{"nodeType":"YulBlock","src":"6500:87:14","statements":[{"nodeType":"YulAssignment","src":"6518:55:14","value":{"arguments":[{"name":"_address","nodeType":"YulIdentifier","src":"6534:8:14"},{"name":"callAddr","nodeType":"YulIdentifier","src":"6544:8:14"},{"kind":"number","nodeType":"YulLiteral","src":"6554:1:14","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6557:1:14","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6560:6:14","type":"","value":"0xFFFF"},{"kind":"number","nodeType":"YulLiteral","src":"6568:1:14","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6571:1:14","type":"","value":"0"}],"functionName":{"name":"call","nodeType":"YulIdentifier","src":"6529:4:14"},"nodeType":"YulFunctionCall","src":"6529:44:14"},"variableNames":[{"name":"success","nodeType":"YulIdentifier","src":"6518:7:14"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":1902,"isOffset":false,"isSlot":false,"src":"6534:8:14","valueSize":1},{"declaration":1924,"isOffset":false,"isSlot":false,"src":"6544:8:14","valueSize":1},{"declaration":1911,"isOffset":false,"isSlot":false,"src":"6518:7:14","valueSize":1}],"id":1927,"nodeType":"InlineAssembly","src":"6491:96:14"}]}}]},"documentation":{"id":1898,"nodeType":"StructuredDocumentation","src":"5730:395:14","text":"@notice Perform a `call` without copying calldata to memory.\n @param _gas The gas to use for the call.\n @param _address The address to call.\n @param _value The `msg.value` to send.\n @param _data The calldata to use for the call.\n @param _isSystem Whether the call should contain the `isSystem` flag.\n @return success whether the call was successful."},"id":1955,"implemented":true,"kind":"function","modifiers":[],"name":"rawCall","nameLocation":"6139:7:14","nodeType":"FunctionDefinition","parameters":{"id":1909,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1900,"mutability":"mutable","name":"_gas","nameLocation":"6164:4:14","nodeType":"VariableDeclaration","scope":1955,"src":"6156:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1899,"name":"uint256","nodeType":"ElementaryTypeName","src":"6156:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1902,"mutability":"mutable","name":"_address","nameLocation":"6186:8:14","nodeType":"VariableDeclaration","scope":1955,"src":"6178:16:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1901,"name":"address","nodeType":"ElementaryTypeName","src":"6178:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1904,"mutability":"mutable","name":"_value","nameLocation":"6212:6:14","nodeType":"VariableDeclaration","scope":1955,"src":"6204:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1903,"name":"uint256","nodeType":"ElementaryTypeName","src":"6204:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1906,"mutability":"mutable","name":"_data","nameLocation":"6243:5:14","nodeType":"VariableDeclaration","scope":1955,"src":"6228:20:14","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1905,"name":"bytes","nodeType":"ElementaryTypeName","src":"6228:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1908,"mutability":"mutable","name":"_isSystem","nameLocation":"6263:9:14","nodeType":"VariableDeclaration","scope":1955,"src":"6258:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1907,"name":"bool","nodeType":"ElementaryTypeName","src":"6258:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6146:132:14"},"returnParameters":{"id":1912,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1911,"mutability":"mutable","name":"success","nameLocation":"6302:7:14","nodeType":"VariableDeclaration","scope":1955,"src":"6297:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1910,"name":"bool","nodeType":"ElementaryTypeName","src":"6297:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6296:14:14"},"scope":2170,"src":"6130:1141:14","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":1979,"nodeType":"Block","src":"7672:234:14","statements":[{"expression":{"arguments":[{"id":1968,"name":"_gas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1958,"src":"7711:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1969,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1962,"src":"7717:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"hexValue":"66616c7365","id":1970,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7724:5:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"66616c7365","id":1971,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7731:5:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1967,"name":"_loadFarCallABIIntoActivePtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2169,"src":"7682:28:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_bytes_calldata_ptr_$_t_bool_$_t_bool_$returns$__$","typeString":"function (uint256,bytes calldata,bool,bool) view"}},"id":1972,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7682:55:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1973,"nodeType":"ExpressionStatement","src":"7682:55:14"},{"assignments":[1975],"declarations":[{"constant":false,"id":1975,"mutability":"mutable","name":"callAddr","nameLocation":"7756:8:14","nodeType":"VariableDeclaration","scope":1979,"src":"7748:16:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1974,"name":"address","nodeType":"ElementaryTypeName","src":"7748:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":1977,"initialValue":{"id":1976,"name":"RAW_FAR_CALL_BY_REF_CALL_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3184,"src":"7767:32:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"7748:51:14"},{"AST":{"nodeType":"YulBlock","src":"7818:82:14","statements":[{"nodeType":"YulAssignment","src":"7832:58:14","value":{"arguments":[{"name":"_address","nodeType":"YulIdentifier","src":"7854:8:14"},{"name":"callAddr","nodeType":"YulIdentifier","src":"7864:8:14"},{"kind":"number","nodeType":"YulLiteral","src":"7874:1:14","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7877:6:14","type":"","value":"0xFFFF"},{"kind":"number","nodeType":"YulLiteral","src":"7885:1:14","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7888:1:14","type":"","value":"0"}],"functionName":{"name":"staticcall","nodeType":"YulIdentifier","src":"7843:10:14"},"nodeType":"YulFunctionCall","src":"7843:47:14"},"variableNames":[{"name":"success","nodeType":"YulIdentifier","src":"7832:7:14"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":1960,"isOffset":false,"isSlot":false,"src":"7854:8:14","valueSize":1},{"declaration":1975,"isOffset":false,"isSlot":false,"src":"7864:8:14","valueSize":1},{"declaration":1965,"isOffset":false,"isSlot":false,"src":"7832:7:14","valueSize":1}],"id":1978,"nodeType":"InlineAssembly","src":"7809:91:14"}]},"documentation":{"id":1956,"nodeType":"StructuredDocumentation","src":"7277:276:14","text":"@notice Perform a `staticCall` without copying calldata to memory.\n @param _gas The gas to use for the call.\n @param _address The address to call.\n @param _data The calldata to use for the call.\n @return success whether the call was successful."},"id":1980,"implemented":true,"kind":"function","modifiers":[],"name":"rawStaticCall","nameLocation":"7567:13:14","nodeType":"FunctionDefinition","parameters":{"id":1963,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1958,"mutability":"mutable","name":"_gas","nameLocation":"7589:4:14","nodeType":"VariableDeclaration","scope":1980,"src":"7581:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1957,"name":"uint256","nodeType":"ElementaryTypeName","src":"7581:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1960,"mutability":"mutable","name":"_address","nameLocation":"7603:8:14","nodeType":"VariableDeclaration","scope":1980,"src":"7595:16:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1959,"name":"address","nodeType":"ElementaryTypeName","src":"7595:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1962,"mutability":"mutable","name":"_data","nameLocation":"7628:5:14","nodeType":"VariableDeclaration","scope":1980,"src":"7613:20:14","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1961,"name":"bytes","nodeType":"ElementaryTypeName","src":"7613:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7580:54:14"},"returnParameters":{"id":1966,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1965,"mutability":"mutable","name":"success","nameLocation":"7663:7:14","nodeType":"VariableDeclaration","scope":1980,"src":"7658:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1964,"name":"bool","nodeType":"ElementaryTypeName","src":"7658:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7657:14:14"},"scope":2170,"src":"7558:348:14","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":2004,"nodeType":"Block","src":"8306:236:14","statements":[{"expression":{"arguments":[{"id":1993,"name":"_gas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1983,"src":"8345:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1994,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1987,"src":"8351:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"hexValue":"66616c7365","id":1995,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8358:5:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"66616c7365","id":1996,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8365:5:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1992,"name":"_loadFarCallABIIntoActivePtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2169,"src":"8316:28:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_bytes_calldata_ptr_$_t_bool_$_t_bool_$returns$__$","typeString":"function (uint256,bytes calldata,bool,bool) view"}},"id":1997,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8316:55:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1998,"nodeType":"ExpressionStatement","src":"8316:55:14"},{"assignments":[2000],"declarations":[{"constant":false,"id":2000,"mutability":"mutable","name":"callAddr","nameLocation":"8390:8:14","nodeType":"VariableDeclaration","scope":2004,"src":"8382:16:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1999,"name":"address","nodeType":"ElementaryTypeName","src":"8382:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":2002,"initialValue":{"id":2001,"name":"RAW_FAR_CALL_BY_REF_CALL_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3184,"src":"8401:32:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"8382:51:14"},{"AST":{"nodeType":"YulBlock","src":"8452:84:14","statements":[{"nodeType":"YulAssignment","src":"8466:60:14","value":{"arguments":[{"name":"_address","nodeType":"YulIdentifier","src":"8490:8:14"},{"name":"callAddr","nodeType":"YulIdentifier","src":"8500:8:14"},{"kind":"number","nodeType":"YulLiteral","src":"8510:1:14","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8513:6:14","type":"","value":"0xFFFF"},{"kind":"number","nodeType":"YulLiteral","src":"8521:1:14","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8524:1:14","type":"","value":"0"}],"functionName":{"name":"delegatecall","nodeType":"YulIdentifier","src":"8477:12:14"},"nodeType":"YulFunctionCall","src":"8477:49:14"},"variableNames":[{"name":"success","nodeType":"YulIdentifier","src":"8466:7:14"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":1985,"isOffset":false,"isSlot":false,"src":"8490:8:14","valueSize":1},{"declaration":2000,"isOffset":false,"isSlot":false,"src":"8500:8:14","valueSize":1},{"declaration":1990,"isOffset":false,"isSlot":false,"src":"8466:7:14","valueSize":1}],"id":2003,"nodeType":"InlineAssembly","src":"8443:93:14"}]},"documentation":{"id":1981,"nodeType":"StructuredDocumentation","src":"7912:278:14","text":"@notice Perform a `delegatecall` without copying calldata to memory.\n @param _gas The gas to use for the call.\n @param _address The address to call.\n @param _data The calldata to use for the call.\n @return success whether the call was successful."},"id":2005,"implemented":true,"kind":"function","modifiers":[],"name":"rawDelegateCall","nameLocation":"8204:15:14","nodeType":"FunctionDefinition","parameters":{"id":1988,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1983,"mutability":"mutable","name":"_gas","nameLocation":"8228:4:14","nodeType":"VariableDeclaration","scope":2005,"src":"8220:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1982,"name":"uint256","nodeType":"ElementaryTypeName","src":"8220:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1985,"mutability":"mutable","name":"_address","nameLocation":"8242:8:14","nodeType":"VariableDeclaration","scope":2005,"src":"8234:16:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1984,"name":"address","nodeType":"ElementaryTypeName","src":"8234:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1987,"mutability":"mutable","name":"_data","nameLocation":"8267:5:14","nodeType":"VariableDeclaration","scope":2005,"src":"8252:20:14","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1986,"name":"bytes","nodeType":"ElementaryTypeName","src":"8252:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8219:54:14"},"returnParameters":{"id":1991,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1990,"mutability":"mutable","name":"success","nameLocation":"8297:7:14","nodeType":"VariableDeclaration","scope":2005,"src":"8292:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1989,"name":"bool","nodeType":"ElementaryTypeName","src":"8292:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8291:14:14"},"scope":2170,"src":"8195:347:14","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2039,"nodeType":"Block","src":"9398:461:14","statements":[{"expression":{"arguments":[{"id":2024,"name":"_gas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2008,"src":"9437:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2025,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2012,"src":"9443:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":2026,"name":"_isConstructor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2016,"src":"9450:14:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":2027,"name":"_isSystem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2018,"src":"9466:9:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":2023,"name":"_loadFarCallABIIntoActivePtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2169,"src":"9408:28:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_bytes_calldata_ptr_$_t_bool_$_t_bool_$returns$__$","typeString":"function (uint256,bytes calldata,bool,bool) view"}},"id":2028,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9408:68:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2029,"nodeType":"ExpressionStatement","src":"9408:68:14"},{"assignments":[2031],"declarations":[{"constant":false,"id":2031,"mutability":"mutable","name":"callAddr","nameLocation":"9495:8:14","nodeType":"VariableDeclaration","scope":2039,"src":"9487:16:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2030,"name":"address","nodeType":"ElementaryTypeName","src":"9487:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":2033,"initialValue":{"id":2032,"name":"MIMIC_CALL_BY_REF_CALL_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3151,"src":"9506:30:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"9487:49:14"},{"assignments":[2035],"declarations":[{"constant":false,"id":2035,"mutability":"mutable","name":"cleanupMask","nameLocation":"9554:11:14","nodeType":"VariableDeclaration","scope":2039,"src":"9546:19:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2034,"name":"uint256","nodeType":"ElementaryTypeName","src":"9546:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2037,"initialValue":{"id":2036,"name":"ADDRESS_MASK","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2520,"src":"9568:12:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9546:34:14"},{"AST":{"nodeType":"YulBlock","src":"9599:254:14","statements":[{"nodeType":"YulAssignment","src":"9725:44:14","value":{"arguments":[{"name":"_whoToMimic","nodeType":"YulIdentifier","src":"9744:11:14"},{"name":"cleanupMask","nodeType":"YulIdentifier","src":"9757:11:14"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9740:3:14"},"nodeType":"YulFunctionCall","src":"9740:29:14"},"variableNames":[{"name":"_whoToMimic","nodeType":"YulIdentifier","src":"9725:11:14"}]},{"nodeType":"YulAssignment","src":"9783:60:14","value":{"arguments":[{"name":"_address","nodeType":"YulIdentifier","src":"9799:8:14"},{"name":"callAddr","nodeType":"YulIdentifier","src":"9809:8:14"},{"kind":"number","nodeType":"YulLiteral","src":"9819:1:14","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9822:1:14","type":"","value":"0"},{"name":"_whoToMimic","nodeType":"YulIdentifier","src":"9825:11:14"},{"kind":"number","nodeType":"YulLiteral","src":"9838:1:14","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9841:1:14","type":"","value":"0"}],"functionName":{"name":"call","nodeType":"YulIdentifier","src":"9794:4:14"},"nodeType":"YulFunctionCall","src":"9794:49:14"},"variableNames":[{"name":"success","nodeType":"YulIdentifier","src":"9783:7:14"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":2010,"isOffset":false,"isSlot":false,"src":"9799:8:14","valueSize":1},{"declaration":2014,"isOffset":false,"isSlot":false,"src":"9725:11:14","valueSize":1},{"declaration":2014,"isOffset":false,"isSlot":false,"src":"9744:11:14","valueSize":1},{"declaration":2014,"isOffset":false,"isSlot":false,"src":"9825:11:14","valueSize":1},{"declaration":2031,"isOffset":false,"isSlot":false,"src":"9809:8:14","valueSize":1},{"declaration":2035,"isOffset":false,"isSlot":false,"src":"9757:11:14","valueSize":1},{"declaration":2021,"isOffset":false,"isSlot":false,"src":"9783:7:14","valueSize":1}],"id":2038,"nodeType":"InlineAssembly","src":"9590:263:14"}]},"documentation":{"id":2006,"nodeType":"StructuredDocumentation","src":"8548:625:14","text":"@notice Perform a `mimicCall` (call with custom msg.sender) without copying calldata to memory.\n @param _gas The gas to use for the call.\n @param _address The address to call.\n @param _data The calldata to use for the call.\n @param _whoToMimic The `msg.sender` for the next call.\n @param _isConstructor Whether the call should contain the `isConstructor` flag.\n @param _isSystem Whether the call should contain the `isSystem` flag.\n @return success whether the call was successful.\n @dev If called not in kernel mode, it will result in a revert (enforced by the VM)"},"id":2040,"implemented":true,"kind":"function","modifiers":[],"name":"rawMimicCall","nameLocation":"9187:12:14","nodeType":"FunctionDefinition","parameters":{"id":2019,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2008,"mutability":"mutable","name":"_gas","nameLocation":"9217:4:14","nodeType":"VariableDeclaration","scope":2040,"src":"9209:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2007,"name":"uint256","nodeType":"ElementaryTypeName","src":"9209:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2010,"mutability":"mutable","name":"_address","nameLocation":"9239:8:14","nodeType":"VariableDeclaration","scope":2040,"src":"9231:16:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2009,"name":"address","nodeType":"ElementaryTypeName","src":"9231:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2012,"mutability":"mutable","name":"_data","nameLocation":"9272:5:14","nodeType":"VariableDeclaration","scope":2040,"src":"9257:20:14","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":2011,"name":"bytes","nodeType":"ElementaryTypeName","src":"9257:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2014,"mutability":"mutable","name":"_whoToMimic","nameLocation":"9295:11:14","nodeType":"VariableDeclaration","scope":2040,"src":"9287:19:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2013,"name":"address","nodeType":"ElementaryTypeName","src":"9287:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2016,"mutability":"mutable","name":"_isConstructor","nameLocation":"9321:14:14","nodeType":"VariableDeclaration","scope":2040,"src":"9316:19:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2015,"name":"bool","nodeType":"ElementaryTypeName","src":"9316:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":2018,"mutability":"mutable","name":"_isSystem","nameLocation":"9350:9:14","nodeType":"VariableDeclaration","scope":2040,"src":"9345:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2017,"name":"bool","nodeType":"ElementaryTypeName","src":"9345:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"9199:166:14"},"returnParameters":{"id":2022,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2021,"mutability":"mutable","name":"success","nameLocation":"9389:7:14","nodeType":"VariableDeclaration","scope":2040,"src":"9384:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2020,"name":"bool","nodeType":"ElementaryTypeName","src":"9384:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"9383:14:14"},"scope":2170,"src":"9178:681:14","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2067,"nodeType":"Block","src":"10186:336:14","statements":[{"condition":{"id":2048,"name":"_success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2043,"src":"10200:8:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":2065,"nodeType":"Block","src":"10474:42:14","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":2062,"name":"propagateRevert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2074,"src":"10488:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$__$","typeString":"function () pure"}},"id":2063,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10488:17:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2064,"nodeType":"ExpressionStatement","src":"10488:17:14"}]},"id":2066,"nodeType":"IfStatement","src":"10196:320:14","trueBody":{"id":2061,"nodeType":"Block","src":"10210:258:14","statements":[{"assignments":[2050],"declarations":[{"constant":false,"id":2050,"mutability":"mutable","name":"size","nameLocation":"10232:4:14","nodeType":"VariableDeclaration","scope":2061,"src":"10224:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2049,"name":"uint256","nodeType":"ElementaryTypeName","src":"10224:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2051,"nodeType":"VariableDeclarationStatement","src":"10224:12:14"},{"AST":{"nodeType":"YulBlock","src":"10259:56:14","statements":[{"nodeType":"YulAssignment","src":"10277:24:14","value":{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"10285:14:14"},"nodeType":"YulFunctionCall","src":"10285:16:14"},"variableNames":[{"name":"size","nodeType":"YulIdentifier","src":"10277:4:14"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":2050,"isOffset":false,"isSlot":false,"src":"10277:4:14","valueSize":1}],"id":2052,"nodeType":"InlineAssembly","src":"10250:65:14"},{"expression":{"id":2058,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2053,"name":"returnData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2046,"src":"10329:10:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":2056,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2050,"src":"10352:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2055,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"10342:9:14","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":2054,"name":"bytes","nodeType":"ElementaryTypeName","src":"10346:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":2057,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10342:15:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"10329:28:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2059,"nodeType":"ExpressionStatement","src":"10329:28:14"},{"AST":{"nodeType":"YulBlock","src":"10380:78:14","statements":[{"expression":{"arguments":[{"arguments":[{"name":"returnData","nodeType":"YulIdentifier","src":"10417:10:14"},{"kind":"number","nodeType":"YulLiteral","src":"10429:4:14","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10413:3:14"},"nodeType":"YulFunctionCall","src":"10413:21:14"},{"kind":"number","nodeType":"YulLiteral","src":"10436:1:14","type":"","value":"0"},{"name":"size","nodeType":"YulIdentifier","src":"10439:4:14"}],"functionName":{"name":"returndatacopy","nodeType":"YulIdentifier","src":"10398:14:14"},"nodeType":"YulFunctionCall","src":"10398:46:14"},"nodeType":"YulExpressionStatement","src":"10398:46:14"}]},"evmVersion":"paris","externalReferences":[{"declaration":2046,"isOffset":false,"isSlot":false,"src":"10417:10:14","valueSize":1},{"declaration":2050,"isOffset":false,"isSlot":false,"src":"10439:4:14","valueSize":1}],"id":2060,"nodeType":"InlineAssembly","src":"10371:87:14"}]}}]},"documentation":{"id":2041,"nodeType":"StructuredDocumentation","src":"9865:227:14","text":"@dev Verify that a low-level call was successful, and revert if it wasn't, by bubbling the revert reason.\n @param _success Whether the call was successful.\n @return returnData The copied to memory return data."},"id":2068,"implemented":true,"kind":"function","modifiers":[],"name":"_verifyCallResult","nameLocation":"10106:17:14","nodeType":"FunctionDefinition","parameters":{"id":2044,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2043,"mutability":"mutable","name":"_success","nameLocation":"10129:8:14","nodeType":"VariableDeclaration","scope":2068,"src":"10124:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2042,"name":"bool","nodeType":"ElementaryTypeName","src":"10124:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"10123:15:14"},"returnParameters":{"id":2047,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2046,"mutability":"mutable","name":"returnData","nameLocation":"10174:10:14","nodeType":"VariableDeclaration","scope":2068,"src":"10161:23:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2045,"name":"bytes","nodeType":"ElementaryTypeName","src":"10161:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"10160:25:14"},"scope":2170,"src":"10097:425:14","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":2073,"nodeType":"Block","src":"10647:144:14","statements":[{"AST":{"nodeType":"YulBlock","src":"10666:119:14","statements":[{"nodeType":"YulVariableDeclaration","src":"10680:28:14","value":{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"10692:14:14"},"nodeType":"YulFunctionCall","src":"10692:16:14"},"variables":[{"name":"size","nodeType":"YulTypedName","src":"10684:4:14","type":""}]},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10736:1:14","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10739:1:14","type":"","value":"0"},{"name":"size","nodeType":"YulIdentifier","src":"10742:4:14"}],"functionName":{"name":"returndatacopy","nodeType":"YulIdentifier","src":"10721:14:14"},"nodeType":"YulFunctionCall","src":"10721:26:14"},"nodeType":"YulExpressionStatement","src":"10721:26:14"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10767:1:14","type":"","value":"0"},{"name":"size","nodeType":"YulIdentifier","src":"10770:4:14"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10760:6:14"},"nodeType":"YulFunctionCall","src":"10760:15:14"},"nodeType":"YulExpressionStatement","src":"10760:15:14"}]},"evmVersion":"paris","externalReferences":[],"id":2072,"nodeType":"InlineAssembly","src":"10657:128:14"}]},"documentation":{"id":2069,"nodeType":"StructuredDocumentation","src":"10528:73:14","text":"@dev Propagate the revert reason from the current call to the caller."},"id":2074,"implemented":true,"kind":"function","modifiers":[],"name":"propagateRevert","nameLocation":"10615:15:14","nodeType":"FunctionDefinition","parameters":{"id":2070,"nodeType":"ParameterList","parameters":[],"src":"10630:2:14"},"returnParameters":{"id":2071,"nodeType":"ParameterList","parameters":[],"src":"10647:0:14"},"scope":2170,"src":"10606:185:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2168,"nodeType":"Block","src":"11305:1428:14","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":2086,"name":"SystemContractHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3048,"src":"11315:20:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SystemContractHelper_$3048_$","typeString":"type(library SystemContractHelper)"}},"id":2088,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11336:25:14","memberName":"loadCalldataIntoActivePtr","nodeType":"MemberAccess","referencedDeclaration":2578,"src":"11315:46:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":2089,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11315:48:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2090,"nodeType":"ExpressionStatement","src":"11315:48:14"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2091,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2079,"src":"11641:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":2092,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11647:6:14","memberName":"length","nodeType":"MemberAccess","src":"11641:12:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2093,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11657:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11641:17:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":2141,"nodeType":"Block","src":"11832:503:14","statements":[{"assignments":[2108],"declarations":[{"constant":false,"id":2108,"mutability":"mutable","name":"dataOffset","nameLocation":"11854:10:14","nodeType":"VariableDeclaration","scope":2141,"src":"11846:18:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2107,"name":"uint256","nodeType":"ElementaryTypeName","src":"11846:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2109,"nodeType":"VariableDeclarationStatement","src":"11846:18:14"},{"AST":{"nodeType":"YulBlock","src":"11887:58:14","statements":[{"nodeType":"YulAssignment","src":"11905:26:14","value":{"name":"_data.offset","nodeType":"YulIdentifier","src":"11919:12:14"},"variableNames":[{"name":"dataOffset","nodeType":"YulIdentifier","src":"11905:10:14"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":2079,"isOffset":true,"isSlot":false,"src":"11919:12:14","suffix":"offset","valueSize":1},{"declaration":2108,"isOffset":false,"isSlot":false,"src":"11905:10:14","valueSize":1}],"id":2110,"nodeType":"InlineAssembly","src":"11878:67:14"},{"expression":{"arguments":[{"arguments":[{"id":2116,"name":"dataOffset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2108,"src":"12080:10:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2115,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12073:6:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"},"typeName":{"id":2114,"name":"uint32","nodeType":"ElementaryTypeName","src":"12073:6:14","typeDescriptions":{}}},"id":2117,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12073:18:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"}],"expression":{"id":2111,"name":"SystemContractHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3048,"src":"12035:20:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SystemContractHelper_$3048_$","typeString":"type(library SystemContractHelper)"}},"id":2113,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12056:16:14","memberName":"ptrAddIntoActive","nodeType":"MemberAccess","referencedDeclaration":2606,"src":"12035:37:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint32_$returns$__$","typeString":"function (uint32) view"}},"id":2118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12035:57:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2119,"nodeType":"ExpressionStatement","src":"12035:57:14"},{"assignments":[2121],"declarations":[{"constant":false,"id":2121,"mutability":"mutable","name":"shrinkTo","nameLocation":"12196:8:14","nodeType":"VariableDeclaration","scope":2141,"src":"12189:15:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2120,"name":"uint32","nodeType":"ElementaryTypeName","src":"12189:6:14","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"id":2134,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2132,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":2124,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12214:3:14","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12218:4:14","memberName":"data","nodeType":"MemberAccess","src":"12214:8:14","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":2126,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12223:6:14","memberName":"length","nodeType":"MemberAccess","src":"12214:15:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2130,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2127,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2079,"src":"12233:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":2128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12239:6:14","memberName":"length","nodeType":"MemberAccess","src":"12233:12:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":2129,"name":"dataOffset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2108,"src":"12248:10:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12233:25:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2131,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12232:27:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12214:45:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2123,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12207:6:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"},"typeName":{"id":2122,"name":"uint32","nodeType":"ElementaryTypeName","src":"12207:6:14","typeDescriptions":{}}},"id":2133,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12207:53:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"VariableDeclarationStatement","src":"12189:71:14"},{"expression":{"arguments":[{"id":2138,"name":"shrinkTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2121,"src":"12315:8:14","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"}],"expression":{"id":2135,"name":"SystemContractHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3048,"src":"12274:20:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SystemContractHelper_$3048_$","typeString":"type(library SystemContractHelper)"}},"id":2137,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12295:19:14","memberName":"ptrShrinkIntoActive","nodeType":"MemberAccess","referencedDeclaration":2622,"src":"12274:40:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint32_$returns$__$","typeString":"function (uint32) view"}},"id":2139,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12274:50:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2140,"nodeType":"ExpressionStatement","src":"12274:50:14"}]},"id":2142,"nodeType":"IfStatement","src":"11637:698:14","trueBody":{"id":2106,"nodeType":"Block","src":"11660:166:14","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"expression":{"id":2100,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"11798:3:14","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11802:4:14","memberName":"data","nodeType":"MemberAccess","src":"11798:8:14","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":2102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11807:6:14","memberName":"length","nodeType":"MemberAccess","src":"11798:15:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2099,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11791:6:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"},"typeName":{"id":2098,"name":"uint32","nodeType":"ElementaryTypeName","src":"11791:6:14","typeDescriptions":{}}},"id":2103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11791:23:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"}],"expression":{"id":2095,"name":"SystemContractHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3048,"src":"11750:20:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SystemContractHelper_$3048_$","typeString":"type(library SystemContractHelper)"}},"id":2097,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11771:19:14","memberName":"ptrShrinkIntoActive","nodeType":"MemberAccess","referencedDeclaration":2622,"src":"11750:40:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint32_$returns$__$","typeString":"function (uint32) view"}},"id":2104,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11750:65:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2105,"nodeType":"ExpressionStatement","src":"11750:65:14"}]}},{"assignments":[2144],"declarations":[{"constant":false,"id":2144,"mutability":"mutable","name":"gas","nameLocation":"12352:3:14","nodeType":"VariableDeclaration","scope":2168,"src":"12345:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2143,"name":"uint32","nodeType":"ElementaryTypeName","src":"12345:6:14","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"id":2149,"initialValue":{"arguments":[{"id":2147,"name":"_gas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2077,"src":"12378:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2145,"name":"Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4920,"src":"12358:5:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Utils_$4920_$","typeString":"type(library Utils)"}},"id":2146,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12364:13:14","memberName":"safeCastToU32","nodeType":"MemberAccess","referencedDeclaration":4706,"src":"12358:19:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint32_$","typeString":"function (uint256) pure returns (uint32)"}},"id":2148,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12358:25:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"VariableDeclarationStatement","src":"12345:38:14"},{"assignments":[2151],"declarations":[{"constant":false,"id":2151,"mutability":"mutable","name":"farCallAbi","nameLocation":"12401:10:14","nodeType":"VariableDeclaration","scope":2168,"src":"12393:18:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2150,"name":"uint256","nodeType":"ElementaryTypeName","src":"12393:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2161,"initialValue":{"arguments":[{"id":2154,"name":"gas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2144,"src":"12482:3:14","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"hexValue":"30","id":2155,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12547:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"expression":{"id":2156,"name":"CalldataForwardingMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3405,"src":"12562:22:14","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CalldataForwardingMode_$3405_$","typeString":"type(enum CalldataForwardingMode)"}},"id":2157,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12585:17:14","memberName":"ForwardFatPointer","nodeType":"MemberAccess","referencedDeclaration":3403,"src":"12562:40:14","typeDescriptions":{"typeIdentifier":"t_enum$_CalldataForwardingMode_$3405","typeString":"enum CalldataForwardingMode"}},{"id":2158,"name":"_isConstructor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2081,"src":"12616:14:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":2159,"name":"_isSystem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2083,"src":"12644:9:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_enum$_CalldataForwardingMode_$3405","typeString":"enum CalldataForwardingMode"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":2152,"name":"SystemContractsCaller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3683,"src":"12414:21:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SystemContractsCaller_$3683_$","typeString":"type(library SystemContractsCaller)"}},"id":2153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12436:32:14","memberName":"getFarCallABIWithEmptyFatPointer","nodeType":"MemberAccess","referencedDeclaration":3682,"src":"12414:54:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint32_$_t_uint8_$_t_enum$_CalldataForwardingMode_$3405_$_t_bool_$_t_bool_$returns$_t_uint256_$","typeString":"function (uint32,uint8,enum CalldataForwardingMode,bool,bool) pure returns (uint256)"}},"id":2160,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12414:249:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"12393:270:14"},{"expression":{"arguments":[{"id":2165,"name":"farCallAbi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2151,"src":"12715:10:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2162,"name":"SystemContractHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3048,"src":"12673:20:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SystemContractHelper_$3048_$","typeString":"type(library SystemContractHelper)"}},"id":2164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12694:20:14","memberName":"ptrPackIntoActivePtr","nodeType":"MemberAccess","referencedDeclaration":2590,"src":"12673:41:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$__$","typeString":"function (uint256) view"}},"id":2166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12673:53:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2167,"nodeType":"ExpressionStatement","src":"12673:53:14"}]},"documentation":{"id":2075,"nodeType":"StructuredDocumentation","src":"10797:341:14","text":"@dev Load the far call ABI into active ptr, that will be used for the next call by reference.\n @param _gas The gas to be passed to the call.\n @param _data The calldata to be passed to the call.\n @param _isConstructor Whether the call is a constructor call.\n @param _isSystem Whether the call is a system call."},"id":2169,"implemented":true,"kind":"function","modifiers":[],"name":"_loadFarCallABIIntoActivePtr","nameLocation":"11152:28:14","nodeType":"FunctionDefinition","parameters":{"id":2084,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2077,"mutability":"mutable","name":"_gas","nameLocation":"11198:4:14","nodeType":"VariableDeclaration","scope":2169,"src":"11190:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2076,"name":"uint256","nodeType":"ElementaryTypeName","src":"11190:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2079,"mutability":"mutable","name":"_data","nameLocation":"11227:5:14","nodeType":"VariableDeclaration","scope":2169,"src":"11212:20:14","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":2078,"name":"bytes","nodeType":"ElementaryTypeName","src":"11212:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2081,"mutability":"mutable","name":"_isConstructor","nameLocation":"11247:14:14","nodeType":"VariableDeclaration","scope":2169,"src":"11242:19:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2080,"name":"bool","nodeType":"ElementaryTypeName","src":"11242:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":2083,"mutability":"mutable","name":"_isSystem","nameLocation":"11276:9:14","nodeType":"VariableDeclaration","scope":2169,"src":"11271:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2082,"name":"bool","nodeType":"ElementaryTypeName","src":"11271:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"11180:111:14"},"returnParameters":{"id":2085,"nodeType":"ParameterList","parameters":[],"src":"11305:0:14"},"scope":2170,"src":"11143:1590:14","stateMutability":"view","virtual":false,"visibility":"private"}],"scope":2171,"src":"2048:10687:14","usedErrors":[]}],"src":"47:12689:14"},"id":14},"@matterlabs/zksync-contracts/l2/system-contracts/libraries/RLPEncoder.sol":{"ast":{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/libraries/RLPEncoder.sol","exportedSymbols":{"RLPEncoder":[2503]},"id":2504,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2172,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"33:23:15"},{"abstract":false,"baseContracts":[],"canonicalName":"RLPEncoder","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"id":2503,"linearizedBaseContracts":[2503],"name":"RLPEncoder","nameLocation":"66:10:15","nodeType":"ContractDefinition","nodes":[{"body":{"id":2194,"nodeType":"Block","src":"165:519:15","statements":[{"expression":{"id":2184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2179,"name":"encoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2177,"src":"276:7:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30783135","id":2182,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"296:4:15","typeDescriptions":{"typeIdentifier":"t_rational_21_by_1","typeString":"int_const 21"},"value":"0x15"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_21_by_1","typeString":"int_const 21"}],"id":2181,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"286:9:15","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":2180,"name":"bytes","nodeType":"ElementaryTypeName","src":"290:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":2183,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"286:15:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"276:25:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2185,"nodeType":"ExpressionStatement","src":"276:25:15"},{"assignments":[2187],"declarations":[{"constant":false,"id":2187,"mutability":"mutable","name":"shiftedVal","nameLocation":"320:10:15","nodeType":"VariableDeclaration","scope":2194,"src":"312:18:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"},"typeName":{"id":2186,"name":"bytes20","nodeType":"ElementaryTypeName","src":"312:7:15","typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"}},"visibility":"internal"}],"id":2192,"initialValue":{"arguments":[{"id":2190,"name":"_val","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2174,"src":"341:4:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2189,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"333:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes20_$","typeString":"type(bytes20)"},"typeName":{"id":2188,"name":"bytes20","nodeType":"ElementaryTypeName","src":"333:7:15","typeDescriptions":{}}},"id":2191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"333:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"}},"nodeType":"VariableDeclarationStatement","src":"312:34:15"},{"AST":{"nodeType":"YulBlock","src":"365:313:15","statements":[{"expression":{"arguments":[{"arguments":[{"name":"encoded","nodeType":"YulIdentifier","src":"475:7:15"},{"kind":"number","nodeType":"YulLiteral","src":"484:4:15","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"471:3:15"},"nodeType":"YulFunctionCall","src":"471:18:15"},{"kind":"number","nodeType":"YulLiteral","src":"491:66:15","type":"","value":"0x9400000000000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"464:6:15"},"nodeType":"YulFunctionCall","src":"464:94:15"},"nodeType":"YulExpressionStatement","src":"464:94:15"},{"expression":{"arguments":[{"arguments":[{"name":"encoded","nodeType":"YulIdentifier","src":"641:7:15"},{"kind":"number","nodeType":"YulLiteral","src":"650:4:15","type":"","value":"0x21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"637:3:15"},"nodeType":"YulFunctionCall","src":"637:18:15"},{"name":"shiftedVal","nodeType":"YulIdentifier","src":"657:10:15"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"630:6:15"},"nodeType":"YulFunctionCall","src":"630:38:15"},"nodeType":"YulExpressionStatement","src":"630:38:15"}]},"evmVersion":"paris","externalReferences":[{"declaration":2177,"isOffset":false,"isSlot":false,"src":"475:7:15","valueSize":1},{"declaration":2177,"isOffset":false,"isSlot":false,"src":"641:7:15","valueSize":1},{"declaration":2187,"isOffset":false,"isSlot":false,"src":"657:10:15","valueSize":1}],"id":2193,"nodeType":"InlineAssembly","src":"356:322:15"}]},"id":2195,"implemented":true,"kind":"function","modifiers":[],"name":"encodeAddress","nameLocation":"92:13:15","nodeType":"FunctionDefinition","parameters":{"id":2175,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2174,"mutability":"mutable","name":"_val","nameLocation":"114:4:15","nodeType":"VariableDeclaration","scope":2195,"src":"106:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2173,"name":"address","nodeType":"ElementaryTypeName","src":"106:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"105:14:15"},"returnParameters":{"id":2178,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2177,"mutability":"mutable","name":"encoded","nameLocation":"156:7:15","nodeType":"VariableDeclaration","scope":2195,"src":"143:20:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2176,"name":"bytes","nodeType":"ElementaryTypeName","src":"143:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"142:22:15"},"scope":2503,"src":"83:601:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2285,"nodeType":"Block","src":"772:686:15","statements":[{"id":2284,"nodeType":"UncheckedBlock","src":"782:670:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2202,"name":"_val","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2197,"src":"810:4:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"313238","id":2203,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"817:3:15","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"810:10:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":2282,"nodeType":"Block","src":"1069:373:15","statements":[{"assignments":[2238],"declarations":[{"constant":false,"id":2238,"mutability":"mutable","name":"hbs","nameLocation":"1095:3:15","nodeType":"VariableDeclaration","scope":2282,"src":"1087:11:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2237,"name":"uint256","nodeType":"ElementaryTypeName","src":"1087:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2242,"initialValue":{"arguments":[{"id":2240,"name":"_val","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2197,"src":"1117:4:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2239,"name":"_highestByteSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2502,"src":"1101:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":2241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1101:21:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1087:35:15"},{"expression":{"id":2250,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2243,"name":"encoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2200,"src":"1141:7:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2246,"name":"hbs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2238,"src":"1161:3:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"32","id":2247,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1167:1:15","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"1161:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2245,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1151:9:15","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":2244,"name":"bytes","nodeType":"ElementaryTypeName","src":"1155:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":2249,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1151:18:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"1141:28:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2251,"nodeType":"ExpressionStatement","src":"1141:28:15"},{"expression":{"id":2264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":2252,"name":"encoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2200,"src":"1187:7:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2254,"indexExpression":{"hexValue":"30","id":2253,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1195:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1187:10:15","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2259,"name":"hbs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2238,"src":"1213:3:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"30783831","id":2260,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1219:4:15","typeDescriptions":{"typeIdentifier":"t_rational_129_by_1","typeString":"int_const 129"},"value":"0x81"},"src":"1213:10:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2258,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1207:5:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":2257,"name":"uint8","nodeType":"ElementaryTypeName","src":"1207:5:15","typeDescriptions":{}}},"id":2262,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1207:17:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":2256,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1200:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes1_$","typeString":"type(bytes1)"},"typeName":{"id":2255,"name":"bytes1","nodeType":"ElementaryTypeName","src":"1200:6:15","typeDescriptions":{}}},"id":2263,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1200:25:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"1187:38:15","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":2265,"nodeType":"ExpressionStatement","src":"1187:38:15"},{"assignments":[2267],"declarations":[{"constant":false,"id":2267,"mutability":"mutable","name":"lbs","nameLocation":"1252:3:15","nodeType":"VariableDeclaration","scope":2282,"src":"1244:11:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2266,"name":"uint256","nodeType":"ElementaryTypeName","src":"1244:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2271,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3331","id":2268,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1258:2:15","typeDescriptions":{"typeIdentifier":"t_rational_31_by_1","typeString":"int_const 31"},"value":"31"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":2269,"name":"hbs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2238,"src":"1263:3:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1258:8:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1244:22:15"},{"assignments":[2273],"declarations":[{"constant":false,"id":2273,"mutability":"mutable","name":"shiftedVal","nameLocation":"1292:10:15","nodeType":"VariableDeclaration","scope":2282,"src":"1284:18:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2272,"name":"uint256","nodeType":"ElementaryTypeName","src":"1284:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2280,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2279,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2274,"name":"_val","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2197,"src":"1305:4:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2275,"name":"lbs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2267,"src":"1314:3:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"38","id":2276,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1320:1:15","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"1314:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2278,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1313:9:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1305:17:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1284:38:15"},{"AST":{"nodeType":"YulBlock","src":"1350:78:15","statements":[{"expression":{"arguments":[{"arguments":[{"name":"encoded","nodeType":"YulIdentifier","src":"1383:7:15"},{"kind":"number","nodeType":"YulLiteral","src":"1392:4:15","type":"","value":"0x21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1379:3:15"},"nodeType":"YulFunctionCall","src":"1379:18:15"},{"name":"shiftedVal","nodeType":"YulIdentifier","src":"1399:10:15"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1372:6:15"},"nodeType":"YulFunctionCall","src":"1372:38:15"},"nodeType":"YulExpressionStatement","src":"1372:38:15"}]},"evmVersion":"paris","externalReferences":[{"declaration":2200,"isOffset":false,"isSlot":false,"src":"1383:7:15","valueSize":1},{"declaration":2273,"isOffset":false,"isSlot":false,"src":"1399:10:15","valueSize":1}],"id":2281,"nodeType":"InlineAssembly","src":"1341:87:15"}]},"id":2283,"nodeType":"IfStatement","src":"806:636:15","trueBody":{"id":2236,"nodeType":"Block","src":"822:241:15","statements":[{"expression":{"id":2210,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2205,"name":"encoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2200,"src":"840:7:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"31","id":2208,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"860:1:15","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":2207,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"850:9:15","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":2206,"name":"bytes","nodeType":"ElementaryTypeName","src":"854:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":2209,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"850:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"840:22:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2211,"nodeType":"ExpressionStatement","src":"840:22:15"},{"expression":{"id":2234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":2212,"name":"encoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2200,"src":"981:7:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2214,"indexExpression":{"hexValue":"30","id":2213,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"989:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"981:10:15","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"condition":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2215,"name":"_val","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2197,"src":"995:4:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2216,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1003:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"995:9:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":2218,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"994:11:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[{"arguments":[{"id":2230,"name":"_val","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2197,"src":"1042:4:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2229,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1036:5:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":2228,"name":"uint8","nodeType":"ElementaryTypeName","src":"1036:5:15","typeDescriptions":{}}},"id":2231,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1036:11:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":2227,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1029:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes1_$","typeString":"type(bytes1)"},"typeName":{"id":2226,"name":"bytes1","nodeType":"ElementaryTypeName","src":"1029:6:15","typeDescriptions":{}}},"id":2232,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1029:19:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":2233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"994:54:15","trueExpression":{"arguments":[{"arguments":[{"hexValue":"313238","id":2223,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1021:3:15","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"}],"id":2222,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1015:5:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":2221,"name":"uint8","nodeType":"ElementaryTypeName","src":"1015:5:15","typeDescriptions":{}}},"id":2224,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1015:10:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":2220,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1008:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes1_$","typeString":"type(bytes1)"},"typeName":{"id":2219,"name":"bytes1","nodeType":"ElementaryTypeName","src":"1008:6:15","typeDescriptions":{}}},"id":2225,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1008:18:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"981:67:15","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":2235,"nodeType":"ExpressionStatement","src":"981:67:15"}]}}]}]},"id":2286,"implemented":true,"kind":"function","modifiers":[],"name":"encodeUint256","nameLocation":"699:13:15","nodeType":"FunctionDefinition","parameters":{"id":2198,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2197,"mutability":"mutable","name":"_val","nameLocation":"721:4:15","nodeType":"VariableDeclaration","scope":2286,"src":"713:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2196,"name":"uint256","nodeType":"ElementaryTypeName","src":"713:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"712:14:15"},"returnParameters":{"id":2201,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2200,"mutability":"mutable","name":"encoded","nameLocation":"763:7:15","nodeType":"VariableDeclaration","scope":2286,"src":"750:20:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2199,"name":"bytes","nodeType":"ElementaryTypeName","src":"750:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"749:22:15"},"scope":2503,"src":"690:768:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2305,"nodeType":"Block","src":"1817:76:15","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":2297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2295,"name":"_len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2289,"src":"1834:4:15","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"31","id":2296,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1842:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1834:9:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":2294,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-3,"src":"1827:6:15","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":2298,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1827:17:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2299,"nodeType":"ExpressionStatement","src":"1827:17:15"},{"expression":{"arguments":[{"id":2301,"name":"_len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2289,"src":"1875:4:15","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"hexValue":"30783830","id":2302,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1881:4:15","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"0x80"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"}],"id":2300,"name":"_encodeLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2411,"src":"1861:13:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint64_$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint64,uint256) pure returns (bytes memory)"}},"id":2303,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1861:25:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":2293,"id":2304,"nodeType":"Return","src":"1854:32:15"}]},"documentation":{"id":2287,"nodeType":"StructuredDocumentation","src":"1464:265:15","text":"@notice Encodes the size of bytes in RLP format.\n @param _len The length of the bytes to encode. It has a `uint64` type since as larger values are not supported.\n NOTE: panics if the length is 1 since the length encoding is ambiguous in this case."},"id":2306,"implemented":true,"kind":"function","modifiers":[],"name":"encodeNonSingleBytesLen","nameLocation":"1743:23:15","nodeType":"FunctionDefinition","parameters":{"id":2290,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2289,"mutability":"mutable","name":"_len","nameLocation":"1774:4:15","nodeType":"VariableDeclaration","scope":2306,"src":"1767:11:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":2288,"name":"uint64","nodeType":"ElementaryTypeName","src":"1767:6:15","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"1766:13:15"},"returnParameters":{"id":2293,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2292,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2306,"src":"1803:12:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2291,"name":"bytes","nodeType":"ElementaryTypeName","src":"1803:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1802:14:15"},"scope":2503,"src":"1734:159:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2319,"nodeType":"Block","src":"2154:49:15","statements":[{"expression":{"arguments":[{"id":2315,"name":"_len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2309,"src":"2185:4:15","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"hexValue":"30786330","id":2316,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2191:4:15","typeDescriptions":{"typeIdentifier":"t_rational_192_by_1","typeString":"int_const 192"},"value":"0xc0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_rational_192_by_1","typeString":"int_const 192"}],"id":2314,"name":"_encodeLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2411,"src":"2171:13:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint64_$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint64,uint256) pure returns (bytes memory)"}},"id":2317,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2171:25:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":2313,"id":2318,"nodeType":"Return","src":"2164:32:15"}]},"documentation":{"id":2307,"nodeType":"StructuredDocumentation","src":"1899:177:15","text":"@notice Encodes the size of list items in RLP format.\n @param _len The length of the bytes to encode. It has a `uint64` type since as larger values are not supported."},"id":2320,"implemented":true,"kind":"function","modifiers":[],"name":"encodeListLen","nameLocation":"2090:13:15","nodeType":"FunctionDefinition","parameters":{"id":2310,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2309,"mutability":"mutable","name":"_len","nameLocation":"2111:4:15","nodeType":"VariableDeclaration","scope":2320,"src":"2104:11:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":2308,"name":"uint64","nodeType":"ElementaryTypeName","src":"2104:6:15","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"2103:13:15"},"returnParameters":{"id":2313,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2312,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2320,"src":"2140:12:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2311,"name":"bytes","nodeType":"ElementaryTypeName","src":"2140:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2139:14:15"},"scope":2503,"src":"2081:122:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2410,"nodeType":"Block","src":"2306:585:15","statements":[{"id":2409,"nodeType":"UncheckedBlock","src":"2316:569:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":2331,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2329,"name":"_len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2322,"src":"2344:4:15","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"3536","id":2330,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2351:2:15","typeDescriptions":{"typeIdentifier":"t_rational_56_by_1","typeString":"int_const 56"},"value":"56"},"src":"2344:9:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":2407,"nodeType":"Block","src":"2476:399:15","statements":[{"assignments":[2355],"declarations":[{"constant":false,"id":2355,"mutability":"mutable","name":"hbs","nameLocation":"2502:3:15","nodeType":"VariableDeclaration","scope":2407,"src":"2494:11:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2354,"name":"uint256","nodeType":"ElementaryTypeName","src":"2494:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2362,"initialValue":{"arguments":[{"arguments":[{"id":2359,"name":"_len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2322,"src":"2532:4:15","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":2358,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2524:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":2357,"name":"uint256","nodeType":"ElementaryTypeName","src":"2524:7:15","typeDescriptions":{}}},"id":2360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2524:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2356,"name":"_highestByteSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2502,"src":"2508:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":2361,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2508:30:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2494:44:15"},{"expression":{"id":2370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2363,"name":"encoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2327,"src":"2557:7:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2368,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2366,"name":"hbs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2355,"src":"2577:3:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"32","id":2367,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2583:1:15","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"2577:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2365,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2567:9:15","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":2364,"name":"bytes","nodeType":"ElementaryTypeName","src":"2571:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":2369,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2567:18:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"2557:28:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2371,"nodeType":"ExpressionStatement","src":"2557:28:15"},{"expression":{"id":2386,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":2372,"name":"encoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2327,"src":"2603:7:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2374,"indexExpression":{"hexValue":"30","id":2373,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2611:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2603:10:15","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2381,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2379,"name":"_offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2324,"src":"2629:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":2380,"name":"hbs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2355,"src":"2639:3:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2629:13:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3536","id":2382,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2645:2:15","typeDescriptions":{"typeIdentifier":"t_rational_56_by_1","typeString":"int_const 56"},"value":"56"},"src":"2629:18:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2378,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2623:5:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":2377,"name":"uint8","nodeType":"ElementaryTypeName","src":"2623:5:15","typeDescriptions":{}}},"id":2384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2623:25:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":2376,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2616:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes1_$","typeString":"type(bytes1)"},"typeName":{"id":2375,"name":"bytes1","nodeType":"ElementaryTypeName","src":"2616:6:15","typeDescriptions":{}}},"id":2385,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2616:33:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"2603:46:15","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":2387,"nodeType":"ExpressionStatement","src":"2603:46:15"},{"assignments":[2389],"declarations":[{"constant":false,"id":2389,"mutability":"mutable","name":"lbs","nameLocation":"2676:3:15","nodeType":"VariableDeclaration","scope":2407,"src":"2668:11:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2388,"name":"uint256","nodeType":"ElementaryTypeName","src":"2668:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2393,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3331","id":2390,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2682:2:15","typeDescriptions":{"typeIdentifier":"t_rational_31_by_1","typeString":"int_const 31"},"value":"31"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":2391,"name":"hbs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2355,"src":"2687:3:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2682:8:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2668:22:15"},{"assignments":[2395],"declarations":[{"constant":false,"id":2395,"mutability":"mutable","name":"shiftedVal","nameLocation":"2716:10:15","nodeType":"VariableDeclaration","scope":2407,"src":"2708:18:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2394,"name":"uint256","nodeType":"ElementaryTypeName","src":"2708:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2405,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":2398,"name":"_len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2322,"src":"2737:4:15","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":2397,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2729:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":2396,"name":"uint256","nodeType":"ElementaryTypeName","src":"2729:7:15","typeDescriptions":{}}},"id":2399,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2729:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2400,"name":"lbs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2389,"src":"2747:3:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"38","id":2401,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2753:1:15","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"2747:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2403,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2746:9:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2729:26:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2708:47:15"},{"AST":{"nodeType":"YulBlock","src":"2783:78:15","statements":[{"expression":{"arguments":[{"arguments":[{"name":"encoded","nodeType":"YulIdentifier","src":"2816:7:15"},{"kind":"number","nodeType":"YulLiteral","src":"2825:4:15","type":"","value":"0x21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2812:3:15"},"nodeType":"YulFunctionCall","src":"2812:18:15"},{"name":"shiftedVal","nodeType":"YulIdentifier","src":"2832:10:15"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2805:6:15"},"nodeType":"YulFunctionCall","src":"2805:38:15"},"nodeType":"YulExpressionStatement","src":"2805:38:15"}]},"evmVersion":"paris","externalReferences":[{"declaration":2327,"isOffset":false,"isSlot":false,"src":"2816:7:15","valueSize":1},{"declaration":2395,"isOffset":false,"isSlot":false,"src":"2832:10:15","valueSize":1}],"id":2406,"nodeType":"InlineAssembly","src":"2774:87:15"}]},"id":2408,"nodeType":"IfStatement","src":"2340:535:15","trueBody":{"id":2353,"nodeType":"Block","src":"2355:115:15","statements":[{"expression":{"id":2337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2332,"name":"encoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2327,"src":"2373:7:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"31","id":2335,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2393:1:15","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":2334,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2383:9:15","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":2333,"name":"bytes","nodeType":"ElementaryTypeName","src":"2387:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":2336,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2383:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"2373:22:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2338,"nodeType":"ExpressionStatement","src":"2373:22:15"},{"expression":{"id":2351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":2339,"name":"encoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2327,"src":"2413:7:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2341,"indexExpression":{"hexValue":"30","id":2340,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2421:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2413:10:15","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2346,"name":"_len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2322,"src":"2439:4:15","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":2347,"name":"_offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2324,"src":"2446:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2439:14:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2345,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2433:5:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":2344,"name":"uint8","nodeType":"ElementaryTypeName","src":"2433:5:15","typeDescriptions":{}}},"id":2349,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2433:21:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":2343,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2426:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes1_$","typeString":"type(bytes1)"},"typeName":{"id":2342,"name":"bytes1","nodeType":"ElementaryTypeName","src":"2426:6:15","typeDescriptions":{}}},"id":2350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2426:29:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"2413:42:15","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":2352,"nodeType":"ExpressionStatement","src":"2413:42:15"}]}}]}]},"id":2411,"implemented":true,"kind":"function","modifiers":[],"name":"_encodeLength","nameLocation":"2218:13:15","nodeType":"FunctionDefinition","parameters":{"id":2325,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2322,"mutability":"mutable","name":"_len","nameLocation":"2239:4:15","nodeType":"VariableDeclaration","scope":2411,"src":"2232:11:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":2321,"name":"uint64","nodeType":"ElementaryTypeName","src":"2232:6:15","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":2324,"mutability":"mutable","name":"_offset","nameLocation":"2253:7:15","nodeType":"VariableDeclaration","scope":2411,"src":"2245:15:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2323,"name":"uint256","nodeType":"ElementaryTypeName","src":"2245:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2231:30:15"},"returnParameters":{"id":2328,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2327,"mutability":"mutable","name":"encoded","nameLocation":"2297:7:15","nodeType":"VariableDeclaration","scope":2411,"src":"2284:20:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2326,"name":"bytes","nodeType":"ElementaryTypeName","src":"2284:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2283:22:15"},"scope":2503,"src":"2209:682:15","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":2501,"nodeType":"Block","src":"3166:597:15","statements":[{"id":2500,"nodeType":"UncheckedBlock","src":"3176:581:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2425,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2419,"name":"_number","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2414,"src":"3204:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":2422,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3219:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":2421,"name":"uint128","nodeType":"ElementaryTypeName","src":"3219:7:15","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"}],"id":2420,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"3214:4:15","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":2423,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3214:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint128","typeString":"type(uint128)"}},"id":2424,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3228:3:15","memberName":"max","nodeType":"MemberAccess","src":"3214:17:15","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"3204:27:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2435,"nodeType":"IfStatement","src":"3200:108:15","trueBody":{"id":2434,"nodeType":"Block","src":"3233:75:15","statements":[{"expression":{"id":2428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2426,"name":"_number","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2414,"src":"3251:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"313238","id":2427,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3263:3:15","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"3251:15:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2429,"nodeType":"ExpressionStatement","src":"3251:15:15"},{"expression":{"id":2432,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2430,"name":"hbs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2417,"src":"3284:3:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3136","id":2431,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3291:2:15","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"3284:9:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2433,"nodeType":"ExpressionStatement","src":"3284:9:15"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2442,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2436,"name":"_number","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2414,"src":"3325:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":2439,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3340:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":2438,"name":"uint64","nodeType":"ElementaryTypeName","src":"3340:6:15","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"}],"id":2437,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"3335:4:15","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":2440,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3335:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint64","typeString":"type(uint64)"}},"id":2441,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3348:3:15","memberName":"max","nodeType":"MemberAccess","src":"3335:16:15","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3325:26:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2452,"nodeType":"IfStatement","src":"3321:105:15","trueBody":{"id":2451,"nodeType":"Block","src":"3353:73:15","statements":[{"expression":{"id":2445,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2443,"name":"_number","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2414,"src":"3371:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3634","id":2444,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3383:2:15","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"3371:14:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2446,"nodeType":"ExpressionStatement","src":"3371:14:15"},{"expression":{"id":2449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2447,"name":"hbs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2417,"src":"3403:3:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"38","id":2448,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3410:1:15","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"3403:8:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2450,"nodeType":"ExpressionStatement","src":"3403:8:15"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2453,"name":"_number","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2414,"src":"3443:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":2456,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3458:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"},"typeName":{"id":2455,"name":"uint32","nodeType":"ElementaryTypeName","src":"3458:6:15","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"}],"id":2454,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"3453:4:15","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":2457,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3453:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint32","typeString":"type(uint32)"}},"id":2458,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3466:3:15","memberName":"max","nodeType":"MemberAccess","src":"3453:16:15","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"3443:26:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2469,"nodeType":"IfStatement","src":"3439:105:15","trueBody":{"id":2468,"nodeType":"Block","src":"3471:73:15","statements":[{"expression":{"id":2462,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2460,"name":"_number","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2414,"src":"3489:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3332","id":2461,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3501:2:15","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"3489:14:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2463,"nodeType":"ExpressionStatement","src":"3489:14:15"},{"expression":{"id":2466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2464,"name":"hbs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2417,"src":"3521:3:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"34","id":2465,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3528:1:15","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"3521:8:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2467,"nodeType":"ExpressionStatement","src":"3521:8:15"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2476,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2470,"name":"_number","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2414,"src":"3561:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":2473,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3576:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"},"typeName":{"id":2472,"name":"uint16","nodeType":"ElementaryTypeName","src":"3576:6:15","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"}],"id":2471,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"3571:4:15","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":2474,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3571:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint16","typeString":"type(uint16)"}},"id":2475,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3584:3:15","memberName":"max","nodeType":"MemberAccess","src":"3571:16:15","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"3561:26:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2486,"nodeType":"IfStatement","src":"3557:105:15","trueBody":{"id":2485,"nodeType":"Block","src":"3589:73:15","statements":[{"expression":{"id":2479,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2477,"name":"_number","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2414,"src":"3607:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3136","id":2478,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3619:2:15","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"3607:14:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2480,"nodeType":"ExpressionStatement","src":"3607:14:15"},{"expression":{"id":2483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2481,"name":"hbs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2417,"src":"3639:3:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":2482,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3646:1:15","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"3639:8:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2484,"nodeType":"ExpressionStatement","src":"3639:8:15"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2493,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2487,"name":"_number","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2414,"src":"3679:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":2490,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3694:5:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":2489,"name":"uint8","nodeType":"ElementaryTypeName","src":"3694:5:15","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"}],"id":2488,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"3689:4:15","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":2491,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3689:11:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint8","typeString":"type(uint8)"}},"id":2492,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3701:3:15","memberName":"max","nodeType":"MemberAccess","src":"3689:15:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"3679:25:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2499,"nodeType":"IfStatement","src":"3675:72:15","trueBody":{"id":2498,"nodeType":"Block","src":"3706:41:15","statements":[{"expression":{"id":2496,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2494,"name":"hbs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2417,"src":"3724:3:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":2495,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3731:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3724:8:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2497,"nodeType":"ExpressionStatement","src":"3724:8:15"}]}}]}]},"documentation":{"id":2412,"nodeType":"StructuredDocumentation","src":"2897:187:15","text":"@notice Computes the index of the highest byte set in number.\n @notice Uses little endian ordering (The least significant byte has index `0`).\n NOTE: returns `0` for `0`"},"id":2502,"implemented":true,"kind":"function","modifiers":[],"name":"_highestByteSet","nameLocation":"3098:15:15","nodeType":"FunctionDefinition","parameters":{"id":2415,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2414,"mutability":"mutable","name":"_number","nameLocation":"3122:7:15","nodeType":"VariableDeclaration","scope":2502,"src":"3114:15:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2413,"name":"uint256","nodeType":"ElementaryTypeName","src":"3114:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3113:17:15"},"returnParameters":{"id":2418,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2417,"mutability":"mutable","name":"hbs","nameLocation":"3161:3:15","nodeType":"VariableDeclaration","scope":2502,"src":"3153:11:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2416,"name":"uint256","nodeType":"ElementaryTypeName","src":"3153:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3152:13:15"},"scope":2503,"src":"3089:674:15","stateMutability":"pure","virtual":false,"visibility":"private"}],"scope":2504,"src":"58:3707:15","usedErrors":[]}],"src":"33:3733:15"},"id":15},"@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractHelper.sol":{"ast":{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractHelper.sol","exportedSymbols":{"ADDRESS_MASK":[2520],"CALLFLAGS_CALL_ADDRESS":[3261],"CODE_ADDRESS_CALL_ADDRESS":[3096],"CalldataForwardingMode":[3405],"EVENT_INITIALIZE_ADDRESS":[3283],"EVENT_WRITE_ADDRESS":[3294],"EfficientCall":[2170],"GET_EXTRA_ABI_DATA_ADDRESS":[3371],"Global":[2539],"INCREMENT_TX_COUNTER_CALL_ADDRESS":[3239],"ISystemContract":[3068],"LOAD_CALLDATA_INTO_ACTIVE_PTR_CALL_ADDRESS":[3305],"LOAD_LATEST_RETURNDATA_INTO_ACTIVE_PTR_CALL_ADDRESS":[3316],"MAX_SYSTEM_CONTRACT_ADDRESS":[925],"META_AUX_HEAP_SIZE_OFFSET":[3386],"META_CALLER_SHARD_ID_OFFSET":[3396],"META_CALL_ADDRESS":[3118],"META_CODE_SHARD_ID_OFFSET":[3401],"META_GAS_PER_PUBDATA_BYTE_OFFSET":[3376],"META_HEAP_SIZE_OFFSET":[3381],"META_SHARD_ID_OFFSET":[3391],"MIMIC_CALL_BY_REF_CALL_ADDRESS":[3151],"MIMIC_CALL_CALL_ADDRESS":[3129],"MSG_VALUE_SIMULATOR_IS_SYSTEM_BIT":[1107],"MSG_VALUE_SYSTEM_CONTRACT":[1040],"MULTIPLICATION_HIGH_ADDRESS":[3360],"PRECOMPILE_CALL_ADDRESS":[3107],"PTR_ADD_INTO_ACTIVE_CALL_ADDRESS":[3327],"PTR_CALLDATA_CALL_ADDRESS":[3250],"PTR_PACK_INTO_ACTIVE_CALL_ADDRESS":[3349],"PTR_RETURNDATA_CALL_ADDRESS":[3272],"PTR_SHRINK_INTO_ACTIVE_CALL_ADDRESS":[3338],"RAW_FAR_CALL_BY_REF_CALL_ADDRESS":[3184],"RAW_FAR_CALL_CALL_ADDRESS":[3173],"SET_CONTEXT_VALUE_CALL_ADDRESS":[3217],"SET_PUBDATA_PRICE_CALL_ADDRESS":[3228],"SYSTEM_CALL_BY_REF_CALL_ADDRESS":[3206],"SYSTEM_CALL_CALL_ADDRESS":[3195],"SYSTEM_MIMIC_CALL_BY_REF_CALL_ADDRESS":[3162],"SYSTEM_MIMIC_CALL_CALL_ADDRESS":[3140],"SystemContractHelper":[3048],"SystemContractsCaller":[3683],"TO_L1_CALL_ADDRESS":[3085],"UINT128_MASK":[2516],"UINT32_MASK":[2513],"Utils":[4920],"ZkSyncMeta":[2533]},"id":3069,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2505,"literals":["solidity","^","0.8"],"nodeType":"PragmaDirective","src":"33:21:16"},{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/Constants.sol","file":"../Constants.sol","id":2508,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3069,"sourceUnit":1124,"src":"56:88:16","symbolAliases":[{"foreign":{"id":2506,"name":"MAX_SYSTEM_CONTRACT_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":925,"src":"64:27:16","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":2507,"name":"MSG_VALUE_SYSTEM_CONTRACT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1040,"src":"93:25:16","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractsCaller.sol","file":"./SystemContractsCaller.sol","id":2509,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3069,"sourceUnit":3684,"src":"146:37:16","symbolAliases":[],"unitAlias":""},{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/libraries/Utils.sol","file":"./Utils.sol","id":2510,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3069,"sourceUnit":4921,"src":"184:21:16","symbolAliases":[],"unitAlias":""},{"constant":true,"id":2513,"mutability":"constant","name":"UINT32_MASK","nameLocation":"224:11:16","nodeType":"VariableDeclaration","scope":3069,"src":"207:41:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2511,"name":"uint256","nodeType":"ElementaryTypeName","src":"207:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30786666666666666666","id":2512,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"238:10:16","typeDescriptions":{"typeIdentifier":"t_rational_4294967295_by_1","typeString":"int_const 4294967295"},"value":"0xffffffff"},"visibility":"internal"},{"constant":true,"id":2516,"mutability":"constant","name":"UINT128_MASK","nameLocation":"267:12:16","nodeType":"VariableDeclaration","scope":3069,"src":"250:66:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2514,"name":"uint256","nodeType":"ElementaryTypeName","src":"250:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30786666666666666666666666666666666666666666666666666666666666666666","id":2515,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"282:34:16","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211455_by_1","typeString":"int_const 3402...(31 digits omitted)...1455"},"value":"0xffffffffffffffffffffffffffffffff"},"visibility":"internal"},{"constant":true,"id":2520,"mutability":"constant","name":"ADDRESS_MASK","nameLocation":"483:12:16","nodeType":"VariableDeclaration","scope":3069,"src":"466:76:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2518,"name":"uint256","nodeType":"ElementaryTypeName","src":"466:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3078303066666666666666666666666666666666666666666666666666666666666666666666666666666666","id":2519,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"498:44:16","typeDescriptions":{"typeIdentifier":"t_rational_1461501637330902918203684832716283019655932542975_by_1","typeString":"int_const 1461...(41 digits omitted)...2975"},"value":"0x00ffffffffffffffffffffffffffffffffffffffff"},"visibility":"internal"},{"canonicalName":"ZkSyncMeta","id":2533,"members":[{"constant":false,"id":2522,"mutability":"mutable","name":"gasPerPubdataByte","nameLocation":"576:17:16","nodeType":"VariableDeclaration","scope":2533,"src":"569:24:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2521,"name":"uint32","nodeType":"ElementaryTypeName","src":"569:6:16","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":2524,"mutability":"mutable","name":"heapSize","nameLocation":"606:8:16","nodeType":"VariableDeclaration","scope":2533,"src":"599:15:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2523,"name":"uint32","nodeType":"ElementaryTypeName","src":"599:6:16","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":2526,"mutability":"mutable","name":"auxHeapSize","nameLocation":"627:11:16","nodeType":"VariableDeclaration","scope":2533,"src":"620:18:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2525,"name":"uint32","nodeType":"ElementaryTypeName","src":"620:6:16","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":2528,"mutability":"mutable","name":"shardId","nameLocation":"650:7:16","nodeType":"VariableDeclaration","scope":2533,"src":"644:13:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":2527,"name":"uint8","nodeType":"ElementaryTypeName","src":"644:5:16","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":2530,"mutability":"mutable","name":"callerShardId","nameLocation":"669:13:16","nodeType":"VariableDeclaration","scope":2533,"src":"663:19:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":2529,"name":"uint8","nodeType":"ElementaryTypeName","src":"663:5:16","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":2532,"mutability":"mutable","name":"codeShardId","nameLocation":"694:11:16","nodeType":"VariableDeclaration","scope":2533,"src":"688:17:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":2531,"name":"uint8","nodeType":"ElementaryTypeName","src":"688:5:16","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"name":"ZkSyncMeta","nameLocation":"552:10:16","nodeType":"StructDefinition","scope":3069,"src":"545:163:16","visibility":"public"},{"canonicalName":"Global","id":2539,"members":[{"id":2534,"name":"CalldataPtr","nameLocation":"728:11:16","nodeType":"EnumValue","src":"728:11:16"},{"id":2535,"name":"CallFlags","nameLocation":"745:9:16","nodeType":"EnumValue","src":"745:9:16"},{"id":2536,"name":"ExtraABIData1","nameLocation":"760:13:16","nodeType":"EnumValue","src":"760:13:16"},{"id":2537,"name":"ExtraABIData2","nameLocation":"779:13:16","nodeType":"EnumValue","src":"779:13:16"},{"id":2538,"name":"ReturndataPtr","nameLocation":"798:13:16","nodeType":"EnumValue","src":"798:13:16"}],"name":"Global","nameLocation":"715:6:16","nodeType":"EnumDefinition","src":"710:103:16"},{"abstract":false,"baseContracts":[],"canonicalName":"SystemContractHelper","contractDependencies":[],"contractKind":"library","documentation":{"id":2540,"nodeType":"StructuredDocumentation","src":"815:335:16","text":" @author Matter Labs\n @notice Library used for accessing zkEVM-specific opcodes, needed for the development\n of system contracts.\n @dev While this library will be eventually available to public, some of the provided\n methods won't work for non-system contracts. We will not recommend this library\n for external use."},"fullyImplemented":true,"id":3048,"linearizedBaseContracts":[3048],"name":"SystemContractHelper","nameLocation":"1159:20:16","nodeType":"ContractDefinition","nodes":[{"body":{"id":2555,"nodeType":"Block","src":"1565:397:16","statements":[{"assignments":[2551],"declarations":[{"constant":false,"id":2551,"mutability":"mutable","name":"callAddr","nameLocation":"1583:8:16","nodeType":"VariableDeclaration","scope":2555,"src":"1575:16:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2550,"name":"address","nodeType":"ElementaryTypeName","src":"1575:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":2553,"initialValue":{"id":2552,"name":"TO_L1_CALL_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3085,"src":"1594:18:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"1575:37:16"},{"AST":{"nodeType":"YulBlock","src":"1631:325:16","statements":[{"nodeType":"YulAssignment","src":"1691:32:16","value":{"arguments":[{"name":"_isService","nodeType":"YulIdentifier","src":"1709:10:16"},{"kind":"number","nodeType":"YulLiteral","src":"1721:1:16","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1705:3:16"},"nodeType":"YulFunctionCall","src":"1705:18:16"},"variableNames":[{"name":"_isService","nodeType":"YulIdentifier","src":"1691:10:16"}]},{"nodeType":"YulVariableDeclaration","src":"1877:69:16","value":{"arguments":[{"name":"_isService","nodeType":"YulIdentifier","src":"1897:10:16"},{"name":"callAddr","nodeType":"YulIdentifier","src":"1909:8:16"},{"name":"_key","nodeType":"YulIdentifier","src":"1919:4:16"},{"name":"_value","nodeType":"YulIdentifier","src":"1925:6:16"},{"kind":"number","nodeType":"YulLiteral","src":"1933:6:16","type":"","value":"0xFFFF"},{"kind":"number","nodeType":"YulLiteral","src":"1941:1:16","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1944:1:16","type":"","value":"0"}],"functionName":{"name":"call","nodeType":"YulIdentifier","src":"1892:4:16"},"nodeType":"YulFunctionCall","src":"1892:54:16"},"variables":[{"name":"success","nodeType":"YulTypedName","src":"1881:7:16","type":""}]}]},"evmVersion":"paris","externalReferences":[{"declaration":2543,"isOffset":false,"isSlot":false,"src":"1691:10:16","valueSize":1},{"declaration":2543,"isOffset":false,"isSlot":false,"src":"1709:10:16","valueSize":1},{"declaration":2543,"isOffset":false,"isSlot":false,"src":"1897:10:16","valueSize":1},{"declaration":2545,"isOffset":false,"isSlot":false,"src":"1919:4:16","valueSize":1},{"declaration":2547,"isOffset":false,"isSlot":false,"src":"1925:6:16","valueSize":1},{"declaration":2551,"isOffset":false,"isSlot":false,"src":"1909:8:16","valueSize":1}],"id":2554,"nodeType":"InlineAssembly","src":"1622:334:16"}]},"documentation":{"id":2541,"nodeType":"StructuredDocumentation","src":"1186:304:16","text":"@notice Send an L2Log to L1.\n @param _isService The `isService` flag.\n @param _key The `key` part of the L2Log.\n @param _value The `value` part of the L2Log.\n @dev The meaning of all these parameters is context-dependent, but they\n have no intrinsic meaning per se."},"id":2556,"implemented":true,"kind":"function","modifiers":[],"name":"toL1","nameLocation":"1504:4:16","nodeType":"FunctionDefinition","parameters":{"id":2548,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2543,"mutability":"mutable","name":"_isService","nameLocation":"1514:10:16","nodeType":"VariableDeclaration","scope":2556,"src":"1509:15:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2542,"name":"bool","nodeType":"ElementaryTypeName","src":"1509:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":2545,"mutability":"mutable","name":"_key","nameLocation":"1534:4:16","nodeType":"VariableDeclaration","scope":2556,"src":"1526:12:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2544,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1526:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2547,"mutability":"mutable","name":"_value","nameLocation":"1548:6:16","nodeType":"VariableDeclaration","scope":2556,"src":"1540:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2546,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1540:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1508:47:16"},"returnParameters":{"id":2549,"nodeType":"ParameterList","parameters":[],"src":"1565:0:16"},"scope":3048,"src":"1495:467:16","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2567,"nodeType":"Block","src":"2278:151:16","statements":[{"assignments":[2563],"declarations":[{"constant":false,"id":2563,"mutability":"mutable","name":"callAddr","nameLocation":"2296:8:16","nodeType":"VariableDeclaration","scope":2567,"src":"2288:16:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2562,"name":"address","nodeType":"ElementaryTypeName","src":"2288:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":2565,"initialValue":{"id":2564,"name":"CODE_ADDRESS_CALL_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3096,"src":"2307:25:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2288:44:16"},{"AST":{"nodeType":"YulBlock","src":"2351:72:16","statements":[{"nodeType":"YulAssignment","src":"2365:48:16","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2384:1:16","type":"","value":"0"},{"name":"callAddr","nodeType":"YulIdentifier","src":"2387:8:16"},{"kind":"number","nodeType":"YulLiteral","src":"2397:1:16","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2400:6:16","type":"","value":"0xFFFF"},{"kind":"number","nodeType":"YulLiteral","src":"2408:1:16","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2411:1:16","type":"","value":"0"}],"functionName":{"name":"staticcall","nodeType":"YulIdentifier","src":"2373:10:16"},"nodeType":"YulFunctionCall","src":"2373:40:16"},"variableNames":[{"name":"addr","nodeType":"YulIdentifier","src":"2365:4:16"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":2560,"isOffset":false,"isSlot":false,"src":"2365:4:16","valueSize":1},{"declaration":2563,"isOffset":false,"isSlot":false,"src":"2387:8:16","valueSize":1}],"id":2566,"nodeType":"InlineAssembly","src":"2342:81:16"}]},"documentation":{"id":2557,"nodeType":"StructuredDocumentation","src":"1968:242:16","text":"@notice Get address of the currently executed code.\n @dev This allows differentiating between `call` and `delegatecall`.\n During the former `this` and `codeAddress` are the same, while\n during the latter they are not."},"id":2568,"implemented":true,"kind":"function","modifiers":[],"name":"getCodeAddress","nameLocation":"2224:14:16","nodeType":"FunctionDefinition","parameters":{"id":2558,"nodeType":"ParameterList","parameters":[],"src":"2238:2:16"},"returnParameters":{"id":2561,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2560,"mutability":"mutable","name":"addr","nameLocation":"2272:4:16","nodeType":"VariableDeclaration","scope":2568,"src":"2264:12:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2559,"name":"address","nodeType":"ElementaryTypeName","src":"2264:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2263:14:16"},"scope":3048,"src":"2215:214:16","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":2577,"nodeType":"Block","src":"2855:165:16","statements":[{"assignments":[2573],"declarations":[{"constant":false,"id":2573,"mutability":"mutable","name":"callAddr","nameLocation":"2873:8:16","nodeType":"VariableDeclaration","scope":2577,"src":"2865:16:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2572,"name":"address","nodeType":"ElementaryTypeName","src":"2865:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":2575,"initialValue":{"id":2574,"name":"LOAD_CALLDATA_INTO_ACTIVE_PTR_CALL_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3305,"src":"2884:42:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2865:61:16"},{"AST":{"nodeType":"YulBlock","src":"2945:69:16","statements":[{"expression":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2974:1:16","type":"","value":"0"},{"name":"callAddr","nodeType":"YulIdentifier","src":"2977:8:16"},{"kind":"number","nodeType":"YulLiteral","src":"2987:1:16","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2990:6:16","type":"","value":"0xFFFF"},{"kind":"number","nodeType":"YulLiteral","src":"2998:1:16","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3001:1:16","type":"","value":"0"}],"functionName":{"name":"staticcall","nodeType":"YulIdentifier","src":"2963:10:16"},"nodeType":"YulFunctionCall","src":"2963:40:16"}],"functionName":{"name":"pop","nodeType":"YulIdentifier","src":"2959:3:16"},"nodeType":"YulFunctionCall","src":"2959:45:16"},"nodeType":"YulExpressionStatement","src":"2959:45:16"}]},"evmVersion":"paris","externalReferences":[{"declaration":2573,"isOffset":false,"isSlot":false,"src":"2977:8:16","valueSize":1}],"id":2576,"nodeType":"InlineAssembly","src":"2936:78:16"}]},"documentation":{"id":2569,"nodeType":"StructuredDocumentation","src":"2435:364:16","text":"@notice Provide a compiler hint, by placing calldata fat pointer into virtual `ACTIVE_PTR`,\n that can be manipulated by `ptr.add`/`ptr.sub`/`ptr.pack`/`ptr.shrink` later.\n @dev This allows making a call by forwarding calldata pointer to the child call.\n It is a much more efficient way to forward calldata, than standard EVM bytes copying."},"id":2578,"implemented":true,"kind":"function","modifiers":[],"name":"loadCalldataIntoActivePtr","nameLocation":"2813:25:16","nodeType":"FunctionDefinition","parameters":{"id":2570,"nodeType":"ParameterList","parameters":[],"src":"2838:2:16"},"returnParameters":{"id":2571,"nodeType":"ParameterList","parameters":[],"src":"2855:0:16"},"scope":3048,"src":"2804:216:16","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":2589,"nodeType":"Block","src":"3448:166:16","statements":[{"assignments":[2585],"declarations":[{"constant":false,"id":2585,"mutability":"mutable","name":"callAddr","nameLocation":"3466:8:16","nodeType":"VariableDeclaration","scope":2589,"src":"3458:16:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2584,"name":"address","nodeType":"ElementaryTypeName","src":"3458:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":2587,"initialValue":{"id":2586,"name":"PTR_PACK_INTO_ACTIVE_CALL_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3349,"src":"3477:33:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3458:52:16"},{"AST":{"nodeType":"YulBlock","src":"3529:79:16","statements":[{"expression":{"arguments":[{"arguments":[{"name":"_farCallAbi","nodeType":"YulIdentifier","src":"3558:11:16"},{"name":"callAddr","nodeType":"YulIdentifier","src":"3571:8:16"},{"kind":"number","nodeType":"YulLiteral","src":"3581:1:16","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3584:6:16","type":"","value":"0xFFFF"},{"kind":"number","nodeType":"YulLiteral","src":"3592:1:16","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3595:1:16","type":"","value":"0"}],"functionName":{"name":"staticcall","nodeType":"YulIdentifier","src":"3547:10:16"},"nodeType":"YulFunctionCall","src":"3547:50:16"}],"functionName":{"name":"pop","nodeType":"YulIdentifier","src":"3543:3:16"},"nodeType":"YulFunctionCall","src":"3543:55:16"},"nodeType":"YulExpressionStatement","src":"3543:55:16"}]},"evmVersion":"paris","externalReferences":[{"declaration":2581,"isOffset":false,"isSlot":false,"src":"3558:11:16","valueSize":1},{"declaration":2585,"isOffset":false,"isSlot":false,"src":"3571:8:16","valueSize":1}],"id":2588,"nodeType":"InlineAssembly","src":"3520:88:16"}]},"documentation":{"id":2579,"nodeType":"StructuredDocumentation","src":"3026:352:16","text":"@notice Compiler simulation of the `ptr.pack` opcode for the virtual `ACTIVE_PTR` pointer.\n @dev Do the concatenation between lowest part of `ACTIVE_PTR` and highest part of `_farCallAbi`\n forming packed fat pointer for a far call or ret ABI when necessary.\n Note: Panics if the lowest 128 bits of `_farCallAbi` are not zeroes."},"id":2590,"implemented":true,"kind":"function","modifiers":[],"name":"ptrPackIntoActivePtr","nameLocation":"3392:20:16","nodeType":"FunctionDefinition","parameters":{"id":2582,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2581,"mutability":"mutable","name":"_farCallAbi","nameLocation":"3421:11:16","nodeType":"VariableDeclaration","scope":2590,"src":"3413:19:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2580,"name":"uint256","nodeType":"ElementaryTypeName","src":"3413:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3412:21:16"},"returnParameters":{"id":2583,"nodeType":"ParameterList","parameters":[],"src":"3448:0:16"},"scope":3048,"src":"3383:231:16","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":2605,"nodeType":"Block","src":"3893:334:16","statements":[{"assignments":[2597],"declarations":[{"constant":false,"id":2597,"mutability":"mutable","name":"callAddr","nameLocation":"3911:8:16","nodeType":"VariableDeclaration","scope":2605,"src":"3903:16:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2596,"name":"address","nodeType":"ElementaryTypeName","src":"3903:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":2599,"initialValue":{"id":2598,"name":"PTR_ADD_INTO_ACTIVE_CALL_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3327,"src":"3922:32:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3903:51:16"},{"assignments":[2601],"declarations":[{"constant":false,"id":2601,"mutability":"mutable","name":"cleanupMask","nameLocation":"3972:11:16","nodeType":"VariableDeclaration","scope":2605,"src":"3964:19:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2600,"name":"uint256","nodeType":"ElementaryTypeName","src":"3964:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2603,"initialValue":{"id":2602,"name":"UINT32_MASK","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2513,"src":"3986:11:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3964:33:16"},{"AST":{"nodeType":"YulBlock","src":"4016:205:16","statements":[{"nodeType":"YulAssignment","src":"4114:34:16","value":{"arguments":[{"name":"_value","nodeType":"YulIdentifier","src":"4128:6:16"},{"name":"cleanupMask","nodeType":"YulIdentifier","src":"4136:11:16"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4124:3:16"},"nodeType":"YulFunctionCall","src":"4124:24:16"},"variableNames":[{"name":"_value","nodeType":"YulIdentifier","src":"4114:6:16"}]},{"expression":{"arguments":[{"arguments":[{"name":"_value","nodeType":"YulIdentifier","src":"4176:6:16"},{"name":"callAddr","nodeType":"YulIdentifier","src":"4184:8:16"},{"kind":"number","nodeType":"YulLiteral","src":"4194:1:16","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4197:6:16","type":"","value":"0xFFFF"},{"kind":"number","nodeType":"YulLiteral","src":"4205:1:16","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4208:1:16","type":"","value":"0"}],"functionName":{"name":"staticcall","nodeType":"YulIdentifier","src":"4165:10:16"},"nodeType":"YulFunctionCall","src":"4165:45:16"}],"functionName":{"name":"pop","nodeType":"YulIdentifier","src":"4161:3:16"},"nodeType":"YulFunctionCall","src":"4161:50:16"},"nodeType":"YulExpressionStatement","src":"4161:50:16"}]},"evmVersion":"paris","externalReferences":[{"declaration":2593,"isOffset":false,"isSlot":false,"src":"4114:6:16","valueSize":1},{"declaration":2593,"isOffset":false,"isSlot":false,"src":"4128:6:16","valueSize":1},{"declaration":2593,"isOffset":false,"isSlot":false,"src":"4176:6:16","valueSize":1},{"declaration":2597,"isOffset":false,"isSlot":false,"src":"4184:8:16","valueSize":1},{"declaration":2601,"isOffset":false,"isSlot":false,"src":"4136:11:16","valueSize":1}],"id":2604,"nodeType":"InlineAssembly","src":"4007:214:16"}]},"documentation":{"id":2591,"nodeType":"StructuredDocumentation","src":"3620:213:16","text":"@notice Compiler simulation of the `ptr.add` opcode for the virtual `ACTIVE_PTR` pointer.\n @dev Transforms `ACTIVE_PTR.offset` into `ACTIVE_PTR.offset + u32(_value)`. If overflow happens then it panics."},"id":2606,"implemented":true,"kind":"function","modifiers":[],"name":"ptrAddIntoActive","nameLocation":"3847:16:16","nodeType":"FunctionDefinition","parameters":{"id":2594,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2593,"mutability":"mutable","name":"_value","nameLocation":"3871:6:16","nodeType":"VariableDeclaration","scope":2606,"src":"3864:13:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2592,"name":"uint32","nodeType":"ElementaryTypeName","src":"3864:6:16","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"3863:15:16"},"returnParameters":{"id":2595,"nodeType":"ParameterList","parameters":[],"src":"3893:0:16"},"scope":3048,"src":"3838:389:16","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":2621,"nodeType":"Block","src":"4515:340:16","statements":[{"assignments":[2613],"declarations":[{"constant":false,"id":2613,"mutability":"mutable","name":"callAddr","nameLocation":"4533:8:16","nodeType":"VariableDeclaration","scope":2621,"src":"4525:16:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2612,"name":"address","nodeType":"ElementaryTypeName","src":"4525:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":2615,"initialValue":{"id":2614,"name":"PTR_SHRINK_INTO_ACTIVE_CALL_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3338,"src":"4544:35:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4525:54:16"},{"assignments":[2617],"declarations":[{"constant":false,"id":2617,"mutability":"mutable","name":"cleanupMask","nameLocation":"4597:11:16","nodeType":"VariableDeclaration","scope":2621,"src":"4589:19:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2616,"name":"uint256","nodeType":"ElementaryTypeName","src":"4589:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2619,"initialValue":{"id":2618,"name":"UINT32_MASK","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2513,"src":"4611:11:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4589:33:16"},{"AST":{"nodeType":"YulBlock","src":"4641:208:16","statements":[{"nodeType":"YulAssignment","src":"4739:36:16","value":{"arguments":[{"name":"_shrink","nodeType":"YulIdentifier","src":"4754:7:16"},{"name":"cleanupMask","nodeType":"YulIdentifier","src":"4763:11:16"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4750:3:16"},"nodeType":"YulFunctionCall","src":"4750:25:16"},"variableNames":[{"name":"_shrink","nodeType":"YulIdentifier","src":"4739:7:16"}]},{"expression":{"arguments":[{"arguments":[{"name":"_shrink","nodeType":"YulIdentifier","src":"4803:7:16"},{"name":"callAddr","nodeType":"YulIdentifier","src":"4812:8:16"},{"kind":"number","nodeType":"YulLiteral","src":"4822:1:16","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4825:6:16","type":"","value":"0xFFFF"},{"kind":"number","nodeType":"YulLiteral","src":"4833:1:16","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4836:1:16","type":"","value":"0"}],"functionName":{"name":"staticcall","nodeType":"YulIdentifier","src":"4792:10:16"},"nodeType":"YulFunctionCall","src":"4792:46:16"}],"functionName":{"name":"pop","nodeType":"YulIdentifier","src":"4788:3:16"},"nodeType":"YulFunctionCall","src":"4788:51:16"},"nodeType":"YulExpressionStatement","src":"4788:51:16"}]},"evmVersion":"paris","externalReferences":[{"declaration":2609,"isOffset":false,"isSlot":false,"src":"4739:7:16","valueSize":1},{"declaration":2609,"isOffset":false,"isSlot":false,"src":"4754:7:16","valueSize":1},{"declaration":2609,"isOffset":false,"isSlot":false,"src":"4803:7:16","valueSize":1},{"declaration":2613,"isOffset":false,"isSlot":false,"src":"4812:8:16","valueSize":1},{"declaration":2617,"isOffset":false,"isSlot":false,"src":"4763:11:16","valueSize":1}],"id":2620,"nodeType":"InlineAssembly","src":"4632:217:16"}]},"documentation":{"id":2607,"nodeType":"StructuredDocumentation","src":"4233:218:16","text":"@notice Compiler simulation of the `ptr.shrink` opcode for the virtual `ACTIVE_PTR` pointer.\n @dev Transforms `ACTIVE_PTR.length` into `ACTIVE_PTR.length - u32(_shrink)`. If underflow happens then it panics."},"id":2622,"implemented":true,"kind":"function","modifiers":[],"name":"ptrShrinkIntoActive","nameLocation":"4465:19:16","nodeType":"FunctionDefinition","parameters":{"id":2610,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2609,"mutability":"mutable","name":"_shrink","nameLocation":"4492:7:16","nodeType":"VariableDeclaration","scope":2622,"src":"4485:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2608,"name":"uint32","nodeType":"ElementaryTypeName","src":"4485:6:16","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"4484:16:16"},"returnParameters":{"id":2611,"nodeType":"ParameterList","parameters":[],"src":"4515:0:16"},"scope":3048,"src":"4456:399:16","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":2678,"nodeType":"Block","src":"5755:281:16","statements":[{"expression":{"id":2640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2638,"name":"rawParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2636,"src":"5765:9:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2639,"name":"_inputMemoryOffset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2625,"src":"5777:18:16","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"5765:30:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2641,"nodeType":"ExpressionStatement","src":"5765:30:16"},{"expression":{"id":2649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2642,"name":"rawParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2636,"src":"5805:9:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"|=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":2645,"name":"_inputMemoryLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2627,"src":"5826:18:16","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"}],"id":2644,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5818:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":2643,"name":"uint256","nodeType":"ElementaryTypeName","src":"5818:7:16","typeDescriptions":{}}},"id":2646,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5818:27:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3332","id":2647,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5849:2:16","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"5818:33:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5805:46:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2650,"nodeType":"ExpressionStatement","src":"5805:46:16"},{"expression":{"id":2658,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2651,"name":"rawParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2636,"src":"5861:9:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"|=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2657,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":2654,"name":"_outputMemoryOffset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2629,"src":"5882:19:16","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"}],"id":2653,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5874:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":2652,"name":"uint256","nodeType":"ElementaryTypeName","src":"5874:7:16","typeDescriptions":{}}},"id":2655,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5874:28:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3634","id":2656,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5906:2:16","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"5874:34:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5861:47:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2659,"nodeType":"ExpressionStatement","src":"5861:47:16"},{"expression":{"id":2667,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2660,"name":"rawParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2636,"src":"5918:9:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"|=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2666,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":2663,"name":"_outputMemoryLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2631,"src":"5939:19:16","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"}],"id":2662,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5931:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":2661,"name":"uint256","nodeType":"ElementaryTypeName","src":"5931:7:16","typeDescriptions":{}}},"id":2664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5931:28:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3936","id":2665,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5963:2:16","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"96"},"src":"5931:34:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5918:47:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2668,"nodeType":"ExpressionStatement","src":"5918:47:16"},{"expression":{"id":2676,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2669,"name":"rawParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2636,"src":"5975:9:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"|=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":2672,"name":"_perPrecompileInterpreted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2633,"src":"5996:25:16","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":2671,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5988:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":2670,"name":"uint256","nodeType":"ElementaryTypeName","src":"5988:7:16","typeDescriptions":{}}},"id":2673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5988:34:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313932","id":2674,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6026:3:16","typeDescriptions":{"typeIdentifier":"t_rational_192_by_1","typeString":"int_const 192"},"value":"192"},"src":"5988:41:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5975:54:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2677,"nodeType":"ExpressionStatement","src":"5975:54:16"}]},"documentation":{"id":2623,"nodeType":"StructuredDocumentation","src":"4861:627:16","text":"@notice packs precompile parameters into one word\n @param _inputMemoryOffset The memory offset in 32-byte words for the input data for calling the precompile.\n @param _inputMemoryLength The length of the input data in words.\n @param _outputMemoryOffset The memory offset in 32-byte words for the output data.\n @param _outputMemoryLength The length of the output data in words.\n @param _perPrecompileInterpreted The constant, the meaning of which is defined separately for\n each precompile. For information, please read the documentation of the precompilecall log in\n the VM."},"id":2679,"implemented":true,"kind":"function","modifiers":[],"name":"packPrecompileParams","nameLocation":"5502:20:16","nodeType":"FunctionDefinition","parameters":{"id":2634,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2625,"mutability":"mutable","name":"_inputMemoryOffset","nameLocation":"5539:18:16","nodeType":"VariableDeclaration","scope":2679,"src":"5532:25:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2624,"name":"uint32","nodeType":"ElementaryTypeName","src":"5532:6:16","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":2627,"mutability":"mutable","name":"_inputMemoryLength","nameLocation":"5574:18:16","nodeType":"VariableDeclaration","scope":2679,"src":"5567:25:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2626,"name":"uint32","nodeType":"ElementaryTypeName","src":"5567:6:16","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":2629,"mutability":"mutable","name":"_outputMemoryOffset","nameLocation":"5609:19:16","nodeType":"VariableDeclaration","scope":2679,"src":"5602:26:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2628,"name":"uint32","nodeType":"ElementaryTypeName","src":"5602:6:16","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":2631,"mutability":"mutable","name":"_outputMemoryLength","nameLocation":"5645:19:16","nodeType":"VariableDeclaration","scope":2679,"src":"5638:26:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2630,"name":"uint32","nodeType":"ElementaryTypeName","src":"5638:6:16","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":2633,"mutability":"mutable","name":"_perPrecompileInterpreted","nameLocation":"5681:25:16","nodeType":"VariableDeclaration","scope":2679,"src":"5674:32:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":2632,"name":"uint64","nodeType":"ElementaryTypeName","src":"5674:6:16","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"5522:190:16"},"returnParameters":{"id":2637,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2636,"mutability":"mutable","name":"rawParams","nameLocation":"5744:9:16","nodeType":"VariableDeclaration","scope":2679,"src":"5736:17:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2635,"name":"uint256","nodeType":"ElementaryTypeName","src":"5736:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5735:19:16"},"scope":3048,"src":"5493:543:16","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2705,"nodeType":"Block","src":"6846:550:16","statements":[{"assignments":[2690],"declarations":[{"constant":false,"id":2690,"mutability":"mutable","name":"callAddr","nameLocation":"6864:8:16","nodeType":"VariableDeclaration","scope":2705,"src":"6856:16:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2689,"name":"address","nodeType":"ElementaryTypeName","src":"6856:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":2692,"initialValue":{"id":2691,"name":"PRECOMPILE_CALL_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3107,"src":"6875:23:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6856:42:16"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2697,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":2694,"name":"gasleft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-7,"src":"7072:7:16","typeDescriptions":{"typeIdentifier":"t_function_gasleft_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":2695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7072:9:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":2696,"name":"_gasToBurn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2684,"src":"7085:10:16","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"7072:23:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":2693,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7064:7:16","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":2698,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7064:32:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2699,"nodeType":"ExpressionStatement","src":"7064:32:16"},{"assignments":[2701],"declarations":[{"constant":false,"id":2701,"mutability":"mutable","name":"cleanupMask","nameLocation":"7114:11:16","nodeType":"VariableDeclaration","scope":2705,"src":"7106:19:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2700,"name":"uint256","nodeType":"ElementaryTypeName","src":"7106:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2703,"initialValue":{"id":2702,"name":"UINT32_MASK","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2513,"src":"7128:11:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7106:33:16"},{"AST":{"nodeType":"YulBlock","src":"7158:232:16","statements":[{"nodeType":"YulAssignment","src":"7256:42:16","value":{"arguments":[{"name":"_gasToBurn","nodeType":"YulIdentifier","src":"7274:10:16"},{"name":"cleanupMask","nodeType":"YulIdentifier","src":"7286:11:16"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7270:3:16"},"nodeType":"YulFunctionCall","src":"7270:28:16"},"variableNames":[{"name":"_gasToBurn","nodeType":"YulIdentifier","src":"7256:10:16"}]},{"nodeType":"YulAssignment","src":"7311:69:16","value":{"arguments":[{"name":"_rawParams","nodeType":"YulIdentifier","src":"7333:10:16"},{"name":"callAddr","nodeType":"YulIdentifier","src":"7345:8:16"},{"name":"_gasToBurn","nodeType":"YulIdentifier","src":"7355:10:16"},{"kind":"number","nodeType":"YulLiteral","src":"7367:6:16","type":"","value":"0xFFFF"},{"kind":"number","nodeType":"YulLiteral","src":"7375:1:16","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7378:1:16","type":"","value":"0"}],"functionName":{"name":"staticcall","nodeType":"YulIdentifier","src":"7322:10:16"},"nodeType":"YulFunctionCall","src":"7322:58:16"},"variableNames":[{"name":"success","nodeType":"YulIdentifier","src":"7311:7:16"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":2684,"isOffset":false,"isSlot":false,"src":"7256:10:16","valueSize":1},{"declaration":2684,"isOffset":false,"isSlot":false,"src":"7274:10:16","valueSize":1},{"declaration":2684,"isOffset":false,"isSlot":false,"src":"7355:10:16","valueSize":1},{"declaration":2682,"isOffset":false,"isSlot":false,"src":"7333:10:16","valueSize":1},{"declaration":2690,"isOffset":false,"isSlot":false,"src":"7345:8:16","valueSize":1},{"declaration":2701,"isOffset":false,"isSlot":false,"src":"7286:11:16","valueSize":1},{"declaration":2687,"isOffset":false,"isSlot":false,"src":"7311:7:16","valueSize":1}],"id":2704,"nodeType":"InlineAssembly","src":"7149:241:16"}]},"documentation":{"id":2680,"nodeType":"StructuredDocumentation","src":"6042:699:16","text":"@notice Call precompile with given parameters.\n @param _rawParams The packed precompile params. They can be retrieved by\n the `packPrecompileParams` method.\n @param _gasToBurn The number of gas to burn during this call.\n @return success Whether the call was successful.\n @dev The list of currently available precompiles sha256, keccak256, ecrecover.\n NOTE: The precompile type depends on `this` which calls precompile, which means that only\n system contracts corresponding to the list of precompiles above can do `precompileCall`.\n @dev If used not in the `sha256`, `keccak256` or `ecrecover` contracts, it will just burn the gas provided."},"id":2706,"implemented":true,"kind":"function","modifiers":[],"name":"precompileCall","nameLocation":"6755:14:16","nodeType":"FunctionDefinition","parameters":{"id":2685,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2682,"mutability":"mutable","name":"_rawParams","nameLocation":"6778:10:16","nodeType":"VariableDeclaration","scope":2706,"src":"6770:18:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2681,"name":"uint256","nodeType":"ElementaryTypeName","src":"6770:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2684,"mutability":"mutable","name":"_gasToBurn","nameLocation":"6797:10:16","nodeType":"VariableDeclaration","scope":2706,"src":"6790:17:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2683,"name":"uint32","nodeType":"ElementaryTypeName","src":"6790:6:16","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"6769:39:16"},"returnParameters":{"id":2688,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2687,"mutability":"mutable","name":"success","nameLocation":"6837:7:16","nodeType":"VariableDeclaration","scope":2706,"src":"6832:12:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2686,"name":"bool","nodeType":"ElementaryTypeName","src":"6832:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6831:14:16"},"scope":3048,"src":"6746:650:16","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":2723,"nodeType":"Block","src":"7698:336:16","statements":[{"assignments":[2715],"declarations":[{"constant":false,"id":2715,"mutability":"mutable","name":"cleanupMask","nameLocation":"7716:11:16","nodeType":"VariableDeclaration","scope":2723,"src":"7708:19:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2714,"name":"uint256","nodeType":"ElementaryTypeName","src":"7708:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2717,"initialValue":{"id":2716,"name":"UINT128_MASK","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2516,"src":"7730:12:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7708:34:16"},{"assignments":[2719],"declarations":[{"constant":false,"id":2719,"mutability":"mutable","name":"callAddr","nameLocation":"7760:8:16","nodeType":"VariableDeclaration","scope":2723,"src":"7752:16:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2718,"name":"address","nodeType":"ElementaryTypeName","src":"7752:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":2721,"initialValue":{"id":2720,"name":"SET_CONTEXT_VALUE_CALL_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3217,"src":"7771:30:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"7752:49:16"},{"AST":{"nodeType":"YulBlock","src":"7820:208:16","statements":[{"nodeType":"YulAssignment","src":"7918:34:16","value":{"arguments":[{"name":"_value","nodeType":"YulIdentifier","src":"7932:6:16"},{"name":"cleanupMask","nodeType":"YulIdentifier","src":"7940:11:16"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7928:3:16"},"nodeType":"YulFunctionCall","src":"7928:24:16"},"variableNames":[{"name":"_value","nodeType":"YulIdentifier","src":"7918:6:16"}]},{"nodeType":"YulAssignment","src":"7965:53:16","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7981:1:16","type":"","value":"0"},{"name":"callAddr","nodeType":"YulIdentifier","src":"7984:8:16"},{"name":"_value","nodeType":"YulIdentifier","src":"7994:6:16"},{"kind":"number","nodeType":"YulLiteral","src":"8002:1:16","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8005:6:16","type":"","value":"0xFFFF"},{"kind":"number","nodeType":"YulLiteral","src":"8013:1:16","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8016:1:16","type":"","value":"0"}],"functionName":{"name":"call","nodeType":"YulIdentifier","src":"7976:4:16"},"nodeType":"YulFunctionCall","src":"7976:42:16"},"variableNames":[{"name":"success","nodeType":"YulIdentifier","src":"7965:7:16"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":2709,"isOffset":false,"isSlot":false,"src":"7918:6:16","valueSize":1},{"declaration":2709,"isOffset":false,"isSlot":false,"src":"7932:6:16","valueSize":1},{"declaration":2709,"isOffset":false,"isSlot":false,"src":"7994:6:16","valueSize":1},{"declaration":2719,"isOffset":false,"isSlot":false,"src":"7984:8:16","valueSize":1},{"declaration":2715,"isOffset":false,"isSlot":false,"src":"7940:11:16","valueSize":1},{"declaration":2712,"isOffset":false,"isSlot":false,"src":"7965:7:16","valueSize":1}],"id":2722,"nodeType":"InlineAssembly","src":"7811:217:16"}]},"documentation":{"id":2707,"nodeType":"StructuredDocumentation","src":"7402:211:16","text":"@notice Set `msg.value` to next far call.\n @param _value The msg.value that will be used for the *next* call.\n @dev If called not in kernel mode, it will result in a revert (enforced by the VM)"},"id":2724,"implemented":true,"kind":"function","modifiers":[],"name":"setValueForNextFarCall","nameLocation":"7627:22:16","nodeType":"FunctionDefinition","parameters":{"id":2710,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2709,"mutability":"mutable","name":"_value","nameLocation":"7658:6:16","nodeType":"VariableDeclaration","scope":2724,"src":"7650:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":2708,"name":"uint128","nodeType":"ElementaryTypeName","src":"7650:7:16","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"7649:16:16"},"returnParameters":{"id":2713,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2712,"mutability":"mutable","name":"success","nameLocation":"7689:7:16","nodeType":"VariableDeclaration","scope":2724,"src":"7684:12:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2711,"name":"bool","nodeType":"ElementaryTypeName","src":"7684:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7683:14:16"},"scope":3048,"src":"7618:416:16","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2737,"nodeType":"Block","src":"8261:159:16","statements":[{"assignments":[2733],"declarations":[{"constant":false,"id":2733,"mutability":"mutable","name":"callAddr","nameLocation":"8279:8:16","nodeType":"VariableDeclaration","scope":2737,"src":"8271:16:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2732,"name":"address","nodeType":"ElementaryTypeName","src":"8271:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":2735,"initialValue":{"id":2734,"name":"EVENT_INITIALIZE_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3283,"src":"8290:24:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"8271:43:16"},{"AST":{"nodeType":"YulBlock","src":"8333:81:16","statements":[{"expression":{"arguments":[{"arguments":[{"name":"initializer","nodeType":"YulIdentifier","src":"8356:11:16"},{"name":"callAddr","nodeType":"YulIdentifier","src":"8369:8:16"},{"name":"value1","nodeType":"YulIdentifier","src":"8379:6:16"},{"kind":"number","nodeType":"YulLiteral","src":"8387:1:16","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8390:6:16","type":"","value":"0xFFFF"},{"kind":"number","nodeType":"YulLiteral","src":"8398:1:16","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8401:1:16","type":"","value":"0"}],"functionName":{"name":"call","nodeType":"YulIdentifier","src":"8351:4:16"},"nodeType":"YulFunctionCall","src":"8351:52:16"}],"functionName":{"name":"pop","nodeType":"YulIdentifier","src":"8347:3:16"},"nodeType":"YulFunctionCall","src":"8347:57:16"},"nodeType":"YulExpressionStatement","src":"8347:57:16"}]},"evmVersion":"paris","externalReferences":[{"declaration":2733,"isOffset":false,"isSlot":false,"src":"8369:8:16","valueSize":1},{"declaration":2727,"isOffset":false,"isSlot":false,"src":"8356:11:16","valueSize":1},{"declaration":2729,"isOffset":false,"isSlot":false,"src":"8379:6:16","valueSize":1}],"id":2736,"nodeType":"InlineAssembly","src":"8324:90:16"}]},"documentation":{"id":2725,"nodeType":"StructuredDocumentation","src":"8040:145:16","text":"@notice Initialize a new event.\n @param initializer The event initializing value.\n @param value1 The first topic or data chunk."},"id":2738,"implemented":true,"kind":"function","modifiers":[],"name":"eventInitialize","nameLocation":"8199:15:16","nodeType":"FunctionDefinition","parameters":{"id":2730,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2727,"mutability":"mutable","name":"initializer","nameLocation":"8223:11:16","nodeType":"VariableDeclaration","scope":2738,"src":"8215:19:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2726,"name":"uint256","nodeType":"ElementaryTypeName","src":"8215:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2729,"mutability":"mutable","name":"value1","nameLocation":"8244:6:16","nodeType":"VariableDeclaration","scope":2738,"src":"8236:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2728,"name":"uint256","nodeType":"ElementaryTypeName","src":"8236:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8214:37:16"},"returnParameters":{"id":2731,"nodeType":"ParameterList","parameters":[],"src":"8261:0:16"},"scope":3048,"src":"8190:230:16","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2751,"nodeType":"Block","src":"8661:149:16","statements":[{"assignments":[2747],"declarations":[{"constant":false,"id":2747,"mutability":"mutable","name":"callAddr","nameLocation":"8679:8:16","nodeType":"VariableDeclaration","scope":2751,"src":"8671:16:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2746,"name":"address","nodeType":"ElementaryTypeName","src":"8671:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":2749,"initialValue":{"id":2748,"name":"EVENT_WRITE_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3294,"src":"8690:19:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"8671:38:16"},{"AST":{"nodeType":"YulBlock","src":"8728:76:16","statements":[{"expression":{"arguments":[{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"8751:6:16"},{"name":"callAddr","nodeType":"YulIdentifier","src":"8759:8:16"},{"name":"value2","nodeType":"YulIdentifier","src":"8769:6:16"},{"kind":"number","nodeType":"YulLiteral","src":"8777:1:16","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8780:6:16","type":"","value":"0xFFFF"},{"kind":"number","nodeType":"YulLiteral","src":"8788:1:16","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8791:1:16","type":"","value":"0"}],"functionName":{"name":"call","nodeType":"YulIdentifier","src":"8746:4:16"},"nodeType":"YulFunctionCall","src":"8746:47:16"}],"functionName":{"name":"pop","nodeType":"YulIdentifier","src":"8742:3:16"},"nodeType":"YulFunctionCall","src":"8742:52:16"},"nodeType":"YulExpressionStatement","src":"8742:52:16"}]},"evmVersion":"paris","externalReferences":[{"declaration":2747,"isOffset":false,"isSlot":false,"src":"8759:8:16","valueSize":1},{"declaration":2741,"isOffset":false,"isSlot":false,"src":"8751:6:16","valueSize":1},{"declaration":2743,"isOffset":false,"isSlot":false,"src":"8769:6:16","valueSize":1}],"id":2750,"nodeType":"InlineAssembly","src":"8719:85:16"}]},"documentation":{"id":2739,"nodeType":"StructuredDocumentation","src":"8426:169:16","text":"@notice Continue writing the previously initialized event.\n @param value1 The first topic or data chunk.\n @param value2 The second topic or data chunk."},"id":2752,"implemented":true,"kind":"function","modifiers":[],"name":"eventWrite","nameLocation":"8609:10:16","nodeType":"FunctionDefinition","parameters":{"id":2744,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2741,"mutability":"mutable","name":"value1","nameLocation":"8628:6:16","nodeType":"VariableDeclaration","scope":2752,"src":"8620:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2740,"name":"uint256","nodeType":"ElementaryTypeName","src":"8620:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2743,"mutability":"mutable","name":"value2","nameLocation":"8644:6:16","nodeType":"VariableDeclaration","scope":2752,"src":"8636:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2742,"name":"uint256","nodeType":"ElementaryTypeName","src":"8636:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8619:32:16"},"returnParameters":{"id":2745,"nodeType":"ParameterList","parameters":[],"src":"8661:0:16"},"scope":3048,"src":"8600:210:16","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2763,"nodeType":"Block","src":"9231:143:16","statements":[{"assignments":[2759],"declarations":[{"constant":false,"id":2759,"mutability":"mutable","name":"callAddr","nameLocation":"9249:8:16","nodeType":"VariableDeclaration","scope":2763,"src":"9241:16:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2758,"name":"address","nodeType":"ElementaryTypeName","src":"9241:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":2761,"initialValue":{"id":2760,"name":"META_CALL_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3118,"src":"9260:17:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"9241:36:16"},{"AST":{"nodeType":"YulBlock","src":"9296:72:16","statements":[{"nodeType":"YulAssignment","src":"9310:48:16","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9329:1:16","type":"","value":"0"},{"name":"callAddr","nodeType":"YulIdentifier","src":"9332:8:16"},{"kind":"number","nodeType":"YulLiteral","src":"9342:1:16","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9345:6:16","type":"","value":"0xFFFF"},{"kind":"number","nodeType":"YulLiteral","src":"9353:1:16","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9356:1:16","type":"","value":"0"}],"functionName":{"name":"staticcall","nodeType":"YulIdentifier","src":"9318:10:16"},"nodeType":"YulFunctionCall","src":"9318:40:16"},"variableNames":[{"name":"meta","nodeType":"YulIdentifier","src":"9310:4:16"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":2759,"isOffset":false,"isSlot":false,"src":"9332:8:16","valueSize":1},{"declaration":2756,"isOffset":false,"isSlot":false,"src":"9310:4:16","valueSize":1}],"id":2762,"nodeType":"InlineAssembly","src":"9287:81:16"}]},"documentation":{"id":2753,"nodeType":"StructuredDocumentation","src":"8816:343:16","text":"@notice Get the packed representation of the `ZkSyncMeta` from the current context.\n @return meta The packed representation of the ZkSyncMeta.\n @dev The fields in ZkSyncMeta are NOT tightly packed, i.e. there is a special rule on how\n they are packed. For more information, please read the documentation on ZkSyncMeta."},"id":2764,"implemented":true,"kind":"function","modifiers":[],"name":"getZkSyncMetaBytes","nameLocation":"9173:18:16","nodeType":"FunctionDefinition","parameters":{"id":2754,"nodeType":"ParameterList","parameters":[],"src":"9191:2:16"},"returnParameters":{"id":2757,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2756,"mutability":"mutable","name":"meta","nameLocation":"9225:4:16","nodeType":"VariableDeclaration","scope":2764,"src":"9217:12:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2755,"name":"uint256","nodeType":"ElementaryTypeName","src":"9217:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9216:14:16"},"scope":3048,"src":"9164:210:16","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":2798,"nodeType":"Block","src":"9778:210:16","statements":[{"assignments":[2777],"declarations":[{"constant":false,"id":2777,"mutability":"mutable","name":"shifted","nameLocation":"9855:7:16","nodeType":"VariableDeclaration","scope":2798,"src":"9847:15:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2776,"name":"uint256","nodeType":"ElementaryTypeName","src":"9847:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2787,"initialValue":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2778,"name":"meta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2767,"src":"9866:4:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2783,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2781,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"323536","id":2779,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9875:3:16","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"value":"256"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":2780,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2771,"src":"9881:4:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9875:10:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":2782,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2769,"src":"9888:6:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9875:19:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2784,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9874:21:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9866:29:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2786,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9865:31:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9847:49:16"},{"expression":{"id":2796,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2788,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2774,"src":"9947:6:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2794,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2789,"name":"shifted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2777,"src":"9957:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2792,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"323536","id":2790,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9969:3:16","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"value":"256"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":2791,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2771,"src":"9975:4:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9969:10:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2793,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9968:12:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9957:23:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2795,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9956:25:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9947:34:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2797,"nodeType":"ExpressionStatement","src":"9947:34:16"}]},"documentation":{"id":2765,"nodeType":"StructuredDocumentation","src":"9380:279:16","text":"@notice Returns the bits [offset..offset+size-1] of the meta.\n @param meta Packed representation of the ZkSyncMeta.\n @param offset The offset of the bits.\n @param size The size of the extracted number in bits.\n @return result The extracted number."},"id":2799,"implemented":true,"kind":"function","modifiers":[],"name":"extractNumberFromMeta","nameLocation":"9673:21:16","nodeType":"FunctionDefinition","parameters":{"id":2772,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2767,"mutability":"mutable","name":"meta","nameLocation":"9703:4:16","nodeType":"VariableDeclaration","scope":2799,"src":"9695:12:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2766,"name":"uint256","nodeType":"ElementaryTypeName","src":"9695:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2769,"mutability":"mutable","name":"offset","nameLocation":"9717:6:16","nodeType":"VariableDeclaration","scope":2799,"src":"9709:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2768,"name":"uint256","nodeType":"ElementaryTypeName","src":"9709:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2771,"mutability":"mutable","name":"size","nameLocation":"9733:4:16","nodeType":"VariableDeclaration","scope":2799,"src":"9725:12:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2770,"name":"uint256","nodeType":"ElementaryTypeName","src":"9725:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9694:44:16"},"returnParameters":{"id":2775,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2774,"mutability":"mutable","name":"result","nameLocation":"9770:6:16","nodeType":"VariableDeclaration","scope":2799,"src":"9762:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2773,"name":"uint256","nodeType":"ElementaryTypeName","src":"9762:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9761:16:16"},"scope":3048,"src":"9664:324:16","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2818,"nodeType":"Block","src":"10382:110:16","statements":[{"expression":{"id":2816,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2807,"name":"gasPerPubdataByte","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2805,"src":"10392:17:16","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":2811,"name":"meta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2802,"src":"10441:4:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2812,"name":"META_GAS_PER_PUBDATA_BYTE_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3376,"src":"10447:32:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"3332","id":2813,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10481:2:16","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"}],"id":2810,"name":"extractNumberFromMeta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2799,"src":"10419:21:16","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":2814,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10419:65:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2809,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10412:6:16","typeDescriptions":{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"},"typeName":{"id":2808,"name":"uint32","nodeType":"ElementaryTypeName","src":"10412:6:16","typeDescriptions":{}}},"id":2815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10412:73:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"10392:93:16","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"id":2817,"nodeType":"ExpressionStatement","src":"10392:93:16"}]},"documentation":{"id":2800,"nodeType":"StructuredDocumentation","src":"9994:282:16","text":"@notice Given the packed representation of `ZkSyncMeta`, retrieves the number of gas\n that a single byte sent to L1 as pubdata costs.\n @param meta Packed representation of the ZkSyncMeta.\n @return gasPerPubdataByte The current price in gas per pubdata byte."},"id":2819,"implemented":true,"kind":"function","modifiers":[],"name":"getGasPerPubdataByteFromMeta","nameLocation":"10290:28:16","nodeType":"FunctionDefinition","parameters":{"id":2803,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2802,"mutability":"mutable","name":"meta","nameLocation":"10327:4:16","nodeType":"VariableDeclaration","scope":2819,"src":"10319:12:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2801,"name":"uint256","nodeType":"ElementaryTypeName","src":"10319:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10318:14:16"},"returnParameters":{"id":2806,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2805,"mutability":"mutable","name":"gasPerPubdataByte","nameLocation":"10363:17:16","nodeType":"VariableDeclaration","scope":2819,"src":"10356:24:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2804,"name":"uint32","nodeType":"ElementaryTypeName","src":"10356:6:16","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"10355:26:16"},"scope":3048,"src":"10281:211:16","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2838,"nodeType":"Block","src":"10970:90:16","statements":[{"expression":{"id":2836,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2827,"name":"heapSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2825,"src":"10980:8:16","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":2831,"name":"meta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2822,"src":"11020:4:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2832,"name":"META_HEAP_SIZE_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3381,"src":"11026:21:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"3332","id":2833,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11049:2:16","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"}],"id":2830,"name":"extractNumberFromMeta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2799,"src":"10998:21:16","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":2834,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10998:54:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2829,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10991:6:16","typeDescriptions":{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"},"typeName":{"id":2828,"name":"uint32","nodeType":"ElementaryTypeName","src":"10991:6:16","typeDescriptions":{}}},"id":2835,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10991:62:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"10980:73:16","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"id":2837,"nodeType":"ExpressionStatement","src":"10980:73:16"}]},"documentation":{"id":2820,"nodeType":"StructuredDocumentation","src":"10498:384:16","text":"@notice Given the packed representation of `ZkSyncMeta`, retrieves the number of the current size\n of the heap in bytes.\n @param meta Packed representation of the ZkSyncMeta.\n @return heapSize The size of the memory in bytes byte.\n @dev The following expression: getHeapSizeFromMeta(getZkSyncMetaBytes()) is\n equivalent to the MSIZE in Solidity."},"id":2839,"implemented":true,"kind":"function","modifiers":[],"name":"getHeapSizeFromMeta","nameLocation":"10896:19:16","nodeType":"FunctionDefinition","parameters":{"id":2823,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2822,"mutability":"mutable","name":"meta","nameLocation":"10924:4:16","nodeType":"VariableDeclaration","scope":2839,"src":"10916:12:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2821,"name":"uint256","nodeType":"ElementaryTypeName","src":"10916:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10915:14:16"},"returnParameters":{"id":2826,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2825,"mutability":"mutable","name":"heapSize","nameLocation":"10960:8:16","nodeType":"VariableDeclaration","scope":2839,"src":"10953:15:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2824,"name":"uint32","nodeType":"ElementaryTypeName","src":"10953:6:16","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"10952:17:16"},"scope":3048,"src":"10887:173:16","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2858,"nodeType":"Block","src":"11514:97:16","statements":[{"expression":{"id":2856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2847,"name":"auxHeapSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2845,"src":"11524:11:16","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":2851,"name":"meta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2842,"src":"11567:4:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2852,"name":"META_AUX_HEAP_SIZE_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3386,"src":"11573:25:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"3332","id":2853,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11600:2:16","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"}],"id":2850,"name":"extractNumberFromMeta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2799,"src":"11545:21:16","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":2854,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11545:58:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2849,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11538:6:16","typeDescriptions":{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"},"typeName":{"id":2848,"name":"uint32","nodeType":"ElementaryTypeName","src":"11538:6:16","typeDescriptions":{}}},"id":2855,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11538:66:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"11524:80:16","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"id":2857,"nodeType":"ExpressionStatement","src":"11524:80:16"}]},"documentation":{"id":2840,"nodeType":"StructuredDocumentation","src":"11066:354:16","text":"@notice Given the packed representation of `ZkSyncMeta`, retrieves the number of the current size\n of the auxilary heap in bytes.\n @param meta Packed representation of the ZkSyncMeta.\n @return auxHeapSize The size of the auxilary memory in bytes byte.\n @dev You can read more on auxilary memory in the VM1.2 documentation."},"id":2859,"implemented":true,"kind":"function","modifiers":[],"name":"getAuxHeapSizeFromMeta","nameLocation":"11434:22:16","nodeType":"FunctionDefinition","parameters":{"id":2843,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2842,"mutability":"mutable","name":"meta","nameLocation":"11465:4:16","nodeType":"VariableDeclaration","scope":2859,"src":"11457:12:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2841,"name":"uint256","nodeType":"ElementaryTypeName","src":"11457:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11456:14:16"},"returnParameters":{"id":2846,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2845,"mutability":"mutable","name":"auxHeapSize","nameLocation":"11501:11:16","nodeType":"VariableDeclaration","scope":2859,"src":"11494:18:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2844,"name":"uint32","nodeType":"ElementaryTypeName","src":"11494:6:16","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"11493:20:16"},"scope":3048,"src":"11425:186:16","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2878,"nodeType":"Block","src":"11964:86:16","statements":[{"expression":{"id":2876,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2867,"name":"shardId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2865,"src":"11974:7:16","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":2871,"name":"meta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2862,"src":"12012:4:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2872,"name":"META_SHARD_ID_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3391,"src":"12018:20:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"38","id":2873,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12040:1:16","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"}],"id":2870,"name":"extractNumberFromMeta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2799,"src":"11990:21:16","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":2874,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11990:52:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2869,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11984:5:16","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":2868,"name":"uint8","nodeType":"ElementaryTypeName","src":"11984:5:16","typeDescriptions":{}}},"id":2875,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11984:59:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"11974:69:16","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":2877,"nodeType":"ExpressionStatement","src":"11974:69:16"}]},"documentation":{"id":2860,"nodeType":"StructuredDocumentation","src":"11617:262:16","text":"@notice Given the packed representation of `ZkSyncMeta`, retrieves the shardId of `this`.\n @param meta Packed representation of the ZkSyncMeta.\n @return shardId The shardId of `this`.\n @dev Currently only shard 0 (zkRollup) is supported."},"id":2879,"implemented":true,"kind":"function","modifiers":[],"name":"getShardIdFromMeta","nameLocation":"11893:18:16","nodeType":"FunctionDefinition","parameters":{"id":2863,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2862,"mutability":"mutable","name":"meta","nameLocation":"11920:4:16","nodeType":"VariableDeclaration","scope":2879,"src":"11912:12:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2861,"name":"uint256","nodeType":"ElementaryTypeName","src":"11912:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11911:14:16"},"returnParameters":{"id":2866,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2865,"mutability":"mutable","name":"shardId","nameLocation":"11955:7:16","nodeType":"VariableDeclaration","scope":2879,"src":"11949:13:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":2864,"name":"uint8","nodeType":"ElementaryTypeName","src":"11949:5:16","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"11948:15:16"},"scope":3048,"src":"11884:166:16","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2898,"nodeType":"Block","src":"12445:99:16","statements":[{"expression":{"id":2896,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2887,"name":"callerShardId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2885,"src":"12455:13:16","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":2891,"name":"meta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2882,"src":"12499:4:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2892,"name":"META_CALLER_SHARD_ID_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3396,"src":"12505:27:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"38","id":2893,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12534:1:16","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"}],"id":2890,"name":"extractNumberFromMeta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2799,"src":"12477:21:16","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":2894,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12477:59:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2889,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12471:5:16","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":2888,"name":"uint8","nodeType":"ElementaryTypeName","src":"12471:5:16","typeDescriptions":{}}},"id":2895,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12471:66:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"12455:82:16","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":2897,"nodeType":"ExpressionStatement","src":"12455:82:16"}]},"documentation":{"id":2880,"nodeType":"StructuredDocumentation","src":"12056:292:16","text":"@notice Given the packed representation of `ZkSyncMeta`, retrieves the shardId of\n the msg.sender.\n @param meta Packed representation of the ZkSyncMeta.\n @return callerShardId The shardId of the msg.sender.\n @dev Currently only shard 0 (zkRollup) is supported."},"id":2899,"implemented":true,"kind":"function","modifiers":[],"name":"getCallerShardIdFromMeta","nameLocation":"12362:24:16","nodeType":"FunctionDefinition","parameters":{"id":2883,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2882,"mutability":"mutable","name":"meta","nameLocation":"12395:4:16","nodeType":"VariableDeclaration","scope":2899,"src":"12387:12:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2881,"name":"uint256","nodeType":"ElementaryTypeName","src":"12387:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12386:14:16"},"returnParameters":{"id":2886,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2885,"mutability":"mutable","name":"callerShardId","nameLocation":"12430:13:16","nodeType":"VariableDeclaration","scope":2899,"src":"12424:19:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":2884,"name":"uint8","nodeType":"ElementaryTypeName","src":"12424:5:16","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"12423:21:16"},"scope":3048,"src":"12353:191:16","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2918,"nodeType":"Block","src":"12959:95:16","statements":[{"expression":{"id":2916,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2907,"name":"codeShardId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2905,"src":"12969:11:16","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":2911,"name":"meta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2902,"src":"13011:4:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2912,"name":"META_CODE_SHARD_ID_OFFSET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3401,"src":"13017:25:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"38","id":2913,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13044:1:16","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"}],"id":2910,"name":"extractNumberFromMeta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2799,"src":"12989:21:16","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":2914,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12989:57:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2909,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12983:5:16","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":2908,"name":"uint8","nodeType":"ElementaryTypeName","src":"12983:5:16","typeDescriptions":{}}},"id":2915,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12983:64:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"12969:78:16","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":2917,"nodeType":"ExpressionStatement","src":"12969:78:16"}]},"documentation":{"id":2900,"nodeType":"StructuredDocumentation","src":"12550:316:16","text":"@notice Given the packed representation of `ZkSyncMeta`, retrieves the shardId of\n the currently executed code.\n @param meta Packed representation of the ZkSyncMeta.\n @return codeShardId The shardId of the currently executed code.\n @dev Currently only shard 0 (zkRollup) is supported."},"id":2919,"implemented":true,"kind":"function","modifiers":[],"name":"getCodeShardIdFromMeta","nameLocation":"12880:22:16","nodeType":"FunctionDefinition","parameters":{"id":2903,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2902,"mutability":"mutable","name":"meta","nameLocation":"12911:4:16","nodeType":"VariableDeclaration","scope":2919,"src":"12903:12:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2901,"name":"uint256","nodeType":"ElementaryTypeName","src":"12903:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12902:14:16"},"returnParameters":{"id":2906,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2905,"mutability":"mutable","name":"codeShardId","nameLocation":"12946:11:16","nodeType":"VariableDeclaration","scope":2919,"src":"12940:17:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":2904,"name":"uint8","nodeType":"ElementaryTypeName","src":"12940:5:16","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"12939:19:16"},"scope":3048,"src":"12871:183:16","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2963,"nodeType":"Block","src":"13250:318:16","statements":[{"assignments":[2927],"declarations":[{"constant":false,"id":2927,"mutability":"mutable","name":"metaPacked","nameLocation":"13268:10:16","nodeType":"VariableDeclaration","scope":2963,"src":"13260:18:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2926,"name":"uint256","nodeType":"ElementaryTypeName","src":"13260:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2930,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":2928,"name":"getZkSyncMetaBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2764,"src":"13281:18:16","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":2929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13281:20:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13260:41:16"},{"expression":{"id":2937,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":2931,"name":"meta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2924,"src":"13311:4:16","typeDescriptions":{"typeIdentifier":"t_struct$_ZkSyncMeta_$2533_memory_ptr","typeString":"struct ZkSyncMeta memory"}},"id":2933,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"13316:17:16","memberName":"gasPerPubdataByte","nodeType":"MemberAccess","referencedDeclaration":2522,"src":"13311:22:16","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":2935,"name":"metaPacked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2927,"src":"13365:10:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2934,"name":"getGasPerPubdataByteFromMeta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2819,"src":"13336:28:16","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint32_$","typeString":"function (uint256) pure returns (uint32)"}},"id":2936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13336:40:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"13311:65:16","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"id":2938,"nodeType":"ExpressionStatement","src":"13311:65:16"},{"expression":{"id":2945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":2939,"name":"meta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2924,"src":"13386:4:16","typeDescriptions":{"typeIdentifier":"t_struct$_ZkSyncMeta_$2533_memory_ptr","typeString":"struct ZkSyncMeta memory"}},"id":2941,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"13391:7:16","memberName":"shardId","nodeType":"MemberAccess","referencedDeclaration":2528,"src":"13386:12:16","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":2943,"name":"metaPacked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2927,"src":"13420:10:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2942,"name":"getShardIdFromMeta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2879,"src":"13401:18:16","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint8_$","typeString":"function (uint256) pure returns (uint8)"}},"id":2944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13401:30:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"13386:45:16","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":2946,"nodeType":"ExpressionStatement","src":"13386:45:16"},{"expression":{"id":2953,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":2947,"name":"meta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2924,"src":"13441:4:16","typeDescriptions":{"typeIdentifier":"t_struct$_ZkSyncMeta_$2533_memory_ptr","typeString":"struct ZkSyncMeta memory"}},"id":2949,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"13446:13:16","memberName":"callerShardId","nodeType":"MemberAccess","referencedDeclaration":2530,"src":"13441:18:16","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":2951,"name":"metaPacked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2927,"src":"13487:10:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2950,"name":"getCallerShardIdFromMeta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2899,"src":"13462:24:16","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint8_$","typeString":"function (uint256) pure returns (uint8)"}},"id":2952,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13462:36:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"13441:57:16","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":2954,"nodeType":"ExpressionStatement","src":"13441:57:16"},{"expression":{"id":2961,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":2955,"name":"meta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2924,"src":"13508:4:16","typeDescriptions":{"typeIdentifier":"t_struct$_ZkSyncMeta_$2533_memory_ptr","typeString":"struct ZkSyncMeta memory"}},"id":2957,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"13513:11:16","memberName":"codeShardId","nodeType":"MemberAccess","referencedDeclaration":2532,"src":"13508:16:16","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":2959,"name":"metaPacked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2927,"src":"13550:10:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2958,"name":"getCodeShardIdFromMeta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2919,"src":"13527:22:16","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint8_$","typeString":"function (uint256) pure returns (uint8)"}},"id":2960,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13527:34:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"13508:53:16","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":2962,"nodeType":"ExpressionStatement","src":"13508:53:16"}]},"documentation":{"id":2920,"nodeType":"StructuredDocumentation","src":"13060:113:16","text":"@notice Retrieves the ZkSyncMeta structure.\n @return meta The ZkSyncMeta execution context parameters."},"id":2964,"implemented":true,"kind":"function","modifiers":[],"name":"getZkSyncMeta","nameLocation":"13187:13:16","nodeType":"FunctionDefinition","parameters":{"id":2921,"nodeType":"ParameterList","parameters":[],"src":"13200:2:16"},"returnParameters":{"id":2925,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2924,"mutability":"mutable","name":"meta","nameLocation":"13244:4:16","nodeType":"VariableDeclaration","scope":2964,"src":"13226:22:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ZkSyncMeta_$2533_memory_ptr","typeString":"struct ZkSyncMeta"},"typeName":{"id":2923,"nodeType":"UserDefinedTypeName","pathNode":{"id":2922,"name":"ZkSyncMeta","nameLocations":["13226:10:16"],"nodeType":"IdentifierPath","referencedDeclaration":2533,"src":"13226:10:16"},"referencedDeclaration":2533,"src":"13226:10:16","typeDescriptions":{"typeIdentifier":"t_struct$_ZkSyncMeta_$2533_storage_ptr","typeString":"struct ZkSyncMeta"}},"visibility":"internal"}],"src":"13225:24:16"},"scope":3048,"src":"13178:390:16","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":2975,"nodeType":"Block","src":"14034:153:16","statements":[{"assignments":[2971],"declarations":[{"constant":false,"id":2971,"mutability":"mutable","name":"callAddr","nameLocation":"14052:8:16","nodeType":"VariableDeclaration","scope":2975,"src":"14044:16:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2970,"name":"address","nodeType":"ElementaryTypeName","src":"14044:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":2973,"initialValue":{"id":2972,"name":"CALLFLAGS_CALL_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3261,"src":"14063:22:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"14044:41:16"},{"AST":{"nodeType":"YulBlock","src":"14104:77:16","statements":[{"nodeType":"YulAssignment","src":"14118:53:16","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14142:1:16","type":"","value":"0"},{"name":"callAddr","nodeType":"YulIdentifier","src":"14145:8:16"},{"kind":"number","nodeType":"YulLiteral","src":"14155:1:16","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14158:6:16","type":"","value":"0xFFFF"},{"kind":"number","nodeType":"YulLiteral","src":"14166:1:16","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14169:1:16","type":"","value":"0"}],"functionName":{"name":"staticcall","nodeType":"YulIdentifier","src":"14131:10:16"},"nodeType":"YulFunctionCall","src":"14131:40:16"},"variableNames":[{"name":"callFlags","nodeType":"YulIdentifier","src":"14118:9:16"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":2971,"isOffset":false,"isSlot":false,"src":"14145:8:16","valueSize":1},{"declaration":2968,"isOffset":false,"isSlot":false,"src":"14118:9:16","valueSize":1}],"id":2974,"nodeType":"InlineAssembly","src":"14095:86:16"}]},"documentation":{"id":2965,"nodeType":"StructuredDocumentation","src":"13574:389:16","text":"@notice Returns the call flags for the current call.\n @return callFlags The bitmask of the callflags.\n @dev Call flags is the value of the first register\n at the start of the call.\n @dev The zero bit of the callFlags indicates whether the call is\n a constructor call. The first bit of the callFlags indicates whether\n the call is a system one."},"id":2976,"implemented":true,"kind":"function","modifiers":[],"name":"getCallFlags","nameLocation":"13977:12:16","nodeType":"FunctionDefinition","parameters":{"id":2966,"nodeType":"ParameterList","parameters":[],"src":"13989:2:16"},"returnParameters":{"id":2969,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2968,"mutability":"mutable","name":"callFlags","nameLocation":"14023:9:16","nodeType":"VariableDeclaration","scope":2976,"src":"14015:17:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2967,"name":"uint256","nodeType":"ElementaryTypeName","src":"14015:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14014:19:16"},"scope":3048,"src":"13968:219:16","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":2987,"nodeType":"Block","src":"14492:150:16","statements":[{"assignments":[2983],"declarations":[{"constant":false,"id":2983,"mutability":"mutable","name":"callAddr","nameLocation":"14510:8:16","nodeType":"VariableDeclaration","scope":2987,"src":"14502:16:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2982,"name":"address","nodeType":"ElementaryTypeName","src":"14502:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":2985,"initialValue":{"id":2984,"name":"PTR_CALLDATA_CALL_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3250,"src":"14521:25:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"14502:44:16"},{"AST":{"nodeType":"YulBlock","src":"14565:71:16","statements":[{"nodeType":"YulAssignment","src":"14579:47:16","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14597:1:16","type":"","value":"0"},{"name":"callAddr","nodeType":"YulIdentifier","src":"14600:8:16"},{"kind":"number","nodeType":"YulLiteral","src":"14610:1:16","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14613:6:16","type":"","value":"0xFFFF"},{"kind":"number","nodeType":"YulLiteral","src":"14621:1:16","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14624:1:16","type":"","value":"0"}],"functionName":{"name":"staticcall","nodeType":"YulIdentifier","src":"14586:10:16"},"nodeType":"YulFunctionCall","src":"14586:40:16"},"variableNames":[{"name":"ptr","nodeType":"YulIdentifier","src":"14579:3:16"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":2983,"isOffset":false,"isSlot":false,"src":"14600:8:16","valueSize":1},{"declaration":2980,"isOffset":false,"isSlot":false,"src":"14579:3:16","valueSize":1}],"id":2986,"nodeType":"InlineAssembly","src":"14556:80:16"}]},"documentation":{"id":2977,"nodeType":"StructuredDocumentation","src":"14193:232:16","text":"@notice Returns the current calldata pointer.\n @return ptr The current calldata pointer.\n @dev NOTE: This file is just an integer and it can not be used\n to forward the calldata to the next calls in any way."},"id":2988,"implemented":true,"kind":"function","modifiers":[],"name":"getCalldataPtr","nameLocation":"14439:14:16","nodeType":"FunctionDefinition","parameters":{"id":2978,"nodeType":"ParameterList","parameters":[],"src":"14453:2:16"},"returnParameters":{"id":2981,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2980,"mutability":"mutable","name":"ptr","nameLocation":"14487:3:16","nodeType":"VariableDeclaration","scope":2988,"src":"14479:11:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2979,"name":"uint256","nodeType":"ElementaryTypeName","src":"14479:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14478:13:16"},"scope":3048,"src":"14430:212:16","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":3008,"nodeType":"Block","src":"14979:236:16","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2999,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2997,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2991,"src":"14997:5:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"3130","id":2998,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15005:2:16","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"14997:10:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"546865726520617265206f6e6c792031302061636365737369626c6520726567697374657273","id":3000,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15009:40:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_9ce0a11610c1b82d8853e9e07b10bee60ebd69e07053f481653c1f5aa7a7e705","typeString":"literal_string \"There are only 10 accessible registers\""},"value":"There are only 10 accessible registers"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9ce0a11610c1b82d8853e9e07b10bee60ebd69e07053f481653c1f5aa7a7e705","typeString":"literal_string \"There are only 10 accessible registers\""}],"id":2996,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"14989:7:16","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3001,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14989:61:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3002,"nodeType":"ExpressionStatement","src":"14989:61:16"},{"assignments":[3004],"declarations":[{"constant":false,"id":3004,"mutability":"mutable","name":"callAddr","nameLocation":"15069:8:16","nodeType":"VariableDeclaration","scope":3008,"src":"15061:16:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3003,"name":"address","nodeType":"ElementaryTypeName","src":"15061:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":3006,"initialValue":{"id":3005,"name":"GET_EXTRA_ABI_DATA_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3371,"src":"15080:26:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"15061:45:16"},{"AST":{"nodeType":"YulBlock","src":"15125:84:16","statements":[{"nodeType":"YulAssignment","src":"15139:60:16","value":{"arguments":[{"name":"index","nodeType":"YulIdentifier","src":"15166:5:16"},{"name":"callAddr","nodeType":"YulIdentifier","src":"15173:8:16"},{"kind":"number","nodeType":"YulLiteral","src":"15183:1:16","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"15186:6:16","type":"","value":"0xFFFF"},{"kind":"number","nodeType":"YulLiteral","src":"15194:1:16","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"15197:1:16","type":"","value":"0"}],"functionName":{"name":"staticcall","nodeType":"YulIdentifier","src":"15155:10:16"},"nodeType":"YulFunctionCall","src":"15155:44:16"},"variableNames":[{"name":"extraAbiData","nodeType":"YulIdentifier","src":"15139:12:16"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":3004,"isOffset":false,"isSlot":false,"src":"15173:8:16","valueSize":1},{"declaration":2994,"isOffset":false,"isSlot":false,"src":"15139:12:16","valueSize":1},{"declaration":2991,"isOffset":false,"isSlot":false,"src":"15166:5:16","valueSize":1}],"id":3007,"nodeType":"InlineAssembly","src":"15116:93:16"}]},"documentation":{"id":2989,"nodeType":"StructuredDocumentation","src":"14648:241:16","text":"@notice Returns the N-th extraAbiParam for the current call.\n @return extraAbiData The value of the N-th extraAbiParam for this call.\n @dev It is equal to the value of the (N+2)-th register\n at the start of the call."},"id":3009,"implemented":true,"kind":"function","modifiers":[],"name":"getExtraAbiData","nameLocation":"14903:15:16","nodeType":"FunctionDefinition","parameters":{"id":2992,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2991,"mutability":"mutable","name":"index","nameLocation":"14927:5:16","nodeType":"VariableDeclaration","scope":3009,"src":"14919:13:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2990,"name":"uint256","nodeType":"ElementaryTypeName","src":"14919:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14918:15:16"},"returnParameters":{"id":2995,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2994,"mutability":"mutable","name":"extraAbiData","nameLocation":"14965:12:16","nodeType":"VariableDeclaration","scope":3009,"src":"14957:20:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2993,"name":"uint256","nodeType":"ElementaryTypeName","src":"14957:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14956:22:16"},"scope":3048,"src":"14894:321:16","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":3027,"nodeType":"Block","src":"15426:153:16","statements":[{"assignments":[3016],"declarations":[{"constant":false,"id":3016,"mutability":"mutable","name":"callFlags","nameLocation":"15444:9:16","nodeType":"VariableDeclaration","scope":3027,"src":"15436:17:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3015,"name":"uint256","nodeType":"ElementaryTypeName","src":"15436:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3019,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":3017,"name":"getCallFlags","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2976,"src":"15456:12:16","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":3018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15456:14:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15436:34:16"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3025,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3022,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3020,"name":"callFlags","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3016,"src":"15553:9:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"32","id":3021,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15565:1:16","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"15553:13:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3023,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15552:15:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":3024,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15571:1:16","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"15552:20:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":3014,"id":3026,"nodeType":"Return","src":"15545:27:16"}]},"documentation":{"id":3010,"nodeType":"StructuredDocumentation","src":"15221:147:16","text":"@notice Retuns whether the current call is a system call.\n @return `true` or `false` based on whether the current call is a system call."},"id":3028,"implemented":true,"kind":"function","modifiers":[],"name":"isSystemCall","nameLocation":"15382:12:16","nodeType":"FunctionDefinition","parameters":{"id":3011,"nodeType":"ParameterList","parameters":[],"src":"15394:2:16"},"returnParameters":{"id":3014,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3013,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3028,"src":"15420:4:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3012,"name":"bool","nodeType":"ElementaryTypeName","src":"15420:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"15419:6:16"},"scope":3048,"src":"15373:206:16","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":3046,"nodeType":"Block","src":"15856:81:16","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint160","typeString":"uint160"},"id":3044,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":3038,"name":"_address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3031,"src":"15881:8:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3037,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15873:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":3036,"name":"uint160","nodeType":"ElementaryTypeName","src":"15873:7:16","typeDescriptions":{}}},"id":3039,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15873:17:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"arguments":[{"id":3042,"name":"MAX_SYSTEM_CONTRACT_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":925,"src":"15902:27:16","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":3041,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15894:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":3040,"name":"uint160","nodeType":"ElementaryTypeName","src":"15894:7:16","typeDescriptions":{}}},"id":3043,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15894:36:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"src":"15873:57:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":3035,"id":3045,"nodeType":"Return","src":"15866:64:16"}]},"documentation":{"id":3029,"nodeType":"StructuredDocumentation","src":"15585:193:16","text":"@notice Returns whether the address is a system contract.\n @param _address The address to test\n @return `true` or `false` based on whether the `_address` is a system contract."},"id":3047,"implemented":true,"kind":"function","modifiers":[],"name":"isSystemContract","nameLocation":"15792:16:16","nodeType":"FunctionDefinition","parameters":{"id":3032,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3031,"mutability":"mutable","name":"_address","nameLocation":"15817:8:16","nodeType":"VariableDeclaration","scope":3047,"src":"15809:16:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3030,"name":"address","nodeType":"ElementaryTypeName","src":"15809:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"15808:18:16"},"returnParameters":{"id":3035,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3034,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3047,"src":"15850:4:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3033,"name":"bool","nodeType":"ElementaryTypeName","src":"15850:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"15849:6:16"},"scope":3048,"src":"15783:154:16","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":3069,"src":"1151:14788:16","usedErrors":[]},{"abstract":true,"baseContracts":[],"canonicalName":"ISystemContract","contractDependencies":[],"contractKind":"contract","documentation":{"id":3049,"nodeType":"StructuredDocumentation","src":"15941:137:16","text":"@dev Solidity does not allow exporting modifiers via libraries, so\n the only way to do reuse modifiers is to have a base contract"},"fullyImplemented":true,"id":3068,"linearizedBaseContracts":[3068],"name":"ISystemContract","nameLocation":"16096:15:16","nodeType":"ContractDefinition","nodes":[{"body":{"id":3066,"nodeType":"Block","src":"16247:199:16","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":3053,"name":"SystemContractHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3048,"src":"16278:20:16","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SystemContractHelper_$3048_$","typeString":"type(library SystemContractHelper)"}},"id":3054,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16299:12:16","memberName":"isSystemCall","nodeType":"MemberAccess","referencedDeclaration":3028,"src":"16278:33:16","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":3055,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16278:35:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"expression":{"id":3058,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"16355:3:16","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3059,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16359:6:16","memberName":"sender","nodeType":"MemberAccess","src":"16355:10:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":3056,"name":"SystemContractHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3048,"src":"16317:20:16","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SystemContractHelper_$3048_$","typeString":"type(library SystemContractHelper)"}},"id":3057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16338:16:16","memberName":"isSystemContract","nodeType":"MemberAccess","referencedDeclaration":3047,"src":"16317:37:16","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_bool_$","typeString":"function (address) pure returns (bool)"}},"id":3060,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16317:49:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"16278:88:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"54686973206d6574686f6420726571756972652073797374656d2063616c6c20666c6167","id":3062,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16380:38:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_6589f00cea854905d3b068f28c775a962c96c7700753afba09e3a0789b4f751e","typeString":"literal_string \"This method require system call flag\""},"value":"This method require system call flag"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6589f00cea854905d3b068f28c775a962c96c7700753afba09e3a0789b4f751e","typeString":"literal_string \"This method require system call flag\""}],"id":3052,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"16257:7:16","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3063,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16257:171:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3064,"nodeType":"ExpressionStatement","src":"16257:171:16"},{"id":3065,"nodeType":"PlaceholderStatement","src":"16438:1:16"}]},"documentation":{"id":3050,"nodeType":"StructuredDocumentation","src":"16118:98:16","text":"@notice Modifier that makes sure that the method\n can only be called via a system call."},"id":3067,"name":"onlySystemCall","nameLocation":"16230:14:16","nodeType":"ModifierDefinition","parameters":{"id":3051,"nodeType":"ParameterList","parameters":[],"src":"16244:2:16"},"src":"16221:225:16","virtual":false,"visibility":"internal"}],"scope":3069,"src":"16078:370:16","usedErrors":[]}],"src":"33:16416:16"},"id":16},"@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractsCaller.sol":{"ast":{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractsCaller.sol","exportedSymbols":{"CALLFLAGS_CALL_ADDRESS":[3261],"CODE_ADDRESS_CALL_ADDRESS":[3096],"CalldataForwardingMode":[3405],"EVENT_INITIALIZE_ADDRESS":[3283],"EVENT_WRITE_ADDRESS":[3294],"EfficientCall":[2170],"GET_EXTRA_ABI_DATA_ADDRESS":[3371],"INCREMENT_TX_COUNTER_CALL_ADDRESS":[3239],"LOAD_CALLDATA_INTO_ACTIVE_PTR_CALL_ADDRESS":[3305],"LOAD_LATEST_RETURNDATA_INTO_ACTIVE_PTR_CALL_ADDRESS":[3316],"META_AUX_HEAP_SIZE_OFFSET":[3386],"META_CALLER_SHARD_ID_OFFSET":[3396],"META_CALL_ADDRESS":[3118],"META_CODE_SHARD_ID_OFFSET":[3401],"META_GAS_PER_PUBDATA_BYTE_OFFSET":[3376],"META_HEAP_SIZE_OFFSET":[3381],"META_SHARD_ID_OFFSET":[3391],"MIMIC_CALL_BY_REF_CALL_ADDRESS":[3151],"MIMIC_CALL_CALL_ADDRESS":[3129],"MSG_VALUE_SIMULATOR_IS_SYSTEM_BIT":[1107],"MSG_VALUE_SYSTEM_CONTRACT":[1040],"MULTIPLICATION_HIGH_ADDRESS":[3360],"PRECOMPILE_CALL_ADDRESS":[3107],"PTR_ADD_INTO_ACTIVE_CALL_ADDRESS":[3327],"PTR_CALLDATA_CALL_ADDRESS":[3250],"PTR_PACK_INTO_ACTIVE_CALL_ADDRESS":[3349],"PTR_RETURNDATA_CALL_ADDRESS":[3272],"PTR_SHRINK_INTO_ACTIVE_CALL_ADDRESS":[3338],"RAW_FAR_CALL_BY_REF_CALL_ADDRESS":[3184],"RAW_FAR_CALL_CALL_ADDRESS":[3173],"SET_CONTEXT_VALUE_CALL_ADDRESS":[3217],"SET_PUBDATA_PRICE_CALL_ADDRESS":[3228],"SYSTEM_CALL_BY_REF_CALL_ADDRESS":[3206],"SYSTEM_CALL_CALL_ADDRESS":[3195],"SYSTEM_MIMIC_CALL_BY_REF_CALL_ADDRESS":[3162],"SYSTEM_MIMIC_CALL_CALL_ADDRESS":[3140],"SystemContractsCaller":[3683],"TO_L1_CALL_ADDRESS":[3085],"Utils":[4920]},"id":3684,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3070,"literals":["solidity","^","0.8"],"nodeType":"PragmaDirective","src":"33:21:17"},{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/Constants.sol","file":"../Constants.sol","id":3073,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3684,"sourceUnit":1124,"src":"56:94:17","symbolAliases":[{"foreign":{"id":3071,"name":"MSG_VALUE_SYSTEM_CONTRACT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1040,"src":"64:25:17","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":3072,"name":"MSG_VALUE_SIMULATOR_IS_SYSTEM_BIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1107,"src":"91:33:17","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/libraries/Utils.sol","file":"./Utils.sol","id":3074,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3684,"sourceUnit":4921,"src":"151:21:17","symbolAliases":[],"unitAlias":""},{"constant":true,"id":3085,"mutability":"constant","name":"TO_L1_CALL_ADDRESS","nameLocation":"409:18:17","nodeType":"VariableDeclaration","scope":3684,"src":"392:60:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3075,"name":"address","nodeType":"ElementaryTypeName","src":"392:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"commonType":{"typeIdentifier":"t_rational_65535_by_1","typeString":"int_const 65535"},"id":3083,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"},"id":3080,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3078,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"439:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3136","id":3079,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"444:2:17","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"439:7:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}}],"id":3081,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"438:9:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":3082,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"450:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"438:13:17","typeDescriptions":{"typeIdentifier":"t_rational_65535_by_1","typeString":"int_const 65535"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_65535_by_1","typeString":"int_const 65535"}],"id":3077,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"430:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3076,"name":"address","nodeType":"ElementaryTypeName","src":"430:7:17","typeDescriptions":{}}},"id":3084,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"430:22:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":true,"id":3096,"mutability":"constant","name":"CODE_ADDRESS_CALL_ADDRESS","nameLocation":"471:25:17","nodeType":"VariableDeclaration","scope":3684,"src":"454:67:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3086,"name":"address","nodeType":"ElementaryTypeName","src":"454:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"commonType":{"typeIdentifier":"t_rational_65534_by_1","typeString":"int_const 65534"},"id":3094,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"},"id":3091,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3089,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"508:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3136","id":3090,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"513:2:17","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"508:7:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}}],"id":3092,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"507:9:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"32","id":3093,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"519:1:17","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"507:13:17","typeDescriptions":{"typeIdentifier":"t_rational_65534_by_1","typeString":"int_const 65534"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_65534_by_1","typeString":"int_const 65534"}],"id":3088,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"499:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3087,"name":"address","nodeType":"ElementaryTypeName","src":"499:7:17","typeDescriptions":{}}},"id":3095,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"499:22:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":true,"id":3107,"mutability":"constant","name":"PRECOMPILE_CALL_ADDRESS","nameLocation":"540:23:17","nodeType":"VariableDeclaration","scope":3684,"src":"523:65:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3097,"name":"address","nodeType":"ElementaryTypeName","src":"523:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"commonType":{"typeIdentifier":"t_rational_65533_by_1","typeString":"int_const 65533"},"id":3105,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"},"id":3102,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3100,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"575:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3136","id":3101,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"580:2:17","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"575:7:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}}],"id":3103,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"574:9:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"33","id":3104,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"586:1:17","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"574:13:17","typeDescriptions":{"typeIdentifier":"t_rational_65533_by_1","typeString":"int_const 65533"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_65533_by_1","typeString":"int_const 65533"}],"id":3099,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"566:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3098,"name":"address","nodeType":"ElementaryTypeName","src":"566:7:17","typeDescriptions":{}}},"id":3106,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"566:22:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":true,"id":3118,"mutability":"constant","name":"META_CALL_ADDRESS","nameLocation":"607:17:17","nodeType":"VariableDeclaration","scope":3684,"src":"590:59:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3108,"name":"address","nodeType":"ElementaryTypeName","src":"590:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"commonType":{"typeIdentifier":"t_rational_65532_by_1","typeString":"int_const 65532"},"id":3116,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"},"id":3113,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3111,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"636:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3136","id":3112,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"641:2:17","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"636:7:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}}],"id":3114,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"635:9:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"34","id":3115,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"647:1:17","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"635:13:17","typeDescriptions":{"typeIdentifier":"t_rational_65532_by_1","typeString":"int_const 65532"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_65532_by_1","typeString":"int_const 65532"}],"id":3110,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"627:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3109,"name":"address","nodeType":"ElementaryTypeName","src":"627:7:17","typeDescriptions":{}}},"id":3117,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"627:22:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":true,"id":3129,"mutability":"constant","name":"MIMIC_CALL_CALL_ADDRESS","nameLocation":"668:23:17","nodeType":"VariableDeclaration","scope":3684,"src":"651:65:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3119,"name":"address","nodeType":"ElementaryTypeName","src":"651:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"commonType":{"typeIdentifier":"t_rational_65531_by_1","typeString":"int_const 65531"},"id":3127,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"},"id":3124,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3122,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"703:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3136","id":3123,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"708:2:17","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"703:7:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}}],"id":3125,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"702:9:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"35","id":3126,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"714:1:17","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"src":"702:13:17","typeDescriptions":{"typeIdentifier":"t_rational_65531_by_1","typeString":"int_const 65531"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_65531_by_1","typeString":"int_const 65531"}],"id":3121,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"694:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3120,"name":"address","nodeType":"ElementaryTypeName","src":"694:7:17","typeDescriptions":{}}},"id":3128,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"694:22:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":true,"id":3140,"mutability":"constant","name":"SYSTEM_MIMIC_CALL_CALL_ADDRESS","nameLocation":"735:30:17","nodeType":"VariableDeclaration","scope":3684,"src":"718:72:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3130,"name":"address","nodeType":"ElementaryTypeName","src":"718:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"commonType":{"typeIdentifier":"t_rational_65530_by_1","typeString":"int_const 65530"},"id":3138,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"},"id":3135,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3133,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"777:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3136","id":3134,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"782:2:17","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"777:7:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}}],"id":3136,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"776:9:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"36","id":3137,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"788:1:17","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"},"src":"776:13:17","typeDescriptions":{"typeIdentifier":"t_rational_65530_by_1","typeString":"int_const 65530"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_65530_by_1","typeString":"int_const 65530"}],"id":3132,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"768:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3131,"name":"address","nodeType":"ElementaryTypeName","src":"768:7:17","typeDescriptions":{}}},"id":3139,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"768:22:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":true,"id":3151,"mutability":"constant","name":"MIMIC_CALL_BY_REF_CALL_ADDRESS","nameLocation":"809:30:17","nodeType":"VariableDeclaration","scope":3684,"src":"792:72:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3141,"name":"address","nodeType":"ElementaryTypeName","src":"792:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"commonType":{"typeIdentifier":"t_rational_65529_by_1","typeString":"int_const 65529"},"id":3149,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"},"id":3146,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3144,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"851:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3136","id":3145,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"856:2:17","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"851:7:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}}],"id":3147,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"850:9:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"37","id":3148,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"862:1:17","typeDescriptions":{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"},"value":"7"},"src":"850:13:17","typeDescriptions":{"typeIdentifier":"t_rational_65529_by_1","typeString":"int_const 65529"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_65529_by_1","typeString":"int_const 65529"}],"id":3143,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"842:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3142,"name":"address","nodeType":"ElementaryTypeName","src":"842:7:17","typeDescriptions":{}}},"id":3150,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"842:22:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":true,"id":3162,"mutability":"constant","name":"SYSTEM_MIMIC_CALL_BY_REF_CALL_ADDRESS","nameLocation":"883:37:17","nodeType":"VariableDeclaration","scope":3684,"src":"866:79:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3152,"name":"address","nodeType":"ElementaryTypeName","src":"866:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"commonType":{"typeIdentifier":"t_rational_65528_by_1","typeString":"int_const 65528"},"id":3160,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"},"id":3157,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3155,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"932:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3136","id":3156,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"937:2:17","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"932:7:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}}],"id":3158,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"931:9:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"38","id":3159,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"943:1:17","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"931:13:17","typeDescriptions":{"typeIdentifier":"t_rational_65528_by_1","typeString":"int_const 65528"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_65528_by_1","typeString":"int_const 65528"}],"id":3154,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"923:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3153,"name":"address","nodeType":"ElementaryTypeName","src":"923:7:17","typeDescriptions":{}}},"id":3161,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"923:22:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":true,"id":3173,"mutability":"constant","name":"RAW_FAR_CALL_CALL_ADDRESS","nameLocation":"964:25:17","nodeType":"VariableDeclaration","scope":3684,"src":"947:67:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3163,"name":"address","nodeType":"ElementaryTypeName","src":"947:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"commonType":{"typeIdentifier":"t_rational_65527_by_1","typeString":"int_const 65527"},"id":3171,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"},"id":3168,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3166,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1001:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3136","id":3167,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1006:2:17","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"1001:7:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}}],"id":3169,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1000:9:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"39","id":3170,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1012:1:17","typeDescriptions":{"typeIdentifier":"t_rational_9_by_1","typeString":"int_const 9"},"value":"9"},"src":"1000:13:17","typeDescriptions":{"typeIdentifier":"t_rational_65527_by_1","typeString":"int_const 65527"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_65527_by_1","typeString":"int_const 65527"}],"id":3165,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"992:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3164,"name":"address","nodeType":"ElementaryTypeName","src":"992:7:17","typeDescriptions":{}}},"id":3172,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"992:22:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":true,"id":3184,"mutability":"constant","name":"RAW_FAR_CALL_BY_REF_CALL_ADDRESS","nameLocation":"1033:32:17","nodeType":"VariableDeclaration","scope":3684,"src":"1016:75:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3174,"name":"address","nodeType":"ElementaryTypeName","src":"1016:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"commonType":{"typeIdentifier":"t_rational_65526_by_1","typeString":"int_const 65526"},"id":3182,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"},"id":3179,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3177,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1077:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3136","id":3178,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1082:2:17","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"1077:7:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}}],"id":3180,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1076:9:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"3130","id":3181,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1088:2:17","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"1076:14:17","typeDescriptions":{"typeIdentifier":"t_rational_65526_by_1","typeString":"int_const 65526"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_65526_by_1","typeString":"int_const 65526"}],"id":3176,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1068:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3175,"name":"address","nodeType":"ElementaryTypeName","src":"1068:7:17","typeDescriptions":{}}},"id":3183,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1068:23:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":true,"id":3195,"mutability":"constant","name":"SYSTEM_CALL_CALL_ADDRESS","nameLocation":"1110:24:17","nodeType":"VariableDeclaration","scope":3684,"src":"1093:67:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3185,"name":"address","nodeType":"ElementaryTypeName","src":"1093:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"commonType":{"typeIdentifier":"t_rational_65525_by_1","typeString":"int_const 65525"},"id":3193,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"},"id":3190,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3188,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1146:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3136","id":3189,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1151:2:17","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"1146:7:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}}],"id":3191,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1145:9:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"3131","id":3192,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1157:2:17","typeDescriptions":{"typeIdentifier":"t_rational_11_by_1","typeString":"int_const 11"},"value":"11"},"src":"1145:14:17","typeDescriptions":{"typeIdentifier":"t_rational_65525_by_1","typeString":"int_const 65525"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_65525_by_1","typeString":"int_const 65525"}],"id":3187,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1137:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3186,"name":"address","nodeType":"ElementaryTypeName","src":"1137:7:17","typeDescriptions":{}}},"id":3194,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1137:23:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":true,"id":3206,"mutability":"constant","name":"SYSTEM_CALL_BY_REF_CALL_ADDRESS","nameLocation":"1179:31:17","nodeType":"VariableDeclaration","scope":3684,"src":"1162:74:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3196,"name":"address","nodeType":"ElementaryTypeName","src":"1162:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"commonType":{"typeIdentifier":"t_rational_65524_by_1","typeString":"int_const 65524"},"id":3204,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"},"id":3201,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3199,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1222:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3136","id":3200,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1227:2:17","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"1222:7:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}}],"id":3202,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1221:9:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"3132","id":3203,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1233:2:17","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},"src":"1221:14:17","typeDescriptions":{"typeIdentifier":"t_rational_65524_by_1","typeString":"int_const 65524"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_65524_by_1","typeString":"int_const 65524"}],"id":3198,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1213:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3197,"name":"address","nodeType":"ElementaryTypeName","src":"1213:7:17","typeDescriptions":{}}},"id":3205,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1213:23:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":true,"id":3217,"mutability":"constant","name":"SET_CONTEXT_VALUE_CALL_ADDRESS","nameLocation":"1255:30:17","nodeType":"VariableDeclaration","scope":3684,"src":"1238:73:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3207,"name":"address","nodeType":"ElementaryTypeName","src":"1238:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"commonType":{"typeIdentifier":"t_rational_65523_by_1","typeString":"int_const 65523"},"id":3215,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"},"id":3212,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3210,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1297:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3136","id":3211,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1302:2:17","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"1297:7:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}}],"id":3213,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1296:9:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"3133","id":3214,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1308:2:17","typeDescriptions":{"typeIdentifier":"t_rational_13_by_1","typeString":"int_const 13"},"value":"13"},"src":"1296:14:17","typeDescriptions":{"typeIdentifier":"t_rational_65523_by_1","typeString":"int_const 65523"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_65523_by_1","typeString":"int_const 65523"}],"id":3209,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1288:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3208,"name":"address","nodeType":"ElementaryTypeName","src":"1288:7:17","typeDescriptions":{}}},"id":3216,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1288:23:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":true,"id":3228,"mutability":"constant","name":"SET_PUBDATA_PRICE_CALL_ADDRESS","nameLocation":"1330:30:17","nodeType":"VariableDeclaration","scope":3684,"src":"1313:73:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3218,"name":"address","nodeType":"ElementaryTypeName","src":"1313:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"commonType":{"typeIdentifier":"t_rational_65522_by_1","typeString":"int_const 65522"},"id":3226,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"},"id":3223,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3221,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1372:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3136","id":3222,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1377:2:17","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"1372:7:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}}],"id":3224,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1371:9:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"3134","id":3225,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1383:2:17","typeDescriptions":{"typeIdentifier":"t_rational_14_by_1","typeString":"int_const 14"},"value":"14"},"src":"1371:14:17","typeDescriptions":{"typeIdentifier":"t_rational_65522_by_1","typeString":"int_const 65522"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_65522_by_1","typeString":"int_const 65522"}],"id":3220,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1363:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3219,"name":"address","nodeType":"ElementaryTypeName","src":"1363:7:17","typeDescriptions":{}}},"id":3227,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1363:23:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":true,"id":3239,"mutability":"constant","name":"INCREMENT_TX_COUNTER_CALL_ADDRESS","nameLocation":"1405:33:17","nodeType":"VariableDeclaration","scope":3684,"src":"1388:76:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3229,"name":"address","nodeType":"ElementaryTypeName","src":"1388:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"commonType":{"typeIdentifier":"t_rational_65521_by_1","typeString":"int_const 65521"},"id":3237,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"},"id":3234,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3232,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1450:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3136","id":3233,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1455:2:17","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"1450:7:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}}],"id":3235,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1449:9:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"3135","id":3236,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1461:2:17","typeDescriptions":{"typeIdentifier":"t_rational_15_by_1","typeString":"int_const 15"},"value":"15"},"src":"1449:14:17","typeDescriptions":{"typeIdentifier":"t_rational_65521_by_1","typeString":"int_const 65521"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_65521_by_1","typeString":"int_const 65521"}],"id":3231,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1441:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3230,"name":"address","nodeType":"ElementaryTypeName","src":"1441:7:17","typeDescriptions":{}}},"id":3238,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1441:23:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":true,"id":3250,"mutability":"constant","name":"PTR_CALLDATA_CALL_ADDRESS","nameLocation":"1483:25:17","nodeType":"VariableDeclaration","scope":3684,"src":"1466:68:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3240,"name":"address","nodeType":"ElementaryTypeName","src":"1466:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"commonType":{"typeIdentifier":"t_rational_65520_by_1","typeString":"int_const 65520"},"id":3248,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"},"id":3245,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3243,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1520:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3136","id":3244,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1525:2:17","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"1520:7:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}}],"id":3246,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1519:9:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"3136","id":3247,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1531:2:17","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"1519:14:17","typeDescriptions":{"typeIdentifier":"t_rational_65520_by_1","typeString":"int_const 65520"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_65520_by_1","typeString":"int_const 65520"}],"id":3242,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1511:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3241,"name":"address","nodeType":"ElementaryTypeName","src":"1511:7:17","typeDescriptions":{}}},"id":3249,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1511:23:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":true,"id":3261,"mutability":"constant","name":"CALLFLAGS_CALL_ADDRESS","nameLocation":"1553:22:17","nodeType":"VariableDeclaration","scope":3684,"src":"1536:65:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3251,"name":"address","nodeType":"ElementaryTypeName","src":"1536:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"commonType":{"typeIdentifier":"t_rational_65519_by_1","typeString":"int_const 65519"},"id":3259,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"},"id":3256,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3254,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1587:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3136","id":3255,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1592:2:17","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"1587:7:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}}],"id":3257,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1586:9:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"3137","id":3258,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1598:2:17","typeDescriptions":{"typeIdentifier":"t_rational_17_by_1","typeString":"int_const 17"},"value":"17"},"src":"1586:14:17","typeDescriptions":{"typeIdentifier":"t_rational_65519_by_1","typeString":"int_const 65519"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_65519_by_1","typeString":"int_const 65519"}],"id":3253,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1578:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3252,"name":"address","nodeType":"ElementaryTypeName","src":"1578:7:17","typeDescriptions":{}}},"id":3260,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1578:23:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":true,"id":3272,"mutability":"constant","name":"PTR_RETURNDATA_CALL_ADDRESS","nameLocation":"1620:27:17","nodeType":"VariableDeclaration","scope":3684,"src":"1603:70:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3262,"name":"address","nodeType":"ElementaryTypeName","src":"1603:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"commonType":{"typeIdentifier":"t_rational_65518_by_1","typeString":"int_const 65518"},"id":3270,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"},"id":3267,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3265,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1659:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3136","id":3266,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1664:2:17","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"1659:7:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}}],"id":3268,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1658:9:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"3138","id":3269,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1670:2:17","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"src":"1658:14:17","typeDescriptions":{"typeIdentifier":"t_rational_65518_by_1","typeString":"int_const 65518"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_65518_by_1","typeString":"int_const 65518"}],"id":3264,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1650:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3263,"name":"address","nodeType":"ElementaryTypeName","src":"1650:7:17","typeDescriptions":{}}},"id":3271,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1650:23:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":true,"id":3283,"mutability":"constant","name":"EVENT_INITIALIZE_ADDRESS","nameLocation":"1692:24:17","nodeType":"VariableDeclaration","scope":3684,"src":"1675:67:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3273,"name":"address","nodeType":"ElementaryTypeName","src":"1675:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"commonType":{"typeIdentifier":"t_rational_65517_by_1","typeString":"int_const 65517"},"id":3281,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"},"id":3278,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3276,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1728:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3136","id":3277,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1733:2:17","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"1728:7:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}}],"id":3279,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1727:9:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"3139","id":3280,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1739:2:17","typeDescriptions":{"typeIdentifier":"t_rational_19_by_1","typeString":"int_const 19"},"value":"19"},"src":"1727:14:17","typeDescriptions":{"typeIdentifier":"t_rational_65517_by_1","typeString":"int_const 65517"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_65517_by_1","typeString":"int_const 65517"}],"id":3275,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1719:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3274,"name":"address","nodeType":"ElementaryTypeName","src":"1719:7:17","typeDescriptions":{}}},"id":3282,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1719:23:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":true,"id":3294,"mutability":"constant","name":"EVENT_WRITE_ADDRESS","nameLocation":"1761:19:17","nodeType":"VariableDeclaration","scope":3684,"src":"1744:62:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3284,"name":"address","nodeType":"ElementaryTypeName","src":"1744:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"commonType":{"typeIdentifier":"t_rational_65516_by_1","typeString":"int_const 65516"},"id":3292,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"},"id":3289,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3287,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1792:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3136","id":3288,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1797:2:17","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"1792:7:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}}],"id":3290,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1791:9:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"3230","id":3291,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1803:2:17","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"src":"1791:14:17","typeDescriptions":{"typeIdentifier":"t_rational_65516_by_1","typeString":"int_const 65516"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_65516_by_1","typeString":"int_const 65516"}],"id":3286,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1783:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3285,"name":"address","nodeType":"ElementaryTypeName","src":"1783:7:17","typeDescriptions":{}}},"id":3293,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1783:23:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":true,"id":3305,"mutability":"constant","name":"LOAD_CALLDATA_INTO_ACTIVE_PTR_CALL_ADDRESS","nameLocation":"1825:42:17","nodeType":"VariableDeclaration","scope":3684,"src":"1808:85:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3295,"name":"address","nodeType":"ElementaryTypeName","src":"1808:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"commonType":{"typeIdentifier":"t_rational_65515_by_1","typeString":"int_const 65515"},"id":3303,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"},"id":3300,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3298,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1879:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3136","id":3299,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1884:2:17","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"1879:7:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}}],"id":3301,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1878:9:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"3231","id":3302,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1890:2:17","typeDescriptions":{"typeIdentifier":"t_rational_21_by_1","typeString":"int_const 21"},"value":"21"},"src":"1878:14:17","typeDescriptions":{"typeIdentifier":"t_rational_65515_by_1","typeString":"int_const 65515"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_65515_by_1","typeString":"int_const 65515"}],"id":3297,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1870:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3296,"name":"address","nodeType":"ElementaryTypeName","src":"1870:7:17","typeDescriptions":{}}},"id":3304,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1870:23:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":true,"id":3316,"mutability":"constant","name":"LOAD_LATEST_RETURNDATA_INTO_ACTIVE_PTR_CALL_ADDRESS","nameLocation":"1912:51:17","nodeType":"VariableDeclaration","scope":3684,"src":"1895:94:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3306,"name":"address","nodeType":"ElementaryTypeName","src":"1895:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"commonType":{"typeIdentifier":"t_rational_65514_by_1","typeString":"int_const 65514"},"id":3314,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"},"id":3311,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3309,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1975:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3136","id":3310,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1980:2:17","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"1975:7:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}}],"id":3312,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1974:9:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"3232","id":3313,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1986:2:17","typeDescriptions":{"typeIdentifier":"t_rational_22_by_1","typeString":"int_const 22"},"value":"22"},"src":"1974:14:17","typeDescriptions":{"typeIdentifier":"t_rational_65514_by_1","typeString":"int_const 65514"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_65514_by_1","typeString":"int_const 65514"}],"id":3308,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1966:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3307,"name":"address","nodeType":"ElementaryTypeName","src":"1966:7:17","typeDescriptions":{}}},"id":3315,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1966:23:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":true,"id":3327,"mutability":"constant","name":"PTR_ADD_INTO_ACTIVE_CALL_ADDRESS","nameLocation":"2008:32:17","nodeType":"VariableDeclaration","scope":3684,"src":"1991:75:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3317,"name":"address","nodeType":"ElementaryTypeName","src":"1991:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"commonType":{"typeIdentifier":"t_rational_65513_by_1","typeString":"int_const 65513"},"id":3325,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"},"id":3322,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3320,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2052:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3136","id":3321,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2057:2:17","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"2052:7:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}}],"id":3323,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2051:9:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"3233","id":3324,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2063:2:17","typeDescriptions":{"typeIdentifier":"t_rational_23_by_1","typeString":"int_const 23"},"value":"23"},"src":"2051:14:17","typeDescriptions":{"typeIdentifier":"t_rational_65513_by_1","typeString":"int_const 65513"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_65513_by_1","typeString":"int_const 65513"}],"id":3319,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2043:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3318,"name":"address","nodeType":"ElementaryTypeName","src":"2043:7:17","typeDescriptions":{}}},"id":3326,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2043:23:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":true,"id":3338,"mutability":"constant","name":"PTR_SHRINK_INTO_ACTIVE_CALL_ADDRESS","nameLocation":"2085:35:17","nodeType":"VariableDeclaration","scope":3684,"src":"2068:78:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3328,"name":"address","nodeType":"ElementaryTypeName","src":"2068:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"commonType":{"typeIdentifier":"t_rational_65512_by_1","typeString":"int_const 65512"},"id":3336,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"},"id":3333,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3331,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2132:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3136","id":3332,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2137:2:17","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"2132:7:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}}],"id":3334,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2131:9:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"3234","id":3335,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2143:2:17","typeDescriptions":{"typeIdentifier":"t_rational_24_by_1","typeString":"int_const 24"},"value":"24"},"src":"2131:14:17","typeDescriptions":{"typeIdentifier":"t_rational_65512_by_1","typeString":"int_const 65512"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_65512_by_1","typeString":"int_const 65512"}],"id":3330,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2123:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3329,"name":"address","nodeType":"ElementaryTypeName","src":"2123:7:17","typeDescriptions":{}}},"id":3337,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2123:23:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":true,"id":3349,"mutability":"constant","name":"PTR_PACK_INTO_ACTIVE_CALL_ADDRESS","nameLocation":"2165:33:17","nodeType":"VariableDeclaration","scope":3684,"src":"2148:76:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3339,"name":"address","nodeType":"ElementaryTypeName","src":"2148:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"commonType":{"typeIdentifier":"t_rational_65511_by_1","typeString":"int_const 65511"},"id":3347,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"},"id":3344,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3342,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2210:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3136","id":3343,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2215:2:17","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"2210:7:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}}],"id":3345,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2209:9:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"3235","id":3346,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2221:2:17","typeDescriptions":{"typeIdentifier":"t_rational_25_by_1","typeString":"int_const 25"},"value":"25"},"src":"2209:14:17","typeDescriptions":{"typeIdentifier":"t_rational_65511_by_1","typeString":"int_const 65511"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_65511_by_1","typeString":"int_const 65511"}],"id":3341,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2201:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3340,"name":"address","nodeType":"ElementaryTypeName","src":"2201:7:17","typeDescriptions":{}}},"id":3348,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2201:23:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":true,"id":3360,"mutability":"constant","name":"MULTIPLICATION_HIGH_ADDRESS","nameLocation":"2243:27:17","nodeType":"VariableDeclaration","scope":3684,"src":"2226:70:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3350,"name":"address","nodeType":"ElementaryTypeName","src":"2226:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"commonType":{"typeIdentifier":"t_rational_65510_by_1","typeString":"int_const 65510"},"id":3358,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"},"id":3355,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3353,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2282:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3136","id":3354,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2287:2:17","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"2282:7:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}}],"id":3356,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2281:9:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"3236","id":3357,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2293:2:17","typeDescriptions":{"typeIdentifier":"t_rational_26_by_1","typeString":"int_const 26"},"value":"26"},"src":"2281:14:17","typeDescriptions":{"typeIdentifier":"t_rational_65510_by_1","typeString":"int_const 65510"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_65510_by_1","typeString":"int_const 65510"}],"id":3352,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2273:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3351,"name":"address","nodeType":"ElementaryTypeName","src":"2273:7:17","typeDescriptions":{}}},"id":3359,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2273:23:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":true,"id":3371,"mutability":"constant","name":"GET_EXTRA_ABI_DATA_ADDRESS","nameLocation":"2315:26:17","nodeType":"VariableDeclaration","scope":3684,"src":"2298:69:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3361,"name":"address","nodeType":"ElementaryTypeName","src":"2298:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"commonType":{"typeIdentifier":"t_rational_65509_by_1","typeString":"int_const 65509"},"id":3369,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"},"id":3366,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3364,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2353:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3136","id":3365,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2358:2:17","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"2353:7:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}}],"id":3367,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2352:9:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"3237","id":3368,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2364:2:17","typeDescriptions":{"typeIdentifier":"t_rational_27_by_1","typeString":"int_const 27"},"value":"27"},"src":"2352:14:17","typeDescriptions":{"typeIdentifier":"t_rational_65509_by_1","typeString":"int_const 65509"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_65509_by_1","typeString":"int_const 65509"}],"id":3363,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2344:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3362,"name":"address","nodeType":"ElementaryTypeName","src":"2344:7:17","typeDescriptions":{}}},"id":3370,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2344:23:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":true,"id":3376,"mutability":"constant","name":"META_GAS_PER_PUBDATA_BYTE_OFFSET","nameLocation":"2418:32:17","nodeType":"VariableDeclaration","scope":3684,"src":"2401:57:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3372,"name":"uint256","nodeType":"ElementaryTypeName","src":"2401:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"id":3375,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"30","id":3373,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2453:1:17","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"38","id":3374,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2457:1:17","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"2453:5:17","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}},"visibility":"internal"},{"constant":true,"id":3381,"mutability":"constant","name":"META_HEAP_SIZE_OFFSET","nameLocation":"2477:21:17","nodeType":"VariableDeclaration","scope":3684,"src":"2460:46:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3377,"name":"uint256","nodeType":"ElementaryTypeName","src":"2460:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"id":3380,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"38","id":3378,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2501:1:17","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"38","id":3379,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2505:1:17","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"2501:5:17","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"}},"visibility":"internal"},{"constant":true,"id":3386,"mutability":"constant","name":"META_AUX_HEAP_SIZE_OFFSET","nameLocation":"2525:25:17","nodeType":"VariableDeclaration","scope":3684,"src":"2508:51:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3382,"name":"uint256","nodeType":"ElementaryTypeName","src":"2508:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"id":3385,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3132","id":3383,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2553:2:17","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"38","id":3384,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2558:1:17","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"2553:6:17","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"}},"visibility":"internal"},{"constant":true,"id":3391,"mutability":"constant","name":"META_SHARD_ID_OFFSET","nameLocation":"2578:20:17","nodeType":"VariableDeclaration","scope":3684,"src":"2561:46:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3387,"name":"uint256","nodeType":"ElementaryTypeName","src":"2561:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_224_by_1","typeString":"int_const 224"},"id":3390,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3238","id":3388,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2601:2:17","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"28"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"38","id":3389,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2606:1:17","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"2601:6:17","typeDescriptions":{"typeIdentifier":"t_rational_224_by_1","typeString":"int_const 224"}},"visibility":"internal"},{"constant":true,"id":3396,"mutability":"constant","name":"META_CALLER_SHARD_ID_OFFSET","nameLocation":"2626:27:17","nodeType":"VariableDeclaration","scope":3684,"src":"2609:53:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3392,"name":"uint256","nodeType":"ElementaryTypeName","src":"2609:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_232_by_1","typeString":"int_const 232"},"id":3395,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3239","id":3393,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2656:2:17","typeDescriptions":{"typeIdentifier":"t_rational_29_by_1","typeString":"int_const 29"},"value":"29"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"38","id":3394,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2661:1:17","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"2656:6:17","typeDescriptions":{"typeIdentifier":"t_rational_232_by_1","typeString":"int_const 232"}},"visibility":"internal"},{"constant":true,"id":3401,"mutability":"constant","name":"META_CODE_SHARD_ID_OFFSET","nameLocation":"2681:25:17","nodeType":"VariableDeclaration","scope":3684,"src":"2664:51:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3397,"name":"uint256","nodeType":"ElementaryTypeName","src":"2664:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_240_by_1","typeString":"int_const 240"},"id":3400,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3330","id":3398,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2709:2:17","typeDescriptions":{"typeIdentifier":"t_rational_30_by_1","typeString":"int_const 30"},"value":"30"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"38","id":3399,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2714:1:17","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"2709:6:17","typeDescriptions":{"typeIdentifier":"t_rational_240_by_1","typeString":"int_const 240"}},"visibility":"internal"},{"canonicalName":"CalldataForwardingMode","id":3405,"members":[{"id":3402,"name":"UseHeap","nameLocation":"3164:7:17","nodeType":"EnumValue","src":"3164:7:17"},{"id":3403,"name":"ForwardFatPointer","nameLocation":"3177:17:17","nodeType":"EnumValue","src":"3177:17:17"},{"id":3404,"name":"UseAuxHeap","nameLocation":"3200:10:17","nodeType":"EnumValue","src":"3200:10:17"}],"name":"CalldataForwardingMode","nameLocation":"3135:22:17","nodeType":"EnumDefinition","src":"3130:82:17"},{"abstract":false,"baseContracts":[],"canonicalName":"SystemContractsCaller","contractDependencies":[],"contractKind":"library","documentation":{"id":3406,"nodeType":"StructuredDocumentation","src":"3214:170:17","text":" @author Matter Labs\n @notice A library that allows calling contracts with the `isSystem` flag.\n @dev It is needed to call ContractDeployer and NonceHolder."},"fullyImplemented":true,"id":3683,"linearizedBaseContracts":[3683],"name":"SystemContractsCaller","nameLocation":"3393:21:17","nodeType":"ContractDefinition","nodes":[{"body":{"id":3471,"nodeType":"Block","src":"3937:1158:17","statements":[{"assignments":[3421],"declarations":[{"constant":false,"id":3421,"mutability":"mutable","name":"callAddr","nameLocation":"3955:8:17","nodeType":"VariableDeclaration","scope":3471,"src":"3947:16:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3420,"name":"address","nodeType":"ElementaryTypeName","src":"3947:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":3423,"initialValue":{"id":3422,"name":"SYSTEM_CALL_CALL_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3195,"src":"3966:24:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3947:43:17"},{"assignments":[3425],"declarations":[{"constant":false,"id":3425,"mutability":"mutable","name":"dataStart","nameLocation":"4008:9:17","nodeType":"VariableDeclaration","scope":3471,"src":"4001:16:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":3424,"name":"uint32","nodeType":"ElementaryTypeName","src":"4001:6:17","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"id":3426,"nodeType":"VariableDeclarationStatement","src":"4001:16:17"},{"AST":{"nodeType":"YulBlock","src":"4036:52:17","statements":[{"nodeType":"YulAssignment","src":"4050:28:17","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"4067:4:17"},{"kind":"number","nodeType":"YulLiteral","src":"4073:4:17","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4063:3:17"},"nodeType":"YulFunctionCall","src":"4063:15:17"},"variableNames":[{"name":"dataStart","nodeType":"YulIdentifier","src":"4050:9:17"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":3415,"isOffset":false,"isSlot":false,"src":"4067:4:17","valueSize":1},{"declaration":3425,"isOffset":false,"isSlot":false,"src":"4050:9:17","valueSize":1}],"id":3427,"nodeType":"InlineAssembly","src":"4027:61:17"},{"assignments":[3429],"declarations":[{"constant":false,"id":3429,"mutability":"mutable","name":"dataLength","nameLocation":"4104:10:17","nodeType":"VariableDeclaration","scope":3471,"src":"4097:17:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":3428,"name":"uint32","nodeType":"ElementaryTypeName","src":"4097:6:17","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"id":3438,"initialValue":{"arguments":[{"arguments":[{"expression":{"id":3434,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3415,"src":"4144:4:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3435,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4149:6:17","memberName":"length","nodeType":"MemberAccess","src":"4144:11:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3432,"name":"Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4920,"src":"4124:5:17","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Utils_$4920_$","typeString":"type(library Utils)"}},"id":3433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4130:13:17","memberName":"safeCastToU32","nodeType":"MemberAccess","referencedDeclaration":4706,"src":"4124:19:17","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint32_$","typeString":"function (uint256) pure returns (uint32)"}},"id":3436,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4124:32:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"}],"id":3431,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4117:6:17","typeDescriptions":{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"},"typeName":{"id":3430,"name":"uint32","nodeType":"ElementaryTypeName","src":"4117:6:17","typeDescriptions":{}}},"id":3437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4117:40:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"VariableDeclarationStatement","src":"4097:60:17"},{"assignments":[3440],"declarations":[{"constant":false,"id":3440,"mutability":"mutable","name":"farCallAbi","nameLocation":"4176:10:17","nodeType":"VariableDeclaration","scope":3471,"src":"4168:18:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3439,"name":"uint256","nodeType":"ElementaryTypeName","src":"4168:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3454,"initialValue":{"arguments":[{"hexValue":"30","id":3443,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4238:1:17","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":3444,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4253:1:17","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":3445,"name":"dataStart","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3425,"src":"4268:9:17","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"id":3446,"name":"dataLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3429,"src":"4291:10:17","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"id":3447,"name":"gasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3409,"src":"4315:8:17","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"hexValue":"30","id":3448,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4385:1:17","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"expression":{"id":3449,"name":"CalldataForwardingMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3405,"src":"4400:22:17","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CalldataForwardingMode_$3405_$","typeString":"type(enum CalldataForwardingMode)"}},"id":3450,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4423:7:17","memberName":"UseHeap","nodeType":"MemberAccess","referencedDeclaration":3402,"src":"4400:30:17","typeDescriptions":{"typeIdentifier":"t_enum$_CalldataForwardingMode_$3405","typeString":"enum CalldataForwardingMode"}},{"hexValue":"66616c7365","id":3451,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4444:5:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"74727565","id":3452,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4463:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_enum$_CalldataForwardingMode_$3405","typeString":"enum CalldataForwardingMode"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":3441,"name":"SystemContractsCaller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3683,"src":"4189:21:17","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SystemContractsCaller_$3683_$","typeString":"type(library SystemContractsCaller)"}},"id":3442,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4211:13:17","memberName":"getFarCallABI","nodeType":"MemberAccess","referencedDeclaration":3614,"src":"4189:35:17","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint32_$_t_uint32_$_t_uint32_$_t_uint32_$_t_uint32_$_t_uint8_$_t_enum$_CalldataForwardingMode_$3405_$_t_bool_$_t_bool_$returns$_t_uint256_$","typeString":"function (uint32,uint32,uint32,uint32,uint32,uint8,enum CalldataForwardingMode,bool,bool) pure returns (uint256)"}},"id":3453,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4189:288:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4168:309:17"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3455,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3413,"src":"4492:5:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":3456,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4501:1:17","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4492:10:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":3469,"nodeType":"Block","src":"4674:415:17","statements":[{"assignments":[3461],"declarations":[{"constant":false,"id":3461,"mutability":"mutable","name":"msgValueSimulator","nameLocation":"4696:17:17","nodeType":"VariableDeclaration","scope":3469,"src":"4688:25:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3460,"name":"address","nodeType":"ElementaryTypeName","src":"4688:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":3463,"initialValue":{"id":3462,"name":"MSG_VALUE_SYSTEM_CONTRACT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1040,"src":"4716:25:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4688:53:17"},{"assignments":[3465],"declarations":[{"constant":false,"id":3465,"mutability":"mutable","name":"forwardMask","nameLocation":"4893:11:17","nodeType":"VariableDeclaration","scope":3469,"src":"4885:19:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3464,"name":"uint256","nodeType":"ElementaryTypeName","src":"4885:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3467,"initialValue":{"id":3466,"name":"MSG_VALUE_SIMULATOR_IS_SYSTEM_BIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1107,"src":"4907:33:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4885:55:17"},{"AST":{"nodeType":"YulBlock","src":"4964:115:17","statements":[{"nodeType":"YulAssignment","src":"4982:83:17","value":{"arguments":[{"name":"msgValueSimulator","nodeType":"YulIdentifier","src":"4998:17:17"},{"name":"callAddr","nodeType":"YulIdentifier","src":"5017:8:17"},{"name":"value","nodeType":"YulIdentifier","src":"5027:5:17"},{"name":"to","nodeType":"YulIdentifier","src":"5034:2:17"},{"name":"farCallAbi","nodeType":"YulIdentifier","src":"5038:10:17"},{"name":"forwardMask","nodeType":"YulIdentifier","src":"5050:11:17"},{"kind":"number","nodeType":"YulLiteral","src":"5063:1:17","type":"","value":"0"}],"functionName":{"name":"call","nodeType":"YulIdentifier","src":"4993:4:17"},"nodeType":"YulFunctionCall","src":"4993:72:17"},"variableNames":[{"name":"success","nodeType":"YulIdentifier","src":"4982:7:17"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":3421,"isOffset":false,"isSlot":false,"src":"5017:8:17","valueSize":1},{"declaration":3440,"isOffset":false,"isSlot":false,"src":"5038:10:17","valueSize":1},{"declaration":3465,"isOffset":false,"isSlot":false,"src":"5050:11:17","valueSize":1},{"declaration":3461,"isOffset":false,"isSlot":false,"src":"4998:17:17","valueSize":1},{"declaration":3418,"isOffset":false,"isSlot":false,"src":"4982:7:17","valueSize":1},{"declaration":3411,"isOffset":false,"isSlot":false,"src":"5034:2:17","valueSize":1},{"declaration":3413,"isOffset":false,"isSlot":false,"src":"5027:5:17","valueSize":1}],"id":3468,"nodeType":"InlineAssembly","src":"4955:124:17"}]},"id":3470,"nodeType":"IfStatement","src":"4488:601:17","trueBody":{"id":3459,"nodeType":"Block","src":"4504:164:17","statements":[{"AST":{"nodeType":"YulBlock","src":"4573:85:17","statements":[{"nodeType":"YulAssignment","src":"4591:53:17","value":{"arguments":[{"name":"to","nodeType":"YulIdentifier","src":"4607:2:17"},{"name":"callAddr","nodeType":"YulIdentifier","src":"4611:8:17"},{"kind":"number","nodeType":"YulLiteral","src":"4621:1:17","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4624:1:17","type":"","value":"0"},{"name":"farCallAbi","nodeType":"YulIdentifier","src":"4627:10:17"},{"kind":"number","nodeType":"YulLiteral","src":"4639:1:17","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4642:1:17","type":"","value":"0"}],"functionName":{"name":"call","nodeType":"YulIdentifier","src":"4602:4:17"},"nodeType":"YulFunctionCall","src":"4602:42:17"},"variableNames":[{"name":"success","nodeType":"YulIdentifier","src":"4591:7:17"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":3421,"isOffset":false,"isSlot":false,"src":"4611:8:17","valueSize":1},{"declaration":3440,"isOffset":false,"isSlot":false,"src":"4627:10:17","valueSize":1},{"declaration":3418,"isOffset":false,"isSlot":false,"src":"4591:7:17","valueSize":1},{"declaration":3411,"isOffset":false,"isSlot":false,"src":"4607:2:17","valueSize":1}],"id":3458,"nodeType":"InlineAssembly","src":"4564:94:17"}]}}]},"documentation":{"id":3407,"nodeType":"StructuredDocumentation","src":"3421:396:17","text":"@notice Makes a call with the `isSystem` flag.\n @param gasLimit The gas limit for the call.\n @param to The address to call.\n @param value The value to pass with the transaction.\n @param data The calldata.\n @return success Whether the transaction has been successful.\n @dev Note, that the `isSystem` flag can only be set when calling system contracts."},"id":3472,"implemented":true,"kind":"function","modifiers":[],"name":"systemCall","nameLocation":"3831:10:17","nodeType":"FunctionDefinition","parameters":{"id":3416,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3409,"mutability":"mutable","name":"gasLimit","nameLocation":"3849:8:17","nodeType":"VariableDeclaration","scope":3472,"src":"3842:15:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":3408,"name":"uint32","nodeType":"ElementaryTypeName","src":"3842:6:17","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":3411,"mutability":"mutable","name":"to","nameLocation":"3867:2:17","nodeType":"VariableDeclaration","scope":3472,"src":"3859:10:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3410,"name":"address","nodeType":"ElementaryTypeName","src":"3859:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3413,"mutability":"mutable","name":"value","nameLocation":"3879:5:17","nodeType":"VariableDeclaration","scope":3472,"src":"3871:13:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3412,"name":"uint256","nodeType":"ElementaryTypeName","src":"3871:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3415,"mutability":"mutable","name":"data","nameLocation":"3899:4:17","nodeType":"VariableDeclaration","scope":3472,"src":"3886:17:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3414,"name":"bytes","nodeType":"ElementaryTypeName","src":"3886:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3841:63:17"},"returnParameters":{"id":3419,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3418,"mutability":"mutable","name":"success","nameLocation":"3928:7:17","nodeType":"VariableDeclaration","scope":3472,"src":"3923:12:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3417,"name":"bool","nodeType":"ElementaryTypeName","src":"3923:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3922:14:17"},"scope":3683,"src":"3822:1273:17","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3509,"nodeType":"Block","src":"5807:280:17","statements":[{"expression":{"id":3495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3488,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3484,"src":"5817:7:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":3490,"name":"gasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3475,"src":"5838:8:17","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"id":3491,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3477,"src":"5848:2:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3492,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3479,"src":"5852:5:17","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":3493,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3481,"src":"5859:4:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3489,"name":"systemCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3472,"src":"5827:10:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint32_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$","typeString":"function (uint32,address,uint256,bytes memory) returns (bool)"}},"id":3494,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5827:37:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5817:47:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3496,"nodeType":"ExpressionStatement","src":"5817:47:17"},{"assignments":[3498],"declarations":[{"constant":false,"id":3498,"mutability":"mutable","name":"size","nameLocation":"5883:4:17","nodeType":"VariableDeclaration","scope":3509,"src":"5875:12:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3497,"name":"uint256","nodeType":"ElementaryTypeName","src":"5875:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3499,"nodeType":"VariableDeclarationStatement","src":"5875:12:17"},{"AST":{"nodeType":"YulBlock","src":"5906:48:17","statements":[{"nodeType":"YulAssignment","src":"5920:24:17","value":{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"5928:14:17"},"nodeType":"YulFunctionCall","src":"5928:16:17"},"variableNames":[{"name":"size","nodeType":"YulIdentifier","src":"5920:4:17"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":3498,"isOffset":false,"isSlot":false,"src":"5920:4:17","valueSize":1}],"id":3500,"nodeType":"InlineAssembly","src":"5897:57:17"},{"expression":{"id":3506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3501,"name":"returnData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3486,"src":"5964:10:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":3504,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3498,"src":"5987:4:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3503,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"5977:9:17","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":3502,"name":"bytes","nodeType":"ElementaryTypeName","src":"5981:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":3505,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5977:15:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"5964:28:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3507,"nodeType":"ExpressionStatement","src":"5964:28:17"},{"AST":{"nodeType":"YulBlock","src":"6011:70:17","statements":[{"expression":{"arguments":[{"arguments":[{"name":"returnData","nodeType":"YulIdentifier","src":"6044:10:17"},{"kind":"number","nodeType":"YulLiteral","src":"6056:4:17","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6040:3:17"},"nodeType":"YulFunctionCall","src":"6040:21:17"},{"kind":"number","nodeType":"YulLiteral","src":"6063:1:17","type":"","value":"0"},{"name":"size","nodeType":"YulIdentifier","src":"6066:4:17"}],"functionName":{"name":"returndatacopy","nodeType":"YulIdentifier","src":"6025:14:17"},"nodeType":"YulFunctionCall","src":"6025:46:17"},"nodeType":"YulExpressionStatement","src":"6025:46:17"}]},"evmVersion":"paris","externalReferences":[{"declaration":3486,"isOffset":false,"isSlot":false,"src":"6044:10:17","valueSize":1},{"declaration":3498,"isOffset":false,"isSlot":false,"src":"6066:4:17","valueSize":1}],"id":3508,"nodeType":"InlineAssembly","src":"6002:79:17"}]},"documentation":{"id":3473,"nodeType":"StructuredDocumentation","src":"5101:509:17","text":"@notice Makes a call with the `isSystem` flag.\n @param gasLimit The gas limit for the call.\n @param to The address to call.\n @param value The value to pass with the transaction.\n @param data The calldata.\n @return success Whether the transaction has been successful.\n @return returnData The returndata of the transaction (revert reason in case the transaction has failed).\n @dev Note, that the `isSystem` flag can only be set when calling system contracts."},"id":3510,"implemented":true,"kind":"function","modifiers":[],"name":"systemCallWithReturndata","nameLocation":"5624:24:17","nodeType":"FunctionDefinition","parameters":{"id":3482,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3475,"mutability":"mutable","name":"gasLimit","nameLocation":"5665:8:17","nodeType":"VariableDeclaration","scope":3510,"src":"5658:15:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":3474,"name":"uint32","nodeType":"ElementaryTypeName","src":"5658:6:17","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":3477,"mutability":"mutable","name":"to","nameLocation":"5691:2:17","nodeType":"VariableDeclaration","scope":3510,"src":"5683:10:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3476,"name":"address","nodeType":"ElementaryTypeName","src":"5683:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3479,"mutability":"mutable","name":"value","nameLocation":"5711:5:17","nodeType":"VariableDeclaration","scope":3510,"src":"5703:13:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":3478,"name":"uint128","nodeType":"ElementaryTypeName","src":"5703:7:17","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":3481,"mutability":"mutable","name":"data","nameLocation":"5739:4:17","nodeType":"VariableDeclaration","scope":3510,"src":"5726:17:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3480,"name":"bytes","nodeType":"ElementaryTypeName","src":"5726:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5648:101:17"},"returnParameters":{"id":3487,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3484,"mutability":"mutable","name":"success","nameLocation":"5773:7:17","nodeType":"VariableDeclaration","scope":3510,"src":"5768:12:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3483,"name":"bool","nodeType":"ElementaryTypeName","src":"5768:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3486,"mutability":"mutable","name":"returnData","nameLocation":"5795:10:17","nodeType":"VariableDeclaration","scope":3510,"src":"5782:23:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3485,"name":"bytes","nodeType":"ElementaryTypeName","src":"5782:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5767:39:17"},"scope":3683,"src":"5615:472:17","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3543,"nodeType":"Block","src":"6754:284:17","statements":[{"assignments":[3525],"declarations":[{"constant":false,"id":3525,"mutability":"mutable","name":"success","nameLocation":"6769:7:17","nodeType":"VariableDeclaration","scope":3543,"src":"6764:12:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3524,"name":"bool","nodeType":"ElementaryTypeName","src":"6764:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":3526,"nodeType":"VariableDeclarationStatement","src":"6764:12:17"},{"expression":{"id":3536,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":3527,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3525,"src":"6787:7:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":3528,"name":"returnData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3522,"src":"6796:10:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":3529,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"6786:21:17","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":3531,"name":"gasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3513,"src":"6835:8:17","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"id":3532,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3515,"src":"6845:2:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3533,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3517,"src":"6849:5:17","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":3534,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3519,"src":"6856:4:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3530,"name":"systemCallWithReturndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3510,"src":"6810:24:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint32_$_t_address_$_t_uint128_$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (uint32,address,uint128,bytes memory) returns (bool,bytes memory)"}},"id":3535,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6810:51:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"src":"6786:75:17","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3537,"nodeType":"ExpressionStatement","src":"6786:75:17"},{"condition":{"id":3539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"6876:8:17","subExpression":{"id":3538,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3525,"src":"6877:7:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3542,"nodeType":"IfStatement","src":"6872:160:17","trueBody":{"id":3541,"nodeType":"Block","src":"6886:146:17","statements":[{"AST":{"nodeType":"YulBlock","src":"6909:113:17","statements":[{"nodeType":"YulVariableDeclaration","src":"6927:29:17","value":{"arguments":[{"name":"returnData","nodeType":"YulIdentifier","src":"6945:10:17"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6939:5:17"},"nodeType":"YulFunctionCall","src":"6939:17:17"},"variables":[{"name":"size","nodeType":"YulTypedName","src":"6931:4:17","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"returnData","nodeType":"YulIdentifier","src":"6984:10:17"},{"kind":"number","nodeType":"YulLiteral","src":"6996:4:17","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6980:3:17"},"nodeType":"YulFunctionCall","src":"6980:21:17"},{"name":"size","nodeType":"YulIdentifier","src":"7003:4:17"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6973:6:17"},"nodeType":"YulFunctionCall","src":"6973:35:17"},"nodeType":"YulExpressionStatement","src":"6973:35:17"}]},"evmVersion":"paris","externalReferences":[{"declaration":3522,"isOffset":false,"isSlot":false,"src":"6945:10:17","valueSize":1},{"declaration":3522,"isOffset":false,"isSlot":false,"src":"6984:10:17","valueSize":1}],"id":3540,"nodeType":"InlineAssembly","src":"6900:122:17"}]}}]},"documentation":{"id":3511,"nodeType":"StructuredDocumentation","src":"6093:472:17","text":"@notice Makes a call with the `isSystem` flag.\n @param gasLimit The gas limit for the call.\n @param to The address to call.\n @param value The value to pass with the transaction.\n @param data The calldata.\n @return returnData The returndata of the transaction. In case the transaction reverts, the error\n bubbles up to the parent frame.\n @dev Note, that the `isSystem` flag can only be set when calling system contracts."},"id":3544,"implemented":true,"kind":"function","modifiers":[],"name":"systemCallWithPropagatedRevert","nameLocation":"6579:30:17","nodeType":"FunctionDefinition","parameters":{"id":3520,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3513,"mutability":"mutable","name":"gasLimit","nameLocation":"6626:8:17","nodeType":"VariableDeclaration","scope":3544,"src":"6619:15:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":3512,"name":"uint32","nodeType":"ElementaryTypeName","src":"6619:6:17","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":3515,"mutability":"mutable","name":"to","nameLocation":"6652:2:17","nodeType":"VariableDeclaration","scope":3544,"src":"6644:10:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3514,"name":"address","nodeType":"ElementaryTypeName","src":"6644:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3517,"mutability":"mutable","name":"value","nameLocation":"6672:5:17","nodeType":"VariableDeclaration","scope":3544,"src":"6664:13:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":3516,"name":"uint128","nodeType":"ElementaryTypeName","src":"6664:7:17","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":3519,"mutability":"mutable","name":"data","nameLocation":"6700:4:17","nodeType":"VariableDeclaration","scope":3544,"src":"6687:17:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3518,"name":"bytes","nodeType":"ElementaryTypeName","src":"6687:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6609:101:17"},"returnParameters":{"id":3523,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3522,"mutability":"mutable","name":"returnData","nameLocation":"6742:10:17","nodeType":"VariableDeclaration","scope":3544,"src":"6729:23:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3521,"name":"bytes","nodeType":"ElementaryTypeName","src":"6729:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6728:25:17"},"scope":3683,"src":"6570:468:17","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3613,"nodeType":"Block","src":"9748:474:17","statements":[{"expression":{"id":3577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3569,"name":"farCallAbi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3567,"src":"9803:10:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":3571,"name":"gasPassed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3555,"src":"9862:9:17","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"id":3572,"name":"shardId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3557,"src":"9885:7:17","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":3573,"name":"forwardingMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3560,"src":"9906:14:17","typeDescriptions":{"typeIdentifier":"t_enum$_CalldataForwardingMode_$3405","typeString":"enum CalldataForwardingMode"}},{"id":3574,"name":"isConstructorCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3562,"src":"9934:17:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":3575,"name":"isSystemCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3564,"src":"9965:12:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_enum$_CalldataForwardingMode_$3405","typeString":"enum CalldataForwardingMode"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":3570,"name":"getFarCallABIWithEmptyFatPointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3682,"src":"9816:32:17","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint32_$_t_uint8_$_t_enum$_CalldataForwardingMode_$3405_$_t_bool_$_t_bool_$returns$_t_uint256_$","typeString":"function (uint32,uint8,enum CalldataForwardingMode,bool,bool) pure returns (uint256)"}},"id":3576,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9816:171:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9803:184:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3578,"nodeType":"ExpressionStatement","src":"9803:184:17"},{"expression":{"id":3581,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3579,"name":"farCallAbi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3567,"src":"10039:10:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"|=","rightHandSide":{"id":3580,"name":"dataOffset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3547,"src":"10053:10:17","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"10039:24:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3582,"nodeType":"ExpressionStatement","src":"10039:24:17"},{"expression":{"id":3591,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3583,"name":"farCallAbi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3567,"src":"10073:10:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"|=","rightHandSide":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":3586,"name":"memoryPage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3549,"src":"10096:10:17","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"}],"id":3585,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10088:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3584,"name":"uint256","nodeType":"ElementaryTypeName","src":"10088:7:17","typeDescriptions":{}}},"id":3587,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10088:19:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3332","id":3588,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10111:2:17","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"10088:25:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3590,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10087:27:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10073:41:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3592,"nodeType":"ExpressionStatement","src":"10073:41:17"},{"expression":{"id":3601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3593,"name":"farCallAbi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3567,"src":"10124:10:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"|=","rightHandSide":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3599,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":3596,"name":"dataStart","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3551,"src":"10147:9:17","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"}],"id":3595,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10139:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3594,"name":"uint256","nodeType":"ElementaryTypeName","src":"10139:7:17","typeDescriptions":{}}},"id":3597,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10139:18:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3634","id":3598,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10161:2:17","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"10139:24:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3600,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10138:26:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10124:40:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3602,"nodeType":"ExpressionStatement","src":"10124:40:17"},{"expression":{"id":3611,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3603,"name":"farCallAbi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3567,"src":"10174:10:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"|=","rightHandSide":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3609,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":3606,"name":"dataLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3553,"src":"10197:10:17","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"}],"id":3605,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10189:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3604,"name":"uint256","nodeType":"ElementaryTypeName","src":"10189:7:17","typeDescriptions":{}}},"id":3607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10189:19:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3936","id":3608,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10212:2:17","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"96"},"src":"10189:25:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3610,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10188:27:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10174:41:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3612,"nodeType":"ExpressionStatement","src":"10174:41:17"}]},"documentation":{"id":3545,"nodeType":"StructuredDocumentation","src":"7044:2365:17","text":"@notice Calculates the packed representation of the FarCallABI.\n @param dataOffset Calldata offset in memory. Provide 0 unless using custom pointer.\n @param memoryPage Memory page to use. Provide 0 unless using custom pointer.\n @param dataStart The start of the calldata slice. Provide the offset in memory\n if not using custom pointer.\n @param dataLength The calldata length. Provide the length of the calldata in bytes\n unless using custom pointer.\n @param gasPassed The gas to pass with the call.\n @param shardId Of the account to call. Currently only 0 is supported.\n @param forwardingMode The forwarding mode to use:\n - provide CalldataForwardingMode.UseHeap when using your current memory\n - provide CalldataForwardingMode.ForwardFatPointer when using custom pointer.\n @param isConstructorCall Whether the call will be a call to the constructor\n (ignored when the caller is not a system contract).\n @param isSystemCall Whether the call will have the `isSystem` flag.\n @return farCallAbi The far call ABI.\n @dev The `FarCallABI` has the following structure:\n pub struct FarCallABI {\n pub memory_quasi_fat_pointer: FatPointer,\n pub gas_passed: u32,\n pub shard_id: u8,\n pub forwarding_mode: FarCallForwardPageType,\n pub constructor_call: bool,\n pub to_system: bool,\n }\n The FatPointer struct:\n pub struct FatPointer {\n pub offset: u32, // offset relative to `start`\n pub memory_page: u32, // memory page where slice is located\n pub start: u32, // absolute start of the slice\n pub length: u32, // length of the slice\n }\n @dev Note, that the actual layout is the following:\n [0..32) bits -- the calldata offset\n [32..64) bits -- the memory page to use. Can be left blank in most of the cases.\n [64..96) bits -- the absolute start of the slice\n [96..128) bits -- the length of the slice.\n [128..192) bits -- empty bits.\n [192..224) bits -- gasPassed.\n [224..232) bits -- forwarding_mode\n [232..240) bits -- shard id.\n [240..248) bits -- constructor call flag\n [248..256] bits -- system call flag"},"id":3614,"implemented":true,"kind":"function","modifiers":[],"name":"getFarCallABI","nameLocation":"9423:13:17","nodeType":"FunctionDefinition","parameters":{"id":3565,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3547,"mutability":"mutable","name":"dataOffset","nameLocation":"9453:10:17","nodeType":"VariableDeclaration","scope":3614,"src":"9446:17:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":3546,"name":"uint32","nodeType":"ElementaryTypeName","src":"9446:6:17","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":3549,"mutability":"mutable","name":"memoryPage","nameLocation":"9480:10:17","nodeType":"VariableDeclaration","scope":3614,"src":"9473:17:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":3548,"name":"uint32","nodeType":"ElementaryTypeName","src":"9473:6:17","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":3551,"mutability":"mutable","name":"dataStart","nameLocation":"9507:9:17","nodeType":"VariableDeclaration","scope":3614,"src":"9500:16:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":3550,"name":"uint32","nodeType":"ElementaryTypeName","src":"9500:6:17","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":3553,"mutability":"mutable","name":"dataLength","nameLocation":"9533:10:17","nodeType":"VariableDeclaration","scope":3614,"src":"9526:17:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":3552,"name":"uint32","nodeType":"ElementaryTypeName","src":"9526:6:17","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":3555,"mutability":"mutable","name":"gasPassed","nameLocation":"9560:9:17","nodeType":"VariableDeclaration","scope":3614,"src":"9553:16:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":3554,"name":"uint32","nodeType":"ElementaryTypeName","src":"9553:6:17","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":3557,"mutability":"mutable","name":"shardId","nameLocation":"9585:7:17","nodeType":"VariableDeclaration","scope":3614,"src":"9579:13:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3556,"name":"uint8","nodeType":"ElementaryTypeName","src":"9579:5:17","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":3560,"mutability":"mutable","name":"forwardingMode","nameLocation":"9625:14:17","nodeType":"VariableDeclaration","scope":3614,"src":"9602:37:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_CalldataForwardingMode_$3405","typeString":"enum CalldataForwardingMode"},"typeName":{"id":3559,"nodeType":"UserDefinedTypeName","pathNode":{"id":3558,"name":"CalldataForwardingMode","nameLocations":["9602:22:17"],"nodeType":"IdentifierPath","referencedDeclaration":3405,"src":"9602:22:17"},"referencedDeclaration":3405,"src":"9602:22:17","typeDescriptions":{"typeIdentifier":"t_enum$_CalldataForwardingMode_$3405","typeString":"enum CalldataForwardingMode"}},"visibility":"internal"},{"constant":false,"id":3562,"mutability":"mutable","name":"isConstructorCall","nameLocation":"9654:17:17","nodeType":"VariableDeclaration","scope":3614,"src":"9649:22:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3561,"name":"bool","nodeType":"ElementaryTypeName","src":"9649:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3564,"mutability":"mutable","name":"isSystemCall","nameLocation":"9686:12:17","nodeType":"VariableDeclaration","scope":3614,"src":"9681:17:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3563,"name":"bool","nodeType":"ElementaryTypeName","src":"9681:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"9436:268:17"},"returnParameters":{"id":3568,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3567,"mutability":"mutable","name":"farCallAbi","nameLocation":"9736:10:17","nodeType":"VariableDeclaration","scope":3614,"src":"9728:18:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3566,"name":"uint256","nodeType":"ElementaryTypeName","src":"9728:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9727:20:17"},"scope":3683,"src":"9414:808:17","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3681,"nodeType":"Block","src":"11257:395:17","statements":[{"expression":{"id":3639,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3631,"name":"farCallAbiWithEmptyFatPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3629,"src":"11267:25:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"|=","rightHandSide":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":3634,"name":"gasPassed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3617,"src":"11305:9:17","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"}],"id":3633,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11297:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3632,"name":"uint256","nodeType":"ElementaryTypeName","src":"11297:7:17","typeDescriptions":{}}},"id":3635,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11297:18:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313932","id":3636,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11319:3:17","typeDescriptions":{"typeIdentifier":"t_rational_192_by_1","typeString":"int_const 192"},"value":"192"},"src":"11297:25:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3638,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11296:27:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11267:56:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3640,"nodeType":"ExpressionStatement","src":"11267:56:17"},{"expression":{"id":3649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3641,"name":"farCallAbiWithEmptyFatPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3629,"src":"11333:25:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"|=","rightHandSide":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":3644,"name":"forwardingMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3622,"src":"11371:14:17","typeDescriptions":{"typeIdentifier":"t_enum$_CalldataForwardingMode_$3405","typeString":"enum CalldataForwardingMode"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_CalldataForwardingMode_$3405","typeString":"enum CalldataForwardingMode"}],"id":3643,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11363:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3642,"name":"uint256","nodeType":"ElementaryTypeName","src":"11363:7:17","typeDescriptions":{}}},"id":3645,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11363:23:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323234","id":3646,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11390:3:17","typeDescriptions":{"typeIdentifier":"t_rational_224_by_1","typeString":"int_const 224"},"value":"224"},"src":"11363:30:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3648,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11362:32:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11333:61:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3650,"nodeType":"ExpressionStatement","src":"11333:61:17"},{"expression":{"id":3659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3651,"name":"farCallAbiWithEmptyFatPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3629,"src":"11404:25:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"|=","rightHandSide":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3657,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":3654,"name":"shardId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3619,"src":"11442:7:17","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":3653,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11434:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3652,"name":"uint256","nodeType":"ElementaryTypeName","src":"11434:7:17","typeDescriptions":{}}},"id":3655,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11434:16:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323332","id":3656,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11454:3:17","typeDescriptions":{"typeIdentifier":"t_rational_232_by_1","typeString":"int_const 232"},"value":"232"},"src":"11434:23:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3658,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11433:25:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11404:54:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3660,"nodeType":"ExpressionStatement","src":"11404:54:17"},{"condition":{"id":3661,"name":"isConstructorCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3624,"src":"11472:17:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3670,"nodeType":"IfStatement","src":"11468:87:17","trueBody":{"id":3669,"nodeType":"Block","src":"11491:64:17","statements":[{"expression":{"id":3667,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3662,"name":"farCallAbiWithEmptyFatPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3629,"src":"11505:25:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"|=","rightHandSide":{"components":[{"commonType":{"typeIdentifier":"t_rational_1766847064778384329583297500742918515827483896875618958121606201292619776_by_1","typeString":"int_const 1766...(65 digits omitted)...9776"},"id":3665,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3663,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11535:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323430","id":3664,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11540:3:17","typeDescriptions":{"typeIdentifier":"t_rational_240_by_1","typeString":"int_const 240"},"value":"240"},"src":"11535:8:17","typeDescriptions":{"typeIdentifier":"t_rational_1766847064778384329583297500742918515827483896875618958121606201292619776_by_1","typeString":"int_const 1766...(65 digits omitted)...9776"}}],"id":3666,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"11534:10:17","typeDescriptions":{"typeIdentifier":"t_rational_1766847064778384329583297500742918515827483896875618958121606201292619776_by_1","typeString":"int_const 1766...(65 digits omitted)...9776"}},"src":"11505:39:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3668,"nodeType":"ExpressionStatement","src":"11505:39:17"}]}},{"condition":{"id":3671,"name":"isSystemCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3626,"src":"11568:12:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3680,"nodeType":"IfStatement","src":"11564:82:17","trueBody":{"id":3679,"nodeType":"Block","src":"11582:64:17","statements":[{"expression":{"id":3677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3672,"name":"farCallAbiWithEmptyFatPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3629,"src":"11596:25:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"|=","rightHandSide":{"components":[{"commonType":{"typeIdentifier":"t_rational_452312848583266388373324160190187140051835877600158453279131187530910662656_by_1","typeString":"int_const 4523...(67 digits omitted)...2656"},"id":3675,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3673,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11626:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323438","id":3674,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11631:3:17","typeDescriptions":{"typeIdentifier":"t_rational_248_by_1","typeString":"int_const 248"},"value":"248"},"src":"11626:8:17","typeDescriptions":{"typeIdentifier":"t_rational_452312848583266388373324160190187140051835877600158453279131187530910662656_by_1","typeString":"int_const 4523...(67 digits omitted)...2656"}}],"id":3676,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"11625:10:17","typeDescriptions":{"typeIdentifier":"t_rational_452312848583266388373324160190187140051835877600158453279131187530910662656_by_1","typeString":"int_const 4523...(67 digits omitted)...2656"}},"src":"11596:39:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3678,"nodeType":"ExpressionStatement","src":"11596:39:17"}]}}]},"documentation":{"id":3615,"nodeType":"StructuredDocumentation","src":"10228:763:17","text":"@notice Calculates the packed representation of the FarCallABI with zero fat pointer fields.\n @param gasPassed The gas to pass with the call.\n @param shardId Of the account to call. Currently only 0 is supported.\n @param forwardingMode The forwarding mode to use:\n - provide CalldataForwardingMode.UseHeap when using your current memory\n - provide CalldataForwardingMode.ForwardFatPointer when using custom pointer.\n @param isConstructorCall Whether the call will be a call to the constructor\n (ignored when the caller is not a system contract).\n @param isSystemCall Whether the call will have the `isSystem` flag.\n @return farCallAbiWithEmptyFatPtr The far call ABI with zero fat pointer fields."},"id":3682,"implemented":true,"kind":"function","modifiers":[],"name":"getFarCallABIWithEmptyFatPointer","nameLocation":"11005:32:17","nodeType":"FunctionDefinition","parameters":{"id":3627,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3617,"mutability":"mutable","name":"gasPassed","nameLocation":"11054:9:17","nodeType":"VariableDeclaration","scope":3682,"src":"11047:16:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":3616,"name":"uint32","nodeType":"ElementaryTypeName","src":"11047:6:17","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":3619,"mutability":"mutable","name":"shardId","nameLocation":"11079:7:17","nodeType":"VariableDeclaration","scope":3682,"src":"11073:13:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3618,"name":"uint8","nodeType":"ElementaryTypeName","src":"11073:5:17","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":3622,"mutability":"mutable","name":"forwardingMode","nameLocation":"11119:14:17","nodeType":"VariableDeclaration","scope":3682,"src":"11096:37:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_CalldataForwardingMode_$3405","typeString":"enum CalldataForwardingMode"},"typeName":{"id":3621,"nodeType":"UserDefinedTypeName","pathNode":{"id":3620,"name":"CalldataForwardingMode","nameLocations":["11096:22:17"],"nodeType":"IdentifierPath","referencedDeclaration":3405,"src":"11096:22:17"},"referencedDeclaration":3405,"src":"11096:22:17","typeDescriptions":{"typeIdentifier":"t_enum$_CalldataForwardingMode_$3405","typeString":"enum CalldataForwardingMode"}},"visibility":"internal"},{"constant":false,"id":3624,"mutability":"mutable","name":"isConstructorCall","nameLocation":"11148:17:17","nodeType":"VariableDeclaration","scope":3682,"src":"11143:22:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3623,"name":"bool","nodeType":"ElementaryTypeName","src":"11143:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3626,"mutability":"mutable","name":"isSystemCall","nameLocation":"11180:12:17","nodeType":"VariableDeclaration","scope":3682,"src":"11175:17:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3625,"name":"bool","nodeType":"ElementaryTypeName","src":"11175:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"11037:161:17"},"returnParameters":{"id":3630,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3629,"mutability":"mutable","name":"farCallAbiWithEmptyFatPtr","nameLocation":"11230:25:17","nodeType":"VariableDeclaration","scope":3682,"src":"11222:33:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3628,"name":"uint256","nodeType":"ElementaryTypeName","src":"11222:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11221:35:17"},"scope":3683,"src":"10996:656:17","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":3684,"src":"3385:8269:17","usedErrors":[]}],"src":"33:11622:17"},"id":17},"@matterlabs/zksync-contracts/l2/system-contracts/libraries/TransactionHelper.sol":{"ast":{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/libraries/TransactionHelper.sol","exportedSymbols":{"ADDRESS_MASK":[2520],"Address":[5645],"BOOTLOADER_FORMAL_ADDRESS":[958],"CALLFLAGS_CALL_ADDRESS":[3261],"CODE_ADDRESS_CALL_ADDRESS":[3096],"CalldataForwardingMode":[3405],"EIP_1559_TX_TYPE":[3710],"EIP_2930_TX_TYPE":[3706],"EIP_712_TX_TYPE":[3698],"ETH_TOKEN_SYSTEM_CONTRACT":[1051],"EVENT_INITIALIZE_ADDRESS":[3283],"EVENT_WRITE_ADDRESS":[3294],"EfficientCall":[2170],"GET_EXTRA_ABI_DATA_ADDRESS":[3371],"Global":[2539],"IContractDeployer":[1327],"IERC20":[4998],"IERC20Permit":[5034],"INCREMENT_TX_COUNTER_CALL_ADDRESS":[3239],"IPaymasterFlow":[1634],"ISystemContract":[3068],"KECCAK256_SYSTEM_CONTRACT":[1059],"LEGACY_TX_TYPE":[3702],"LOAD_CALLDATA_INTO_ACTIVE_PTR_CALL_ADDRESS":[3305],"LOAD_LATEST_RETURNDATA_INTO_ACTIVE_PTR_CALL_ADDRESS":[3316],"MAX_SYSTEM_CONTRACT_ADDRESS":[925],"META_AUX_HEAP_SIZE_OFFSET":[3386],"META_CALLER_SHARD_ID_OFFSET":[3396],"META_CALL_ADDRESS":[3118],"META_CODE_SHARD_ID_OFFSET":[3401],"META_GAS_PER_PUBDATA_BYTE_OFFSET":[3376],"META_HEAP_SIZE_OFFSET":[3381],"META_SHARD_ID_OFFSET":[3391],"MIMIC_CALL_BY_REF_CALL_ADDRESS":[3151],"MIMIC_CALL_CALL_ADDRESS":[3129],"MSG_VALUE_SIMULATOR_IS_SYSTEM_BIT":[1107],"MSG_VALUE_SYSTEM_CONTRACT":[1040],"MULTIPLICATION_HIGH_ADDRESS":[3360],"PRECOMPILE_CALL_ADDRESS":[3107],"PTR_ADD_INTO_ACTIVE_CALL_ADDRESS":[3327],"PTR_CALLDATA_CALL_ADDRESS":[3250],"PTR_PACK_INTO_ACTIVE_CALL_ADDRESS":[3349],"PTR_RETURNDATA_CALL_ADDRESS":[3272],"PTR_SHRINK_INTO_ACTIVE_CALL_ADDRESS":[3338],"RAW_FAR_CALL_BY_REF_CALL_ADDRESS":[3184],"RAW_FAR_CALL_CALL_ADDRESS":[3173],"RLPEncoder":[2503],"SET_CONTEXT_VALUE_CALL_ADDRESS":[3217],"SET_PUBDATA_PRICE_CALL_ADDRESS":[3228],"SHA256_SYSTEM_CONTRACT":[937],"SYSTEM_CALL_BY_REF_CALL_ADDRESS":[3206],"SYSTEM_CALL_CALL_ADDRESS":[3195],"SYSTEM_MIMIC_CALL_BY_REF_CALL_ADDRESS":[3162],"SYSTEM_MIMIC_CALL_CALL_ADDRESS":[3140],"SafeERC20":[5315],"SystemContractHelper":[3048],"SystemContractsCaller":[3683],"TO_L1_CALL_ADDRESS":[3085],"Transaction":[3746],"TransactionHelper":[4646],"UINT128_MASK":[2516],"UINT32_MASK":[2513],"Utils":[4920],"ZkSyncMeta":[2533]},"id":4647,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3685,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"33:23:18"},{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/IERC20.sol","file":"../openzeppelin/token/ERC20/IERC20.sol","id":3686,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4647,"sourceUnit":4999,"src":"58:48:18","symbolAliases":[],"unitAlias":""},{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/utils/SafeERC20.sol","file":"../openzeppelin/token/ERC20/utils/SafeERC20.sol","id":3687,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4647,"sourceUnit":5316,"src":"107:57:18","symbolAliases":[],"unitAlias":""},{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymasterFlow.sol","file":"../interfaces/IPaymasterFlow.sol","id":3688,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4647,"sourceUnit":1635,"src":"166:42:18","symbolAliases":[],"unitAlias":""},{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IContractDeployer.sol","file":"../interfaces/IContractDeployer.sol","id":3689,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4647,"sourceUnit":1328,"src":"209:45:18","symbolAliases":[],"unitAlias":""},{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/Constants.sol","file":"../Constants.sol","id":3692,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4647,"sourceUnit":1124,"src":"255:86:18","symbolAliases":[{"foreign":{"id":3690,"name":"ETH_TOKEN_SYSTEM_CONTRACT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1051,"src":"263:25:18","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":3691,"name":"BOOTLOADER_FORMAL_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":958,"src":"290:25:18","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/libraries/RLPEncoder.sol","file":"./RLPEncoder.sol","id":3693,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4647,"sourceUnit":2504,"src":"342:26:18","symbolAliases":[],"unitAlias":""},{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/libraries/EfficientCall.sol","file":"./EfficientCall.sol","id":3694,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4647,"sourceUnit":2171,"src":"369:29:18","symbolAliases":[],"unitAlias":""},{"constant":true,"id":3698,"mutability":"constant","name":"EIP_712_TX_TYPE","nameLocation":"476:15:18","nodeType":"VariableDeclaration","scope":4647,"src":"461:37:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3696,"name":"uint8","nodeType":"ElementaryTypeName","src":"461:5:18","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"30783731","id":3697,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"494:4:18","typeDescriptions":{"typeIdentifier":"t_rational_113_by_1","typeString":"int_const 113"},"value":"0x71"},"visibility":"internal"},{"constant":true,"id":3702,"mutability":"constant","name":"LEGACY_TX_TYPE","nameLocation":"561:14:18","nodeType":"VariableDeclaration","scope":4647,"src":"546:35:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3700,"name":"uint8","nodeType":"ElementaryTypeName","src":"546:5:18","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"307830","id":3701,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"578:3:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x0"},"visibility":"internal"},{"constant":true,"id":3706,"mutability":"constant","name":"EIP_2930_TX_TYPE","nameLocation":"643:16:18","nodeType":"VariableDeclaration","scope":4647,"src":"628:38:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3704,"name":"uint8","nodeType":"ElementaryTypeName","src":"628:5:18","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"30783031","id":3705,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"662:4:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"0x01"},"visibility":"internal"},{"constant":true,"id":3710,"mutability":"constant","name":"EIP_1559_TX_TYPE","nameLocation":"729:16:18","nodeType":"VariableDeclaration","scope":4647,"src":"714:38:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3708,"name":"uint8","nodeType":"ElementaryTypeName","src":"714:5:18","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"30783032","id":3709,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"748:4:18","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"0x02"},"visibility":"internal"},{"canonicalName":"Transaction","id":3746,"members":[{"constant":false,"id":3712,"mutability":"mutable","name":"txType","nameLocation":"884:6:18","nodeType":"VariableDeclaration","scope":3746,"src":"876:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3711,"name":"uint256","nodeType":"ElementaryTypeName","src":"876:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3714,"mutability":"mutable","name":"from","nameLocation":"923:4:18","nodeType":"VariableDeclaration","scope":3746,"src":"915:12:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3713,"name":"uint256","nodeType":"ElementaryTypeName","src":"915:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3716,"mutability":"mutable","name":"to","nameLocation":"960:2:18","nodeType":"VariableDeclaration","scope":3746,"src":"952:10:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3715,"name":"uint256","nodeType":"ElementaryTypeName","src":"952:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3718,"mutability":"mutable","name":"gasLimit","nameLocation":"1081:8:18","nodeType":"VariableDeclaration","scope":3746,"src":"1073:16:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3717,"name":"uint256","nodeType":"ElementaryTypeName","src":"1073:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3720,"mutability":"mutable","name":"gasPerPubdataByteLimit","nameLocation":"1186:22:18","nodeType":"VariableDeclaration","scope":3746,"src":"1178:30:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3719,"name":"uint256","nodeType":"ElementaryTypeName","src":"1178:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3722,"mutability":"mutable","name":"maxFeePerGas","nameLocation":"1331:12:18","nodeType":"VariableDeclaration","scope":3746,"src":"1323:20:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3721,"name":"uint256","nodeType":"ElementaryTypeName","src":"1323:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3724,"mutability":"mutable","name":"maxPriorityFeePerGas","nameLocation":"1483:20:18","nodeType":"VariableDeclaration","scope":3746,"src":"1475:28:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3723,"name":"uint256","nodeType":"ElementaryTypeName","src":"1475:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3726,"mutability":"mutable","name":"paymaster","nameLocation":"1597:9:18","nodeType":"VariableDeclaration","scope":3746,"src":"1589:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3725,"name":"uint256","nodeType":"ElementaryTypeName","src":"1589:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3728,"mutability":"mutable","name":"nonce","nameLocation":"1657:5:18","nodeType":"VariableDeclaration","scope":3746,"src":"1649:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3727,"name":"uint256","nodeType":"ElementaryTypeName","src":"1649:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3730,"mutability":"mutable","name":"value","nameLocation":"1723:5:18","nodeType":"VariableDeclaration","scope":3746,"src":"1715:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3729,"name":"uint256","nodeType":"ElementaryTypeName","src":"1715:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3734,"mutability":"mutable","name":"reserved","nameLocation":"2237:8:18","nodeType":"VariableDeclaration","scope":3746,"src":"2226:19:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$4_storage_ptr","typeString":"uint256[4]"},"typeName":{"baseType":{"id":3731,"name":"uint256","nodeType":"ElementaryTypeName","src":"2226:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3733,"length":{"hexValue":"34","id":3732,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2234:1:18","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"nodeType":"ArrayTypeName","src":"2226:10:18","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$4_storage_ptr","typeString":"uint256[4]"}},"visibility":"internal"},{"constant":false,"id":3736,"mutability":"mutable","name":"data","nameLocation":"2292:4:18","nodeType":"VariableDeclaration","scope":3746,"src":"2286:10:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3735,"name":"bytes","nodeType":"ElementaryTypeName","src":"2286:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3738,"mutability":"mutable","name":"signature","nameLocation":"2349:9:18","nodeType":"VariableDeclaration","scope":3746,"src":"2343:15:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3737,"name":"bytes","nodeType":"ElementaryTypeName","src":"2343:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3741,"mutability":"mutable","name":"factoryDeps","nameLocation":"2602:11:18","nodeType":"VariableDeclaration","scope":3746,"src":"2592:21:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":3739,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2592:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3740,"nodeType":"ArrayTypeName","src":"2592:9:18","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":3743,"mutability":"mutable","name":"paymasterInput","nameLocation":"2660:14:18","nodeType":"VariableDeclaration","scope":3746,"src":"2654:20:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3742,"name":"bytes","nodeType":"ElementaryTypeName","src":"2654:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3745,"mutability":"mutable","name":"reservedDynamic","nameLocation":"2859:15:18","nodeType":"VariableDeclaration","scope":3746,"src":"2853:21:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3744,"name":"bytes","nodeType":"ElementaryTypeName","src":"2853:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"Transaction","nameLocation":"822:11:18","nodeType":"StructDefinition","scope":4647,"src":"815:2062:18","visibility":"public"},{"abstract":false,"baseContracts":[],"canonicalName":"TransactionHelper","contractDependencies":[],"contractKind":"library","documentation":{"id":3747,"nodeType":"StructuredDocumentation","src":"2879:135:18","text":" @author Matter Labs\n @notice Library is used to help custom accounts to work with common methods for the Transaction type."},"fullyImplemented":true,"id":4646,"linearizedBaseContracts":[4646],"name":"TransactionHelper","nameLocation":"3023:17:18","nodeType":"ContractDefinition","nodes":[{"global":false,"id":3751,"libraryName":{"id":3748,"name":"SafeERC20","nameLocations":["3053:9:18"],"nodeType":"IdentifierPath","referencedDeclaration":5315,"src":"3053:9:18"},"nodeType":"UsingForDirective","src":"3047:27:18","typeName":{"id":3750,"nodeType":"UserDefinedTypeName","pathNode":{"id":3749,"name":"IERC20","nameLocations":["3067:6:18"],"nodeType":"IdentifierPath","referencedDeclaration":4998,"src":"3067:6:18"},"referencedDeclaration":4998,"src":"3067:6:18","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4998","typeString":"contract IERC20"}}},{"constant":true,"documentation":{"id":3752,"nodeType":"StructuredDocumentation","src":"3080:58:18","text":"@notice The EIP-712 typehash for the contract's domain"},"id":3757,"mutability":"constant","name":"EIP712_DOMAIN_TYPEHASH","nameLocation":"3160:22:18","nodeType":"VariableDeclaration","scope":4646,"src":"3143:111:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3753,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3143:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e496429","id":3755,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3195:58:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_c2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6e","typeString":"literal_string \"EIP712Domain(string name,string version,uint256 chainId)\""},"value":"EIP712Domain(string name,string version,uint256 chainId)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6e","typeString":"literal_string \"EIP712Domain(string name,string version,uint256 chainId)\""}],"id":3754,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3185:9:18","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":3756,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3185:69:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":true,"id":3762,"mutability":"constant","name":"EIP712_TRANSACTION_TYPE_HASH","nameLocation":"3278:28:18","nodeType":"VariableDeclaration","scope":4646,"src":"3261:340:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3758,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3261:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"5472616e73616374696f6e2875696e74323536207478547970652c75696e743235362066726f6d2c75696e7432353620746f2c75696e74323536206761734c696d69742c75696e743235362067617350657250756264617461427974654c696d69742c75696e74323536206d61784665655065724761732c75696e74323536206d61785072696f726974794665655065724761732c75696e74323536207061796d61737465722c75696e74323536206e6f6e63652c75696e743235362076616c75652c627974657320646174612c627974657333325b5d20666163746f7279446570732c6279746573207061796d6173746572496e70757429","id":3760,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3340:251:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_848e1bfa1ac4e3576b728bda6721b215c70a7799a5b4866282a71bab954baac8","typeString":"literal_string \"Transaction(uint256 txType,uint256 from,uint256 to,uint256 gasLimit,uint256 gasPerPubdataByteLimit,uint256 maxFeePerGas,uint256 maxPriorityFeePerGas,uint256 paymaster,uint256 nonce,uint256 value,bytes data,bytes32[] factoryDeps,bytes paymasterInput)\""},"value":"Transaction(uint256 txType,uint256 from,uint256 to,uint256 gasLimit,uint256 gasPerPubdataByteLimit,uint256 maxFeePerGas,uint256 maxPriorityFeePerGas,uint256 paymaster,uint256 nonce,uint256 value,bytes data,bytes32[] factoryDeps,bytes paymasterInput)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_848e1bfa1ac4e3576b728bda6721b215c70a7799a5b4866282a71bab954baac8","typeString":"literal_string \"Transaction(uint256 txType,uint256 from,uint256 to,uint256 gasLimit,uint256 gasPerPubdataByteLimit,uint256 maxFeePerGas,uint256 maxPriorityFeePerGas,uint256 paymaster,uint256 nonce,uint256 value,bytes data,bytes32[] factoryDeps,bytes paymasterInput)\""}],"id":3759,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3317:9:18","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":3761,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3317:284:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"body":{"id":3787,"nodeType":"Block","src":"4012:99:18","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3781,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3770,"name":"_addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3765,"src":"4029:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"arguments":[{"id":3777,"name":"ETH_TOKEN_SYSTEM_CONTRACT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1051,"src":"4062:25:18","typeDescriptions":{"typeIdentifier":"t_contract$_IEthToken_$1400","typeString":"contract IEthToken"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IEthToken_$1400","typeString":"contract IEthToken"}],"id":3776,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4054:7:18","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3775,"name":"address","nodeType":"ElementaryTypeName","src":"4054:7:18","typeDescriptions":{}}},"id":3778,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4054:34:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3774,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4046:7:18","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":3773,"name":"uint160","nodeType":"ElementaryTypeName","src":"4046:7:18","typeDescriptions":{}}},"id":3779,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4046:43:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":3772,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4038:7:18","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3771,"name":"uint256","nodeType":"ElementaryTypeName","src":"4038:7:18","typeDescriptions":{}}},"id":3780,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4038:52:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4029:61:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3782,"name":"_addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3765,"src":"4094:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":3783,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4103:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4094:10:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4029:75:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":3769,"id":3786,"nodeType":"Return","src":"4022:82:18"}]},"documentation":{"id":3763,"nodeType":"StructuredDocumentation","src":"3608:335:18","text":"@notice Whether the token is Ethereum.\n @param _addr The address of the token\n @return `true` or `false` based on whether the token is Ether.\n @dev This method assumes that address is Ether either if the address is 0 (for convenience)\n or if the address is the address of the L2EthToken system contract."},"id":3788,"implemented":true,"kind":"function","modifiers":[],"name":"isEthToken","nameLocation":"3957:10:18","nodeType":"FunctionDefinition","parameters":{"id":3766,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3765,"mutability":"mutable","name":"_addr","nameLocation":"3976:5:18","nodeType":"VariableDeclaration","scope":3788,"src":"3968:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3764,"name":"uint256","nodeType":"ElementaryTypeName","src":"3968:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3967:15:18"},"returnParameters":{"id":3769,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3768,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3788,"src":"4006:4:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3767,"name":"bool","nodeType":"ElementaryTypeName","src":"4006:4:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4005:6:18"},"scope":4646,"src":"3948:163:18","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3850,"nodeType":"Block","src":"4383:744:18","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3800,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":3797,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3792,"src":"4397:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":3798,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4410:6:18","memberName":"txType","nodeType":"MemberAccess","referencedDeclaration":3712,"src":"4397:19:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":3799,"name":"LEGACY_TX_TYPE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3702,"src":"4420:14:18","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"4397:37:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":3808,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3792,"src":"4526:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":3809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4539:6:18","memberName":"txType","nodeType":"MemberAccess","referencedDeclaration":3712,"src":"4526:19:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":3810,"name":"EIP_712_TX_TYPE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3698,"src":"4549:15:18","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"4526:38:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3822,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":3819,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3792,"src":"4656:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":3820,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4669:6:18","memberName":"txType","nodeType":"MemberAccess","referencedDeclaration":3712,"src":"4656:19:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":3821,"name":"EIP_1559_TX_TYPE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3710,"src":"4679:16:18","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"4656:39:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":3830,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3792,"src":"4788:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":3831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4801:6:18","memberName":"txType","nodeType":"MemberAccess","referencedDeclaration":3712,"src":"4788:19:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":3832,"name":"EIP_2930_TX_TYPE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3706,"src":"4811:16:18","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"4788:39:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":3845,"nodeType":"Block","src":"4916:205:18","statements":[{"expression":{"arguments":[{"hexValue":"456e636f64696e6720756e737570706f72746564207478","id":3842,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5084:25:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_d28dc2dfcee97a0c91de8344d21372431c52845dce967b6ce9950778c78073de","typeString":"literal_string \"Encoding unsupported tx\""},"value":"Encoding unsupported tx"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d28dc2dfcee97a0c91de8344d21372431c52845dce967b6ce9950778c78073de","typeString":"literal_string \"Encoding unsupported tx\""}],"id":3841,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5077:6:18","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":3843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5077:33:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3844,"nodeType":"ExpressionStatement","src":"5077:33:18"}]},"id":3846,"nodeType":"IfStatement","src":"4784:337:18","trueBody":{"id":3840,"nodeType":"Block","src":"4829:81:18","statements":[{"expression":{"id":3838,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3834,"name":"resultHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3795,"src":"4843:10:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":3836,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3792,"src":"4886:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}],"id":3835,"name":"_encodeHashEIP2930Transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4285,"src":"4856:29:18","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Transaction_$3746_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct Transaction calldata) view returns (bytes32)"}},"id":3837,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4856:43:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"4843:56:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3839,"nodeType":"ExpressionStatement","src":"4843:56:18"}]}},"id":3847,"nodeType":"IfStatement","src":"4652:469:18","trueBody":{"id":3829,"nodeType":"Block","src":"4697:81:18","statements":[{"expression":{"id":3827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3823,"name":"resultHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3795,"src":"4711:10:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":3825,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3792,"src":"4754:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}],"id":3824,"name":"_encodeHashEIP1559Transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4462,"src":"4724:29:18","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Transaction_$3746_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct Transaction calldata) view returns (bytes32)"}},"id":3826,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4724:43:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"4711:56:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3828,"nodeType":"ExpressionStatement","src":"4711:56:18"}]}},"id":3848,"nodeType":"IfStatement","src":"4522:599:18","trueBody":{"id":3818,"nodeType":"Block","src":"4566:80:18","statements":[{"expression":{"id":3816,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3812,"name":"resultHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3795,"src":"4580:10:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":3814,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3792,"src":"4622:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}],"id":3813,"name":"_encodeHashEIP712Transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3933,"src":"4593:28:18","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Transaction_$3746_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct Transaction calldata) view returns (bytes32)"}},"id":3815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4593:42:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"4580:55:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3817,"nodeType":"ExpressionStatement","src":"4580:55:18"}]}},"id":3849,"nodeType":"IfStatement","src":"4393:728:18","trueBody":{"id":3807,"nodeType":"Block","src":"4436:80:18","statements":[{"expression":{"id":3805,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3801,"name":"resultHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3795,"src":"4450:10:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":3803,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3792,"src":"4492:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}],"id":3802,"name":"_encodeHashLegacyTransaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4117,"src":"4463:28:18","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Transaction_$3746_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct Transaction calldata) view returns (bytes32)"}},"id":3804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4463:42:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"4450:55:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3806,"nodeType":"ExpressionStatement","src":"4450:55:18"}]}}]},"documentation":{"id":3789,"nodeType":"StructuredDocumentation","src":"4117:163:18","text":"@notice Calculate the suggested signed hash of the transaction,\n i.e. the hash that is signed by EOAs and is recommended to be signed by other accounts."},"id":3851,"implemented":true,"kind":"function","modifiers":[],"name":"encodeHash","nameLocation":"4294:10:18","nodeType":"FunctionDefinition","parameters":{"id":3793,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3792,"mutability":"mutable","name":"_transaction","nameLocation":"4326:12:18","nodeType":"VariableDeclaration","scope":3851,"src":"4305:33:18","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction"},"typeName":{"id":3791,"nodeType":"UserDefinedTypeName","pathNode":{"id":3790,"name":"Transaction","nameLocations":["4305:11:18"],"nodeType":"IdentifierPath","referencedDeclaration":3746,"src":"4305:11:18"},"referencedDeclaration":3746,"src":"4305:11:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_storage_ptr","typeString":"struct Transaction"}},"visibility":"internal"}],"src":"4304:35:18"},"returnParameters":{"id":3796,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3795,"mutability":"mutable","name":"resultHash","nameLocation":"4371:10:18","nodeType":"VariableDeclaration","scope":3851,"src":"4363:18:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3794,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4363:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4362:20:18"},"scope":4646,"src":"4285:842:18","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":3932,"nodeType":"Block","src":"5388:981:18","statements":[{"assignments":[3861],"declarations":[{"constant":false,"id":3861,"mutability":"mutable","name":"structHash","nameLocation":"5406:10:18","nodeType":"VariableDeclaration","scope":3932,"src":"5398:18:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3860,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5398:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":3905,"initialValue":{"arguments":[{"arguments":[{"id":3865,"name":"EIP712_TRANSACTION_TYPE_HASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3762,"src":"5470:28:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":3866,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3855,"src":"5516:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":3867,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5529:6:18","memberName":"txType","nodeType":"MemberAccess","referencedDeclaration":3712,"src":"5516:19:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":3868,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3855,"src":"5553:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":3869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5566:4:18","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":3714,"src":"5553:17:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":3870,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3855,"src":"5588:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":3871,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5601:2:18","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":3716,"src":"5588:15:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":3872,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3855,"src":"5621:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":3873,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5634:8:18","memberName":"gasLimit","nodeType":"MemberAccess","referencedDeclaration":3718,"src":"5621:21:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":3874,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3855,"src":"5660:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":3875,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5673:22:18","memberName":"gasPerPubdataByteLimit","nodeType":"MemberAccess","referencedDeclaration":3720,"src":"5660:35:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":3876,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3855,"src":"5713:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":3877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5726:12:18","memberName":"maxFeePerGas","nodeType":"MemberAccess","referencedDeclaration":3722,"src":"5713:25:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":3878,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3855,"src":"5756:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":3879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5769:20:18","memberName":"maxPriorityFeePerGas","nodeType":"MemberAccess","referencedDeclaration":3724,"src":"5756:33:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":3880,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3855,"src":"5807:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":3881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5820:9:18","memberName":"paymaster","nodeType":"MemberAccess","referencedDeclaration":3726,"src":"5807:22:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":3882,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3855,"src":"5847:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":3883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5860:5:18","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":3728,"src":"5847:18:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":3884,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3855,"src":"5883:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":3885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5896:5:18","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":3730,"src":"5883:18:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"expression":{"id":3888,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3855,"src":"5940:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":3889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5953:4:18","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":3736,"src":"5940:17:18","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":3886,"name":"EfficientCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2170,"src":"5919:13:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EfficientCall_$2170_$","typeString":"type(library EfficientCall)"}},"id":3887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5933:6:18","memberName":"keccak","nodeType":"MemberAccess","referencedDeclaration":1743,"src":"5919:20:18","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (bytes calldata) view returns (bytes32)"}},"id":3890,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5919:39:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"arguments":[{"expression":{"id":3894,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3855,"src":"6003:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":3895,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6016:11:18","memberName":"factoryDeps","nodeType":"MemberAccess","referencedDeclaration":3741,"src":"6003:24:18","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}],"expression":{"id":3892,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5986:3:18","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":3893,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5990:12:18","memberName":"encodePacked","nodeType":"MemberAccess","src":"5986:16:18","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":3896,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5986:42:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3891,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5976:9:18","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":3897,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5976:53:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"expression":{"id":3900,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3855,"src":"6068:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":3901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6081:14:18","memberName":"paymasterInput","nodeType":"MemberAccess","referencedDeclaration":3743,"src":"6068:27:18","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":3898,"name":"EfficientCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2170,"src":"6047:13:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EfficientCall_$2170_$","typeString":"type(library EfficientCall)"}},"id":3899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6061:6:18","memberName":"keccak","nodeType":"MemberAccess","referencedDeclaration":1743,"src":"6047:20:18","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (bytes calldata) view returns (bytes32)"}},"id":3902,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6047:49:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":3863,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5442:3:18","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":3864,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5446:6:18","memberName":"encode","nodeType":"MemberAccess","src":"5442:10:18","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":3903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5442:668:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3862,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5419:9:18","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":3904,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5419:701:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"5398:722:18"},{"assignments":[3907],"declarations":[{"constant":false,"id":3907,"mutability":"mutable","name":"domainSeparator","nameLocation":"6139:15:18","nodeType":"VariableDeclaration","scope":3932,"src":"6131:23:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3906,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6131:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":3922,"initialValue":{"arguments":[{"arguments":[{"id":3911,"name":"EIP712_DOMAIN_TYPEHASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3757,"src":"6191:22:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"hexValue":"7a6b53796e63","id":3913,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6225:8:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_19b453ce45aaaaf3a300f5a9ec95869b4f28ab10430b572ee218c3a6a5e07d6f","typeString":"literal_string \"zkSync\""},"value":"zkSync"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_19b453ce45aaaaf3a300f5a9ec95869b4f28ab10430b572ee218c3a6a5e07d6f","typeString":"literal_string \"zkSync\""}],"id":3912,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6215:9:18","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":3914,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6215:19:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"hexValue":"32","id":3916,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6246:3:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_ad7c5bef027816a800da1736444fb58a807ef4c9603b7848673f7e3a68eb14a5","typeString":"literal_string \"2\""},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ad7c5bef027816a800da1736444fb58a807ef4c9603b7848673f7e3a68eb14a5","typeString":"literal_string \"2\""}],"id":3915,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6236:9:18","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":3917,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6236:14:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":3918,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"6252:5:18","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":3919,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6258:7:18","memberName":"chainid","nodeType":"MemberAccess","src":"6252:13:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3909,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6180:3:18","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":3910,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6184:6:18","memberName":"encode","nodeType":"MemberAccess","src":"6180:10:18","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":3920,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6180:86:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3908,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6157:9:18","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":3921,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6157:119:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"6131:145:18"},{"expression":{"arguments":[{"arguments":[{"hexValue":"1901","id":3926,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6321:10:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541","typeString":"literal_string hex\"1901\""},"value":"\u0019\u0001"},{"id":3927,"name":"domainSeparator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3907,"src":"6333:15:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3928,"name":"structHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3861,"src":"6350:10:18","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":3924,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6304:3:18","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":3925,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6308:12:18","memberName":"encodePacked","nodeType":"MemberAccess","src":"6304:16:18","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":3929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6304:57:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3923,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6294:9:18","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":3930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6294:68:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":3859,"id":3931,"nodeType":"Return","src":"6287:75:18"}]},"documentation":{"id":3852,"nodeType":"StructuredDocumentation","src":"5133:146:18","text":"@notice Encode hash of the zkSync native transaction type.\n @return keccak256 hash of the EIP-712 encoded representation of transaction"},"id":3933,"implemented":true,"kind":"function","modifiers":[],"name":"_encodeHashEIP712Transaction","nameLocation":"5293:28:18","nodeType":"FunctionDefinition","parameters":{"id":3856,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3855,"mutability":"mutable","name":"_transaction","nameLocation":"5343:12:18","nodeType":"VariableDeclaration","scope":3933,"src":"5322:33:18","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction"},"typeName":{"id":3854,"nodeType":"UserDefinedTypeName","pathNode":{"id":3853,"name":"Transaction","nameLocations":["5322:11:18"],"nodeType":"IdentifierPath","referencedDeclaration":3746,"src":"5322:11:18"},"referencedDeclaration":3746,"src":"5322:11:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_storage_ptr","typeString":"struct Transaction"}},"visibility":"internal"}],"src":"5321:35:18"},"returnParameters":{"id":3859,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3858,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3933,"src":"5379:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3857,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5379:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5378:9:18"},"scope":4646,"src":"5284:1085:18","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":4116,"nodeType":"Block","src":"6625:3173:18","statements":[{"assignments":[3943],"declarations":[{"constant":false,"id":3943,"mutability":"mutable","name":"encodedNonce","nameLocation":"7043:12:18","nodeType":"VariableDeclaration","scope":4116,"src":"7030:25:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3942,"name":"bytes","nodeType":"ElementaryTypeName","src":"7030:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":3949,"initialValue":{"arguments":[{"expression":{"id":3946,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3937,"src":"7083:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":3947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7096:5:18","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":3728,"src":"7083:18:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3944,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"7058:10:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":3945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7069:13:18","memberName":"encodeUint256","nodeType":"MemberAccess","referencedDeclaration":2286,"src":"7058:24:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":3948,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7058:44:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"7030:72:18"},{"assignments":[3951],"declarations":[{"constant":false,"id":3951,"mutability":"mutable","name":"encodedGasParam","nameLocation":"7213:15:18","nodeType":"VariableDeclaration","scope":4116,"src":"7200:28:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3950,"name":"bytes","nodeType":"ElementaryTypeName","src":"7200:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":3952,"nodeType":"VariableDeclarationStatement","src":"7200:28:18"},{"id":3978,"nodeType":"Block","src":"7238:277:18","statements":[{"assignments":[3954],"declarations":[{"constant":false,"id":3954,"mutability":"mutable","name":"encodedGasPrice","nameLocation":"7265:15:18","nodeType":"VariableDeclaration","scope":3978,"src":"7252:28:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3953,"name":"bytes","nodeType":"ElementaryTypeName","src":"7252:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":3960,"initialValue":{"arguments":[{"expression":{"id":3957,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3937,"src":"7308:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":3958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7321:12:18","memberName":"maxFeePerGas","nodeType":"MemberAccess","referencedDeclaration":3722,"src":"7308:25:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3955,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"7283:10:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":3956,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7294:13:18","memberName":"encodeUint256","nodeType":"MemberAccess","referencedDeclaration":2286,"src":"7283:24:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":3959,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7283:51:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"7252:82:18"},{"assignments":[3962],"declarations":[{"constant":false,"id":3962,"mutability":"mutable","name":"encodedGasLimit","nameLocation":"7361:15:18","nodeType":"VariableDeclaration","scope":3978,"src":"7348:28:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3961,"name":"bytes","nodeType":"ElementaryTypeName","src":"7348:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":3968,"initialValue":{"arguments":[{"expression":{"id":3965,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3937,"src":"7404:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":3966,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7417:8:18","memberName":"gasLimit","nodeType":"MemberAccess","referencedDeclaration":3718,"src":"7404:21:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3963,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"7379:10:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":3964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7390:13:18","memberName":"encodeUint256","nodeType":"MemberAccess","referencedDeclaration":2286,"src":"7379:24:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":3967,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7379:47:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"7348:78:18"},{"expression":{"id":3976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3969,"name":"encodedGasParam","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3951,"src":"7440:15:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":3973,"name":"encodedGasPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3954,"src":"7471:15:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":3974,"name":"encodedGasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3962,"src":"7488:15:18","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":3971,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7458:5:18","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":3970,"name":"bytes","nodeType":"ElementaryTypeName","src":"7458:5:18","typeDescriptions":{}}},"id":3972,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7464:6:18","memberName":"concat","nodeType":"MemberAccess","src":"7458:12:18","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":3975,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7458:46:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"7440:64:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3977,"nodeType":"ExpressionStatement","src":"7440:64:18"}]},{"assignments":[3980],"declarations":[{"constant":false,"id":3980,"mutability":"mutable","name":"encodedTo","nameLocation":"7538:9:18","nodeType":"VariableDeclaration","scope":4116,"src":"7525:22:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3979,"name":"bytes","nodeType":"ElementaryTypeName","src":"7525:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":3992,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"expression":{"id":3987,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3937,"src":"7591:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":3988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7604:2:18","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":3716,"src":"7591:15:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3986,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7583:7:18","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":3985,"name":"uint160","nodeType":"ElementaryTypeName","src":"7583:7:18","typeDescriptions":{}}},"id":3989,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7583:24:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":3984,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7575:7:18","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3983,"name":"address","nodeType":"ElementaryTypeName","src":"7575:7:18","typeDescriptions":{}}},"id":3990,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7575:33:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":3981,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"7550:10:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":3982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7561:13:18","memberName":"encodeAddress","nodeType":"MemberAccess","referencedDeclaration":2195,"src":"7550:24:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_bytes_memory_ptr_$","typeString":"function (address) pure returns (bytes memory)"}},"id":3991,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7550:59:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"7525:84:18"},{"assignments":[3994],"declarations":[{"constant":false,"id":3994,"mutability":"mutable","name":"encodedValue","nameLocation":"7632:12:18","nodeType":"VariableDeclaration","scope":4116,"src":"7619:25:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3993,"name":"bytes","nodeType":"ElementaryTypeName","src":"7619:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4000,"initialValue":{"arguments":[{"expression":{"id":3997,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3937,"src":"7672:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":3998,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7685:5:18","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":3730,"src":"7672:18:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3995,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"7647:10:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":3996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7658:13:18","memberName":"encodeUint256","nodeType":"MemberAccess","referencedDeclaration":2286,"src":"7647:24:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":3999,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7647:44:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"7619:72:18"},{"assignments":[4002],"declarations":[{"constant":false,"id":4002,"mutability":"mutable","name":"encodedDataLength","nameLocation":"7880:17:18","nodeType":"VariableDeclaration","scope":4116,"src":"7867:30:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4001,"name":"bytes","nodeType":"ElementaryTypeName","src":"7867:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4003,"nodeType":"VariableDeclarationStatement","src":"7867:30:18"},{"id":4037,"nodeType":"Block","src":"7907:677:18","statements":[{"assignments":[4005],"declarations":[{"constant":false,"id":4005,"mutability":"mutable","name":"txDataLen","nameLocation":"8016:9:18","nodeType":"VariableDeclaration","scope":4037,"src":"8009:16:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":4004,"name":"uint64","nodeType":"ElementaryTypeName","src":"8009:6:18","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":4012,"initialValue":{"arguments":[{"expression":{"expression":{"id":4008,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3937,"src":"8035:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":4009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8048:4:18","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":3736,"src":"8035:17:18","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":4010,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8053:6:18","memberName":"length","nodeType":"MemberAccess","src":"8035:24:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4007,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8028:6:18","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":4006,"name":"uint64","nodeType":"ElementaryTypeName","src":"8028:6:18","typeDescriptions":{}}},"id":4011,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8028:32:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"8009:51:18"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":4015,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4013,"name":"txDataLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4005,"src":"8078:9:18","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"31","id":4014,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8091:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"8078:14:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"id":4029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":4024,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3937,"src":"8313:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":4025,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8326:4:18","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":3736,"src":"8313:17:18","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":4027,"indexExpression":{"hexValue":"30","id":4026,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8331:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8313:20:18","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30783830","id":4028,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8337:4:18","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"0x80"},"src":"8313:28:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4035,"nodeType":"IfStatement","src":"8309:206:18","trueBody":{"id":4034,"nodeType":"Block","src":"8343:172:18","statements":[{"expression":{"id":4032,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4030,"name":"encodedDataLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4002,"src":"8473:17:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"81","id":4031,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"8493:7:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_1fed454f35701d8970ad2ac06907e973314989ab6eb948eda79c00e416c4bdeb","typeString":"literal_string hex\"81\""}},"src":"8473:27:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4033,"nodeType":"ExpressionStatement","src":"8473:27:18"}]}},"id":4036,"nodeType":"IfStatement","src":"8074:441:18","trueBody":{"id":4023,"nodeType":"Block","src":"8094:209:18","statements":[{"expression":{"id":4021,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4016,"name":"encodedDataLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4002,"src":"8223:17:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":4019,"name":"txDataLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4005,"src":"8278:9:18","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":4017,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"8243:10:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":4018,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8254:23:18","memberName":"encodeNonSingleBytesLen","nodeType":"MemberAccess","referencedDeclaration":2306,"src":"8243:34:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint64_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint64) pure returns (bytes memory)"}},"id":4020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8243:45:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"8223:65:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4022,"nodeType":"ExpressionStatement","src":"8223:65:18"}]}}]},{"assignments":[4039],"declarations":[{"constant":false,"id":4039,"mutability":"mutable","name":"encodedChainId","nameLocation":"8716:14:18","nodeType":"VariableDeclaration","scope":4116,"src":"8703:27:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4038,"name":"bytes","nodeType":"ElementaryTypeName","src":"8703:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4040,"nodeType":"VariableDeclarationStatement","src":"8703:27:18"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4046,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":4041,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3937,"src":"8744:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":4042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8757:8:18","memberName":"reserved","nodeType":"MemberAccess","referencedDeclaration":3734,"src":"8744:21:18","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$4_calldata_ptr","typeString":"uint256[4] calldata"}},"id":4044,"indexExpression":{"hexValue":"30","id":4043,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8766:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8744:24:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":4045,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8772:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8744:29:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4061,"nodeType":"IfStatement","src":"8740:142:18","trueBody":{"id":4060,"nodeType":"Block","src":"8775:107:18","statements":[{"expression":{"id":4058,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4047,"name":"encodedChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4039,"src":"8789:14:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"expression":{"id":4053,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"8844:5:18","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":4054,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8850:7:18","memberName":"chainid","nodeType":"MemberAccess","src":"8844:13:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4051,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"8819:10:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":4052,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8830:13:18","memberName":"encodeUint256","nodeType":"MemberAccess","referencedDeclaration":2286,"src":"8819:24:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":4055,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8819:39:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"8080","id":4056,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"8860:10:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_d32902a0df687b23c64b53e23b62fa0543c928c0a897a1e408a1d5871a4de0c8","typeString":"literal_string hex\"8080\""}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_stringliteral_d32902a0df687b23c64b53e23b62fa0543c928c0a897a1e408a1d5871a4de0c8","typeString":"literal_string hex\"8080\""}],"expression":{"id":4049,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8806:5:18","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":4048,"name":"bytes","nodeType":"ElementaryTypeName","src":"8806:5:18","typeDescriptions":{}}},"id":4050,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8812:6:18","memberName":"concat","nodeType":"MemberAccess","src":"8806:12:18","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":4057,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8806:65:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"8789:82:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4059,"nodeType":"ExpressionStatement","src":"8789:82:18"}]}},{"assignments":[4063],"declarations":[{"constant":false,"id":4063,"mutability":"mutable","name":"encodedListLength","nameLocation":"8905:17:18","nodeType":"VariableDeclaration","scope":4116,"src":"8892:30:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4062,"name":"bytes","nodeType":"ElementaryTypeName","src":"8892:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4064,"nodeType":"VariableDeclarationStatement","src":"8892:30:18"},{"id":4099,"nodeType":"UncheckedBlock","src":"8932:470:18","statements":[{"assignments":[4066],"declarations":[{"constant":false,"id":4066,"mutability":"mutable","name":"listLength","nameLocation":"8964:10:18","nodeType":"VariableDeclaration","scope":4099,"src":"8956:18:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4065,"name":"uint256","nodeType":"ElementaryTypeName","src":"8956:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4088,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4087,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4080,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4077,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4071,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":4067,"name":"encodedNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3943,"src":"8977:12:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4068,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8990:6:18","memberName":"length","nodeType":"MemberAccess","src":"8977:19:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":4069,"name":"encodedGasParam","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3951,"src":"9015:15:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9031:6:18","memberName":"length","nodeType":"MemberAccess","src":"9015:22:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8977:60:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":4072,"name":"encodedTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3980,"src":"9056:9:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4073,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9066:6:18","memberName":"length","nodeType":"MemberAccess","src":"9056:16:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8977:95:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":4075,"name":"encodedValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3994,"src":"9091:12:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9104:6:18","memberName":"length","nodeType":"MemberAccess","src":"9091:19:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8977:133:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":4078,"name":"encodedDataLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4002,"src":"9129:17:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4079,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9147:6:18","memberName":"length","nodeType":"MemberAccess","src":"9129:24:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8977:176:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"expression":{"id":4081,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3937,"src":"9172:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":4082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9185:4:18","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":3736,"src":"9172:17:18","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":4083,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9190:6:18","memberName":"length","nodeType":"MemberAccess","src":"9172:24:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8977:219:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":4085,"name":"encodedChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4039,"src":"9215:14:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4086,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9230:6:18","memberName":"length","nodeType":"MemberAccess","src":"9215:21:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8977:259:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8956:280:18"},{"expression":{"id":4097,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4089,"name":"encodedListLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4063,"src":"9327:17:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":4094,"name":"listLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4066,"src":"9379:10:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4093,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9372:6:18","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":4092,"name":"uint64","nodeType":"ElementaryTypeName","src":"9372:6:18","typeDescriptions":{}}},"id":4095,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9372:18:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":4090,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"9347:10:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":4091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9358:13:18","memberName":"encodeListLen","nodeType":"MemberAccess","referencedDeclaration":2320,"src":"9347:24:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint64_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint64) pure returns (bytes memory)"}},"id":4096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9347:44:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"9327:64:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4098,"nodeType":"ExpressionStatement","src":"9327:64:18"}]},{"expression":{"arguments":[{"arguments":[{"id":4104,"name":"encodedListLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4063,"src":"9492:17:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4105,"name":"encodedNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3943,"src":"9531:12:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4106,"name":"encodedGasParam","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3951,"src":"9565:15:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4107,"name":"encodedTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3980,"src":"9602:9:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4108,"name":"encodedValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3994,"src":"9633:12:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4109,"name":"encodedDataLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4002,"src":"9667:17:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"id":4110,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3937,"src":"9706:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":4111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9719:4:18","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":3736,"src":"9706:17:18","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":4112,"name":"encodedChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4039,"src":"9745:14:18","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"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":4102,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9458:5:18","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":4101,"name":"bytes","nodeType":"ElementaryTypeName","src":"9458:5:18","typeDescriptions":{}}},"id":4103,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9464:6:18","memberName":"concat","nodeType":"MemberAccess","src":"9458:12:18","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":4113,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9458:319:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4100,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"9431:9:18","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":4114,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9431:360:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":3941,"id":4115,"nodeType":"Return","src":"9412:379:18"}]},"documentation":{"id":3934,"nodeType":"StructuredDocumentation","src":"6375:141:18","text":"@notice Encode hash of the legacy transaction type.\n @return keccak256 of the serialized RLP encoded representation of transaction"},"id":4117,"implemented":true,"kind":"function","modifiers":[],"name":"_encodeHashLegacyTransaction","nameLocation":"6530:28:18","nodeType":"FunctionDefinition","parameters":{"id":3938,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3937,"mutability":"mutable","name":"_transaction","nameLocation":"6580:12:18","nodeType":"VariableDeclaration","scope":4117,"src":"6559:33:18","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction"},"typeName":{"id":3936,"nodeType":"UserDefinedTypeName","pathNode":{"id":3935,"name":"Transaction","nameLocations":["6559:11:18"],"nodeType":"IdentifierPath","referencedDeclaration":3746,"src":"6559:11:18"},"referencedDeclaration":3746,"src":"6559:11:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_storage_ptr","typeString":"struct Transaction"}},"visibility":"internal"}],"src":"6558:35:18"},"returnParameters":{"id":3941,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3940,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4117,"src":"6616:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3939,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6616:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6615:9:18"},"scope":4646,"src":"6521:3277:18","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":4284,"nodeType":"Block","src":"10056:3031:18","statements":[{"assignments":[4127],"declarations":[{"constant":false,"id":4127,"mutability":"mutable","name":"encodedFixedLengthParams","nameLocation":"10431:24:18","nodeType":"VariableDeclaration","scope":4284,"src":"10418:37:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4126,"name":"bytes","nodeType":"ElementaryTypeName","src":"10418:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4128,"nodeType":"VariableDeclarationStatement","src":"10418:37:18"},{"id":4196,"nodeType":"Block","src":"10465:804:18","statements":[{"assignments":[4130],"declarations":[{"constant":false,"id":4130,"mutability":"mutable","name":"encodedChainId","nameLocation":"10492:14:18","nodeType":"VariableDeclaration","scope":4196,"src":"10479:27:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4129,"name":"bytes","nodeType":"ElementaryTypeName","src":"10479:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4136,"initialValue":{"arguments":[{"expression":{"id":4133,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"10534:5:18","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":4134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10540:7:18","memberName":"chainid","nodeType":"MemberAccess","src":"10534:13:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4131,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"10509:10:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":4132,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10520:13:18","memberName":"encodeUint256","nodeType":"MemberAccess","referencedDeclaration":2286,"src":"10509:24:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":4135,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10509:39:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"10479:69:18"},{"assignments":[4138],"declarations":[{"constant":false,"id":4138,"mutability":"mutable","name":"encodedNonce","nameLocation":"10575:12:18","nodeType":"VariableDeclaration","scope":4196,"src":"10562:25:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4137,"name":"bytes","nodeType":"ElementaryTypeName","src":"10562:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4144,"initialValue":{"arguments":[{"expression":{"id":4141,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4121,"src":"10615:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":4142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10628:5:18","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":3728,"src":"10615:18:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4139,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"10590:10:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":4140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10601:13:18","memberName":"encodeUint256","nodeType":"MemberAccess","referencedDeclaration":2286,"src":"10590:24:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":4143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10590:44:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"10562:72:18"},{"assignments":[4146],"declarations":[{"constant":false,"id":4146,"mutability":"mutable","name":"encodedGasPrice","nameLocation":"10661:15:18","nodeType":"VariableDeclaration","scope":4196,"src":"10648:28:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4145,"name":"bytes","nodeType":"ElementaryTypeName","src":"10648:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4152,"initialValue":{"arguments":[{"expression":{"id":4149,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4121,"src":"10704:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":4150,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10717:12:18","memberName":"maxFeePerGas","nodeType":"MemberAccess","referencedDeclaration":3722,"src":"10704:25:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4147,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"10679:10:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":4148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10690:13:18","memberName":"encodeUint256","nodeType":"MemberAccess","referencedDeclaration":2286,"src":"10679:24:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":4151,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10679:51:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"10648:82:18"},{"assignments":[4154],"declarations":[{"constant":false,"id":4154,"mutability":"mutable","name":"encodedGasLimit","nameLocation":"10757:15:18","nodeType":"VariableDeclaration","scope":4196,"src":"10744:28:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4153,"name":"bytes","nodeType":"ElementaryTypeName","src":"10744:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4160,"initialValue":{"arguments":[{"expression":{"id":4157,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4121,"src":"10800:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":4158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10813:8:18","memberName":"gasLimit","nodeType":"MemberAccess","referencedDeclaration":3718,"src":"10800:21:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4155,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"10775:10:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":4156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10786:13:18","memberName":"encodeUint256","nodeType":"MemberAccess","referencedDeclaration":2286,"src":"10775:24:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":4159,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10775:47:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"10744:78:18"},{"assignments":[4162],"declarations":[{"constant":false,"id":4162,"mutability":"mutable","name":"encodedTo","nameLocation":"10849:9:18","nodeType":"VariableDeclaration","scope":4196,"src":"10836:22:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4161,"name":"bytes","nodeType":"ElementaryTypeName","src":"10836:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4174,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"expression":{"id":4169,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4121,"src":"10902:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":4170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10915:2:18","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":3716,"src":"10902:15:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4168,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10894:7:18","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":4167,"name":"uint160","nodeType":"ElementaryTypeName","src":"10894:7:18","typeDescriptions":{}}},"id":4171,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10894:24:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":4166,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10886:7:18","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4165,"name":"address","nodeType":"ElementaryTypeName","src":"10886:7:18","typeDescriptions":{}}},"id":4172,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10886:33:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":4163,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"10861:10:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":4164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10872:13:18","memberName":"encodeAddress","nodeType":"MemberAccess","referencedDeclaration":2195,"src":"10861:24:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_bytes_memory_ptr_$","typeString":"function (address) pure returns (bytes memory)"}},"id":4173,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10861:59:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"10836:84:18"},{"assignments":[4176],"declarations":[{"constant":false,"id":4176,"mutability":"mutable","name":"encodedValue","nameLocation":"10947:12:18","nodeType":"VariableDeclaration","scope":4196,"src":"10934:25:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4175,"name":"bytes","nodeType":"ElementaryTypeName","src":"10934:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4182,"initialValue":{"arguments":[{"expression":{"id":4179,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4121,"src":"10987:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":4180,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11000:5:18","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":3730,"src":"10987:18:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4177,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"10962:10:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":4178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10973:13:18","memberName":"encodeUint256","nodeType":"MemberAccess","referencedDeclaration":2286,"src":"10962:24:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":4181,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10962:44:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"10934:72:18"},{"expression":{"id":4194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4183,"name":"encodedFixedLengthParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4127,"src":"11020:24:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":4187,"name":"encodedChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4130,"src":"11077:14:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4188,"name":"encodedNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4138,"src":"11109:12:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4189,"name":"encodedGasPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4146,"src":"11139:15:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4190,"name":"encodedGasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4154,"src":"11172:15:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4191,"name":"encodedTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4162,"src":"11205:9:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4192,"name":"encodedValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4176,"src":"11232:12:18","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"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":4185,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11047:5:18","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":4184,"name":"bytes","nodeType":"ElementaryTypeName","src":"11047:5:18","typeDescriptions":{}}},"id":4186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11053:6:18","memberName":"concat","nodeType":"MemberAccess","src":"11047:12:18","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":4193,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11047:211:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"11020:238:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4195,"nodeType":"ExpressionStatement","src":"11020:238:18"}]},{"assignments":[4198],"declarations":[{"constant":false,"id":4198,"mutability":"mutable","name":"encodedDataLength","nameLocation":"11458:17:18","nodeType":"VariableDeclaration","scope":4284,"src":"11445:30:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4197,"name":"bytes","nodeType":"ElementaryTypeName","src":"11445:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4199,"nodeType":"VariableDeclarationStatement","src":"11445:30:18"},{"id":4233,"nodeType":"Block","src":"11485:677:18","statements":[{"assignments":[4201],"declarations":[{"constant":false,"id":4201,"mutability":"mutable","name":"txDataLen","nameLocation":"11594:9:18","nodeType":"VariableDeclaration","scope":4233,"src":"11587:16:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":4200,"name":"uint64","nodeType":"ElementaryTypeName","src":"11587:6:18","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":4208,"initialValue":{"arguments":[{"expression":{"expression":{"id":4204,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4121,"src":"11613:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":4205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11626:4:18","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":3736,"src":"11613:17:18","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":4206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11631:6:18","memberName":"length","nodeType":"MemberAccess","src":"11613:24:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4203,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11606:6:18","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":4202,"name":"uint64","nodeType":"ElementaryTypeName","src":"11606:6:18","typeDescriptions":{}}},"id":4207,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11606:32:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"11587:51:18"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":4211,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4209,"name":"txDataLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4201,"src":"11656:9:18","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"31","id":4210,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11669:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"11656:14:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"id":4225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":4220,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4121,"src":"11891:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":4221,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11904:4:18","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":3736,"src":"11891:17:18","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":4223,"indexExpression":{"hexValue":"30","id":4222,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11909:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11891:20:18","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30783830","id":4224,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11915:4:18","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"0x80"},"src":"11891:28:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4231,"nodeType":"IfStatement","src":"11887:206:18","trueBody":{"id":4230,"nodeType":"Block","src":"11921:172:18","statements":[{"expression":{"id":4228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4226,"name":"encodedDataLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4198,"src":"12051:17:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"81","id":4227,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"12071:7:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_1fed454f35701d8970ad2ac06907e973314989ab6eb948eda79c00e416c4bdeb","typeString":"literal_string hex\"81\""}},"src":"12051:27:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4229,"nodeType":"ExpressionStatement","src":"12051:27:18"}]}},"id":4232,"nodeType":"IfStatement","src":"11652:441:18","trueBody":{"id":4219,"nodeType":"Block","src":"11672:209:18","statements":[{"expression":{"id":4217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4212,"name":"encodedDataLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4198,"src":"11801:17:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":4215,"name":"txDataLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4201,"src":"11856:9:18","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":4213,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"11821:10:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":4214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11832:23:18","memberName":"encodeNonSingleBytesLen","nodeType":"MemberAccess","referencedDeclaration":2306,"src":"11821:34:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint64_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint64) pure returns (bytes memory)"}},"id":4216,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11821:45:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"11801:65:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4218,"nodeType":"ExpressionStatement","src":"11801:65:18"}]}}]},{"assignments":[4235],"declarations":[{"constant":false,"id":4235,"mutability":"mutable","name":"encodedAccessListLength","nameLocation":"12263:23:18","nodeType":"VariableDeclaration","scope":4284,"src":"12250:36:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4234,"name":"bytes","nodeType":"ElementaryTypeName","src":"12250:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4240,"initialValue":{"arguments":[{"hexValue":"30","id":4238,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12314:1:18","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"}],"expression":{"id":4236,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"12289:10:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":4237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12300:13:18","memberName":"encodeListLen","nodeType":"MemberAccess","referencedDeclaration":2320,"src":"12289:24:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint64_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint64) pure returns (bytes memory)"}},"id":4239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12289:27:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"12250:66:18"},{"assignments":[4242],"declarations":[{"constant":false,"id":4242,"mutability":"mutable","name":"encodedListLength","nameLocation":"12340:17:18","nodeType":"VariableDeclaration","scope":4284,"src":"12327:30:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4241,"name":"bytes","nodeType":"ElementaryTypeName","src":"12327:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4243,"nodeType":"VariableDeclarationStatement","src":"12327:30:18"},{"id":4269,"nodeType":"UncheckedBlock","src":"12367:377:18","statements":[{"assignments":[4245],"declarations":[{"constant":false,"id":4245,"mutability":"mutable","name":"listLength","nameLocation":"12399:10:18","nodeType":"VariableDeclaration","scope":4269,"src":"12391:18:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4244,"name":"uint256","nodeType":"ElementaryTypeName","src":"12391:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4258,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4257,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4250,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":4246,"name":"encodedFixedLengthParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4127,"src":"12412:24:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4247,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12437:6:18","memberName":"length","nodeType":"MemberAccess","src":"12412:31:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":4248,"name":"encodedDataLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4198,"src":"12462:17:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4249,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12480:6:18","memberName":"length","nodeType":"MemberAccess","src":"12462:24:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12412:74:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"expression":{"id":4251,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4121,"src":"12505:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":4252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12518:4:18","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":3736,"src":"12505:17:18","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":4253,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12523:6:18","memberName":"length","nodeType":"MemberAccess","src":"12505:24:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12412:117:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":4255,"name":"encodedAccessListLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4235,"src":"12548:23:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12572:6:18","memberName":"length","nodeType":"MemberAccess","src":"12548:30:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12412:166:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"12391:187:18"},{"expression":{"id":4267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4259,"name":"encodedListLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4242,"src":"12669:17:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":4264,"name":"listLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4245,"src":"12721:10:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4263,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12714:6:18","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":4262,"name":"uint64","nodeType":"ElementaryTypeName","src":"12714:6:18","typeDescriptions":{}}},"id":4265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12714:18:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":4260,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"12689:10:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":4261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12700:13:18","memberName":"encodeListLen","nodeType":"MemberAccess","referencedDeclaration":2320,"src":"12689:24:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint64_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint64) pure returns (bytes memory)"}},"id":4266,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12689:44:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"12669:64:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4268,"nodeType":"ExpressionStatement","src":"12669:64:18"}]},{"expression":{"arguments":[{"arguments":[{"hexValue":"01","id":4274,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12834:6:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_5fe7f977e71dba2ea1a68e21057beebb9be2ac30c6410aa38d4f3fbe41dcffd2","typeString":"literal_string hex\"01\""},"value":"\u0001"},{"id":4275,"name":"encodedListLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4242,"src":"12862:17:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4276,"name":"encodedFixedLengthParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4127,"src":"12901:24:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4277,"name":"encodedDataLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4198,"src":"12947:17:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"id":4278,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4121,"src":"12986:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":4279,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12999:4:18","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":3736,"src":"12986:17:18","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":4280,"name":"encodedAccessListLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4235,"src":"13025:23:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5fe7f977e71dba2ea1a68e21057beebb9be2ac30c6410aa38d4f3fbe41dcffd2","typeString":"literal_string hex\"01\""},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":4272,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12800:5:18","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":4271,"name":"bytes","nodeType":"ElementaryTypeName","src":"12800:5:18","typeDescriptions":{}}},"id":4273,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12806:6:18","memberName":"concat","nodeType":"MemberAccess","src":"12800:12:18","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":4281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12800:266:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4270,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"12773:9:18","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":4282,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12773:307:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":4125,"id":4283,"nodeType":"Return","src":"12754:326:18"}]},"documentation":{"id":4118,"nodeType":"StructuredDocumentation","src":"9804:142:18","text":"@notice Encode hash of the EIP2930 transaction type.\n @return keccak256 of the serialized RLP encoded representation of transaction"},"id":4285,"implemented":true,"kind":"function","modifiers":[],"name":"_encodeHashEIP2930Transaction","nameLocation":"9960:29:18","nodeType":"FunctionDefinition","parameters":{"id":4122,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4121,"mutability":"mutable","name":"_transaction","nameLocation":"10011:12:18","nodeType":"VariableDeclaration","scope":4285,"src":"9990:33:18","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction"},"typeName":{"id":4120,"nodeType":"UserDefinedTypeName","pathNode":{"id":4119,"name":"Transaction","nameLocations":["9990:11:18"],"nodeType":"IdentifierPath","referencedDeclaration":3746,"src":"9990:11:18"},"referencedDeclaration":3746,"src":"9990:11:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_storage_ptr","typeString":"struct Transaction"}},"visibility":"internal"}],"src":"9989:35:18"},"returnParameters":{"id":4125,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4124,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4285,"src":"10047:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4123,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10047:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"10046:9:18"},"scope":4646,"src":"9951:3136:18","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":4461,"nodeType":"Block","src":"13345:3232:18","statements":[{"assignments":[4295],"declarations":[{"constant":false,"id":4295,"mutability":"mutable","name":"encodedFixedLengthParams","nameLocation":"13752:24:18","nodeType":"VariableDeclaration","scope":4461,"src":"13739:37:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4294,"name":"bytes","nodeType":"ElementaryTypeName","src":"13739:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4296,"nodeType":"VariableDeclarationStatement","src":"13739:37:18"},{"id":4373,"nodeType":"Block","src":"13786:973:18","statements":[{"assignments":[4298],"declarations":[{"constant":false,"id":4298,"mutability":"mutable","name":"encodedChainId","nameLocation":"13813:14:18","nodeType":"VariableDeclaration","scope":4373,"src":"13800:27:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4297,"name":"bytes","nodeType":"ElementaryTypeName","src":"13800:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4304,"initialValue":{"arguments":[{"expression":{"id":4301,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"13855:5:18","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":4302,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13861:7:18","memberName":"chainid","nodeType":"MemberAccess","src":"13855:13:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4299,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"13830:10:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":4300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13841:13:18","memberName":"encodeUint256","nodeType":"MemberAccess","referencedDeclaration":2286,"src":"13830:24:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":4303,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13830:39:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"13800:69:18"},{"assignments":[4306],"declarations":[{"constant":false,"id":4306,"mutability":"mutable","name":"encodedNonce","nameLocation":"13896:12:18","nodeType":"VariableDeclaration","scope":4373,"src":"13883:25:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4305,"name":"bytes","nodeType":"ElementaryTypeName","src":"13883:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4312,"initialValue":{"arguments":[{"expression":{"id":4309,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4289,"src":"13936:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":4310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13949:5:18","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":3728,"src":"13936:18:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4307,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"13911:10:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":4308,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13922:13:18","memberName":"encodeUint256","nodeType":"MemberAccess","referencedDeclaration":2286,"src":"13911:24:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":4311,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13911:44:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"13883:72:18"},{"assignments":[4314],"declarations":[{"constant":false,"id":4314,"mutability":"mutable","name":"encodedMaxPriorityFeePerGas","nameLocation":"13982:27:18","nodeType":"VariableDeclaration","scope":4373,"src":"13969:40:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4313,"name":"bytes","nodeType":"ElementaryTypeName","src":"13969:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4320,"initialValue":{"arguments":[{"expression":{"id":4317,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4289,"src":"14037:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":4318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14050:20:18","memberName":"maxPriorityFeePerGas","nodeType":"MemberAccess","referencedDeclaration":3724,"src":"14037:33:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4315,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"14012:10:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":4316,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14023:13:18","memberName":"encodeUint256","nodeType":"MemberAccess","referencedDeclaration":2286,"src":"14012:24:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":4319,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14012:59:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"13969:102:18"},{"assignments":[4322],"declarations":[{"constant":false,"id":4322,"mutability":"mutable","name":"encodedMaxFeePerGas","nameLocation":"14098:19:18","nodeType":"VariableDeclaration","scope":4373,"src":"14085:32:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4321,"name":"bytes","nodeType":"ElementaryTypeName","src":"14085:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4328,"initialValue":{"arguments":[{"expression":{"id":4325,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4289,"src":"14145:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":4326,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14158:12:18","memberName":"maxFeePerGas","nodeType":"MemberAccess","referencedDeclaration":3722,"src":"14145:25:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4323,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"14120:10:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":4324,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14131:13:18","memberName":"encodeUint256","nodeType":"MemberAccess","referencedDeclaration":2286,"src":"14120:24:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":4327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14120:51:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"14085:86:18"},{"assignments":[4330],"declarations":[{"constant":false,"id":4330,"mutability":"mutable","name":"encodedGasLimit","nameLocation":"14198:15:18","nodeType":"VariableDeclaration","scope":4373,"src":"14185:28:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4329,"name":"bytes","nodeType":"ElementaryTypeName","src":"14185:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4336,"initialValue":{"arguments":[{"expression":{"id":4333,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4289,"src":"14241:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":4334,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14254:8:18","memberName":"gasLimit","nodeType":"MemberAccess","referencedDeclaration":3718,"src":"14241:21:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4331,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"14216:10:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":4332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14227:13:18","memberName":"encodeUint256","nodeType":"MemberAccess","referencedDeclaration":2286,"src":"14216:24:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":4335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14216:47:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"14185:78:18"},{"assignments":[4338],"declarations":[{"constant":false,"id":4338,"mutability":"mutable","name":"encodedTo","nameLocation":"14290:9:18","nodeType":"VariableDeclaration","scope":4373,"src":"14277:22:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4337,"name":"bytes","nodeType":"ElementaryTypeName","src":"14277:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4350,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"expression":{"id":4345,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4289,"src":"14343:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":4346,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14356:2:18","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":3716,"src":"14343:15:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4344,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14335:7:18","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":4343,"name":"uint160","nodeType":"ElementaryTypeName","src":"14335:7:18","typeDescriptions":{}}},"id":4347,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14335:24:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":4342,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14327:7:18","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4341,"name":"address","nodeType":"ElementaryTypeName","src":"14327:7:18","typeDescriptions":{}}},"id":4348,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14327:33:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":4339,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"14302:10:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":4340,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14313:13:18","memberName":"encodeAddress","nodeType":"MemberAccess","referencedDeclaration":2195,"src":"14302:24:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_bytes_memory_ptr_$","typeString":"function (address) pure returns (bytes memory)"}},"id":4349,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14302:59:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"14277:84:18"},{"assignments":[4352],"declarations":[{"constant":false,"id":4352,"mutability":"mutable","name":"encodedValue","nameLocation":"14388:12:18","nodeType":"VariableDeclaration","scope":4373,"src":"14375:25:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4351,"name":"bytes","nodeType":"ElementaryTypeName","src":"14375:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4358,"initialValue":{"arguments":[{"expression":{"id":4355,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4289,"src":"14428:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":4356,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14441:5:18","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":3730,"src":"14428:18:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4353,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"14403:10:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":4354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14414:13:18","memberName":"encodeUint256","nodeType":"MemberAccess","referencedDeclaration":2286,"src":"14403:24:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":4357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14403:44:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"14375:72:18"},{"expression":{"id":4371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4359,"name":"encodedFixedLengthParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4295,"src":"14461:24:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":4363,"name":"encodedChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4298,"src":"14518:14:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4364,"name":"encodedNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4306,"src":"14550:12:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4365,"name":"encodedMaxPriorityFeePerGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4314,"src":"14580:27:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4366,"name":"encodedMaxFeePerGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4322,"src":"14625:19:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4367,"name":"encodedGasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4330,"src":"14662:15:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4368,"name":"encodedTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4338,"src":"14695:9:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4369,"name":"encodedValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4352,"src":"14722:12:18","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"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":4361,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14488:5:18","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":4360,"name":"bytes","nodeType":"ElementaryTypeName","src":"14488:5:18","typeDescriptions":{}}},"id":4362,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14494:6:18","memberName":"concat","nodeType":"MemberAccess","src":"14488:12:18","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":4370,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14488:260:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"14461:287:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4372,"nodeType":"ExpressionStatement","src":"14461:287:18"}]},{"assignments":[4375],"declarations":[{"constant":false,"id":4375,"mutability":"mutable","name":"encodedDataLength","nameLocation":"14948:17:18","nodeType":"VariableDeclaration","scope":4461,"src":"14935:30:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4374,"name":"bytes","nodeType":"ElementaryTypeName","src":"14935:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4376,"nodeType":"VariableDeclarationStatement","src":"14935:30:18"},{"id":4410,"nodeType":"Block","src":"14975:677:18","statements":[{"assignments":[4378],"declarations":[{"constant":false,"id":4378,"mutability":"mutable","name":"txDataLen","nameLocation":"15084:9:18","nodeType":"VariableDeclaration","scope":4410,"src":"15077:16:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":4377,"name":"uint64","nodeType":"ElementaryTypeName","src":"15077:6:18","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":4385,"initialValue":{"arguments":[{"expression":{"expression":{"id":4381,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4289,"src":"15103:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":4382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15116:4:18","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":3736,"src":"15103:17:18","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":4383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15121:6:18","memberName":"length","nodeType":"MemberAccess","src":"15103:24:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4380,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15096:6:18","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":4379,"name":"uint64","nodeType":"ElementaryTypeName","src":"15096:6:18","typeDescriptions":{}}},"id":4384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15096:32:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"15077:51:18"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":4388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4386,"name":"txDataLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4378,"src":"15146:9:18","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"31","id":4387,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15159:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"15146:14:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"id":4402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":4397,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4289,"src":"15381:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":4398,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15394:4:18","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":3736,"src":"15381:17:18","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":4400,"indexExpression":{"hexValue":"30","id":4399,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15399:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15381:20:18","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30783830","id":4401,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15405:4:18","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"0x80"},"src":"15381:28:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4408,"nodeType":"IfStatement","src":"15377:206:18","trueBody":{"id":4407,"nodeType":"Block","src":"15411:172:18","statements":[{"expression":{"id":4405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4403,"name":"encodedDataLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4375,"src":"15541:17:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"81","id":4404,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"15561:7:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_1fed454f35701d8970ad2ac06907e973314989ab6eb948eda79c00e416c4bdeb","typeString":"literal_string hex\"81\""}},"src":"15541:27:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4406,"nodeType":"ExpressionStatement","src":"15541:27:18"}]}},"id":4409,"nodeType":"IfStatement","src":"15142:441:18","trueBody":{"id":4396,"nodeType":"Block","src":"15162:209:18","statements":[{"expression":{"id":4394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4389,"name":"encodedDataLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4375,"src":"15291:17:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":4392,"name":"txDataLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4378,"src":"15346:9:18","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":4390,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"15311:10:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":4391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15322:23:18","memberName":"encodeNonSingleBytesLen","nodeType":"MemberAccess","referencedDeclaration":2306,"src":"15311:34:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint64_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint64) pure returns (bytes memory)"}},"id":4393,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15311:45:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"15291:65:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4395,"nodeType":"ExpressionStatement","src":"15291:65:18"}]}}]},{"assignments":[4412],"declarations":[{"constant":false,"id":4412,"mutability":"mutable","name":"encodedAccessListLength","nameLocation":"15753:23:18","nodeType":"VariableDeclaration","scope":4461,"src":"15740:36:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4411,"name":"bytes","nodeType":"ElementaryTypeName","src":"15740:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4417,"initialValue":{"arguments":[{"hexValue":"30","id":4415,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15804:1:18","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"}],"expression":{"id":4413,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"15779:10:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":4414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15790:13:18","memberName":"encodeListLen","nodeType":"MemberAccess","referencedDeclaration":2320,"src":"15779:24:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint64_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint64) pure returns (bytes memory)"}},"id":4416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15779:27:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"15740:66:18"},{"assignments":[4419],"declarations":[{"constant":false,"id":4419,"mutability":"mutable","name":"encodedListLength","nameLocation":"15830:17:18","nodeType":"VariableDeclaration","scope":4461,"src":"15817:30:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4418,"name":"bytes","nodeType":"ElementaryTypeName","src":"15817:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4420,"nodeType":"VariableDeclarationStatement","src":"15817:30:18"},{"id":4446,"nodeType":"UncheckedBlock","src":"15857:377:18","statements":[{"assignments":[4422],"declarations":[{"constant":false,"id":4422,"mutability":"mutable","name":"listLength","nameLocation":"15889:10:18","nodeType":"VariableDeclaration","scope":4446,"src":"15881:18:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4421,"name":"uint256","nodeType":"ElementaryTypeName","src":"15881:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4435,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":4423,"name":"encodedFixedLengthParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4295,"src":"15902:24:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15927:6:18","memberName":"length","nodeType":"MemberAccess","src":"15902:31:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":4425,"name":"encodedDataLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4375,"src":"15952:17:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15970:6:18","memberName":"length","nodeType":"MemberAccess","src":"15952:24:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15902:74:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"expression":{"id":4428,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4289,"src":"15995:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":4429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16008:4:18","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":3736,"src":"15995:17:18","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":4430,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16013:6:18","memberName":"length","nodeType":"MemberAccess","src":"15995:24:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15902:117:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":4432,"name":"encodedAccessListLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4412,"src":"16038:23:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16062:6:18","memberName":"length","nodeType":"MemberAccess","src":"16038:30:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15902:166:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15881:187:18"},{"expression":{"id":4444,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4436,"name":"encodedListLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4419,"src":"16159:17:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":4441,"name":"listLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4422,"src":"16211:10:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4440,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16204:6:18","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":4439,"name":"uint64","nodeType":"ElementaryTypeName","src":"16204:6:18","typeDescriptions":{}}},"id":4442,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16204:18:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":4437,"name":"RLPEncoder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2503,"src":"16179:10:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RLPEncoder_$2503_$","typeString":"type(library RLPEncoder)"}},"id":4438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16190:13:18","memberName":"encodeListLen","nodeType":"MemberAccess","referencedDeclaration":2320,"src":"16179:24:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint64_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint64) pure returns (bytes memory)"}},"id":4443,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16179:44:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"16159:64:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4445,"nodeType":"ExpressionStatement","src":"16159:64:18"}]},{"expression":{"arguments":[{"arguments":[{"hexValue":"02","id":4451,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16324:6:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_f2ee15ea639b73fa3db9b34a245bdfa015c260c598b211bf05a1ecc4b3e3b4f2","typeString":"literal_string hex\"02\""},"value":"\u0002"},{"id":4452,"name":"encodedListLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4419,"src":"16352:17:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4453,"name":"encodedFixedLengthParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4295,"src":"16391:24:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4454,"name":"encodedDataLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4375,"src":"16437:17:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"id":4455,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4289,"src":"16476:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":4456,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16489:4:18","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":3736,"src":"16476:17:18","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":4457,"name":"encodedAccessListLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4412,"src":"16515:23:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f2ee15ea639b73fa3db9b34a245bdfa015c260c598b211bf05a1ecc4b3e3b4f2","typeString":"literal_string hex\"02\""},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":4449,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16290:5:18","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":4448,"name":"bytes","nodeType":"ElementaryTypeName","src":"16290:5:18","typeDescriptions":{}}},"id":4450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16296:6:18","memberName":"concat","nodeType":"MemberAccess","src":"16290:12:18","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":4458,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16290:266:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4447,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"16263:9:18","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":4459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16263:307:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":4293,"id":4460,"nodeType":"Return","src":"16244:326:18"}]},"documentation":{"id":4286,"nodeType":"StructuredDocumentation","src":"13093:142:18","text":"@notice Encode hash of the EIP1559 transaction type.\n @return keccak256 of the serialized RLP encoded representation of transaction"},"id":4462,"implemented":true,"kind":"function","modifiers":[],"name":"_encodeHashEIP1559Transaction","nameLocation":"13249:29:18","nodeType":"FunctionDefinition","parameters":{"id":4290,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4289,"mutability":"mutable","name":"_transaction","nameLocation":"13300:12:18","nodeType":"VariableDeclaration","scope":4462,"src":"13279:33:18","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction"},"typeName":{"id":4288,"nodeType":"UserDefinedTypeName","pathNode":{"id":4287,"name":"Transaction","nameLocations":["13279:11:18"],"nodeType":"IdentifierPath","referencedDeclaration":3746,"src":"13279:11:18"},"referencedDeclaration":3746,"src":"13279:11:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_storage_ptr","typeString":"struct Transaction"}},"visibility":"internal"}],"src":"13278:35:18"},"returnParameters":{"id":4293,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4292,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4462,"src":"13336:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4291,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13336:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"13335:9:18"},"scope":4646,"src":"13240:3337:18","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":4580,"nodeType":"Block","src":"16884:1560:18","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4474,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":4470,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4466,"src":"16902:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":4471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16915:14:18","memberName":"paymasterInput","nodeType":"MemberAccess","referencedDeclaration":3743,"src":"16902:27:18","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":4472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16930:6:18","memberName":"length","nodeType":"MemberAccess","src":"16902:34:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"34","id":4473,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16940:1:18","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"16902:39:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"546865207374616e64617264207061796d617374657220696e707574206d757374206265206174206c656173742034206279746573206c6f6e67","id":4475,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16943:60:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_c1e1bc8cb13cedbdf3fcc3a0b7371b00ed04219012114fb30a8e180e2b185afb","typeString":"literal_string \"The standard paymaster input must be at least 4 bytes long\""},"value":"The standard paymaster input must be at least 4 bytes long"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c1e1bc8cb13cedbdf3fcc3a0b7371b00ed04219012114fb30a8e180e2b185afb","typeString":"literal_string \"The standard paymaster input must be at least 4 bytes long\""}],"id":4469,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"16894:7:18","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4476,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16894:110:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4477,"nodeType":"ExpressionStatement","src":"16894:110:18"},{"assignments":[4479],"declarations":[{"constant":false,"id":4479,"mutability":"mutable","name":"paymasterInputSelector","nameLocation":"17022:22:18","nodeType":"VariableDeclaration","scope":4580,"src":"17015:29:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":4478,"name":"bytes4","nodeType":"ElementaryTypeName","src":"17015:6:18","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"id":4488,"initialValue":{"arguments":[{"baseExpression":{"expression":{"id":4482,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4466,"src":"17054:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":4483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17067:14:18","memberName":"paymasterInput","nodeType":"MemberAccess","referencedDeclaration":3743,"src":"17054:27:18","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"endExpression":{"hexValue":"34","id":4485,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17084:1:18","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"id":4486,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"17054:32:18","startExpression":{"hexValue":"30","id":4484,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17082:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}],"id":4481,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17047:6:18","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":4480,"name":"bytes4","nodeType":"ElementaryTypeName","src":"17047:6:18","typeDescriptions":{}}},"id":4487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17047:40:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"VariableDeclarationStatement","src":"17015:72:18"},{"condition":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":4493,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4489,"name":"paymasterInputSelector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4479,"src":"17101:22:18","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":4490,"name":"IPaymasterFlow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1634,"src":"17127:14:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPaymasterFlow_$1634_$","typeString":"type(contract IPaymasterFlow)"}},"id":4491,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17142:13:18","memberName":"approvalBased","nodeType":"MemberAccess","referencedDeclaration":1633,"src":"17127:28:18","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$returns$__$","typeString":"function IPaymasterFlow.approvalBased(address,uint256,bytes calldata)"}},"id":4492,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17156:8:18","memberName":"selector","nodeType":"MemberAccess","src":"17127:37:18","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"17101:63:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":4571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4567,"name":"paymasterInputSelector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4479,"src":"18180:22:18","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":4568,"name":"IPaymasterFlow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1634,"src":"18206:14:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPaymasterFlow_$1634_$","typeString":"type(contract IPaymasterFlow)"}},"id":4569,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18221:7:18","memberName":"general","nodeType":"MemberAccess","referencedDeclaration":1624,"src":"18206:22:18","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_bytes_calldata_ptr_$returns$__$","typeString":"function IPaymasterFlow.general(bytes calldata)"}},"id":4570,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18229:8:18","memberName":"selector","nodeType":"MemberAccess","src":"18206:31:18","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"18180:57:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":4577,"nodeType":"Block","src":"18377:61:18","statements":[{"expression":{"arguments":[{"hexValue":"556e737570706f72746564207061796d617374657220666c6f77","id":4574,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18398:28:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_f918f24cd770c456edf65ef5fed4f48b9bf4355278a3ecfd4f0ce05531705de0","typeString":"literal_string \"Unsupported paymaster flow\""},"value":"Unsupported paymaster flow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f918f24cd770c456edf65ef5fed4f48b9bf4355278a3ecfd4f0ce05531705de0","typeString":"literal_string \"Unsupported paymaster flow\""}],"id":4573,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"18391:6:18","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":4575,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18391:36:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4576,"nodeType":"ExpressionStatement","src":"18391:36:18"}]},"id":4578,"nodeType":"IfStatement","src":"18176:262:18","trueBody":{"id":4572,"nodeType":"Block","src":"18239:132:18","statements":[]}},"id":4579,"nodeType":"IfStatement","src":"17097:1341:18","trueBody":{"id":4566,"nodeType":"Block","src":"17166:1004:18","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4499,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":4495,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4466,"src":"17205:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":4496,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17218:14:18","memberName":"paymasterInput","nodeType":"MemberAccess","referencedDeclaration":3743,"src":"17205:27:18","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":4497,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17233:6:18","memberName":"length","nodeType":"MemberAccess","src":"17205:34:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"3638","id":4498,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17243:2:18","typeDescriptions":{"typeIdentifier":"t_rational_68_by_1","typeString":"int_const 68"},"value":"68"},"src":"17205:40:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"54686520617070726f76616c4261736564207061796d617374657220696e707574206d757374206265206174206c65617374203638206279746573206c6f6e67","id":4500,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17263:66:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_d10d20387bc3567ed43f5f2ed47ca31311a7ce5706b96fc50131cde22679ec14","typeString":"literal_string \"The approvalBased paymaster input must be at least 68 bytes long\""},"value":"The approvalBased paymaster input must be at least 68 bytes long"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d10d20387bc3567ed43f5f2ed47ca31311a7ce5706b96fc50131cde22679ec14","typeString":"literal_string \"The approvalBased paymaster input must be at least 68 bytes long\""}],"id":4494,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"17180:7:18","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17180:163:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4502,"nodeType":"ExpressionStatement","src":"17180:163:18"},{"assignments":[4504,4506],"declarations":[{"constant":false,"id":4504,"mutability":"mutable","name":"token","nameLocation":"17557:5:18","nodeType":"VariableDeclaration","scope":4566,"src":"17549:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4503,"name":"address","nodeType":"ElementaryTypeName","src":"17549:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4506,"mutability":"mutable","name":"minAllowance","nameLocation":"17572:12:18","nodeType":"VariableDeclaration","scope":4566,"src":"17564:20:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4505,"name":"uint256","nodeType":"ElementaryTypeName","src":"17564:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4520,"initialValue":{"arguments":[{"baseExpression":{"expression":{"id":4509,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4466,"src":"17599:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":4510,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17612:14:18","memberName":"paymasterInput","nodeType":"MemberAccess","referencedDeclaration":3743,"src":"17599:27:18","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"endExpression":{"hexValue":"3638","id":4512,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17629:2:18","typeDescriptions":{"typeIdentifier":"t_rational_68_by_1","typeString":"int_const 68"},"value":"68"},"id":4513,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"17599:33:18","startExpression":{"hexValue":"34","id":4511,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17627:1:18","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}},{"components":[{"id":4515,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17635:7:18","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4514,"name":"address","nodeType":"ElementaryTypeName","src":"17635:7:18","typeDescriptions":{}}},{"id":4517,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17644:7:18","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":4516,"name":"uint256","nodeType":"ElementaryTypeName","src":"17644:7:18","typeDescriptions":{}}}],"id":4518,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"17634:18:18","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_address_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(address),type(uint256))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"},{"typeIdentifier":"t_tuple$_t_type$_t_address_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(address),type(uint256))"}],"expression":{"id":4507,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17588:3:18","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4508,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17592:6:18","memberName":"decode","nodeType":"MemberAccess","src":"17588:10:18","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":4519,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17588:65:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_payable_$_t_uint256_$","typeString":"tuple(address payable,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"17548:105:18"},{"assignments":[4522],"declarations":[{"constant":false,"id":4522,"mutability":"mutable","name":"paymaster","nameLocation":"17675:9:18","nodeType":"VariableDeclaration","scope":4566,"src":"17667:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4521,"name":"address","nodeType":"ElementaryTypeName","src":"17667:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":4531,"initialValue":{"arguments":[{"arguments":[{"expression":{"id":4527,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4466,"src":"17703:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":4528,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17716:9:18","memberName":"paymaster","nodeType":"MemberAccess","referencedDeclaration":3726,"src":"17703:22:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4526,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17695:7:18","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":4525,"name":"uint160","nodeType":"ElementaryTypeName","src":"17695:7:18","typeDescriptions":{}}},"id":4529,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17695:31:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":4524,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17687:7:18","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4523,"name":"address","nodeType":"ElementaryTypeName","src":"17687:7:18","typeDescriptions":{}}},"id":4530,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17687:40:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"17667:60:18"},{"assignments":[4533],"declarations":[{"constant":false,"id":4533,"mutability":"mutable","name":"currentAllowance","nameLocation":"17750:16:18","nodeType":"VariableDeclaration","scope":4566,"src":"17742:24:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4532,"name":"uint256","nodeType":"ElementaryTypeName","src":"17742:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4544,"initialValue":{"arguments":[{"arguments":[{"id":4540,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"17801:4:18","typeDescriptions":{"typeIdentifier":"t_contract$_TransactionHelper_$4646","typeString":"library TransactionHelper"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TransactionHelper_$4646","typeString":"library TransactionHelper"}],"id":4539,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17793:7:18","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4538,"name":"address","nodeType":"ElementaryTypeName","src":"17793:7:18","typeDescriptions":{}}},"id":4541,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17793:13:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4542,"name":"paymaster","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4522,"src":"17808:9:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":4535,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4504,"src":"17776:5:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4534,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4998,"src":"17769:6:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$4998_$","typeString":"type(contract IERC20)"}},"id":4536,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17769:13:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4998","typeString":"contract IERC20"}},"id":4537,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17783:9:18","memberName":"allowance","nodeType":"MemberAccess","referencedDeclaration":4975,"src":"17769:23:18","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":4543,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17769:49:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"17742:76:18"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4547,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4545,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4533,"src":"17836:16:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":4546,"name":"minAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4506,"src":"17855:12:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17836:31:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4565,"nodeType":"IfStatement","src":"17832:328:18","trueBody":{"id":4564,"nodeType":"Block","src":"17869:291:18","statements":[{"expression":{"arguments":[{"id":4552,"name":"paymaster","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4522,"src":"18064:9:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"30","id":4553,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18075:1:18","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":{"arguments":[{"id":4549,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4504,"src":"18045:5:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4548,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4998,"src":"18038:6:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$4998_$","typeString":"type(contract IERC20)"}},"id":4550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18038:13:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4998","typeString":"contract IERC20"}},"id":4551,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18052:11:18","memberName":"safeApprove","nodeType":"MemberAccess","referencedDeclaration":5136,"src":"18038:25:18","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$4998_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$4998_$","typeString":"function (contract IERC20,address,uint256)"}},"id":4554,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18038:39:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4555,"nodeType":"ExpressionStatement","src":"18038:39:18"},{"expression":{"arguments":[{"id":4560,"name":"paymaster","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4522,"src":"18121:9:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4561,"name":"minAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4506,"src":"18132:12:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":4557,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4504,"src":"18102:5:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4556,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4998,"src":"18095:6:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$4998_$","typeString":"type(contract IERC20)"}},"id":4558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18095:13:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4998","typeString":"contract IERC20"}},"id":4559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18109:11:18","memberName":"safeApprove","nodeType":"MemberAccess","referencedDeclaration":5136,"src":"18095:25:18","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$4998_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$4998_$","typeString":"function (contract IERC20,address,uint256)"}},"id":4562,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18095:50:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4563,"nodeType":"ExpressionStatement","src":"18095:50:18"}]}}]}}]},"documentation":{"id":4463,"nodeType":"StructuredDocumentation","src":"16583:221:18","text":"@notice Processes the common paymaster flows, e.g. setting proper allowance\n for tokens, etc. For more information on the expected behavior, check out\n the \"Paymaster flows\" section in the documentation."},"id":4581,"implemented":true,"kind":"function","modifiers":[],"name":"processPaymasterInput","nameLocation":"16818:21:18","nodeType":"FunctionDefinition","parameters":{"id":4467,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4466,"mutability":"mutable","name":"_transaction","nameLocation":"16861:12:18","nodeType":"VariableDeclaration","scope":4581,"src":"16840:33:18","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction"},"typeName":{"id":4465,"nodeType":"UserDefinedTypeName","pathNode":{"id":4464,"name":"Transaction","nameLocations":["16840:11:18"],"nodeType":"IdentifierPath","referencedDeclaration":3746,"src":"16840:11:18"},"referencedDeclaration":3746,"src":"16840:11:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_storage_ptr","typeString":"struct Transaction"}},"visibility":"internal"}],"src":"16839:35:18"},"returnParameters":{"id":4468,"nodeType":"ParameterList","parameters":[],"src":"16884:0:18"},"scope":4646,"src":"16809:1635:18","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":4603,"nodeType":"Block","src":"18763:244:18","statements":[{"assignments":[4591],"declarations":[{"constant":false,"id":4591,"mutability":"mutable","name":"bootloaderAddr","nameLocation":"18781:14:18","nodeType":"VariableDeclaration","scope":4603,"src":"18773:22:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4590,"name":"address","nodeType":"ElementaryTypeName","src":"18773:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":4593,"initialValue":{"id":4592,"name":"BOOTLOADER_FORMAL_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":958,"src":"18798:25:18","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"VariableDeclarationStatement","src":"18773:50:18"},{"assignments":[4595],"declarations":[{"constant":false,"id":4595,"mutability":"mutable","name":"amount","nameLocation":"18841:6:18","nodeType":"VariableDeclaration","scope":4603,"src":"18833:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4594,"name":"uint256","nodeType":"ElementaryTypeName","src":"18833:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4601,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":4596,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4585,"src":"18850:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":4597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18863:12:18","memberName":"maxFeePerGas","nodeType":"MemberAccess","referencedDeclaration":3722,"src":"18850:25:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":4598,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4585,"src":"18878:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":4599,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18891:8:18","memberName":"gasLimit","nodeType":"MemberAccess","referencedDeclaration":3718,"src":"18878:21:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18850:49:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"18833:66:18"},{"AST":{"nodeType":"YulBlock","src":"18919:82:18","statements":[{"nodeType":"YulAssignment","src":"18933:58:18","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nodeType":"YulIdentifier","src":"18949:3:18"},"nodeType":"YulFunctionCall","src":"18949:5:18"},{"name":"bootloaderAddr","nodeType":"YulIdentifier","src":"18956:14:18"},{"name":"amount","nodeType":"YulIdentifier","src":"18972:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"18980:1:18","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"18983:1:18","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"18986:1:18","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"18989:1:18","type":"","value":"0"}],"functionName":{"name":"call","nodeType":"YulIdentifier","src":"18944:4:18"},"nodeType":"YulFunctionCall","src":"18944:47:18"},"variableNames":[{"name":"success","nodeType":"YulIdentifier","src":"18933:7:18"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":4595,"isOffset":false,"isSlot":false,"src":"18972:6:18","valueSize":1},{"declaration":4591,"isOffset":false,"isSlot":false,"src":"18956:14:18","valueSize":1},{"declaration":4588,"isOffset":false,"isSlot":false,"src":"18933:7:18","valueSize":1}],"id":4602,"nodeType":"InlineAssembly","src":"18910:91:18"}]},"documentation":{"id":4582,"nodeType":"StructuredDocumentation","src":"18450:213:18","text":"@notice Pays the required fee for the transaction to the bootloader.\n @dev Currently it pays the maximum amount \"_transaction.maxFeePerGas * _transaction.gasLimit\",\n it will change in the future."},"id":4604,"implemented":true,"kind":"function","modifiers":[],"name":"payToTheBootloader","nameLocation":"18677:18:18","nodeType":"FunctionDefinition","parameters":{"id":4586,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4585,"mutability":"mutable","name":"_transaction","nameLocation":"18717:12:18","nodeType":"VariableDeclaration","scope":4604,"src":"18696:33:18","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction"},"typeName":{"id":4584,"nodeType":"UserDefinedTypeName","pathNode":{"id":4583,"name":"Transaction","nameLocations":["18696:11:18"],"nodeType":"IdentifierPath","referencedDeclaration":3746,"src":"18696:11:18"},"referencedDeclaration":3746,"src":"18696:11:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_storage_ptr","typeString":"struct Transaction"}},"visibility":"internal"}],"src":"18695:35:18"},"returnParameters":{"id":4589,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4588,"mutability":"mutable","name":"success","nameLocation":"18754:7:18","nodeType":"VariableDeclaration","scope":4604,"src":"18749:12:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4587,"name":"bool","nodeType":"ElementaryTypeName","src":"18749:4:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"18748:14:18"},"scope":4646,"src":"18668:339:18","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":4644,"nodeType":"Block","src":"19190:399:18","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"expression":{"id":4616,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4607,"src":"19220:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":4617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19233:9:18","memberName":"paymaster","nodeType":"MemberAccess","referencedDeclaration":3726,"src":"19220:22:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4615,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19212:7:18","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":4614,"name":"uint160","nodeType":"ElementaryTypeName","src":"19212:7:18","typeDescriptions":{}}},"id":4618,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19212:31:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":4613,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19204:7:18","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4612,"name":"address","nodeType":"ElementaryTypeName","src":"19204:7:18","typeDescriptions":{}}},"id":4619,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19204:40:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":4622,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19256:1:18","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":4621,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19248:7:18","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4620,"name":"address","nodeType":"ElementaryTypeName","src":"19248:7:18","typeDescriptions":{}}},"id":4623,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19248:10:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"19204:54:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":4642,"nodeType":"Block","src":"19369:214:18","statements":[{"expression":{"id":4640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4631,"name":"requiredBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4610,"src":"19484:15:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4639,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4636,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":4632,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4607,"src":"19502:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":4633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19515:12:18","memberName":"maxFeePerGas","nodeType":"MemberAccess","referencedDeclaration":3722,"src":"19502:25:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":4634,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4607,"src":"19530:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":4635,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19543:8:18","memberName":"gasLimit","nodeType":"MemberAccess","referencedDeclaration":3718,"src":"19530:21:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19502:49:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":4637,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4607,"src":"19554:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":4638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19567:5:18","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":3730,"src":"19554:18:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19502:70:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19484:88:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4641,"nodeType":"ExpressionStatement","src":"19484:88:18"}]},"id":4643,"nodeType":"IfStatement","src":"19200:383:18","trueBody":{"id":4630,"nodeType":"Block","src":"19260:103:18","statements":[{"expression":{"id":4628,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4625,"name":"requiredBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4610,"src":"19316:15:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":4626,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4607,"src":"19334:12:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":4627,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19347:5:18","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":3730,"src":"19334:18:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19316:36:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4629,"nodeType":"ExpressionStatement","src":"19316:36:18"}]}}]},"id":4645,"implemented":true,"kind":"function","modifiers":[],"name":"totalRequiredBalance","nameLocation":"19086:20:18","nodeType":"FunctionDefinition","parameters":{"id":4608,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4607,"mutability":"mutable","name":"_transaction","nameLocation":"19128:12:18","nodeType":"VariableDeclaration","scope":4645,"src":"19107:33:18","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction"},"typeName":{"id":4606,"nodeType":"UserDefinedTypeName","pathNode":{"id":4605,"name":"Transaction","nameLocations":["19107:11:18"],"nodeType":"IdentifierPath","referencedDeclaration":3746,"src":"19107:11:18"},"referencedDeclaration":3746,"src":"19107:11:18","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_storage_ptr","typeString":"struct Transaction"}},"visibility":"internal"}],"src":"19106:35:18"},"returnParameters":{"id":4611,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4610,"mutability":"mutable","name":"requiredBalance","nameLocation":"19173:15:18","nodeType":"VariableDeclaration","scope":4645,"src":"19165:23:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4609,"name":"uint256","nodeType":"ElementaryTypeName","src":"19165:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19164:25:18"},"scope":4646,"src":"19077:512:18","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":4647,"src":"3015:16576:18","usedErrors":[]}],"src":"33:19559:18"},"id":18},"@matterlabs/zksync-contracts/l2/system-contracts/libraries/Utils.sol":{"ast":{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/libraries/Utils.sol","exportedSymbols":{"EfficientCall":[2170],"Utils":[4920]},"id":4921,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":4648,"literals":["solidity",">=","0.8",".0"],"nodeType":"PragmaDirective","src":"32:24:19"},{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/libraries/EfficientCall.sol","file":"./EfficientCall.sol","id":4649,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4921,"sourceUnit":2171,"src":"58:29:19","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"Utils","contractDependencies":[],"contractKind":"library","documentation":{"id":4650,"nodeType":"StructuredDocumentation","src":"89:87:19","text":" @author Matter Labs\n @dev Common utilities used in zkSync system contracts"},"fullyImplemented":true,"id":4920,"linearizedBaseContracts":[4920],"name":"Utils","nameLocation":"185:5:19","nodeType":"ContractDefinition","nodes":[{"constant":true,"documentation":{"id":4651,"nodeType":"StructuredDocumentation","src":"197:57:19","text":"@dev Bit mask of bytecode hash \"isConstructor\" marker"},"id":4654,"mutability":"constant","name":"IS_CONSTRUCTOR_BYTECODE_HASH_BIT_MASK","nameLocation":"276:37:19","nodeType":"VariableDeclaration","scope":4920,"src":"259:131:19","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4652,"name":"bytes32","nodeType":"ElementaryTypeName","src":"259:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307830306666303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030","id":4653,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"324:66:19","typeDescriptions":{"typeIdentifier":"t_rational_450546001518488004043740862689444221536008393703282834321009581329618042880_by_1","typeString":"int_const 4505...(67 digits omitted)...2880"},"value":"0x00ff000000000000000000000000000000000000000000000000000000000000"},"visibility":"internal"},{"constant":true,"documentation":{"id":4655,"nodeType":"StructuredDocumentation","src":"397:72:19","text":"@dev Bit mask to set the \"isConstructor\" marker in the bytecode hash"},"id":4658,"mutability":"constant","name":"SET_IS_CONSTRUCTOR_MARKER_BIT_MASK","nameLocation":"491:34:19","nodeType":"VariableDeclaration","scope":4920,"src":"474:128:19","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4656,"name":"bytes32","nodeType":"ElementaryTypeName","src":"474:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307830303031303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030","id":4657,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"536:66:19","typeDescriptions":{"typeIdentifier":"t_rational_1766847064778384329583297500742918515827483896875618958121606201292619776_by_1","typeString":"int_const 1766...(65 digits omitted)...9776"},"value":"0x0001000000000000000000000000000000000000000000000000000000000000"},"visibility":"internal"},{"body":{"id":4681,"nodeType":"Block","src":"677:90:19","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4666,"name":"_x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4660,"src":"695:2:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":4669,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"706:7:19","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":4668,"name":"uint128","nodeType":"ElementaryTypeName","src":"706:7:19","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"}],"id":4667,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"701:4:19","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":4670,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"701:13:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint128","typeString":"type(uint128)"}},"id":4671,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"715:3:19","memberName":"max","nodeType":"MemberAccess","src":"701:17:19","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"695:23:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f766572666c6f77","id":4673,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"720:10:19","typeDescriptions":{"typeIdentifier":"t_stringliteral_100a4a079679ed9d4cede1ac0e8eea56a5c6d7a224d4b46deaa121e0487edea0","typeString":"literal_string \"Overflow\""},"value":"Overflow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_100a4a079679ed9d4cede1ac0e8eea56a5c6d7a224d4b46deaa121e0487edea0","typeString":"literal_string \"Overflow\""}],"id":4665,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"687:7:19","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4674,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"687:44:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4675,"nodeType":"ExpressionStatement","src":"687:44:19"},{"expression":{"arguments":[{"id":4678,"name":"_x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4660,"src":"757:2:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4677,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"749:7:19","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":4676,"name":"uint128","nodeType":"ElementaryTypeName","src":"749:7:19","typeDescriptions":{}}},"id":4679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"749:11:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"functionReturnParameters":4664,"id":4680,"nodeType":"Return","src":"742:18:19"}]},"id":4682,"implemented":true,"kind":"function","modifiers":[],"name":"safeCastToU128","nameLocation":"618:14:19","nodeType":"FunctionDefinition","parameters":{"id":4661,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4660,"mutability":"mutable","name":"_x","nameLocation":"641:2:19","nodeType":"VariableDeclaration","scope":4682,"src":"633:10:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4659,"name":"uint256","nodeType":"ElementaryTypeName","src":"633:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"632:12:19"},"returnParameters":{"id":4664,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4663,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4682,"src":"668:7:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":4662,"name":"uint128","nodeType":"ElementaryTypeName","src":"668:7:19","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"667:9:19"},"scope":4920,"src":"609:158:19","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4705,"nodeType":"Block","src":"839:88:19","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4690,"name":"_x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4684,"src":"857:2:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":4693,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"868:6:19","typeDescriptions":{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"},"typeName":{"id":4692,"name":"uint32","nodeType":"ElementaryTypeName","src":"868:6:19","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"}],"id":4691,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"863:4:19","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":4694,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"863:12:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint32","typeString":"type(uint32)"}},"id":4695,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"876:3:19","memberName":"max","nodeType":"MemberAccess","src":"863:16:19","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"857:22:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f766572666c6f77","id":4697,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"881:10:19","typeDescriptions":{"typeIdentifier":"t_stringliteral_100a4a079679ed9d4cede1ac0e8eea56a5c6d7a224d4b46deaa121e0487edea0","typeString":"literal_string \"Overflow\""},"value":"Overflow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_100a4a079679ed9d4cede1ac0e8eea56a5c6d7a224d4b46deaa121e0487edea0","typeString":"literal_string \"Overflow\""}],"id":4689,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"849:7:19","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4698,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"849:43:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4699,"nodeType":"ExpressionStatement","src":"849:43:19"},{"expression":{"arguments":[{"id":4702,"name":"_x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4684,"src":"917:2:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4701,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"910:6:19","typeDescriptions":{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"},"typeName":{"id":4700,"name":"uint32","nodeType":"ElementaryTypeName","src":"910:6:19","typeDescriptions":{}}},"id":4703,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"910:10:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"functionReturnParameters":4688,"id":4704,"nodeType":"Return","src":"903:17:19"}]},"id":4706,"implemented":true,"kind":"function","modifiers":[],"name":"safeCastToU32","nameLocation":"782:13:19","nodeType":"FunctionDefinition","parameters":{"id":4685,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4684,"mutability":"mutable","name":"_x","nameLocation":"804:2:19","nodeType":"VariableDeclaration","scope":4706,"src":"796:10:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4683,"name":"uint256","nodeType":"ElementaryTypeName","src":"796:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"795:12:19"},"returnParameters":{"id":4688,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4687,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4706,"src":"831:6:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":4686,"name":"uint32","nodeType":"ElementaryTypeName","src":"831:6:19","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"830:8:19"},"scope":4920,"src":"773:154:19","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4729,"nodeType":"Block","src":"999:88:19","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4720,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4714,"name":"_x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4708,"src":"1017:2:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":4717,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1028:6:19","typeDescriptions":{"typeIdentifier":"t_type$_t_uint24_$","typeString":"type(uint24)"},"typeName":{"id":4716,"name":"uint24","nodeType":"ElementaryTypeName","src":"1028:6:19","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint24_$","typeString":"type(uint24)"}],"id":4715,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1023:4:19","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":4718,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1023:12:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint24","typeString":"type(uint24)"}},"id":4719,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1036:3:19","memberName":"max","nodeType":"MemberAccess","src":"1023:16:19","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"src":"1017:22:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f766572666c6f77","id":4721,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1041:10:19","typeDescriptions":{"typeIdentifier":"t_stringliteral_100a4a079679ed9d4cede1ac0e8eea56a5c6d7a224d4b46deaa121e0487edea0","typeString":"literal_string \"Overflow\""},"value":"Overflow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_100a4a079679ed9d4cede1ac0e8eea56a5c6d7a224d4b46deaa121e0487edea0","typeString":"literal_string \"Overflow\""}],"id":4713,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1009:7:19","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4722,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1009:43:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4723,"nodeType":"ExpressionStatement","src":"1009:43:19"},{"expression":{"arguments":[{"id":4726,"name":"_x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4708,"src":"1077:2:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4725,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1070:6:19","typeDescriptions":{"typeIdentifier":"t_type$_t_uint24_$","typeString":"type(uint24)"},"typeName":{"id":4724,"name":"uint24","nodeType":"ElementaryTypeName","src":"1070:6:19","typeDescriptions":{}}},"id":4727,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1070:10:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"functionReturnParameters":4712,"id":4728,"nodeType":"Return","src":"1063:17:19"}]},"id":4730,"implemented":true,"kind":"function","modifiers":[],"name":"safeCastToU24","nameLocation":"942:13:19","nodeType":"FunctionDefinition","parameters":{"id":4709,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4708,"mutability":"mutable","name":"_x","nameLocation":"964:2:19","nodeType":"VariableDeclaration","scope":4730,"src":"956:10:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4707,"name":"uint256","nodeType":"ElementaryTypeName","src":"956:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"955:12:19"},"returnParameters":{"id":4712,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4711,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4730,"src":"991:6:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"},"typeName":{"id":4710,"name":"uint24","nodeType":"ElementaryTypeName","src":"991:6:19","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"visibility":"internal"}],"src":"990:8:19"},"scope":4920,"src":"933:154:19","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4746,"nodeType":"Block","src":"1243:90:19","statements":[{"expression":{"id":4744,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4738,"name":"codeLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4736,"src":"1253:10:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":4740,"name":"_bytecodeHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4733,"src":"1285:13:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":4739,"name":"bytecodeLenInWords","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4781,"src":"1266:18:19","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32) pure returns (uint256)"}},"id":4741,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1266:33:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"35","id":4742,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1303:1:19","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"src":"1266:38:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1253:51:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4745,"nodeType":"ExpressionStatement","src":"1253:51:19"}]},"documentation":{"id":4731,"nodeType":"StructuredDocumentation","src":"1093:51:19","text":"@return codeLength The bytecode length in bytes"},"id":4747,"implemented":true,"kind":"function","modifiers":[],"name":"bytecodeLenInBytes","nameLocation":"1158:18:19","nodeType":"FunctionDefinition","parameters":{"id":4734,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4733,"mutability":"mutable","name":"_bytecodeHash","nameLocation":"1185:13:19","nodeType":"VariableDeclaration","scope":4747,"src":"1177:21:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4732,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1177:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1176:23:19"},"returnParameters":{"id":4737,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4736,"mutability":"mutable","name":"codeLength","nameLocation":"1231:10:19","nodeType":"VariableDeclaration","scope":4747,"src":"1223:18:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4735,"name":"uint256","nodeType":"ElementaryTypeName","src":"1223:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1222:20:19"},"scope":4920,"src":"1149:184:19","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4780,"nodeType":"Block","src":"1511:144:19","statements":[{"id":4779,"nodeType":"UncheckedBlock","src":"1521:128:19","statements":[{"expression":{"id":4777,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4755,"name":"codeLengthInWords","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4753,"src":"1545:17:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"baseExpression":{"id":4760,"name":"_bytecodeHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4750,"src":"1579:13:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":4762,"indexExpression":{"hexValue":"32","id":4761,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1593:1:19","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1579:16:19","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"id":4759,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1573:5:19","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":4758,"name":"uint8","nodeType":"ElementaryTypeName","src":"1573:5:19","typeDescriptions":{}}},"id":4763,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1573:23:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":4757,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1565:7:19","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":4756,"name":"uint256","nodeType":"ElementaryTypeName","src":"1565:7:19","typeDescriptions":{}}},"id":4764,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1565:32:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"323536","id":4765,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1600:3:19","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"value":"256"},"src":"1565:38:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"arguments":[{"baseExpression":{"id":4771,"name":"_bytecodeHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4750,"src":"1620:13:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":4773,"indexExpression":{"hexValue":"33","id":4772,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1634:1:19","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1620:16:19","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"id":4770,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1614:5:19","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":4769,"name":"uint8","nodeType":"ElementaryTypeName","src":"1614:5:19","typeDescriptions":{}}},"id":4774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1614:23:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":4768,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1606:7:19","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":4767,"name":"uint256","nodeType":"ElementaryTypeName","src":"1606:7:19","typeDescriptions":{}}},"id":4775,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1606:32:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1565:73:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1545:93:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4778,"nodeType":"ExpressionStatement","src":"1545:93:19"}]}]},"documentation":{"id":4748,"nodeType":"StructuredDocumentation","src":"1339:66:19","text":"@return codeLengthInWords The bytecode length in machine words"},"id":4781,"implemented":true,"kind":"function","modifiers":[],"name":"bytecodeLenInWords","nameLocation":"1419:18:19","nodeType":"FunctionDefinition","parameters":{"id":4751,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4750,"mutability":"mutable","name":"_bytecodeHash","nameLocation":"1446:13:19","nodeType":"VariableDeclaration","scope":4781,"src":"1438:21:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4749,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1438:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1437:23:19"},"returnParameters":{"id":4754,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4753,"mutability":"mutable","name":"codeLengthInWords","nameLocation":"1492:17:19","nodeType":"VariableDeclaration","scope":4781,"src":"1484:25:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4752,"name":"uint256","nodeType":"ElementaryTypeName","src":"1484:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1483:27:19"},"scope":4920,"src":"1410:245:19","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4795,"nodeType":"Block","src":"1841:48:19","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"id":4793,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":4789,"name":"_bytecodeHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4784,"src":"1858:13:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":4791,"indexExpression":{"hexValue":"31","id":4790,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1872:1:19","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1858:16:19","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30783030","id":4792,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1878:4:19","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x00"},"src":"1858:24:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":4788,"id":4794,"nodeType":"Return","src":"1851:31:19"}]},"documentation":{"id":4782,"nodeType":"StructuredDocumentation","src":"1661:92:19","text":"@notice Denotes whether bytecode hash corresponds to a contract that already constructed"},"id":4796,"implemented":true,"kind":"function","modifiers":[],"name":"isContractConstructed","nameLocation":"1767:21:19","nodeType":"FunctionDefinition","parameters":{"id":4785,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4784,"mutability":"mutable","name":"_bytecodeHash","nameLocation":"1797:13:19","nodeType":"VariableDeclaration","scope":4796,"src":"1789:21:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4783,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1789:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1788:23:19"},"returnParameters":{"id":4788,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4787,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4796,"src":"1835:4:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4786,"name":"bool","nodeType":"ElementaryTypeName","src":"1835:4:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1834:6:19"},"scope":4920,"src":"1758:131:19","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4810,"nodeType":"Block","src":"2106:48:19","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"id":4808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":4804,"name":"_bytecodeHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4799,"src":"2123:13:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":4806,"indexExpression":{"hexValue":"31","id":4805,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2137:1:19","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2123:16:19","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30783031","id":4807,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2143:4:19","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"0x01"},"src":"2123:24:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":4803,"id":4809,"nodeType":"Return","src":"2116:31:19"}]},"documentation":{"id":4797,"nodeType":"StructuredDocumentation","src":"1895:122:19","text":"@notice Denotes whether bytecode hash corresponds to a contract that is on constructor or has already been constructed"},"id":4811,"implemented":true,"kind":"function","modifiers":[],"name":"isContractConstructing","nameLocation":"2031:22:19","nodeType":"FunctionDefinition","parameters":{"id":4800,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4799,"mutability":"mutable","name":"_bytecodeHash","nameLocation":"2062:13:19","nodeType":"VariableDeclaration","scope":4811,"src":"2054:21:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4798,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2054:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2053:23:19"},"returnParameters":{"id":4803,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4802,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4811,"src":"2100:4:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4801,"name":"bool","nodeType":"ElementaryTypeName","src":"2100:4:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2099:6:19"},"scope":4920,"src":"2022:132:19","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4825,"nodeType":"Block","src":"2492:163:19","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":4823,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":4820,"name":"_bytecodeHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4814,"src":"2597:13:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":4819,"name":"constructedBytecodeHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4840,"src":"2573:23:19","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) pure returns (bytes32)"}},"id":4821,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2573:38:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"|","rightExpression":{"id":4822,"name":"SET_IS_CONSTRUCTOR_MARKER_BIT_MASK","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4658,"src":"2614:34:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2573:75:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":4818,"id":4824,"nodeType":"Return","src":"2566:82:19"}]},"documentation":{"id":4812,"nodeType":"StructuredDocumentation","src":"2160:238:19","text":"@notice Sets \"isConstructor\" flag to TRUE for the bytecode hash\n @param _bytecodeHash The bytecode hash for which it is needed to set the constructing flag\n @return The bytecode hash with \"isConstructor\" flag set to TRUE"},"id":4826,"implemented":true,"kind":"function","modifiers":[],"name":"constructingBytecodeHash","nameLocation":"2412:24:19","nodeType":"FunctionDefinition","parameters":{"id":4815,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4814,"mutability":"mutable","name":"_bytecodeHash","nameLocation":"2445:13:19","nodeType":"VariableDeclaration","scope":4826,"src":"2437:21:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4813,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2437:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2436:23:19"},"returnParameters":{"id":4818,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4817,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4826,"src":"2483:7:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4816,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2483:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2482:9:19"},"scope":4920,"src":"2403:252:19","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4839,"nodeType":"Block","src":"2994:78:19","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":4837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4834,"name":"_bytecodeHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4829,"src":"3011:13:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":4836,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"~","prefix":true,"src":"3027:38:19","subExpression":{"id":4835,"name":"IS_CONSTRUCTOR_BYTECODE_HASH_BIT_MASK","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4654,"src":"3028:37:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3011:54:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":4833,"id":4838,"nodeType":"Return","src":"3004:61:19"}]},"documentation":{"id":4827,"nodeType":"StructuredDocumentation","src":"2661:240:19","text":"@notice Sets \"isConstructor\" flag to FALSE for the bytecode hash\n @param _bytecodeHash The bytecode hash for which it is needed to set the constructing flag\n @return The bytecode hash with \"isConstructor\" flag set to FALSE"},"id":4840,"implemented":true,"kind":"function","modifiers":[],"name":"constructedBytecodeHash","nameLocation":"2915:23:19","nodeType":"FunctionDefinition","parameters":{"id":4830,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4829,"mutability":"mutable","name":"_bytecodeHash","nameLocation":"2947:13:19","nodeType":"VariableDeclaration","scope":4840,"src":"2939:21:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4828,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2939:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2938:23:19"},"returnParameters":{"id":4833,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4832,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4840,"src":"2985:7:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4831,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2985:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2984:9:19"},"scope":4920,"src":"2906:166:19","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4918,"nodeType":"Block","src":"3618:766:19","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4854,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4852,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":4849,"name":"_bytecode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4843,"src":"3719:9:19","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":4850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3729:6:19","memberName":"length","nodeType":"MemberAccess","src":"3719:16:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"hexValue":"3332","id":4851,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3738:2:19","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"3719:21:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":4853,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3744:1:19","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3719:26:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"706f","id":4855,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3747:4:19","typeDescriptions":{"typeIdentifier":"t_stringliteral_3139610280e78e87350d483dc3a116242f7cb8d02f4e33775805df8e4fbb5c60","typeString":"literal_string \"po\""},"value":"po"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3139610280e78e87350d483dc3a116242f7cb8d02f4e33775805df8e4fbb5c60","typeString":"literal_string \"po\""}],"id":4848,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3711:7:19","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3711:41:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4857,"nodeType":"ExpressionStatement","src":"3711:41:19"},{"assignments":[4859],"declarations":[{"constant":false,"id":4859,"mutability":"mutable","name":"bytecodeLenInWords","nameLocation":"3771:18:19","nodeType":"VariableDeclaration","scope":4918,"src":"3763:26:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4858,"name":"uint256","nodeType":"ElementaryTypeName","src":"3763:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4864,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":4860,"name":"_bytecode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4843,"src":"3792:9:19","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":4861,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3802:6:19","memberName":"length","nodeType":"MemberAccess","src":"3792:16:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"3332","id":4862,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3811:2:19","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"3792:21:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3763:50:19"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4866,"name":"bytecodeLenInWords","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4859,"src":"3831:18:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"},"id":4869,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":4867,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3852:1:19","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3136","id":4868,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3857:2:19","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"3852:7:19","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}},"src":"3831:28:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"7070","id":4871,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3861:4:19","typeDescriptions":{"typeIdentifier":"t_stringliteral_031d893578c7508e824ef3fed9fe58eb1338724b0459ae1e532b7d98d7568c02","typeString":"literal_string \"pp\""},"value":"pp"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_031d893578c7508e824ef3fed9fe58eb1338724b0459ae1e532b7d98d7568c02","typeString":"literal_string \"pp\""}],"id":4865,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3823:7:19","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4872,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3823:43:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4873,"nodeType":"ExpressionStatement","src":"3823:43:19"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4875,"name":"bytecodeLenInWords","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4859,"src":"3932:18:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"hexValue":"32","id":4876,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3953:1:19","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"3932:22:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":4878,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3958:1:19","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3932:27:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"7072","id":4880,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3961:4:19","typeDescriptions":{"typeIdentifier":"t_stringliteral_41e173379aed3dc573a2a3b793e5f871059199655953f97fd71cc93606ca6b4a","typeString":"literal_string \"pr\""},"value":"pr"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_41e173379aed3dc573a2a3b793e5f871059199655953f97fd71cc93606ca6b4a","typeString":"literal_string \"pr\""}],"id":4874,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3924:7:19","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4881,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3924:42:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4882,"nodeType":"ExpressionStatement","src":"3924:42:19"},{"expression":{"id":4890,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4883,"name":"hashedBytecode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4846,"src":"4016:14:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":4889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":4886,"name":"_bytecode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4843,"src":"4063:9:19","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":4884,"name":"EfficientCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2170,"src":"4045:13:19","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EfficientCall_$2170_$","typeString":"type(library EfficientCall)"}},"id":4885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4059:3:19","memberName":"sha","nodeType":"MemberAccess","referencedDeclaration":1774,"src":"4045:17:19","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (bytes calldata) view returns (bytes32)"}},"id":4887,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4045:28:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"307830303030303030304646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646","id":4888,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4088:66:19","typeDescriptions":{"typeIdentifier":"t_rational_26959946667150639794667015087019630673637144422540572481103610249215_by_1","typeString":"int_const 2695...(60 digits omitted)...9215"},"value":"0x00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"},"src":"4045:109:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"4016:138:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":4891,"nodeType":"ExpressionStatement","src":"4016:138:19"},{"expression":{"id":4905,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4892,"name":"hashedBytecode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4846,"src":"4207:14:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":4903,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4893,"name":"hashedBytecode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4846,"src":"4225:14:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"|","rightExpression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_rational_452312848583266388373324160190187140051835877600158453279131187530910662656_by_1","typeString":"int_const 4523...(67 digits omitted)...2656"},"id":4900,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":4898,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4258:1:19","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323438","id":4899,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4263:3:19","typeDescriptions":{"typeIdentifier":"t_rational_248_by_1","typeString":"int_const 248"},"value":"248"},"src":"4258:8:19","typeDescriptions":{"typeIdentifier":"t_rational_452312848583266388373324160190187140051835877600158453279131187530910662656_by_1","typeString":"int_const 4523...(67 digits omitted)...2656"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_452312848583266388373324160190187140051835877600158453279131187530910662656_by_1","typeString":"int_const 4523...(67 digits omitted)...2656"}],"id":4897,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4250:7:19","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":4896,"name":"uint256","nodeType":"ElementaryTypeName","src":"4250:7:19","typeDescriptions":{}}},"id":4901,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4250:17:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4895,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4242:7:19","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":4894,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4242:7:19","typeDescriptions":{}}},"id":4902,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4242:26:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"4225:43:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":4904,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4224:45:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"4207:62:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":4906,"nodeType":"ExpressionStatement","src":"4207:62:19"},{"expression":{"id":4916,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4907,"name":"hashedBytecode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4846,"src":"4309:14:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":4915,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4908,"name":"hashedBytecode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4846,"src":"4326:14:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"|","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4911,"name":"bytecodeLenInWords","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4859,"src":"4351:18:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323234","id":4912,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4373:3:19","typeDescriptions":{"typeIdentifier":"t_rational_224_by_1","typeString":"int_const 224"},"value":"224"},"src":"4351:25:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4910,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4343:7:19","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":4909,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4343:7:19","typeDescriptions":{}}},"id":4914,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4343:34:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"4326:51:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"4309:68:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":4917,"nodeType":"ExpressionStatement","src":"4309:68:19"}]},"documentation":{"id":4841,"nodeType":"StructuredDocumentation","src":"3078:438:19","text":"@notice Validate the bytecode format and calculate its hash.\n @param _bytecode The bytecode to hash.\n @return hashedBytecode The 32-byte hash of the bytecode.\n Note: The function reverts the execution if the bytecode has non expected format:\n - Bytecode bytes length is not a multiple of 32\n - Bytecode bytes length is not less than 2^21 bytes (2^16 words)\n - Bytecode words length is not odd"},"id":4919,"implemented":true,"kind":"function","modifiers":[],"name":"hashL2Bytecode","nameLocation":"3530:14:19","nodeType":"FunctionDefinition","parameters":{"id":4844,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4843,"mutability":"mutable","name":"_bytecode","nameLocation":"3560:9:19","nodeType":"VariableDeclaration","scope":4919,"src":"3545:24:19","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":4842,"name":"bytes","nodeType":"ElementaryTypeName","src":"3545:5:19","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3544:26:19"},"returnParameters":{"id":4847,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4846,"mutability":"mutable","name":"hashedBytecode","nameLocation":"3602:14:19","nodeType":"VariableDeclaration","scope":4919,"src":"3594:22:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4845,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3594:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3593:24:19"},"scope":4920,"src":"3521:863:19","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":4921,"src":"177:4209:19","usedErrors":[]}],"src":"32:4355:19"},"id":19},"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/IERC20.sol":{"ast":{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/IERC20.sol","exportedSymbols":{"IERC20":[4998]},"id":4999,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":4922,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"106:23:20"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC20","contractDependencies":[],"contractKind":"interface","documentation":{"id":4923,"nodeType":"StructuredDocumentation","src":"131:70:20","text":" @dev Interface of the ERC20 standard as defined in the EIP."},"fullyImplemented":false,"id":4998,"linearizedBaseContracts":[4998],"name":"IERC20","nameLocation":"212:6:20","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":4924,"nodeType":"StructuredDocumentation","src":"225:158:20","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","id":4932,"name":"Transfer","nameLocation":"394:8:20","nodeType":"EventDefinition","parameters":{"id":4931,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4926,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"419:4:20","nodeType":"VariableDeclaration","scope":4932,"src":"403:20:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4925,"name":"address","nodeType":"ElementaryTypeName","src":"403:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4928,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"441:2:20","nodeType":"VariableDeclaration","scope":4932,"src":"425:18:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4927,"name":"address","nodeType":"ElementaryTypeName","src":"425:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4930,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"453:5:20","nodeType":"VariableDeclaration","scope":4932,"src":"445:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4929,"name":"uint256","nodeType":"ElementaryTypeName","src":"445:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"402:57:20"},"src":"388:72:20"},{"anonymous":false,"documentation":{"id":4933,"nodeType":"StructuredDocumentation","src":"466:148:20","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","id":4941,"name":"Approval","nameLocation":"625:8:20","nodeType":"EventDefinition","parameters":{"id":4940,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4935,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"650:5:20","nodeType":"VariableDeclaration","scope":4941,"src":"634:21:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4934,"name":"address","nodeType":"ElementaryTypeName","src":"634:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4937,"indexed":true,"mutability":"mutable","name":"spender","nameLocation":"673:7:20","nodeType":"VariableDeclaration","scope":4941,"src":"657:23:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4936,"name":"address","nodeType":"ElementaryTypeName","src":"657:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4939,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"690:5:20","nodeType":"VariableDeclaration","scope":4941,"src":"682:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4938,"name":"uint256","nodeType":"ElementaryTypeName","src":"682:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"633:63:20"},"src":"619:78:20"},{"documentation":{"id":4942,"nodeType":"StructuredDocumentation","src":"703:66:20","text":" @dev Returns the amount of tokens in existence."},"functionSelector":"18160ddd","id":4947,"implemented":false,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"783:11:20","nodeType":"FunctionDefinition","parameters":{"id":4943,"nodeType":"ParameterList","parameters":[],"src":"794:2:20"},"returnParameters":{"id":4946,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4945,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4947,"src":"820:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4944,"name":"uint256","nodeType":"ElementaryTypeName","src":"820:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"819:9:20"},"scope":4998,"src":"774:55:20","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":4948,"nodeType":"StructuredDocumentation","src":"835:72:20","text":" @dev Returns the amount of tokens owned by `account`."},"functionSelector":"70a08231","id":4955,"implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"921:9:20","nodeType":"FunctionDefinition","parameters":{"id":4951,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4950,"mutability":"mutable","name":"account","nameLocation":"939:7:20","nodeType":"VariableDeclaration","scope":4955,"src":"931:15:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4949,"name":"address","nodeType":"ElementaryTypeName","src":"931:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"930:17:20"},"returnParameters":{"id":4954,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4953,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4955,"src":"971:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4952,"name":"uint256","nodeType":"ElementaryTypeName","src":"971:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"970:9:20"},"scope":4998,"src":"912:68:20","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":4956,"nodeType":"StructuredDocumentation","src":"986:202:20","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","id":4965,"implemented":false,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"1202:8:20","nodeType":"FunctionDefinition","parameters":{"id":4961,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4958,"mutability":"mutable","name":"to","nameLocation":"1219:2:20","nodeType":"VariableDeclaration","scope":4965,"src":"1211:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4957,"name":"address","nodeType":"ElementaryTypeName","src":"1211:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4960,"mutability":"mutable","name":"amount","nameLocation":"1231:6:20","nodeType":"VariableDeclaration","scope":4965,"src":"1223:14:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4959,"name":"uint256","nodeType":"ElementaryTypeName","src":"1223:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1210:28:20"},"returnParameters":{"id":4964,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4963,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4965,"src":"1257:4:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4962,"name":"bool","nodeType":"ElementaryTypeName","src":"1257:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1256:6:20"},"scope":4998,"src":"1193:70:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":4966,"nodeType":"StructuredDocumentation","src":"1269:264:20","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","id":4975,"implemented":false,"kind":"function","modifiers":[],"name":"allowance","nameLocation":"1547:9:20","nodeType":"FunctionDefinition","parameters":{"id":4971,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4968,"mutability":"mutable","name":"owner","nameLocation":"1565:5:20","nodeType":"VariableDeclaration","scope":4975,"src":"1557:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4967,"name":"address","nodeType":"ElementaryTypeName","src":"1557:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4970,"mutability":"mutable","name":"spender","nameLocation":"1580:7:20","nodeType":"VariableDeclaration","scope":4975,"src":"1572:15:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4969,"name":"address","nodeType":"ElementaryTypeName","src":"1572:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1556:32:20"},"returnParameters":{"id":4974,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4973,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4975,"src":"1612:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4972,"name":"uint256","nodeType":"ElementaryTypeName","src":"1612:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1611:9:20"},"scope":4998,"src":"1538:83:20","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":4976,"nodeType":"StructuredDocumentation","src":"1627:642:20","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","id":4985,"implemented":false,"kind":"function","modifiers":[],"name":"approve","nameLocation":"2283:7:20","nodeType":"FunctionDefinition","parameters":{"id":4981,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4978,"mutability":"mutable","name":"spender","nameLocation":"2299:7:20","nodeType":"VariableDeclaration","scope":4985,"src":"2291:15:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4977,"name":"address","nodeType":"ElementaryTypeName","src":"2291:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4980,"mutability":"mutable","name":"amount","nameLocation":"2316:6:20","nodeType":"VariableDeclaration","scope":4985,"src":"2308:14:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4979,"name":"uint256","nodeType":"ElementaryTypeName","src":"2308:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2290:33:20"},"returnParameters":{"id":4984,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4983,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4985,"src":"2342:4:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4982,"name":"bool","nodeType":"ElementaryTypeName","src":"2342:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2341:6:20"},"scope":4998,"src":"2274:74:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":4986,"nodeType":"StructuredDocumentation","src":"2354:287:20","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","id":4997,"implemented":false,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"2655:12:20","nodeType":"FunctionDefinition","parameters":{"id":4993,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4988,"mutability":"mutable","name":"from","nameLocation":"2685:4:20","nodeType":"VariableDeclaration","scope":4997,"src":"2677:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4987,"name":"address","nodeType":"ElementaryTypeName","src":"2677:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4990,"mutability":"mutable","name":"to","nameLocation":"2707:2:20","nodeType":"VariableDeclaration","scope":4997,"src":"2699:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4989,"name":"address","nodeType":"ElementaryTypeName","src":"2699:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4992,"mutability":"mutable","name":"amount","nameLocation":"2727:6:20","nodeType":"VariableDeclaration","scope":4997,"src":"2719:14:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4991,"name":"uint256","nodeType":"ElementaryTypeName","src":"2719:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2667:72:20"},"returnParameters":{"id":4996,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4995,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4997,"src":"2758:4:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4994,"name":"bool","nodeType":"ElementaryTypeName","src":"2758:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2757:6:20"},"scope":4998,"src":"2646:118:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":4999,"src":"202:2564:20","usedErrors":[]}],"src":"106:2661:20"},"id":20},"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/extensions/IERC20Permit.sol":{"ast":{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/extensions/IERC20Permit.sol","exportedSymbols":{"IERC20Permit":[5034]},"id":5035,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":5000,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"108:23:21"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC20Permit","contractDependencies":[],"contractKind":"interface","documentation":{"id":5001,"nodeType":"StructuredDocumentation","src":"133:480:21","text":" @dev Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in\n https://eips.ethereum.org/EIPS/eip-2612[EIP-2612].\n Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by\n presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't\n need to send a transaction, and thus is not required to hold Ether at all."},"fullyImplemented":false,"id":5034,"linearizedBaseContracts":[5034],"name":"IERC20Permit","nameLocation":"624:12:21","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":5002,"nodeType":"StructuredDocumentation","src":"643:792:21","text":" @dev Sets `value` as the allowance of `spender` over ``owner``'s tokens,\n given ``owner``'s signed approval.\n IMPORTANT: The same issues {IERC20-approve} has related to transaction\n ordering also apply here.\n Emits an {Approval} event.\n Requirements:\n - `spender` cannot be the zero address.\n - `deadline` must be a timestamp in the future.\n - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner`\n over the EIP712-formatted function arguments.\n - the signature must use ``owner``'s current nonce (see {nonces}).\n For more information on the signature format, see the\n https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP\n section]."},"functionSelector":"d505accf","id":5019,"implemented":false,"kind":"function","modifiers":[],"name":"permit","nameLocation":"1449:6:21","nodeType":"FunctionDefinition","parameters":{"id":5017,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5004,"mutability":"mutable","name":"owner","nameLocation":"1473:5:21","nodeType":"VariableDeclaration","scope":5019,"src":"1465:13:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5003,"name":"address","nodeType":"ElementaryTypeName","src":"1465:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5006,"mutability":"mutable","name":"spender","nameLocation":"1496:7:21","nodeType":"VariableDeclaration","scope":5019,"src":"1488:15:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5005,"name":"address","nodeType":"ElementaryTypeName","src":"1488:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5008,"mutability":"mutable","name":"value","nameLocation":"1521:5:21","nodeType":"VariableDeclaration","scope":5019,"src":"1513:13:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5007,"name":"uint256","nodeType":"ElementaryTypeName","src":"1513:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5010,"mutability":"mutable","name":"deadline","nameLocation":"1544:8:21","nodeType":"VariableDeclaration","scope":5019,"src":"1536:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5009,"name":"uint256","nodeType":"ElementaryTypeName","src":"1536:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5012,"mutability":"mutable","name":"v","nameLocation":"1568:1:21","nodeType":"VariableDeclaration","scope":5019,"src":"1562:7:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":5011,"name":"uint8","nodeType":"ElementaryTypeName","src":"1562:5:21","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":5014,"mutability":"mutable","name":"r","nameLocation":"1587:1:21","nodeType":"VariableDeclaration","scope":5019,"src":"1579:9:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5013,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1579:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5016,"mutability":"mutable","name":"s","nameLocation":"1606:1:21","nodeType":"VariableDeclaration","scope":5019,"src":"1598:9:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5015,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1598:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1455:158:21"},"returnParameters":{"id":5018,"nodeType":"ParameterList","parameters":[],"src":"1622:0:21"},"scope":5034,"src":"1440:183:21","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":5020,"nodeType":"StructuredDocumentation","src":"1629:294:21","text":" @dev Returns the current nonce for `owner`. This value must be\n included whenever a signature is generated for {permit}.\n Every successful call to {permit} increases ``owner``'s nonce by one. This\n prevents a signature from being used multiple times."},"functionSelector":"7ecebe00","id":5027,"implemented":false,"kind":"function","modifiers":[],"name":"nonces","nameLocation":"1937:6:21","nodeType":"FunctionDefinition","parameters":{"id":5023,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5022,"mutability":"mutable","name":"owner","nameLocation":"1952:5:21","nodeType":"VariableDeclaration","scope":5027,"src":"1944:13:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5021,"name":"address","nodeType":"ElementaryTypeName","src":"1944:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1943:15:21"},"returnParameters":{"id":5026,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5025,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5027,"src":"1982:7:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5024,"name":"uint256","nodeType":"ElementaryTypeName","src":"1982:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1981:9:21"},"scope":5034,"src":"1928:63:21","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":5028,"nodeType":"StructuredDocumentation","src":"1997:128:21","text":" @dev Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}."},"functionSelector":"3644e515","id":5033,"implemented":false,"kind":"function","modifiers":[],"name":"DOMAIN_SEPARATOR","nameLocation":"2192:16:21","nodeType":"FunctionDefinition","parameters":{"id":5029,"nodeType":"ParameterList","parameters":[],"src":"2208:2:21"},"returnParameters":{"id":5032,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5031,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5033,"src":"2234:7:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5030,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2234:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2233:9:21"},"scope":5034,"src":"2183:60:21","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":5035,"src":"614:1631:21","usedErrors":[]}],"src":"108:2138:21"},"id":21},"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/utils/SafeERC20.sol":{"ast":{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/utils/SafeERC20.sol","exportedSymbols":{"Address":[5645],"IERC20":[4998],"IERC20Permit":[5034],"SafeERC20":[5315]},"id":5316,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":5036,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"115:23:22"},{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/IERC20.sol","file":"../IERC20.sol","id":5037,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5316,"sourceUnit":4999,"src":"140:23:22","symbolAliases":[],"unitAlias":""},{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/extensions/IERC20Permit.sol","file":"../extensions/IERC20Permit.sol","id":5038,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5316,"sourceUnit":5035,"src":"164:40:22","symbolAliases":[],"unitAlias":""},{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/utils/Address.sol","file":"../../../utils/Address.sol","id":5039,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5316,"sourceUnit":5646,"src":"205:36:22","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"SafeERC20","contractDependencies":[],"contractKind":"library","documentation":{"id":5040,"nodeType":"StructuredDocumentation","src":"243:457:22","text":" @title SafeERC20\n @dev Wrappers around ERC20 operations that throw on failure (when the token\n contract returns false). Tokens that return no value (and instead revert or\n throw on failure) are also supported, non-reverting calls are assumed to be\n successful.\n To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,\n which allows you to call the safe operations as `token.safeTransfer(...)`, etc."},"fullyImplemented":true,"id":5315,"linearizedBaseContracts":[5315],"name":"SafeERC20","nameLocation":"709:9:22","nodeType":"ContractDefinition","nodes":[{"global":false,"id":5043,"libraryName":{"id":5041,"name":"Address","nameLocations":["731:7:22"],"nodeType":"IdentifierPath","referencedDeclaration":5645,"src":"731:7:22"},"nodeType":"UsingForDirective","src":"725:26:22","typeName":{"id":5042,"name":"address","nodeType":"ElementaryTypeName","src":"743:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"body":{"id":5065,"nodeType":"Block","src":"859:137:22","statements":[{"expression":{"arguments":[{"id":5054,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5046,"src":"902:5:22","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4998","typeString":"contract IERC20"}},{"arguments":[{"expression":{"expression":{"id":5057,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5046,"src":"944:5:22","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4998","typeString":"contract IERC20"}},"id":5058,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"950:8:22","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":4965,"src":"944:14:22","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":5059,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"959:8:22","memberName":"selector","nodeType":"MemberAccess","src":"944:23:22","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":5060,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5048,"src":"969:2:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5061,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5050,"src":"973:5:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5055,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"921:3:22","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5056,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"925:18:22","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"921:22:22","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":5062,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"921:58:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$4998","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5053,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5314,"src":"869:19:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$4998_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":5063,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"869:120:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5064,"nodeType":"ExpressionStatement","src":"869:120:22"}]},"id":5066,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransfer","nameLocation":"766:12:22","nodeType":"FunctionDefinition","parameters":{"id":5051,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5046,"mutability":"mutable","name":"token","nameLocation":"795:5:22","nodeType":"VariableDeclaration","scope":5066,"src":"788:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4998","typeString":"contract IERC20"},"typeName":{"id":5045,"nodeType":"UserDefinedTypeName","pathNode":{"id":5044,"name":"IERC20","nameLocations":["788:6:22"],"nodeType":"IdentifierPath","referencedDeclaration":4998,"src":"788:6:22"},"referencedDeclaration":4998,"src":"788:6:22","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4998","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":5048,"mutability":"mutable","name":"to","nameLocation":"818:2:22","nodeType":"VariableDeclaration","scope":5066,"src":"810:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5047,"name":"address","nodeType":"ElementaryTypeName","src":"810:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5050,"mutability":"mutable","name":"value","nameLocation":"838:5:22","nodeType":"VariableDeclaration","scope":5066,"src":"830:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5049,"name":"uint256","nodeType":"ElementaryTypeName","src":"830:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"778:71:22"},"returnParameters":{"id":5052,"nodeType":"ParameterList","parameters":[],"src":"859:0:22"},"scope":5315,"src":"757:239:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":5091,"nodeType":"Block","src":"1130:147:22","statements":[{"expression":{"arguments":[{"id":5079,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5069,"src":"1173:5:22","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4998","typeString":"contract IERC20"}},{"arguments":[{"expression":{"expression":{"id":5082,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5069,"src":"1215:5:22","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4998","typeString":"contract IERC20"}},"id":5083,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1221:12:22","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":4997,"src":"1215:18:22","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":5084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1234:8:22","memberName":"selector","nodeType":"MemberAccess","src":"1215:27:22","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":5085,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5071,"src":"1244:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5086,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5073,"src":"1250:2:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5087,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5075,"src":"1254:5:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5080,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1192:3:22","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5081,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1196:18:22","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"1192:22:22","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":5088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1192:68:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$4998","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5078,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5314,"src":"1140:19:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$4998_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":5089,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1140:130:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5090,"nodeType":"ExpressionStatement","src":"1140:130:22"}]},"id":5092,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"1011:16:22","nodeType":"FunctionDefinition","parameters":{"id":5076,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5069,"mutability":"mutable","name":"token","nameLocation":"1044:5:22","nodeType":"VariableDeclaration","scope":5092,"src":"1037:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4998","typeString":"contract IERC20"},"typeName":{"id":5068,"nodeType":"UserDefinedTypeName","pathNode":{"id":5067,"name":"IERC20","nameLocations":["1037:6:22"],"nodeType":"IdentifierPath","referencedDeclaration":4998,"src":"1037:6:22"},"referencedDeclaration":4998,"src":"1037:6:22","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4998","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":5071,"mutability":"mutable","name":"from","nameLocation":"1067:4:22","nodeType":"VariableDeclaration","scope":5092,"src":"1059:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5070,"name":"address","nodeType":"ElementaryTypeName","src":"1059:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5073,"mutability":"mutable","name":"to","nameLocation":"1089:2:22","nodeType":"VariableDeclaration","scope":5092,"src":"1081:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5072,"name":"address","nodeType":"ElementaryTypeName","src":"1081:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5075,"mutability":"mutable","name":"value","nameLocation":"1109:5:22","nodeType":"VariableDeclaration","scope":5092,"src":"1101:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5074,"name":"uint256","nodeType":"ElementaryTypeName","src":"1101:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1027:93:22"},"returnParameters":{"id":5077,"nodeType":"ParameterList","parameters":[],"src":"1130:0:22"},"scope":5315,"src":"1002:275:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":5135,"nodeType":"Block","src":"1643:531:22","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":5119,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5106,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5104,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5100,"src":"1892:5:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":5105,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1901:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1892:10:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":5107,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1891:12:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":5112,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1932:4:22","typeDescriptions":{"typeIdentifier":"t_contract$_SafeERC20_$5315","typeString":"library SafeERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SafeERC20_$5315","typeString":"library SafeERC20"}],"id":5111,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1924:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5110,"name":"address","nodeType":"ElementaryTypeName","src":"1924:7:22","typeDescriptions":{}}},"id":5113,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1924:13:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5114,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5098,"src":"1939:7:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5108,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5096,"src":"1908:5:22","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4998","typeString":"contract IERC20"}},"id":5109,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1914:9:22","memberName":"allowance","nodeType":"MemberAccess","referencedDeclaration":4975,"src":"1908:15:22","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":5115,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1908:39:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":5116,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1951:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1908:44:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":5118,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1907:46:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1891:62:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f20746f206e6f6e2d7a65726f20616c6c6f77616e6365","id":5120,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1967:56:22","typeDescriptions":{"typeIdentifier":"t_stringliteral_ef945ddb1bfdc0da870feb4560d868b047642b4ac7f2fb7f8b7c51cb4a411e25","typeString":"literal_string \"SafeERC20: approve from non-zero to non-zero allowance\""},"value":"SafeERC20: approve from non-zero to non-zero allowance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ef945ddb1bfdc0da870feb4560d868b047642b4ac7f2fb7f8b7c51cb4a411e25","typeString":"literal_string \"SafeERC20: approve from non-zero to non-zero allowance\""}],"id":5103,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1870:7:22","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1870:163:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5122,"nodeType":"ExpressionStatement","src":"1870:163:22"},{"expression":{"arguments":[{"id":5124,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5096,"src":"2076:5:22","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4998","typeString":"contract IERC20"}},{"arguments":[{"expression":{"expression":{"id":5127,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5096,"src":"2118:5:22","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4998","typeString":"contract IERC20"}},"id":5128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2124:7:22","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":4985,"src":"2118:13:22","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":5129,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2132:8:22","memberName":"selector","nodeType":"MemberAccess","src":"2118:22:22","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":5130,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5098,"src":"2142:7:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5131,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5100,"src":"2151:5:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5125,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2095:3:22","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5126,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2099:18:22","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"2095:22:22","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":5132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2095:62:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$4998","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5123,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5314,"src":"2043:19:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$4998_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":5133,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2043:124:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5134,"nodeType":"ExpressionStatement","src":"2043:124:22"}]},"documentation":{"id":5093,"nodeType":"StructuredDocumentation","src":"1283:249:22","text":" @dev Deprecated. This function has issues similar to the ones found in\n {IERC20-approve}, and its usage is discouraged.\n Whenever possible, use {safeIncreaseAllowance} and\n {safeDecreaseAllowance} instead."},"id":5136,"implemented":true,"kind":"function","modifiers":[],"name":"safeApprove","nameLocation":"1546:11:22","nodeType":"FunctionDefinition","parameters":{"id":5101,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5096,"mutability":"mutable","name":"token","nameLocation":"1574:5:22","nodeType":"VariableDeclaration","scope":5136,"src":"1567:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4998","typeString":"contract IERC20"},"typeName":{"id":5095,"nodeType":"UserDefinedTypeName","pathNode":{"id":5094,"name":"IERC20","nameLocations":["1567:6:22"],"nodeType":"IdentifierPath","referencedDeclaration":4998,"src":"1567:6:22"},"referencedDeclaration":4998,"src":"1567:6:22","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4998","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":5098,"mutability":"mutable","name":"spender","nameLocation":"1597:7:22","nodeType":"VariableDeclaration","scope":5136,"src":"1589:15:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5097,"name":"address","nodeType":"ElementaryTypeName","src":"1589:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5100,"mutability":"mutable","name":"value","nameLocation":"1622:5:22","nodeType":"VariableDeclaration","scope":5136,"src":"1614:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5099,"name":"uint256","nodeType":"ElementaryTypeName","src":"1614:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1557:76:22"},"returnParameters":{"id":5102,"nodeType":"ParameterList","parameters":[],"src":"1643:0:22"},"scope":5315,"src":"1537:637:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":5171,"nodeType":"Block","src":"2296:290:22","statements":[{"assignments":[5147],"declarations":[{"constant":false,"id":5147,"mutability":"mutable","name":"newAllowance","nameLocation":"2314:12:22","nodeType":"VariableDeclaration","scope":5171,"src":"2306:20:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5146,"name":"uint256","nodeType":"ElementaryTypeName","src":"2306:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5158,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":5152,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2353:4:22","typeDescriptions":{"typeIdentifier":"t_contract$_SafeERC20_$5315","typeString":"library SafeERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SafeERC20_$5315","typeString":"library SafeERC20"}],"id":5151,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2345:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5150,"name":"address","nodeType":"ElementaryTypeName","src":"2345:7:22","typeDescriptions":{}}},"id":5153,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2345:13:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5154,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5141,"src":"2360:7:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5148,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5139,"src":"2329:5:22","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4998","typeString":"contract IERC20"}},"id":5149,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2335:9:22","memberName":"allowance","nodeType":"MemberAccess","referencedDeclaration":4975,"src":"2329:15:22","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":5155,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2329:39:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":5156,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5143,"src":"2371:5:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2329:47:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2306:70:22"},{"expression":{"arguments":[{"id":5160,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5139,"src":"2419:5:22","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4998","typeString":"contract IERC20"}},{"arguments":[{"expression":{"expression":{"id":5163,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5139,"src":"2478:5:22","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4998","typeString":"contract IERC20"}},"id":5164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2484:7:22","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":4985,"src":"2478:13:22","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":5165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2492:8:22","memberName":"selector","nodeType":"MemberAccess","src":"2478:22:22","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":5166,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5141,"src":"2518:7:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5167,"name":"newAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5147,"src":"2543:12:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5161,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2438:3:22","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5162,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2442:18:22","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"2438:22:22","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":5168,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2438:131:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$4998","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5159,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5314,"src":"2386:19:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$4998_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":5169,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2386:193:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5170,"nodeType":"ExpressionStatement","src":"2386:193:22"}]},"id":5172,"implemented":true,"kind":"function","modifiers":[],"name":"safeIncreaseAllowance","nameLocation":"2189:21:22","nodeType":"FunctionDefinition","parameters":{"id":5144,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5139,"mutability":"mutable","name":"token","nameLocation":"2227:5:22","nodeType":"VariableDeclaration","scope":5172,"src":"2220:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4998","typeString":"contract IERC20"},"typeName":{"id":5138,"nodeType":"UserDefinedTypeName","pathNode":{"id":5137,"name":"IERC20","nameLocations":["2220:6:22"],"nodeType":"IdentifierPath","referencedDeclaration":4998,"src":"2220:6:22"},"referencedDeclaration":4998,"src":"2220:6:22","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4998","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":5141,"mutability":"mutable","name":"spender","nameLocation":"2250:7:22","nodeType":"VariableDeclaration","scope":5172,"src":"2242:15:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5140,"name":"address","nodeType":"ElementaryTypeName","src":"2242:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5143,"mutability":"mutable","name":"value","nameLocation":"2275:5:22","nodeType":"VariableDeclaration","scope":5172,"src":"2267:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5142,"name":"uint256","nodeType":"ElementaryTypeName","src":"2267:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2210:76:22"},"returnParameters":{"id":5145,"nodeType":"ParameterList","parameters":[],"src":"2296:0:22"},"scope":5315,"src":"2180:406:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":5219,"nodeType":"Block","src":"2708:540:22","statements":[{"id":5218,"nodeType":"UncheckedBlock","src":"2718:524:22","statements":[{"assignments":[5183],"declarations":[{"constant":false,"id":5183,"mutability":"mutable","name":"oldAllowance","nameLocation":"2750:12:22","nodeType":"VariableDeclaration","scope":5218,"src":"2742:20:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5182,"name":"uint256","nodeType":"ElementaryTypeName","src":"2742:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5192,"initialValue":{"arguments":[{"arguments":[{"id":5188,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2789:4:22","typeDescriptions":{"typeIdentifier":"t_contract$_SafeERC20_$5315","typeString":"library SafeERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SafeERC20_$5315","typeString":"library SafeERC20"}],"id":5187,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2781:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5186,"name":"address","nodeType":"ElementaryTypeName","src":"2781:7:22","typeDescriptions":{}}},"id":5189,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2781:13:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5190,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5177,"src":"2796:7:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5184,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5175,"src":"2765:5:22","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4998","typeString":"contract IERC20"}},"id":5185,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2771:9:22","memberName":"allowance","nodeType":"MemberAccess","referencedDeclaration":4975,"src":"2765:15:22","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":5191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2765:39:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2742:62:22"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5194,"name":"oldAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5183,"src":"2843:12:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":5195,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5179,"src":"2859:5:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2843:21:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5361666545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f","id":5197,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2882:43:22","typeDescriptions":{"typeIdentifier":"t_stringliteral_2c3af60974a758b7e72e108c9bf0943ecc9e4f2e8af4695da5f52fbf57a63d3a","typeString":"literal_string \"SafeERC20: decreased allowance below zero\""},"value":"SafeERC20: decreased allowance below zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2c3af60974a758b7e72e108c9bf0943ecc9e4f2e8af4695da5f52fbf57a63d3a","typeString":"literal_string \"SafeERC20: decreased allowance below zero\""}],"id":5193,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2818:7:22","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5198,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2818:121:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5199,"nodeType":"ExpressionStatement","src":"2818:121:22"},{"assignments":[5201],"declarations":[{"constant":false,"id":5201,"mutability":"mutable","name":"newAllowance","nameLocation":"2961:12:22","nodeType":"VariableDeclaration","scope":5218,"src":"2953:20:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5200,"name":"uint256","nodeType":"ElementaryTypeName","src":"2953:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5205,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5202,"name":"oldAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5183,"src":"2976:12:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":5203,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5179,"src":"2991:5:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2976:20:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2953:43:22"},{"expression":{"arguments":[{"id":5207,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5175,"src":"3047:5:22","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4998","typeString":"contract IERC20"}},{"arguments":[{"expression":{"expression":{"id":5210,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5175,"src":"3114:5:22","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4998","typeString":"contract IERC20"}},"id":5211,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3120:7:22","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":4985,"src":"3114:13:22","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":5212,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3128:8:22","memberName":"selector","nodeType":"MemberAccess","src":"3114:22:22","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":5213,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5177,"src":"3158:7:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5214,"name":"newAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5201,"src":"3187:12:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5208,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3070:3:22","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5209,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3074:18:22","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"3070:22:22","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":5215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3070:147:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$4998","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5206,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5314,"src":"3010:19:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$4998_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":5216,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3010:221:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5217,"nodeType":"ExpressionStatement","src":"3010:221:22"}]}]},"id":5220,"implemented":true,"kind":"function","modifiers":[],"name":"safeDecreaseAllowance","nameLocation":"2601:21:22","nodeType":"FunctionDefinition","parameters":{"id":5180,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5175,"mutability":"mutable","name":"token","nameLocation":"2639:5:22","nodeType":"VariableDeclaration","scope":5220,"src":"2632:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4998","typeString":"contract IERC20"},"typeName":{"id":5174,"nodeType":"UserDefinedTypeName","pathNode":{"id":5173,"name":"IERC20","nameLocations":["2632:6:22"],"nodeType":"IdentifierPath","referencedDeclaration":4998,"src":"2632:6:22"},"referencedDeclaration":4998,"src":"2632:6:22","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4998","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":5177,"mutability":"mutable","name":"spender","nameLocation":"2662:7:22","nodeType":"VariableDeclaration","scope":5220,"src":"2654:15:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5176,"name":"address","nodeType":"ElementaryTypeName","src":"2654:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5179,"mutability":"mutable","name":"value","nameLocation":"2687:5:22","nodeType":"VariableDeclaration","scope":5220,"src":"2679:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5178,"name":"uint256","nodeType":"ElementaryTypeName","src":"2679:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2622:76:22"},"returnParameters":{"id":5181,"nodeType":"ParameterList","parameters":[],"src":"2708:0:22"},"scope":5315,"src":"2592:656:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":5275,"nodeType":"Block","src":"3469:291:22","statements":[{"assignments":[5241],"declarations":[{"constant":false,"id":5241,"mutability":"mutable","name":"nonceBefore","nameLocation":"3487:11:22","nodeType":"VariableDeclaration","scope":5275,"src":"3479:19:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5240,"name":"uint256","nodeType":"ElementaryTypeName","src":"3479:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5246,"initialValue":{"arguments":[{"id":5244,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5225,"src":"3514:5:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5242,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5223,"src":"3501:5:22","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Permit_$5034","typeString":"contract IERC20Permit"}},"id":5243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3507:6:22","memberName":"nonces","nodeType":"MemberAccess","referencedDeclaration":5027,"src":"3501:12:22","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":5245,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3501:19:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3479:41:22"},{"expression":{"arguments":[{"id":5250,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5225,"src":"3543:5:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5251,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5227,"src":"3550:7:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5252,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5229,"src":"3559:5:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5253,"name":"deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5231,"src":"3566:8:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5254,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5233,"src":"3576:1:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":5255,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5235,"src":"3579:1:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":5256,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5237,"src":"3582:1:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":5247,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5223,"src":"3530:5:22","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Permit_$5034","typeString":"contract IERC20Permit"}},"id":5249,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3536:6:22","memberName":"permit","nodeType":"MemberAccess","referencedDeclaration":5019,"src":"3530:12:22","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (address,address,uint256,uint256,uint8,bytes32,bytes32) external"}},"id":5257,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3530:54:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5258,"nodeType":"ExpressionStatement","src":"3530:54:22"},{"assignments":[5260],"declarations":[{"constant":false,"id":5260,"mutability":"mutable","name":"nonceAfter","nameLocation":"3602:10:22","nodeType":"VariableDeclaration","scope":5275,"src":"3594:18:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5259,"name":"uint256","nodeType":"ElementaryTypeName","src":"3594:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5265,"initialValue":{"arguments":[{"id":5263,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5225,"src":"3628:5:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5261,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5223,"src":"3615:5:22","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Permit_$5034","typeString":"contract IERC20Permit"}},"id":5262,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3621:6:22","memberName":"nonces","nodeType":"MemberAccess","referencedDeclaration":5027,"src":"3615:12:22","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":5264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3615:19:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3594:40:22"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5271,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5267,"name":"nonceAfter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5260,"src":"3665:10:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5268,"name":"nonceBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5241,"src":"3679:11:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":5269,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3693:1:22","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3679:15:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3665:29:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5361666545524332303a207065726d697420646964206e6f742073756363656564","id":5272,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3708:35:22","typeDescriptions":{"typeIdentifier":"t_stringliteral_cde8e927812a7a656f8f04e89ac4f4113d47940dd2125d11fcb8e0bd36bfc59d","typeString":"literal_string \"SafeERC20: permit did not succeed\""},"value":"SafeERC20: permit did not succeed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cde8e927812a7a656f8f04e89ac4f4113d47940dd2125d11fcb8e0bd36bfc59d","typeString":"literal_string \"SafeERC20: permit did not succeed\""}],"id":5266,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3644:7:22","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5273,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3644:109:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5274,"nodeType":"ExpressionStatement","src":"3644:109:22"}]},"id":5276,"implemented":true,"kind":"function","modifiers":[],"name":"safePermit","nameLocation":"3263:10:22","nodeType":"FunctionDefinition","parameters":{"id":5238,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5223,"mutability":"mutable","name":"token","nameLocation":"3296:5:22","nodeType":"VariableDeclaration","scope":5276,"src":"3283:18:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Permit_$5034","typeString":"contract IERC20Permit"},"typeName":{"id":5222,"nodeType":"UserDefinedTypeName","pathNode":{"id":5221,"name":"IERC20Permit","nameLocations":["3283:12:22"],"nodeType":"IdentifierPath","referencedDeclaration":5034,"src":"3283:12:22"},"referencedDeclaration":5034,"src":"3283:12:22","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Permit_$5034","typeString":"contract IERC20Permit"}},"visibility":"internal"},{"constant":false,"id":5225,"mutability":"mutable","name":"owner","nameLocation":"3319:5:22","nodeType":"VariableDeclaration","scope":5276,"src":"3311:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5224,"name":"address","nodeType":"ElementaryTypeName","src":"3311:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5227,"mutability":"mutable","name":"spender","nameLocation":"3342:7:22","nodeType":"VariableDeclaration","scope":5276,"src":"3334:15:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5226,"name":"address","nodeType":"ElementaryTypeName","src":"3334:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5229,"mutability":"mutable","name":"value","nameLocation":"3367:5:22","nodeType":"VariableDeclaration","scope":5276,"src":"3359:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5228,"name":"uint256","nodeType":"ElementaryTypeName","src":"3359:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5231,"mutability":"mutable","name":"deadline","nameLocation":"3390:8:22","nodeType":"VariableDeclaration","scope":5276,"src":"3382:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5230,"name":"uint256","nodeType":"ElementaryTypeName","src":"3382:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5233,"mutability":"mutable","name":"v","nameLocation":"3414:1:22","nodeType":"VariableDeclaration","scope":5276,"src":"3408:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":5232,"name":"uint8","nodeType":"ElementaryTypeName","src":"3408:5:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":5235,"mutability":"mutable","name":"r","nameLocation":"3433:1:22","nodeType":"VariableDeclaration","scope":5276,"src":"3425:9:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5234,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3425:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5237,"mutability":"mutable","name":"s","nameLocation":"3452:1:22","nodeType":"VariableDeclaration","scope":5276,"src":"3444:9:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5236,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3444:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3273:186:22"},"returnParameters":{"id":5239,"nodeType":"ParameterList","parameters":[],"src":"3469:0:22"},"scope":5315,"src":"3254:506:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":5313,"nodeType":"Block","src":"4213:716:22","statements":[{"assignments":[5286],"declarations":[{"constant":false,"id":5286,"mutability":"mutable","name":"returndata","nameLocation":"4575:10:22","nodeType":"VariableDeclaration","scope":5313,"src":"4562:23:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5285,"name":"bytes","nodeType":"ElementaryTypeName","src":"4562:5:22","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":5295,"initialValue":{"arguments":[{"id":5292,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5282,"src":"4629:4:22","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564","id":5293,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4647:34:22","typeDescriptions":{"typeIdentifier":"t_stringliteral_47fb62c2c272651d2f0f342bac006756b8ba07f21cc5cb87e0fbb9d50c0c585b","typeString":"literal_string \"SafeERC20: low-level call failed\""},"value":"SafeERC20: low-level call failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_stringliteral_47fb62c2c272651d2f0f342bac006756b8ba07f21cc5cb87e0fbb9d50c0c585b","typeString":"literal_string \"SafeERC20: low-level call failed\""}],"expression":{"arguments":[{"id":5289,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5280,"src":"4596:5:22","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4998","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$4998","typeString":"contract IERC20"}],"id":5288,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4588:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5287,"name":"address","nodeType":"ElementaryTypeName","src":"4588:7:22","typeDescriptions":{}}},"id":5290,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4588:14:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5291,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4603:12:22","memberName":"functionCall","nodeType":"MemberAccess","referencedDeclaration":5405,"src":"4588:27:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$attached_to$_t_address_$","typeString":"function (address,bytes memory,string memory) returns (bytes memory)"}},"id":5294,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4588:103:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"4562:129:22"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5299,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":5296,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5286,"src":"4705:10:22","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":5297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4716:6:22","memberName":"length","nodeType":"MemberAccess","src":"4705:17:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":5298,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4725:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4705:21:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5312,"nodeType":"IfStatement","src":"4701:222:22","trueBody":{"id":5311,"nodeType":"Block","src":"4728:195:22","statements":[{"expression":{"arguments":[{"arguments":[{"id":5303,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5286,"src":"4817:10:22","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":5305,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4830:4:22","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"},"typeName":{"id":5304,"name":"bool","nodeType":"ElementaryTypeName","src":"4830:4:22","typeDescriptions":{}}}],"id":5306,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"4829:6:22","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":5301,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4806:3:22","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5302,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4810:6:22","memberName":"decode","nodeType":"MemberAccess","src":"4806:10:22","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":5307,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4806:30:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564","id":5308,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4854:44:22","typeDescriptions":{"typeIdentifier":"t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd","typeString":"literal_string \"SafeERC20: ERC20 operation did not succeed\""},"value":"SafeERC20: ERC20 operation did not succeed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd","typeString":"literal_string \"SafeERC20: ERC20 operation did not succeed\""}],"id":5300,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4781:7:22","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5309,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4781:131:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5310,"nodeType":"ExpressionStatement","src":"4781:131:22"}]}}]},"documentation":{"id":5277,"nodeType":"StructuredDocumentation","src":"3766:372:22","text":" @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\n on the return value: the return value is optional (but if data is returned, it must not be false).\n @param token The token targeted by the call.\n @param data The call data (encoded using abi.encode or one of its variants)."},"id":5314,"implemented":true,"kind":"function","modifiers":[],"name":"_callOptionalReturn","nameLocation":"4152:19:22","nodeType":"FunctionDefinition","parameters":{"id":5283,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5280,"mutability":"mutable","name":"token","nameLocation":"4179:5:22","nodeType":"VariableDeclaration","scope":5314,"src":"4172:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4998","typeString":"contract IERC20"},"typeName":{"id":5279,"nodeType":"UserDefinedTypeName","pathNode":{"id":5278,"name":"IERC20","nameLocations":["4172:6:22"],"nodeType":"IdentifierPath","referencedDeclaration":4998,"src":"4172:6:22"},"referencedDeclaration":4998,"src":"4172:6:22","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$4998","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":5282,"mutability":"mutable","name":"data","nameLocation":"4199:4:22","nodeType":"VariableDeclaration","scope":5314,"src":"4186:17:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5281,"name":"bytes","nodeType":"ElementaryTypeName","src":"4186:5:22","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4171:33:22"},"returnParameters":{"id":5284,"nodeType":"ParameterList","parameters":[],"src":"4213:0:22"},"scope":5315,"src":"4143:786:22","stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"scope":5316,"src":"701:4230:22","usedErrors":[]}],"src":"115:4817:22"},"id":22},"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/utils/Address.sol":{"ast":{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/utils/Address.sol","exportedSymbols":{"Address":[5645]},"id":5646,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":5317,"literals":["solidity","^","0.8",".1"],"nodeType":"PragmaDirective","src":"101:23:23"},{"abstract":false,"baseContracts":[],"canonicalName":"Address","contractDependencies":[],"contractKind":"library","documentation":{"id":5318,"nodeType":"StructuredDocumentation","src":"126:67:23","text":" @dev Collection of functions related to the address type"},"fullyImplemented":true,"id":5645,"linearizedBaseContracts":[5645],"name":"Address","nameLocation":"202:7:23","nodeType":"ContractDefinition","nodes":[{"body":{"id":5332,"nodeType":"Block","src":"1241:254:23","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":5326,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5321,"src":"1465:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1473:4:23","memberName":"code","nodeType":"MemberAccess","src":"1465:12:23","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":5328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1478:6:23","memberName":"length","nodeType":"MemberAccess","src":"1465:19:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":5329,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1487:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1465:23:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":5325,"id":5331,"nodeType":"Return","src":"1458:30:23"}]},"documentation":{"id":5319,"nodeType":"StructuredDocumentation","src":"216:954:23","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 ===="},"id":5333,"implemented":true,"kind":"function","modifiers":[],"name":"isContract","nameLocation":"1184:10:23","nodeType":"FunctionDefinition","parameters":{"id":5322,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5321,"mutability":"mutable","name":"account","nameLocation":"1203:7:23","nodeType":"VariableDeclaration","scope":5333,"src":"1195:15:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5320,"name":"address","nodeType":"ElementaryTypeName","src":"1195:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1194:17:23"},"returnParameters":{"id":5325,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5324,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5333,"src":"1235:4:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5323,"name":"bool","nodeType":"ElementaryTypeName","src":"1235:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1234:6:23"},"scope":5645,"src":"1175:320:23","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":5366,"nodeType":"Block","src":"2482:309:23","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":5344,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2521:4:23","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$5645","typeString":"library Address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Address_$5645","typeString":"library Address"}],"id":5343,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2513:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5342,"name":"address","nodeType":"ElementaryTypeName","src":"2513:7:23","typeDescriptions":{}}},"id":5345,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2513:13:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5346,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2527:7:23","memberName":"balance","nodeType":"MemberAccess","src":"2513:21:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":5347,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5338,"src":"2538:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2513:31:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20696e73756666696369656e742062616c616e6365","id":5349,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2558:31:23","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":5341,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2492:7:23","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2492:107:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5351,"nodeType":"ExpressionStatement","src":"2492:107:23"},{"assignments":[5353,null],"declarations":[{"constant":false,"id":5353,"mutability":"mutable","name":"success","nameLocation":"2616:7:23","nodeType":"VariableDeclaration","scope":5366,"src":"2611:12:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5352,"name":"bool","nodeType":"ElementaryTypeName","src":"2611:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":5360,"initialValue":{"arguments":[{"hexValue":"","id":5358,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2659:2:23","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":5354,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5336,"src":"2629:9:23","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":5355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2639:4:23","memberName":"call","nodeType":"MemberAccess","src":"2629:14:23","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":5357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":5356,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5338,"src":"2651:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"2629:29:23","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":5359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2629:33:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"2610:52:23"},{"expression":{"arguments":[{"id":5362,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5353,"src":"2693:7:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564","id":5363,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2714:60:23","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":5361,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2672:7:23","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5364,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2672:112:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5365,"nodeType":"ExpressionStatement","src":"2672:112:23"}]},"documentation":{"id":5334,"nodeType":"StructuredDocumentation","src":"1501:905:23","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.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]."},"id":5367,"implemented":true,"kind":"function","modifiers":[],"name":"sendValue","nameLocation":"2420:9:23","nodeType":"FunctionDefinition","parameters":{"id":5339,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5336,"mutability":"mutable","name":"recipient","nameLocation":"2446:9:23","nodeType":"VariableDeclaration","scope":5367,"src":"2430:25:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":5335,"name":"address","nodeType":"ElementaryTypeName","src":"2430:15:23","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":5338,"mutability":"mutable","name":"amount","nameLocation":"2465:6:23","nodeType":"VariableDeclaration","scope":5367,"src":"2457:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5337,"name":"uint256","nodeType":"ElementaryTypeName","src":"2457:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2429:43:23"},"returnParameters":{"id":5340,"nodeType":"ParameterList","parameters":[],"src":"2482:0:23"},"scope":5645,"src":"2411:380:23","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":5384,"nodeType":"Block","src":"3642:186:23","statements":[{"expression":{"arguments":[{"id":5378,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5370,"src":"3710:6:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5379,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5372,"src":"3734:4:23","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"30","id":5380,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3756:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"416464726573733a206c6f772d6c6576656c2063616c6c206661696c6564","id":5381,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3775:32:23","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":5377,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[5425,5469],"referencedDeclaration":5469,"src":"3671:21:23","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":5382,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3671:150:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":5376,"id":5383,"nodeType":"Return","src":"3652:169:23"}]},"documentation":{"id":5368,"nodeType":"StructuredDocumentation","src":"2797:731:23","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._"},"id":5385,"implemented":true,"kind":"function","modifiers":[],"name":"functionCall","nameLocation":"3542:12:23","nodeType":"FunctionDefinition","parameters":{"id":5373,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5370,"mutability":"mutable","name":"target","nameLocation":"3563:6:23","nodeType":"VariableDeclaration","scope":5385,"src":"3555:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5369,"name":"address","nodeType":"ElementaryTypeName","src":"3555:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5372,"mutability":"mutable","name":"data","nameLocation":"3584:4:23","nodeType":"VariableDeclaration","scope":5385,"src":"3571:17:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5371,"name":"bytes","nodeType":"ElementaryTypeName","src":"3571:5:23","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3554:35:23"},"returnParameters":{"id":5376,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5375,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5385,"src":"3624:12:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5374,"name":"bytes","nodeType":"ElementaryTypeName","src":"3624:5:23","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3623:14:23"},"scope":5645,"src":"3533:295:23","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":5404,"nodeType":"Block","src":"4197:76:23","statements":[{"expression":{"arguments":[{"id":5398,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5388,"src":"4236:6:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5399,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5390,"src":"4244:4:23","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"30","id":5400,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4250:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":5401,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5392,"src":"4253:12:23","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":5397,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[5425,5469],"referencedDeclaration":5469,"src":"4214:21:23","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":5402,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4214:52:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":5396,"id":5403,"nodeType":"Return","src":"4207:59:23"}]},"documentation":{"id":5386,"nodeType":"StructuredDocumentation","src":"3834:211:23","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._"},"id":5405,"implemented":true,"kind":"function","modifiers":[],"name":"functionCall","nameLocation":"4059:12:23","nodeType":"FunctionDefinition","parameters":{"id":5393,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5388,"mutability":"mutable","name":"target","nameLocation":"4089:6:23","nodeType":"VariableDeclaration","scope":5405,"src":"4081:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5387,"name":"address","nodeType":"ElementaryTypeName","src":"4081:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5390,"mutability":"mutable","name":"data","nameLocation":"4118:4:23","nodeType":"VariableDeclaration","scope":5405,"src":"4105:17:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5389,"name":"bytes","nodeType":"ElementaryTypeName","src":"4105:5:23","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":5392,"mutability":"mutable","name":"errorMessage","nameLocation":"4146:12:23","nodeType":"VariableDeclaration","scope":5405,"src":"4132:26:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5391,"name":"string","nodeType":"ElementaryTypeName","src":"4132:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4071:93:23"},"returnParameters":{"id":5396,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5395,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5405,"src":"4183:12:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5394,"name":"bytes","nodeType":"ElementaryTypeName","src":"4183:5:23","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4182:14:23"},"scope":5645,"src":"4050:223:23","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":5424,"nodeType":"Block","src":"4778:201:23","statements":[{"expression":{"arguments":[{"id":5418,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5408,"src":"4846:6:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5419,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5410,"src":"4870:4:23","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":5420,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5412,"src":"4892:5:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564","id":5421,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4915:43:23","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":5417,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[5425,5469],"referencedDeclaration":5469,"src":"4807:21:23","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":5422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4807:165:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":5416,"id":5423,"nodeType":"Return","src":"4788:184:23"}]},"documentation":{"id":5406,"nodeType":"StructuredDocumentation","src":"4279:351:23","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._"},"id":5425,"implemented":true,"kind":"function","modifiers":[],"name":"functionCallWithValue","nameLocation":"4644:21:23","nodeType":"FunctionDefinition","parameters":{"id":5413,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5408,"mutability":"mutable","name":"target","nameLocation":"4683:6:23","nodeType":"VariableDeclaration","scope":5425,"src":"4675:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5407,"name":"address","nodeType":"ElementaryTypeName","src":"4675:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5410,"mutability":"mutable","name":"data","nameLocation":"4712:4:23","nodeType":"VariableDeclaration","scope":5425,"src":"4699:17:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5409,"name":"bytes","nodeType":"ElementaryTypeName","src":"4699:5:23","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":5412,"mutability":"mutable","name":"value","nameLocation":"4734:5:23","nodeType":"VariableDeclaration","scope":5425,"src":"4726:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5411,"name":"uint256","nodeType":"ElementaryTypeName","src":"4726:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4665:80:23"},"returnParameters":{"id":5416,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5415,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5425,"src":"4764:12:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5414,"name":"bytes","nodeType":"ElementaryTypeName","src":"4764:5:23","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4763:14:23"},"scope":5645,"src":"4635:344:23","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":5468,"nodeType":"Block","src":"5406:413:23","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":5442,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"5445:4:23","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$5645","typeString":"library Address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Address_$5645","typeString":"library Address"}],"id":5441,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5437:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5440,"name":"address","nodeType":"ElementaryTypeName","src":"5437:7:23","typeDescriptions":{}}},"id":5443,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5437:13:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5444,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5451:7:23","memberName":"balance","nodeType":"MemberAccess","src":"5437:21:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":5445,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5432,"src":"5462:5:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5437:30:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c","id":5447,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5481:40:23","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":5439,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5416:7:23","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5448,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5416:115:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5449,"nodeType":"ExpressionStatement","src":"5416:115:23"},{"assignments":[5451,5453],"declarations":[{"constant":false,"id":5451,"mutability":"mutable","name":"success","nameLocation":"5547:7:23","nodeType":"VariableDeclaration","scope":5468,"src":"5542:12:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5450,"name":"bool","nodeType":"ElementaryTypeName","src":"5542:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":5453,"mutability":"mutable","name":"returndata","nameLocation":"5569:10:23","nodeType":"VariableDeclaration","scope":5468,"src":"5556:23:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5452,"name":"bytes","nodeType":"ElementaryTypeName","src":"5556:5:23","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":5460,"initialValue":{"arguments":[{"id":5458,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5430,"src":"5622:4:23","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":5454,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5428,"src":"5583:6:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5590:4:23","memberName":"call","nodeType":"MemberAccess","src":"5583:11:23","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":5457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":5456,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5432,"src":"5602:5:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"5583:25:23","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":5459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5583:53:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"5541:95:23"},{"expression":{"arguments":[{"id":5462,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5428,"src":"5709:6:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5463,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5451,"src":"5733:7:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":5464,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5453,"src":"5758:10:23","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":5465,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5434,"src":"5786:12:23","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":5461,"name":"verifyCallResultFromTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5600,"src":"5665:26:23","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":5466,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5665:147:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":5438,"id":5467,"nodeType":"Return","src":"5646:166:23"}]},"documentation":{"id":5426,"nodeType":"StructuredDocumentation","src":"4985:237:23","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._"},"id":5469,"implemented":true,"kind":"function","modifiers":[],"name":"functionCallWithValue","nameLocation":"5236:21:23","nodeType":"FunctionDefinition","parameters":{"id":5435,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5428,"mutability":"mutable","name":"target","nameLocation":"5275:6:23","nodeType":"VariableDeclaration","scope":5469,"src":"5267:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5427,"name":"address","nodeType":"ElementaryTypeName","src":"5267:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5430,"mutability":"mutable","name":"data","nameLocation":"5304:4:23","nodeType":"VariableDeclaration","scope":5469,"src":"5291:17:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5429,"name":"bytes","nodeType":"ElementaryTypeName","src":"5291:5:23","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":5432,"mutability":"mutable","name":"value","nameLocation":"5326:5:23","nodeType":"VariableDeclaration","scope":5469,"src":"5318:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5431,"name":"uint256","nodeType":"ElementaryTypeName","src":"5318:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5434,"mutability":"mutable","name":"errorMessage","nameLocation":"5355:12:23","nodeType":"VariableDeclaration","scope":5469,"src":"5341:26:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5433,"name":"string","nodeType":"ElementaryTypeName","src":"5341:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5257:116:23"},"returnParameters":{"id":5438,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5437,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5469,"src":"5392:12:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5436,"name":"bytes","nodeType":"ElementaryTypeName","src":"5392:5:23","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5391:14:23"},"scope":5645,"src":"5227:592:23","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":5485,"nodeType":"Block","src":"6124:171:23","statements":[{"expression":{"arguments":[{"id":5480,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5472,"src":"6189:6:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5481,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5474,"src":"6213:4:23","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564","id":5482,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6235:39:23","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":5479,"name":"functionStaticCall","nodeType":"Identifier","overloadedDeclarations":[5486,5515],"referencedDeclaration":5515,"src":"6153:18:23","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":5483,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6153:135:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":5478,"id":5484,"nodeType":"Return","src":"6134:154:23"}]},"documentation":{"id":5470,"nodeType":"StructuredDocumentation","src":"5825:166:23","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._"},"id":5486,"implemented":true,"kind":"function","modifiers":[],"name":"functionStaticCall","nameLocation":"6005:18:23","nodeType":"FunctionDefinition","parameters":{"id":5475,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5472,"mutability":"mutable","name":"target","nameLocation":"6032:6:23","nodeType":"VariableDeclaration","scope":5486,"src":"6024:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5471,"name":"address","nodeType":"ElementaryTypeName","src":"6024:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5474,"mutability":"mutable","name":"data","nameLocation":"6053:4:23","nodeType":"VariableDeclaration","scope":5486,"src":"6040:17:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5473,"name":"bytes","nodeType":"ElementaryTypeName","src":"6040:5:23","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6023:35:23"},"returnParameters":{"id":5478,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5477,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5486,"src":"6106:12:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5476,"name":"bytes","nodeType":"ElementaryTypeName","src":"6106:5:23","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6105:14:23"},"scope":5645,"src":"5996:299:23","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":5514,"nodeType":"Block","src":"6637:258:23","statements":[{"assignments":[5499,5501],"declarations":[{"constant":false,"id":5499,"mutability":"mutable","name":"success","nameLocation":"6653:7:23","nodeType":"VariableDeclaration","scope":5514,"src":"6648:12:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5498,"name":"bool","nodeType":"ElementaryTypeName","src":"6648:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":5501,"mutability":"mutable","name":"returndata","nameLocation":"6675:10:23","nodeType":"VariableDeclaration","scope":5514,"src":"6662:23:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5500,"name":"bytes","nodeType":"ElementaryTypeName","src":"6662:5:23","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":5506,"initialValue":{"arguments":[{"id":5504,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5491,"src":"6707:4:23","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":5502,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5489,"src":"6689:6:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5503,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6696:10:23","memberName":"staticcall","nodeType":"MemberAccess","src":"6689:17:23","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":5505,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6689:23:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"6647:65:23"},{"expression":{"arguments":[{"id":5508,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5489,"src":"6785:6:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5509,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5499,"src":"6809:7:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":5510,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5501,"src":"6834:10:23","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":5511,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5493,"src":"6862:12:23","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":5507,"name":"verifyCallResultFromTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5600,"src":"6741:26:23","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":5512,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6741:147:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":5497,"id":5513,"nodeType":"Return","src":"6722:166:23"}]},"documentation":{"id":5487,"nodeType":"StructuredDocumentation","src":"6301:173:23","text":" @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._"},"id":5515,"implemented":true,"kind":"function","modifiers":[],"name":"functionStaticCall","nameLocation":"6488:18:23","nodeType":"FunctionDefinition","parameters":{"id":5494,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5489,"mutability":"mutable","name":"target","nameLocation":"6524:6:23","nodeType":"VariableDeclaration","scope":5515,"src":"6516:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5488,"name":"address","nodeType":"ElementaryTypeName","src":"6516:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5491,"mutability":"mutable","name":"data","nameLocation":"6553:4:23","nodeType":"VariableDeclaration","scope":5515,"src":"6540:17:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5490,"name":"bytes","nodeType":"ElementaryTypeName","src":"6540:5:23","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":5493,"mutability":"mutable","name":"errorMessage","nameLocation":"6581:12:23","nodeType":"VariableDeclaration","scope":5515,"src":"6567:26:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5492,"name":"string","nodeType":"ElementaryTypeName","src":"6567:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6506:93:23"},"returnParameters":{"id":5497,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5496,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5515,"src":"6623:12:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5495,"name":"bytes","nodeType":"ElementaryTypeName","src":"6623:5:23","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6622:14:23"},"scope":5645,"src":"6479:416:23","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":5531,"nodeType":"Block","src":"7191:175:23","statements":[{"expression":{"arguments":[{"id":5526,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5518,"src":"7258:6:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5527,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5520,"src":"7282:4:23","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564","id":5528,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7304:41:23","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":5525,"name":"functionDelegateCall","nodeType":"Identifier","overloadedDeclarations":[5532,5561],"referencedDeclaration":5561,"src":"7220:20:23","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":5529,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7220:139:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":5524,"id":5530,"nodeType":"Return","src":"7201:158:23"}]},"documentation":{"id":5516,"nodeType":"StructuredDocumentation","src":"6901:168:23","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._"},"id":5532,"implemented":true,"kind":"function","modifiers":[],"name":"functionDelegateCall","nameLocation":"7083:20:23","nodeType":"FunctionDefinition","parameters":{"id":5521,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5518,"mutability":"mutable","name":"target","nameLocation":"7112:6:23","nodeType":"VariableDeclaration","scope":5532,"src":"7104:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5517,"name":"address","nodeType":"ElementaryTypeName","src":"7104:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5520,"mutability":"mutable","name":"data","nameLocation":"7133:4:23","nodeType":"VariableDeclaration","scope":5532,"src":"7120:17:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5519,"name":"bytes","nodeType":"ElementaryTypeName","src":"7120:5:23","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7103:35:23"},"returnParameters":{"id":5524,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5523,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5532,"src":"7173:12:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5522,"name":"bytes","nodeType":"ElementaryTypeName","src":"7173:5:23","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7172:14:23"},"scope":5645,"src":"7074:292:23","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":5560,"nodeType":"Block","src":"7707:260:23","statements":[{"assignments":[5545,5547],"declarations":[{"constant":false,"id":5545,"mutability":"mutable","name":"success","nameLocation":"7723:7:23","nodeType":"VariableDeclaration","scope":5560,"src":"7718:12:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5544,"name":"bool","nodeType":"ElementaryTypeName","src":"7718:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":5547,"mutability":"mutable","name":"returndata","nameLocation":"7745:10:23","nodeType":"VariableDeclaration","scope":5560,"src":"7732:23:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5546,"name":"bytes","nodeType":"ElementaryTypeName","src":"7732:5:23","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":5552,"initialValue":{"arguments":[{"id":5550,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5537,"src":"7779:4:23","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":5548,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5535,"src":"7759:6:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7766:12:23","memberName":"delegatecall","nodeType":"MemberAccess","src":"7759:19:23","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":5551,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7759:25:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"7717:67:23"},{"expression":{"arguments":[{"id":5554,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5535,"src":"7857:6:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5555,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5545,"src":"7881:7:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":5556,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5547,"src":"7906:10:23","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":5557,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5539,"src":"7934:12:23","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":5553,"name":"verifyCallResultFromTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5600,"src":"7813:26:23","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":5558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7813:147:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":5543,"id":5559,"nodeType":"Return","src":"7794:166:23"}]},"documentation":{"id":5533,"nodeType":"StructuredDocumentation","src":"7372:175:23","text":" @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._"},"id":5561,"implemented":true,"kind":"function","modifiers":[],"name":"functionDelegateCall","nameLocation":"7561:20:23","nodeType":"FunctionDefinition","parameters":{"id":5540,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5535,"mutability":"mutable","name":"target","nameLocation":"7599:6:23","nodeType":"VariableDeclaration","scope":5561,"src":"7591:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5534,"name":"address","nodeType":"ElementaryTypeName","src":"7591:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5537,"mutability":"mutable","name":"data","nameLocation":"7628:4:23","nodeType":"VariableDeclaration","scope":5561,"src":"7615:17:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5536,"name":"bytes","nodeType":"ElementaryTypeName","src":"7615:5:23","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":5539,"mutability":"mutable","name":"errorMessage","nameLocation":"7656:12:23","nodeType":"VariableDeclaration","scope":5561,"src":"7642:26:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5538,"name":"string","nodeType":"ElementaryTypeName","src":"7642:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7581:93:23"},"returnParameters":{"id":5543,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5542,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5561,"src":"7693:12:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5541,"name":"bytes","nodeType":"ElementaryTypeName","src":"7693:5:23","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7692:14:23"},"scope":5645,"src":"7552:415:23","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":5599,"nodeType":"Block","src":"8449:434:23","statements":[{"condition":{"id":5575,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5566,"src":"8463:7:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":5597,"nodeType":"Block","src":"8819:58:23","statements":[{"expression":{"arguments":[{"id":5593,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5568,"src":"8841:10:23","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":5594,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5570,"src":"8853:12:23","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":5592,"name":"_revert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5644,"src":"8833:7:23","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (bytes memory,string memory) pure"}},"id":5595,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8833:33:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5596,"nodeType":"ExpressionStatement","src":"8833:33:23"}]},"id":5598,"nodeType":"IfStatement","src":"8459:418:23","trueBody":{"id":5591,"nodeType":"Block","src":"8472:341:23","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":5576,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5568,"src":"8490:10:23","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":5577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8501:6:23","memberName":"length","nodeType":"MemberAccess","src":"8490:17:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":5578,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8511:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8490:22:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5588,"nodeType":"IfStatement","src":"8486:286:23","trueBody":{"id":5587,"nodeType":"Block","src":"8514:258:23","statements":[{"expression":{"arguments":[{"arguments":[{"id":5582,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5564,"src":"8716:6:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5581,"name":"isContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5333,"src":"8705:10:23","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":5583,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8705:18:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374","id":5584,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8725:31:23","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":5580,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8697:7:23","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5585,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8697:60:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5586,"nodeType":"ExpressionStatement","src":"8697:60:23"}]}},{"expression":{"id":5589,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5568,"src":"8792:10:23","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":5574,"id":5590,"nodeType":"Return","src":"8785:17:23"}]}}]},"documentation":{"id":5562,"nodeType":"StructuredDocumentation","src":"7973:277:23","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._"},"id":5600,"implemented":true,"kind":"function","modifiers":[],"name":"verifyCallResultFromTarget","nameLocation":"8264:26:23","nodeType":"FunctionDefinition","parameters":{"id":5571,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5564,"mutability":"mutable","name":"target","nameLocation":"8308:6:23","nodeType":"VariableDeclaration","scope":5600,"src":"8300:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5563,"name":"address","nodeType":"ElementaryTypeName","src":"8300:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5566,"mutability":"mutable","name":"success","nameLocation":"8329:7:23","nodeType":"VariableDeclaration","scope":5600,"src":"8324:12:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5565,"name":"bool","nodeType":"ElementaryTypeName","src":"8324:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":5568,"mutability":"mutable","name":"returndata","nameLocation":"8359:10:23","nodeType":"VariableDeclaration","scope":5600,"src":"8346:23:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5567,"name":"bytes","nodeType":"ElementaryTypeName","src":"8346:5:23","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":5570,"mutability":"mutable","name":"errorMessage","nameLocation":"8393:12:23","nodeType":"VariableDeclaration","scope":5600,"src":"8379:26:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5569,"name":"string","nodeType":"ElementaryTypeName","src":"8379:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8290:121:23"},"returnParameters":{"id":5574,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5573,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5600,"src":"8435:12:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5572,"name":"bytes","nodeType":"ElementaryTypeName","src":"8435:5:23","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8434:14:23"},"scope":5645,"src":"8255:628:23","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":5623,"nodeType":"Block","src":"9264:135:23","statements":[{"condition":{"id":5612,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5603,"src":"9278:7:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":5621,"nodeType":"Block","src":"9335:58:23","statements":[{"expression":{"arguments":[{"id":5617,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5605,"src":"9357:10:23","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":5618,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5607,"src":"9369:12:23","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":5616,"name":"_revert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5644,"src":"9349:7:23","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (bytes memory,string memory) pure"}},"id":5619,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9349:33:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5620,"nodeType":"ExpressionStatement","src":"9349:33:23"}]},"id":5622,"nodeType":"IfStatement","src":"9274:119:23","trueBody":{"id":5615,"nodeType":"Block","src":"9287:42:23","statements":[{"expression":{"id":5613,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5605,"src":"9308:10:23","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":5611,"id":5614,"nodeType":"Return","src":"9301:17:23"}]}}]},"documentation":{"id":5601,"nodeType":"StructuredDocumentation","src":"8889:210:23","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._"},"id":5624,"implemented":true,"kind":"function","modifiers":[],"name":"verifyCallResult","nameLocation":"9113:16:23","nodeType":"FunctionDefinition","parameters":{"id":5608,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5603,"mutability":"mutable","name":"success","nameLocation":"9144:7:23","nodeType":"VariableDeclaration","scope":5624,"src":"9139:12:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5602,"name":"bool","nodeType":"ElementaryTypeName","src":"9139:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":5605,"mutability":"mutable","name":"returndata","nameLocation":"9174:10:23","nodeType":"VariableDeclaration","scope":5624,"src":"9161:23:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5604,"name":"bytes","nodeType":"ElementaryTypeName","src":"9161:5:23","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":5607,"mutability":"mutable","name":"errorMessage","nameLocation":"9208:12:23","nodeType":"VariableDeclaration","scope":5624,"src":"9194:26:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5606,"name":"string","nodeType":"ElementaryTypeName","src":"9194:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"9129:97:23"},"returnParameters":{"id":5611,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5610,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5624,"src":"9250:12:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5609,"name":"bytes","nodeType":"ElementaryTypeName","src":"9250:5:23","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"9249:14:23"},"scope":5645,"src":"9104:295:23","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5643,"nodeType":"Block","src":"9508:457:23","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5634,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":5631,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5626,"src":"9584:10:23","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":5632,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9595:6:23","memberName":"length","nodeType":"MemberAccess","src":"9584:17:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":5633,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9604:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9584:21:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":5641,"nodeType":"Block","src":"9914:45:23","statements":[{"expression":{"arguments":[{"id":5638,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5628,"src":"9935:12:23","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":5637,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"9928:6:23","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":5639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9928:20:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5640,"nodeType":"ExpressionStatement","src":"9928:20:23"}]},"id":5642,"nodeType":"IfStatement","src":"9580:379:23","trueBody":{"id":5636,"nodeType":"Block","src":"9607:301:23","statements":[{"AST":{"nodeType":"YulBlock","src":"9765:133:23","statements":[{"nodeType":"YulVariableDeclaration","src":"9783:40:23","value":{"arguments":[{"name":"returndata","nodeType":"YulIdentifier","src":"9812:10:23"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9806:5:23"},"nodeType":"YulFunctionCall","src":"9806:17:23"},"variables":[{"name":"returndata_size","nodeType":"YulTypedName","src":"9787:15:23","type":""}]},{"expression":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9851:2:23","type":"","value":"32"},{"name":"returndata","nodeType":"YulIdentifier","src":"9855:10:23"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9847:3:23"},"nodeType":"YulFunctionCall","src":"9847:19:23"},{"name":"returndata_size","nodeType":"YulIdentifier","src":"9868:15:23"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9840:6:23"},"nodeType":"YulFunctionCall","src":"9840:44:23"},"nodeType":"YulExpressionStatement","src":"9840:44:23"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":5626,"isOffset":false,"isSlot":false,"src":"9812:10:23","valueSize":1},{"declaration":5626,"isOffset":false,"isSlot":false,"src":"9855:10:23","valueSize":1}],"id":5635,"nodeType":"InlineAssembly","src":"9756:142:23"}]}}]},"id":5644,"implemented":true,"kind":"function","modifiers":[],"name":"_revert","nameLocation":"9414:7:23","nodeType":"FunctionDefinition","parameters":{"id":5629,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5626,"mutability":"mutable","name":"returndata","nameLocation":"9435:10:23","nodeType":"VariableDeclaration","scope":5644,"src":"9422:23:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5625,"name":"bytes","nodeType":"ElementaryTypeName","src":"9422:5:23","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":5628,"mutability":"mutable","name":"errorMessage","nameLocation":"9461:12:23","nodeType":"VariableDeclaration","scope":5644,"src":"9447:26:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5627,"name":"string","nodeType":"ElementaryTypeName","src":"9447:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"9421:53:23"},"returnParameters":{"id":5630,"nodeType":"ParameterList","parameters":[],"src":"9508:0:23"},"scope":5645,"src":"9405:560:23","stateMutability":"pure","virtual":false,"visibility":"private"}],"scope":5646,"src":"194:9773:23","usedErrors":[]}],"src":"101:9867:23"},"id":23},"@openzeppelin/contracts/access/Ownable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","exportedSymbols":{"Context":[8135],"Ownable":[5750]},"id":5751,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":5647,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"87:23:24"},{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","file":"../utils/Context.sol","id":5648,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5751,"sourceUnit":8136,"src":"112:30:24","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":5650,"name":"Context","nameLocations":["668:7:24"],"nodeType":"IdentifierPath","referencedDeclaration":8135,"src":"668:7:24"},"id":5651,"nodeType":"InheritanceSpecifier","src":"668:7:24"}],"canonicalName":"Ownable","contractDependencies":[],"contractKind":"contract","documentation":{"id":5649,"nodeType":"StructuredDocumentation","src":"144:494:24","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,"id":5750,"linearizedBaseContracts":[5750,8135],"name":"Ownable","nameLocation":"657:7:24","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":5653,"mutability":"mutable","name":"_owner","nameLocation":"698:6:24","nodeType":"VariableDeclaration","scope":5750,"src":"682:22:24","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5652,"name":"address","nodeType":"ElementaryTypeName","src":"682:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"anonymous":false,"eventSelector":"8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","id":5659,"name":"OwnershipTransferred","nameLocation":"717:20:24","nodeType":"EventDefinition","parameters":{"id":5658,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5655,"indexed":true,"mutability":"mutable","name":"previousOwner","nameLocation":"754:13:24","nodeType":"VariableDeclaration","scope":5659,"src":"738:29:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5654,"name":"address","nodeType":"ElementaryTypeName","src":"738:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5657,"indexed":true,"mutability":"mutable","name":"newOwner","nameLocation":"785:8:24","nodeType":"VariableDeclaration","scope":5659,"src":"769:24:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5656,"name":"address","nodeType":"ElementaryTypeName","src":"769:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"737:57:24"},"src":"711:84:24"},{"body":{"id":5668,"nodeType":"Block","src":"911:49:24","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":5664,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8125,"src":"940:10:24","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":5665,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"940:12:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5663,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5749,"src":"921:18:24","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":5666,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"921:32:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5667,"nodeType":"ExpressionStatement","src":"921:32:24"}]},"documentation":{"id":5660,"nodeType":"StructuredDocumentation","src":"801:91:24","text":" @dev Initializes the contract setting the deployer as the initial owner."},"id":5669,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":5661,"nodeType":"ParameterList","parameters":[],"src":"908:2:24"},"returnParameters":{"id":5662,"nodeType":"ParameterList","parameters":[],"src":"911:0:24"},"scope":5750,"src":"897:63:24","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":5677,"nodeType":"Block","src":"1091:30:24","statements":[{"expression":{"id":5675,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5653,"src":"1108:6:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":5674,"id":5676,"nodeType":"Return","src":"1101:13:24"}]},"documentation":{"id":5670,"nodeType":"StructuredDocumentation","src":"966:65:24","text":" @dev Returns the address of the current owner."},"functionSelector":"8da5cb5b","id":5678,"implemented":true,"kind":"function","modifiers":[],"name":"owner","nameLocation":"1045:5:24","nodeType":"FunctionDefinition","parameters":{"id":5671,"nodeType":"ParameterList","parameters":[],"src":"1050:2:24"},"returnParameters":{"id":5674,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5673,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5678,"src":"1082:7:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5672,"name":"address","nodeType":"ElementaryTypeName","src":"1082:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1081:9:24"},"scope":5750,"src":"1036:85:24","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":5691,"nodeType":"Block","src":"1230:96:24","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5686,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":5682,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5678,"src":"1248:5:24","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":5683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1248:7:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":5684,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8125,"src":"1259:10:24","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":5685,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1259:12:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1248:23:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","id":5687,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1273:34:24","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":5681,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1240:7:24","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5688,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1240:68:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5689,"nodeType":"ExpressionStatement","src":"1240:68:24"},{"id":5690,"nodeType":"PlaceholderStatement","src":"1318:1:24"}]},"documentation":{"id":5679,"nodeType":"StructuredDocumentation","src":"1127:77:24","text":" @dev Throws if called by any account other than the owner."},"id":5692,"name":"onlyOwner","nameLocation":"1218:9:24","nodeType":"ModifierDefinition","parameters":{"id":5680,"nodeType":"ParameterList","parameters":[],"src":"1227:2:24"},"src":"1209:117:24","virtual":false,"visibility":"internal"},{"body":{"id":5705,"nodeType":"Block","src":"1722:47:24","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":5701,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1759:1:24","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":5700,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1751:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5699,"name":"address","nodeType":"ElementaryTypeName","src":"1751:7:24","typeDescriptions":{}}},"id":5702,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1751:10:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5698,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5749,"src":"1732:18:24","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":5703,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1732:30:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5704,"nodeType":"ExpressionStatement","src":"1732:30:24"}]},"documentation":{"id":5693,"nodeType":"StructuredDocumentation","src":"1332:331:24","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","id":5706,"implemented":true,"kind":"function","modifiers":[{"id":5696,"kind":"modifierInvocation","modifierName":{"id":5695,"name":"onlyOwner","nameLocations":["1712:9:24"],"nodeType":"IdentifierPath","referencedDeclaration":5692,"src":"1712:9:24"},"nodeType":"ModifierInvocation","src":"1712:9:24"}],"name":"renounceOwnership","nameLocation":"1677:17:24","nodeType":"FunctionDefinition","parameters":{"id":5694,"nodeType":"ParameterList","parameters":[],"src":"1694:2:24"},"returnParameters":{"id":5697,"nodeType":"ParameterList","parameters":[],"src":"1722:0:24"},"scope":5750,"src":"1668:101:24","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":5728,"nodeType":"Block","src":"1988:128:24","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5720,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5715,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5709,"src":"2006:8:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":5718,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2026:1:24","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":5717,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2018:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5716,"name":"address","nodeType":"ElementaryTypeName","src":"2018:7:24","typeDescriptions":{}}},"id":5719,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2018:10:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2006:22:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373","id":5721,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2030:40:24","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":5714,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1998:7:24","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5722,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1998:73:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5723,"nodeType":"ExpressionStatement","src":"1998:73:24"},{"expression":{"arguments":[{"id":5725,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5709,"src":"2100:8:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5724,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5749,"src":"2081:18:24","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":5726,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2081:28:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5727,"nodeType":"ExpressionStatement","src":"2081:28:24"}]},"documentation":{"id":5707,"nodeType":"StructuredDocumentation","src":"1775:138:24","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Can only be called by the current owner."},"functionSelector":"f2fde38b","id":5729,"implemented":true,"kind":"function","modifiers":[{"id":5712,"kind":"modifierInvocation","modifierName":{"id":5711,"name":"onlyOwner","nameLocations":["1978:9:24"],"nodeType":"IdentifierPath","referencedDeclaration":5692,"src":"1978:9:24"},"nodeType":"ModifierInvocation","src":"1978:9:24"}],"name":"transferOwnership","nameLocation":"1927:17:24","nodeType":"FunctionDefinition","parameters":{"id":5710,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5709,"mutability":"mutable","name":"newOwner","nameLocation":"1953:8:24","nodeType":"VariableDeclaration","scope":5729,"src":"1945:16:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5708,"name":"address","nodeType":"ElementaryTypeName","src":"1945:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1944:18:24"},"returnParameters":{"id":5713,"nodeType":"ParameterList","parameters":[],"src":"1988:0:24"},"scope":5750,"src":"1918:198:24","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":5748,"nodeType":"Block","src":"2333:124:24","statements":[{"assignments":[5736],"declarations":[{"constant":false,"id":5736,"mutability":"mutable","name":"oldOwner","nameLocation":"2351:8:24","nodeType":"VariableDeclaration","scope":5748,"src":"2343:16:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5735,"name":"address","nodeType":"ElementaryTypeName","src":"2343:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":5738,"initialValue":{"id":5737,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5653,"src":"2362:6:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2343:25:24"},{"expression":{"id":5741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5739,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5653,"src":"2378:6:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5740,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5732,"src":"2387:8:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2378:17:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5742,"nodeType":"ExpressionStatement","src":"2378:17:24"},{"eventCall":{"arguments":[{"id":5744,"name":"oldOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5736,"src":"2431:8:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5745,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5732,"src":"2441:8:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":5743,"name":"OwnershipTransferred","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5659,"src":"2410:20:24","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":5746,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2410:40:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5747,"nodeType":"EmitStatement","src":"2405:45:24"}]},"documentation":{"id":5730,"nodeType":"StructuredDocumentation","src":"2122:143:24","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Internal function without access restriction."},"id":5749,"implemented":true,"kind":"function","modifiers":[],"name":"_transferOwnership","nameLocation":"2279:18:24","nodeType":"FunctionDefinition","parameters":{"id":5733,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5732,"mutability":"mutable","name":"newOwner","nameLocation":"2306:8:24","nodeType":"VariableDeclaration","scope":5749,"src":"2298:16:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5731,"name":"address","nodeType":"ElementaryTypeName","src":"2298:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2297:18:24"},"returnParameters":{"id":5734,"nodeType":"ParameterList","parameters":[],"src":"2333:0:24"},"scope":5750,"src":"2270:187:24","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":5751,"src":"639:1820:24","usedErrors":[]}],"src":"87:2373:24"},"id":24},"@openzeppelin/contracts/token/ERC20/ERC20.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/ERC20.sol","exportedSymbols":{"Context":[8135],"ERC20":[6336],"IERC20":[6414],"IERC20Metadata":[6439]},"id":6337,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":5752,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"105:23:25"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"./IERC20.sol","id":5753,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6337,"sourceUnit":6415,"src":"130:22:25","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol","file":"./extensions/IERC20Metadata.sol","id":5754,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6337,"sourceUnit":6440,"src":"153:41:25","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","file":"../../utils/Context.sol","id":5755,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6337,"sourceUnit":8136,"src":"195:33:25","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":5757,"name":"Context","nameLocations":["1421:7:25"],"nodeType":"IdentifierPath","referencedDeclaration":8135,"src":"1421:7:25"},"id":5758,"nodeType":"InheritanceSpecifier","src":"1421:7:25"},{"baseName":{"id":5759,"name":"IERC20","nameLocations":["1430:6:25"],"nodeType":"IdentifierPath","referencedDeclaration":6414,"src":"1430:6:25"},"id":5760,"nodeType":"InheritanceSpecifier","src":"1430:6:25"},{"baseName":{"id":5761,"name":"IERC20Metadata","nameLocations":["1438:14:25"],"nodeType":"IdentifierPath","referencedDeclaration":6439,"src":"1438:14:25"},"id":5762,"nodeType":"InheritanceSpecifier","src":"1438:14:25"}],"canonicalName":"ERC20","contractDependencies":[],"contractKind":"contract","documentation":{"id":5756,"nodeType":"StructuredDocumentation","src":"230:1172:25","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,"id":6336,"linearizedBaseContracts":[6336,6439,6414,8135],"name":"ERC20","nameLocation":"1412:5:25","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":5766,"mutability":"mutable","name":"_balances","nameLocation":"1495:9:25","nodeType":"VariableDeclaration","scope":6336,"src":"1459:45:25","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":5765,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":5763,"name":"address","nodeType":"ElementaryTypeName","src":"1467:7:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1459:27:25","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":5764,"name":"uint256","nodeType":"ElementaryTypeName","src":"1478:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"constant":false,"id":5772,"mutability":"mutable","name":"_allowances","nameLocation":"1567:11:25","nodeType":"VariableDeclaration","scope":6336,"src":"1511:67:25","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"typeName":{"id":5771,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":5767,"name":"address","nodeType":"ElementaryTypeName","src":"1519:7:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1511:47:25","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":5770,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":5768,"name":"address","nodeType":"ElementaryTypeName","src":"1538:7:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1530:27:25","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":5769,"name":"uint256","nodeType":"ElementaryTypeName","src":"1549:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"private"},{"constant":false,"id":5774,"mutability":"mutable","name":"_totalSupply","nameLocation":"1601:12:25","nodeType":"VariableDeclaration","scope":6336,"src":"1585:28:25","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5773,"name":"uint256","nodeType":"ElementaryTypeName","src":"1585:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"constant":false,"id":5776,"mutability":"mutable","name":"_name","nameLocation":"1635:5:25","nodeType":"VariableDeclaration","scope":6336,"src":"1620:20:25","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":5775,"name":"string","nodeType":"ElementaryTypeName","src":"1620:6:25","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"constant":false,"id":5778,"mutability":"mutable","name":"_symbol","nameLocation":"1661:7:25","nodeType":"VariableDeclaration","scope":6336,"src":"1646:22:25","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":5777,"name":"string","nodeType":"ElementaryTypeName","src":"1646:6:25","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"body":{"id":5794,"nodeType":"Block","src":"2034:57:25","statements":[{"expression":{"id":5788,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5786,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5776,"src":"2044:5:25","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5787,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5781,"src":"2052:5:25","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"2044:13:25","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":5789,"nodeType":"ExpressionStatement","src":"2044:13:25"},{"expression":{"id":5792,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5790,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5778,"src":"2067:7:25","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5791,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5783,"src":"2077:7:25","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"2067:17:25","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":5793,"nodeType":"ExpressionStatement","src":"2067:17:25"}]},"documentation":{"id":5779,"nodeType":"StructuredDocumentation","src":"1675:298:25","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."},"id":5795,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":5784,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5781,"mutability":"mutable","name":"name_","nameLocation":"2004:5:25","nodeType":"VariableDeclaration","scope":5795,"src":"1990:19:25","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5780,"name":"string","nodeType":"ElementaryTypeName","src":"1990:6:25","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5783,"mutability":"mutable","name":"symbol_","nameLocation":"2025:7:25","nodeType":"VariableDeclaration","scope":5795,"src":"2011:21:25","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5782,"name":"string","nodeType":"ElementaryTypeName","src":"2011:6:25","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1989:44:25"},"returnParameters":{"id":5785,"nodeType":"ParameterList","parameters":[],"src":"2034:0:25"},"scope":6336,"src":"1978:113:25","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[6426],"body":{"id":5804,"nodeType":"Block","src":"2225:29:25","statements":[{"expression":{"id":5802,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5776,"src":"2242:5:25","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":5801,"id":5803,"nodeType":"Return","src":"2235:12:25"}]},"documentation":{"id":5796,"nodeType":"StructuredDocumentation","src":"2097:54:25","text":" @dev Returns the name of the token."},"functionSelector":"06fdde03","id":5805,"implemented":true,"kind":"function","modifiers":[],"name":"name","nameLocation":"2165:4:25","nodeType":"FunctionDefinition","overrides":{"id":5798,"nodeType":"OverrideSpecifier","overrides":[],"src":"2192:8:25"},"parameters":{"id":5797,"nodeType":"ParameterList","parameters":[],"src":"2169:2:25"},"returnParameters":{"id":5801,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5800,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5805,"src":"2210:13:25","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5799,"name":"string","nodeType":"ElementaryTypeName","src":"2210:6:25","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2209:15:25"},"scope":6336,"src":"2156:98:25","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[6432],"body":{"id":5814,"nodeType":"Block","src":"2438:31:25","statements":[{"expression":{"id":5812,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5778,"src":"2455:7:25","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":5811,"id":5813,"nodeType":"Return","src":"2448:14:25"}]},"documentation":{"id":5806,"nodeType":"StructuredDocumentation","src":"2260:102:25","text":" @dev Returns the symbol of the token, usually a shorter version of the\n name."},"functionSelector":"95d89b41","id":5815,"implemented":true,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"2376:6:25","nodeType":"FunctionDefinition","overrides":{"id":5808,"nodeType":"OverrideSpecifier","overrides":[],"src":"2405:8:25"},"parameters":{"id":5807,"nodeType":"ParameterList","parameters":[],"src":"2382:2:25"},"returnParameters":{"id":5811,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5810,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5815,"src":"2423:13:25","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5809,"name":"string","nodeType":"ElementaryTypeName","src":"2423:6:25","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2422:15:25"},"scope":6336,"src":"2367:102:25","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[6438],"body":{"id":5824,"nodeType":"Block","src":"3158:26:25","statements":[{"expression":{"hexValue":"3138","id":5822,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3175:2:25","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"functionReturnParameters":5821,"id":5823,"nodeType":"Return","src":"3168:9:25"}]},"documentation":{"id":5816,"nodeType":"StructuredDocumentation","src":"2475:613:25","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","id":5825,"implemented":true,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"3102:8:25","nodeType":"FunctionDefinition","overrides":{"id":5818,"nodeType":"OverrideSpecifier","overrides":[],"src":"3133:8:25"},"parameters":{"id":5817,"nodeType":"ParameterList","parameters":[],"src":"3110:2:25"},"returnParameters":{"id":5821,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5820,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5825,"src":"3151:5:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":5819,"name":"uint8","nodeType":"ElementaryTypeName","src":"3151:5:25","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"3150:7:25"},"scope":6336,"src":"3093:91:25","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[6363],"body":{"id":5834,"nodeType":"Block","src":"3314:36:25","statements":[{"expression":{"id":5832,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5774,"src":"3331:12:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5831,"id":5833,"nodeType":"Return","src":"3324:19:25"}]},"documentation":{"id":5826,"nodeType":"StructuredDocumentation","src":"3190:49:25","text":" @dev See {IERC20-totalSupply}."},"functionSelector":"18160ddd","id":5835,"implemented":true,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"3253:11:25","nodeType":"FunctionDefinition","overrides":{"id":5828,"nodeType":"OverrideSpecifier","overrides":[],"src":"3287:8:25"},"parameters":{"id":5827,"nodeType":"ParameterList","parameters":[],"src":"3264:2:25"},"returnParameters":{"id":5831,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5830,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5835,"src":"3305:7:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5829,"name":"uint256","nodeType":"ElementaryTypeName","src":"3305:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3304:9:25"},"scope":6336,"src":"3244:106:25","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[6371],"body":{"id":5848,"nodeType":"Block","src":"3491:42:25","statements":[{"expression":{"baseExpression":{"id":5844,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5766,"src":"3508:9:25","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":5846,"indexExpression":{"id":5845,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5838,"src":"3518:7:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3508:18:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5843,"id":5847,"nodeType":"Return","src":"3501:25:25"}]},"documentation":{"id":5836,"nodeType":"StructuredDocumentation","src":"3356:47:25","text":" @dev See {IERC20-balanceOf}."},"functionSelector":"70a08231","id":5849,"implemented":true,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"3417:9:25","nodeType":"FunctionDefinition","overrides":{"id":5840,"nodeType":"OverrideSpecifier","overrides":[],"src":"3464:8:25"},"parameters":{"id":5839,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5838,"mutability":"mutable","name":"account","nameLocation":"3435:7:25","nodeType":"VariableDeclaration","scope":5849,"src":"3427:15:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5837,"name":"address","nodeType":"ElementaryTypeName","src":"3427:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3426:17:25"},"returnParameters":{"id":5843,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5842,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5849,"src":"3482:7:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5841,"name":"uint256","nodeType":"ElementaryTypeName","src":"3482:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3481:9:25"},"scope":6336,"src":"3408:125:25","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[6381],"body":{"id":5873,"nodeType":"Block","src":"3814:104:25","statements":[{"assignments":[5861],"declarations":[{"constant":false,"id":5861,"mutability":"mutable","name":"owner","nameLocation":"3832:5:25","nodeType":"VariableDeclaration","scope":5873,"src":"3824:13:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5860,"name":"address","nodeType":"ElementaryTypeName","src":"3824:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":5864,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":5862,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8125,"src":"3840:10:25","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":5863,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3840:12:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3824:28:25"},{"expression":{"arguments":[{"id":5866,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5861,"src":"3872:5:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5867,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5852,"src":"3879:2:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5868,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5854,"src":"3883:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5865,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6097,"src":"3862:9:25","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":5869,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3862:28:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5870,"nodeType":"ExpressionStatement","src":"3862:28:25"},{"expression":{"hexValue":"74727565","id":5871,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3907:4:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":5859,"id":5872,"nodeType":"Return","src":"3900:11:25"}]},"documentation":{"id":5850,"nodeType":"StructuredDocumentation","src":"3539:185:25","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","id":5874,"implemented":true,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"3738:8:25","nodeType":"FunctionDefinition","overrides":{"id":5856,"nodeType":"OverrideSpecifier","overrides":[],"src":"3790:8:25"},"parameters":{"id":5855,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5852,"mutability":"mutable","name":"to","nameLocation":"3755:2:25","nodeType":"VariableDeclaration","scope":5874,"src":"3747:10:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5851,"name":"address","nodeType":"ElementaryTypeName","src":"3747:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5854,"mutability":"mutable","name":"amount","nameLocation":"3767:6:25","nodeType":"VariableDeclaration","scope":5874,"src":"3759:14:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5853,"name":"uint256","nodeType":"ElementaryTypeName","src":"3759:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3746:28:25"},"returnParameters":{"id":5859,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5858,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5874,"src":"3808:4:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5857,"name":"bool","nodeType":"ElementaryTypeName","src":"3808:4:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3807:6:25"},"scope":6336,"src":"3729:189:25","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[6391],"body":{"id":5891,"nodeType":"Block","src":"4074:51:25","statements":[{"expression":{"baseExpression":{"baseExpression":{"id":5885,"name":"_allowances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5772,"src":"4091:11:25","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":5887,"indexExpression":{"id":5886,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5877,"src":"4103:5:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4091:18:25","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":5889,"indexExpression":{"id":5888,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5879,"src":"4110:7:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4091:27:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5884,"id":5890,"nodeType":"Return","src":"4084:34:25"}]},"documentation":{"id":5875,"nodeType":"StructuredDocumentation","src":"3924:47:25","text":" @dev See {IERC20-allowance}."},"functionSelector":"dd62ed3e","id":5892,"implemented":true,"kind":"function","modifiers":[],"name":"allowance","nameLocation":"3985:9:25","nodeType":"FunctionDefinition","overrides":{"id":5881,"nodeType":"OverrideSpecifier","overrides":[],"src":"4047:8:25"},"parameters":{"id":5880,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5877,"mutability":"mutable","name":"owner","nameLocation":"4003:5:25","nodeType":"VariableDeclaration","scope":5892,"src":"3995:13:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5876,"name":"address","nodeType":"ElementaryTypeName","src":"3995:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5879,"mutability":"mutable","name":"spender","nameLocation":"4018:7:25","nodeType":"VariableDeclaration","scope":5892,"src":"4010:15:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5878,"name":"address","nodeType":"ElementaryTypeName","src":"4010:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3994:32:25"},"returnParameters":{"id":5884,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5883,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5892,"src":"4065:7:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5882,"name":"uint256","nodeType":"ElementaryTypeName","src":"4065:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4064:9:25"},"scope":6336,"src":"3976:149:25","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[6401],"body":{"id":5916,"nodeType":"Block","src":"4522:108:25","statements":[{"assignments":[5904],"declarations":[{"constant":false,"id":5904,"mutability":"mutable","name":"owner","nameLocation":"4540:5:25","nodeType":"VariableDeclaration","scope":5916,"src":"4532:13:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5903,"name":"address","nodeType":"ElementaryTypeName","src":"4532:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":5907,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":5905,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8125,"src":"4548:10:25","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":5906,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4548:12:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4532:28:25"},{"expression":{"arguments":[{"id":5909,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5904,"src":"4579:5:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5910,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5895,"src":"4586:7:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5911,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5897,"src":"4595:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5908,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6270,"src":"4570:8:25","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":5912,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4570:32:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5913,"nodeType":"ExpressionStatement","src":"4570:32:25"},{"expression":{"hexValue":"74727565","id":5914,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4619:4:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":5902,"id":5915,"nodeType":"Return","src":"4612:11:25"}]},"documentation":{"id":5893,"nodeType":"StructuredDocumentation","src":"4131:297:25","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","id":5917,"implemented":true,"kind":"function","modifiers":[],"name":"approve","nameLocation":"4442:7:25","nodeType":"FunctionDefinition","overrides":{"id":5899,"nodeType":"OverrideSpecifier","overrides":[],"src":"4498:8:25"},"parameters":{"id":5898,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5895,"mutability":"mutable","name":"spender","nameLocation":"4458:7:25","nodeType":"VariableDeclaration","scope":5917,"src":"4450:15:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5894,"name":"address","nodeType":"ElementaryTypeName","src":"4450:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5897,"mutability":"mutable","name":"amount","nameLocation":"4475:6:25","nodeType":"VariableDeclaration","scope":5917,"src":"4467:14:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5896,"name":"uint256","nodeType":"ElementaryTypeName","src":"4467:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4449:33:25"},"returnParameters":{"id":5902,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5901,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5917,"src":"4516:4:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5900,"name":"bool","nodeType":"ElementaryTypeName","src":"4516:4:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4515:6:25"},"scope":6336,"src":"4433:197:25","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[6413],"body":{"id":5949,"nodeType":"Block","src":"5325:153:25","statements":[{"assignments":[5931],"declarations":[{"constant":false,"id":5931,"mutability":"mutable","name":"spender","nameLocation":"5343:7:25","nodeType":"VariableDeclaration","scope":5949,"src":"5335:15:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5930,"name":"address","nodeType":"ElementaryTypeName","src":"5335:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":5934,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":5932,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8125,"src":"5353:10:25","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":5933,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5353:12:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5335:30:25"},{"expression":{"arguments":[{"id":5936,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5920,"src":"5391:4:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5937,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5931,"src":"5397:7:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5938,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5924,"src":"5406:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5935,"name":"_spendAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6313,"src":"5375:15:25","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":5939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5375:38:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5940,"nodeType":"ExpressionStatement","src":"5375:38:25"},{"expression":{"arguments":[{"id":5942,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5920,"src":"5433:4:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5943,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5922,"src":"5439:2:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5944,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5924,"src":"5443:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5941,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6097,"src":"5423:9:25","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":5945,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5423:27:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5946,"nodeType":"ExpressionStatement","src":"5423:27:25"},{"expression":{"hexValue":"74727565","id":5947,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5467:4:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":5929,"id":5948,"nodeType":"Return","src":"5460:11:25"}]},"documentation":{"id":5918,"nodeType":"StructuredDocumentation","src":"4636:551:25","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","id":5950,"implemented":true,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"5201:12:25","nodeType":"FunctionDefinition","overrides":{"id":5926,"nodeType":"OverrideSpecifier","overrides":[],"src":"5301:8:25"},"parameters":{"id":5925,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5920,"mutability":"mutable","name":"from","nameLocation":"5231:4:25","nodeType":"VariableDeclaration","scope":5950,"src":"5223:12:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5919,"name":"address","nodeType":"ElementaryTypeName","src":"5223:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5922,"mutability":"mutable","name":"to","nameLocation":"5253:2:25","nodeType":"VariableDeclaration","scope":5950,"src":"5245:10:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5921,"name":"address","nodeType":"ElementaryTypeName","src":"5245:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5924,"mutability":"mutable","name":"amount","nameLocation":"5273:6:25","nodeType":"VariableDeclaration","scope":5950,"src":"5265:14:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5923,"name":"uint256","nodeType":"ElementaryTypeName","src":"5265:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5213:72:25"},"returnParameters":{"id":5929,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5928,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5950,"src":"5319:4:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5927,"name":"bool","nodeType":"ElementaryTypeName","src":"5319:4:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5318:6:25"},"scope":6336,"src":"5192:286:25","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":5978,"nodeType":"Block","src":"5967:140:25","statements":[{"assignments":[5961],"declarations":[{"constant":false,"id":5961,"mutability":"mutable","name":"owner","nameLocation":"5985:5:25","nodeType":"VariableDeclaration","scope":5978,"src":"5977:13:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5960,"name":"address","nodeType":"ElementaryTypeName","src":"5977:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":5964,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":5962,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8125,"src":"5993:10:25","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":5963,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5993:12:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5977:28:25"},{"expression":{"arguments":[{"id":5966,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5961,"src":"6024:5:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5967,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5953,"src":"6031:7:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5973,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":5969,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5961,"src":"6050:5:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5970,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5953,"src":"6057:7:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":5968,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5892,"src":"6040:9:25","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":5971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6040:25:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":5972,"name":"addedValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5955,"src":"6068:10:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6040:38:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5965,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6270,"src":"6015:8:25","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":5974,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6015:64:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5975,"nodeType":"ExpressionStatement","src":"6015:64:25"},{"expression":{"hexValue":"74727565","id":5976,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6096:4:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":5959,"id":5977,"nodeType":"Return","src":"6089:11:25"}]},"documentation":{"id":5951,"nodeType":"StructuredDocumentation","src":"5484:384:25","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","id":5979,"implemented":true,"kind":"function","modifiers":[],"name":"increaseAllowance","nameLocation":"5882:17:25","nodeType":"FunctionDefinition","parameters":{"id":5956,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5953,"mutability":"mutable","name":"spender","nameLocation":"5908:7:25","nodeType":"VariableDeclaration","scope":5979,"src":"5900:15:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5952,"name":"address","nodeType":"ElementaryTypeName","src":"5900:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5955,"mutability":"mutable","name":"addedValue","nameLocation":"5925:10:25","nodeType":"VariableDeclaration","scope":5979,"src":"5917:18:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5954,"name":"uint256","nodeType":"ElementaryTypeName","src":"5917:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5899:37:25"},"returnParameters":{"id":5959,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5958,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5979,"src":"5961:4:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5957,"name":"bool","nodeType":"ElementaryTypeName","src":"5961:4:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5960:6:25"},"scope":6336,"src":"5873:234:25","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":6019,"nodeType":"Block","src":"6693:328:25","statements":[{"assignments":[5990],"declarations":[{"constant":false,"id":5990,"mutability":"mutable","name":"owner","nameLocation":"6711:5:25","nodeType":"VariableDeclaration","scope":6019,"src":"6703:13:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5989,"name":"address","nodeType":"ElementaryTypeName","src":"6703:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":5993,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":5991,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8125,"src":"6719:10:25","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":5992,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6719:12:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6703:28:25"},{"assignments":[5995],"declarations":[{"constant":false,"id":5995,"mutability":"mutable","name":"currentAllowance","nameLocation":"6749:16:25","nodeType":"VariableDeclaration","scope":6019,"src":"6741:24:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5994,"name":"uint256","nodeType":"ElementaryTypeName","src":"6741:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6000,"initialValue":{"arguments":[{"id":5997,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5990,"src":"6778:5:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5998,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5982,"src":"6785:7:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":5996,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5892,"src":"6768:9:25","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":5999,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6768:25:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6741:52:25"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6002,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5995,"src":"6811:16:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":6003,"name":"subtractedValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5984,"src":"6831:15:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6811:35:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f","id":6005,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6848:39:25","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":6001,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6803:7:25","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6803:85:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6007,"nodeType":"ExpressionStatement","src":"6803:85:25"},{"id":6016,"nodeType":"UncheckedBlock","src":"6898:95:25","statements":[{"expression":{"arguments":[{"id":6009,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5990,"src":"6931:5:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6010,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5982,"src":"6938:7:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6011,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5995,"src":"6947:16:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":6012,"name":"subtractedValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5984,"src":"6966:15:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6947:34:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6008,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6270,"src":"6922:8:25","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":6014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6922:60:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6015,"nodeType":"ExpressionStatement","src":"6922:60:25"}]},{"expression":{"hexValue":"74727565","id":6017,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7010:4:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":5988,"id":6018,"nodeType":"Return","src":"7003:11:25"}]},"documentation":{"id":5980,"nodeType":"StructuredDocumentation","src":"6113:476:25","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","id":6020,"implemented":true,"kind":"function","modifiers":[],"name":"decreaseAllowance","nameLocation":"6603:17:25","nodeType":"FunctionDefinition","parameters":{"id":5985,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5982,"mutability":"mutable","name":"spender","nameLocation":"6629:7:25","nodeType":"VariableDeclaration","scope":6020,"src":"6621:15:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5981,"name":"address","nodeType":"ElementaryTypeName","src":"6621:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5984,"mutability":"mutable","name":"subtractedValue","nameLocation":"6646:15:25","nodeType":"VariableDeclaration","scope":6020,"src":"6638:23:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5983,"name":"uint256","nodeType":"ElementaryTypeName","src":"6638:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6620:42:25"},"returnParameters":{"id":5988,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5987,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6020,"src":"6687:4:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5986,"name":"bool","nodeType":"ElementaryTypeName","src":"6687:4:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6686:6:25"},"scope":6336,"src":"6594:427:25","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":6096,"nodeType":"Block","src":"7592:543:25","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6036,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6031,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6023,"src":"7610:4:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":6034,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7626:1:25","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":6033,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7618:7:25","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6032,"name":"address","nodeType":"ElementaryTypeName","src":"7618:7:25","typeDescriptions":{}}},"id":6035,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7618:10:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7610:18:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a207472616e736665722066726f6d20746865207a65726f2061646472657373","id":6037,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7630:39:25","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":6030,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7602:7:25","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6038,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7602:68:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6039,"nodeType":"ExpressionStatement","src":"7602:68:25"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6046,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6041,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6025,"src":"7688:2:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":6044,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7702:1:25","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":6043,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7694:7:25","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6042,"name":"address","nodeType":"ElementaryTypeName","src":"7694:7:25","typeDescriptions":{}}},"id":6045,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7694:10:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7688:16:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a207472616e7366657220746f20746865207a65726f2061646472657373","id":6047,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7706:37:25","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":6040,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7680:7:25","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6048,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7680:64:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6049,"nodeType":"ExpressionStatement","src":"7680:64:25"},{"expression":{"arguments":[{"id":6051,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6023,"src":"7776:4:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6052,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6025,"src":"7782:2:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6053,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6027,"src":"7786:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6050,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6324,"src":"7755:20:25","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":6054,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7755:38:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6055,"nodeType":"ExpressionStatement","src":"7755:38:25"},{"assignments":[6057],"declarations":[{"constant":false,"id":6057,"mutability":"mutable","name":"fromBalance","nameLocation":"7812:11:25","nodeType":"VariableDeclaration","scope":6096,"src":"7804:19:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6056,"name":"uint256","nodeType":"ElementaryTypeName","src":"7804:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6061,"initialValue":{"baseExpression":{"id":6058,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5766,"src":"7826:9:25","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":6060,"indexExpression":{"id":6059,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6023,"src":"7836:4:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7826:15:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7804:37:25"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6065,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6063,"name":"fromBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6057,"src":"7859:11:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":6064,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6027,"src":"7874:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7859:21:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365","id":6066,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7882:40:25","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":6062,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7851:7:25","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6067,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7851:72:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6068,"nodeType":"ExpressionStatement","src":"7851:72:25"},{"id":6077,"nodeType":"UncheckedBlock","src":"7933:73:25","statements":[{"expression":{"id":6075,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":6069,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5766,"src":"7957:9:25","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":6071,"indexExpression":{"id":6070,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6023,"src":"7967:4:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7957:15:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6072,"name":"fromBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6057,"src":"7975:11:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":6073,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6027,"src":"7989:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7975:20:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7957:38:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6076,"nodeType":"ExpressionStatement","src":"7957:38:25"}]},{"expression":{"id":6082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":6078,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5766,"src":"8015:9:25","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":6080,"indexExpression":{"id":6079,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6025,"src":"8025:2:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8015:13:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":6081,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6027,"src":"8032:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8015:23:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6083,"nodeType":"ExpressionStatement","src":"8015:23:25"},{"eventCall":{"arguments":[{"id":6085,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6023,"src":"8063:4:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6086,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6025,"src":"8069:2:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6087,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6027,"src":"8073:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6084,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6348,"src":"8054:8:25","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":6088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8054:26:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6089,"nodeType":"EmitStatement","src":"8049:31:25"},{"expression":{"arguments":[{"id":6091,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6023,"src":"8111:4:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6092,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6025,"src":"8117:2:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6093,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6027,"src":"8121:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6090,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6335,"src":"8091:19:25","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":6094,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8091:37:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6095,"nodeType":"ExpressionStatement","src":"8091:37:25"}]},"documentation":{"id":6021,"nodeType":"StructuredDocumentation","src":"7027:452:25","text":" @dev Moves `amount` of tokens from `sender` to `recipient`.\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`."},"id":6097,"implemented":true,"kind":"function","modifiers":[],"name":"_transfer","nameLocation":"7493:9:25","nodeType":"FunctionDefinition","parameters":{"id":6028,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6023,"mutability":"mutable","name":"from","nameLocation":"7520:4:25","nodeType":"VariableDeclaration","scope":6097,"src":"7512:12:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6022,"name":"address","nodeType":"ElementaryTypeName","src":"7512:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6025,"mutability":"mutable","name":"to","nameLocation":"7542:2:25","nodeType":"VariableDeclaration","scope":6097,"src":"7534:10:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6024,"name":"address","nodeType":"ElementaryTypeName","src":"7534:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6027,"mutability":"mutable","name":"amount","nameLocation":"7562:6:25","nodeType":"VariableDeclaration","scope":6097,"src":"7554:14:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6026,"name":"uint256","nodeType":"ElementaryTypeName","src":"7554:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7502:72:25"},"returnParameters":{"id":6029,"nodeType":"ParameterList","parameters":[],"src":"7592:0:25"},"scope":6336,"src":"7484:651:25","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":6152,"nodeType":"Block","src":"8476:324:25","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6106,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6100,"src":"8494:7:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":6109,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8513:1:25","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":6108,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8505:7:25","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6107,"name":"address","nodeType":"ElementaryTypeName","src":"8505:7:25","typeDescriptions":{}}},"id":6110,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8505:10:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8494:21:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a206d696e7420746f20746865207a65726f2061646472657373","id":6112,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8517:33:25","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":6105,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8486:7:25","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6113,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8486:65:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6114,"nodeType":"ExpressionStatement","src":"8486:65:25"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":6118,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8591:1:25","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":6117,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8583:7:25","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6116,"name":"address","nodeType":"ElementaryTypeName","src":"8583:7:25","typeDescriptions":{}}},"id":6119,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8583:10:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6120,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6100,"src":"8595:7:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6121,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6102,"src":"8604:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6115,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6324,"src":"8562:20:25","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":6122,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8562:49:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6123,"nodeType":"ExpressionStatement","src":"8562:49:25"},{"expression":{"id":6126,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6124,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5774,"src":"8622:12:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":6125,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6102,"src":"8638:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8622:22:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6127,"nodeType":"ExpressionStatement","src":"8622:22:25"},{"expression":{"id":6132,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":6128,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5766,"src":"8654:9:25","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":6130,"indexExpression":{"id":6129,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6100,"src":"8664:7:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8654:18:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":6131,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6102,"src":"8676:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8654:28:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6133,"nodeType":"ExpressionStatement","src":"8654:28:25"},{"eventCall":{"arguments":[{"arguments":[{"hexValue":"30","id":6137,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8714:1:25","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":6136,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8706:7:25","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6135,"name":"address","nodeType":"ElementaryTypeName","src":"8706:7:25","typeDescriptions":{}}},"id":6138,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8706:10:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6139,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6100,"src":"8718:7:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6140,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6102,"src":"8727:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6134,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6348,"src":"8697:8:25","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":6141,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8697:37:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6142,"nodeType":"EmitStatement","src":"8692:42:25"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":6146,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8773:1:25","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":6145,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8765:7:25","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6144,"name":"address","nodeType":"ElementaryTypeName","src":"8765:7:25","typeDescriptions":{}}},"id":6147,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8765:10:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6148,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6100,"src":"8777:7:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6149,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6102,"src":"8786:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6143,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6335,"src":"8745:19:25","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":6150,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8745:48:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6151,"nodeType":"ExpressionStatement","src":"8745:48:25"}]},"documentation":{"id":6098,"nodeType":"StructuredDocumentation","src":"8141:265:25","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."},"id":6153,"implemented":true,"kind":"function","modifiers":[],"name":"_mint","nameLocation":"8420:5:25","nodeType":"FunctionDefinition","parameters":{"id":6103,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6100,"mutability":"mutable","name":"account","nameLocation":"8434:7:25","nodeType":"VariableDeclaration","scope":6153,"src":"8426:15:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6099,"name":"address","nodeType":"ElementaryTypeName","src":"8426:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6102,"mutability":"mutable","name":"amount","nameLocation":"8451:6:25","nodeType":"VariableDeclaration","scope":6153,"src":"8443:14:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6101,"name":"uint256","nodeType":"ElementaryTypeName","src":"8443:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8425:33:25"},"returnParameters":{"id":6104,"nodeType":"ParameterList","parameters":[],"src":"8476:0:25"},"scope":6336,"src":"8411:389:25","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":6224,"nodeType":"Block","src":"9185:511:25","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6162,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6156,"src":"9203:7:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":6165,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9222:1:25","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":6164,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9214:7:25","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6163,"name":"address","nodeType":"ElementaryTypeName","src":"9214:7:25","typeDescriptions":{}}},"id":6166,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9214:10:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9203:21:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a206275726e2066726f6d20746865207a65726f2061646472657373","id":6168,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9226:35:25","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":6161,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9195:7:25","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6169,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9195:67:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6170,"nodeType":"ExpressionStatement","src":"9195:67:25"},{"expression":{"arguments":[{"id":6172,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6156,"src":"9294:7:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":6175,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9311:1:25","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":6174,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9303:7:25","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6173,"name":"address","nodeType":"ElementaryTypeName","src":"9303:7:25","typeDescriptions":{}}},"id":6176,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9303:10:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6177,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6158,"src":"9315:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6171,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6324,"src":"9273:20:25","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":6178,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9273:49:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6179,"nodeType":"ExpressionStatement","src":"9273:49:25"},{"assignments":[6181],"declarations":[{"constant":false,"id":6181,"mutability":"mutable","name":"accountBalance","nameLocation":"9341:14:25","nodeType":"VariableDeclaration","scope":6224,"src":"9333:22:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6180,"name":"uint256","nodeType":"ElementaryTypeName","src":"9333:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6185,"initialValue":{"baseExpression":{"id":6182,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5766,"src":"9358:9:25","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":6184,"indexExpression":{"id":6183,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6156,"src":"9368:7:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9358:18:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9333:43:25"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6189,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6187,"name":"accountBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6181,"src":"9394:14:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":6188,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6158,"src":"9412:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9394:24:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a206275726e20616d6f756e7420657863656564732062616c616e6365","id":6190,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9420:36:25","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":6186,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9386:7:25","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9386:71:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6192,"nodeType":"ExpressionStatement","src":"9386:71:25"},{"id":6201,"nodeType":"UncheckedBlock","src":"9467:79:25","statements":[{"expression":{"id":6199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":6193,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5766,"src":"9491:9:25","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":6195,"indexExpression":{"id":6194,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6156,"src":"9501:7:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9491:18:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6196,"name":"accountBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6181,"src":"9512:14:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":6197,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6158,"src":"9529:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9512:23:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9491:44:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6200,"nodeType":"ExpressionStatement","src":"9491:44:25"}]},{"expression":{"id":6204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6202,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5774,"src":"9555:12:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":6203,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6158,"src":"9571:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9555:22:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6205,"nodeType":"ExpressionStatement","src":"9555:22:25"},{"eventCall":{"arguments":[{"id":6207,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6156,"src":"9602:7:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":6210,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9619:1:25","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":6209,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9611:7:25","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6208,"name":"address","nodeType":"ElementaryTypeName","src":"9611:7:25","typeDescriptions":{}}},"id":6211,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9611:10:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6212,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6158,"src":"9623:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6206,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6348,"src":"9593:8:25","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":6213,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9593:37:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6214,"nodeType":"EmitStatement","src":"9588:42:25"},{"expression":{"arguments":[{"id":6216,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6156,"src":"9661:7:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":6219,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9678:1:25","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":6218,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9670:7:25","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6217,"name":"address","nodeType":"ElementaryTypeName","src":"9670:7:25","typeDescriptions":{}}},"id":6220,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9670:10:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6221,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6158,"src":"9682:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6215,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6335,"src":"9641:19:25","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":6222,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9641:48:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6223,"nodeType":"ExpressionStatement","src":"9641:48:25"}]},"documentation":{"id":6154,"nodeType":"StructuredDocumentation","src":"8806:309:25","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."},"id":6225,"implemented":true,"kind":"function","modifiers":[],"name":"_burn","nameLocation":"9129:5:25","nodeType":"FunctionDefinition","parameters":{"id":6159,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6156,"mutability":"mutable","name":"account","nameLocation":"9143:7:25","nodeType":"VariableDeclaration","scope":6225,"src":"9135:15:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6155,"name":"address","nodeType":"ElementaryTypeName","src":"9135:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6158,"mutability":"mutable","name":"amount","nameLocation":"9160:6:25","nodeType":"VariableDeclaration","scope":6225,"src":"9152:14:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6157,"name":"uint256","nodeType":"ElementaryTypeName","src":"9152:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9134:33:25"},"returnParameters":{"id":6160,"nodeType":"ParameterList","parameters":[],"src":"9185:0:25"},"scope":6336,"src":"9120:576:25","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":6269,"nodeType":"Block","src":"10232:257:25","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6236,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6228,"src":"10250:5:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":6239,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10267:1:25","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":6238,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10259:7:25","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6237,"name":"address","nodeType":"ElementaryTypeName","src":"10259:7:25","typeDescriptions":{}}},"id":6240,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10259:10:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10250:19:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373","id":6242,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10271:38:25","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":6235,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"10242:7:25","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6243,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10242:68:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6244,"nodeType":"ExpressionStatement","src":"10242:68:25"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6251,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6246,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6230,"src":"10328:7:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":6249,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10347:1:25","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":6248,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10339:7:25","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6247,"name":"address","nodeType":"ElementaryTypeName","src":"10339:7:25","typeDescriptions":{}}},"id":6250,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10339:10:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10328:21:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a20617070726f766520746f20746865207a65726f2061646472657373","id":6252,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10351:36:25","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":6245,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"10320:7:25","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6253,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10320:68:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6254,"nodeType":"ExpressionStatement","src":"10320:68:25"},{"expression":{"id":6261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":6255,"name":"_allowances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5772,"src":"10399:11:25","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":6258,"indexExpression":{"id":6256,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6228,"src":"10411:5:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10399:18:25","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":6259,"indexExpression":{"id":6257,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6230,"src":"10418:7:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10399:27:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":6260,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6232,"src":"10429:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10399:36:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6262,"nodeType":"ExpressionStatement","src":"10399:36:25"},{"eventCall":{"arguments":[{"id":6264,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6228,"src":"10459:5:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6265,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6230,"src":"10466:7:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6266,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6232,"src":"10475:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6263,"name":"Approval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6357,"src":"10450:8:25","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":6267,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10450:32:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6268,"nodeType":"EmitStatement","src":"10445:37:25"}]},"documentation":{"id":6226,"nodeType":"StructuredDocumentation","src":"9702:412:25","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."},"id":6270,"implemented":true,"kind":"function","modifiers":[],"name":"_approve","nameLocation":"10128:8:25","nodeType":"FunctionDefinition","parameters":{"id":6233,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6228,"mutability":"mutable","name":"owner","nameLocation":"10154:5:25","nodeType":"VariableDeclaration","scope":6270,"src":"10146:13:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6227,"name":"address","nodeType":"ElementaryTypeName","src":"10146:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6230,"mutability":"mutable","name":"spender","nameLocation":"10177:7:25","nodeType":"VariableDeclaration","scope":6270,"src":"10169:15:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6229,"name":"address","nodeType":"ElementaryTypeName","src":"10169:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6232,"mutability":"mutable","name":"amount","nameLocation":"10202:6:25","nodeType":"VariableDeclaration","scope":6270,"src":"10194:14:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6231,"name":"uint256","nodeType":"ElementaryTypeName","src":"10194:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10136:78:25"},"returnParameters":{"id":6234,"nodeType":"ParameterList","parameters":[],"src":"10232:0:25"},"scope":6336,"src":"10119:370:25","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":6312,"nodeType":"Block","src":"10890:321:25","statements":[{"assignments":[6281],"declarations":[{"constant":false,"id":6281,"mutability":"mutable","name":"currentAllowance","nameLocation":"10908:16:25","nodeType":"VariableDeclaration","scope":6312,"src":"10900:24:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6280,"name":"uint256","nodeType":"ElementaryTypeName","src":"10900:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6286,"initialValue":{"arguments":[{"id":6283,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6273,"src":"10937:5:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6284,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6275,"src":"10944:7:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":6282,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5892,"src":"10927:9:25","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":6285,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10927:25:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10900:52:25"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6287,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6281,"src":"10966:16:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"arguments":[{"id":6290,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10991:7:25","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":6289,"name":"uint256","nodeType":"ElementaryTypeName","src":"10991:7:25","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":6288,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"10986:4:25","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":6291,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10986:13:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":6292,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11000:3:25","memberName":"max","nodeType":"MemberAccess","src":"10986:17:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10966:37:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6311,"nodeType":"IfStatement","src":"10962:243:25","trueBody":{"id":6310,"nodeType":"Block","src":"11005:200:25","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6295,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6281,"src":"11027:16:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":6296,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6277,"src":"11047:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11027:26:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a20696e73756666696369656e7420616c6c6f77616e6365","id":6298,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11055:31:25","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":6294,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"11019:7:25","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6299,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11019:68:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6300,"nodeType":"ExpressionStatement","src":"11019:68:25"},{"id":6309,"nodeType":"UncheckedBlock","src":"11101:94:25","statements":[{"expression":{"arguments":[{"id":6302,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6273,"src":"11138:5:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6303,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6275,"src":"11145:7:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6306,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6304,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6281,"src":"11154:16:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":6305,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6277,"src":"11173:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11154:25:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6301,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6270,"src":"11129:8:25","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":6307,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11129:51:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6308,"nodeType":"ExpressionStatement","src":"11129:51:25"}]}]}}]},"documentation":{"id":6271,"nodeType":"StructuredDocumentation","src":"10495:270:25","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."},"id":6313,"implemented":true,"kind":"function","modifiers":[],"name":"_spendAllowance","nameLocation":"10779:15:25","nodeType":"FunctionDefinition","parameters":{"id":6278,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6273,"mutability":"mutable","name":"owner","nameLocation":"10812:5:25","nodeType":"VariableDeclaration","scope":6313,"src":"10804:13:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6272,"name":"address","nodeType":"ElementaryTypeName","src":"10804:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6275,"mutability":"mutable","name":"spender","nameLocation":"10835:7:25","nodeType":"VariableDeclaration","scope":6313,"src":"10827:15:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6274,"name":"address","nodeType":"ElementaryTypeName","src":"10827:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6277,"mutability":"mutable","name":"amount","nameLocation":"10860:6:25","nodeType":"VariableDeclaration","scope":6313,"src":"10852:14:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6276,"name":"uint256","nodeType":"ElementaryTypeName","src":"10852:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10794:78:25"},"returnParameters":{"id":6279,"nodeType":"ParameterList","parameters":[],"src":"10890:0:25"},"scope":6336,"src":"10770:441:25","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":6323,"nodeType":"Block","src":"11914:2:25","statements":[]},"documentation":{"id":6314,"nodeType":"StructuredDocumentation","src":"11217:573:25","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]."},"id":6324,"implemented":true,"kind":"function","modifiers":[],"name":"_beforeTokenTransfer","nameLocation":"11804:20:25","nodeType":"FunctionDefinition","parameters":{"id":6321,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6316,"mutability":"mutable","name":"from","nameLocation":"11842:4:25","nodeType":"VariableDeclaration","scope":6324,"src":"11834:12:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6315,"name":"address","nodeType":"ElementaryTypeName","src":"11834:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6318,"mutability":"mutable","name":"to","nameLocation":"11864:2:25","nodeType":"VariableDeclaration","scope":6324,"src":"11856:10:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6317,"name":"address","nodeType":"ElementaryTypeName","src":"11856:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6320,"mutability":"mutable","name":"amount","nameLocation":"11884:6:25","nodeType":"VariableDeclaration","scope":6324,"src":"11876:14:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6319,"name":"uint256","nodeType":"ElementaryTypeName","src":"11876:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11824:72:25"},"returnParameters":{"id":6322,"nodeType":"ParameterList","parameters":[],"src":"11914:0:25"},"scope":6336,"src":"11795:121:25","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":6334,"nodeType":"Block","src":"12622:2:25","statements":[]},"documentation":{"id":6325,"nodeType":"StructuredDocumentation","src":"11922:577:25","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]."},"id":6335,"implemented":true,"kind":"function","modifiers":[],"name":"_afterTokenTransfer","nameLocation":"12513:19:25","nodeType":"FunctionDefinition","parameters":{"id":6332,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6327,"mutability":"mutable","name":"from","nameLocation":"12550:4:25","nodeType":"VariableDeclaration","scope":6335,"src":"12542:12:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6326,"name":"address","nodeType":"ElementaryTypeName","src":"12542:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6329,"mutability":"mutable","name":"to","nameLocation":"12572:2:25","nodeType":"VariableDeclaration","scope":6335,"src":"12564:10:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6328,"name":"address","nodeType":"ElementaryTypeName","src":"12564:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6331,"mutability":"mutable","name":"amount","nameLocation":"12592:6:25","nodeType":"VariableDeclaration","scope":6335,"src":"12584:14:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6330,"name":"uint256","nodeType":"ElementaryTypeName","src":"12584:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12532:72:25"},"returnParameters":{"id":6333,"nodeType":"ParameterList","parameters":[],"src":"12622:0:25"},"scope":6336,"src":"12504:120:25","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":6337,"src":"1403:11223:25","usedErrors":[]}],"src":"105:12522:25"},"id":25},"@openzeppelin/contracts/token/ERC20/IERC20.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","exportedSymbols":{"IERC20":[6414]},"id":6415,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":6338,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"106:23:26"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC20","contractDependencies":[],"contractKind":"interface","documentation":{"id":6339,"nodeType":"StructuredDocumentation","src":"131:70:26","text":" @dev Interface of the ERC20 standard as defined in the EIP."},"fullyImplemented":false,"id":6414,"linearizedBaseContracts":[6414],"name":"IERC20","nameLocation":"212:6:26","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":6340,"nodeType":"StructuredDocumentation","src":"225:158:26","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","id":6348,"name":"Transfer","nameLocation":"394:8:26","nodeType":"EventDefinition","parameters":{"id":6347,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6342,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"419:4:26","nodeType":"VariableDeclaration","scope":6348,"src":"403:20:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6341,"name":"address","nodeType":"ElementaryTypeName","src":"403:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6344,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"441:2:26","nodeType":"VariableDeclaration","scope":6348,"src":"425:18:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6343,"name":"address","nodeType":"ElementaryTypeName","src":"425:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6346,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"453:5:26","nodeType":"VariableDeclaration","scope":6348,"src":"445:13:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6345,"name":"uint256","nodeType":"ElementaryTypeName","src":"445:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"402:57:26"},"src":"388:72:26"},{"anonymous":false,"documentation":{"id":6349,"nodeType":"StructuredDocumentation","src":"466:148:26","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","id":6357,"name":"Approval","nameLocation":"625:8:26","nodeType":"EventDefinition","parameters":{"id":6356,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6351,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"650:5:26","nodeType":"VariableDeclaration","scope":6357,"src":"634:21:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6350,"name":"address","nodeType":"ElementaryTypeName","src":"634:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6353,"indexed":true,"mutability":"mutable","name":"spender","nameLocation":"673:7:26","nodeType":"VariableDeclaration","scope":6357,"src":"657:23:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6352,"name":"address","nodeType":"ElementaryTypeName","src":"657:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6355,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"690:5:26","nodeType":"VariableDeclaration","scope":6357,"src":"682:13:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6354,"name":"uint256","nodeType":"ElementaryTypeName","src":"682:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"633:63:26"},"src":"619:78:26"},{"documentation":{"id":6358,"nodeType":"StructuredDocumentation","src":"703:66:26","text":" @dev Returns the amount of tokens in existence."},"functionSelector":"18160ddd","id":6363,"implemented":false,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"783:11:26","nodeType":"FunctionDefinition","parameters":{"id":6359,"nodeType":"ParameterList","parameters":[],"src":"794:2:26"},"returnParameters":{"id":6362,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6361,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6363,"src":"820:7:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6360,"name":"uint256","nodeType":"ElementaryTypeName","src":"820:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"819:9:26"},"scope":6414,"src":"774:55:26","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":6364,"nodeType":"StructuredDocumentation","src":"835:72:26","text":" @dev Returns the amount of tokens owned by `account`."},"functionSelector":"70a08231","id":6371,"implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"921:9:26","nodeType":"FunctionDefinition","parameters":{"id":6367,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6366,"mutability":"mutable","name":"account","nameLocation":"939:7:26","nodeType":"VariableDeclaration","scope":6371,"src":"931:15:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6365,"name":"address","nodeType":"ElementaryTypeName","src":"931:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"930:17:26"},"returnParameters":{"id":6370,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6369,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6371,"src":"971:7:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6368,"name":"uint256","nodeType":"ElementaryTypeName","src":"971:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"970:9:26"},"scope":6414,"src":"912:68:26","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":6372,"nodeType":"StructuredDocumentation","src":"986:202:26","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","id":6381,"implemented":false,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"1202:8:26","nodeType":"FunctionDefinition","parameters":{"id":6377,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6374,"mutability":"mutable","name":"to","nameLocation":"1219:2:26","nodeType":"VariableDeclaration","scope":6381,"src":"1211:10:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6373,"name":"address","nodeType":"ElementaryTypeName","src":"1211:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6376,"mutability":"mutable","name":"amount","nameLocation":"1231:6:26","nodeType":"VariableDeclaration","scope":6381,"src":"1223:14:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6375,"name":"uint256","nodeType":"ElementaryTypeName","src":"1223:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1210:28:26"},"returnParameters":{"id":6380,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6379,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6381,"src":"1257:4:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6378,"name":"bool","nodeType":"ElementaryTypeName","src":"1257:4:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1256:6:26"},"scope":6414,"src":"1193:70:26","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":6382,"nodeType":"StructuredDocumentation","src":"1269:264:26","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","id":6391,"implemented":false,"kind":"function","modifiers":[],"name":"allowance","nameLocation":"1547:9:26","nodeType":"FunctionDefinition","parameters":{"id":6387,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6384,"mutability":"mutable","name":"owner","nameLocation":"1565:5:26","nodeType":"VariableDeclaration","scope":6391,"src":"1557:13:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6383,"name":"address","nodeType":"ElementaryTypeName","src":"1557:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6386,"mutability":"mutable","name":"spender","nameLocation":"1580:7:26","nodeType":"VariableDeclaration","scope":6391,"src":"1572:15:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6385,"name":"address","nodeType":"ElementaryTypeName","src":"1572:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1556:32:26"},"returnParameters":{"id":6390,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6389,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6391,"src":"1612:7:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6388,"name":"uint256","nodeType":"ElementaryTypeName","src":"1612:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1611:9:26"},"scope":6414,"src":"1538:83:26","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":6392,"nodeType":"StructuredDocumentation","src":"1627:642:26","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","id":6401,"implemented":false,"kind":"function","modifiers":[],"name":"approve","nameLocation":"2283:7:26","nodeType":"FunctionDefinition","parameters":{"id":6397,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6394,"mutability":"mutable","name":"spender","nameLocation":"2299:7:26","nodeType":"VariableDeclaration","scope":6401,"src":"2291:15:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6393,"name":"address","nodeType":"ElementaryTypeName","src":"2291:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6396,"mutability":"mutable","name":"amount","nameLocation":"2316:6:26","nodeType":"VariableDeclaration","scope":6401,"src":"2308:14:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6395,"name":"uint256","nodeType":"ElementaryTypeName","src":"2308:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2290:33:26"},"returnParameters":{"id":6400,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6399,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6401,"src":"2342:4:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6398,"name":"bool","nodeType":"ElementaryTypeName","src":"2342:4:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2341:6:26"},"scope":6414,"src":"2274:74:26","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":6402,"nodeType":"StructuredDocumentation","src":"2354:287:26","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","id":6413,"implemented":false,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"2655:12:26","nodeType":"FunctionDefinition","parameters":{"id":6409,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6404,"mutability":"mutable","name":"from","nameLocation":"2685:4:26","nodeType":"VariableDeclaration","scope":6413,"src":"2677:12:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6403,"name":"address","nodeType":"ElementaryTypeName","src":"2677:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6406,"mutability":"mutable","name":"to","nameLocation":"2707:2:26","nodeType":"VariableDeclaration","scope":6413,"src":"2699:10:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6405,"name":"address","nodeType":"ElementaryTypeName","src":"2699:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6408,"mutability":"mutable","name":"amount","nameLocation":"2727:6:26","nodeType":"VariableDeclaration","scope":6413,"src":"2719:14:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6407,"name":"uint256","nodeType":"ElementaryTypeName","src":"2719:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2667:72:26"},"returnParameters":{"id":6412,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6411,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6413,"src":"2758:4:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6410,"name":"bool","nodeType":"ElementaryTypeName","src":"2758:4:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2757:6:26"},"scope":6414,"src":"2646:118:26","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":6415,"src":"202:2564:26","usedErrors":[]}],"src":"106:2661:26"},"id":26},"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol","exportedSymbols":{"IERC20":[6414],"IERC20Metadata":[6439]},"id":6440,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":6416,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"110:23:27"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"../IERC20.sol","id":6417,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6440,"sourceUnit":6415,"src":"135:23:27","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":6419,"name":"IERC20","nameLocations":["305:6:27"],"nodeType":"IdentifierPath","referencedDeclaration":6414,"src":"305:6:27"},"id":6420,"nodeType":"InheritanceSpecifier","src":"305:6:27"}],"canonicalName":"IERC20Metadata","contractDependencies":[],"contractKind":"interface","documentation":{"id":6418,"nodeType":"StructuredDocumentation","src":"160:116:27","text":" @dev Interface for the optional metadata functions from the ERC20 standard.\n _Available since v4.1._"},"fullyImplemented":false,"id":6439,"linearizedBaseContracts":[6439,6414],"name":"IERC20Metadata","nameLocation":"287:14:27","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":6421,"nodeType":"StructuredDocumentation","src":"318:54:27","text":" @dev Returns the name of the token."},"functionSelector":"06fdde03","id":6426,"implemented":false,"kind":"function","modifiers":[],"name":"name","nameLocation":"386:4:27","nodeType":"FunctionDefinition","parameters":{"id":6422,"nodeType":"ParameterList","parameters":[],"src":"390:2:27"},"returnParameters":{"id":6425,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6424,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6426,"src":"416:13:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6423,"name":"string","nodeType":"ElementaryTypeName","src":"416:6:27","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"415:15:27"},"scope":6439,"src":"377:54:27","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":6427,"nodeType":"StructuredDocumentation","src":"437:56:27","text":" @dev Returns the symbol of the token."},"functionSelector":"95d89b41","id":6432,"implemented":false,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"507:6:27","nodeType":"FunctionDefinition","parameters":{"id":6428,"nodeType":"ParameterList","parameters":[],"src":"513:2:27"},"returnParameters":{"id":6431,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6430,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6432,"src":"539:13:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6429,"name":"string","nodeType":"ElementaryTypeName","src":"539:6:27","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"538:15:27"},"scope":6439,"src":"498:56:27","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":6433,"nodeType":"StructuredDocumentation","src":"560:65:27","text":" @dev Returns the decimals places of the token."},"functionSelector":"313ce567","id":6438,"implemented":false,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"639:8:27","nodeType":"FunctionDefinition","parameters":{"id":6434,"nodeType":"ParameterList","parameters":[],"src":"647:2:27"},"returnParameters":{"id":6437,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6436,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6438,"src":"673:5:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":6435,"name":"uint8","nodeType":"ElementaryTypeName","src":"673:5:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"672:7:27"},"scope":6439,"src":"630:50:27","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":6440,"src":"277:405:27","usedErrors":[]}],"src":"110:573:27"},"id":27},"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol","exportedSymbols":{"Address":[8113],"IERC20":[6414],"SafeERC20":[6663]},"id":6664,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":6441,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"100:23:28"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"../IERC20.sol","id":6442,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6664,"sourceUnit":6415,"src":"125:23:28","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Address.sol","file":"../../../utils/Address.sol","id":6443,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6664,"sourceUnit":8114,"src":"149:36:28","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"SafeERC20","contractDependencies":[],"contractKind":"library","documentation":{"id":6444,"nodeType":"StructuredDocumentation","src":"187:457:28","text":" @title SafeERC20\n @dev Wrappers around ERC20 operations that throw on failure (when the token\n contract returns false). Tokens that return no value (and instead revert or\n throw on failure) are also supported, non-reverting calls are assumed to be\n successful.\n To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,\n which allows you to call the safe operations as `token.safeTransfer(...)`, etc."},"fullyImplemented":true,"id":6663,"linearizedBaseContracts":[6663],"name":"SafeERC20","nameLocation":"653:9:28","nodeType":"ContractDefinition","nodes":[{"global":false,"id":6447,"libraryName":{"id":6445,"name":"Address","nameLocations":["675:7:28"],"nodeType":"IdentifierPath","referencedDeclaration":8113,"src":"675:7:28"},"nodeType":"UsingForDirective","src":"669:26:28","typeName":{"id":6446,"name":"address","nodeType":"ElementaryTypeName","src":"687:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"body":{"id":6469,"nodeType":"Block","src":"803:103:28","statements":[{"expression":{"arguments":[{"id":6458,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6450,"src":"833:5:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6414","typeString":"contract IERC20"}},{"arguments":[{"expression":{"expression":{"id":6461,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6450,"src":"863:5:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6414","typeString":"contract IERC20"}},"id":6462,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"869:8:28","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":6381,"src":"863:14:28","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":6463,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"878:8:28","memberName":"selector","nodeType":"MemberAccess","src":"863:23:28","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":6464,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6452,"src":"888:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6465,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6454,"src":"892:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6459,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"840:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6460,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"844:18:28","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"840:22:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":6466,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"840:58:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$6414","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6457,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6662,"src":"813:19:28","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$6414_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":6467,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"813:86:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6468,"nodeType":"ExpressionStatement","src":"813:86:28"}]},"id":6470,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransfer","nameLocation":"710:12:28","nodeType":"FunctionDefinition","parameters":{"id":6455,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6450,"mutability":"mutable","name":"token","nameLocation":"739:5:28","nodeType":"VariableDeclaration","scope":6470,"src":"732:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6414","typeString":"contract IERC20"},"typeName":{"id":6449,"nodeType":"UserDefinedTypeName","pathNode":{"id":6448,"name":"IERC20","nameLocations":["732:6:28"],"nodeType":"IdentifierPath","referencedDeclaration":6414,"src":"732:6:28"},"referencedDeclaration":6414,"src":"732:6:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6414","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":6452,"mutability":"mutable","name":"to","nameLocation":"762:2:28","nodeType":"VariableDeclaration","scope":6470,"src":"754:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6451,"name":"address","nodeType":"ElementaryTypeName","src":"754:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6454,"mutability":"mutable","name":"value","nameLocation":"782:5:28","nodeType":"VariableDeclaration","scope":6470,"src":"774:13:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6453,"name":"uint256","nodeType":"ElementaryTypeName","src":"774:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"722:71:28"},"returnParameters":{"id":6456,"nodeType":"ParameterList","parameters":[],"src":"803:0:28"},"scope":6663,"src":"701:205:28","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":6495,"nodeType":"Block","src":"1040:113:28","statements":[{"expression":{"arguments":[{"id":6483,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6473,"src":"1070:5:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6414","typeString":"contract IERC20"}},{"arguments":[{"expression":{"expression":{"id":6486,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6473,"src":"1100:5:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6414","typeString":"contract IERC20"}},"id":6487,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1106:12:28","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":6413,"src":"1100:18:28","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":6488,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1119:8:28","memberName":"selector","nodeType":"MemberAccess","src":"1100:27:28","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":6489,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6475,"src":"1129:4:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6490,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6477,"src":"1135:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6491,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6479,"src":"1139:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6484,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1077:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6485,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1081:18:28","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"1077:22:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":6492,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1077:68:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$6414","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6482,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6662,"src":"1050:19:28","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$6414_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":6493,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1050:96:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6494,"nodeType":"ExpressionStatement","src":"1050:96:28"}]},"id":6496,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"921:16:28","nodeType":"FunctionDefinition","parameters":{"id":6480,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6473,"mutability":"mutable","name":"token","nameLocation":"954:5:28","nodeType":"VariableDeclaration","scope":6496,"src":"947:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6414","typeString":"contract IERC20"},"typeName":{"id":6472,"nodeType":"UserDefinedTypeName","pathNode":{"id":6471,"name":"IERC20","nameLocations":["947:6:28"],"nodeType":"IdentifierPath","referencedDeclaration":6414,"src":"947:6:28"},"referencedDeclaration":6414,"src":"947:6:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6414","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":6475,"mutability":"mutable","name":"from","nameLocation":"977:4:28","nodeType":"VariableDeclaration","scope":6496,"src":"969:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6474,"name":"address","nodeType":"ElementaryTypeName","src":"969:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6477,"mutability":"mutable","name":"to","nameLocation":"999:2:28","nodeType":"VariableDeclaration","scope":6496,"src":"991:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6476,"name":"address","nodeType":"ElementaryTypeName","src":"991:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6479,"mutability":"mutable","name":"value","nameLocation":"1019:5:28","nodeType":"VariableDeclaration","scope":6496,"src":"1011:13:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6478,"name":"uint256","nodeType":"ElementaryTypeName","src":"1011:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"937:93:28"},"returnParameters":{"id":6481,"nodeType":"ParameterList","parameters":[],"src":"1040:0:28"},"scope":6663,"src":"912:241:28","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":6539,"nodeType":"Block","src":"1519:497:28","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6523,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6510,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6508,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6504,"src":"1768:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":6509,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1777:1:28","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1768:10:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":6511,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1767:12:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":6516,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1808:4:28","typeDescriptions":{"typeIdentifier":"t_contract$_SafeERC20_$6663","typeString":"library SafeERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SafeERC20_$6663","typeString":"library SafeERC20"}],"id":6515,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1800:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6514,"name":"address","nodeType":"ElementaryTypeName","src":"1800:7:28","typeDescriptions":{}}},"id":6517,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1800:13:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6518,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6502,"src":"1815:7:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6512,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6500,"src":"1784:5:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6414","typeString":"contract IERC20"}},"id":6513,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1790:9:28","memberName":"allowance","nodeType":"MemberAccess","referencedDeclaration":6391,"src":"1784:15:28","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":6519,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1784:39:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":6520,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1827:1:28","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1784:44:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":6522,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1783:46:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1767:62:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f20746f206e6f6e2d7a65726f20616c6c6f77616e6365","id":6524,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1843:56:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_ef945ddb1bfdc0da870feb4560d868b047642b4ac7f2fb7f8b7c51cb4a411e25","typeString":"literal_string \"SafeERC20: approve from non-zero to non-zero allowance\""},"value":"SafeERC20: approve from non-zero to non-zero allowance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ef945ddb1bfdc0da870feb4560d868b047642b4ac7f2fb7f8b7c51cb4a411e25","typeString":"literal_string \"SafeERC20: approve from non-zero to non-zero allowance\""}],"id":6507,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1746:7:28","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6525,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1746:163:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6526,"nodeType":"ExpressionStatement","src":"1746:163:28"},{"expression":{"arguments":[{"id":6528,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6500,"src":"1939:5:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6414","typeString":"contract IERC20"}},{"arguments":[{"expression":{"expression":{"id":6531,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6500,"src":"1969:5:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6414","typeString":"contract IERC20"}},"id":6532,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1975:7:28","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":6401,"src":"1969:13:28","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":6533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1983:8:28","memberName":"selector","nodeType":"MemberAccess","src":"1969:22:28","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":6534,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6502,"src":"1993:7:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6535,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6504,"src":"2002:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6529,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1946:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6530,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1950:18:28","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"1946:22:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":6536,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1946:62:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$6414","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6527,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6662,"src":"1919:19:28","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$6414_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":6537,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1919:90:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6538,"nodeType":"ExpressionStatement","src":"1919:90:28"}]},"documentation":{"id":6497,"nodeType":"StructuredDocumentation","src":"1159:249:28","text":" @dev Deprecated. This function has issues similar to the ones found in\n {IERC20-approve}, and its usage is discouraged.\n Whenever possible, use {safeIncreaseAllowance} and\n {safeDecreaseAllowance} instead."},"id":6540,"implemented":true,"kind":"function","modifiers":[],"name":"safeApprove","nameLocation":"1422:11:28","nodeType":"FunctionDefinition","parameters":{"id":6505,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6500,"mutability":"mutable","name":"token","nameLocation":"1450:5:28","nodeType":"VariableDeclaration","scope":6540,"src":"1443:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6414","typeString":"contract IERC20"},"typeName":{"id":6499,"nodeType":"UserDefinedTypeName","pathNode":{"id":6498,"name":"IERC20","nameLocations":["1443:6:28"],"nodeType":"IdentifierPath","referencedDeclaration":6414,"src":"1443:6:28"},"referencedDeclaration":6414,"src":"1443:6:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6414","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":6502,"mutability":"mutable","name":"spender","nameLocation":"1473:7:28","nodeType":"VariableDeclaration","scope":6540,"src":"1465:15:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6501,"name":"address","nodeType":"ElementaryTypeName","src":"1465:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6504,"mutability":"mutable","name":"value","nameLocation":"1498:5:28","nodeType":"VariableDeclaration","scope":6540,"src":"1490:13:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6503,"name":"uint256","nodeType":"ElementaryTypeName","src":"1490:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1433:76:28"},"returnParameters":{"id":6506,"nodeType":"ParameterList","parameters":[],"src":"1519:0:28"},"scope":6663,"src":"1413:603:28","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":6575,"nodeType":"Block","src":"2138:194:28","statements":[{"assignments":[6551],"declarations":[{"constant":false,"id":6551,"mutability":"mutable","name":"newAllowance","nameLocation":"2156:12:28","nodeType":"VariableDeclaration","scope":6575,"src":"2148:20:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6550,"name":"uint256","nodeType":"ElementaryTypeName","src":"2148:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6562,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":6556,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2195:4:28","typeDescriptions":{"typeIdentifier":"t_contract$_SafeERC20_$6663","typeString":"library SafeERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SafeERC20_$6663","typeString":"library SafeERC20"}],"id":6555,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2187:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6554,"name":"address","nodeType":"ElementaryTypeName","src":"2187:7:28","typeDescriptions":{}}},"id":6557,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2187:13:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6558,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6545,"src":"2202:7:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6552,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6543,"src":"2171:5:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6414","typeString":"contract IERC20"}},"id":6553,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2177:9:28","memberName":"allowance","nodeType":"MemberAccess","referencedDeclaration":6391,"src":"2171:15:28","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":6559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2171:39:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":6560,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6547,"src":"2213:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2171:47:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2148:70:28"},{"expression":{"arguments":[{"id":6564,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6543,"src":"2248:5:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6414","typeString":"contract IERC20"}},{"arguments":[{"expression":{"expression":{"id":6567,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6543,"src":"2278:5:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6414","typeString":"contract IERC20"}},"id":6568,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2284:7:28","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":6401,"src":"2278:13:28","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":6569,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2292:8:28","memberName":"selector","nodeType":"MemberAccess","src":"2278:22:28","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":6570,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6545,"src":"2302:7:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6571,"name":"newAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6551,"src":"2311:12:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6565,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2255:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6566,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2259:18:28","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"2255:22:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":6572,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2255:69:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$6414","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6563,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6662,"src":"2228:19:28","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$6414_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":6573,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2228:97:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6574,"nodeType":"ExpressionStatement","src":"2228:97:28"}]},"id":6576,"implemented":true,"kind":"function","modifiers":[],"name":"safeIncreaseAllowance","nameLocation":"2031:21:28","nodeType":"FunctionDefinition","parameters":{"id":6548,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6543,"mutability":"mutable","name":"token","nameLocation":"2069:5:28","nodeType":"VariableDeclaration","scope":6576,"src":"2062:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6414","typeString":"contract IERC20"},"typeName":{"id":6542,"nodeType":"UserDefinedTypeName","pathNode":{"id":6541,"name":"IERC20","nameLocations":["2062:6:28"],"nodeType":"IdentifierPath","referencedDeclaration":6414,"src":"2062:6:28"},"referencedDeclaration":6414,"src":"2062:6:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6414","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":6545,"mutability":"mutable","name":"spender","nameLocation":"2092:7:28","nodeType":"VariableDeclaration","scope":6576,"src":"2084:15:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6544,"name":"address","nodeType":"ElementaryTypeName","src":"2084:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6547,"mutability":"mutable","name":"value","nameLocation":"2117:5:28","nodeType":"VariableDeclaration","scope":6576,"src":"2109:13:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6546,"name":"uint256","nodeType":"ElementaryTypeName","src":"2109:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2052:76:28"},"returnParameters":{"id":6549,"nodeType":"ParameterList","parameters":[],"src":"2138:0:28"},"scope":6663,"src":"2022:310:28","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":6623,"nodeType":"Block","src":"2454:370:28","statements":[{"id":6622,"nodeType":"UncheckedBlock","src":"2464:354:28","statements":[{"assignments":[6587],"declarations":[{"constant":false,"id":6587,"mutability":"mutable","name":"oldAllowance","nameLocation":"2496:12:28","nodeType":"VariableDeclaration","scope":6622,"src":"2488:20:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6586,"name":"uint256","nodeType":"ElementaryTypeName","src":"2488:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6596,"initialValue":{"arguments":[{"arguments":[{"id":6592,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2535:4:28","typeDescriptions":{"typeIdentifier":"t_contract$_SafeERC20_$6663","typeString":"library SafeERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SafeERC20_$6663","typeString":"library SafeERC20"}],"id":6591,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2527:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6590,"name":"address","nodeType":"ElementaryTypeName","src":"2527:7:28","typeDescriptions":{}}},"id":6593,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2527:13:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6594,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6581,"src":"2542:7:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6588,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6579,"src":"2511:5:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6414","typeString":"contract IERC20"}},"id":6589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2517:9:28","memberName":"allowance","nodeType":"MemberAccess","referencedDeclaration":6391,"src":"2511:15:28","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":6595,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2511:39:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2488:62:28"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6598,"name":"oldAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6587,"src":"2572:12:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":6599,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6583,"src":"2588:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2572:21:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5361666545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f","id":6601,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2595:43:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_2c3af60974a758b7e72e108c9bf0943ecc9e4f2e8af4695da5f52fbf57a63d3a","typeString":"literal_string \"SafeERC20: decreased allowance below zero\""},"value":"SafeERC20: decreased allowance below zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2c3af60974a758b7e72e108c9bf0943ecc9e4f2e8af4695da5f52fbf57a63d3a","typeString":"literal_string \"SafeERC20: decreased allowance below zero\""}],"id":6597,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2564:7:28","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6602,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2564:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6603,"nodeType":"ExpressionStatement","src":"2564:75:28"},{"assignments":[6605],"declarations":[{"constant":false,"id":6605,"mutability":"mutable","name":"newAllowance","nameLocation":"2661:12:28","nodeType":"VariableDeclaration","scope":6622,"src":"2653:20:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6604,"name":"uint256","nodeType":"ElementaryTypeName","src":"2653:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6609,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6608,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6606,"name":"oldAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6587,"src":"2676:12:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":6607,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6583,"src":"2691:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2676:20:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2653:43:28"},{"expression":{"arguments":[{"id":6611,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6579,"src":"2730:5:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6414","typeString":"contract IERC20"}},{"arguments":[{"expression":{"expression":{"id":6614,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6579,"src":"2760:5:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6414","typeString":"contract IERC20"}},"id":6615,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2766:7:28","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":6401,"src":"2760:13:28","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":6616,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2774:8:28","memberName":"selector","nodeType":"MemberAccess","src":"2760:22:28","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":6617,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6581,"src":"2784:7:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6618,"name":"newAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6605,"src":"2793:12:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6612,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2737:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6613,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2741:18:28","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"2737:22:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":6619,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2737:69:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$6414","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6610,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6662,"src":"2710:19:28","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$6414_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":6620,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2710:97:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6621,"nodeType":"ExpressionStatement","src":"2710:97:28"}]}]},"id":6624,"implemented":true,"kind":"function","modifiers":[],"name":"safeDecreaseAllowance","nameLocation":"2347:21:28","nodeType":"FunctionDefinition","parameters":{"id":6584,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6579,"mutability":"mutable","name":"token","nameLocation":"2385:5:28","nodeType":"VariableDeclaration","scope":6624,"src":"2378:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6414","typeString":"contract IERC20"},"typeName":{"id":6578,"nodeType":"UserDefinedTypeName","pathNode":{"id":6577,"name":"IERC20","nameLocations":["2378:6:28"],"nodeType":"IdentifierPath","referencedDeclaration":6414,"src":"2378:6:28"},"referencedDeclaration":6414,"src":"2378:6:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6414","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":6581,"mutability":"mutable","name":"spender","nameLocation":"2408:7:28","nodeType":"VariableDeclaration","scope":6624,"src":"2400:15:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6580,"name":"address","nodeType":"ElementaryTypeName","src":"2400:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6583,"mutability":"mutable","name":"value","nameLocation":"2433:5:28","nodeType":"VariableDeclaration","scope":6624,"src":"2425:13:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6582,"name":"uint256","nodeType":"ElementaryTypeName","src":"2425:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2368:76:28"},"returnParameters":{"id":6585,"nodeType":"ParameterList","parameters":[],"src":"2454:0:28"},"scope":6663,"src":"2338:486:28","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":6661,"nodeType":"Block","src":"3277:636:28","statements":[{"assignments":[6634],"declarations":[{"constant":false,"id":6634,"mutability":"mutable","name":"returndata","nameLocation":"3639:10:28","nodeType":"VariableDeclaration","scope":6661,"src":"3626:23:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6633,"name":"bytes","nodeType":"ElementaryTypeName","src":"3626:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":6643,"initialValue":{"arguments":[{"id":6640,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6630,"src":"3680:4:28","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564","id":6641,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3686:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_47fb62c2c272651d2f0f342bac006756b8ba07f21cc5cb87e0fbb9d50c0c585b","typeString":"literal_string \"SafeERC20: low-level call failed\""},"value":"SafeERC20: low-level call failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_stringliteral_47fb62c2c272651d2f0f342bac006756b8ba07f21cc5cb87e0fbb9d50c0c585b","typeString":"literal_string \"SafeERC20: low-level call failed\""}],"expression":{"arguments":[{"id":6637,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6628,"src":"3660:5:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6414","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$6414","typeString":"contract IERC20"}],"id":6636,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3652:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6635,"name":"address","nodeType":"ElementaryTypeName","src":"3652:7:28","typeDescriptions":{}}},"id":6638,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3652:14:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6639,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3667:12:28","memberName":"functionCall","nodeType":"MemberAccess","referencedDeclaration":7907,"src":"3652:27:28","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$attached_to$_t_address_$","typeString":"function (address,bytes memory,string memory) returns (bytes memory)"}},"id":6642,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3652:69:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"3626:95:28"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":6644,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6634,"src":"3735:10:28","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":6645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3746:6:28","memberName":"length","nodeType":"MemberAccess","src":"3735:17:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":6646,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3755:1:28","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3735:21:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6660,"nodeType":"IfStatement","src":"3731:176:28","trueBody":{"id":6659,"nodeType":"Block","src":"3758:149:28","statements":[{"expression":{"arguments":[{"arguments":[{"id":6651,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6634,"src":"3830:10:28","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":6653,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3843:4:28","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"},"typeName":{"id":6652,"name":"bool","nodeType":"ElementaryTypeName","src":"3843:4:28","typeDescriptions":{}}}],"id":6654,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"3842:6:28","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":6649,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3819:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6650,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3823:6:28","memberName":"decode","nodeType":"MemberAccess","src":"3819:10:28","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":6655,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3819:30:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564","id":6656,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3851:44:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd","typeString":"literal_string \"SafeERC20: ERC20 operation did not succeed\""},"value":"SafeERC20: ERC20 operation did not succeed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd","typeString":"literal_string \"SafeERC20: ERC20 operation did not succeed\""}],"id":6648,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3811:7:28","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6657,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3811:85:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6658,"nodeType":"ExpressionStatement","src":"3811:85:28"}]}}]},"documentation":{"id":6625,"nodeType":"StructuredDocumentation","src":"2830:372:28","text":" @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\n on the return value: the return value is optional (but if data is returned, it must not be false).\n @param token The token targeted by the call.\n @param data The call data (encoded using abi.encode or one of its variants)."},"id":6662,"implemented":true,"kind":"function","modifiers":[],"name":"_callOptionalReturn","nameLocation":"3216:19:28","nodeType":"FunctionDefinition","parameters":{"id":6631,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6628,"mutability":"mutable","name":"token","nameLocation":"3243:5:28","nodeType":"VariableDeclaration","scope":6662,"src":"3236:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6414","typeString":"contract IERC20"},"typeName":{"id":6627,"nodeType":"UserDefinedTypeName","pathNode":{"id":6626,"name":"IERC20","nameLocations":["3236:6:28"],"nodeType":"IdentifierPath","referencedDeclaration":6414,"src":"3236:6:28"},"referencedDeclaration":6414,"src":"3236:6:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6414","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":6630,"mutability":"mutable","name":"data","nameLocation":"3263:4:28","nodeType":"VariableDeclaration","scope":6662,"src":"3250:17:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6629,"name":"bytes","nodeType":"ElementaryTypeName","src":"3250:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3235:33:28"},"returnParameters":{"id":6632,"nodeType":"ParameterList","parameters":[],"src":"3277:0:28"},"scope":6663,"src":"3207:706:28","stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"scope":6664,"src":"645:3270:28","usedErrors":[]}],"src":"100:3816:28"},"id":28},"@openzeppelin/contracts/token/ERC721/ERC721.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC721/ERC721.sol","exportedSymbols":{"Address":[8113],"Context":[8135],"ERC165":[8436],"ERC721":[7529],"IERC165":[8448],"IERC721":[7645],"IERC721Metadata":[7818],"IERC721Receiver":[7663],"Strings":[8412]},"id":7530,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":6665,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"107:23:29"},{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721.sol","file":"./IERC721.sol","id":6666,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7530,"sourceUnit":7646,"src":"132:23:29","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol","file":"./IERC721Receiver.sol","id":6667,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7530,"sourceUnit":7664,"src":"156:31:29","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol","file":"./extensions/IERC721Metadata.sol","id":6668,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7530,"sourceUnit":7819,"src":"188:42:29","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Address.sol","file":"../../utils/Address.sol","id":6669,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7530,"sourceUnit":8114,"src":"231:33:29","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","file":"../../utils/Context.sol","id":6670,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7530,"sourceUnit":8136,"src":"265:33:29","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Strings.sol","file":"../../utils/Strings.sol","id":6671,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7530,"sourceUnit":8413,"src":"299:33:29","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/introspection/ERC165.sol","file":"../../utils/introspection/ERC165.sol","id":6672,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7530,"sourceUnit":8437,"src":"333:46:29","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":6674,"name":"Context","nameLocations":["647:7:29"],"nodeType":"IdentifierPath","referencedDeclaration":8135,"src":"647:7:29"},"id":6675,"nodeType":"InheritanceSpecifier","src":"647:7:29"},{"baseName":{"id":6676,"name":"ERC165","nameLocations":["656:6:29"],"nodeType":"IdentifierPath","referencedDeclaration":8436,"src":"656:6:29"},"id":6677,"nodeType":"InheritanceSpecifier","src":"656:6:29"},{"baseName":{"id":6678,"name":"IERC721","nameLocations":["664:7:29"],"nodeType":"IdentifierPath","referencedDeclaration":7645,"src":"664:7:29"},"id":6679,"nodeType":"InheritanceSpecifier","src":"664:7:29"},{"baseName":{"id":6680,"name":"IERC721Metadata","nameLocations":["673:15:29"],"nodeType":"IdentifierPath","referencedDeclaration":7818,"src":"673:15:29"},"id":6681,"nodeType":"InheritanceSpecifier","src":"673:15:29"}],"canonicalName":"ERC721","contractDependencies":[],"contractKind":"contract","documentation":{"id":6673,"nodeType":"StructuredDocumentation","src":"381:246:29","text":" @dev Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including\n the Metadata extension, but not including the Enumerable extension, which is available separately as\n {ERC721Enumerable}."},"fullyImplemented":true,"id":7529,"linearizedBaseContracts":[7529,7818,7645,8436,8448,8135],"name":"ERC721","nameLocation":"637:6:29","nodeType":"ContractDefinition","nodes":[{"global":false,"id":6684,"libraryName":{"id":6682,"name":"Address","nameLocations":["701:7:29"],"nodeType":"IdentifierPath","referencedDeclaration":8113,"src":"701:7:29"},"nodeType":"UsingForDirective","src":"695:26:29","typeName":{"id":6683,"name":"address","nodeType":"ElementaryTypeName","src":"713:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"global":false,"id":6687,"libraryName":{"id":6685,"name":"Strings","nameLocations":["732:7:29"],"nodeType":"IdentifierPath","referencedDeclaration":8412,"src":"732:7:29"},"nodeType":"UsingForDirective","src":"726:26:29","typeName":{"id":6686,"name":"uint256","nodeType":"ElementaryTypeName","src":"744:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"constant":false,"id":6689,"mutability":"mutable","name":"_name","nameLocation":"791:5:29","nodeType":"VariableDeclaration","scope":7529,"src":"776:20:29","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":6688,"name":"string","nodeType":"ElementaryTypeName","src":"776:6:29","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"constant":false,"id":6691,"mutability":"mutable","name":"_symbol","nameLocation":"838:7:29","nodeType":"VariableDeclaration","scope":7529,"src":"823:22:29","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":6690,"name":"string","nodeType":"ElementaryTypeName","src":"823:6:29","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"constant":false,"id":6695,"mutability":"mutable","name":"_owners","nameLocation":"934:7:29","nodeType":"VariableDeclaration","scope":7529,"src":"898:43:29","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"typeName":{"id":6694,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":6692,"name":"uint256","nodeType":"ElementaryTypeName","src":"906:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"898:27:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":6693,"name":"address","nodeType":"ElementaryTypeName","src":"917:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"private"},{"constant":false,"id":6699,"mutability":"mutable","name":"_balances","nameLocation":"1028:9:29","nodeType":"VariableDeclaration","scope":7529,"src":"992:45:29","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":6698,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":6696,"name":"address","nodeType":"ElementaryTypeName","src":"1000:7:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"992:27:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":6697,"name":"uint256","nodeType":"ElementaryTypeName","src":"1011:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"constant":false,"id":6703,"mutability":"mutable","name":"_tokenApprovals","nameLocation":"1129:15:29","nodeType":"VariableDeclaration","scope":7529,"src":"1093:51:29","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"typeName":{"id":6702,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":6700,"name":"uint256","nodeType":"ElementaryTypeName","src":"1101:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1093:27:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":6701,"name":"address","nodeType":"ElementaryTypeName","src":"1112:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"private"},{"constant":false,"id":6709,"mutability":"mutable","name":"_operatorApprovals","nameLocation":"1252:18:29","nodeType":"VariableDeclaration","scope":7529,"src":"1199:71:29","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"},"typeName":{"id":6708,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":6704,"name":"address","nodeType":"ElementaryTypeName","src":"1207:7:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1199:44:29","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":6707,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":6705,"name":"address","nodeType":"ElementaryTypeName","src":"1226:7:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1218:24:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":6706,"name":"bool","nodeType":"ElementaryTypeName","src":"1237:4:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}}},"visibility":"private"},{"body":{"id":6725,"nodeType":"Block","src":"1446:57:29","statements":[{"expression":{"id":6719,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6717,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6689,"src":"1456:5:29","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":6718,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6712,"src":"1464:5:29","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"1456:13:29","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":6720,"nodeType":"ExpressionStatement","src":"1456:13:29"},{"expression":{"id":6723,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6721,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6691,"src":"1479:7:29","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":6722,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6714,"src":"1489:7:29","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"1479:17:29","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":6724,"nodeType":"ExpressionStatement","src":"1479:17:29"}]},"documentation":{"id":6710,"nodeType":"StructuredDocumentation","src":"1277:108:29","text":" @dev Initializes the contract by setting a `name` and a `symbol` to the token collection."},"id":6726,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":6715,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6712,"mutability":"mutable","name":"name_","nameLocation":"1416:5:29","nodeType":"VariableDeclaration","scope":6726,"src":"1402:19:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6711,"name":"string","nodeType":"ElementaryTypeName","src":"1402:6:29","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6714,"mutability":"mutable","name":"symbol_","nameLocation":"1437:7:29","nodeType":"VariableDeclaration","scope":6726,"src":"1423:21:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6713,"name":"string","nodeType":"ElementaryTypeName","src":"1423:6:29","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1401:44:29"},"returnParameters":{"id":6716,"nodeType":"ParameterList","parameters":[],"src":"1446:0:29"},"scope":7529,"src":"1390:113:29","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[8435,8447],"body":{"id":6756,"nodeType":"Block","src":"1678:192:29","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6754,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6749,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":6742,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6737,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6729,"src":"1707:11:29","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":6739,"name":"IERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7645,"src":"1727:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721_$7645_$","typeString":"type(contract IERC721)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC721_$7645_$","typeString":"type(contract IERC721)"}],"id":6738,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1722:4:29","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":6740,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1722:13:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC721_$7645","typeString":"type(contract IERC721)"}},"id":6741,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1736:11:29","memberName":"interfaceId","nodeType":"MemberAccess","src":"1722:25:29","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"1707:40:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":6748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6743,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6729,"src":"1763:11:29","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":6745,"name":"IERC721Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7818,"src":"1783:15:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721Metadata_$7818_$","typeString":"type(contract IERC721Metadata)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC721Metadata_$7818_$","typeString":"type(contract IERC721Metadata)"}],"id":6744,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1778:4:29","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":6746,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1778:21:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC721Metadata_$7818","typeString":"type(contract IERC721Metadata)"}},"id":6747,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1800:11:29","memberName":"interfaceId","nodeType":"MemberAccess","src":"1778:33:29","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"1763:48:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1707:104:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":6752,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6729,"src":"1851:11:29","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":6750,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1827:5:29","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_ERC721_$7529_$","typeString":"type(contract super ERC721)"}},"id":6751,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1833:17:29","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":8435,"src":"1827:23:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":6753,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1827:36:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1707:156:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":6736,"id":6755,"nodeType":"Return","src":"1688:175:29"}]},"documentation":{"id":6727,"nodeType":"StructuredDocumentation","src":"1509:56:29","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","id":6757,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"1579:17:29","nodeType":"FunctionDefinition","overrides":{"id":6733,"nodeType":"OverrideSpecifier","overrides":[{"id":6731,"name":"ERC165","nameLocations":["1646:6:29"],"nodeType":"IdentifierPath","referencedDeclaration":8436,"src":"1646:6:29"},{"id":6732,"name":"IERC165","nameLocations":["1654:7:29"],"nodeType":"IdentifierPath","referencedDeclaration":8448,"src":"1654:7:29"}],"src":"1637:25:29"},"parameters":{"id":6730,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6729,"mutability":"mutable","name":"interfaceId","nameLocation":"1604:11:29","nodeType":"VariableDeclaration","scope":6757,"src":"1597:18:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":6728,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1597:6:29","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1596:20:29"},"returnParameters":{"id":6736,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6735,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6757,"src":"1672:4:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6734,"name":"bool","nodeType":"ElementaryTypeName","src":"1672:4:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1671:6:29"},"scope":7529,"src":"1570:300:29","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[7570],"body":{"id":6780,"nodeType":"Block","src":"2010:124:29","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6772,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6767,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6760,"src":"2028:5:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":6770,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2045:1:29","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":6769,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2037:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6768,"name":"address","nodeType":"ElementaryTypeName","src":"2037:7:29","typeDescriptions":{}}},"id":6771,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2037:10:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2028:19:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a2062616c616e636520717565727920666f7220746865207a65726f2061646472657373","id":6773,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2049:44:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_7395d4d3901c50cdfcab223d072f9aa36241df5d883e62cbf147ee1b05a9e6ba","typeString":"literal_string \"ERC721: balance query for the zero address\""},"value":"ERC721: balance query for the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7395d4d3901c50cdfcab223d072f9aa36241df5d883e62cbf147ee1b05a9e6ba","typeString":"literal_string \"ERC721: balance query for the zero address\""}],"id":6766,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2020:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2020:74:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6775,"nodeType":"ExpressionStatement","src":"2020:74:29"},{"expression":{"baseExpression":{"id":6776,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6699,"src":"2111:9:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":6778,"indexExpression":{"id":6777,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6760,"src":"2121:5:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2111:16:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":6765,"id":6779,"nodeType":"Return","src":"2104:23:29"}]},"documentation":{"id":6758,"nodeType":"StructuredDocumentation","src":"1876:48:29","text":" @dev See {IERC721-balanceOf}."},"functionSelector":"70a08231","id":6781,"implemented":true,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"1938:9:29","nodeType":"FunctionDefinition","overrides":{"id":6762,"nodeType":"OverrideSpecifier","overrides":[],"src":"1983:8:29"},"parameters":{"id":6761,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6760,"mutability":"mutable","name":"owner","nameLocation":"1956:5:29","nodeType":"VariableDeclaration","scope":6781,"src":"1948:13:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6759,"name":"address","nodeType":"ElementaryTypeName","src":"1948:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1947:15:29"},"returnParameters":{"id":6765,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6764,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6781,"src":"2001:7:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6763,"name":"uint256","nodeType":"ElementaryTypeName","src":"2001:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2000:9:29"},"scope":7529,"src":"1929:205:29","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[7578],"body":{"id":6808,"nodeType":"Block","src":"2272:154:29","statements":[{"assignments":[6791],"declarations":[{"constant":false,"id":6791,"mutability":"mutable","name":"owner","nameLocation":"2290:5:29","nodeType":"VariableDeclaration","scope":6808,"src":"2282:13:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6790,"name":"address","nodeType":"ElementaryTypeName","src":"2282:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":6795,"initialValue":{"baseExpression":{"id":6792,"name":"_owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6695,"src":"2298:7:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":6794,"indexExpression":{"id":6793,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6784,"src":"2306:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2298:16:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2282:32:29"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6802,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6797,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6791,"src":"2332:5:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":6800,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2349:1:29","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":6799,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2341:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6798,"name":"address","nodeType":"ElementaryTypeName","src":"2341:7:29","typeDescriptions":{}}},"id":6801,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2341:10:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2332:19:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e","id":6803,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2353:43:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_7481f3df2a424c0755a1ad2356614e9a5a358d461ea2eae1f89cb21cbad00397","typeString":"literal_string \"ERC721: owner query for nonexistent token\""},"value":"ERC721: owner query for nonexistent token"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7481f3df2a424c0755a1ad2356614e9a5a358d461ea2eae1f89cb21cbad00397","typeString":"literal_string \"ERC721: owner query for nonexistent token\""}],"id":6796,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2324:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2324:73:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6805,"nodeType":"ExpressionStatement","src":"2324:73:29"},{"expression":{"id":6806,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6791,"src":"2414:5:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":6789,"id":6807,"nodeType":"Return","src":"2407:12:29"}]},"documentation":{"id":6782,"nodeType":"StructuredDocumentation","src":"2140:46:29","text":" @dev See {IERC721-ownerOf}."},"functionSelector":"6352211e","id":6809,"implemented":true,"kind":"function","modifiers":[],"name":"ownerOf","nameLocation":"2200:7:29","nodeType":"FunctionDefinition","overrides":{"id":6786,"nodeType":"OverrideSpecifier","overrides":[],"src":"2245:8:29"},"parameters":{"id":6785,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6784,"mutability":"mutable","name":"tokenId","nameLocation":"2216:7:29","nodeType":"VariableDeclaration","scope":6809,"src":"2208:15:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6783,"name":"uint256","nodeType":"ElementaryTypeName","src":"2208:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2207:17:29"},"returnParameters":{"id":6789,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6788,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6809,"src":"2263:7:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6787,"name":"address","nodeType":"ElementaryTypeName","src":"2263:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2262:9:29"},"scope":7529,"src":"2191:235:29","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[7803],"body":{"id":6818,"nodeType":"Block","src":"2557:29:29","statements":[{"expression":{"id":6816,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6689,"src":"2574:5:29","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":6815,"id":6817,"nodeType":"Return","src":"2567:12:29"}]},"documentation":{"id":6810,"nodeType":"StructuredDocumentation","src":"2432:51:29","text":" @dev See {IERC721Metadata-name}."},"functionSelector":"06fdde03","id":6819,"implemented":true,"kind":"function","modifiers":[],"name":"name","nameLocation":"2497:4:29","nodeType":"FunctionDefinition","overrides":{"id":6812,"nodeType":"OverrideSpecifier","overrides":[],"src":"2524:8:29"},"parameters":{"id":6811,"nodeType":"ParameterList","parameters":[],"src":"2501:2:29"},"returnParameters":{"id":6815,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6814,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6819,"src":"2542:13:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6813,"name":"string","nodeType":"ElementaryTypeName","src":"2542:6:29","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2541:15:29"},"scope":7529,"src":"2488:98:29","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[7809],"body":{"id":6828,"nodeType":"Block","src":"2721:31:29","statements":[{"expression":{"id":6826,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6691,"src":"2738:7:29","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":6825,"id":6827,"nodeType":"Return","src":"2731:14:29"}]},"documentation":{"id":6820,"nodeType":"StructuredDocumentation","src":"2592:53:29","text":" @dev See {IERC721Metadata-symbol}."},"functionSelector":"95d89b41","id":6829,"implemented":true,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"2659:6:29","nodeType":"FunctionDefinition","overrides":{"id":6822,"nodeType":"OverrideSpecifier","overrides":[],"src":"2688:8:29"},"parameters":{"id":6821,"nodeType":"ParameterList","parameters":[],"src":"2665:2:29"},"returnParameters":{"id":6825,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6824,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6829,"src":"2706:13:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6823,"name":"string","nodeType":"ElementaryTypeName","src":"2706:6:29","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2705:15:29"},"scope":7529,"src":"2650:102:29","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[7817],"body":{"id":6870,"nodeType":"Block","src":"2906:241:29","statements":[{"expression":{"arguments":[{"arguments":[{"id":6840,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6832,"src":"2932:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6839,"name":"_exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7102,"src":"2924:7:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":6841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2924:16:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e","id":6842,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2942:49:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_a2d45c0fba603d40d82d590051761ca952d1ab9d78cca6d0d464d7b6e961a9cb","typeString":"literal_string \"ERC721Metadata: URI query for nonexistent token\""},"value":"ERC721Metadata: URI query for nonexistent token"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a2d45c0fba603d40d82d590051761ca952d1ab9d78cca6d0d464d7b6e961a9cb","typeString":"literal_string \"ERC721Metadata: URI query for nonexistent token\""}],"id":6838,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2916:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2916:76:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6844,"nodeType":"ExpressionStatement","src":"2916:76:29"},{"assignments":[6846],"declarations":[{"constant":false,"id":6846,"mutability":"mutable","name":"baseURI","nameLocation":"3017:7:29","nodeType":"VariableDeclaration","scope":6870,"src":"3003:21:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6845,"name":"string","nodeType":"ElementaryTypeName","src":"3003:6:29","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":6849,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":6847,"name":"_baseURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6880,"src":"3027:8:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_string_memory_ptr_$","typeString":"function () view returns (string memory)"}},"id":6848,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3027:10:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"3003:34:29"},{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":6852,"name":"baseURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6846,"src":"3060:7:29","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":6851,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3054:5:29","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":6850,"name":"bytes","nodeType":"ElementaryTypeName","src":"3054:5:29","typeDescriptions":{}}},"id":6853,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3054:14:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":6854,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3069:6:29","memberName":"length","nodeType":"MemberAccess","src":"3054:21:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":6855,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3078:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3054:25:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"","id":6867,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3138:2:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},"id":6868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"3054:86:29","trueExpression":{"arguments":[{"arguments":[{"id":6861,"name":"baseURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6846,"src":"3106:7:29","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":6862,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6832,"src":"3115:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3123:8:29","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":8294,"src":"3115:16:29","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$attached_to$_t_uint256_$","typeString":"function (uint256) pure returns (string memory)"}},"id":6864,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3115:18:29","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":6859,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3089:3:29","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6860,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3093:12:29","memberName":"encodePacked","nodeType":"MemberAccess","src":"3089:16:29","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":6865,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3089:45:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6858,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3082:6:29","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":6857,"name":"string","nodeType":"ElementaryTypeName","src":"3082:6:29","typeDescriptions":{}}},"id":6866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3082:53:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":6837,"id":6869,"nodeType":"Return","src":"3047:93:29"}]},"documentation":{"id":6830,"nodeType":"StructuredDocumentation","src":"2758:55:29","text":" @dev See {IERC721Metadata-tokenURI}."},"functionSelector":"c87b56dd","id":6871,"implemented":true,"kind":"function","modifiers":[],"name":"tokenURI","nameLocation":"2827:8:29","nodeType":"FunctionDefinition","overrides":{"id":6834,"nodeType":"OverrideSpecifier","overrides":[],"src":"2873:8:29"},"parameters":{"id":6833,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6832,"mutability":"mutable","name":"tokenId","nameLocation":"2844:7:29","nodeType":"VariableDeclaration","scope":6871,"src":"2836:15:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6831,"name":"uint256","nodeType":"ElementaryTypeName","src":"2836:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2835:17:29"},"returnParameters":{"id":6837,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6836,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6871,"src":"2891:13:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6835,"name":"string","nodeType":"ElementaryTypeName","src":"2891:6:29","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2890:15:29"},"scope":7529,"src":"2818:329:29","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":6879,"nodeType":"Block","src":"3455:26:29","statements":[{"expression":{"hexValue":"","id":6877,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3472:2:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},"functionReturnParameters":6876,"id":6878,"nodeType":"Return","src":"3465:9:29"}]},"documentation":{"id":6872,"nodeType":"StructuredDocumentation","src":"3153:231:29","text":" @dev Base URI for computing {tokenURI}. If set, the resulting URI for each\n token will be the concatenation of the `baseURI` and the `tokenId`. Empty\n by default, can be overridden in child contracts."},"id":6880,"implemented":true,"kind":"function","modifiers":[],"name":"_baseURI","nameLocation":"3398:8:29","nodeType":"FunctionDefinition","parameters":{"id":6873,"nodeType":"ParameterList","parameters":[],"src":"3406:2:29"},"returnParameters":{"id":6876,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6875,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6880,"src":"3440:13:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6874,"name":"string","nodeType":"ElementaryTypeName","src":"3440:6:29","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3439:15:29"},"scope":7529,"src":"3389:92:29","stateMutability":"view","virtual":true,"visibility":"internal"},{"baseFunctions":[7618],"body":{"id":6922,"nodeType":"Block","src":"3608:331:29","statements":[{"assignments":[6890],"declarations":[{"constant":false,"id":6890,"mutability":"mutable","name":"owner","nameLocation":"3626:5:29","nodeType":"VariableDeclaration","scope":6922,"src":"3618:13:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6889,"name":"address","nodeType":"ElementaryTypeName","src":"3618:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":6895,"initialValue":{"arguments":[{"id":6893,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6885,"src":"3649:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6891,"name":"ERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7529,"src":"3634:6:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721_$7529_$","typeString":"type(contract ERC721)"}},"id":6892,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3641:7:29","memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":6809,"src":"3634:14:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":6894,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3634:23:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3618:39:29"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6897,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6883,"src":"3675:2:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":6898,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6890,"src":"3681:5:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3675:11:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a20617070726f76616c20746f2063757272656e74206f776e6572","id":6900,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3688:35:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942","typeString":"literal_string \"ERC721: approval to current owner\""},"value":"ERC721: approval to current owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942","typeString":"literal_string \"ERC721: approval to current owner\""}],"id":6896,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3667:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6901,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3667:57:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6902,"nodeType":"ExpressionStatement","src":"3667:57:29"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6907,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":6904,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8125,"src":"3756:10:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":6905,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3756:12:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":6906,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6890,"src":"3772:5:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3756:21:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":6909,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6890,"src":"3798:5:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":6910,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8125,"src":"3805:10:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":6911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3805:12:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":6908,"name":"isApprovedForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6979,"src":"3781:16:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view returns (bool)"}},"id":6912,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3781:37:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3756:62:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c","id":6914,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3832:58:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_6d83cef3e0cb19b8320a9c5feb26b56bbb08f152a8e61b12eca3302d8d68b23d","typeString":"literal_string \"ERC721: approve caller is not owner nor approved for all\""},"value":"ERC721: approve caller is not owner nor approved for all"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6d83cef3e0cb19b8320a9c5feb26b56bbb08f152a8e61b12eca3302d8d68b23d","typeString":"literal_string \"ERC721: approve caller is not owner nor approved for all\""}],"id":6903,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3735:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6915,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3735:165:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6916,"nodeType":"ExpressionStatement","src":"3735:165:29"},{"expression":{"arguments":[{"id":6918,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6883,"src":"3920:2:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6919,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6885,"src":"3924:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6917,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7412,"src":"3911:8:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":6920,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3911:21:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6921,"nodeType":"ExpressionStatement","src":"3911:21:29"}]},"documentation":{"id":6881,"nodeType":"StructuredDocumentation","src":"3487:46:29","text":" @dev See {IERC721-approve}."},"functionSelector":"095ea7b3","id":6923,"implemented":true,"kind":"function","modifiers":[],"name":"approve","nameLocation":"3547:7:29","nodeType":"FunctionDefinition","overrides":{"id":6887,"nodeType":"OverrideSpecifier","overrides":[],"src":"3599:8:29"},"parameters":{"id":6886,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6883,"mutability":"mutable","name":"to","nameLocation":"3563:2:29","nodeType":"VariableDeclaration","scope":6923,"src":"3555:10:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6882,"name":"address","nodeType":"ElementaryTypeName","src":"3555:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6885,"mutability":"mutable","name":"tokenId","nameLocation":"3575:7:29","nodeType":"VariableDeclaration","scope":6923,"src":"3567:15:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6884,"name":"uint256","nodeType":"ElementaryTypeName","src":"3567:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3554:29:29"},"returnParameters":{"id":6888,"nodeType":"ParameterList","parameters":[],"src":"3608:0:29"},"scope":7529,"src":"3538:401:29","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[7634],"body":{"id":6943,"nodeType":"Block","src":"4085:132:29","statements":[{"expression":{"arguments":[{"arguments":[{"id":6934,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6926,"src":"4111:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6933,"name":"_exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7102,"src":"4103:7:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":6935,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4103:16:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e","id":6936,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4121:46:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_9291e0f44949204f2e9b40e6be090924979d6047b2365868f4e9f027722eb89d","typeString":"literal_string \"ERC721: approved query for nonexistent token\""},"value":"ERC721: approved query for nonexistent token"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9291e0f44949204f2e9b40e6be090924979d6047b2365868f4e9f027722eb89d","typeString":"literal_string \"ERC721: approved query for nonexistent token\""}],"id":6932,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4095:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6937,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4095:73:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6938,"nodeType":"ExpressionStatement","src":"4095:73:29"},{"expression":{"baseExpression":{"id":6939,"name":"_tokenApprovals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6703,"src":"4186:15:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":6941,"indexExpression":{"id":6940,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6926,"src":"4202:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4186:24:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":6931,"id":6942,"nodeType":"Return","src":"4179:31:29"}]},"documentation":{"id":6924,"nodeType":"StructuredDocumentation","src":"3945:50:29","text":" @dev See {IERC721-getApproved}."},"functionSelector":"081812fc","id":6944,"implemented":true,"kind":"function","modifiers":[],"name":"getApproved","nameLocation":"4009:11:29","nodeType":"FunctionDefinition","overrides":{"id":6928,"nodeType":"OverrideSpecifier","overrides":[],"src":"4058:8:29"},"parameters":{"id":6927,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6926,"mutability":"mutable","name":"tokenId","nameLocation":"4029:7:29","nodeType":"VariableDeclaration","scope":6944,"src":"4021:15:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6925,"name":"uint256","nodeType":"ElementaryTypeName","src":"4021:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4020:17:29"},"returnParameters":{"id":6931,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6930,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6944,"src":"4076:7:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6929,"name":"address","nodeType":"ElementaryTypeName","src":"4076:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4075:9:29"},"scope":7529,"src":"4000:217:29","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[7626],"body":{"id":6960,"nodeType":"Block","src":"4368:69:29","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":6954,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8125,"src":"4397:10:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":6955,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4397:12:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6956,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6947,"src":"4411:8:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6957,"name":"approved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6949,"src":"4421:8:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":6953,"name":"_setApprovalForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7444,"src":"4378:18:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$","typeString":"function (address,address,bool)"}},"id":6958,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4378:52:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6959,"nodeType":"ExpressionStatement","src":"4378:52:29"}]},"documentation":{"id":6945,"nodeType":"StructuredDocumentation","src":"4223:56:29","text":" @dev See {IERC721-setApprovalForAll}."},"functionSelector":"a22cb465","id":6961,"implemented":true,"kind":"function","modifiers":[],"name":"setApprovalForAll","nameLocation":"4293:17:29","nodeType":"FunctionDefinition","overrides":{"id":6951,"nodeType":"OverrideSpecifier","overrides":[],"src":"4359:8:29"},"parameters":{"id":6950,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6947,"mutability":"mutable","name":"operator","nameLocation":"4319:8:29","nodeType":"VariableDeclaration","scope":6961,"src":"4311:16:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6946,"name":"address","nodeType":"ElementaryTypeName","src":"4311:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6949,"mutability":"mutable","name":"approved","nameLocation":"4334:8:29","nodeType":"VariableDeclaration","scope":6961,"src":"4329:13:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6948,"name":"bool","nodeType":"ElementaryTypeName","src":"4329:4:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4310:33:29"},"returnParameters":{"id":6952,"nodeType":"ParameterList","parameters":[],"src":"4368:0:29"},"scope":7529,"src":"4284:153:29","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[7644],"body":{"id":6978,"nodeType":"Block","src":"4606:59:29","statements":[{"expression":{"baseExpression":{"baseExpression":{"id":6972,"name":"_operatorApprovals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6709,"src":"4623:18:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":6974,"indexExpression":{"id":6973,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6964,"src":"4642:5:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4623:25:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":6976,"indexExpression":{"id":6975,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6966,"src":"4649:8:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4623:35:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":6971,"id":6977,"nodeType":"Return","src":"4616:42:29"}]},"documentation":{"id":6962,"nodeType":"StructuredDocumentation","src":"4443:55:29","text":" @dev See {IERC721-isApprovedForAll}."},"functionSelector":"e985e9c5","id":6979,"implemented":true,"kind":"function","modifiers":[],"name":"isApprovedForAll","nameLocation":"4512:16:29","nodeType":"FunctionDefinition","overrides":{"id":6968,"nodeType":"OverrideSpecifier","overrides":[],"src":"4582:8:29"},"parameters":{"id":6967,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6964,"mutability":"mutable","name":"owner","nameLocation":"4537:5:29","nodeType":"VariableDeclaration","scope":6979,"src":"4529:13:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6963,"name":"address","nodeType":"ElementaryTypeName","src":"4529:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6966,"mutability":"mutable","name":"operator","nameLocation":"4552:8:29","nodeType":"VariableDeclaration","scope":6979,"src":"4544:16:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6965,"name":"address","nodeType":"ElementaryTypeName","src":"4544:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4528:33:29"},"returnParameters":{"id":6971,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6970,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6979,"src":"4600:4:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6969,"name":"bool","nodeType":"ElementaryTypeName","src":"4600:4:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4599:6:29"},"scope":7529,"src":"4503:162:29","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[7610],"body":{"id":7005,"nodeType":"Block","src":"4846:211:29","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":6992,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8125,"src":"4935:10:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":6993,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4935:12:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6994,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6986,"src":"4949:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6991,"name":"_isApprovedOrOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7143,"src":"4916:18:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) view returns (bool)"}},"id":6995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4916:41:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564","id":6996,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4959:51:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2","typeString":"literal_string \"ERC721: transfer caller is not owner nor approved\""},"value":"ERC721: transfer caller is not owner nor approved"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2","typeString":"literal_string \"ERC721: transfer caller is not owner nor approved\""}],"id":6990,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4908:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6997,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4908:103:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6998,"nodeType":"ExpressionStatement","src":"4908:103:29"},{"expression":{"arguments":[{"id":7000,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6982,"src":"5032:4:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7001,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6984,"src":"5038:2:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7002,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6986,"src":"5042:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6999,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7388,"src":"5022:9:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":7003,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5022:28:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7004,"nodeType":"ExpressionStatement","src":"5022:28:29"}]},"documentation":{"id":6980,"nodeType":"StructuredDocumentation","src":"4671:51:29","text":" @dev See {IERC721-transferFrom}."},"functionSelector":"23b872dd","id":7006,"implemented":true,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"4736:12:29","nodeType":"FunctionDefinition","overrides":{"id":6988,"nodeType":"OverrideSpecifier","overrides":[],"src":"4837:8:29"},"parameters":{"id":6987,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6982,"mutability":"mutable","name":"from","nameLocation":"4766:4:29","nodeType":"VariableDeclaration","scope":7006,"src":"4758:12:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6981,"name":"address","nodeType":"ElementaryTypeName","src":"4758:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6984,"mutability":"mutable","name":"to","nameLocation":"4788:2:29","nodeType":"VariableDeclaration","scope":7006,"src":"4780:10:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6983,"name":"address","nodeType":"ElementaryTypeName","src":"4780:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6986,"mutability":"mutable","name":"tokenId","nameLocation":"4808:7:29","nodeType":"VariableDeclaration","scope":7006,"src":"4800:15:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6985,"name":"uint256","nodeType":"ElementaryTypeName","src":"4800:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4748:73:29"},"returnParameters":{"id":6989,"nodeType":"ParameterList","parameters":[],"src":"4846:0:29"},"scope":7529,"src":"4727:330:29","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[7600],"body":{"id":7024,"nodeType":"Block","src":"5246:56:29","statements":[{"expression":{"arguments":[{"id":7018,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7009,"src":"5273:4:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7019,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7011,"src":"5279:2:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7020,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7013,"src":"5283:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"","id":7021,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5292:2:29","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 \"\""}],"id":7017,"name":"safeTransferFrom","nodeType":"Identifier","overloadedDeclarations":[7025,7055],"referencedDeclaration":7055,"src":"5256:16:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256,bytes memory)"}},"id":7022,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5256:39:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7023,"nodeType":"ExpressionStatement","src":"5256:39:29"}]},"documentation":{"id":7007,"nodeType":"StructuredDocumentation","src":"5063:55:29","text":" @dev See {IERC721-safeTransferFrom}."},"functionSelector":"42842e0e","id":7025,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"5132:16:29","nodeType":"FunctionDefinition","overrides":{"id":7015,"nodeType":"OverrideSpecifier","overrides":[],"src":"5237:8:29"},"parameters":{"id":7014,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7009,"mutability":"mutable","name":"from","nameLocation":"5166:4:29","nodeType":"VariableDeclaration","scope":7025,"src":"5158:12:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7008,"name":"address","nodeType":"ElementaryTypeName","src":"5158:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7011,"mutability":"mutable","name":"to","nameLocation":"5188:2:29","nodeType":"VariableDeclaration","scope":7025,"src":"5180:10:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7010,"name":"address","nodeType":"ElementaryTypeName","src":"5180:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7013,"mutability":"mutable","name":"tokenId","nameLocation":"5208:7:29","nodeType":"VariableDeclaration","scope":7025,"src":"5200:15:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7012,"name":"uint256","nodeType":"ElementaryTypeName","src":"5200:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5148:73:29"},"returnParameters":{"id":7016,"nodeType":"ParameterList","parameters":[],"src":"5246:0:29"},"scope":7529,"src":"5123:179:29","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[7590],"body":{"id":7054,"nodeType":"Block","src":"5519:169:29","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":7040,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8125,"src":"5556:10:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":7041,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5556:12:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7042,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7032,"src":"5570:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7039,"name":"_isApprovedOrOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7143,"src":"5537:18:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) view returns (bool)"}},"id":7043,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5537:41:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564","id":7044,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5580:51:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2","typeString":"literal_string \"ERC721: transfer caller is not owner nor approved\""},"value":"ERC721: transfer caller is not owner nor approved"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2","typeString":"literal_string \"ERC721: transfer caller is not owner nor approved\""}],"id":7038,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5529:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7045,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5529:103:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7046,"nodeType":"ExpressionStatement","src":"5529:103:29"},{"expression":{"arguments":[{"id":7048,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7028,"src":"5656:4:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7049,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7030,"src":"5662:2:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7050,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7032,"src":"5666:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7051,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7034,"src":"5675:5:29","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"}],"id":7047,"name":"_safeTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7084,"src":"5642:13:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256,bytes memory)"}},"id":7052,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5642:39:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7053,"nodeType":"ExpressionStatement","src":"5642:39:29"}]},"documentation":{"id":7026,"nodeType":"StructuredDocumentation","src":"5308:55:29","text":" @dev See {IERC721-safeTransferFrom}."},"functionSelector":"b88d4fde","id":7055,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"5377:16:29","nodeType":"FunctionDefinition","overrides":{"id":7036,"nodeType":"OverrideSpecifier","overrides":[],"src":"5510:8:29"},"parameters":{"id":7035,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7028,"mutability":"mutable","name":"from","nameLocation":"5411:4:29","nodeType":"VariableDeclaration","scope":7055,"src":"5403:12:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7027,"name":"address","nodeType":"ElementaryTypeName","src":"5403:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7030,"mutability":"mutable","name":"to","nameLocation":"5433:2:29","nodeType":"VariableDeclaration","scope":7055,"src":"5425:10:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7029,"name":"address","nodeType":"ElementaryTypeName","src":"5425:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7032,"mutability":"mutable","name":"tokenId","nameLocation":"5453:7:29","nodeType":"VariableDeclaration","scope":7055,"src":"5445:15:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7031,"name":"uint256","nodeType":"ElementaryTypeName","src":"5445:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7034,"mutability":"mutable","name":"_data","nameLocation":"5483:5:29","nodeType":"VariableDeclaration","scope":7055,"src":"5470:18:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7033,"name":"bytes","nodeType":"ElementaryTypeName","src":"5470:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5393:101:29"},"returnParameters":{"id":7037,"nodeType":"ParameterList","parameters":[],"src":"5519:0:29"},"scope":7529,"src":"5368:320:29","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":7083,"nodeType":"Block","src":"6691:166:29","statements":[{"expression":{"arguments":[{"id":7068,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7058,"src":"6711:4:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7069,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7060,"src":"6717:2:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7070,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7062,"src":"6721:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7067,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7388,"src":"6701:9:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":7071,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6701:28:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7072,"nodeType":"ExpressionStatement","src":"6701:28:29"},{"expression":{"arguments":[{"arguments":[{"id":7075,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7058,"src":"6770:4:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7076,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7060,"src":"6776:2:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7077,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7062,"src":"6780:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7078,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7064,"src":"6789:5:29","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"}],"id":7074,"name":"_checkOnERC721Received","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7506,"src":"6747:22:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$","typeString":"function (address,address,uint256,bytes memory) returns (bool)"}},"id":7079,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6747:48:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572","id":7080,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6797:52:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e","typeString":"literal_string \"ERC721: transfer to non ERC721Receiver implementer\""},"value":"ERC721: transfer to non ERC721Receiver implementer"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e","typeString":"literal_string \"ERC721: transfer to non ERC721Receiver implementer\""}],"id":7073,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6739:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7081,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6739:111:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7082,"nodeType":"ExpressionStatement","src":"6739:111:29"}]},"documentation":{"id":7056,"nodeType":"StructuredDocumentation","src":"5694:851:29","text":" @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n `_data` is additional data, it has no specified format and it is sent in call to `to`.\n This internal function is equivalent to {safeTransferFrom}, and can be used to e.g.\n implement alternative mechanisms to perform token transfer, such as signature-based.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event."},"id":7084,"implemented":true,"kind":"function","modifiers":[],"name":"_safeTransfer","nameLocation":"6559:13:29","nodeType":"FunctionDefinition","parameters":{"id":7065,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7058,"mutability":"mutable","name":"from","nameLocation":"6590:4:29","nodeType":"VariableDeclaration","scope":7084,"src":"6582:12:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7057,"name":"address","nodeType":"ElementaryTypeName","src":"6582:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7060,"mutability":"mutable","name":"to","nameLocation":"6612:2:29","nodeType":"VariableDeclaration","scope":7084,"src":"6604:10:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7059,"name":"address","nodeType":"ElementaryTypeName","src":"6604:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7062,"mutability":"mutable","name":"tokenId","nameLocation":"6632:7:29","nodeType":"VariableDeclaration","scope":7084,"src":"6624:15:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7061,"name":"uint256","nodeType":"ElementaryTypeName","src":"6624:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7064,"mutability":"mutable","name":"_data","nameLocation":"6662:5:29","nodeType":"VariableDeclaration","scope":7084,"src":"6649:18:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7063,"name":"bytes","nodeType":"ElementaryTypeName","src":"6649:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6572:101:29"},"returnParameters":{"id":7066,"nodeType":"ParameterList","parameters":[],"src":"6691:0:29"},"scope":7529,"src":"6550:307:29","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":7101,"nodeType":"Block","src":"7231:54:29","statements":[{"expression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":7099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":7092,"name":"_owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6695,"src":"7248:7:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":7094,"indexExpression":{"id":7093,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7087,"src":"7256:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7248:16:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":7097,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7276:1:29","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":7096,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7268:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7095,"name":"address","nodeType":"ElementaryTypeName","src":"7268:7:29","typeDescriptions":{}}},"id":7098,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7268:10:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7248:30:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":7091,"id":7100,"nodeType":"Return","src":"7241:37:29"}]},"documentation":{"id":7085,"nodeType":"StructuredDocumentation","src":"6863:292:29","text":" @dev Returns whether `tokenId` exists.\n Tokens can be managed by their owner or approved accounts via {approve} or {setApprovalForAll}.\n Tokens start existing when they are minted (`_mint`),\n and stop existing when they are burned (`_burn`)."},"id":7102,"implemented":true,"kind":"function","modifiers":[],"name":"_exists","nameLocation":"7169:7:29","nodeType":"FunctionDefinition","parameters":{"id":7088,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7087,"mutability":"mutable","name":"tokenId","nameLocation":"7185:7:29","nodeType":"VariableDeclaration","scope":7102,"src":"7177:15:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7086,"name":"uint256","nodeType":"ElementaryTypeName","src":"7177:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7176:17:29"},"returnParameters":{"id":7091,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7090,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7102,"src":"7225:4:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7089,"name":"bool","nodeType":"ElementaryTypeName","src":"7225:4:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7224:6:29"},"scope":7529,"src":"7160:125:29","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":7142,"nodeType":"Block","src":"7542:245:29","statements":[{"expression":{"arguments":[{"arguments":[{"id":7114,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7107,"src":"7568:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7113,"name":"_exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7102,"src":"7560:7:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":7115,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7560:16:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e","id":7116,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7578:46:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_5797d1ccb08b83980dd0c07ea40d8f6a64d35fff736a19bdd17522954cb0899c","typeString":"literal_string \"ERC721: operator query for nonexistent token\""},"value":"ERC721: operator query for nonexistent token"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5797d1ccb08b83980dd0c07ea40d8f6a64d35fff736a19bdd17522954cb0899c","typeString":"literal_string \"ERC721: operator query for nonexistent token\""}],"id":7112,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7552:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7117,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7552:73:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7118,"nodeType":"ExpressionStatement","src":"7552:73:29"},{"assignments":[7120],"declarations":[{"constant":false,"id":7120,"mutability":"mutable","name":"owner","nameLocation":"7643:5:29","nodeType":"VariableDeclaration","scope":7142,"src":"7635:13:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7119,"name":"address","nodeType":"ElementaryTypeName","src":"7635:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":7125,"initialValue":{"arguments":[{"id":7123,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7107,"src":"7666:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7121,"name":"ERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7529,"src":"7651:6:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721_$7529_$","typeString":"type(contract ERC721)"}},"id":7122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7658:7:29","memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":6809,"src":"7651:14:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":7124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7651:23:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"7635:39:29"},{"expression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":7139,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":7133,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":7128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7126,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7105,"src":"7692:7:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":7127,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7120,"src":"7703:5:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7692:16:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":7130,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7120,"src":"7729:5:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7131,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7105,"src":"7736:7:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":7129,"name":"isApprovedForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6979,"src":"7712:16:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view returns (bool)"}},"id":7132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7712:32:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"7692:52:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":7138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":7135,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7107,"src":"7760:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7134,"name":"getApproved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6944,"src":"7748:11:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":7136,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7748:20:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":7137,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7105,"src":"7772:7:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7748:31:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"7692:87:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":7140,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7691:89:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":7111,"id":7141,"nodeType":"Return","src":"7684:96:29"}]},"documentation":{"id":7103,"nodeType":"StructuredDocumentation","src":"7291:147:29","text":" @dev Returns whether `spender` is allowed to manage `tokenId`.\n Requirements:\n - `tokenId` must exist."},"id":7143,"implemented":true,"kind":"function","modifiers":[],"name":"_isApprovedOrOwner","nameLocation":"7452:18:29","nodeType":"FunctionDefinition","parameters":{"id":7108,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7105,"mutability":"mutable","name":"spender","nameLocation":"7479:7:29","nodeType":"VariableDeclaration","scope":7143,"src":"7471:15:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7104,"name":"address","nodeType":"ElementaryTypeName","src":"7471:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7107,"mutability":"mutable","name":"tokenId","nameLocation":"7496:7:29","nodeType":"VariableDeclaration","scope":7143,"src":"7488:15:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7106,"name":"uint256","nodeType":"ElementaryTypeName","src":"7488:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7470:34:29"},"returnParameters":{"id":7111,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7110,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7143,"src":"7536:4:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7109,"name":"bool","nodeType":"ElementaryTypeName","src":"7536:4:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7535:6:29"},"scope":7529,"src":"7443:344:29","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":7157,"nodeType":"Block","src":"8182:43:29","statements":[{"expression":{"arguments":[{"id":7152,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7146,"src":"8202:2:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7153,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7148,"src":"8206:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"","id":7154,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8215:2:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":7151,"name":"_safeMint","nodeType":"Identifier","overloadedDeclarations":[7158,7187],"referencedDeclaration":7187,"src":"8192:9:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,uint256,bytes memory)"}},"id":7155,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8192:26:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7156,"nodeType":"ExpressionStatement","src":"8192:26:29"}]},"documentation":{"id":7144,"nodeType":"StructuredDocumentation","src":"7793:319:29","text":" @dev Safely mints `tokenId` and transfers it to `to`.\n Requirements:\n - `tokenId` must not exist.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event."},"id":7158,"implemented":true,"kind":"function","modifiers":[],"name":"_safeMint","nameLocation":"8126:9:29","nodeType":"FunctionDefinition","parameters":{"id":7149,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7146,"mutability":"mutable","name":"to","nameLocation":"8144:2:29","nodeType":"VariableDeclaration","scope":7158,"src":"8136:10:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7145,"name":"address","nodeType":"ElementaryTypeName","src":"8136:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7148,"mutability":"mutable","name":"tokenId","nameLocation":"8156:7:29","nodeType":"VariableDeclaration","scope":7158,"src":"8148:15:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7147,"name":"uint256","nodeType":"ElementaryTypeName","src":"8148:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8135:29:29"},"returnParameters":{"id":7150,"nodeType":"ParameterList","parameters":[],"src":"8182:0:29"},"scope":7529,"src":"8117:108:29","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":7186,"nodeType":"Block","src":"8561:196:29","statements":[{"expression":{"arguments":[{"id":7169,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7161,"src":"8577:2:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7170,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7163,"src":"8581:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7168,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7253,"src":"8571:5:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":7171,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8571:18:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7172,"nodeType":"ExpressionStatement","src":"8571:18:29"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"hexValue":"30","id":7177,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8651:1:29","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":7176,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8643:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7175,"name":"address","nodeType":"ElementaryTypeName","src":"8643:7:29","typeDescriptions":{}}},"id":7178,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8643:10:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7179,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7161,"src":"8655:2:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7180,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7163,"src":"8659:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7181,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7165,"src":"8668:5:29","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"}],"id":7174,"name":"_checkOnERC721Received","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7506,"src":"8620:22:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$","typeString":"function (address,address,uint256,bytes memory) returns (bool)"}},"id":7182,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8620:54:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572","id":7183,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8688:52:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e","typeString":"literal_string \"ERC721: transfer to non ERC721Receiver implementer\""},"value":"ERC721: transfer to non ERC721Receiver implementer"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e","typeString":"literal_string \"ERC721: transfer to non ERC721Receiver implementer\""}],"id":7173,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8599:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7184,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8599:151:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7185,"nodeType":"ExpressionStatement","src":"8599:151:29"}]},"documentation":{"id":7159,"nodeType":"StructuredDocumentation","src":"8231:210:29","text":" @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is\n forwarded in {IERC721Receiver-onERC721Received} to contract recipients."},"id":7187,"implemented":true,"kind":"function","modifiers":[],"name":"_safeMint","nameLocation":"8455:9:29","nodeType":"FunctionDefinition","parameters":{"id":7166,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7161,"mutability":"mutable","name":"to","nameLocation":"8482:2:29","nodeType":"VariableDeclaration","scope":7187,"src":"8474:10:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7160,"name":"address","nodeType":"ElementaryTypeName","src":"8474:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7163,"mutability":"mutable","name":"tokenId","nameLocation":"8502:7:29","nodeType":"VariableDeclaration","scope":7187,"src":"8494:15:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7162,"name":"uint256","nodeType":"ElementaryTypeName","src":"8494:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7165,"mutability":"mutable","name":"_data","nameLocation":"8532:5:29","nodeType":"VariableDeclaration","scope":7187,"src":"8519:18:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7164,"name":"bytes","nodeType":"ElementaryTypeName","src":"8519:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8464:79:29"},"returnParameters":{"id":7167,"nodeType":"ParameterList","parameters":[],"src":"8561:0:29"},"scope":7529,"src":"8446:311:29","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":7252,"nodeType":"Block","src":"9140:366:29","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":7201,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7196,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7190,"src":"9158:2:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":7199,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9172:1:29","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":7198,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9164:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7197,"name":"address","nodeType":"ElementaryTypeName","src":"9164:7:29","typeDescriptions":{}}},"id":7200,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9164:10:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9158:16:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a206d696e7420746f20746865207a65726f2061646472657373","id":7202,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9176:34:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6","typeString":"literal_string \"ERC721: mint to the zero address\""},"value":"ERC721: mint to the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6","typeString":"literal_string \"ERC721: mint to the zero address\""}],"id":7195,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9150:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7203,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9150:61:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7204,"nodeType":"ExpressionStatement","src":"9150:61:29"},{"expression":{"arguments":[{"id":7209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"9229:17:29","subExpression":{"arguments":[{"id":7207,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7192,"src":"9238:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7206,"name":"_exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7102,"src":"9230:7:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":7208,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9230:16:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a20746f6b656e20616c7265616479206d696e746564","id":7210,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9248:30:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57","typeString":"literal_string \"ERC721: token already minted\""},"value":"ERC721: token already minted"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57","typeString":"literal_string \"ERC721: token already minted\""}],"id":7205,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9221:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9221:58:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7212,"nodeType":"ExpressionStatement","src":"9221:58:29"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":7216,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9319:1:29","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":7215,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9311:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7214,"name":"address","nodeType":"ElementaryTypeName","src":"9311:7:29","typeDescriptions":{}}},"id":7217,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9311:10:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7218,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7190,"src":"9323:2:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7219,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7192,"src":"9327:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7213,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7517,"src":"9290:20:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":7220,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9290:45:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7221,"nodeType":"ExpressionStatement","src":"9290:45:29"},{"expression":{"id":7226,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":7222,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6699,"src":"9346:9:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":7224,"indexExpression":{"id":7223,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7190,"src":"9356:2:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9346:13:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":7225,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9363:1:29","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9346:18:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7227,"nodeType":"ExpressionStatement","src":"9346:18:29"},{"expression":{"id":7232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":7228,"name":"_owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6695,"src":"9374:7:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":7230,"indexExpression":{"id":7229,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7192,"src":"9382:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9374:16:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":7231,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7190,"src":"9393:2:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9374:21:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7233,"nodeType":"ExpressionStatement","src":"9374:21:29"},{"eventCall":{"arguments":[{"arguments":[{"hexValue":"30","id":7237,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9428:1:29","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":7236,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9420:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7235,"name":"address","nodeType":"ElementaryTypeName","src":"9420:7:29","typeDescriptions":{}}},"id":7238,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9420:10:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7239,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7190,"src":"9432:2:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7240,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7192,"src":"9436:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7234,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7544,"src":"9411:8:29","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":7241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9411:33:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7242,"nodeType":"EmitStatement","src":"9406:38:29"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":7246,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9483:1:29","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":7245,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9475:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7244,"name":"address","nodeType":"ElementaryTypeName","src":"9475:7:29","typeDescriptions":{}}},"id":7247,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9475:10:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7248,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7190,"src":"9487:2:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7249,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7192,"src":"9491:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7243,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7528,"src":"9455:19:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":7250,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9455:44:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7251,"nodeType":"ExpressionStatement","src":"9455:44:29"}]},"documentation":{"id":7188,"nodeType":"StructuredDocumentation","src":"8763:311:29","text":" @dev Mints `tokenId` and transfers it to `to`.\n WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\n Requirements:\n - `tokenId` must not exist.\n - `to` cannot be the zero address.\n Emits a {Transfer} event."},"id":7253,"implemented":true,"kind":"function","modifiers":[],"name":"_mint","nameLocation":"9088:5:29","nodeType":"FunctionDefinition","parameters":{"id":7193,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7190,"mutability":"mutable","name":"to","nameLocation":"9102:2:29","nodeType":"VariableDeclaration","scope":7253,"src":"9094:10:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7189,"name":"address","nodeType":"ElementaryTypeName","src":"9094:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7192,"mutability":"mutable","name":"tokenId","nameLocation":"9114:7:29","nodeType":"VariableDeclaration","scope":7253,"src":"9106:15:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7191,"name":"uint256","nodeType":"ElementaryTypeName","src":"9106:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9093:29:29"},"returnParameters":{"id":7194,"nodeType":"ParameterList","parameters":[],"src":"9140:0:29"},"scope":7529,"src":"9079:427:29","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":7312,"nodeType":"Block","src":"9772:357:29","statements":[{"assignments":[7260],"declarations":[{"constant":false,"id":7260,"mutability":"mutable","name":"owner","nameLocation":"9790:5:29","nodeType":"VariableDeclaration","scope":7312,"src":"9782:13:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7259,"name":"address","nodeType":"ElementaryTypeName","src":"9782:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":7265,"initialValue":{"arguments":[{"id":7263,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7256,"src":"9813:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7261,"name":"ERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7529,"src":"9798:6:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721_$7529_$","typeString":"type(contract ERC721)"}},"id":7262,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9805:7:29","memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":6809,"src":"9798:14:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":7264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9798:23:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"9782:39:29"},{"expression":{"arguments":[{"id":7267,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7260,"src":"9853:5:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":7270,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9868:1:29","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":7269,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9860:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7268,"name":"address","nodeType":"ElementaryTypeName","src":"9860:7:29","typeDescriptions":{}}},"id":7271,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9860:10:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7272,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7256,"src":"9872:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7266,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7517,"src":"9832:20:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":7273,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9832:48:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7274,"nodeType":"ExpressionStatement","src":"9832:48:29"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":7278,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9935:1:29","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":7277,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9927:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7276,"name":"address","nodeType":"ElementaryTypeName","src":"9927:7:29","typeDescriptions":{}}},"id":7279,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9927:10:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7280,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7256,"src":"9939:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7275,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7412,"src":"9918:8:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":7281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9918:29:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7282,"nodeType":"ExpressionStatement","src":"9918:29:29"},{"expression":{"id":7287,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":7283,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6699,"src":"9958:9:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":7285,"indexExpression":{"id":7284,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7260,"src":"9968:5:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9958:16:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"31","id":7286,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9978:1:29","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9958:21:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7288,"nodeType":"ExpressionStatement","src":"9958:21:29"},{"expression":{"id":7292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"9989:23:29","subExpression":{"baseExpression":{"id":7289,"name":"_owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6695,"src":"9996:7:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":7291,"indexExpression":{"id":7290,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7256,"src":"10004:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9996:16:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7293,"nodeType":"ExpressionStatement","src":"9989:23:29"},{"eventCall":{"arguments":[{"id":7295,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7260,"src":"10037:5:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":7298,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10052:1:29","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":7297,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10044:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7296,"name":"address","nodeType":"ElementaryTypeName","src":"10044:7:29","typeDescriptions":{}}},"id":7299,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10044:10:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7300,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7256,"src":"10056:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7294,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7544,"src":"10028:8:29","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":7301,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10028:36:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7302,"nodeType":"EmitStatement","src":"10023:41:29"},{"expression":{"arguments":[{"id":7304,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7260,"src":"10095:5:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":7307,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10110:1:29","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":7306,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10102:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7305,"name":"address","nodeType":"ElementaryTypeName","src":"10102:7:29","typeDescriptions":{}}},"id":7308,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10102:10:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7309,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7256,"src":"10114:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7303,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7528,"src":"10075:19:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":7310,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10075:47:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7311,"nodeType":"ExpressionStatement","src":"10075:47:29"}]},"documentation":{"id":7254,"nodeType":"StructuredDocumentation","src":"9512:206:29","text":" @dev Destroys `tokenId`.\n The approval is cleared when the token is burned.\n Requirements:\n - `tokenId` must exist.\n Emits a {Transfer} event."},"id":7313,"implemented":true,"kind":"function","modifiers":[],"name":"_burn","nameLocation":"9732:5:29","nodeType":"FunctionDefinition","parameters":{"id":7257,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7256,"mutability":"mutable","name":"tokenId","nameLocation":"9746:7:29","nodeType":"VariableDeclaration","scope":7313,"src":"9738:15:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7255,"name":"uint256","nodeType":"ElementaryTypeName","src":"9738:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9737:17:29"},"returnParameters":{"id":7258,"nodeType":"ParameterList","parameters":[],"src":"9772:0:29"},"scope":7529,"src":"9723:406:29","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":7387,"nodeType":"Block","src":"10562:496:29","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":7329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":7326,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7320,"src":"10595:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7324,"name":"ERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7529,"src":"10580:6:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721_$7529_$","typeString":"type(contract ERC721)"}},"id":7325,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10587:7:29","memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":6809,"src":"10580:14:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":7327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10580:23:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":7328,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7316,"src":"10607:4:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10580:31:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a207472616e736665722066726f6d20696e636f7272656374206f776e6572","id":7330,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10613:39:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48","typeString":"literal_string \"ERC721: transfer from incorrect owner\""},"value":"ERC721: transfer from incorrect owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48","typeString":"literal_string \"ERC721: transfer from incorrect owner\""}],"id":7323,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"10572:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10572:81:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7332,"nodeType":"ExpressionStatement","src":"10572:81:29"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":7339,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7334,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7318,"src":"10671:2:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":7337,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10685:1:29","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":7336,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10677:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7335,"name":"address","nodeType":"ElementaryTypeName","src":"10677:7:29","typeDescriptions":{}}},"id":7338,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10677:10:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10671:16:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a207472616e7366657220746f20746865207a65726f2061646472657373","id":7340,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10689:38:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4","typeString":"literal_string \"ERC721: transfer to the zero address\""},"value":"ERC721: transfer to the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4","typeString":"literal_string \"ERC721: transfer to the zero address\""}],"id":7333,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"10663:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7341,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10663:65:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7342,"nodeType":"ExpressionStatement","src":"10663:65:29"},{"expression":{"arguments":[{"id":7344,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7316,"src":"10760:4:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7345,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7318,"src":"10766:2:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7346,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7320,"src":"10770:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7343,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7517,"src":"10739:20:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":7347,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10739:39:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7348,"nodeType":"ExpressionStatement","src":"10739:39:29"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":7352,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10857:1:29","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":7351,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10849:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7350,"name":"address","nodeType":"ElementaryTypeName","src":"10849:7:29","typeDescriptions":{}}},"id":7353,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10849:10:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7354,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7320,"src":"10861:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7349,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7412,"src":"10840:8:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":7355,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10840:29:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7356,"nodeType":"ExpressionStatement","src":"10840:29:29"},{"expression":{"id":7361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":7357,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6699,"src":"10880:9:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":7359,"indexExpression":{"id":7358,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7316,"src":"10890:4:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10880:15:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"31","id":7360,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10899:1:29","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10880:20:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7362,"nodeType":"ExpressionStatement","src":"10880:20:29"},{"expression":{"id":7367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":7363,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6699,"src":"10910:9:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":7365,"indexExpression":{"id":7364,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7318,"src":"10920:2:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10910:13:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":7366,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10927:1:29","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10910:18:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7368,"nodeType":"ExpressionStatement","src":"10910:18:29"},{"expression":{"id":7373,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":7369,"name":"_owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6695,"src":"10938:7:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":7371,"indexExpression":{"id":7370,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7320,"src":"10946:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10938:16:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":7372,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7318,"src":"10957:2:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10938:21:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7374,"nodeType":"ExpressionStatement","src":"10938:21:29"},{"eventCall":{"arguments":[{"id":7376,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7316,"src":"10984:4:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7377,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7318,"src":"10990:2:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7378,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7320,"src":"10994:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7375,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7544,"src":"10975:8:29","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":7379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10975:27:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7380,"nodeType":"EmitStatement","src":"10970:32:29"},{"expression":{"arguments":[{"id":7382,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7316,"src":"11033:4:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7383,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7318,"src":"11039:2:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7384,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7320,"src":"11043:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7381,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7528,"src":"11013:19:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":7385,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11013:38:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7386,"nodeType":"ExpressionStatement","src":"11013:38:29"}]},"documentation":{"id":7314,"nodeType":"StructuredDocumentation","src":"10135:313:29","text":" @dev Transfers `tokenId` from `from` to `to`.\n As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\n Requirements:\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n Emits a {Transfer} event."},"id":7388,"implemented":true,"kind":"function","modifiers":[],"name":"_transfer","nameLocation":"10462:9:29","nodeType":"FunctionDefinition","parameters":{"id":7321,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7316,"mutability":"mutable","name":"from","nameLocation":"10489:4:29","nodeType":"VariableDeclaration","scope":7388,"src":"10481:12:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7315,"name":"address","nodeType":"ElementaryTypeName","src":"10481:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7318,"mutability":"mutable","name":"to","nameLocation":"10511:2:29","nodeType":"VariableDeclaration","scope":7388,"src":"10503:10:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7317,"name":"address","nodeType":"ElementaryTypeName","src":"10503:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7320,"mutability":"mutable","name":"tokenId","nameLocation":"10531:7:29","nodeType":"VariableDeclaration","scope":7388,"src":"10523:15:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7319,"name":"uint256","nodeType":"ElementaryTypeName","src":"10523:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10471:73:29"},"returnParameters":{"id":7322,"nodeType":"ParameterList","parameters":[],"src":"10562:0:29"},"scope":7529,"src":"10453:605:29","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":7411,"nodeType":"Block","src":"11233:107:29","statements":[{"expression":{"id":7400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":7396,"name":"_tokenApprovals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6703,"src":"11243:15:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":7398,"indexExpression":{"id":7397,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7393,"src":"11259:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11243:24:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":7399,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7391,"src":"11270:2:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11243:29:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7401,"nodeType":"ExpressionStatement","src":"11243:29:29"},{"eventCall":{"arguments":[{"arguments":[{"id":7405,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7393,"src":"11311:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7403,"name":"ERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7529,"src":"11296:6:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721_$7529_$","typeString":"type(contract ERC721)"}},"id":7404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11303:7:29","memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":6809,"src":"11296:14:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":7406,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11296:23:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7407,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7391,"src":"11321:2:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7408,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7393,"src":"11325:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7402,"name":"Approval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7553,"src":"11287:8:29","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":7409,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11287:46:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7410,"nodeType":"EmitStatement","src":"11282:51:29"}]},"documentation":{"id":7389,"nodeType":"StructuredDocumentation","src":"11064:100:29","text":" @dev Approve `to` to operate on `tokenId`\n Emits a {Approval} event."},"id":7412,"implemented":true,"kind":"function","modifiers":[],"name":"_approve","nameLocation":"11178:8:29","nodeType":"FunctionDefinition","parameters":{"id":7394,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7391,"mutability":"mutable","name":"to","nameLocation":"11195:2:29","nodeType":"VariableDeclaration","scope":7412,"src":"11187:10:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7390,"name":"address","nodeType":"ElementaryTypeName","src":"11187:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7393,"mutability":"mutable","name":"tokenId","nameLocation":"11207:7:29","nodeType":"VariableDeclaration","scope":7412,"src":"11199:15:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7392,"name":"uint256","nodeType":"ElementaryTypeName","src":"11199:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11186:29:29"},"returnParameters":{"id":7395,"nodeType":"ParameterList","parameters":[],"src":"11233:0:29"},"scope":7529,"src":"11169:171:29","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":7443,"nodeType":"Block","src":"11598:184:29","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":7425,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7423,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7415,"src":"11616:5:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":7424,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7417,"src":"11625:8:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11616:17:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a20617070726f766520746f2063616c6c6572","id":7426,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11635:27:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05","typeString":"literal_string \"ERC721: approve to caller\""},"value":"ERC721: approve to caller"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05","typeString":"literal_string \"ERC721: approve to caller\""}],"id":7422,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"11608:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7427,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11608:55:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7428,"nodeType":"ExpressionStatement","src":"11608:55:29"},{"expression":{"id":7435,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":7429,"name":"_operatorApprovals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6709,"src":"11673:18:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":7432,"indexExpression":{"id":7430,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7415,"src":"11692:5:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11673:25:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":7433,"indexExpression":{"id":7431,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7417,"src":"11699:8:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11673:35:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":7434,"name":"approved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7419,"src":"11711:8:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"11673:46:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7436,"nodeType":"ExpressionStatement","src":"11673:46:29"},{"eventCall":{"arguments":[{"id":7438,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7415,"src":"11749:5:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7439,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7417,"src":"11756:8:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7440,"name":"approved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7419,"src":"11766:8:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":7437,"name":"ApprovalForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7562,"src":"11734:14:29","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$","typeString":"function (address,address,bool)"}},"id":7441,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11734:41:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7442,"nodeType":"EmitStatement","src":"11729:46:29"}]},"documentation":{"id":7413,"nodeType":"StructuredDocumentation","src":"11346:124:29","text":" @dev Approve `operator` to operate on all of `owner` tokens\n Emits a {ApprovalForAll} event."},"id":7444,"implemented":true,"kind":"function","modifiers":[],"name":"_setApprovalForAll","nameLocation":"11484:18:29","nodeType":"FunctionDefinition","parameters":{"id":7420,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7415,"mutability":"mutable","name":"owner","nameLocation":"11520:5:29","nodeType":"VariableDeclaration","scope":7444,"src":"11512:13:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7414,"name":"address","nodeType":"ElementaryTypeName","src":"11512:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7417,"mutability":"mutable","name":"operator","nameLocation":"11543:8:29","nodeType":"VariableDeclaration","scope":7444,"src":"11535:16:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7416,"name":"address","nodeType":"ElementaryTypeName","src":"11535:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7419,"mutability":"mutable","name":"approved","nameLocation":"11566:8:29","nodeType":"VariableDeclaration","scope":7444,"src":"11561:13:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7418,"name":"bool","nodeType":"ElementaryTypeName","src":"11561:4:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"11502:78:29"},"returnParameters":{"id":7421,"nodeType":"ParameterList","parameters":[],"src":"11598:0:29"},"scope":7529,"src":"11475:307:29","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":7505,"nodeType":"Block","src":"12491:622:29","statements":[{"condition":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":7458,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7449,"src":"12505:2:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12508:10:29","memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":7836,"src":"12505:13:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$attached_to$_t_address_$","typeString":"function (address) view returns (bool)"}},"id":7460,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12505:15:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":7503,"nodeType":"Block","src":"13071:36:29","statements":[{"expression":{"hexValue":"74727565","id":7501,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"13092:4:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":7457,"id":7502,"nodeType":"Return","src":"13085:11:29"}]},"id":7504,"nodeType":"IfStatement","src":"12501:606:29","trueBody":{"id":7500,"nodeType":"Block","src":"12522:543:29","statements":[{"clauses":[{"block":{"id":7480,"nodeType":"Block","src":"12637:91:29","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":7478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7474,"name":"retval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7472,"src":"12662:6:29","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":7475,"name":"IERC721Receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7663,"src":"12672:15:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721Receiver_$7663_$","typeString":"type(contract IERC721Receiver)"}},"id":7476,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12688:16:29","memberName":"onERC721Received","nodeType":"MemberAccess","referencedDeclaration":7662,"src":"12672:32:29","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$returns$_t_bytes4_$","typeString":"function IERC721Receiver.onERC721Received(address,address,uint256,bytes calldata) returns (bytes4)"}},"id":7477,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12705:8:29","memberName":"selector","nodeType":"MemberAccess","src":"12672:41:29","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"12662:51:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":7457,"id":7479,"nodeType":"Return","src":"12655:58:29"}]},"errorName":"","id":7481,"nodeType":"TryCatchClause","parameters":{"id":7473,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7472,"mutability":"mutable","name":"retval","nameLocation":"12629:6:29","nodeType":"VariableDeclaration","scope":7481,"src":"12622:13:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":7471,"name":"bytes4","nodeType":"ElementaryTypeName","src":"12622:6:29","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"12621:15:29"},"src":"12613:115:29"},{"block":{"id":7497,"nodeType":"Block","src":"12757:298:29","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7488,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":7485,"name":"reason","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7483,"src":"12779:6:29","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":7486,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12786:6:29","memberName":"length","nodeType":"MemberAccess","src":"12779:13:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":7487,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12796:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12779:18:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":7495,"nodeType":"Block","src":"12906:135:29","statements":[{"AST":{"nodeType":"YulBlock","src":"12937:86:29","statements":[{"expression":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12974:2:29","type":"","value":"32"},{"name":"reason","nodeType":"YulIdentifier","src":"12978:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12970:3:29"},"nodeType":"YulFunctionCall","src":"12970:15:29"},{"arguments":[{"name":"reason","nodeType":"YulIdentifier","src":"12993:6:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"12987:5:29"},"nodeType":"YulFunctionCall","src":"12987:13:29"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"12963:6:29"},"nodeType":"YulFunctionCall","src":"12963:38:29"},"nodeType":"YulExpressionStatement","src":"12963:38:29"}]},"evmVersion":"paris","externalReferences":[{"declaration":7483,"isOffset":false,"isSlot":false,"src":"12978:6:29","valueSize":1},{"declaration":7483,"isOffset":false,"isSlot":false,"src":"12993:6:29","valueSize":1}],"id":7494,"nodeType":"InlineAssembly","src":"12928:95:29"}]},"id":7496,"nodeType":"IfStatement","src":"12775:266:29","trueBody":{"id":7493,"nodeType":"Block","src":"12799:101:29","statements":[{"expression":{"arguments":[{"hexValue":"4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572","id":7490,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12828:52:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e","typeString":"literal_string \"ERC721: transfer to non ERC721Receiver implementer\""},"value":"ERC721: transfer to non ERC721Receiver implementer"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e","typeString":"literal_string \"ERC721: transfer to non ERC721Receiver implementer\""}],"id":7489,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"12821:6:29","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":7491,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12821:60:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7492,"nodeType":"ExpressionStatement","src":"12821:60:29"}]}}]},"errorName":"","id":7498,"nodeType":"TryCatchClause","parameters":{"id":7484,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7483,"mutability":"mutable","name":"reason","nameLocation":"12749:6:29","nodeType":"VariableDeclaration","scope":7498,"src":"12736:19:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7482,"name":"bytes","nodeType":"ElementaryTypeName","src":"12736:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"12735:21:29"},"src":"12729:326:29"}],"externalCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":7465,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8125,"src":"12577:10:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":7466,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12577:12:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7467,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7447,"src":"12591:4:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7468,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7451,"src":"12597:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7469,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7453,"src":"12606:5:29","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":7462,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7449,"src":"12556:2:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7461,"name":"IERC721Receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7663,"src":"12540:15:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721Receiver_$7663_$","typeString":"type(contract IERC721Receiver)"}},"id":7463,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12540:19:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC721Receiver_$7663","typeString":"contract IERC721Receiver"}},"id":7464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12560:16:29","memberName":"onERC721Received","nodeType":"MemberAccess","referencedDeclaration":7662,"src":"12540:36:29","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":7470,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12540:72:29","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":7499,"nodeType":"TryStatement","src":"12536:519:29"}]}}]},"documentation":{"id":7445,"nodeType":"StructuredDocumentation","src":"11788:542:29","text":" @dev Internal function to invoke {IERC721Receiver-onERC721Received} on a target address.\n The call is not executed if the target address is not a contract.\n @param from address representing the previous owner of the given token ID\n @param to target address that will receive the tokens\n @param tokenId uint256 ID of the token to be transferred\n @param _data bytes optional data to send along with the call\n @return bool whether the call correctly returned the expected magic value"},"id":7506,"implemented":true,"kind":"function","modifiers":[],"name":"_checkOnERC721Received","nameLocation":"12344:22:29","nodeType":"FunctionDefinition","parameters":{"id":7454,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7447,"mutability":"mutable","name":"from","nameLocation":"12384:4:29","nodeType":"VariableDeclaration","scope":7506,"src":"12376:12:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7446,"name":"address","nodeType":"ElementaryTypeName","src":"12376:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7449,"mutability":"mutable","name":"to","nameLocation":"12406:2:29","nodeType":"VariableDeclaration","scope":7506,"src":"12398:10:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7448,"name":"address","nodeType":"ElementaryTypeName","src":"12398:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7451,"mutability":"mutable","name":"tokenId","nameLocation":"12426:7:29","nodeType":"VariableDeclaration","scope":7506,"src":"12418:15:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7450,"name":"uint256","nodeType":"ElementaryTypeName","src":"12418:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7453,"mutability":"mutable","name":"_data","nameLocation":"12456:5:29","nodeType":"VariableDeclaration","scope":7506,"src":"12443:18:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7452,"name":"bytes","nodeType":"ElementaryTypeName","src":"12443:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"12366:101:29"},"returnParameters":{"id":7457,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7456,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7506,"src":"12485:4:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7455,"name":"bool","nodeType":"ElementaryTypeName","src":"12485:4:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"12484:6:29"},"scope":7529,"src":"12335:778:29","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":7516,"nodeType":"Block","src":"13789:2:29","statements":[]},"documentation":{"id":7507,"nodeType":"StructuredDocumentation","src":"13119:545:29","text":" @dev Hook that is called before any token transfer. This includes minting\n and burning.\n Calling conditions:\n - When `from` and `to` are both non-zero, ``from``'s `tokenId` will be\n transferred to `to`.\n - When `from` is zero, `tokenId` will be minted for `to`.\n - When `to` is zero, ``from``'s `tokenId` 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]."},"id":7517,"implemented":true,"kind":"function","modifiers":[],"name":"_beforeTokenTransfer","nameLocation":"13678:20:29","nodeType":"FunctionDefinition","parameters":{"id":7514,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7509,"mutability":"mutable","name":"from","nameLocation":"13716:4:29","nodeType":"VariableDeclaration","scope":7517,"src":"13708:12:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7508,"name":"address","nodeType":"ElementaryTypeName","src":"13708:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7511,"mutability":"mutable","name":"to","nameLocation":"13738:2:29","nodeType":"VariableDeclaration","scope":7517,"src":"13730:10:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7510,"name":"address","nodeType":"ElementaryTypeName","src":"13730:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7513,"mutability":"mutable","name":"tokenId","nameLocation":"13758:7:29","nodeType":"VariableDeclaration","scope":7517,"src":"13750:15:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7512,"name":"uint256","nodeType":"ElementaryTypeName","src":"13750:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13698:73:29"},"returnParameters":{"id":7515,"nodeType":"ParameterList","parameters":[],"src":"13789:0:29"},"scope":7529,"src":"13669:122:29","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":7527,"nodeType":"Block","src":"14282:2:29","statements":[]},"documentation":{"id":7518,"nodeType":"StructuredDocumentation","src":"13797:361:29","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.\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]."},"id":7528,"implemented":true,"kind":"function","modifiers":[],"name":"_afterTokenTransfer","nameLocation":"14172:19:29","nodeType":"FunctionDefinition","parameters":{"id":7525,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7520,"mutability":"mutable","name":"from","nameLocation":"14209:4:29","nodeType":"VariableDeclaration","scope":7528,"src":"14201:12:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7519,"name":"address","nodeType":"ElementaryTypeName","src":"14201:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7522,"mutability":"mutable","name":"to","nameLocation":"14231:2:29","nodeType":"VariableDeclaration","scope":7528,"src":"14223:10:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7521,"name":"address","nodeType":"ElementaryTypeName","src":"14223:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7524,"mutability":"mutable","name":"tokenId","nameLocation":"14251:7:29","nodeType":"VariableDeclaration","scope":7528,"src":"14243:15:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7523,"name":"uint256","nodeType":"ElementaryTypeName","src":"14243:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14191:73:29"},"returnParameters":{"id":7526,"nodeType":"ParameterList","parameters":[],"src":"14282:0:29"},"scope":7529,"src":"14163:121:29","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":7530,"src":"628:13658:29","usedErrors":[]}],"src":"107:14180:29"},"id":29},"@openzeppelin/contracts/token/ERC721/IERC721.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721.sol","exportedSymbols":{"IERC165":[8448],"IERC721":[7645]},"id":7646,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":7531,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"108:23:30"},{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","file":"../../utils/introspection/IERC165.sol","id":7532,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7646,"sourceUnit":8449,"src":"133:47:30","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":7534,"name":"IERC165","nameLocations":["271:7:30"],"nodeType":"IdentifierPath","referencedDeclaration":8448,"src":"271:7:30"},"id":7535,"nodeType":"InheritanceSpecifier","src":"271:7:30"}],"canonicalName":"IERC721","contractDependencies":[],"contractKind":"interface","documentation":{"id":7533,"nodeType":"StructuredDocumentation","src":"182:67:30","text":" @dev Required interface of an ERC721 compliant contract."},"fullyImplemented":false,"id":7645,"linearizedBaseContracts":[7645,8448],"name":"IERC721","nameLocation":"260:7:30","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":7536,"nodeType":"StructuredDocumentation","src":"285:88:30","text":" @dev Emitted when `tokenId` token is transferred from `from` to `to`."},"eventSelector":"ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","id":7544,"name":"Transfer","nameLocation":"384:8:30","nodeType":"EventDefinition","parameters":{"id":7543,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7538,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"409:4:30","nodeType":"VariableDeclaration","scope":7544,"src":"393:20:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7537,"name":"address","nodeType":"ElementaryTypeName","src":"393:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7540,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"431:2:30","nodeType":"VariableDeclaration","scope":7544,"src":"415:18:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7539,"name":"address","nodeType":"ElementaryTypeName","src":"415:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7542,"indexed":true,"mutability":"mutable","name":"tokenId","nameLocation":"451:7:30","nodeType":"VariableDeclaration","scope":7544,"src":"435:23:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7541,"name":"uint256","nodeType":"ElementaryTypeName","src":"435:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"392:67:30"},"src":"378:82:30"},{"anonymous":false,"documentation":{"id":7545,"nodeType":"StructuredDocumentation","src":"466:94:30","text":" @dev Emitted when `owner` enables `approved` to manage the `tokenId` token."},"eventSelector":"8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","id":7553,"name":"Approval","nameLocation":"571:8:30","nodeType":"EventDefinition","parameters":{"id":7552,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7547,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"596:5:30","nodeType":"VariableDeclaration","scope":7553,"src":"580:21:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7546,"name":"address","nodeType":"ElementaryTypeName","src":"580:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7549,"indexed":true,"mutability":"mutable","name":"approved","nameLocation":"619:8:30","nodeType":"VariableDeclaration","scope":7553,"src":"603:24:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7548,"name":"address","nodeType":"ElementaryTypeName","src":"603:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7551,"indexed":true,"mutability":"mutable","name":"tokenId","nameLocation":"645:7:30","nodeType":"VariableDeclaration","scope":7553,"src":"629:23:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7550,"name":"uint256","nodeType":"ElementaryTypeName","src":"629:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"579:74:30"},"src":"565:89:30"},{"anonymous":false,"documentation":{"id":7554,"nodeType":"StructuredDocumentation","src":"660:117:30","text":" @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets."},"eventSelector":"17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31","id":7562,"name":"ApprovalForAll","nameLocation":"788:14:30","nodeType":"EventDefinition","parameters":{"id":7561,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7556,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"819:5:30","nodeType":"VariableDeclaration","scope":7562,"src":"803:21:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7555,"name":"address","nodeType":"ElementaryTypeName","src":"803:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7558,"indexed":true,"mutability":"mutable","name":"operator","nameLocation":"842:8:30","nodeType":"VariableDeclaration","scope":7562,"src":"826:24:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7557,"name":"address","nodeType":"ElementaryTypeName","src":"826:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7560,"indexed":false,"mutability":"mutable","name":"approved","nameLocation":"857:8:30","nodeType":"VariableDeclaration","scope":7562,"src":"852:13:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7559,"name":"bool","nodeType":"ElementaryTypeName","src":"852:4:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"802:64:30"},"src":"782:85:30"},{"documentation":{"id":7563,"nodeType":"StructuredDocumentation","src":"873:76:30","text":" @dev Returns the number of tokens in ``owner``'s account."},"functionSelector":"70a08231","id":7570,"implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"963:9:30","nodeType":"FunctionDefinition","parameters":{"id":7566,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7565,"mutability":"mutable","name":"owner","nameLocation":"981:5:30","nodeType":"VariableDeclaration","scope":7570,"src":"973:13:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7564,"name":"address","nodeType":"ElementaryTypeName","src":"973:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"972:15:30"},"returnParameters":{"id":7569,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7568,"mutability":"mutable","name":"balance","nameLocation":"1019:7:30","nodeType":"VariableDeclaration","scope":7570,"src":"1011:15:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7567,"name":"uint256","nodeType":"ElementaryTypeName","src":"1011:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1010:17:30"},"scope":7645,"src":"954:74:30","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":7571,"nodeType":"StructuredDocumentation","src":"1034:131:30","text":" @dev Returns the owner of the `tokenId` token.\n Requirements:\n - `tokenId` must exist."},"functionSelector":"6352211e","id":7578,"implemented":false,"kind":"function","modifiers":[],"name":"ownerOf","nameLocation":"1179:7:30","nodeType":"FunctionDefinition","parameters":{"id":7574,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7573,"mutability":"mutable","name":"tokenId","nameLocation":"1195:7:30","nodeType":"VariableDeclaration","scope":7578,"src":"1187:15:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7572,"name":"uint256","nodeType":"ElementaryTypeName","src":"1187:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1186:17:30"},"returnParameters":{"id":7577,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7576,"mutability":"mutable","name":"owner","nameLocation":"1235:5:30","nodeType":"VariableDeclaration","scope":7578,"src":"1227:13:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7575,"name":"address","nodeType":"ElementaryTypeName","src":"1227:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1226:15:30"},"scope":7645,"src":"1170:72:30","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":7579,"nodeType":"StructuredDocumentation","src":"1248:556:30","text":" @dev Safely transfers `tokenId` token from `from` to `to`.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event."},"functionSelector":"b88d4fde","id":7590,"implemented":false,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"1818:16:30","nodeType":"FunctionDefinition","parameters":{"id":7588,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7581,"mutability":"mutable","name":"from","nameLocation":"1852:4:30","nodeType":"VariableDeclaration","scope":7590,"src":"1844:12:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7580,"name":"address","nodeType":"ElementaryTypeName","src":"1844:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7583,"mutability":"mutable","name":"to","nameLocation":"1874:2:30","nodeType":"VariableDeclaration","scope":7590,"src":"1866:10:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7582,"name":"address","nodeType":"ElementaryTypeName","src":"1866:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7585,"mutability":"mutable","name":"tokenId","nameLocation":"1894:7:30","nodeType":"VariableDeclaration","scope":7590,"src":"1886:15:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7584,"name":"uint256","nodeType":"ElementaryTypeName","src":"1886:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7587,"mutability":"mutable","name":"data","nameLocation":"1926:4:30","nodeType":"VariableDeclaration","scope":7590,"src":"1911:19:30","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":7586,"name":"bytes","nodeType":"ElementaryTypeName","src":"1911:5:30","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1834:102:30"},"returnParameters":{"id":7589,"nodeType":"ParameterList","parameters":[],"src":"1945:0:30"},"scope":7645,"src":"1809:137:30","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":7591,"nodeType":"StructuredDocumentation","src":"1952:690:30","text":" @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event."},"functionSelector":"42842e0e","id":7600,"implemented":false,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"2656:16:30","nodeType":"FunctionDefinition","parameters":{"id":7598,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7593,"mutability":"mutable","name":"from","nameLocation":"2690:4:30","nodeType":"VariableDeclaration","scope":7600,"src":"2682:12:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7592,"name":"address","nodeType":"ElementaryTypeName","src":"2682:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7595,"mutability":"mutable","name":"to","nameLocation":"2712:2:30","nodeType":"VariableDeclaration","scope":7600,"src":"2704:10:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7594,"name":"address","nodeType":"ElementaryTypeName","src":"2704:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7597,"mutability":"mutable","name":"tokenId","nameLocation":"2732:7:30","nodeType":"VariableDeclaration","scope":7600,"src":"2724:15:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7596,"name":"uint256","nodeType":"ElementaryTypeName","src":"2724:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2672:73:30"},"returnParameters":{"id":7599,"nodeType":"ParameterList","parameters":[],"src":"2754:0:30"},"scope":7645,"src":"2647:108:30","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":7601,"nodeType":"StructuredDocumentation","src":"2761:504:30","text":" @dev Transfers `tokenId` token from `from` to `to`.\n WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n Emits a {Transfer} event."},"functionSelector":"23b872dd","id":7610,"implemented":false,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"3279:12:30","nodeType":"FunctionDefinition","parameters":{"id":7608,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7603,"mutability":"mutable","name":"from","nameLocation":"3309:4:30","nodeType":"VariableDeclaration","scope":7610,"src":"3301:12:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7602,"name":"address","nodeType":"ElementaryTypeName","src":"3301:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7605,"mutability":"mutable","name":"to","nameLocation":"3331:2:30","nodeType":"VariableDeclaration","scope":7610,"src":"3323:10:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7604,"name":"address","nodeType":"ElementaryTypeName","src":"3323:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7607,"mutability":"mutable","name":"tokenId","nameLocation":"3351:7:30","nodeType":"VariableDeclaration","scope":7610,"src":"3343:15:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7606,"name":"uint256","nodeType":"ElementaryTypeName","src":"3343:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3291:73:30"},"returnParameters":{"id":7609,"nodeType":"ParameterList","parameters":[],"src":"3373:0:30"},"scope":7645,"src":"3270:104:30","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":7611,"nodeType":"StructuredDocumentation","src":"3380:452:30","text":" @dev Gives permission to `to` to transfer `tokenId` token to another account.\n The approval is cleared when the token is transferred.\n Only a single account can be approved at a time, so approving the zero address clears previous approvals.\n Requirements:\n - The caller must own the token or be an approved operator.\n - `tokenId` must exist.\n Emits an {Approval} event."},"functionSelector":"095ea7b3","id":7618,"implemented":false,"kind":"function","modifiers":[],"name":"approve","nameLocation":"3846:7:30","nodeType":"FunctionDefinition","parameters":{"id":7616,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7613,"mutability":"mutable","name":"to","nameLocation":"3862:2:30","nodeType":"VariableDeclaration","scope":7618,"src":"3854:10:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7612,"name":"address","nodeType":"ElementaryTypeName","src":"3854:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7615,"mutability":"mutable","name":"tokenId","nameLocation":"3874:7:30","nodeType":"VariableDeclaration","scope":7618,"src":"3866:15:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7614,"name":"uint256","nodeType":"ElementaryTypeName","src":"3866:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3853:29:30"},"returnParameters":{"id":7617,"nodeType":"ParameterList","parameters":[],"src":"3891:0:30"},"scope":7645,"src":"3837:55:30","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":7619,"nodeType":"StructuredDocumentation","src":"3898:309:30","text":" @dev Approve or remove `operator` as an operator for the caller.\n Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\n Requirements:\n - The `operator` cannot be the caller.\n Emits an {ApprovalForAll} event."},"functionSelector":"a22cb465","id":7626,"implemented":false,"kind":"function","modifiers":[],"name":"setApprovalForAll","nameLocation":"4221:17:30","nodeType":"FunctionDefinition","parameters":{"id":7624,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7621,"mutability":"mutable","name":"operator","nameLocation":"4247:8:30","nodeType":"VariableDeclaration","scope":7626,"src":"4239:16:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7620,"name":"address","nodeType":"ElementaryTypeName","src":"4239:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7623,"mutability":"mutable","name":"_approved","nameLocation":"4262:9:30","nodeType":"VariableDeclaration","scope":7626,"src":"4257:14:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7622,"name":"bool","nodeType":"ElementaryTypeName","src":"4257:4:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4238:34:30"},"returnParameters":{"id":7625,"nodeType":"ParameterList","parameters":[],"src":"4281:0:30"},"scope":7645,"src":"4212:70:30","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":7627,"nodeType":"StructuredDocumentation","src":"4288:139:30","text":" @dev Returns the account approved for `tokenId` token.\n Requirements:\n - `tokenId` must exist."},"functionSelector":"081812fc","id":7634,"implemented":false,"kind":"function","modifiers":[],"name":"getApproved","nameLocation":"4441:11:30","nodeType":"FunctionDefinition","parameters":{"id":7630,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7629,"mutability":"mutable","name":"tokenId","nameLocation":"4461:7:30","nodeType":"VariableDeclaration","scope":7634,"src":"4453:15:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7628,"name":"uint256","nodeType":"ElementaryTypeName","src":"4453:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4452:17:30"},"returnParameters":{"id":7633,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7632,"mutability":"mutable","name":"operator","nameLocation":"4501:8:30","nodeType":"VariableDeclaration","scope":7634,"src":"4493:16:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7631,"name":"address","nodeType":"ElementaryTypeName","src":"4493:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4492:18:30"},"scope":7645,"src":"4432:79:30","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":7635,"nodeType":"StructuredDocumentation","src":"4517:138:30","text":" @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\n See {setApprovalForAll}"},"functionSelector":"e985e9c5","id":7644,"implemented":false,"kind":"function","modifiers":[],"name":"isApprovedForAll","nameLocation":"4669:16:30","nodeType":"FunctionDefinition","parameters":{"id":7640,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7637,"mutability":"mutable","name":"owner","nameLocation":"4694:5:30","nodeType":"VariableDeclaration","scope":7644,"src":"4686:13:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7636,"name":"address","nodeType":"ElementaryTypeName","src":"4686:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7639,"mutability":"mutable","name":"operator","nameLocation":"4709:8:30","nodeType":"VariableDeclaration","scope":7644,"src":"4701:16:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7638,"name":"address","nodeType":"ElementaryTypeName","src":"4701:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4685:33:30"},"returnParameters":{"id":7643,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7642,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7644,"src":"4742:4:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7641,"name":"bool","nodeType":"ElementaryTypeName","src":"4742:4:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4741:6:30"},"scope":7645,"src":"4660:88:30","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":7646,"src":"250:4500:30","usedErrors":[]}],"src":"108:4643:30"},"id":30},"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol","exportedSymbols":{"IERC721Receiver":[7663]},"id":7664,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":7647,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"116:23:31"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC721Receiver","contractDependencies":[],"contractKind":"interface","documentation":{"id":7648,"nodeType":"StructuredDocumentation","src":"141:152:31","text":" @title ERC721 token receiver interface\n @dev Interface for any contract that wants to support safeTransfers\n from ERC721 asset contracts."},"fullyImplemented":false,"id":7663,"linearizedBaseContracts":[7663],"name":"IERC721Receiver","nameLocation":"304:15:31","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":7649,"nodeType":"StructuredDocumentation","src":"326:493:31","text":" @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\n by `operator` from `from`, this function is called.\n It must return its Solidity selector to confirm the token transfer.\n If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted.\n The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`."},"functionSelector":"150b7a02","id":7662,"implemented":false,"kind":"function","modifiers":[],"name":"onERC721Received","nameLocation":"833:16:31","nodeType":"FunctionDefinition","parameters":{"id":7658,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7651,"mutability":"mutable","name":"operator","nameLocation":"867:8:31","nodeType":"VariableDeclaration","scope":7662,"src":"859:16:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7650,"name":"address","nodeType":"ElementaryTypeName","src":"859:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7653,"mutability":"mutable","name":"from","nameLocation":"893:4:31","nodeType":"VariableDeclaration","scope":7662,"src":"885:12:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7652,"name":"address","nodeType":"ElementaryTypeName","src":"885:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7655,"mutability":"mutable","name":"tokenId","nameLocation":"915:7:31","nodeType":"VariableDeclaration","scope":7662,"src":"907:15:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7654,"name":"uint256","nodeType":"ElementaryTypeName","src":"907:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7657,"mutability":"mutable","name":"data","nameLocation":"947:4:31","nodeType":"VariableDeclaration","scope":7662,"src":"932:19:31","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":7656,"name":"bytes","nodeType":"ElementaryTypeName","src":"932:5:31","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"849:108:31"},"returnParameters":{"id":7661,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7660,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7662,"src":"976:6:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":7659,"name":"bytes4","nodeType":"ElementaryTypeName","src":"976:6:31","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"975:8:31"},"scope":7663,"src":"824:160:31","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":7664,"src":"294:692:31","usedErrors":[]}],"src":"116:871:31"},"id":31},"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol","exportedSymbols":{"Address":[8113],"Context":[8135],"ERC165":[8436],"ERC721":[7529],"ERC721URIStorage":[7791],"IERC165":[8448],"IERC721":[7645],"IERC721Metadata":[7818],"IERC721Receiver":[7663],"Strings":[8412]},"id":7792,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":7665,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"113:23:32"},{"absolutePath":"@openzeppelin/contracts/token/ERC721/ERC721.sol","file":"../ERC721.sol","id":7666,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7792,"sourceUnit":7530,"src":"138:23:32","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":7668,"name":"ERC721","nameLocations":["271:6:32"],"nodeType":"IdentifierPath","referencedDeclaration":7529,"src":"271:6:32"},"id":7669,"nodeType":"InheritanceSpecifier","src":"271:6:32"}],"canonicalName":"ERC721URIStorage","contractDependencies":[],"contractKind":"contract","documentation":{"id":7667,"nodeType":"StructuredDocumentation","src":"163:69:32","text":" @dev ERC721 token with storage based token URI management."},"fullyImplemented":false,"id":7791,"linearizedBaseContracts":[7791,7529,7818,7645,8436,8448,8135],"name":"ERC721URIStorage","nameLocation":"251:16:32","nodeType":"ContractDefinition","nodes":[{"global":false,"id":7672,"libraryName":{"id":7670,"name":"Strings","nameLocations":["290:7:32"],"nodeType":"IdentifierPath","referencedDeclaration":8412,"src":"290:7:32"},"nodeType":"UsingForDirective","src":"284:26:32","typeName":{"id":7671,"name":"uint256","nodeType":"ElementaryTypeName","src":"302:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"constant":false,"id":7676,"mutability":"mutable","name":"_tokenURIs","nameLocation":"390:10:32","nodeType":"VariableDeclaration","scope":7791,"src":"355:45:32","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_string_storage_$","typeString":"mapping(uint256 => string)"},"typeName":{"id":7675,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":7673,"name":"uint256","nodeType":"ElementaryTypeName","src":"363:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"355:26:32","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_string_storage_$","typeString":"mapping(uint256 => string)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":7674,"name":"string","nodeType":"ElementaryTypeName","src":"374:6:32","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}}},"visibility":"private"},{"baseFunctions":[6871],"body":{"id":7737,"nodeType":"Block","src":"555:575:32","statements":[{"expression":{"arguments":[{"arguments":[{"id":7687,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7679,"src":"581:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7686,"name":"_exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7102,"src":"573:7:32","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":7688,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"573:16:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524337323155524953746f726167653a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e","id":7689,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"591:51:32","typeDescriptions":{"typeIdentifier":"t_stringliteral_8e9ed1638ba7e2d59e03d0957c9339381732ac84d73f65c86c45db1467eafa2a","typeString":"literal_string \"ERC721URIStorage: URI query for nonexistent token\""},"value":"ERC721URIStorage: URI query for nonexistent token"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8e9ed1638ba7e2d59e03d0957c9339381732ac84d73f65c86c45db1467eafa2a","typeString":"literal_string \"ERC721URIStorage: URI query for nonexistent token\""}],"id":7685,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"565:7:32","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7690,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"565:78:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7691,"nodeType":"ExpressionStatement","src":"565:78:32"},{"assignments":[7693],"declarations":[{"constant":false,"id":7693,"mutability":"mutable","name":"_tokenURI","nameLocation":"668:9:32","nodeType":"VariableDeclaration","scope":7737,"src":"654:23:32","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7692,"name":"string","nodeType":"ElementaryTypeName","src":"654:6:32","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":7697,"initialValue":{"baseExpression":{"id":7694,"name":"_tokenURIs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7676,"src":"680:10:32","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_string_storage_$","typeString":"mapping(uint256 => string storage ref)"}},"id":7696,"indexExpression":{"id":7695,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7679,"src":"691:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"680:19:32","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"VariableDeclarationStatement","src":"654:45:32"},{"assignments":[7699],"declarations":[{"constant":false,"id":7699,"mutability":"mutable","name":"base","nameLocation":"723:4:32","nodeType":"VariableDeclaration","scope":7737,"src":"709:18:32","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7698,"name":"string","nodeType":"ElementaryTypeName","src":"709:6:32","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":7702,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":7700,"name":"_baseURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6880,"src":"730:8:32","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_string_memory_ptr_$","typeString":"function () view returns (string memory)"}},"id":7701,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"730:10:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"709:31:32"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7709,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":7705,"name":"base","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7699,"src":"819:4:32","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":7704,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"813:5:32","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":7703,"name":"bytes","nodeType":"ElementaryTypeName","src":"813:5:32","typeDescriptions":{}}},"id":7706,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"813:11:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":7707,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"825:6:32","memberName":"length","nodeType":"MemberAccess","src":"813:18:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":7708,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"835:1:32","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"813:23:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7713,"nodeType":"IfStatement","src":"809:70:32","trueBody":{"id":7712,"nodeType":"Block","src":"838:41:32","statements":[{"expression":{"id":7710,"name":"_tokenURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7693,"src":"859:9:32","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":7684,"id":7711,"nodeType":"Return","src":"852:16:32"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7720,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":7716,"name":"_tokenURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7693,"src":"987:9:32","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":7715,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"981:5:32","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":7714,"name":"bytes","nodeType":"ElementaryTypeName","src":"981:5:32","typeDescriptions":{}}},"id":7717,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"981:16:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":7718,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"998:6:32","memberName":"length","nodeType":"MemberAccess","src":"981:23:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":7719,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1007:1:32","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"981:27:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7731,"nodeType":"IfStatement","src":"977:106:32","trueBody":{"id":7730,"nodeType":"Block","src":"1010:73:32","statements":[{"expression":{"arguments":[{"arguments":[{"id":7725,"name":"base","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7699,"src":"1055:4:32","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7726,"name":"_tokenURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7693,"src":"1061:9:32","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":7723,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1038:3:32","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7724,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1042:12:32","memberName":"encodePacked","nodeType":"MemberAccess","src":"1038:16:32","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":7727,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1038:33:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7722,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1031:6:32","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":7721,"name":"string","nodeType":"ElementaryTypeName","src":"1031:6:32","typeDescriptions":{}}},"id":7728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1031:41:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":7684,"id":7729,"nodeType":"Return","src":"1024:48:32"}]}},{"expression":{"arguments":[{"id":7734,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7679,"src":"1115:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7732,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1100:5:32","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_ERC721URIStorage_$7791_$","typeString":"type(contract super ERC721URIStorage)"}},"id":7733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1106:8:32","memberName":"tokenURI","nodeType":"MemberAccess","referencedDeclaration":6871,"src":"1100:14:32","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) view returns (string memory)"}},"id":7735,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1100:23:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":7684,"id":7736,"nodeType":"Return","src":"1093:30:32"}]},"documentation":{"id":7677,"nodeType":"StructuredDocumentation","src":"407:55:32","text":" @dev See {IERC721Metadata-tokenURI}."},"functionSelector":"c87b56dd","id":7738,"implemented":true,"kind":"function","modifiers":[],"name":"tokenURI","nameLocation":"476:8:32","nodeType":"FunctionDefinition","overrides":{"id":7681,"nodeType":"OverrideSpecifier","overrides":[],"src":"522:8:32"},"parameters":{"id":7680,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7679,"mutability":"mutable","name":"tokenId","nameLocation":"493:7:32","nodeType":"VariableDeclaration","scope":7738,"src":"485:15:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7678,"name":"uint256","nodeType":"ElementaryTypeName","src":"485:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"484:17:32"},"returnParameters":{"id":7684,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7683,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7738,"src":"540:13:32","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7682,"name":"string","nodeType":"ElementaryTypeName","src":"540:6:32","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"539:15:32"},"scope":7791,"src":"467:663:32","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":7759,"nodeType":"Block","src":"1358:133:32","statements":[{"expression":{"arguments":[{"arguments":[{"id":7748,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7741,"src":"1384:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7747,"name":"_exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7102,"src":"1376:7:32","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":7749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1376:16:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524337323155524953746f726167653a2055524920736574206f66206e6f6e6578697374656e7420746f6b656e","id":7750,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1394:48:32","typeDescriptions":{"typeIdentifier":"t_stringliteral_7521de1f20ce4d7bb86b61090bad73a87315a1f4baff36cc352901c7777280c4","typeString":"literal_string \"ERC721URIStorage: URI set of nonexistent token\""},"value":"ERC721URIStorage: URI set of nonexistent token"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7521de1f20ce4d7bb86b61090bad73a87315a1f4baff36cc352901c7777280c4","typeString":"literal_string \"ERC721URIStorage: URI set of nonexistent token\""}],"id":7746,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1368:7:32","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7751,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1368:75:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7752,"nodeType":"ExpressionStatement","src":"1368:75:32"},{"expression":{"id":7757,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":7753,"name":"_tokenURIs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7676,"src":"1453:10:32","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_string_storage_$","typeString":"mapping(uint256 => string storage ref)"}},"id":7755,"indexExpression":{"id":7754,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7741,"src":"1464:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1453:19:32","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":7756,"name":"_tokenURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7743,"src":"1475:9:32","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"1453:31:32","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":7758,"nodeType":"ExpressionStatement","src":"1453:31:32"}]},"documentation":{"id":7739,"nodeType":"StructuredDocumentation","src":"1136:136:32","text":" @dev Sets `_tokenURI` as the tokenURI of `tokenId`.\n Requirements:\n - `tokenId` must exist."},"id":7760,"implemented":true,"kind":"function","modifiers":[],"name":"_setTokenURI","nameLocation":"1286:12:32","nodeType":"FunctionDefinition","parameters":{"id":7744,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7741,"mutability":"mutable","name":"tokenId","nameLocation":"1307:7:32","nodeType":"VariableDeclaration","scope":7760,"src":"1299:15:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7740,"name":"uint256","nodeType":"ElementaryTypeName","src":"1299:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7743,"mutability":"mutable","name":"_tokenURI","nameLocation":"1330:9:32","nodeType":"VariableDeclaration","scope":7760,"src":"1316:23:32","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7742,"name":"string","nodeType":"ElementaryTypeName","src":"1316:6:32","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1298:42:32"},"returnParameters":{"id":7745,"nodeType":"ParameterList","parameters":[],"src":"1358:0:32"},"scope":7791,"src":"1277:214:32","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"baseFunctions":[7313],"body":{"id":7789,"nodeType":"Block","src":"1766:142:32","statements":[{"expression":{"arguments":[{"id":7770,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7763,"src":"1788:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7767,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1776:5:32","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_ERC721URIStorage_$7791_$","typeString":"type(contract super ERC721URIStorage)"}},"id":7769,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1782:5:32","memberName":"_burn","nodeType":"MemberAccess","referencedDeclaration":7313,"src":"1776:11:32","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":7771,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1776:20:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7772,"nodeType":"ExpressionStatement","src":"1776:20:32"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7781,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"baseExpression":{"id":7775,"name":"_tokenURIs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7676,"src":"1817:10:32","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_string_storage_$","typeString":"mapping(uint256 => string storage ref)"}},"id":7777,"indexExpression":{"id":7776,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7763,"src":"1828:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1817:19:32","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}],"id":7774,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1811:5:32","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":7773,"name":"bytes","nodeType":"ElementaryTypeName","src":"1811:5:32","typeDescriptions":{}}},"id":7778,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1811:26:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes storage pointer"}},"id":7779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1838:6:32","memberName":"length","nodeType":"MemberAccess","src":"1811:33:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":7780,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1848:1:32","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1811:38:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7788,"nodeType":"IfStatement","src":"1807:95:32","trueBody":{"id":7787,"nodeType":"Block","src":"1851:51:32","statements":[{"expression":{"id":7785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"1865:26:32","subExpression":{"baseExpression":{"id":7782,"name":"_tokenURIs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7676,"src":"1872:10:32","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_string_storage_$","typeString":"mapping(uint256 => string storage ref)"}},"id":7784,"indexExpression":{"id":7783,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7763,"src":"1883:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1872:19:32","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7786,"nodeType":"ExpressionStatement","src":"1865:26:32"}]}}]},"documentation":{"id":7761,"nodeType":"StructuredDocumentation","src":"1497:206:32","text":" @dev Destroys `tokenId`.\n The approval is cleared when the token is burned.\n Requirements:\n - `tokenId` must exist.\n Emits a {Transfer} event."},"id":7790,"implemented":true,"kind":"function","modifiers":[],"name":"_burn","nameLocation":"1717:5:32","nodeType":"FunctionDefinition","overrides":{"id":7765,"nodeType":"OverrideSpecifier","overrides":[],"src":"1757:8:32"},"parameters":{"id":7764,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7763,"mutability":"mutable","name":"tokenId","nameLocation":"1731:7:32","nodeType":"VariableDeclaration","scope":7790,"src":"1723:15:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7762,"name":"uint256","nodeType":"ElementaryTypeName","src":"1723:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1722:17:32"},"returnParameters":{"id":7766,"nodeType":"ParameterList","parameters":[],"src":"1766:0:32"},"scope":7791,"src":"1708:200:32","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":7792,"src":"233:1677:32","usedErrors":[]}],"src":"113:1798:32"},"id":32},"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol","exportedSymbols":{"IERC165":[8448],"IERC721":[7645],"IERC721Metadata":[7818]},"id":7819,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":7793,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"112:23:33"},{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721.sol","file":"../IERC721.sol","id":7794,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7819,"sourceUnit":7646,"src":"137:24:33","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":7796,"name":"IERC721","nameLocations":["326:7:33"],"nodeType":"IdentifierPath","referencedDeclaration":7645,"src":"326:7:33"},"id":7797,"nodeType":"InheritanceSpecifier","src":"326:7:33"}],"canonicalName":"IERC721Metadata","contractDependencies":[],"contractKind":"interface","documentation":{"id":7795,"nodeType":"StructuredDocumentation","src":"163:133:33","text":" @title ERC-721 Non-Fungible Token Standard, optional metadata extension\n @dev See https://eips.ethereum.org/EIPS/eip-721"},"fullyImplemented":false,"id":7818,"linearizedBaseContracts":[7818,7645,8448],"name":"IERC721Metadata","nameLocation":"307:15:33","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":7798,"nodeType":"StructuredDocumentation","src":"340:58:33","text":" @dev Returns the token collection name."},"functionSelector":"06fdde03","id":7803,"implemented":false,"kind":"function","modifiers":[],"name":"name","nameLocation":"412:4:33","nodeType":"FunctionDefinition","parameters":{"id":7799,"nodeType":"ParameterList","parameters":[],"src":"416:2:33"},"returnParameters":{"id":7802,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7801,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7803,"src":"442:13:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7800,"name":"string","nodeType":"ElementaryTypeName","src":"442:6:33","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"441:15:33"},"scope":7818,"src":"403:54:33","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":7804,"nodeType":"StructuredDocumentation","src":"463:60:33","text":" @dev Returns the token collection symbol."},"functionSelector":"95d89b41","id":7809,"implemented":false,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"537:6:33","nodeType":"FunctionDefinition","parameters":{"id":7805,"nodeType":"ParameterList","parameters":[],"src":"543:2:33"},"returnParameters":{"id":7808,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7807,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7809,"src":"569:13:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7806,"name":"string","nodeType":"ElementaryTypeName","src":"569:6:33","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"568:15:33"},"scope":7818,"src":"528:56:33","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":7810,"nodeType":"StructuredDocumentation","src":"590:90:33","text":" @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token."},"functionSelector":"c87b56dd","id":7817,"implemented":false,"kind":"function","modifiers":[],"name":"tokenURI","nameLocation":"694:8:33","nodeType":"FunctionDefinition","parameters":{"id":7813,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7812,"mutability":"mutable","name":"tokenId","nameLocation":"711:7:33","nodeType":"VariableDeclaration","scope":7817,"src":"703:15:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7811,"name":"uint256","nodeType":"ElementaryTypeName","src":"703:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"702:17:33"},"returnParameters":{"id":7816,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7815,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7817,"src":"743:13:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7814,"name":"string","nodeType":"ElementaryTypeName","src":"743:6:33","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"742:15:33"},"scope":7818,"src":"685:73:33","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":7819,"src":"297:463:33","usedErrors":[]}],"src":"112:649:33"},"id":33},"@openzeppelin/contracts/utils/Address.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Address.sol","exportedSymbols":{"Address":[8113]},"id":8114,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":7820,"literals":["solidity","^","0.8",".1"],"nodeType":"PragmaDirective","src":"101:23:34"},{"abstract":false,"baseContracts":[],"canonicalName":"Address","contractDependencies":[],"contractKind":"library","documentation":{"id":7821,"nodeType":"StructuredDocumentation","src":"126:67:34","text":" @dev Collection of functions related to the address type"},"fullyImplemented":true,"id":8113,"linearizedBaseContracts":[8113],"name":"Address","nameLocation":"202:7:34","nodeType":"ContractDefinition","nodes":[{"body":{"id":7835,"nodeType":"Block","src":"1241:254:34","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":7829,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7824,"src":"1465:7:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1473:4:34","memberName":"code","nodeType":"MemberAccess","src":"1465:12:34","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":7831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1478:6:34","memberName":"length","nodeType":"MemberAccess","src":"1465:19:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":7832,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1487:1:34","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1465:23:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":7828,"id":7834,"nodeType":"Return","src":"1458:30:34"}]},"documentation":{"id":7822,"nodeType":"StructuredDocumentation","src":"216:954:34","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 ===="},"id":7836,"implemented":true,"kind":"function","modifiers":[],"name":"isContract","nameLocation":"1184:10:34","nodeType":"FunctionDefinition","parameters":{"id":7825,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7824,"mutability":"mutable","name":"account","nameLocation":"1203:7:34","nodeType":"VariableDeclaration","scope":7836,"src":"1195:15:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7823,"name":"address","nodeType":"ElementaryTypeName","src":"1195:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1194:17:34"},"returnParameters":{"id":7828,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7827,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7836,"src":"1235:4:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7826,"name":"bool","nodeType":"ElementaryTypeName","src":"1235:4:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1234:6:34"},"scope":8113,"src":"1175:320:34","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":7869,"nodeType":"Block","src":"2483:241:34","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":7847,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2509:4:34","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$8113","typeString":"library Address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Address_$8113","typeString":"library Address"}],"id":7846,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2501:7:34","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7845,"name":"address","nodeType":"ElementaryTypeName","src":"2501:7:34","typeDescriptions":{}}},"id":7848,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2501:13:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2515:7:34","memberName":"balance","nodeType":"MemberAccess","src":"2501:21:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":7850,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7841,"src":"2526:6:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2501:31:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20696e73756666696369656e742062616c616e6365","id":7852,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2534:31:34","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":7844,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2493:7:34","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7853,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2493:73:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7854,"nodeType":"ExpressionStatement","src":"2493:73:34"},{"assignments":[7856,null],"declarations":[{"constant":false,"id":7856,"mutability":"mutable","name":"success","nameLocation":"2583:7:34","nodeType":"VariableDeclaration","scope":7869,"src":"2578:12:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7855,"name":"bool","nodeType":"ElementaryTypeName","src":"2578:4:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":7863,"initialValue":{"arguments":[{"hexValue":"","id":7861,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2626:2:34","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":7857,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7839,"src":"2596:9:34","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":7858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2606:4:34","memberName":"call","nodeType":"MemberAccess","src":"2596:14:34","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":7860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":7859,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7841,"src":"2618:6:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"2596:29:34","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":7862,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2596:33:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"2577:52:34"},{"expression":{"arguments":[{"id":7865,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7856,"src":"2647:7:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564","id":7866,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2656:60:34","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":7864,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2639:7:34","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2639:78:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7868,"nodeType":"ExpressionStatement","src":"2639:78:34"}]},"documentation":{"id":7837,"nodeType":"StructuredDocumentation","src":"1501:906:34","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]."},"id":7870,"implemented":true,"kind":"function","modifiers":[],"name":"sendValue","nameLocation":"2421:9:34","nodeType":"FunctionDefinition","parameters":{"id":7842,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7839,"mutability":"mutable","name":"recipient","nameLocation":"2447:9:34","nodeType":"VariableDeclaration","scope":7870,"src":"2431:25:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":7838,"name":"address","nodeType":"ElementaryTypeName","src":"2431:15:34","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":7841,"mutability":"mutable","name":"amount","nameLocation":"2466:6:34","nodeType":"VariableDeclaration","scope":7870,"src":"2458:14:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7840,"name":"uint256","nodeType":"ElementaryTypeName","src":"2458:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2430:43:34"},"returnParameters":{"id":7843,"nodeType":"ParameterList","parameters":[],"src":"2483:0:34"},"scope":8113,"src":"2412:312:34","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":7886,"nodeType":"Block","src":"3555:84:34","statements":[{"expression":{"arguments":[{"id":7881,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7873,"src":"3585:6:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7882,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7875,"src":"3593:4:34","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"416464726573733a206c6f772d6c6576656c2063616c6c206661696c6564","id":7883,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3599:32:34","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":7880,"name":"functionCall","nodeType":"Identifier","overloadedDeclarations":[7887,7907],"referencedDeclaration":7907,"src":"3572:12:34","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":7884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3572:60:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":7879,"id":7885,"nodeType":"Return","src":"3565:67:34"}]},"documentation":{"id":7871,"nodeType":"StructuredDocumentation","src":"2730:731:34","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._"},"id":7887,"implemented":true,"kind":"function","modifiers":[],"name":"functionCall","nameLocation":"3475:12:34","nodeType":"FunctionDefinition","parameters":{"id":7876,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7873,"mutability":"mutable","name":"target","nameLocation":"3496:6:34","nodeType":"VariableDeclaration","scope":7887,"src":"3488:14:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7872,"name":"address","nodeType":"ElementaryTypeName","src":"3488:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7875,"mutability":"mutable","name":"data","nameLocation":"3517:4:34","nodeType":"VariableDeclaration","scope":7887,"src":"3504:17:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7874,"name":"bytes","nodeType":"ElementaryTypeName","src":"3504:5:34","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3487:35:34"},"returnParameters":{"id":7879,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7878,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7887,"src":"3541:12:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7877,"name":"bytes","nodeType":"ElementaryTypeName","src":"3541:5:34","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3540:14:34"},"scope":8113,"src":"3466:173:34","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":7906,"nodeType":"Block","src":"4008:76:34","statements":[{"expression":{"arguments":[{"id":7900,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7890,"src":"4047:6:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7901,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7892,"src":"4055:4:34","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"30","id":7902,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4061:1:34","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":7903,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7894,"src":"4064:12:34","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":7899,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[7927,7977],"referencedDeclaration":7977,"src":"4025:21:34","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":7904,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4025:52:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":7898,"id":7905,"nodeType":"Return","src":"4018:59:34"}]},"documentation":{"id":7888,"nodeType":"StructuredDocumentation","src":"3645:211:34","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._"},"id":7907,"implemented":true,"kind":"function","modifiers":[],"name":"functionCall","nameLocation":"3870:12:34","nodeType":"FunctionDefinition","parameters":{"id":7895,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7890,"mutability":"mutable","name":"target","nameLocation":"3900:6:34","nodeType":"VariableDeclaration","scope":7907,"src":"3892:14:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7889,"name":"address","nodeType":"ElementaryTypeName","src":"3892:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7892,"mutability":"mutable","name":"data","nameLocation":"3929:4:34","nodeType":"VariableDeclaration","scope":7907,"src":"3916:17:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7891,"name":"bytes","nodeType":"ElementaryTypeName","src":"3916:5:34","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":7894,"mutability":"mutable","name":"errorMessage","nameLocation":"3957:12:34","nodeType":"VariableDeclaration","scope":7907,"src":"3943:26:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7893,"name":"string","nodeType":"ElementaryTypeName","src":"3943:6:34","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3882:93:34"},"returnParameters":{"id":7898,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7897,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7907,"src":"3994:12:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7896,"name":"bytes","nodeType":"ElementaryTypeName","src":"3994:5:34","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3993:14:34"},"scope":8113,"src":"3861:223:34","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":7926,"nodeType":"Block","src":"4589:111:34","statements":[{"expression":{"arguments":[{"id":7920,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7910,"src":"4628:6:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7921,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7912,"src":"4636:4:34","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":7922,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7914,"src":"4642:5:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564","id":7923,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4649:43:34","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":7919,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[7927,7977],"referencedDeclaration":7977,"src":"4606:21:34","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":7924,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4606:87:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":7918,"id":7925,"nodeType":"Return","src":"4599:94:34"}]},"documentation":{"id":7908,"nodeType":"StructuredDocumentation","src":"4090:351:34","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._"},"id":7927,"implemented":true,"kind":"function","modifiers":[],"name":"functionCallWithValue","nameLocation":"4455:21:34","nodeType":"FunctionDefinition","parameters":{"id":7915,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7910,"mutability":"mutable","name":"target","nameLocation":"4494:6:34","nodeType":"VariableDeclaration","scope":7927,"src":"4486:14:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7909,"name":"address","nodeType":"ElementaryTypeName","src":"4486:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7912,"mutability":"mutable","name":"data","nameLocation":"4523:4:34","nodeType":"VariableDeclaration","scope":7927,"src":"4510:17:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7911,"name":"bytes","nodeType":"ElementaryTypeName","src":"4510:5:34","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":7914,"mutability":"mutable","name":"value","nameLocation":"4545:5:34","nodeType":"VariableDeclaration","scope":7927,"src":"4537:13:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7913,"name":"uint256","nodeType":"ElementaryTypeName","src":"4537:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4476:80:34"},"returnParameters":{"id":7918,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7917,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7927,"src":"4575:12:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7916,"name":"bytes","nodeType":"ElementaryTypeName","src":"4575:5:34","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4574:14:34"},"scope":8113,"src":"4446:254:34","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":7976,"nodeType":"Block","src":"5127:320:34","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":7944,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"5153:4:34","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$8113","typeString":"library Address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Address_$8113","typeString":"library Address"}],"id":7943,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5145:7:34","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7942,"name":"address","nodeType":"ElementaryTypeName","src":"5145:7:34","typeDescriptions":{}}},"id":7945,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5145:13:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7946,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5159:7:34","memberName":"balance","nodeType":"MemberAccess","src":"5145:21:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":7947,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7934,"src":"5170:5:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5145:30:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c","id":7949,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5177:40:34","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":7941,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5137:7:34","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7950,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5137:81:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7951,"nodeType":"ExpressionStatement","src":"5137:81:34"},{"expression":{"arguments":[{"arguments":[{"id":7954,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7930,"src":"5247:6:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7953,"name":"isContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7836,"src":"5236:10:34","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":7955,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5236:18:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374","id":7956,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5256:31:34","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":7952,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5228:7:34","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7957,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5228:60:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7958,"nodeType":"ExpressionStatement","src":"5228:60:34"},{"assignments":[7960,7962],"declarations":[{"constant":false,"id":7960,"mutability":"mutable","name":"success","nameLocation":"5305:7:34","nodeType":"VariableDeclaration","scope":7976,"src":"5300:12:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7959,"name":"bool","nodeType":"ElementaryTypeName","src":"5300:4:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7962,"mutability":"mutable","name":"returndata","nameLocation":"5327:10:34","nodeType":"VariableDeclaration","scope":7976,"src":"5314:23:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7961,"name":"bytes","nodeType":"ElementaryTypeName","src":"5314:5:34","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":7969,"initialValue":{"arguments":[{"id":7967,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7932,"src":"5367:4:34","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":7963,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7930,"src":"5341:6:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5348:4:34","memberName":"call","nodeType":"MemberAccess","src":"5341:11:34","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":7966,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":7965,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7934,"src":"5360:5:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"5341:25:34","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":7968,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5341:31:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"5299:73:34"},{"expression":{"arguments":[{"id":7971,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7960,"src":"5406:7:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":7972,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7962,"src":"5415:10:34","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":7973,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7936,"src":"5427:12:34","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":7970,"name":"verifyCallResult","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8112,"src":"5389:16:34","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":7974,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5389:51:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":7940,"id":7975,"nodeType":"Return","src":"5382:58:34"}]},"documentation":{"id":7928,"nodeType":"StructuredDocumentation","src":"4706:237:34","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._"},"id":7977,"implemented":true,"kind":"function","modifiers":[],"name":"functionCallWithValue","nameLocation":"4957:21:34","nodeType":"FunctionDefinition","parameters":{"id":7937,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7930,"mutability":"mutable","name":"target","nameLocation":"4996:6:34","nodeType":"VariableDeclaration","scope":7977,"src":"4988:14:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7929,"name":"address","nodeType":"ElementaryTypeName","src":"4988:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7932,"mutability":"mutable","name":"data","nameLocation":"5025:4:34","nodeType":"VariableDeclaration","scope":7977,"src":"5012:17:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7931,"name":"bytes","nodeType":"ElementaryTypeName","src":"5012:5:34","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":7934,"mutability":"mutable","name":"value","nameLocation":"5047:5:34","nodeType":"VariableDeclaration","scope":7977,"src":"5039:13:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7933,"name":"uint256","nodeType":"ElementaryTypeName","src":"5039:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7936,"mutability":"mutable","name":"errorMessage","nameLocation":"5076:12:34","nodeType":"VariableDeclaration","scope":7977,"src":"5062:26:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7935,"name":"string","nodeType":"ElementaryTypeName","src":"5062:6:34","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4978:116:34"},"returnParameters":{"id":7940,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7939,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7977,"src":"5113:12:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7938,"name":"bytes","nodeType":"ElementaryTypeName","src":"5113:5:34","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5112:14:34"},"scope":8113,"src":"4948:499:34","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":7993,"nodeType":"Block","src":"5724:97:34","statements":[{"expression":{"arguments":[{"id":7988,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7980,"src":"5760:6:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7989,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7982,"src":"5768:4:34","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564","id":7990,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5774:39:34","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":7987,"name":"functionStaticCall","nodeType":"Identifier","overloadedDeclarations":[7994,8029],"referencedDeclaration":8029,"src":"5741:18:34","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":7991,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5741:73:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":7986,"id":7992,"nodeType":"Return","src":"5734:80:34"}]},"documentation":{"id":7978,"nodeType":"StructuredDocumentation","src":"5453:166:34","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._"},"id":7994,"implemented":true,"kind":"function","modifiers":[],"name":"functionStaticCall","nameLocation":"5633:18:34","nodeType":"FunctionDefinition","parameters":{"id":7983,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7980,"mutability":"mutable","name":"target","nameLocation":"5660:6:34","nodeType":"VariableDeclaration","scope":7994,"src":"5652:14:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7979,"name":"address","nodeType":"ElementaryTypeName","src":"5652:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7982,"mutability":"mutable","name":"data","nameLocation":"5681:4:34","nodeType":"VariableDeclaration","scope":7994,"src":"5668:17:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7981,"name":"bytes","nodeType":"ElementaryTypeName","src":"5668:5:34","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5651:35:34"},"returnParameters":{"id":7986,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7985,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7994,"src":"5710:12:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7984,"name":"bytes","nodeType":"ElementaryTypeName","src":"5710:5:34","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5709:14:34"},"scope":8113,"src":"5624:197:34","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":8028,"nodeType":"Block","src":"6163:228:34","statements":[{"expression":{"arguments":[{"arguments":[{"id":8008,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7997,"src":"6192:6:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8007,"name":"isContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7836,"src":"6181:10:34","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":8009,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6181:18:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a207374617469632063616c6c20746f206e6f6e2d636f6e7472616374","id":8010,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6201:38:34","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":8006,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6173:7:34","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8011,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6173:67:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8012,"nodeType":"ExpressionStatement","src":"6173:67:34"},{"assignments":[8014,8016],"declarations":[{"constant":false,"id":8014,"mutability":"mutable","name":"success","nameLocation":"6257:7:34","nodeType":"VariableDeclaration","scope":8028,"src":"6252:12:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8013,"name":"bool","nodeType":"ElementaryTypeName","src":"6252:4:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":8016,"mutability":"mutable","name":"returndata","nameLocation":"6279:10:34","nodeType":"VariableDeclaration","scope":8028,"src":"6266:23:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8015,"name":"bytes","nodeType":"ElementaryTypeName","src":"6266:5:34","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":8021,"initialValue":{"arguments":[{"id":8019,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7999,"src":"6311:4:34","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":8017,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7997,"src":"6293:6:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":8018,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6300:10:34","memberName":"staticcall","nodeType":"MemberAccess","src":"6293:17:34","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":8020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6293:23:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"6251:65:34"},{"expression":{"arguments":[{"id":8023,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8014,"src":"6350:7:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":8024,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8016,"src":"6359:10:34","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":8025,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8001,"src":"6371:12:34","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":8022,"name":"verifyCallResult","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8112,"src":"6333:16:34","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":8026,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6333:51:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":8005,"id":8027,"nodeType":"Return","src":"6326:58:34"}]},"documentation":{"id":7995,"nodeType":"StructuredDocumentation","src":"5827:173:34","text":" @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._"},"id":8029,"implemented":true,"kind":"function","modifiers":[],"name":"functionStaticCall","nameLocation":"6014:18:34","nodeType":"FunctionDefinition","parameters":{"id":8002,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7997,"mutability":"mutable","name":"target","nameLocation":"6050:6:34","nodeType":"VariableDeclaration","scope":8029,"src":"6042:14:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7996,"name":"address","nodeType":"ElementaryTypeName","src":"6042:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7999,"mutability":"mutable","name":"data","nameLocation":"6079:4:34","nodeType":"VariableDeclaration","scope":8029,"src":"6066:17:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7998,"name":"bytes","nodeType":"ElementaryTypeName","src":"6066:5:34","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":8001,"mutability":"mutable","name":"errorMessage","nameLocation":"6107:12:34","nodeType":"VariableDeclaration","scope":8029,"src":"6093:26:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8000,"name":"string","nodeType":"ElementaryTypeName","src":"6093:6:34","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6032:93:34"},"returnParameters":{"id":8005,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8004,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8029,"src":"6149:12:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8003,"name":"bytes","nodeType":"ElementaryTypeName","src":"6149:5:34","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6148:14:34"},"scope":8113,"src":"6005:386:34","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":8045,"nodeType":"Block","src":"6667:101:34","statements":[{"expression":{"arguments":[{"id":8040,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8032,"src":"6705:6:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8041,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8034,"src":"6713:4:34","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564","id":8042,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6719:41:34","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":8039,"name":"functionDelegateCall","nodeType":"Identifier","overloadedDeclarations":[8046,8081],"referencedDeclaration":8081,"src":"6684:20:34","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":8043,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6684:77:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":8038,"id":8044,"nodeType":"Return","src":"6677:84:34"}]},"documentation":{"id":8030,"nodeType":"StructuredDocumentation","src":"6397:168:34","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._"},"id":8046,"implemented":true,"kind":"function","modifiers":[],"name":"functionDelegateCall","nameLocation":"6579:20:34","nodeType":"FunctionDefinition","parameters":{"id":8035,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8032,"mutability":"mutable","name":"target","nameLocation":"6608:6:34","nodeType":"VariableDeclaration","scope":8046,"src":"6600:14:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8031,"name":"address","nodeType":"ElementaryTypeName","src":"6600:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8034,"mutability":"mutable","name":"data","nameLocation":"6629:4:34","nodeType":"VariableDeclaration","scope":8046,"src":"6616:17:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8033,"name":"bytes","nodeType":"ElementaryTypeName","src":"6616:5:34","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6599:35:34"},"returnParameters":{"id":8038,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8037,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8046,"src":"6653:12:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8036,"name":"bytes","nodeType":"ElementaryTypeName","src":"6653:5:34","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6652:14:34"},"scope":8113,"src":"6570:198:34","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":8080,"nodeType":"Block","src":"7109:232:34","statements":[{"expression":{"arguments":[{"arguments":[{"id":8060,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8049,"src":"7138:6:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8059,"name":"isContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7836,"src":"7127:10:34","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":8061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7127:18:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6e7472616374","id":8062,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7147:40:34","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":8058,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7119:7:34","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8063,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7119:69:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8064,"nodeType":"ExpressionStatement","src":"7119:69:34"},{"assignments":[8066,8068],"declarations":[{"constant":false,"id":8066,"mutability":"mutable","name":"success","nameLocation":"7205:7:34","nodeType":"VariableDeclaration","scope":8080,"src":"7200:12:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8065,"name":"bool","nodeType":"ElementaryTypeName","src":"7200:4:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":8068,"mutability":"mutable","name":"returndata","nameLocation":"7227:10:34","nodeType":"VariableDeclaration","scope":8080,"src":"7214:23:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8067,"name":"bytes","nodeType":"ElementaryTypeName","src":"7214:5:34","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":8073,"initialValue":{"arguments":[{"id":8071,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8051,"src":"7261:4:34","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":8069,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8049,"src":"7241:6:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":8070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7248:12:34","memberName":"delegatecall","nodeType":"MemberAccess","src":"7241:19:34","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":8072,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7241:25:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"7199:67:34"},{"expression":{"arguments":[{"id":8075,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8066,"src":"7300:7:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":8076,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8068,"src":"7309:10:34","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":8077,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8053,"src":"7321:12:34","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":8074,"name":"verifyCallResult","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8112,"src":"7283:16:34","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":8078,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7283:51:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":8057,"id":8079,"nodeType":"Return","src":"7276:58:34"}]},"documentation":{"id":8047,"nodeType":"StructuredDocumentation","src":"6774:175:34","text":" @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._"},"id":8081,"implemented":true,"kind":"function","modifiers":[],"name":"functionDelegateCall","nameLocation":"6963:20:34","nodeType":"FunctionDefinition","parameters":{"id":8054,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8049,"mutability":"mutable","name":"target","nameLocation":"7001:6:34","nodeType":"VariableDeclaration","scope":8081,"src":"6993:14:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8048,"name":"address","nodeType":"ElementaryTypeName","src":"6993:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8051,"mutability":"mutable","name":"data","nameLocation":"7030:4:34","nodeType":"VariableDeclaration","scope":8081,"src":"7017:17:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8050,"name":"bytes","nodeType":"ElementaryTypeName","src":"7017:5:34","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":8053,"mutability":"mutable","name":"errorMessage","nameLocation":"7058:12:34","nodeType":"VariableDeclaration","scope":8081,"src":"7044:26:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8052,"name":"string","nodeType":"ElementaryTypeName","src":"7044:6:34","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6983:93:34"},"returnParameters":{"id":8057,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8056,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8081,"src":"7095:12:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8055,"name":"bytes","nodeType":"ElementaryTypeName","src":"7095:5:34","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7094:14:34"},"scope":8113,"src":"6954:387:34","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":8111,"nodeType":"Block","src":"7721:532:34","statements":[{"condition":{"id":8093,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8084,"src":"7735:7:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":8109,"nodeType":"Block","src":"7792:455:34","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8100,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":8097,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8086,"src":"7876:10:34","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":8098,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7887:6:34","memberName":"length","nodeType":"MemberAccess","src":"7876:17:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":8099,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7896:1:34","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7876:21:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":8107,"nodeType":"Block","src":"8184:53:34","statements":[{"expression":{"arguments":[{"id":8104,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8088,"src":"8209:12:34","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":8103,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"8202:6:34","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":8105,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8202:20:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8106,"nodeType":"ExpressionStatement","src":"8202:20:34"}]},"id":8108,"nodeType":"IfStatement","src":"7872:365:34","trueBody":{"id":8102,"nodeType":"Block","src":"7899:279:34","statements":[{"AST":{"nodeType":"YulBlock","src":"8019:145:34","statements":[{"nodeType":"YulVariableDeclaration","src":"8041:40:34","value":{"arguments":[{"name":"returndata","nodeType":"YulIdentifier","src":"8070:10:34"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8064:5:34"},"nodeType":"YulFunctionCall","src":"8064:17:34"},"variables":[{"name":"returndata_size","nodeType":"YulTypedName","src":"8045:15:34","type":""}]},{"expression":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8113:2:34","type":"","value":"32"},{"name":"returndata","nodeType":"YulIdentifier","src":"8117:10:34"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8109:3:34"},"nodeType":"YulFunctionCall","src":"8109:19:34"},{"name":"returndata_size","nodeType":"YulIdentifier","src":"8130:15:34"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8102:6:34"},"nodeType":"YulFunctionCall","src":"8102:44:34"},"nodeType":"YulExpressionStatement","src":"8102:44:34"}]},"evmVersion":"paris","externalReferences":[{"declaration":8086,"isOffset":false,"isSlot":false,"src":"8070:10:34","valueSize":1},{"declaration":8086,"isOffset":false,"isSlot":false,"src":"8117:10:34","valueSize":1}],"id":8101,"nodeType":"InlineAssembly","src":"8010:154:34"}]}}]},"id":8110,"nodeType":"IfStatement","src":"7731:516:34","trueBody":{"id":8096,"nodeType":"Block","src":"7744:42:34","statements":[{"expression":{"id":8094,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8086,"src":"7765:10:34","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":8092,"id":8095,"nodeType":"Return","src":"7758:17:34"}]}}]},"documentation":{"id":8082,"nodeType":"StructuredDocumentation","src":"7347:209:34","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._"},"id":8112,"implemented":true,"kind":"function","modifiers":[],"name":"verifyCallResult","nameLocation":"7570:16:34","nodeType":"FunctionDefinition","parameters":{"id":8089,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8084,"mutability":"mutable","name":"success","nameLocation":"7601:7:34","nodeType":"VariableDeclaration","scope":8112,"src":"7596:12:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8083,"name":"bool","nodeType":"ElementaryTypeName","src":"7596:4:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":8086,"mutability":"mutable","name":"returndata","nameLocation":"7631:10:34","nodeType":"VariableDeclaration","scope":8112,"src":"7618:23:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8085,"name":"bytes","nodeType":"ElementaryTypeName","src":"7618:5:34","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":8088,"mutability":"mutable","name":"errorMessage","nameLocation":"7665:12:34","nodeType":"VariableDeclaration","scope":8112,"src":"7651:26:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8087,"name":"string","nodeType":"ElementaryTypeName","src":"7651:6:34","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7586:97:34"},"returnParameters":{"id":8092,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8091,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8112,"src":"7707:12:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8090,"name":"bytes","nodeType":"ElementaryTypeName","src":"7707:5:34","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7706:14:34"},"scope":8113,"src":"7561:692:34","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":8114,"src":"194:8061:34","usedErrors":[]}],"src":"101:8155:34"},"id":34},"@openzeppelin/contracts/utils/Context.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","exportedSymbols":{"Context":[8135]},"id":8136,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":8115,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"86:23:35"},{"abstract":true,"baseContracts":[],"canonicalName":"Context","contractDependencies":[],"contractKind":"contract","documentation":{"id":8116,"nodeType":"StructuredDocumentation","src":"111:496:35","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,"id":8135,"linearizedBaseContracts":[8135],"name":"Context","nameLocation":"626:7:35","nodeType":"ContractDefinition","nodes":[{"body":{"id":8124,"nodeType":"Block","src":"702:34:35","statements":[{"expression":{"expression":{"id":8121,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"719:3:35","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"723:6:35","memberName":"sender","nodeType":"MemberAccess","src":"719:10:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":8120,"id":8123,"nodeType":"Return","src":"712:17:35"}]},"id":8125,"implemented":true,"kind":"function","modifiers":[],"name":"_msgSender","nameLocation":"649:10:35","nodeType":"FunctionDefinition","parameters":{"id":8117,"nodeType":"ParameterList","parameters":[],"src":"659:2:35"},"returnParameters":{"id":8120,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8119,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8125,"src":"693:7:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8118,"name":"address","nodeType":"ElementaryTypeName","src":"693:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"692:9:35"},"scope":8135,"src":"640:96:35","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":8133,"nodeType":"Block","src":"809:32:35","statements":[{"expression":{"expression":{"id":8130,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"826:3:35","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"830:4:35","memberName":"data","nodeType":"MemberAccess","src":"826:8:35","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"functionReturnParameters":8129,"id":8132,"nodeType":"Return","src":"819:15:35"}]},"id":8134,"implemented":true,"kind":"function","modifiers":[],"name":"_msgData","nameLocation":"751:8:35","nodeType":"FunctionDefinition","parameters":{"id":8126,"nodeType":"ParameterList","parameters":[],"src":"759:2:35"},"returnParameters":{"id":8129,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8128,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8134,"src":"793:14:35","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":8127,"name":"bytes","nodeType":"ElementaryTypeName","src":"793:5:35","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"792:16:35"},"scope":8135,"src":"742:99:35","stateMutability":"view","virtual":true,"visibility":"internal"}],"scope":8136,"src":"608:235:35","usedErrors":[]}],"src":"86:758:35"},"id":35},"@openzeppelin/contracts/utils/Counters.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Counters.sol","exportedSymbols":{"Counters":[8209]},"id":8210,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":8137,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"87:23:36"},{"abstract":false,"baseContracts":[],"canonicalName":"Counters","contractDependencies":[],"contractKind":"library","documentation":{"id":8138,"nodeType":"StructuredDocumentation","src":"112:311:36","text":" @title Counters\n @author Matt Condon (@shrugs)\n @dev Provides counters that can only be incremented, decremented or reset. This can be used e.g. to track the number\n of elements in a mapping, issuing ERC721 ids, or counting request ids.\n Include with `using Counters for Counters.Counter;`"},"fullyImplemented":true,"id":8209,"linearizedBaseContracts":[8209],"name":"Counters","nameLocation":"432:8:36","nodeType":"ContractDefinition","nodes":[{"canonicalName":"Counters.Counter","id":8141,"members":[{"constant":false,"id":8140,"mutability":"mutable","name":"_value","nameLocation":"794:6:36","nodeType":"VariableDeclaration","scope":8141,"src":"786:14:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8139,"name":"uint256","nodeType":"ElementaryTypeName","src":"786:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Counter","nameLocation":"454:7:36","nodeType":"StructDefinition","scope":8209,"src":"447:374:36","visibility":"public"},{"body":{"id":8152,"nodeType":"Block","src":"901:38:36","statements":[{"expression":{"expression":{"id":8149,"name":"counter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8144,"src":"918:7:36","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$8141_storage_ptr","typeString":"struct Counters.Counter storage pointer"}},"id":8150,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"926:6:36","memberName":"_value","nodeType":"MemberAccess","referencedDeclaration":8140,"src":"918:14:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8148,"id":8151,"nodeType":"Return","src":"911:21:36"}]},"id":8153,"implemented":true,"kind":"function","modifiers":[],"name":"current","nameLocation":"836:7:36","nodeType":"FunctionDefinition","parameters":{"id":8145,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8144,"mutability":"mutable","name":"counter","nameLocation":"860:7:36","nodeType":"VariableDeclaration","scope":8153,"src":"844:23:36","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$8141_storage_ptr","typeString":"struct Counters.Counter"},"typeName":{"id":8143,"nodeType":"UserDefinedTypeName","pathNode":{"id":8142,"name":"Counter","nameLocations":["844:7:36"],"nodeType":"IdentifierPath","referencedDeclaration":8141,"src":"844:7:36"},"referencedDeclaration":8141,"src":"844:7:36","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$8141_storage_ptr","typeString":"struct Counters.Counter"}},"visibility":"internal"}],"src":"843:25:36"},"returnParameters":{"id":8148,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8147,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8153,"src":"892:7:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8146,"name":"uint256","nodeType":"ElementaryTypeName","src":"892:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"891:9:36"},"scope":8209,"src":"827:112:36","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":8166,"nodeType":"Block","src":"998:70:36","statements":[{"id":8165,"nodeType":"UncheckedBlock","src":"1008:54:36","statements":[{"expression":{"id":8163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":8159,"name":"counter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8156,"src":"1032:7:36","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$8141_storage_ptr","typeString":"struct Counters.Counter storage pointer"}},"id":8161,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1040:6:36","memberName":"_value","nodeType":"MemberAccess","referencedDeclaration":8140,"src":"1032:14:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":8162,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1050:1:36","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1032:19:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8164,"nodeType":"ExpressionStatement","src":"1032:19:36"}]}]},"id":8167,"implemented":true,"kind":"function","modifiers":[],"name":"increment","nameLocation":"954:9:36","nodeType":"FunctionDefinition","parameters":{"id":8157,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8156,"mutability":"mutable","name":"counter","nameLocation":"980:7:36","nodeType":"VariableDeclaration","scope":8167,"src":"964:23:36","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$8141_storage_ptr","typeString":"struct Counters.Counter"},"typeName":{"id":8155,"nodeType":"UserDefinedTypeName","pathNode":{"id":8154,"name":"Counter","nameLocations":["964:7:36"],"nodeType":"IdentifierPath","referencedDeclaration":8141,"src":"964:7:36"},"referencedDeclaration":8141,"src":"964:7:36","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$8141_storage_ptr","typeString":"struct Counters.Counter"}},"visibility":"internal"}],"src":"963:25:36"},"returnParameters":{"id":8158,"nodeType":"ParameterList","parameters":[],"src":"998:0:36"},"scope":8209,"src":"945:123:36","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":8194,"nodeType":"Block","src":"1127:176:36","statements":[{"assignments":[8174],"declarations":[{"constant":false,"id":8174,"mutability":"mutable","name":"value","nameLocation":"1145:5:36","nodeType":"VariableDeclaration","scope":8194,"src":"1137:13:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8173,"name":"uint256","nodeType":"ElementaryTypeName","src":"1137:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8177,"initialValue":{"expression":{"id":8175,"name":"counter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8170,"src":"1153:7:36","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$8141_storage_ptr","typeString":"struct Counters.Counter storage pointer"}},"id":8176,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1161:6:36","memberName":"_value","nodeType":"MemberAccess","referencedDeclaration":8140,"src":"1153:14:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1137:30:36"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8179,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8174,"src":"1185:5:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":8180,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1193:1:36","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1185:9:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"436f756e7465723a2064656372656d656e74206f766572666c6f77","id":8182,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1196:29:36","typeDescriptions":{"typeIdentifier":"t_stringliteral_1dfd0d5389474d871b8e8929aab9d4def041f55f90f625754fb5f9a9ba08af6f","typeString":"literal_string \"Counter: decrement overflow\""},"value":"Counter: decrement overflow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1dfd0d5389474d871b8e8929aab9d4def041f55f90f625754fb5f9a9ba08af6f","typeString":"literal_string \"Counter: decrement overflow\""}],"id":8178,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1177:7:36","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8183,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1177:49:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8184,"nodeType":"ExpressionStatement","src":"1177:49:36"},{"id":8193,"nodeType":"UncheckedBlock","src":"1236:61:36","statements":[{"expression":{"id":8191,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":8185,"name":"counter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8170,"src":"1260:7:36","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$8141_storage_ptr","typeString":"struct Counters.Counter storage pointer"}},"id":8187,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1268:6:36","memberName":"_value","nodeType":"MemberAccess","referencedDeclaration":8140,"src":"1260:14:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8190,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8188,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8174,"src":"1277:5:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":8189,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1285:1:36","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1277:9:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1260:26:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8192,"nodeType":"ExpressionStatement","src":"1260:26:36"}]}]},"id":8195,"implemented":true,"kind":"function","modifiers":[],"name":"decrement","nameLocation":"1083:9:36","nodeType":"FunctionDefinition","parameters":{"id":8171,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8170,"mutability":"mutable","name":"counter","nameLocation":"1109:7:36","nodeType":"VariableDeclaration","scope":8195,"src":"1093:23:36","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$8141_storage_ptr","typeString":"struct Counters.Counter"},"typeName":{"id":8169,"nodeType":"UserDefinedTypeName","pathNode":{"id":8168,"name":"Counter","nameLocations":["1093:7:36"],"nodeType":"IdentifierPath","referencedDeclaration":8141,"src":"1093:7:36"},"referencedDeclaration":8141,"src":"1093:7:36","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$8141_storage_ptr","typeString":"struct Counters.Counter"}},"visibility":"internal"}],"src":"1092:25:36"},"returnParameters":{"id":8172,"nodeType":"ParameterList","parameters":[],"src":"1127:0:36"},"scope":8209,"src":"1074:229:36","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":8207,"nodeType":"Block","src":"1358:35:36","statements":[{"expression":{"id":8205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":8201,"name":"counter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8198,"src":"1368:7:36","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$8141_storage_ptr","typeString":"struct Counters.Counter storage pointer"}},"id":8203,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1376:6:36","memberName":"_value","nodeType":"MemberAccess","referencedDeclaration":8140,"src":"1368:14:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":8204,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1385:1:36","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1368:18:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8206,"nodeType":"ExpressionStatement","src":"1368:18:36"}]},"id":8208,"implemented":true,"kind":"function","modifiers":[],"name":"reset","nameLocation":"1318:5:36","nodeType":"FunctionDefinition","parameters":{"id":8199,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8198,"mutability":"mutable","name":"counter","nameLocation":"1340:7:36","nodeType":"VariableDeclaration","scope":8208,"src":"1324:23:36","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$8141_storage_ptr","typeString":"struct Counters.Counter"},"typeName":{"id":8197,"nodeType":"UserDefinedTypeName","pathNode":{"id":8196,"name":"Counter","nameLocations":["1324:7:36"],"nodeType":"IdentifierPath","referencedDeclaration":8141,"src":"1324:7:36"},"referencedDeclaration":8141,"src":"1324:7:36","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$8141_storage_ptr","typeString":"struct Counters.Counter"}},"visibility":"internal"}],"src":"1323:25:36"},"returnParameters":{"id":8200,"nodeType":"ParameterList","parameters":[],"src":"1358:0:36"},"scope":8209,"src":"1309:84:36","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":8210,"src":"424:971:36","usedErrors":[]}],"src":"87:1309:36"},"id":36},"@openzeppelin/contracts/utils/Strings.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Strings.sol","exportedSymbols":{"Strings":[8412]},"id":8413,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":8211,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"86:23:37"},{"abstract":false,"baseContracts":[],"canonicalName":"Strings","contractDependencies":[],"contractKind":"library","documentation":{"id":8212,"nodeType":"StructuredDocumentation","src":"111:34:37","text":" @dev String operations."},"fullyImplemented":true,"id":8412,"linearizedBaseContracts":[8412],"name":"Strings","nameLocation":"154:7:37","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":8215,"mutability":"constant","name":"_HEX_SYMBOLS","nameLocation":"193:12:37","nodeType":"VariableDeclaration","scope":8412,"src":"168:58:37","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":8213,"name":"bytes16","nodeType":"ElementaryTypeName","src":"168:7:37","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"value":{"hexValue":"30313233343536373839616263646566","id":8214,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"208:18:37","typeDescriptions":{"typeIdentifier":"t_stringliteral_cb29997ed99ead0db59ce4d12b7d3723198c827273e5796737c926d78019c39f","typeString":"literal_string \"0123456789abcdef\""},"value":"0123456789abcdef"},"visibility":"private"},{"body":{"id":8293,"nodeType":"Block","src":"399:632:37","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8223,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8218,"src":"601:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":8224,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"610:1:37","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"601:10:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8229,"nodeType":"IfStatement","src":"597:51:37","trueBody":{"id":8228,"nodeType":"Block","src":"613:35:37","statements":[{"expression":{"hexValue":"30","id":8226,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"634:3:37","typeDescriptions":{"typeIdentifier":"t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d","typeString":"literal_string \"0\""},"value":"0"},"functionReturnParameters":8222,"id":8227,"nodeType":"Return","src":"627:10:37"}]}},{"assignments":[8231],"declarations":[{"constant":false,"id":8231,"mutability":"mutable","name":"temp","nameLocation":"665:4:37","nodeType":"VariableDeclaration","scope":8293,"src":"657:12:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8230,"name":"uint256","nodeType":"ElementaryTypeName","src":"657:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8233,"initialValue":{"id":8232,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8218,"src":"672:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"657:20:37"},{"assignments":[8235],"declarations":[{"constant":false,"id":8235,"mutability":"mutable","name":"digits","nameLocation":"695:6:37","nodeType":"VariableDeclaration","scope":8293,"src":"687:14:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8234,"name":"uint256","nodeType":"ElementaryTypeName","src":"687:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8236,"nodeType":"VariableDeclarationStatement","src":"687:14:37"},{"body":{"id":8247,"nodeType":"Block","src":"729:57:37","statements":[{"expression":{"id":8241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"743:8:37","subExpression":{"id":8240,"name":"digits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8235,"src":"743:6:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8242,"nodeType":"ExpressionStatement","src":"743:8:37"},{"expression":{"id":8245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8243,"name":"temp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8231,"src":"765:4:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"hexValue":"3130","id":8244,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"773:2:37","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"765:10:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8246,"nodeType":"ExpressionStatement","src":"765:10:37"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8237,"name":"temp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8231,"src":"718:4:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":8238,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"726:1:37","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"718:9:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8248,"nodeType":"WhileStatement","src":"711:75:37"},{"assignments":[8250],"declarations":[{"constant":false,"id":8250,"mutability":"mutable","name":"buffer","nameLocation":"808:6:37","nodeType":"VariableDeclaration","scope":8293,"src":"795:19:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8249,"name":"bytes","nodeType":"ElementaryTypeName","src":"795:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":8255,"initialValue":{"arguments":[{"id":8253,"name":"digits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8235,"src":"827:6:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8252,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"817:9:37","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":8251,"name":"bytes","nodeType":"ElementaryTypeName","src":"821:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":8254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"817:17:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"795:39:37"},{"body":{"id":8286,"nodeType":"Block","src":"863:131:37","statements":[{"expression":{"id":8261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8259,"name":"digits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8235,"src":"877:6:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"31","id":8260,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"887:1:37","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"877:11:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8262,"nodeType":"ExpressionStatement","src":"877:11:37"},{"expression":{"id":8280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":8263,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8250,"src":"902:6:37","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":8265,"indexExpression":{"id":8264,"name":"digits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8235,"src":"909:6:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"902:14:37","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3438","id":8270,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"932:2:37","typeDescriptions":{"typeIdentifier":"t_rational_48_by_1","typeString":"int_const 48"},"value":"48"},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8273,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8218,"src":"945:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"hexValue":"3130","id":8274,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"953:2:37","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"945:10:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8272,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"937:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":8271,"name":"uint256","nodeType":"ElementaryTypeName","src":"937:7:37","typeDescriptions":{}}},"id":8276,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"937:19:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"932:24:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8269,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"926:5:37","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":8268,"name":"uint8","nodeType":"ElementaryTypeName","src":"926:5:37","typeDescriptions":{}}},"id":8278,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"926:31:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":8267,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"919:6:37","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes1_$","typeString":"type(bytes1)"},"typeName":{"id":8266,"name":"bytes1","nodeType":"ElementaryTypeName","src":"919:6:37","typeDescriptions":{}}},"id":8279,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"919:39:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"902:56:37","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":8281,"nodeType":"ExpressionStatement","src":"902:56:37"},{"expression":{"id":8284,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8282,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8218,"src":"972:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"hexValue":"3130","id":8283,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"981:2:37","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"972:11:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8285,"nodeType":"ExpressionStatement","src":"972:11:37"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8256,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8218,"src":"851:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":8257,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"860:1:37","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"851:10:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8287,"nodeType":"WhileStatement","src":"844:150:37"},{"expression":{"arguments":[{"id":8290,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8250,"src":"1017:6:37","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8289,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1010:6:37","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":8288,"name":"string","nodeType":"ElementaryTypeName","src":"1010:6:37","typeDescriptions":{}}},"id":8291,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1010:14:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":8222,"id":8292,"nodeType":"Return","src":"1003:21:37"}]},"documentation":{"id":8216,"nodeType":"StructuredDocumentation","src":"233:90:37","text":" @dev Converts a `uint256` to its ASCII `string` decimal representation."},"id":8294,"implemented":true,"kind":"function","modifiers":[],"name":"toString","nameLocation":"337:8:37","nodeType":"FunctionDefinition","parameters":{"id":8219,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8218,"mutability":"mutable","name":"value","nameLocation":"354:5:37","nodeType":"VariableDeclaration","scope":8294,"src":"346:13:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8217,"name":"uint256","nodeType":"ElementaryTypeName","src":"346:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"345:15:37"},"returnParameters":{"id":8222,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8221,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8294,"src":"384:13:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8220,"name":"string","nodeType":"ElementaryTypeName","src":"384:6:37","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"383:15:37"},"scope":8412,"src":"328:703:37","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8334,"nodeType":"Block","src":"1210:255:37","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8304,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8302,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8297,"src":"1224:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":8303,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1233:1:37","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1224:10:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8308,"nodeType":"IfStatement","src":"1220:54:37","trueBody":{"id":8307,"nodeType":"Block","src":"1236:38:37","statements":[{"expression":{"hexValue":"30783030","id":8305,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1257:6:37","typeDescriptions":{"typeIdentifier":"t_stringliteral_27489e20a0060b723a1748bdff5e44570ee9fae64141728105692eac6031e8a4","typeString":"literal_string \"0x00\""},"value":"0x00"},"functionReturnParameters":8301,"id":8306,"nodeType":"Return","src":"1250:13:37"}]}},{"assignments":[8310],"declarations":[{"constant":false,"id":8310,"mutability":"mutable","name":"temp","nameLocation":"1291:4:37","nodeType":"VariableDeclaration","scope":8334,"src":"1283:12:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8309,"name":"uint256","nodeType":"ElementaryTypeName","src":"1283:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8312,"initialValue":{"id":8311,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8297,"src":"1298:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1283:20:37"},{"assignments":[8314],"declarations":[{"constant":false,"id":8314,"mutability":"mutable","name":"length","nameLocation":"1321:6:37","nodeType":"VariableDeclaration","scope":8334,"src":"1313:14:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8313,"name":"uint256","nodeType":"ElementaryTypeName","src":"1313:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8316,"initialValue":{"hexValue":"30","id":8315,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1330:1:37","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"1313:18:37"},{"body":{"id":8327,"nodeType":"Block","src":"1359:57:37","statements":[{"expression":{"id":8321,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"1373:8:37","subExpression":{"id":8320,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8314,"src":"1373:6:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8322,"nodeType":"ExpressionStatement","src":"1373:8:37"},{"expression":{"id":8325,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8323,"name":"temp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8310,"src":"1395:4:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"38","id":8324,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1404:1:37","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"1395:10:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8326,"nodeType":"ExpressionStatement","src":"1395:10:37"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8319,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8317,"name":"temp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8310,"src":"1348:4:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":8318,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1356:1:37","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1348:9:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8328,"nodeType":"WhileStatement","src":"1341:75:37"},{"expression":{"arguments":[{"id":8330,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8297,"src":"1444:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8331,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8314,"src":"1451:6:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8329,"name":"toHexString","nodeType":"Identifier","overloadedDeclarations":[8335,8411],"referencedDeclaration":8411,"src":"1432:11:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":8332,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1432:26:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":8301,"id":8333,"nodeType":"Return","src":"1425:33:37"}]},"documentation":{"id":8295,"nodeType":"StructuredDocumentation","src":"1037:94:37","text":" @dev Converts a `uint256` to its ASCII `string` hexadecimal representation."},"id":8335,"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"1145:11:37","nodeType":"FunctionDefinition","parameters":{"id":8298,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8297,"mutability":"mutable","name":"value","nameLocation":"1165:5:37","nodeType":"VariableDeclaration","scope":8335,"src":"1157:13:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8296,"name":"uint256","nodeType":"ElementaryTypeName","src":"1157:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1156:15:37"},"returnParameters":{"id":8301,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8300,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8335,"src":"1195:13:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8299,"name":"string","nodeType":"ElementaryTypeName","src":"1195:6:37","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1194:15:37"},"scope":8412,"src":"1136:329:37","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8410,"nodeType":"Block","src":"1678:351:37","statements":[{"assignments":[8346],"declarations":[{"constant":false,"id":8346,"mutability":"mutable","name":"buffer","nameLocation":"1701:6:37","nodeType":"VariableDeclaration","scope":8410,"src":"1688:19:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8345,"name":"bytes","nodeType":"ElementaryTypeName","src":"1688:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":8355,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":8349,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1720:1:37","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":8350,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8340,"src":"1724:6:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1720:10:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"32","id":8352,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1733:1:37","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"1720:14:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8348,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1710:9:37","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":8347,"name":"bytes","nodeType":"ElementaryTypeName","src":"1714:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":8354,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1710:25:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"1688:47:37"},{"expression":{"id":8360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":8356,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8346,"src":"1745:6:37","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":8358,"indexExpression":{"hexValue":"30","id":8357,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1752:1:37","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1745:9:37","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":8359,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1757:3:37","typeDescriptions":{"typeIdentifier":"t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d","typeString":"literal_string \"0\""},"value":"0"},"src":"1745:15:37","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":8361,"nodeType":"ExpressionStatement","src":"1745:15:37"},{"expression":{"id":8366,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":8362,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8346,"src":"1770:6:37","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":8364,"indexExpression":{"hexValue":"31","id":8363,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1777:1:37","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1770:9:37","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"78","id":8365,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1782:3:37","typeDescriptions":{"typeIdentifier":"t_stringliteral_7521d1cadbcfa91eec65aa16715b94ffc1c9654ba57ea2ef1a2127bca1127a83","typeString":"literal_string \"x\""},"value":"x"},"src":"1770:15:37","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":8367,"nodeType":"ExpressionStatement","src":"1770:15:37"},{"body":{"id":8396,"nodeType":"Block","src":"1840:87:37","statements":[{"expression":{"id":8390,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":8382,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8346,"src":"1854:6:37","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":8384,"indexExpression":{"id":8383,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8369,"src":"1861:1:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1854:9:37","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":8385,"name":"_HEX_SYMBOLS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8215,"src":"1866:12:37","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"id":8389,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8386,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8338,"src":"1879:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"307866","id":8387,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1887:3:37","typeDescriptions":{"typeIdentifier":"t_rational_15_by_1","typeString":"int_const 15"},"value":"0xf"},"src":"1879:11:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1866:25:37","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"1854:37:37","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":8391,"nodeType":"ExpressionStatement","src":"1854:37:37"},{"expression":{"id":8394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8392,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8338,"src":"1905:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"34","id":8393,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1915:1:37","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"1905:11:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8395,"nodeType":"ExpressionStatement","src":"1905:11:37"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8376,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8369,"src":"1828:1:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":8377,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1832:1:37","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1828:5:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8397,"initializationExpression":{"assignments":[8369],"declarations":[{"constant":false,"id":8369,"mutability":"mutable","name":"i","nameLocation":"1808:1:37","nodeType":"VariableDeclaration","scope":8397,"src":"1800:9:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8368,"name":"uint256","nodeType":"ElementaryTypeName","src":"1800:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8375,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8374,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":8370,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1812:1:37","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":8371,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8340,"src":"1816:6:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1812:10:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":8373,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1825:1:37","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1812:14:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1800:26:37"},"loopExpression":{"expression":{"id":8380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":true,"src":"1835:3:37","subExpression":{"id":8379,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8369,"src":"1837:1:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8381,"nodeType":"ExpressionStatement","src":"1835:3:37"},"nodeType":"ForStatement","src":"1795:132:37"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8399,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8338,"src":"1944:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":8400,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1953:1:37","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1944:10:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"537472696e67733a20686578206c656e67746820696e73756666696369656e74","id":8402,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1956:34:37","typeDescriptions":{"typeIdentifier":"t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2","typeString":"literal_string \"Strings: hex length insufficient\""},"value":"Strings: hex length insufficient"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2","typeString":"literal_string \"Strings: hex length insufficient\""}],"id":8398,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1936:7:37","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1936:55:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8404,"nodeType":"ExpressionStatement","src":"1936:55:37"},{"expression":{"arguments":[{"id":8407,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8346,"src":"2015:6:37","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8406,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2008:6:37","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":8405,"name":"string","nodeType":"ElementaryTypeName","src":"2008:6:37","typeDescriptions":{}}},"id":8408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2008:14:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":8344,"id":8409,"nodeType":"Return","src":"2001:21:37"}]},"documentation":{"id":8336,"nodeType":"StructuredDocumentation","src":"1471:112:37","text":" @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length."},"id":8411,"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"1597:11:37","nodeType":"FunctionDefinition","parameters":{"id":8341,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8338,"mutability":"mutable","name":"value","nameLocation":"1617:5:37","nodeType":"VariableDeclaration","scope":8411,"src":"1609:13:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8337,"name":"uint256","nodeType":"ElementaryTypeName","src":"1609:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8340,"mutability":"mutable","name":"length","nameLocation":"1632:6:37","nodeType":"VariableDeclaration","scope":8411,"src":"1624:14:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8339,"name":"uint256","nodeType":"ElementaryTypeName","src":"1624:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1608:31:37"},"returnParameters":{"id":8344,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8343,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8411,"src":"1663:13:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8342,"name":"string","nodeType":"ElementaryTypeName","src":"1663:6:37","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1662:15:37"},"scope":8412,"src":"1588:441:37","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":8413,"src":"146:1885:37","usedErrors":[]}],"src":"86:1946:37"},"id":37},"@openzeppelin/contracts/utils/introspection/ERC165.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/introspection/ERC165.sol","exportedSymbols":{"ERC165":[8436],"IERC165":[8448]},"id":8437,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":8414,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"99:23:38"},{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","file":"./IERC165.sol","id":8415,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8437,"sourceUnit":8449,"src":"124:23:38","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":8417,"name":"IERC165","nameLocations":["754:7:38"],"nodeType":"IdentifierPath","referencedDeclaration":8448,"src":"754:7:38"},"id":8418,"nodeType":"InheritanceSpecifier","src":"754:7:38"}],"canonicalName":"ERC165","contractDependencies":[],"contractKind":"contract","documentation":{"id":8416,"nodeType":"StructuredDocumentation","src":"149:576:38","text":" @dev Implementation of the {IERC165} interface.\n Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check\n for the additional interface id that will be supported. For example:\n ```solidity\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\n }\n ```\n Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation."},"fullyImplemented":true,"id":8436,"linearizedBaseContracts":[8436,8448],"name":"ERC165","nameLocation":"744:6:38","nodeType":"ContractDefinition","nodes":[{"baseFunctions":[8447],"body":{"id":8434,"nodeType":"Block","src":"920:64:38","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":8432,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8427,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8421,"src":"937:11:38","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":8429,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8448,"src":"957:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC165_$8448_$","typeString":"type(contract IERC165)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC165_$8448_$","typeString":"type(contract IERC165)"}],"id":8428,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"952:4:38","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":8430,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"952:13:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC165_$8448","typeString":"type(contract IERC165)"}},"id":8431,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"966:11:38","memberName":"interfaceId","nodeType":"MemberAccess","src":"952:25:38","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"937:40:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":8426,"id":8433,"nodeType":"Return","src":"930:47:38"}]},"documentation":{"id":8419,"nodeType":"StructuredDocumentation","src":"768:56:38","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","id":8435,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"838:17:38","nodeType":"FunctionDefinition","overrides":{"id":8423,"nodeType":"OverrideSpecifier","overrides":[],"src":"896:8:38"},"parameters":{"id":8422,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8421,"mutability":"mutable","name":"interfaceId","nameLocation":"863:11:38","nodeType":"VariableDeclaration","scope":8435,"src":"856:18:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":8420,"name":"bytes4","nodeType":"ElementaryTypeName","src":"856:6:38","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"855:20:38"},"returnParameters":{"id":8426,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8425,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8435,"src":"914:4:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8424,"name":"bool","nodeType":"ElementaryTypeName","src":"914:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"913:6:38"},"scope":8436,"src":"829:155:38","stateMutability":"view","virtual":true,"visibility":"public"}],"scope":8437,"src":"726:260:38","usedErrors":[]}],"src":"99:888:38"},"id":38},"@openzeppelin/contracts/utils/introspection/IERC165.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","exportedSymbols":{"IERC165":[8448]},"id":8449,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":8438,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"100:23:39"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC165","contractDependencies":[],"contractKind":"interface","documentation":{"id":8439,"nodeType":"StructuredDocumentation","src":"125:279:39","text":" @dev Interface of the ERC165 standard, as defined in the\n https://eips.ethereum.org/EIPS/eip-165[EIP].\n Implementers can declare support of contract interfaces, which can then be\n queried by others ({ERC165Checker}).\n For an implementation, see {ERC165}."},"fullyImplemented":false,"id":8448,"linearizedBaseContracts":[8448],"name":"IERC165","nameLocation":"415:7:39","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":8440,"nodeType":"StructuredDocumentation","src":"429:340:39","text":" @dev Returns true if this contract implements the interface defined by\n `interfaceId`. See the corresponding\n https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n to learn more about how these ids are created.\n This function call must use less than 30 000 gas."},"functionSelector":"01ffc9a7","id":8447,"implemented":false,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"783:17:39","nodeType":"FunctionDefinition","parameters":{"id":8443,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8442,"mutability":"mutable","name":"interfaceId","nameLocation":"808:11:39","nodeType":"VariableDeclaration","scope":8447,"src":"801:18:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":8441,"name":"bytes4","nodeType":"ElementaryTypeName","src":"801:6:39","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"800:20:39"},"returnParameters":{"id":8446,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8445,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8447,"src":"844:4:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8444,"name":"bool","nodeType":"ElementaryTypeName","src":"844:4:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"843:6:39"},"scope":8448,"src":"774:76:39","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":8449,"src":"405:447:39","usedErrors":[]}],"src":"100:753:39"},"id":39},"contracts/Caller.sol":{"ast":{"absolutePath":"contracts/Caller.sol","exportedSymbols":{"GCaller":[8529],"IGreeter2":[8461]},"id":8530,"license":"Unlicense","nodeType":"SourceUnit","nodes":[{"id":8450,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"38:23:40"},{"abstract":false,"baseContracts":[],"canonicalName":"IGreeter2","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":8461,"linearizedBaseContracts":[8461],"name":"IGreeter2","nameLocation":"73:9:40","nodeType":"ContractDefinition","nodes":[{"functionSelector":"d7b4291c","id":8455,"implemented":false,"kind":"function","modifiers":[],"name":"callGreeter","nameLocation":"98:11:40","nodeType":"FunctionDefinition","parameters":{"id":8451,"nodeType":"ParameterList","parameters":[],"src":"109:2:40"},"returnParameters":{"id":8454,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8453,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8455,"src":"135:13:40","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8452,"name":"string","nodeType":"ElementaryTypeName","src":"135:6:40","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"134:15:40"},"scope":8461,"src":"89:61:40","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"9698086b","id":8460,"implemented":false,"kind":"function","modifiers":[],"name":"setGreet","nameLocation":"164:8:40","nodeType":"FunctionDefinition","parameters":{"id":8458,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8457,"mutability":"mutable","name":"greeting","nameLocation":"187:8:40","nodeType":"VariableDeclaration","scope":8460,"src":"173:22:40","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8456,"name":"string","nodeType":"ElementaryTypeName","src":"173:6:40","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"172:24:40"},"returnParameters":{"id":8459,"nodeType":"ParameterList","parameters":[],"src":"205:0:40"},"scope":8461,"src":"155:51:40","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":8530,"src":"63:145:40","usedErrors":[]},{"abstract":false,"baseContracts":[],"canonicalName":"GCaller","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":8529,"linearizedBaseContracts":[8529],"name":"GCaller","nameLocation":"219:7:40","nodeType":"ContractDefinition","nodes":[{"constant":false,"functionSelector":"26b85ee1","id":8463,"mutability":"mutable","name":"myAddress","nameLocation":"248:9:40","nodeType":"VariableDeclaration","scope":8529,"src":"233:24:40","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8462,"name":"address","nodeType":"ElementaryTypeName","src":"233:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"constant":false,"functionSelector":"3e23ee43","id":8465,"mutability":"mutable","name":"callAddress","nameLocation":"278:11:40","nodeType":"VariableDeclaration","scope":8529,"src":"263:26:40","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8464,"name":"address","nodeType":"ElementaryTypeName","src":"263:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"constant":false,"id":8468,"mutability":"mutable","name":"defaultGreeting","nameLocation":"310:15:40","nodeType":"VariableDeclaration","scope":8529,"src":"295:49:40","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":8466,"name":"string","nodeType":"ElementaryTypeName","src":"295:6:40","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"48692066726f6d2043616c6c6572","id":8467,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"328:16:40","typeDescriptions":{"typeIdentifier":"t_stringliteral_dd4bc8dd642e96221838d35f0dfe7f67420ad930c71b95a543ffac1ae9893926","typeString":"literal_string \"Hi from Caller\""},"value":"Hi from Caller"},"visibility":"private"},{"body":{"id":8484,"nodeType":"Block","src":"385:78:40","statements":[{"expression":{"id":8478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8473,"name":"myAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8463,"src":"395:9:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":8476,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"415:4:40","typeDescriptions":{"typeIdentifier":"t_contract$_GCaller_$8529","typeString":"contract GCaller"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GCaller_$8529","typeString":"contract GCaller"}],"id":8475,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"407:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8474,"name":"address","nodeType":"ElementaryTypeName","src":"407:7:40","typeDescriptions":{}}},"id":8477,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"407:13:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"395:25:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":8479,"nodeType":"ExpressionStatement","src":"395:25:40"},{"expression":{"id":8482,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8480,"name":"callAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8465,"src":"430:11:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8481,"name":"_callAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8470,"src":"444:12:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"430:26:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":8483,"nodeType":"ExpressionStatement","src":"430:26:40"}]},"id":8485,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":8471,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8470,"mutability":"mutable","name":"_callAddress","nameLocation":"371:12:40","nodeType":"VariableDeclaration","scope":8485,"src":"363:20:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8469,"name":"address","nodeType":"ElementaryTypeName","src":"363:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"362:22:40"},"returnParameters":{"id":8472,"nodeType":"ParameterList","parameters":[],"src":"385:0:40"},"scope":8529,"src":"351:112:40","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":8515,"nodeType":"Block","src":"524:204:40","statements":[{"assignments":[8491],"declarations":[{"constant":false,"id":8491,"mutability":"mutable","name":"greetingBytes","nameLocation":"547:13:40","nodeType":"VariableDeclaration","scope":8515,"src":"534:26:40","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8490,"name":"bytes","nodeType":"ElementaryTypeName","src":"534:5:40","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":8496,"initialValue":{"arguments":[{"id":8494,"name":"_greeting","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8487,"src":"569:9:40","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":8493,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"563:5:40","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":8492,"name":"bytes","nodeType":"ElementaryTypeName","src":"563:5:40","typeDescriptions":{}}},"id":8495,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"563:16:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"534:45:40"},{"assignments":[8498],"declarations":[{"constant":false,"id":8498,"mutability":"mutable","name":"greeting","nameLocation":"603:8:40","nodeType":"VariableDeclaration","scope":8515,"src":"589:22:40","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8497,"name":"string","nodeType":"ElementaryTypeName","src":"589:6:40","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":8507,"initialValue":{"condition":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":8499,"name":"greetingBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8491,"src":"615:13:40","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":8500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"629:6:40","memberName":"length","nodeType":"MemberAccess","src":"615:20:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":8501,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"638:1:40","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"615:24:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":8503,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"614:26:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":8505,"name":"defaultGreeting","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8468,"src":"655:15:40","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":8506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"614:56:40","trueExpression":{"id":8504,"name":"_greeting","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8487,"src":"643:9:40","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"589:81:40"},{"expression":{"arguments":[{"id":8512,"name":"greeting","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8498,"src":"712:8:40","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"arguments":[{"id":8509,"name":"callAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8465,"src":"690:11:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8508,"name":"IGreeter2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8461,"src":"680:9:40","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGreeter2_$8461_$","typeString":"type(contract IGreeter2)"}},"id":8510,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"680:22:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGreeter2_$8461","typeString":"contract IGreeter2"}},"id":8511,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"703:8:40","memberName":"setGreet","nodeType":"MemberAccess","referencedDeclaration":8460,"src":"680:31:40","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) external"}},"id":8513,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"680:41:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8514,"nodeType":"ExpressionStatement","src":"680:41:40"}]},"functionSelector":"49900eec","id":8516,"implemented":true,"kind":"function","modifiers":[],"name":"newSetGreet","nameLocation":"478:11:40","nodeType":"FunctionDefinition","parameters":{"id":8488,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8487,"mutability":"mutable","name":"_greeting","nameLocation":"504:9:40","nodeType":"VariableDeclaration","scope":8516,"src":"490:23:40","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8486,"name":"string","nodeType":"ElementaryTypeName","src":"490:6:40","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"489:25:40"},"returnParameters":{"id":8489,"nodeType":"ParameterList","parameters":[],"src":"524:0:40"},"scope":8529,"src":"469:259:40","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":8527,"nodeType":"Block","src":"798:60:40","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":8522,"name":"callAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8465,"src":"825:11:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8521,"name":"IGreeter2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8461,"src":"815:9:40","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGreeter2_$8461_$","typeString":"type(contract IGreeter2)"}},"id":8523,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"815:22:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGreeter2_$8461","typeString":"contract IGreeter2"}},"id":8524,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"838:11:40","memberName":"callGreeter","nodeType":"MemberAccess","referencedDeclaration":8455,"src":"815:34:40","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_string_memory_ptr_$","typeString":"function () view external returns (string memory)"}},"id":8525,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"815:36:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":8520,"id":8526,"nodeType":"Return","src":"808:43:40"}]},"functionSelector":"70225fc7","id":8528,"implemented":true,"kind":"function","modifiers":[],"name":"newCallGreeter","nameLocation":"743:14:40","nodeType":"FunctionDefinition","parameters":{"id":8517,"nodeType":"ParameterList","parameters":[],"src":"757:2:40"},"returnParameters":{"id":8520,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8519,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8528,"src":"783:13:40","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8518,"name":"string","nodeType":"ElementaryTypeName","src":"783:6:40","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"782:15:40"},"scope":8529,"src":"734:124:40","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":8530,"src":"210:650:40","usedErrors":[]}],"src":"38:822:40"},"id":40},"contracts/Greeter.sol":{"ast":{"absolutePath":"contracts/Greeter.sol","exportedSymbols":{"Greeter":[8570]},"id":8571,"license":"Unlicense","nodeType":"SourceUnit","nodes":[{"id":8531,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"37:23:41"},{"abstract":false,"baseContracts":[],"canonicalName":"Greeter","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":8570,"linearizedBaseContracts":[8570],"name":"Greeter","nameLocation":"71:7:41","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":8533,"mutability":"mutable","name":"greeting","nameLocation":"100:8:41","nodeType":"VariableDeclaration","scope":8570,"src":"85:23:41","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":8532,"name":"string","nodeType":"ElementaryTypeName","src":"85:6:41","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"anonymous":false,"eventSelector":"4dabe8361a35a905ec9d530e301d2e5c6cf44c65cdd7768f522a77a373436da9","id":8537,"name":"SetGreeting","nameLocation":"121:11:41","nodeType":"EventDefinition","parameters":{"id":8536,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8535,"indexed":false,"mutability":"mutable","name":"greeting","nameLocation":"140:8:41","nodeType":"VariableDeclaration","scope":8537,"src":"133:15:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8534,"name":"string","nodeType":"ElementaryTypeName","src":"133:6:41","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"132:17:41"},"src":"115:35:41"},{"body":{"id":8546,"nodeType":"Block","src":"193:37:41","statements":[{"expression":{"id":8544,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8542,"name":"greeting","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8533,"src":"203:8:41","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8543,"name":"_greeting","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8539,"src":"214:9:41","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"203:20:41","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":8545,"nodeType":"ExpressionStatement","src":"203:20:41"}]},"id":8547,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":8540,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8539,"mutability":"mutable","name":"_greeting","nameLocation":"182:9:41","nodeType":"VariableDeclaration","scope":8547,"src":"168:23:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8538,"name":"string","nodeType":"ElementaryTypeName","src":"168:6:41","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"167:25:41"},"returnParameters":{"id":8541,"nodeType":"ParameterList","parameters":[],"src":"193:0:41"},"scope":8570,"src":"156:74:41","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":8554,"nodeType":"Block","src":"289:32:41","statements":[{"expression":{"id":8552,"name":"greeting","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8533,"src":"306:8:41","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":8551,"id":8553,"nodeType":"Return","src":"299:15:41"}]},"functionSelector":"cfae3217","id":8555,"implemented":true,"kind":"function","modifiers":[],"name":"greet","nameLocation":"245:5:41","nodeType":"FunctionDefinition","parameters":{"id":8548,"nodeType":"ParameterList","parameters":[],"src":"250:2:41"},"returnParameters":{"id":8551,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8550,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8555,"src":"274:13:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8549,"name":"string","nodeType":"ElementaryTypeName","src":"274:6:41","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"273:15:41"},"scope":8570,"src":"236:85:41","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":8568,"nodeType":"Block","src":"380:75:41","statements":[{"expression":{"id":8562,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8560,"name":"greeting","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8533,"src":"390:8:41","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8561,"name":"_greeting","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8557,"src":"401:9:41","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"390:20:41","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":8563,"nodeType":"ExpressionStatement","src":"390:20:41"},{"eventCall":{"arguments":[{"id":8565,"name":"_greeting","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8557,"src":"438:9:41","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":8564,"name":"SetGreeting","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8537,"src":"426:11:41","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":8566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"426:22:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8567,"nodeType":"EmitStatement","src":"421:27:41"}]},"functionSelector":"a4136862","id":8569,"implemented":true,"kind":"function","modifiers":[],"name":"setGreeting","nameLocation":"336:11:41","nodeType":"FunctionDefinition","parameters":{"id":8558,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8557,"mutability":"mutable","name":"_greeting","nameLocation":"362:9:41","nodeType":"VariableDeclaration","scope":8569,"src":"348:23:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8556,"name":"string","nodeType":"ElementaryTypeName","src":"348:6:41","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"347:25:41"},"returnParameters":{"id":8559,"nodeType":"ParameterList","parameters":[],"src":"380:0:41"},"scope":8570,"src":"327:128:41","stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"scope":8571,"src":"62:395:41","usedErrors":[]}],"src":"37:420:41"},"id":41},"contracts/L1.sol":{"ast":{"absolutePath":"contracts/L1.sol","exportedSymbols":{"Context":[8135],"ERC20":[6336],"IERC20":[6414],"IERC20Metadata":[6439],"L1":[8599]},"id":8600,"license":"Unlicense","nodeType":"SourceUnit","nodes":[{"id":8572,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"37:23:42"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/ERC20.sol","file":"@openzeppelin/contracts/token/ERC20/ERC20.sol","id":8573,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8600,"sourceUnit":6337,"src":"62:55:42","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":8574,"name":"ERC20","nameLocations":["134:5:42"],"nodeType":"IdentifierPath","referencedDeclaration":6336,"src":"134:5:42"},"id":8575,"nodeType":"InheritanceSpecifier","src":"134:5:42"}],"canonicalName":"L1","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":8599,"linearizedBaseContracts":[8599,6336,6439,6414,8135],"name":"L1","nameLocation":"128:2:42","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":8583,"mutability":"constant","name":"_initial_supply","nameLocation":"163:15:42","nodeType":"VariableDeclaration","scope":8599,"src":"146:52:42","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8576,"name":"uint256","nodeType":"ElementaryTypeName","src":"146:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1000000000000000000000_by_1","typeString":"int_const 1000000000000000000000"},"id":8582,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31303030","id":8577,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"181:4:42","typeDescriptions":{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"},"value":"1000"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"id":8580,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":8578,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"189:2:42","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3138","id":8579,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"195:2:42","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"src":"189:8:42","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"}}],"id":8581,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"188:10:42","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"}},"src":"181:17:42","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000000_by_1","typeString":"int_const 1000000000000000000000"}},"visibility":"internal"},{"body":{"id":8597,"nodeType":"Block","src":"274:51:42","statements":[{"expression":{"arguments":[{"id":8593,"name":"_recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8585,"src":"290:10:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8594,"name":"_initial_supply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8583,"src":"302:15:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8592,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6153,"src":"284:5:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":8595,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"284:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8596,"nodeType":"ExpressionStatement","src":"284:34:42"}]},"id":8598,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"hexValue":"4c3120455243323020746f6b656e","id":8588,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"250:16:42","typeDescriptions":{"typeIdentifier":"t_stringliteral_df2a82d94c23001c85479c8587d7fc2027045acd81a75cb19edc829d78508191","typeString":"literal_string \"L1 ERC20 token\""},"value":"L1 ERC20 token"},{"hexValue":"4c31","id":8589,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"268:4:42","typeDescriptions":{"typeIdentifier":"t_stringliteral_8d5ddb982f42939b1ffc8518aca2cf7171ca205361facaa9f4a449525ff4c432","typeString":"literal_string \"L1\""},"value":"L1"}],"id":8590,"kind":"baseConstructorSpecifier","modifierName":{"id":8587,"name":"ERC20","nameLocations":["244:5:42"],"nodeType":"IdentifierPath","referencedDeclaration":6336,"src":"244:5:42"},"nodeType":"ModifierInvocation","src":"244:29:42"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":8586,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8585,"mutability":"mutable","name":"_recipient","nameLocation":"225:10:42","nodeType":"VariableDeclaration","scope":8598,"src":"217:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8584,"name":"address","nodeType":"ElementaryTypeName","src":"217:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"216:20:42"},"returnParameters":{"id":8591,"nodeType":"ParameterList","parameters":[],"src":"274:0:42"},"scope":8599,"src":"205:120:42","stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"scope":8600,"src":"119:208:42","usedErrors":[]}],"src":"37:290:42"},"id":42},"contracts/L2.sol":{"ast":{"absolutePath":"contracts/L2.sol","exportedSymbols":{"Context":[8135],"ERC20":[6336],"IERC20":[6414],"IERC20Metadata":[6439],"L2":[8627]},"id":8628,"license":"Unlicense","nodeType":"SourceUnit","nodes":[{"id":8601,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"37:23:43"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/ERC20.sol","file":"@openzeppelin/contracts/token/ERC20/ERC20.sol","id":8602,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8628,"sourceUnit":6337,"src":"62:55:43","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":8603,"name":"ERC20","nameLocations":["134:5:43"],"nodeType":"IdentifierPath","referencedDeclaration":6336,"src":"134:5:43"},"id":8604,"nodeType":"InheritanceSpecifier","src":"134:5:43"}],"canonicalName":"L2","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":8627,"linearizedBaseContracts":[8627,6336,6439,6414,8135],"name":"L2","nameLocation":"128:2:43","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":8612,"mutability":"constant","name":"_initial_supply","nameLocation":"163:15:43","nodeType":"VariableDeclaration","scope":8627,"src":"146:52:43","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8605,"name":"uint256","nodeType":"ElementaryTypeName","src":"146:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1000000000000000000000_by_1","typeString":"int_const 1000000000000000000000"},"id":8611,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31303030","id":8606,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"181:4:43","typeDescriptions":{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"},"value":"1000"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"id":8609,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":8607,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"189:2:43","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3138","id":8608,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"195:2:43","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"src":"189:8:43","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"}}],"id":8610,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"188:10:43","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"}},"src":"181:17:43","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000000_by_1","typeString":"int_const 1000000000000000000000"}},"visibility":"internal"},{"body":{"id":8625,"nodeType":"Block","src":"249:51:43","statements":[{"expression":{"arguments":[{"expression":{"id":8620,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"265:3:43","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"269:6:43","memberName":"sender","nodeType":"MemberAccess","src":"265:10:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8622,"name":"_initial_supply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8612,"src":"277:15:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8619,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6153,"src":"259:5:43","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":8623,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"259:34:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8624,"nodeType":"ExpressionStatement","src":"259:34:43"}]},"id":8626,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"hexValue":"4c3220455243323020746f6b656e","id":8615,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"225:16:43","typeDescriptions":{"typeIdentifier":"t_stringliteral_ea48891da99e4f4c86218504eeaf64b8f7bc76705ce60cb4be90e9b4a6fdea11","typeString":"literal_string \"L2 ERC20 token\""},"value":"L2 ERC20 token"},{"hexValue":"4c32","id":8616,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"243:4:43","typeDescriptions":{"typeIdentifier":"t_stringliteral_d395944876b8278a9c3208f7817cf6503c3135a3a035392a707e054c5dbd54e4","typeString":"literal_string \"L2\""},"value":"L2"}],"id":8617,"kind":"baseConstructorSpecifier","modifierName":{"id":8614,"name":"ERC20","nameLocations":["219:5:43"],"nodeType":"IdentifierPath","referencedDeclaration":6336,"src":"219:5:43"},"nodeType":"ModifierInvocation","src":"219:29:43"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":8613,"nodeType":"ParameterList","parameters":[],"src":"216:2:43"},"returnParameters":{"id":8618,"nodeType":"ParameterList","parameters":[],"src":"249:0:43"},"scope":8627,"src":"205:95:43","stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"scope":8628,"src":"119:183:43","usedErrors":[]}],"src":"37:265:43"},"id":43},"contracts/Middle.sol":{"ast":{"absolutePath":"contracts/Middle.sol","exportedSymbols":{"IGreeter":[8640],"Middle":[8678]},"id":8679,"license":"Unlicense","nodeType":"SourceUnit","nodes":[{"id":8629,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"38:23:44"},{"abstract":false,"baseContracts":[],"canonicalName":"IGreeter","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":8640,"linearizedBaseContracts":[8640],"name":"IGreeter","nameLocation":"73:8:44","nodeType":"ContractDefinition","nodes":[{"functionSelector":"cfae3217","id":8634,"implemented":false,"kind":"function","modifiers":[],"name":"greet","nameLocation":"97:5:44","nodeType":"FunctionDefinition","parameters":{"id":8630,"nodeType":"ParameterList","parameters":[],"src":"102:2:44"},"returnParameters":{"id":8633,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8632,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8634,"src":"128:13:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8631,"name":"string","nodeType":"ElementaryTypeName","src":"128:6:44","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"127:15:44"},"scope":8640,"src":"88:55:44","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"a4136862","id":8639,"implemented":false,"kind":"function","modifiers":[],"name":"setGreeting","nameLocation":"157:11:44","nodeType":"FunctionDefinition","parameters":{"id":8637,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8636,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8639,"src":"169:13:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8635,"name":"string","nodeType":"ElementaryTypeName","src":"169:6:44","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"168:15:44"},"returnParameters":{"id":8638,"nodeType":"ParameterList","parameters":[],"src":"192:0:44"},"scope":8640,"src":"148:45:44","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":8679,"src":"63:132:44","usedErrors":[]},{"abstract":false,"baseContracts":[],"canonicalName":"Middle","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":8678,"linearizedBaseContracts":[8678],"name":"Middle","nameLocation":"206:6:44","nodeType":"ContractDefinition","nodes":[{"constant":false,"functionSelector":"26b85ee1","id":8642,"mutability":"mutable","name":"myAddress","nameLocation":"234:9:44","nodeType":"VariableDeclaration","scope":8678,"src":"219:24:44","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8641,"name":"address","nodeType":"ElementaryTypeName","src":"219:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"body":{"id":8651,"nodeType":"Block","src":"282:39:44","statements":[{"expression":{"id":8649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8647,"name":"myAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8642,"src":"292:9:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8648,"name":"_myAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8644,"src":"304:10:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"292:22:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":8650,"nodeType":"ExpressionStatement","src":"292:22:44"}]},"id":8652,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":8645,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8644,"mutability":"mutable","name":"_myAddress","nameLocation":"270:10:44","nodeType":"VariableDeclaration","scope":8652,"src":"262:18:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8643,"name":"address","nodeType":"ElementaryTypeName","src":"262:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"261:20:44"},"returnParameters":{"id":8646,"nodeType":"ParameterList","parameters":[],"src":"282:0:44"},"scope":8678,"src":"250:71:44","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":8664,"nodeType":"Block","src":"381:61:44","statements":[{"expression":{"arguments":[{"id":8661,"name":"newGreeting","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8654,"src":"423:11:44","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"arguments":[{"id":8658,"name":"myAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8642,"src":"400:9:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8657,"name":"IGreeter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8640,"src":"391:8:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGreeter_$8640_$","typeString":"type(contract IGreeter)"}},"id":8659,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"391:19:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGreeter_$8640","typeString":"contract IGreeter"}},"id":8660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"411:11:44","memberName":"setGreeting","nodeType":"MemberAccess","referencedDeclaration":8639,"src":"391:31:44","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) external"}},"id":8662,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"391:44:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8663,"nodeType":"ExpressionStatement","src":"391:44:44"}]},"functionSelector":"9698086b","id":8665,"implemented":true,"kind":"function","modifiers":[],"name":"setGreet","nameLocation":"336:8:44","nodeType":"FunctionDefinition","parameters":{"id":8655,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8654,"mutability":"mutable","name":"newGreeting","nameLocation":"359:11:44","nodeType":"VariableDeclaration","scope":8665,"src":"345:25:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8653,"name":"string","nodeType":"ElementaryTypeName","src":"345:6:44","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"344:27:44"},"returnParameters":{"id":8656,"nodeType":"ParameterList","parameters":[],"src":"381:0:44"},"scope":8678,"src":"327:115:44","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":8676,"nodeType":"Block","src":"509:51:44","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":8671,"name":"myAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8642,"src":"535:9:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8670,"name":"IGreeter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8640,"src":"526:8:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGreeter_$8640_$","typeString":"type(contract IGreeter)"}},"id":8672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"526:19:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGreeter_$8640","typeString":"contract IGreeter"}},"id":8673,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"546:5:44","memberName":"greet","nodeType":"MemberAccess","referencedDeclaration":8634,"src":"526:25:44","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_string_memory_ptr_$","typeString":"function () view external returns (string memory)"}},"id":8674,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"526:27:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":8669,"id":8675,"nodeType":"Return","src":"519:34:44"}]},"functionSelector":"d7b4291c","id":8677,"implemented":true,"kind":"function","modifiers":[],"name":"callGreeter","nameLocation":"457:11:44","nodeType":"FunctionDefinition","parameters":{"id":8666,"nodeType":"ParameterList","parameters":[],"src":"468:2:44"},"returnParameters":{"id":8669,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8668,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8677,"src":"494:13:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8667,"name":"string","nodeType":"ElementaryTypeName","src":"494:6:44","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"493:15:44"},"scope":8678,"src":"448:112:44","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":8679,"src":"197:365:44","usedErrors":[]}],"src":"38:524:44"},"id":44},"contracts/MultiTransfer.sol":{"ast":{"absolutePath":"contracts/MultiTransfer.sol","exportedSymbols":{"Address":[8113],"IERC20":[6414],"SafeERC20":[6663],"TokenF2L2":[8843]},"id":8844,"license":"MIT","nodeType":"SourceUnit","nodes":[{"absolutePath":"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol","file":"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol","id":8680,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8844,"sourceUnit":6664,"src":"63:65:45","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Address.sol","file":"@openzeppelin/contracts/utils/Address.sol","id":8681,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8844,"sourceUnit":8114,"src":"129:51:45","symbolAliases":[],"unitAlias":""},{"id":8682,"literals":["solidity","^","0.8",".16"],"nodeType":"PragmaDirective","src":"214:24:45"},{"abstract":false,"baseContracts":[],"canonicalName":"TokenF2L2","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":8843,"linearizedBaseContracts":[8843],"name":"TokenF2L2","nameLocation":"250:9:45","nodeType":"ContractDefinition","nodes":[{"global":false,"id":8686,"libraryName":{"id":8683,"name":"SafeERC20","nameLocations":["329:9:45"],"nodeType":"IdentifierPath","referencedDeclaration":6663,"src":"329:9:45"},"nodeType":"UsingForDirective","src":"323:27:45","typeName":{"id":8685,"nodeType":"UserDefinedTypeName","pathNode":{"id":8684,"name":"IERC20","nameLocations":["343:6:45"],"nodeType":"IdentifierPath","referencedDeclaration":6414,"src":"343:6:45"},"referencedDeclaration":6414,"src":"343:6:45","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6414","typeString":"contract IERC20"}}},{"global":false,"id":8689,"libraryName":{"id":8687,"name":"Address","nameLocations":["361:7:45"],"nodeType":"IdentifierPath","referencedDeclaration":8113,"src":"361:7:45"},"nodeType":"UsingForDirective","src":"355:34:45","typeName":{"id":8688,"name":"address","nodeType":"ElementaryTypeName","src":"373:15:45","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}},{"body":{"id":8695,"nodeType":"Block","src":"473:22:45","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":8692,"name":"pay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8709,"src":"483:3:45","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":8693,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"483:5:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8694,"nodeType":"ExpressionStatement","src":"483:5:45"}]},"id":8696,"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":8690,"nodeType":"ParameterList","parameters":[],"src":"453:2:45"},"returnParameters":{"id":8691,"nodeType":"ParameterList","parameters":[],"src":"473:0:45"},"scope":8843,"src":"446:49:45","stateMutability":"payable","virtual":false,"visibility":"external"},{"body":{"id":8708,"nodeType":"Block","src":"531:66:45","statements":[{"eventCall":{"arguments":[{"expression":{"id":8700,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"551:3:45","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8701,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"555:6:45","memberName":"sender","nodeType":"MemberAccess","src":"551:10:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":8702,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"563:3:45","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8703,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"567:5:45","memberName":"value","nodeType":"MemberAccess","src":"563:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":8704,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"574:5:45","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":8705,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"580:9:45","memberName":"timestamp","nodeType":"MemberAccess","src":"574:15:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8699,"name":"Paid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8741,"src":"546:4:45","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":8706,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"546:44:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8707,"nodeType":"EmitStatement","src":"541:49:45"}]},"functionSelector":"1b9265b8","id":8709,"implemented":true,"kind":"function","modifiers":[],"name":"pay","nameLocation":"510:3:45","nodeType":"FunctionDefinition","parameters":{"id":8697,"nodeType":"ParameterList","parameters":[],"src":"513:2:45"},"returnParameters":{"id":8698,"nodeType":"ParameterList","parameters":[],"src":"531:0:45"},"scope":8843,"src":"501:96:45","stateMutability":"payable","virtual":false,"visibility":"public"},{"body":{"id":8720,"nodeType":"Block","src":"652:45:45","statements":[{"expression":{"expression":{"arguments":[{"id":8716,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"677:4:45","typeDescriptions":{"typeIdentifier":"t_contract$_TokenF2L2_$8843","typeString":"contract TokenF2L2"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TokenF2L2_$8843","typeString":"contract TokenF2L2"}],"id":8715,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"669:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8714,"name":"address","nodeType":"ElementaryTypeName","src":"669:7:45","typeDescriptions":{}}},"id":8717,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"669:13:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":8718,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"683:7:45","memberName":"balance","nodeType":"MemberAccess","src":"669:21:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8713,"id":8719,"nodeType":"Return","src":"662:28:45"}]},"functionSelector":"12065fe0","id":8721,"implemented":true,"kind":"function","modifiers":[],"name":"getBalance","nameLocation":"612:10:45","nodeType":"FunctionDefinition","parameters":{"id":8710,"nodeType":"ParameterList","parameters":[],"src":"622:2:45"},"returnParameters":{"id":8713,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8712,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8721,"src":"646:4:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8711,"name":"uint","nodeType":"ElementaryTypeName","src":"646:4:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"645:6:45"},"scope":8843,"src":"603:94:45","stateMutability":"view","virtual":false,"visibility":"public"},{"constant":false,"functionSelector":"8da5cb5b","id":8723,"mutability":"mutable","name":"owner","nameLocation":"718:5:45","nodeType":"VariableDeclaration","scope":8843,"src":"703:20:45","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8722,"name":"address","nodeType":"ElementaryTypeName","src":"703:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"body":{"id":8732,"nodeType":"Block","src":"758:31:45","statements":[{"expression":{"id":8730,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8728,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8723,"src":"768:5:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8729,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8725,"src":"776:6:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"768:14:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":8731,"nodeType":"ExpressionStatement","src":"768:14:45"}]},"id":8733,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":8726,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8725,"mutability":"mutable","name":"_owner","nameLocation":"750:6:45","nodeType":"VariableDeclaration","scope":8733,"src":"742:14:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8724,"name":"address","nodeType":"ElementaryTypeName","src":"742:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"741:16:45"},"returnParameters":{"id":8727,"nodeType":"ParameterList","parameters":[],"src":"758:0:45"},"scope":8843,"src":"730:59:45","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"anonymous":false,"eventSelector":"df9a51129930649214df58f542322c245372c6f2fa6fc3c9b40d927c597cd230","id":8741,"name":"Paid","nameLocation":"801:4:45","nodeType":"EventDefinition","parameters":{"id":8740,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8735,"indexed":true,"mutability":"mutable","name":"_from","nameLocation":"822:5:45","nodeType":"VariableDeclaration","scope":8741,"src":"806:21:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8734,"name":"address","nodeType":"ElementaryTypeName","src":"806:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8737,"indexed":false,"mutability":"mutable","name":"_amount","nameLocation":"834:7:45","nodeType":"VariableDeclaration","scope":8741,"src":"829:12:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8736,"name":"uint","nodeType":"ElementaryTypeName","src":"829:4:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8739,"indexed":false,"mutability":"mutable","name":"_timestamp","nameLocation":"848:10:45","nodeType":"VariableDeclaration","scope":8741,"src":"843:15:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8738,"name":"uint","nodeType":"ElementaryTypeName","src":"843:4:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"805:54:45"},"src":"795:65:45"},{"body":{"id":8752,"nodeType":"Block","src":"887:93:45","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":8747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8744,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8723,"src":"905:5:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":8745,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"914:3:45","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8746,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"918:6:45","memberName":"sender","nodeType":"MemberAccess","src":"914:10:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"905:19:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"596f7520617265206e6f7420746865206f776e6572","id":8748,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"926:23:45","typeDescriptions":{"typeIdentifier":"t_stringliteral_54087df48532e530810543784e49c855ce792e1f48abc8afd291ecd3c5a906fc","typeString":"literal_string \"You are not the owner\""},"value":"You are not the owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_54087df48532e530810543784e49c855ce792e1f48abc8afd291ecd3c5a906fc","typeString":"literal_string \"You are not the owner\""}],"id":8743,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"897:7:45","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"897:53:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8750,"nodeType":"ExpressionStatement","src":"897:53:45"},{"id":8751,"nodeType":"PlaceholderStatement","src":"960:1:45"}]},"id":8753,"name":"onlyOwner","nameLocation":"875:9:45","nodeType":"ModifierDefinition","parameters":{"id":8742,"nodeType":"ParameterList","parameters":[],"src":"884:2:45"},"src":"866:114:45","virtual":false,"visibility":"internal"},{"body":{"id":8841,"nodeType":"Block","src":"1158:924:45","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8772,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":8768,"name":"_tokenAddresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8759,"src":"1286:15:45","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":8769,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1302:6:45","memberName":"length","nodeType":"MemberAccess","src":"1286:22:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":8770,"name":"_tokenAmounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8762,"src":"1312:13:45","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":8771,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1326:6:45","memberName":"length","nodeType":"MemberAccess","src":"1312:20:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1286:46:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"417272617973206d7573742068617665207468652073616d65206c656e677468","id":8773,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1334:34:45","typeDescriptions":{"typeIdentifier":"t_stringliteral_23c363817f9879f3888017ece213d7d3388c222537fa7decb7e0d1ac65953f19","typeString":"literal_string \"Arrays must have the same length\""},"value":"Arrays must have the same length"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_23c363817f9879f3888017ece213d7d3388c222537fa7decb7e0d1ac65953f19","typeString":"literal_string \"Arrays must have the same length\""}],"id":8767,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1278:7:45","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1278:91:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8775,"nodeType":"ExpressionStatement","src":"1278:91:45"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8781,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":8777,"name":"_tokenAddresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8759,"src":"1387:15:45","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":8778,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1403:6:45","memberName":"length","nodeType":"MemberAccess","src":"1387:22:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":8779,"name":"_recivers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8756,"src":"1413:9:45","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":8780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1423:6:45","memberName":"length","nodeType":"MemberAccess","src":"1413:16:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1387:42:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"417272617973206d7573742068617665207468652073616d65206c656e677468","id":8782,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1431:34:45","typeDescriptions":{"typeIdentifier":"t_stringliteral_23c363817f9879f3888017ece213d7d3388c222537fa7decb7e0d1ac65953f19","typeString":"literal_string \"Arrays must have the same length\""},"value":"Arrays must have the same length"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_23c363817f9879f3888017ece213d7d3388c222537fa7decb7e0d1ac65953f19","typeString":"literal_string \"Arrays must have the same length\""}],"id":8776,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1379:7:45","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8783,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1379:87:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8784,"nodeType":"ExpressionStatement","src":"1379:87:45"},{"body":{"id":8839,"nodeType":"Block","src":"1610:466:45","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":8803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":8796,"name":"_tokenAddresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8759,"src":"1628:15:45","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":8798,"indexExpression":{"id":8797,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8786,"src":"1644:1:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1628:18:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":8801,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1658:1:45","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":8800,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1650:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8799,"name":"address","nodeType":"ElementaryTypeName","src":"1650:7:45","typeDescriptions":{}}},"id":8802,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1650:10:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1628:32:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":8837,"nodeType":"Block","src":"1750:316:45","statements":[{"assignments":[8819],"declarations":[{"constant":false,"id":8819,"mutability":"mutable","name":"token","nameLocation":"1875:5:45","nodeType":"VariableDeclaration","scope":8837,"src":"1868:12:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6414","typeString":"contract IERC20"},"typeName":{"id":8818,"nodeType":"UserDefinedTypeName","pathNode":{"id":8817,"name":"IERC20","nameLocations":["1868:6:45"],"nodeType":"IdentifierPath","referencedDeclaration":6414,"src":"1868:6:45"},"referencedDeclaration":6414,"src":"1868:6:45","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6414","typeString":"contract IERC20"}},"visibility":"internal"}],"id":8825,"initialValue":{"arguments":[{"baseExpression":{"id":8821,"name":"_tokenAddresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8759,"src":"1890:15:45","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":8823,"indexExpression":{"id":8822,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8786,"src":"1906:1:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1890:18:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8820,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6414,"src":"1883:6:45","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$6414_$","typeString":"type(contract IERC20)"}},"id":8824,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1883:26:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6414","typeString":"contract IERC20"}},"nodeType":"VariableDeclarationStatement","src":"1868:41:45"},{"expression":{"arguments":[{"baseExpression":{"id":8829,"name":"_recivers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8756,"src":"2020:9:45","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":8831,"indexExpression":{"id":8830,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8786,"src":"2030:1:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2020:12:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":8832,"name":"_tokenAmounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8762,"src":"2034:13:45","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":8834,"indexExpression":{"id":8833,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8786,"src":"2048:1:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2034:16:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":8826,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8819,"src":"2001:5:45","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6414","typeString":"contract IERC20"}},"id":8828,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2007:12:45","memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":6470,"src":"2001:18:45","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$6414_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$6414_$","typeString":"function (contract IERC20,address,uint256)"}},"id":8835,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2001:50:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8836,"nodeType":"ExpressionStatement","src":"2001:50:45"}]},"id":8838,"nodeType":"IfStatement","src":"1624:442:45","trueBody":{"id":8816,"nodeType":"Block","src":"1662:82:45","statements":[{"expression":{"arguments":[{"baseExpression":{"id":8811,"name":"_tokenAmounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8762,"src":"1712:13:45","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":8813,"indexExpression":{"id":8812,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8786,"src":"1726:1:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1712:16:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"baseExpression":{"id":8806,"name":"_recivers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8756,"src":"1688:9:45","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":8808,"indexExpression":{"id":8807,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8786,"src":"1698:1:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1688:12:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8805,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1680:8:45","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":8804,"name":"address","nodeType":"ElementaryTypeName","src":"1680:8:45","stateMutability":"payable","typeDescriptions":{}}},"id":8809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1680:21:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":8810,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1702:9:45","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":7870,"src":"1680:31:45","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":8814,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1680:49:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8815,"nodeType":"ExpressionStatement","src":"1680:49:45"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8792,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8789,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8786,"src":"1577:1:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":8790,"name":"_tokenAddresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8759,"src":"1581:15:45","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":8791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1597:6:45","memberName":"length","nodeType":"MemberAccess","src":"1581:22:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1577:26:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8840,"initializationExpression":{"assignments":[8786],"declarations":[{"constant":false,"id":8786,"mutability":"mutable","name":"i","nameLocation":"1570:1:45","nodeType":"VariableDeclaration","scope":8840,"src":"1565:6:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8785,"name":"uint","nodeType":"ElementaryTypeName","src":"1565:4:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8788,"initialValue":{"hexValue":"30","id":8787,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1574:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"1565:10:45"},"loopExpression":{"expression":{"id":8794,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"1605:3:45","subExpression":{"id":8793,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8786,"src":"1605:1:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8795,"nodeType":"ExpressionStatement","src":"1605:3:45"},"nodeType":"ForStatement","src":"1560:516:45"}]},"functionSelector":"cd72250d","id":8842,"implemented":true,"kind":"function","modifiers":[{"id":8765,"kind":"modifierInvocation","modifierName":{"id":8764,"name":"onlyOwner","nameLocations":["1148:9:45"],"nodeType":"IdentifierPath","referencedDeclaration":8753,"src":"1148:9:45"},"nodeType":"ModifierInvocation","src":"1148:9:45"}],"name":"multiTransfer","nameLocation":"995:13:45","nodeType":"FunctionDefinition","parameters":{"id":8763,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8756,"mutability":"mutable","name":"_recivers","nameLocation":"1035:9:45","nodeType":"VariableDeclaration","scope":8842,"src":"1018:26:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":8754,"name":"address","nodeType":"ElementaryTypeName","src":"1018:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":8755,"nodeType":"ArrayTypeName","src":"1018:9:45","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":8759,"mutability":"mutable","name":"_tokenAddresses","nameLocation":"1071:15:45","nodeType":"VariableDeclaration","scope":8842,"src":"1054:32:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":8757,"name":"address","nodeType":"ElementaryTypeName","src":"1054:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":8758,"nodeType":"ArrayTypeName","src":"1054:9:45","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":8762,"mutability":"mutable","name":"_tokenAmounts","nameLocation":"1113:13:45","nodeType":"VariableDeclaration","scope":8842,"src":"1096:30:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":8760,"name":"uint256","nodeType":"ElementaryTypeName","src":"1096:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8761,"nodeType":"ArrayTypeName","src":"1096:9:45","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"1008:124:45"},"returnParameters":{"id":8766,"nodeType":"ParameterList","parameters":[],"src":"1158:0:45"},"scope":8843,"src":"986:1096:45","stateMutability":"payable","virtual":false,"visibility":"public"}],"scope":8844,"src":"241:1843:45","usedErrors":[]}],"src":"63:2022:45"},"id":45},"contracts/MyERC20.sol":{"ast":{"absolutePath":"contracts/MyERC20.sol","exportedSymbols":{"Context":[8135],"ERC20":[6336],"IERC20":[6414],"IERC20Metadata":[6439],"MyERC20":[8895]},"id":8896,"license":"UNLICENSED","nodeType":"SourceUnit","nodes":[{"id":8845,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"40:23:46"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/ERC20.sol","file":"@openzeppelin/contracts/token/ERC20/ERC20.sol","id":8846,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8896,"sourceUnit":6337,"src":"65:55:46","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":8847,"name":"ERC20","nameLocations":["142:5:46"],"nodeType":"IdentifierPath","referencedDeclaration":6336,"src":"142:5:46"},"id":8848,"nodeType":"InheritanceSpecifier","src":"142:5:46"}],"canonicalName":"MyERC20","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":8895,"linearizedBaseContracts":[8895,6336,6439,6414,8135],"name":"MyERC20","nameLocation":"131:7:46","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":8850,"mutability":"mutable","name":"_decimals","nameLocation":"168:9:46","nodeType":"VariableDeclaration","scope":8895,"src":"154:23:46","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":8849,"name":"uint8","nodeType":"ElementaryTypeName","src":"154:5:46","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"private"},{"body":{"id":8867,"nodeType":"Block","src":"309:38:46","statements":[{"expression":{"id":8865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8863,"name":"_decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8850,"src":"319:9:46","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8864,"name":"decimals_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8856,"src":"331:9:46","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"319:21:46","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":8866,"nodeType":"ExpressionStatement","src":"319:21:46"}]},"id":8868,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":8859,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8852,"src":"293:5:46","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8860,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8854,"src":"300:7:46","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"id":8861,"kind":"baseConstructorSpecifier","modifierName":{"id":8858,"name":"ERC20","nameLocations":["287:5:46"],"nodeType":"IdentifierPath","referencedDeclaration":6336,"src":"287:5:46"},"nodeType":"ModifierInvocation","src":"287:21:46"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":8857,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8852,"mutability":"mutable","name":"name_","nameLocation":"219:5:46","nodeType":"VariableDeclaration","scope":8868,"src":"205:19:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8851,"name":"string","nodeType":"ElementaryTypeName","src":"205:6:46","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8854,"mutability":"mutable","name":"symbol_","nameLocation":"248:7:46","nodeType":"VariableDeclaration","scope":8868,"src":"234:21:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8853,"name":"string","nodeType":"ElementaryTypeName","src":"234:6:46","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8856,"mutability":"mutable","name":"decimals_","nameLocation":"271:9:46","nodeType":"VariableDeclaration","scope":8868,"src":"265:15:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":8855,"name":"uint8","nodeType":"ElementaryTypeName","src":"265:5:46","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"195:91:46"},"returnParameters":{"id":8862,"nodeType":"ParameterList","parameters":[],"src":"309:0:46"},"scope":8895,"src":"184:163:46","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":8884,"nodeType":"Block","src":"419:57:46","statements":[{"expression":{"arguments":[{"id":8878,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8870,"src":"435:3:46","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8879,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8872,"src":"440:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8877,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6153,"src":"429:5:46","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":8880,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"429:19:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8881,"nodeType":"ExpressionStatement","src":"429:19:46"},{"expression":{"hexValue":"74727565","id":8882,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"465:4:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":8876,"id":8883,"nodeType":"Return","src":"458:11:46"}]},"functionSelector":"40c10f19","id":8885,"implemented":true,"kind":"function","modifiers":[],"name":"mint","nameLocation":"362:4:46","nodeType":"FunctionDefinition","parameters":{"id":8873,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8870,"mutability":"mutable","name":"_to","nameLocation":"375:3:46","nodeType":"VariableDeclaration","scope":8885,"src":"367:11:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8869,"name":"address","nodeType":"ElementaryTypeName","src":"367:7:46","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8872,"mutability":"mutable","name":"_amount","nameLocation":"388:7:46","nodeType":"VariableDeclaration","scope":8885,"src":"380:15:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8871,"name":"uint256","nodeType":"ElementaryTypeName","src":"380:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"366:30:46"},"returnParameters":{"id":8876,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8875,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8885,"src":"413:4:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8874,"name":"bool","nodeType":"ElementaryTypeName","src":"413:4:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"412:6:46"},"scope":8895,"src":"353:123:46","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[5825],"body":{"id":8893,"nodeType":"Block","src":"539:33:46","statements":[{"expression":{"id":8891,"name":"_decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8850,"src":"556:9:46","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"functionReturnParameters":8890,"id":8892,"nodeType":"Return","src":"549:16:46"}]},"functionSelector":"313ce567","id":8894,"implemented":true,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"491:8:46","nodeType":"FunctionDefinition","overrides":{"id":8887,"nodeType":"OverrideSpecifier","overrides":[],"src":"514:8:46"},"parameters":{"id":8886,"nodeType":"ParameterList","parameters":[],"src":"499:2:46"},"returnParameters":{"id":8890,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8889,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8894,"src":"532:5:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":8888,"name":"uint8","nodeType":"ElementaryTypeName","src":"532:5:46","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"531:7:46"},"scope":8895,"src":"482:90:46","stateMutability":"view","virtual":false,"visibility":"public"}],"scope":8896,"src":"122:452:46","usedErrors":[]}],"src":"40:534:46"},"id":46},"contracts/MyNFT.sol":{"ast":{"absolutePath":"contracts/MyNFT.sol","exportedSymbols":{"Address":[8113],"Context":[8135],"Counters":[8209],"ERC165":[8436],"ERC721":[7529],"ERC721URIStorage":[7791],"IERC165":[8448],"IERC721":[7645],"IERC721Metadata":[7818],"IERC721Receiver":[7663],"MyNFT":[8955],"Ownable":[5750],"Strings":[8412]},"id":8956,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":8897,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"33:23:47"},{"absolutePath":"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol","file":"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol","id":8898,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8956,"sourceUnit":7792,"src":"58:78:47","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Counters.sol","file":"@openzeppelin/contracts/utils/Counters.sol","id":8899,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8956,"sourceUnit":8210,"src":"137:52:47","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","file":"@openzeppelin/contracts/access/Ownable.sol","id":8900,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8956,"sourceUnit":5751,"src":"190:52:47","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":8901,"name":"ERC721URIStorage","nameLocations":["262:16:47"],"nodeType":"IdentifierPath","referencedDeclaration":7791,"src":"262:16:47"},"id":8902,"nodeType":"InheritanceSpecifier","src":"262:16:47"},{"baseName":{"id":8903,"name":"Ownable","nameLocations":["280:7:47"],"nodeType":"IdentifierPath","referencedDeclaration":5750,"src":"280:7:47"},"id":8904,"nodeType":"InheritanceSpecifier","src":"280:7:47"}],"canonicalName":"MyNFT","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":8955,"linearizedBaseContracts":[8955,5750,7791,7529,7818,7645,8436,8448,8135],"name":"MyNFT","nameLocation":"253:5:47","nodeType":"ContractDefinition","nodes":[{"global":false,"id":8908,"libraryName":{"id":8905,"name":"Counters","nameLocations":["298:8:47"],"nodeType":"IdentifierPath","referencedDeclaration":8209,"src":"298:8:47"},"nodeType":"UsingForDirective","src":"292:36:47","typeName":{"id":8907,"nodeType":"UserDefinedTypeName","pathNode":{"id":8906,"name":"Counters.Counter","nameLocations":["311:8:47","320:7:47"],"nodeType":"IdentifierPath","referencedDeclaration":8141,"src":"311:16:47"},"referencedDeclaration":8141,"src":"311:16:47","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$8141_storage_ptr","typeString":"struct Counters.Counter"}}},{"constant":false,"id":8911,"mutability":"mutable","name":"_tokenIds","nameLocation":"356:9:47","nodeType":"VariableDeclaration","scope":8955,"src":"331:34:47","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$8141_storage","typeString":"struct Counters.Counter"},"typeName":{"id":8910,"nodeType":"UserDefinedTypeName","pathNode":{"id":8909,"name":"Counters.Counter","nameLocations":["331:8:47","340:7:47"],"nodeType":"IdentifierPath","referencedDeclaration":8141,"src":"331:16:47"},"referencedDeclaration":8141,"src":"331:16:47","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$8141_storage_ptr","typeString":"struct Counters.Counter"}},"visibility":"private"},{"body":{"id":8918,"nodeType":"Block","src":"407:2:47","statements":[]},"id":8919,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"hexValue":"4d794e4654","id":8914,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"391:7:47","typeDescriptions":{"typeIdentifier":"t_stringliteral_468b3d6a0127f01800703f6eaab73eb44c5dc1ea91cbcbbd87cb1a42f1460bb9","typeString":"literal_string \"MyNFT\""},"value":"MyNFT"},{"hexValue":"4e4654","id":8915,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"400:5:47","typeDescriptions":{"typeIdentifier":"t_stringliteral_9c4138cd0a1311e4748f70d0fe3dc55f0f5f75e0f20db731225cbc3b8914016a","typeString":"literal_string \"NFT\""},"value":"NFT"}],"id":8916,"kind":"baseConstructorSpecifier","modifierName":{"id":8913,"name":"ERC721","nameLocations":["384:6:47"],"nodeType":"IdentifierPath","referencedDeclaration":7529,"src":"384:6:47"},"nodeType":"ModifierInvocation","src":"384:22:47"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":8912,"nodeType":"ParameterList","parameters":[],"src":"381:2:47"},"returnParameters":{"id":8917,"nodeType":"ParameterList","parameters":[],"src":"407:0:47"},"scope":8955,"src":"370:39:47","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":8953,"nodeType":"Block","src":"508:173:47","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":8930,"name":"_tokenIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8911,"src":"514:9:47","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$8141_storage","typeString":"struct Counters.Counter storage ref"}},"id":8932,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"524:9:47","memberName":"increment","nodeType":"MemberAccess","referencedDeclaration":8167,"src":"514:19:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Counter_$8141_storage_ptr_$returns$__$attached_to$_t_struct$_Counter_$8141_storage_ptr_$","typeString":"function (struct Counters.Counter storage pointer)"}},"id":8933,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"514:21:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8934,"nodeType":"ExpressionStatement","src":"514:21:47"},{"assignments":[8936],"declarations":[{"constant":false,"id":8936,"mutability":"mutable","name":"newItemId","nameLocation":"550:9:47","nodeType":"VariableDeclaration","scope":8953,"src":"542:17:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8935,"name":"uint256","nodeType":"ElementaryTypeName","src":"542:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8940,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":8937,"name":"_tokenIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8911,"src":"562:9:47","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$8141_storage","typeString":"struct Counters.Counter storage ref"}},"id":8938,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"572:7:47","memberName":"current","nodeType":"MemberAccess","referencedDeclaration":8153,"src":"562:17:47","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Counter_$8141_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_Counter_$8141_storage_ptr_$","typeString":"function (struct Counters.Counter storage pointer) view returns (uint256)"}},"id":8939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"562:19:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"542:39:47"},{"expression":{"arguments":[{"id":8942,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8921,"src":"593:9:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8943,"name":"newItemId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8936,"src":"604:9:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8941,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7253,"src":"587:5:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":8944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"587:27:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8945,"nodeType":"ExpressionStatement","src":"587:27:47"},{"expression":{"arguments":[{"id":8947,"name":"newItemId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8936,"src":"633:9:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8948,"name":"tokenURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8923,"src":"644:8:47","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":8946,"name":"_setTokenURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7760,"src":"620:12:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_string_memory_ptr_$returns$__$","typeString":"function (uint256,string memory)"}},"id":8949,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"620:33:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8950,"nodeType":"ExpressionStatement","src":"620:33:47"},{"expression":{"id":8951,"name":"newItemId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8936,"src":"667:9:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8929,"id":8952,"nodeType":"Return","src":"660:16:47"}]},"functionSelector":"eacabe14","id":8954,"implemented":true,"kind":"function","modifiers":[{"id":8926,"kind":"modifierInvocation","modifierName":{"id":8925,"name":"onlyOwner","nameLocations":["480:9:47"],"nodeType":"IdentifierPath","referencedDeclaration":5692,"src":"480:9:47"},"nodeType":"ModifierInvocation","src":"480:9:47"}],"name":"mintNFT","nameLocation":"422:7:47","nodeType":"FunctionDefinition","parameters":{"id":8924,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8921,"mutability":"mutable","name":"recipient","nameLocation":"438:9:47","nodeType":"VariableDeclaration","scope":8954,"src":"430:17:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8920,"name":"address","nodeType":"ElementaryTypeName","src":"430:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8923,"mutability":"mutable","name":"tokenURI","nameLocation":"463:8:47","nodeType":"VariableDeclaration","scope":8954,"src":"449:22:47","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8922,"name":"string","nodeType":"ElementaryTypeName","src":"449:6:47","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"429:43:47"},"returnParameters":{"id":8929,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8928,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8954,"src":"499:7:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8927,"name":"uint256","nodeType":"ElementaryTypeName","src":"499:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"498:9:47"},"scope":8955,"src":"413:268:47","stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"scope":8956,"src":"244:439:47","usedErrors":[]}],"src":"33:651:47"},"id":47},"contracts/MyPaymaster.sol":{"ast":{"absolutePath":"contracts/MyPaymaster.sol","exportedSymbols":{"ACCOUNT_CODE_STORAGE_SYSTEM_CONTRACT":[969],"BOOTLOADER_FORMAL_ADDRESS":[958],"BOOTLOADER_UTILITIES":[1084],"BYTECODE_COMPRESSOR_CONTRACT":[1103],"BootloaderUtilities":[905],"CREATE2_PREFIX":[1119],"CREATE_PREFIX":[1123],"CURRENT_MAX_PRECOMPILE_ADDRESS":[947],"DEPLOYER_SYSTEM_CONTRACT":[1013],"ECRECOVER_SYSTEM_CONTRACT":[931],"ETH_TOKEN_SYSTEM_CONTRACT":[1051],"EVENT_WRITER_CONTRACT":[1092],"ExecutionResult":[1577],"FORCE_DEPLOYER":[1021],"IAccountCodeStorage":[1166],"IBytecodeCompressor":[1192],"IContractDeployer":[1327],"IERC20":[6414],"IEthToken":[1400],"IImmutableSimulator":[1426],"IKnownCodesStorage":[1459],"IL1Messenger":[1477],"IMMUTABLE_SIMULATOR_SYSTEM_CONTRACT":[1002],"INonceHolder":[1571],"IPaymaster":[1616],"IPaymasterFlow":[1634],"ISystemContext":[1704],"ImmutableData":[1407],"KECCAK256_SYSTEM_CONTRACT":[1059],"KNOWN_CODE_STORAGE_CONTRACT":[991],"L1_MESSENGER_CONTRACT":[1032],"MAX_MSG_VALUE":[1115],"MAX_SYSTEM_CONTRACT_ADDRESS":[925],"MSG_VALUE_SIMULATOR_IS_SYSTEM_BIT":[1107],"MSG_VALUE_SYSTEM_CONTRACT":[1040],"MyPaymaster":[9188],"NONCE_HOLDER_SYSTEM_CONTRACT":[980],"PAYMASTER_VALIDATION_SUCCESS_MAGIC":[1582],"SHA256_SYSTEM_CONTRACT":[937],"SYSTEM_CONTEXT_CONTRACT":[1073],"SYSTEM_CONTRACTS_OFFSET":[921],"Transaction":[3746],"TransactionHelper":[4646]},"id":9189,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":8957,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:48"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"@openzeppelin/contracts/token/ERC20/IERC20.sol","id":8958,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":9189,"sourceUnit":6415,"src":"57:56:48","symbolAliases":[],"unitAlias":""},{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymaster.sol","file":"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymaster.sol","id":8962,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":9189,"sourceUnit":1617,"src":"115:155:48","symbolAliases":[{"foreign":{"id":8959,"name":"IPaymaster","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1616,"src":"123:10:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":8960,"name":"ExecutionResult","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1577,"src":"135:15:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":8961,"name":"PAYMASTER_VALIDATION_SUCCESS_MAGIC","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1582,"src":"152:34:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymasterFlow.sol","file":"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymasterFlow.sol","id":8964,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":9189,"sourceUnit":1635,"src":"271:110:48","symbolAliases":[{"foreign":{"id":8963,"name":"IPaymasterFlow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1634,"src":"279:14:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/libraries/TransactionHelper.sol","file":"@matterlabs/zksync-contracts/l2/system-contracts/libraries/TransactionHelper.sol","id":8967,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":9189,"sourceUnit":4647,"src":"382:128:48","symbolAliases":[{"foreign":{"id":8965,"name":"TransactionHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4646,"src":"390:17:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":8966,"name":"Transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3746,"src":"409:11:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@matterlabs/zksync-contracts/l2/system-contracts/Constants.sol","file":"@matterlabs/zksync-contracts/l2/system-contracts/Constants.sol","id":8968,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":9189,"sourceUnit":1124,"src":"512:72:48","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":8969,"name":"IPaymaster","nameLocations":["610:10:48"],"nodeType":"IdentifierPath","referencedDeclaration":1616,"src":"610:10:48"},"id":8970,"nodeType":"InheritanceSpecifier","src":"610:10:48"}],"canonicalName":"MyPaymaster","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":9188,"linearizedBaseContracts":[9188,1616],"name":"MyPaymaster","nameLocation":"595:11:48","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":8973,"mutability":"constant","name":"PRICE_FOR_PAYING_FEES","nameLocation":"644:21:48","nodeType":"VariableDeclaration","scope":9188,"src":"627:42:48","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8971,"name":"uint256","nodeType":"ElementaryTypeName","src":"627:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":8972,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"668:1:48","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"constant":false,"functionSelector":"85fa292f","id":8975,"mutability":"mutable","name":"allowedToken","nameLocation":"691:12:48","nodeType":"VariableDeclaration","scope":9188,"src":"676:27:48","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8974,"name":"address","nodeType":"ElementaryTypeName","src":"676:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"body":{"id":8986,"nodeType":"Block","src":"736:212:48","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":8981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":8978,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"767:3:48","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"771:6:48","memberName":"sender","nodeType":"MemberAccess","src":"767:10:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":8980,"name":"BOOTLOADER_FORMAL_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":958,"src":"781:25:48","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"767:39:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f6e6c7920626f6f746c6f616465722063616e2063616c6c2074686973206d6574686f64","id":8982,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"820:38:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_c8a488028c5a2264f0ed659fbdf638b00e0df9eb4efe8fd49a21a57ed77d92a4","typeString":"literal_string \"Only bootloader can call this method\""},"value":"Only bootloader can call this method"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c8a488028c5a2264f0ed659fbdf638b00e0df9eb4efe8fd49a21a57ed77d92a4","typeString":"literal_string \"Only bootloader can call this method\""}],"id":8977,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"746:7:48","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8983,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"746:122:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8984,"nodeType":"ExpressionStatement","src":"746:122:48"},{"id":8985,"nodeType":"PlaceholderStatement","src":"940:1:48"}]},"id":8987,"name":"onlyBootloader","nameLocation":"719:14:48","nodeType":"ModifierDefinition","parameters":{"id":8976,"nodeType":"ParameterList","parameters":[],"src":"733:2:48"},"src":"710:238:48","virtual":false,"visibility":"internal"},{"body":{"id":8996,"nodeType":"Block","src":"982:38:48","statements":[{"expression":{"id":8994,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8992,"name":"allowedToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8975,"src":"992:12:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8993,"name":"_erc20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8989,"src":"1007:6:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"992:21:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":8995,"nodeType":"ExpressionStatement","src":"992:21:48"}]},"id":8997,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":8990,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8989,"mutability":"mutable","name":"_erc20","nameLocation":"974:6:48","nodeType":"VariableDeclaration","scope":8997,"src":"966:14:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8988,"name":"address","nodeType":"ElementaryTypeName","src":"966:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"965:16:48"},"returnParameters":{"id":8991,"nodeType":"ParameterList","parameters":[],"src":"982:0:48"},"scope":9188,"src":"954:66:48","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[1597],"body":{"id":9163,"nodeType":"Block","src":"1218:2628:48","statements":[{"expression":{"id":9013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9011,"name":"magic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9007,"src":"1291:5:48","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":9012,"name":"PAYMASTER_VALIDATION_SUCCESS_MAGIC","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1582,"src":"1299:34:48","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"1291:42:48","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":9014,"nodeType":"ExpressionStatement","src":"1291:42:48"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9020,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":9016,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9004,"src":"1364:12:48","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":9017,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1377:14:48","memberName":"paymasterInput","nodeType":"MemberAccess","referencedDeclaration":3743,"src":"1364:27:48","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":9018,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1392:6:48","memberName":"length","nodeType":"MemberAccess","src":"1364:34:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"34","id":9019,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1402:1:48","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"1364:39:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"546865207374616e64617264207061796d617374657220696e707574206d757374206265206174206c656173742034206279746573206c6f6e67","id":9021,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1417:60:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_c1e1bc8cb13cedbdf3fcc3a0b7371b00ed04219012114fb30a8e180e2b185afb","typeString":"literal_string \"The standard paymaster input must be at least 4 bytes long\""},"value":"The standard paymaster input must be at least 4 bytes long"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c1e1bc8cb13cedbdf3fcc3a0b7371b00ed04219012114fb30a8e180e2b185afb","typeString":"literal_string \"The standard paymaster input must be at least 4 bytes long\""}],"id":9015,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1343:7:48","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9022,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1343:144:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9023,"nodeType":"ExpressionStatement","src":"1343:144:48"},{"assignments":[9025],"declarations":[{"constant":false,"id":9025,"mutability":"mutable","name":"paymasterInputSelector","nameLocation":"1505:22:48","nodeType":"VariableDeclaration","scope":9163,"src":"1498:29:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":9024,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1498:6:48","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"id":9034,"initialValue":{"arguments":[{"baseExpression":{"expression":{"id":9028,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9004,"src":"1550:12:48","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":9029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1563:14:48","memberName":"paymasterInput","nodeType":"MemberAccess","referencedDeclaration":3743,"src":"1550:27:48","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"endExpression":{"hexValue":"34","id":9031,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1580:1:48","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"id":9032,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"1550:32:48","startExpression":{"hexValue":"30","id":9030,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1578:1:48","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}],"id":9027,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1530:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":9026,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1530:6:48","typeDescriptions":{}}},"id":9033,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1530:62:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"VariableDeclarationStatement","src":"1498:94:48"},{"condition":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":9039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9035,"name":"paymasterInputSelector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9025,"src":"1606:22:48","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":9036,"name":"IPaymasterFlow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1634,"src":"1632:14:48","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPaymasterFlow_$1634_$","typeString":"type(contract IPaymasterFlow)"}},"id":9037,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1647:13:48","memberName":"approvalBased","nodeType":"MemberAccess","referencedDeclaration":1633,"src":"1632:28:48","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$returns$__$","typeString":"function IPaymasterFlow.approvalBased(address,uint256,bytes calldata)"}},"id":9038,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1661:8:48","memberName":"selector","nodeType":"MemberAccess","src":"1632:37:48","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"1606:63:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":9161,"nodeType":"Block","src":"3779:61:48","statements":[{"expression":{"arguments":[{"hexValue":"556e737570706f72746564207061796d617374657220666c6f77","id":9158,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3800:28:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_f918f24cd770c456edf65ef5fed4f48b9bf4355278a3ecfd4f0ce05531705de0","typeString":"literal_string \"Unsupported paymaster flow\""},"value":"Unsupported paymaster flow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f918f24cd770c456edf65ef5fed4f48b9bf4355278a3ecfd4f0ce05531705de0","typeString":"literal_string \"Unsupported paymaster flow\""}],"id":9157,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3793:6:48","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":9159,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3793:36:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9160,"nodeType":"ExpressionStatement","src":"3793:36:48"}]},"id":9162,"nodeType":"IfStatement","src":"1602:2238:48","trueBody":{"id":9156,"nodeType":"Block","src":"1671:2102:48","statements":[{"assignments":[9041,9043,9045],"declarations":[{"constant":false,"id":9041,"mutability":"mutable","name":"token","nameLocation":"1838:5:48","nodeType":"VariableDeclaration","scope":9156,"src":"1830:13:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9040,"name":"address","nodeType":"ElementaryTypeName","src":"1830:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9043,"mutability":"mutable","name":"amount","nameLocation":"1853:6:48","nodeType":"VariableDeclaration","scope":9156,"src":"1845:14:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9042,"name":"uint256","nodeType":"ElementaryTypeName","src":"1845:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9045,"mutability":"mutable","name":"data","nameLocation":"1874:4:48","nodeType":"VariableDeclaration","scope":9156,"src":"1861:17:48","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9044,"name":"bytes","nodeType":"ElementaryTypeName","src":"1861:5:48","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":9060,"initialValue":{"arguments":[{"baseExpression":{"expression":{"id":9048,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9004,"src":"1910:12:48","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":9049,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1923:14:48","memberName":"paymasterInput","nodeType":"MemberAccess","referencedDeclaration":3743,"src":"1910:27:48","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":9051,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"1910:31:48","startExpression":{"hexValue":"34","id":9050,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1938:1:48","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}},{"components":[{"id":9053,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1960:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9052,"name":"address","nodeType":"ElementaryTypeName","src":"1960:7:48","typeDescriptions":{}}},{"id":9055,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1969:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":9054,"name":"uint256","nodeType":"ElementaryTypeName","src":"1969:7:48","typeDescriptions":{}}},{"id":9057,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1978:5:48","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":9056,"name":"bytes","nodeType":"ElementaryTypeName","src":"1978:5:48","typeDescriptions":{}}}],"id":9058,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1959:25:48","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_address_$_$_t_type$_t_uint256_$_$_t_type$_t_bytes_storage_ptr_$_$","typeString":"tuple(type(address),type(uint256),type(bytes storage pointer))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"},{"typeIdentifier":"t_tuple$_t_type$_t_address_$_$_t_type$_t_uint256_$_$_t_type$_t_bytes_storage_ptr_$_$","typeString":"tuple(type(address),type(uint256),type(bytes storage pointer))"}],"expression":{"id":9046,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1882:3:48","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9047,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1886:6:48","memberName":"decode","nodeType":"MemberAccess","src":"1882:10:48","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":9059,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1882:116:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_payable_$_t_uint256_$_t_bytes_memory_ptr_$","typeString":"tuple(address payable,uint256,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"1829:169:48"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":9064,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9062,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9041,"src":"2071:5:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":9063,"name":"allowedToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8975,"src":"2080:12:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2071:21:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e76616c696420746f6b656e","id":9065,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2094:15:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_5e70ebd1d4072d337a7fabaa7bda70fa2633d6e3f89d5cb725a16b10d07e54c6","typeString":"literal_string \"Invalid token\""},"value":"Invalid token"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5e70ebd1d4072d337a7fabaa7bda70fa2633d6e3f89d5cb725a16b10d07e54c6","typeString":"literal_string \"Invalid token\""}],"id":9061,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2063:7:48","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9066,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2063:47:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9067,"nodeType":"ExpressionStatement","src":"2063:47:48"},{"assignments":[9069],"declarations":[{"constant":false,"id":9069,"mutability":"mutable","name":"userAddress","nameLocation":"2202:11:48","nodeType":"VariableDeclaration","scope":9156,"src":"2194:19:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9068,"name":"address","nodeType":"ElementaryTypeName","src":"2194:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":9078,"initialValue":{"arguments":[{"arguments":[{"expression":{"id":9074,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9004,"src":"2232:12:48","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":9075,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2245:4:48","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":3714,"src":"2232:17:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9073,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2224:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":9072,"name":"uint160","nodeType":"ElementaryTypeName","src":"2224:7:48","typeDescriptions":{}}},"id":9076,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2224:26:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":9071,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2216:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9070,"name":"address","nodeType":"ElementaryTypeName","src":"2216:7:48","typeDescriptions":{}}},"id":9077,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2216:35:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2194:57:48"},{"assignments":[9080],"declarations":[{"constant":false,"id":9080,"mutability":"mutable","name":"thisAddress","nameLocation":"2274:11:48","nodeType":"VariableDeclaration","scope":9156,"src":"2266:19:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9079,"name":"address","nodeType":"ElementaryTypeName","src":"2266:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":9085,"initialValue":{"arguments":[{"id":9083,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2296:4:48","typeDescriptions":{"typeIdentifier":"t_contract$_MyPaymaster_$9188","typeString":"contract MyPaymaster"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MyPaymaster_$9188","typeString":"contract MyPaymaster"}],"id":9082,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2288:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9081,"name":"address","nodeType":"ElementaryTypeName","src":"2288:7:48","typeDescriptions":{}}},"id":9084,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2288:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2266:35:48"},{"assignments":[9087],"declarations":[{"constant":false,"id":9087,"mutability":"mutable","name":"providedAllowance","nameLocation":"2324:17:48","nodeType":"VariableDeclaration","scope":9156,"src":"2316:25:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9086,"name":"uint256","nodeType":"ElementaryTypeName","src":"2316:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9095,"initialValue":{"arguments":[{"id":9092,"name":"userAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9069,"src":"2385:11:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9093,"name":"thisAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9080,"src":"2414:11:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":9089,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9041,"src":"2351:5:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":9088,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6414,"src":"2344:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$6414_$","typeString":"type(contract IERC20)"}},"id":9090,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2344:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6414","typeString":"contract IERC20"}},"id":9091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2358:9:48","memberName":"allowance","nodeType":"MemberAccess","referencedDeclaration":6391,"src":"2344:23:48","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":9094,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2344:95:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2316:123:48"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9097,"name":"providedAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9087,"src":"2478:17:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":9098,"name":"PRICE_FOR_PAYING_FEES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8973,"src":"2499:21:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2478:42:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4d696e20616c6c6f77616e636520746f6f206c6f77","id":9100,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2538:23:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_18cf27683ecb996d76402e357f7b67a3641c840bc93653bfb2bf490d58786b57","typeString":"literal_string \"Min allowance too low\""},"value":"Min allowance too low"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_18cf27683ecb996d76402e357f7b67a3641c840bc93653bfb2bf490d58786b57","typeString":"literal_string \"Min allowance too low\""}],"id":9096,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2453:7:48","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9101,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2453:122:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9102,"nodeType":"ExpressionStatement","src":"2453:122:48"},{"assignments":[9104],"declarations":[{"constant":false,"id":9104,"mutability":"mutable","name":"requiredETH","nameLocation":"2783:11:48","nodeType":"VariableDeclaration","scope":9156,"src":"2775:19:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9103,"name":"uint256","nodeType":"ElementaryTypeName","src":"2775:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9110,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9109,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":9105,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9004,"src":"2797:12:48","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":9106,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2810:8:48","memberName":"gasLimit","nodeType":"MemberAccess","referencedDeclaration":3718,"src":"2797:21:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":9107,"name":"_transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9004,"src":"2833:12:48","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction calldata"}},"id":9108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2846:12:48","memberName":"maxFeePerGas","nodeType":"MemberAccess","referencedDeclaration":3722,"src":"2833:25:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2797:61:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2775:83:48"},{"clauses":[{"block":{"id":9119,"nodeType":"Block","src":"2962:2:48","statements":[]},"errorName":"","id":9120,"nodeType":"TryCatchClause","src":"2962:2:48"},{"block":{"id":9136,"nodeType":"Block","src":"2999:477:48","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":9124,"name":"revertReason","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9122,"src":"3188:12:48","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":9125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3201:6:48","memberName":"length","nodeType":"MemberAccess","src":"3188:19:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"34","id":9126,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3211:1:48","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"3188:24:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":9134,"nodeType":"Block","src":"3313:149:48","statements":[{"AST":{"nodeType":"YulBlock","src":"3344:100:48","statements":[{"expression":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3381:4:48","type":"","value":"0x20"},{"name":"revertReason","nodeType":"YulIdentifier","src":"3387:12:48"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3377:3:48"},"nodeType":"YulFunctionCall","src":"3377:23:48"},{"arguments":[{"name":"revertReason","nodeType":"YulIdentifier","src":"3408:12:48"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3402:5:48"},"nodeType":"YulFunctionCall","src":"3402:19:48"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3370:6:48"},"nodeType":"YulFunctionCall","src":"3370:52:48"},"nodeType":"YulExpressionStatement","src":"3370:52:48"}]},"evmVersion":"paris","externalReferences":[{"declaration":9122,"isOffset":false,"isSlot":false,"src":"3387:12:48","valueSize":1},{"declaration":9122,"isOffset":false,"isSlot":false,"src":"3408:12:48","valueSize":1}],"id":9133,"nodeType":"InlineAssembly","src":"3335:109:48"}]},"id":9135,"nodeType":"IfStatement","src":"3184:278:48","trueBody":{"id":9132,"nodeType":"Block","src":"3214:93:48","statements":[{"expression":{"arguments":[{"hexValue":"4661696c656420746f207472616e7366657246726f6d2066726f6d20757365727327206163636f756e74","id":9129,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3243:44:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_bebb17e752009a3cdaecc996c1c55cdfbd61c82bec239df96addc05467b9e622","typeString":"literal_string \"Failed to transferFrom from users' account\""},"value":"Failed to transferFrom from users' account"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_bebb17e752009a3cdaecc996c1c55cdfbd61c82bec239df96addc05467b9e622","typeString":"literal_string \"Failed to transferFrom from users' account\""}],"id":9128,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3236:6:48","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":9130,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3236:52:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9131,"nodeType":"ExpressionStatement","src":"3236:52:48"}]}}]},"errorName":"","id":9137,"nodeType":"TryCatchClause","parameters":{"id":9123,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9122,"mutability":"mutable","name":"revertReason","nameLocation":"2985:12:48","nodeType":"VariableDeclaration","scope":9137,"src":"2972:25:48","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9121,"name":"bytes","nodeType":"ElementaryTypeName","src":"2972:5:48","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2971:27:48"},"src":"2965:511:48"}],"externalCall":{"arguments":[{"id":9115,"name":"userAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9069,"src":"2916:11:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9116,"name":"thisAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9080,"src":"2929:11:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9117,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9043,"src":"2942:6:48","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":9112,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9041,"src":"2896:5:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":9111,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6414,"src":"2889:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$6414_$","typeString":"type(contract IERC20)"}},"id":9113,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2889:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6414","typeString":"contract IERC20"}},"id":9114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2903:12:48","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":6413,"src":"2889:26:48","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":9118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2889:60:48","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9138,"nodeType":"TryStatement","src":"2873:603:48"},{"assignments":[9140,null],"declarations":[{"constant":false,"id":9140,"mutability":"mutable","name":"success","nameLocation":"3584:7:48","nodeType":"VariableDeclaration","scope":9156,"src":"3579:12:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9139,"name":"bool","nodeType":"ElementaryTypeName","src":"3579:4:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":9150,"initialValue":{"arguments":[{"hexValue":"","id":9148,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3683:2:48","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":9143,"name":"BOOTLOADER_FORMAL_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":958,"src":"3605:25:48","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":9142,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3597:8:48","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":9141,"name":"address","nodeType":"ElementaryTypeName","src":"3597:8:48","stateMutability":"payable","typeDescriptions":{}}},"id":9144,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3597:34:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":9145,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3632:4:48","memberName":"call","nodeType":"MemberAccess","src":"3597:39:48","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":9147,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":9146,"name":"requiredETH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9104,"src":"3657:11:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"3597:85:48","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":9149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3597:89:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"3578:108:48"},{"expression":{"arguments":[{"id":9152,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9140,"src":"3708:7:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4661696c656420746f207472616e736665722066756e647320746f2074686520626f6f746c6f61646572","id":9153,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3717:44:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_8b798862e81489aa8329b6c024a1c61a468bff5770a4c169bdd1bb4195aa53e2","typeString":"literal_string \"Failed to transfer funds to the bootloader\""},"value":"Failed to transfer funds to the bootloader"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8b798862e81489aa8329b6c024a1c61a468bff5770a4c169bdd1bb4195aa53e2","typeString":"literal_string \"Failed to transfer funds to the bootloader\""}],"id":9151,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3700:7:48","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3700:62:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9155,"nodeType":"ExpressionStatement","src":"3700:62:48"}]}}]},"functionSelector":"038a24bc","id":9164,"implemented":true,"kind":"function","modifiers":[],"name":"validateAndPayForPaymasterTransaction","nameLocation":"1035:37:48","nodeType":"FunctionDefinition","parameters":{"id":9005,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8999,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9164,"src":"1082:7:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8998,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1082:7:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":9001,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9164,"src":"1099:7:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9000,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1099:7:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":9004,"mutability":"mutable","name":"_transaction","nameLocation":"1137:12:48","nodeType":"VariableDeclaration","scope":9164,"src":"1116:33:48","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction"},"typeName":{"id":9003,"nodeType":"UserDefinedTypeName","pathNode":{"id":9002,"name":"Transaction","nameLocations":["1116:11:48"],"nodeType":"IdentifierPath","referencedDeclaration":3746,"src":"1116:11:48"},"referencedDeclaration":3746,"src":"1116:11:48","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_storage_ptr","typeString":"struct Transaction"}},"visibility":"internal"}],"src":"1072:83:48"},"returnParameters":{"id":9010,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9007,"mutability":"mutable","name":"magic","nameLocation":"1189:5:48","nodeType":"VariableDeclaration","scope":9164,"src":"1182:12:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":9006,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1182:6:48","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":9009,"mutability":"mutable","name":"context","nameLocation":"1209:7:48","nodeType":"VariableDeclaration","scope":9164,"src":"1196:20:48","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9008,"name":"bytes","nodeType":"ElementaryTypeName","src":"1196:5:48","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1181:36:48"},"scope":9188,"src":"1026:2820:48","stateMutability":"payable","virtual":false,"visibility":"external"},{"baseFunctions":[1615],"body":{"id":9182,"nodeType":"Block","src":"4087:49:48","statements":[]},"functionSelector":"817b17f0","id":9183,"implemented":true,"kind":"function","modifiers":[],"name":"postTransaction","nameLocation":"3861:15:48","nodeType":"FunctionDefinition","overrides":{"id":9180,"nodeType":"OverrideSpecifier","overrides":[],"src":"4078:8:48"},"parameters":{"id":9179,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9166,"mutability":"mutable","name":"_context","nameLocation":"3901:8:48","nodeType":"VariableDeclaration","scope":9183,"src":"3886:23:48","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":9165,"name":"bytes","nodeType":"ElementaryTypeName","src":"3886:5:48","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":9169,"mutability":"mutable","name":"_transaction","nameLocation":"3940:12:48","nodeType":"VariableDeclaration","scope":9183,"src":"3919:33:48","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_calldata_ptr","typeString":"struct Transaction"},"typeName":{"id":9168,"nodeType":"UserDefinedTypeName","pathNode":{"id":9167,"name":"Transaction","nameLocations":["3919:11:48"],"nodeType":"IdentifierPath","referencedDeclaration":3746,"src":"3919:11:48"},"referencedDeclaration":3746,"src":"3919:11:48","typeDescriptions":{"typeIdentifier":"t_struct$_Transaction_$3746_storage_ptr","typeString":"struct Transaction"}},"visibility":"internal"},{"constant":false,"id":9171,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9183,"src":"3962:7:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9170,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3962:7:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":9173,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9183,"src":"3979:7:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9172,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3979:7:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":9176,"mutability":"mutable","name":"_txResult","nameLocation":"4012:9:48","nodeType":"VariableDeclaration","scope":9183,"src":"3996:25:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ExecutionResult_$1577","typeString":"enum ExecutionResult"},"typeName":{"id":9175,"nodeType":"UserDefinedTypeName","pathNode":{"id":9174,"name":"ExecutionResult","nameLocations":["3996:15:48"],"nodeType":"IdentifierPath","referencedDeclaration":1577,"src":"3996:15:48"},"referencedDeclaration":1577,"src":"3996:15:48","typeDescriptions":{"typeIdentifier":"t_enum$_ExecutionResult_$1577","typeString":"enum ExecutionResult"}},"visibility":"internal"},{"constant":false,"id":9178,"mutability":"mutable","name":"_maxRefundedGas","nameLocation":"4039:15:48","nodeType":"VariableDeclaration","scope":9183,"src":"4031:23:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9177,"name":"uint256","nodeType":"ElementaryTypeName","src":"4031:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3876:184:48"},"returnParameters":{"id":9181,"nodeType":"ParameterList","parameters":[],"src":"4087:0:48"},"scope":9188,"src":"3852:284:48","stateMutability":"payable","virtual":false,"visibility":"external"},{"body":{"id":9186,"nodeType":"Block","src":"4169:2:48","statements":[]},"id":9187,"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":9184,"nodeType":"ParameterList","parameters":[],"src":"4149:2:48"},"returnParameters":{"id":9185,"nodeType":"ParameterList","parameters":[],"src":"4169:0:48"},"scope":9188,"src":"4142:29:48","stateMutability":"payable","virtual":false,"visibility":"external"}],"scope":9189,"src":"586:3587:48","usedErrors":[]}],"src":"32:4142:48"},"id":48},"contracts/Root.sol":{"ast":{"absolutePath":"contracts/Root.sol","exportedSymbols":{"Root":[9230]},"id":9231,"license":"Unlicense","nodeType":"SourceUnit","nodes":[{"id":9190,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"37:23:49"},{"abstract":false,"baseContracts":[],"canonicalName":"Root","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":9230,"linearizedBaseContracts":[9230],"name":"Root","nameLocation":"71:4:49","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":9193,"mutability":"mutable","name":"greeting","nameLocation":"97:8:49","nodeType":"VariableDeclaration","scope":9230,"src":"82:40:49","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":9191,"name":"string","nodeType":"ElementaryTypeName","src":"82:6:49","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"48692066726f6d20526f6f74","id":9192,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"108:14:49","typeDescriptions":{"typeIdentifier":"t_stringliteral_3832f93bf52b8a9c37c023b5e5542e7e5465747acaac435e6a8fc7f72cbc4f23","typeString":"literal_string \"Hi from Root\""},"value":"Hi from Root"},"visibility":"private"},{"anonymous":false,"eventSelector":"4dabe8361a35a905ec9d530e301d2e5c6cf44c65cdd7768f522a77a373436da9","id":9197,"name":"SetGreeting","nameLocation":"135:11:49","nodeType":"EventDefinition","parameters":{"id":9196,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9195,"indexed":false,"mutability":"mutable","name":"greeting","nameLocation":"154:8:49","nodeType":"VariableDeclaration","scope":9197,"src":"147:15:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9194,"name":"string","nodeType":"ElementaryTypeName","src":"147:6:49","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"146:17:49"},"src":"129:35:49"},{"body":{"id":9206,"nodeType":"Block","src":"207:37:49","statements":[{"expression":{"id":9204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9202,"name":"greeting","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9193,"src":"217:8:49","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":9203,"name":"_greeting","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9199,"src":"228:9:49","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"217:20:49","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":9205,"nodeType":"ExpressionStatement","src":"217:20:49"}]},"id":9207,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":9200,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9199,"mutability":"mutable","name":"_greeting","nameLocation":"196:9:49","nodeType":"VariableDeclaration","scope":9207,"src":"182:23:49","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9198,"name":"string","nodeType":"ElementaryTypeName","src":"182:6:49","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"181:25:49"},"returnParameters":{"id":9201,"nodeType":"ParameterList","parameters":[],"src":"207:0:49"},"scope":9230,"src":"170:74:49","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":9214,"nodeType":"Block","src":"303:32:49","statements":[{"expression":{"id":9212,"name":"greeting","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9193,"src":"320:8:49","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":9211,"id":9213,"nodeType":"Return","src":"313:15:49"}]},"functionSelector":"cfae3217","id":9215,"implemented":true,"kind":"function","modifiers":[],"name":"greet","nameLocation":"259:5:49","nodeType":"FunctionDefinition","parameters":{"id":9208,"nodeType":"ParameterList","parameters":[],"src":"264:2:49"},"returnParameters":{"id":9211,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9210,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9215,"src":"288:13:49","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9209,"name":"string","nodeType":"ElementaryTypeName","src":"288:6:49","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"287:15:49"},"scope":9230,"src":"250:85:49","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":9228,"nodeType":"Block","src":"394:75:49","statements":[{"expression":{"id":9222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9220,"name":"greeting","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9193,"src":"404:8:49","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":9221,"name":"_greeting","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9217,"src":"415:9:49","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"404:20:49","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":9223,"nodeType":"ExpressionStatement","src":"404:20:49"},{"eventCall":{"arguments":[{"id":9225,"name":"_greeting","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9217,"src":"452:9:49","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":9224,"name":"SetGreeting","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9197,"src":"440:11:49","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":9226,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"440:22:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9227,"nodeType":"EmitStatement","src":"435:27:49"}]},"functionSelector":"a4136862","id":9229,"implemented":true,"kind":"function","modifiers":[],"name":"setGreeting","nameLocation":"350:11:49","nodeType":"FunctionDefinition","parameters":{"id":9218,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9217,"mutability":"mutable","name":"_greeting","nameLocation":"376:9:49","nodeType":"VariableDeclaration","scope":9229,"src":"362:23:49","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9216,"name":"string","nodeType":"ElementaryTypeName","src":"362:6:49","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"361:25:49"},"returnParameters":{"id":9219,"nodeType":"ParameterList","parameters":[],"src":"394:0:49"},"scope":9230,"src":"341:128:49","stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"scope":9231,"src":"62:409:49","usedErrors":[]}],"src":"37:434:49"},"id":49}},"contracts":{"@matterlabs/zksync-contracts/l2/system-contracts/BootloaderUtilities.sol":{"BootloaderUtilities":{"abi":[{"inputs":[{"components":[{"internalType":"uint256","name":"txType","type":"uint256"},{"internalType":"uint256","name":"from","type":"uint256"},{"internalType":"uint256","name":"to","type":"uint256"},{"internalType":"uint256","name":"gasLimit","type":"uint256"},{"internalType":"uint256","name":"gasPerPubdataByteLimit","type":"uint256"},{"internalType":"uint256","name":"maxFeePerGas","type":"uint256"},{"internalType":"uint256","name":"maxPriorityFeePerGas","type":"uint256"},{"internalType":"uint256","name":"paymaster","type":"uint256"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256[4]","name":"reserved","type":"uint256[4]"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"bytes32[]","name":"factoryDeps","type":"bytes32[]"},{"internalType":"bytes","name":"paymasterInput","type":"bytes"},{"internalType":"bytes","name":"reservedDynamic","type":"bytes"}],"internalType":"struct Transaction","name":"_transaction","type":"tuple"}],"name":"getTransactionHashes","outputs":[{"internalType":"bytes32","name":"txHash","type":"bytes32"},{"internalType":"bytes32","name":"signedTxHash","type":"bytes32"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60808060405234610016576114e4908161001c8239f35b600080fdfe6080604052600436101561001257600080fd5b6000803560e01c63ebe4a3d71461002857600080fd5b346101205760031960203682011261012357600435916001600160401b0383116101205761026083600401928436030112610120575061006781610e4a565b918135607181036100ad5750610088610094926101e461008e930190610127565b90610a6a565b826101b5565b602081519101205b604080519182526020820192909252f35b9050806100c357506100be906103f5565b61009c565b600281036100d557506100be90610889565b6001036100e5576100be90610671565b60405162461bcd60e51b8152602060048201526013602482015272556e737570706f72746564207478207479706560681b6044820152606490fd5b80fd5b5080fd5b903590601e198136030182121561015957018035906001600160401b0382116101595760200191813603831361015957565b600080fd5b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b0382111761018f57604052565b61015e565b90601f801991011681019081106001600160401b0382111761018f57604052565b9190604051926020840152604083015260408252606082018281106001600160401b0382111761018f57604052565b9081519160005b8381106101fc575050016000815290565b80602080928401015181850152016101eb565b61023f9061023161022b949360405195869360208501906101e4565b906101e4565b03601f198101845283610194565b565b634e487b7160e01b600052603260045260246000fd5b90156102605790565b610241565b90604010156102605760400190565b6001600160401b03811161018f57601f01601f191660200190565b6040519061029c82610174565b60018252608160f81b6020830152565b906020116101595790602090565b906040116101595760200190602090565b3590602081106102d9575090565b6000199060200360031b1b1690565b156102ef57565b60405162461bcd60e51b815260206004820152600f60248201526e496e76616c696420762076616c756560881b6044820152606490fd5b634e487b7160e01b600052601160045260246000fd5b908160011b918083046002149015171561035257565b610326565b600801908160081161035257565b9190820180921161035257565b989694919285939b9a989694919b6040519c8d9b60208d01610393916101e4565b61039c916101e4565b6103a5916101e4565b6103ae916101e4565b6103b7916101e4565b6103c0916101e4565b91823701600081526103d1916101e4565b6103da916101e4565b6103e3916101e4565b03601f198101835261023f9083610194565b610403610100820135610bfe565b61042661041360a0840135610bfe565b6104206060850135610bfe565b9061020f565b9161043d60408201356001600160a01b0316610bba565b9061044c610120820135610bfe565b926101c082019160606001600160401b036104678584610127565b9050166001811415600014610598576104809150610c81565b6101e08201956104908784610127565b610499916102ac565b6104a2916102cb565b6104ab90610bfe565b956104b68885610127565b6104bf916102ba565b6104c8916102cb565b6104d190610bfe565b976104dc9085610127565b6104e591610265565b610564999061055c90610519903560f81c601b8114801561058e575b61050a906102e8565b61014088013561056e57610bfe565b976105566105518951855101865101875101885101610538848b610127565b90508d519101018d51018b51016001600160401b031690565b610d32565b96610127565b969095610372565b6020815191012090565b6105899061058361057e4661033c565b610357565b90610365565b610bfe565b50601c8114610501565b506105a38483610127565b600160ff1b916001600160f81b0319916105cf916105c19190610257565b356001600160f81b03191690565b161061048057506105de61028f565b610480565b9261023f9461022b61022b9261022b6102319661022b61022b9c9b976040519d8e9b60208d01906101e4565b601a1981019190821161035257565b969492909897959380926040519a8b99600160f81b60208c015260218b01610645916101e4565b61064e916101e4565b610657916101e4565b9182370160008152610668916101e4565b6103d1916101e4565b6106d161067d46610bfe565b61068b610100840135610bfe565b61069860a0850135610bfe565b6106a56060860135610bfe565b906106bc60408701356001600160a01b0316610bba565b926106cb610120880135610bfe565b946105e3565b6101c082019160606001600160401b036106eb8584610127565b9050169060018214156000146107ec575061070590610c81565b925b61070f610d1e565b6101e083019361071f8585610127565b610728916102ac565b610731916102cb565b61073a90610bfe565b936107458682610127565b61074e916102ba565b610757916102cb565b61076090610bfe565b9561076b9082610127565b61077491610265565b61056497906107da906107a290610589903560f81c601b811480156107e2575b61079d906102e8565b61060f565b956107d461055186518551016107b88488610127565b905089519101018a51018b51018951016001600160401b031690565b93610127565b93909261061e565b50601c8114610794565b9390506107f98183610127565b600160ff1b916001600160f81b031991610817916105c19190610257565b161061070757925061082761028f565b92610707565b9492909695939160405197889660208801610847916101e4565b610850916101e4565b610859916101e4565b610668916101e4565b969492909897959380926040519a8b99600160f91b60208c015260218b01610645916101e4565b6108f661089546610bfe565b6108a3610100840135610bfe565b6108b060c0850135610bfe565b6108bd60a0860135610bfe565b6108ca6060870135610bfe565b916108e160408801356001600160a01b0316610bba565b936108f0610120890135610bfe565b9561082d565b6101c082019160606001600160401b036109108584610127565b9050169060018214156000146109c9575061092a90610c81565b925b610934610d1e565b6101e08301936109448585610127565b61094d916102ac565b610956916102cb565b61095f90610bfe565b9361096a8682610127565b610973916102ba565b61097c916102cb565b61098590610bfe565b956109909082610127565b61099991610265565b61056497906109c1906107a290610589903560f81c601b811480156107e25761079d906102e8565b939092610862565b9390506109d68183610127565b600160ff1b916001600160f81b0319916109f4916105c19190610257565b161061092c579250610a0461028f565b9261092c565b15610a1157565b60405162461bcd60e51b815260206004820152601f60248201527f6b656363616b3235362072657475726e656420696e76616c69642064617461006044820152606490fd5b6020815191015190602081106102d9575090565b905a9160009061ffff928280858161ffeb81fa5080610b16575050610a9463ffffffff3616610e35565b63ffffffff8311610ae657610ae392610ad1928291610ac49060c01b63ffffffff60c01b16600160e01b17610e26565b8161fff6618010fa610b96565b610ade6020825114610a0a565b610a56565b90565b60405162461bcd60e51b81526020600482015260086024820152674f766572666c6f7760c01b6044820152606490fd5b63ffffffff918380868161ffe9878616fa5081018091116103525736039036821161035257610b459116610e35565b610a94565b60405190610b5782610174565b6001825260203681840137565b90610b6e82610274565b610b7b6040519182610194565b8281528092610b8c601f1991610274565b0190602036910137565b15610bb0573d90610ba682610b64565b916000602084013e565b3d806000803e6000fd5b90604051610bc781610174565b60158152602560fa1b602082015260609290921b6bffffffffffffffffffffffff19166021830152565b8051156102605760200190565b906080821015610c3e57610c10610b4a565b9180610c2c5750600160ff1b5b60001a610c2983610bf1565b53565b60f81b6001600160f81b031916610c1d565b610c4782610d9e565b91610c5460028401610b64565b926081810160f81b6001600160f81b03191660001a610c7285610bf1565b53601f0360031b1b6021830152565b6001600160401b031660018114610d08576038811015610cc457610ca3610b4a565b9060800160f81b6001600160f81b03191660001a610cc082610bf1565b5390565b610ccd81610d9e565b90610cda60028301610b64565b9160b8810160f81b6001600160f81b03191660001a610cf884610bf1565b53601f0360031b1b602182015290565b634e487b7160e01b600052600160045260246000fd5b610d26610b4a565b9060c0610c2983610bf1565b6001600160401b0316906038821015610d6a57610d4d610b4a565b9160c00160f81b6001600160f81b03191660001a610c2983610bf1565b610d7382610d9e565b91610d8060028401610b64565b9260f8808201901b6001600160f81b03191660001a610c7285610bf1565b906000916fffffffffffffffffffffffffffffffff8111610e1a575b806001600160401b0360ff9211610e0c575b63ffffffff8111610dfe575b61ffff8111610df0575b11610de957565b9060010190565b60029060101c930192610de2565b60049060201c930192610dd8565b60089060401c930192610dcc565b6010925060801c610dba565b600061ffff8161ffe78194fa50565b600061ffff8161ffe863ffffffff829516fa50565b803580610e5b5750610ae3906111c7565b60718103610e6d5750610ae390610f24565b60028103610e7f5750610ae39061141b565b600103610e8f57610ae39061132e565b60405162461bcd60e51b815260206004820152601760248201527f456e636f64696e6720756e737570706f727465642074780000000000000000006044820152606490fd5b903590601e198136030182121561015957018035906001600160401b03821161015957602001918160051b3603831361015957565b91906001600160fb1b0381116101595760051b809282370190565b611127611133610f6292610f3f6100886101c0830183610127565b61105f610f50610200840184610ed4565b60405197602089019289928491610f09565b0396610f76601f1998898101835282610194565b51902091611053610f8e610088610220870187610127565b6040519485936020850197610120810135906101008101359060e08101359060c0810135908c60a0820135916080810135916060820135916040810135916020820135913590999693909d9c9b9895926101a09b9895926101c08c019f7f848e1bfa1ac4e3576b728bda6721b215c70a7799a5b4866282a71bab954baac88d5260208d015260408c015260608b015260808a015260a089015260c088015260e08701526101008601526101208501526101408401526101608301526101808201520152565b03868101835282610194565b5190209260405160208101906110fc816110f046859190606060808401937fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6e81527f19b453ce45aaaaf3a300f5a9ec95869b4f28ab10430b572ee218c3a6a5e07d6f60208201527fad7c5bef027816a800da1736444fb58a807ef4c9603b7848673f7e3a68eb14a560408201520152565b03848101835282610194565b51902093604051938491602083019687909160429261190160f01b8352600283015260228201520190565b03908101835282610194565b51902090565b9061023f60026111539360405194859160208301906101e4565b61010160f71b815203601d19810185520183610194565b9694919285939998969491996040519a8b9960208b01611189916101e4565b611192916101e4565b61119b916101e4565b6111a4916101e4565b6111ad916101e4565b6111b6916101e4565b91823701600081526103e3916101e4565b610564906111d9610100820135610bfe565b6111e961041360a0840135610bfe565b9161120060408201356001600160a01b0316610bba565b9261120f610120830135610bfe565b6101c083019460606001600160401b036112298887610127565b9050169060018214156000146112ae575061124390610c81565b925b606096610140860135611290575b611288906105566105518951855101865101875101885101611275848b610127565b90508c519101016001600160401b031690565b96909561116a565b96506112886112a66112a146610bfe565b611139565b979050611253565b9390506112bb8786610127565b600160ff1b916001600160f81b0319916112d9916105c19190610257565b16106112455792506112e961028f565b92611245565b929361023f94816113206102319561022b61022b9b9a966040519c8d9a600160f81b60208d015260218c01906101e4565b9182370190600082526101e4565b6105649061133e61067d46610bfe565b6101c082019160606001600160401b036113588584610127565b90501660018114156000146113ad576113719150610c81565b6113a561137c610d1e565b946107d461055186518551016113928488610127565b905089519101016001600160401b031690565b9390926112ef565b506113b88483610127565b600160ff1b916001600160f81b0319916113d6916105c19190610257565b161061137157506113e561028f565b611371565b929361023f94816113206102319561022b61022b9b9a966040519c8d9a600160f91b60208d015260218c01906101e4565b6105649061142b61089546610bfe565b6101c082019160606001600160401b036114458584610127565b90501660018114156000146114715761145e9150610c81565b61146961137c610d1e565b9390926113ea565b5061147c8483610127565b600160ff1b916001600160f81b03199161149a916105c19190610257565b161061145e57506114a961028f565b61145e56fea26469706673582212201ec62201581e0bc2ce1269f0fb33fcd1a9bb5abf856e4634e565726ba47cf39864736f6c63430008120033","opcodes":"PUSH1 0x80 DUP1 PUSH1 0x40 MSTORE CALLVALUE PUSH2 0x16 JUMPI PUSH2 0x14E4 SWAP1 DUP2 PUSH2 0x1C DUP3 CODECOPY RETURN JUMPDEST PUSH1 0x0 DUP1 REVERT INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT ISZERO PUSH2 0x12 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 CALLDATALOAD PUSH1 0xE0 SHR PUSH4 0xEBE4A3D7 EQ PUSH2 0x28 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE PUSH2 0x120 JUMPI PUSH1 0x3 NOT PUSH1 0x20 CALLDATASIZE DUP3 ADD SLT PUSH2 0x123 JUMPI PUSH1 0x4 CALLDATALOAD SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP4 GT PUSH2 0x120 JUMPI PUSH2 0x260 DUP4 PUSH1 0x4 ADD SWAP3 DUP5 CALLDATASIZE SUB ADD SLT PUSH2 0x120 JUMPI POP PUSH2 0x67 DUP2 PUSH2 0xE4A JUMP JUMPDEST SWAP2 DUP2 CALLDATALOAD PUSH1 0x71 DUP2 SUB PUSH2 0xAD JUMPI POP PUSH2 0x88 PUSH2 0x94 SWAP3 PUSH2 0x1E4 PUSH2 0x8E SWAP4 ADD SWAP1 PUSH2 0x127 JUMP JUMPDEST SWAP1 PUSH2 0xA6A JUMP JUMPDEST DUP3 PUSH2 0x1B5 JUMP JUMPDEST PUSH1 0x20 DUP2 MLOAD SWAP2 ADD KECCAK256 JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE RETURN JUMPDEST SWAP1 POP DUP1 PUSH2 0xC3 JUMPI POP PUSH2 0xBE SWAP1 PUSH2 0x3F5 JUMP JUMPDEST PUSH2 0x9C JUMP JUMPDEST PUSH1 0x2 DUP2 SUB PUSH2 0xD5 JUMPI POP PUSH2 0xBE SWAP1 PUSH2 0x889 JUMP JUMPDEST PUSH1 0x1 SUB PUSH2 0xE5 JUMPI PUSH2 0xBE SWAP1 PUSH2 0x671 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH19 0x556E737570706F727465642074782074797065 PUSH1 0x68 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 SWAP1 REVERT JUMPDEST DUP1 REVERT JUMPDEST POP DUP1 REVERT JUMPDEST SWAP1 CALLDATALOAD SWAP1 PUSH1 0x1E NOT DUP2 CALLDATASIZE SUB ADD DUP3 SLT ISZERO PUSH2 0x159 JUMPI ADD DUP1 CALLDATALOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT PUSH2 0x159 JUMPI PUSH1 0x20 ADD SWAP2 DUP2 CALLDATASIZE SUB DUP4 SGT PUSH2 0x159 JUMPI JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 DUP2 ADD SWAP1 DUP2 LT PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT OR PUSH2 0x18F JUMPI PUSH1 0x40 MSTORE JUMP JUMPDEST PUSH2 0x15E JUMP JUMPDEST SWAP1 PUSH1 0x1F DUP1 NOT SWAP2 ADD AND DUP2 ADD SWAP1 DUP2 LT PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT OR PUSH2 0x18F JUMPI PUSH1 0x40 MSTORE JUMP JUMPDEST SWAP2 SWAP1 PUSH1 0x40 MLOAD SWAP3 PUSH1 0x20 DUP5 ADD MSTORE PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x40 DUP3 MSTORE PUSH1 0x60 DUP3 ADD DUP3 DUP2 LT PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT OR PUSH2 0x18F JUMPI PUSH1 0x40 MSTORE JUMP JUMPDEST SWAP1 DUP2 MLOAD SWAP2 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT PUSH2 0x1FC JUMPI POP POP ADD PUSH1 0x0 DUP2 MSTORE SWAP1 JUMP JUMPDEST DUP1 PUSH1 0x20 DUP1 SWAP3 DUP5 ADD ADD MLOAD DUP2 DUP6 ADD MSTORE ADD PUSH2 0x1EB JUMP JUMPDEST PUSH2 0x23F SWAP1 PUSH2 0x231 PUSH2 0x22B SWAP5 SWAP4 PUSH1 0x40 MLOAD SWAP6 DUP7 SWAP4 PUSH1 0x20 DUP6 ADD SWAP1 PUSH2 0x1E4 JUMP JUMPDEST SWAP1 PUSH2 0x1E4 JUMP JUMPDEST SUB PUSH1 0x1F NOT DUP2 ADD DUP5 MSTORE DUP4 PUSH2 0x194 JUMP JUMPDEST JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 ISZERO PUSH2 0x260 JUMPI SWAP1 JUMP JUMPDEST PUSH2 0x241 JUMP JUMPDEST SWAP1 PUSH1 0x40 LT ISZERO PUSH2 0x260 JUMPI PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT PUSH2 0x18F JUMPI PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 PUSH2 0x29C DUP3 PUSH2 0x174 JUMP JUMPDEST PUSH1 0x1 DUP3 MSTORE PUSH1 0x81 PUSH1 0xF8 SHL PUSH1 0x20 DUP4 ADD MSTORE JUMP JUMPDEST SWAP1 PUSH1 0x20 GT PUSH2 0x159 JUMPI SWAP1 PUSH1 0x20 SWAP1 JUMP JUMPDEST SWAP1 PUSH1 0x40 GT PUSH2 0x159 JUMPI PUSH1 0x20 ADD SWAP1 PUSH1 0x20 SWAP1 JUMP JUMPDEST CALLDATALOAD SWAP1 PUSH1 0x20 DUP2 LT PUSH2 0x2D9 JUMPI POP SWAP1 JUMP JUMPDEST PUSH1 0x0 NOT SWAP1 PUSH1 0x20 SUB PUSH1 0x3 SHL SHL AND SWAP1 JUMP JUMPDEST ISZERO PUSH2 0x2EF JUMPI JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH15 0x496E76616C696420762076616C7565 PUSH1 0x88 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 SWAP1 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 DUP2 PUSH1 0x1 SHL SWAP2 DUP1 DUP4 DIV PUSH1 0x2 EQ SWAP1 ISZERO OR ISZERO PUSH2 0x352 JUMPI JUMP JUMPDEST PUSH2 0x326 JUMP JUMPDEST PUSH1 0x8 ADD SWAP1 DUP2 PUSH1 0x8 GT PUSH2 0x352 JUMPI JUMP JUMPDEST SWAP2 SWAP1 DUP3 ADD DUP1 SWAP3 GT PUSH2 0x352 JUMPI JUMP JUMPDEST SWAP9 SWAP7 SWAP5 SWAP2 SWAP3 DUP6 SWAP4 SWAP12 SWAP11 SWAP9 SWAP7 SWAP5 SWAP2 SWAP12 PUSH1 0x40 MLOAD SWAP13 DUP14 SWAP12 PUSH1 0x20 DUP14 ADD PUSH2 0x393 SWAP2 PUSH2 0x1E4 JUMP JUMPDEST PUSH2 0x39C SWAP2 PUSH2 0x1E4 JUMP JUMPDEST PUSH2 0x3A5 SWAP2 PUSH2 0x1E4 JUMP JUMPDEST PUSH2 0x3AE SWAP2 PUSH2 0x1E4 JUMP JUMPDEST PUSH2 0x3B7 SWAP2 PUSH2 0x1E4 JUMP JUMPDEST PUSH2 0x3C0 SWAP2 PUSH2 0x1E4 JUMP JUMPDEST SWAP2 DUP3 CALLDATACOPY ADD PUSH1 0x0 DUP2 MSTORE PUSH2 0x3D1 SWAP2 PUSH2 0x1E4 JUMP JUMPDEST PUSH2 0x3DA SWAP2 PUSH2 0x1E4 JUMP JUMPDEST PUSH2 0x3E3 SWAP2 PUSH2 0x1E4 JUMP JUMPDEST SUB PUSH1 0x1F NOT DUP2 ADD DUP4 MSTORE PUSH2 0x23F SWAP1 DUP4 PUSH2 0x194 JUMP JUMPDEST PUSH2 0x403 PUSH2 0x100 DUP3 ADD CALLDATALOAD PUSH2 0xBFE JUMP JUMPDEST PUSH2 0x426 PUSH2 0x413 PUSH1 0xA0 DUP5 ADD CALLDATALOAD PUSH2 0xBFE JUMP JUMPDEST PUSH2 0x420 PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH2 0xBFE JUMP JUMPDEST SWAP1 PUSH2 0x20F JUMP JUMPDEST SWAP2 PUSH2 0x43D PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xBBA JUMP JUMPDEST SWAP1 PUSH2 0x44C PUSH2 0x120 DUP3 ADD CALLDATALOAD PUSH2 0xBFE JUMP JUMPDEST SWAP3 PUSH2 0x1C0 DUP3 ADD SWAP2 PUSH1 0x60 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB PUSH2 0x467 DUP6 DUP5 PUSH2 0x127 JUMP JUMPDEST SWAP1 POP AND PUSH1 0x1 DUP2 EQ ISZERO PUSH1 0x0 EQ PUSH2 0x598 JUMPI PUSH2 0x480 SWAP2 POP PUSH2 0xC81 JUMP JUMPDEST PUSH2 0x1E0 DUP3 ADD SWAP6 PUSH2 0x490 DUP8 DUP5 PUSH2 0x127 JUMP JUMPDEST PUSH2 0x499 SWAP2 PUSH2 0x2AC JUMP JUMPDEST PUSH2 0x4A2 SWAP2 PUSH2 0x2CB JUMP JUMPDEST PUSH2 0x4AB SWAP1 PUSH2 0xBFE JUMP JUMPDEST SWAP6 PUSH2 0x4B6 DUP9 DUP6 PUSH2 0x127 JUMP JUMPDEST PUSH2 0x4BF SWAP2 PUSH2 0x2BA JUMP JUMPDEST PUSH2 0x4C8 SWAP2 PUSH2 0x2CB JUMP JUMPDEST PUSH2 0x4D1 SWAP1 PUSH2 0xBFE JUMP JUMPDEST SWAP8 PUSH2 0x4DC SWAP1 DUP6 PUSH2 0x127 JUMP JUMPDEST PUSH2 0x4E5 SWAP2 PUSH2 0x265 JUMP JUMPDEST PUSH2 0x564 SWAP10 SWAP1 PUSH2 0x55C SWAP1 PUSH2 0x519 SWAP1 CALLDATALOAD PUSH1 0xF8 SHR PUSH1 0x1B DUP2 EQ DUP1 ISZERO PUSH2 0x58E JUMPI JUMPDEST PUSH2 0x50A SWAP1 PUSH2 0x2E8 JUMP JUMPDEST PUSH2 0x140 DUP9 ADD CALLDATALOAD PUSH2 0x56E JUMPI PUSH2 0xBFE JUMP JUMPDEST SWAP8 PUSH2 0x556 PUSH2 0x551 DUP10 MLOAD DUP6 MLOAD ADD DUP7 MLOAD ADD DUP8 MLOAD ADD DUP9 MLOAD ADD PUSH2 0x538 DUP5 DUP12 PUSH2 0x127 JUMP JUMPDEST SWAP1 POP DUP14 MLOAD SWAP2 ADD ADD DUP14 MLOAD ADD DUP12 MLOAD ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH2 0xD32 JUMP JUMPDEST SWAP7 PUSH2 0x127 JUMP JUMPDEST SWAP7 SWAP1 SWAP6 PUSH2 0x372 JUMP JUMPDEST PUSH1 0x20 DUP2 MLOAD SWAP2 ADD KECCAK256 SWAP1 JUMP JUMPDEST PUSH2 0x589 SWAP1 PUSH2 0x583 PUSH2 0x57E CHAINID PUSH2 0x33C JUMP JUMPDEST PUSH2 0x357 JUMP JUMPDEST SWAP1 PUSH2 0x365 JUMP JUMPDEST PUSH2 0xBFE JUMP JUMPDEST POP PUSH1 0x1C DUP2 EQ PUSH2 0x501 JUMP JUMPDEST POP PUSH2 0x5A3 DUP5 DUP4 PUSH2 0x127 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xFF SHL SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT SWAP2 PUSH2 0x5CF SWAP2 PUSH2 0x5C1 SWAP2 SWAP1 PUSH2 0x257 JUMP JUMPDEST CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 JUMP JUMPDEST AND LT PUSH2 0x480 JUMPI POP PUSH2 0x5DE PUSH2 0x28F JUMP JUMPDEST PUSH2 0x480 JUMP JUMPDEST SWAP3 PUSH2 0x23F SWAP5 PUSH2 0x22B PUSH2 0x22B SWAP3 PUSH2 0x22B PUSH2 0x231 SWAP7 PUSH2 0x22B PUSH2 0x22B SWAP13 SWAP12 SWAP8 PUSH1 0x40 MLOAD SWAP14 DUP15 SWAP12 PUSH1 0x20 DUP14 ADD SWAP1 PUSH2 0x1E4 JUMP JUMPDEST PUSH1 0x1A NOT DUP2 ADD SWAP2 SWAP1 DUP3 GT PUSH2 0x352 JUMPI JUMP JUMPDEST SWAP7 SWAP5 SWAP3 SWAP1 SWAP9 SWAP8 SWAP6 SWAP4 DUP1 SWAP3 PUSH1 0x40 MLOAD SWAP11 DUP12 SWAP10 PUSH1 0x1 PUSH1 0xF8 SHL PUSH1 0x20 DUP13 ADD MSTORE PUSH1 0x21 DUP12 ADD PUSH2 0x645 SWAP2 PUSH2 0x1E4 JUMP JUMPDEST PUSH2 0x64E SWAP2 PUSH2 0x1E4 JUMP JUMPDEST PUSH2 0x657 SWAP2 PUSH2 0x1E4 JUMP JUMPDEST SWAP2 DUP3 CALLDATACOPY ADD PUSH1 0x0 DUP2 MSTORE PUSH2 0x668 SWAP2 PUSH2 0x1E4 JUMP JUMPDEST PUSH2 0x3D1 SWAP2 PUSH2 0x1E4 JUMP JUMPDEST PUSH2 0x6D1 PUSH2 0x67D CHAINID PUSH2 0xBFE JUMP JUMPDEST PUSH2 0x68B PUSH2 0x100 DUP5 ADD CALLDATALOAD PUSH2 0xBFE JUMP JUMPDEST PUSH2 0x698 PUSH1 0xA0 DUP6 ADD CALLDATALOAD PUSH2 0xBFE JUMP JUMPDEST PUSH2 0x6A5 PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH2 0xBFE JUMP JUMPDEST SWAP1 PUSH2 0x6BC PUSH1 0x40 DUP8 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xBBA JUMP JUMPDEST SWAP3 PUSH2 0x6CB PUSH2 0x120 DUP9 ADD CALLDATALOAD PUSH2 0xBFE JUMP JUMPDEST SWAP5 PUSH2 0x5E3 JUMP JUMPDEST PUSH2 0x1C0 DUP3 ADD SWAP2 PUSH1 0x60 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB PUSH2 0x6EB DUP6 DUP5 PUSH2 0x127 JUMP JUMPDEST SWAP1 POP AND SWAP1 PUSH1 0x1 DUP3 EQ ISZERO PUSH1 0x0 EQ PUSH2 0x7EC JUMPI POP PUSH2 0x705 SWAP1 PUSH2 0xC81 JUMP JUMPDEST SWAP3 JUMPDEST PUSH2 0x70F PUSH2 0xD1E JUMP JUMPDEST PUSH2 0x1E0 DUP4 ADD SWAP4 PUSH2 0x71F DUP6 DUP6 PUSH2 0x127 JUMP JUMPDEST PUSH2 0x728 SWAP2 PUSH2 0x2AC JUMP JUMPDEST PUSH2 0x731 SWAP2 PUSH2 0x2CB JUMP JUMPDEST PUSH2 0x73A SWAP1 PUSH2 0xBFE JUMP JUMPDEST SWAP4 PUSH2 0x745 DUP7 DUP3 PUSH2 0x127 JUMP JUMPDEST PUSH2 0x74E SWAP2 PUSH2 0x2BA JUMP JUMPDEST PUSH2 0x757 SWAP2 PUSH2 0x2CB JUMP JUMPDEST PUSH2 0x760 SWAP1 PUSH2 0xBFE JUMP JUMPDEST SWAP6 PUSH2 0x76B SWAP1 DUP3 PUSH2 0x127 JUMP JUMPDEST PUSH2 0x774 SWAP2 PUSH2 0x265 JUMP JUMPDEST PUSH2 0x564 SWAP8 SWAP1 PUSH2 0x7DA SWAP1 PUSH2 0x7A2 SWAP1 PUSH2 0x589 SWAP1 CALLDATALOAD PUSH1 0xF8 SHR PUSH1 0x1B DUP2 EQ DUP1 ISZERO PUSH2 0x7E2 JUMPI JUMPDEST PUSH2 0x79D SWAP1 PUSH2 0x2E8 JUMP JUMPDEST PUSH2 0x60F JUMP JUMPDEST SWAP6 PUSH2 0x7D4 PUSH2 0x551 DUP7 MLOAD DUP6 MLOAD ADD PUSH2 0x7B8 DUP5 DUP9 PUSH2 0x127 JUMP JUMPDEST SWAP1 POP DUP10 MLOAD SWAP2 ADD ADD DUP11 MLOAD ADD DUP12 MLOAD ADD DUP10 MLOAD ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 JUMP JUMPDEST SWAP4 PUSH2 0x127 JUMP JUMPDEST SWAP4 SWAP1 SWAP3 PUSH2 0x61E JUMP JUMPDEST POP PUSH1 0x1C DUP2 EQ PUSH2 0x794 JUMP JUMPDEST SWAP4 SWAP1 POP PUSH2 0x7F9 DUP2 DUP4 PUSH2 0x127 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xFF SHL SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT SWAP2 PUSH2 0x817 SWAP2 PUSH2 0x5C1 SWAP2 SWAP1 PUSH2 0x257 JUMP JUMPDEST AND LT PUSH2 0x707 JUMPI SWAP3 POP PUSH2 0x827 PUSH2 0x28F JUMP JUMPDEST SWAP3 PUSH2 0x707 JUMP JUMPDEST SWAP5 SWAP3 SWAP1 SWAP7 SWAP6 SWAP4 SWAP2 PUSH1 0x40 MLOAD SWAP8 DUP9 SWAP7 PUSH1 0x20 DUP9 ADD PUSH2 0x847 SWAP2 PUSH2 0x1E4 JUMP JUMPDEST PUSH2 0x850 SWAP2 PUSH2 0x1E4 JUMP JUMPDEST PUSH2 0x859 SWAP2 PUSH2 0x1E4 JUMP JUMPDEST PUSH2 0x668 SWAP2 PUSH2 0x1E4 JUMP JUMPDEST SWAP7 SWAP5 SWAP3 SWAP1 SWAP9 SWAP8 SWAP6 SWAP4 DUP1 SWAP3 PUSH1 0x40 MLOAD SWAP11 DUP12 SWAP10 PUSH1 0x1 PUSH1 0xF9 SHL PUSH1 0x20 DUP13 ADD MSTORE PUSH1 0x21 DUP12 ADD PUSH2 0x645 SWAP2 PUSH2 0x1E4 JUMP JUMPDEST PUSH2 0x8F6 PUSH2 0x895 CHAINID PUSH2 0xBFE JUMP JUMPDEST PUSH2 0x8A3 PUSH2 0x100 DUP5 ADD CALLDATALOAD PUSH2 0xBFE JUMP JUMPDEST PUSH2 0x8B0 PUSH1 0xC0 DUP6 ADD CALLDATALOAD PUSH2 0xBFE JUMP JUMPDEST PUSH2 0x8BD PUSH1 0xA0 DUP7 ADD CALLDATALOAD PUSH2 0xBFE JUMP JUMPDEST PUSH2 0x8CA PUSH1 0x60 DUP8 ADD CALLDATALOAD PUSH2 0xBFE JUMP JUMPDEST SWAP2 PUSH2 0x8E1 PUSH1 0x40 DUP9 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xBBA JUMP JUMPDEST SWAP4 PUSH2 0x8F0 PUSH2 0x120 DUP10 ADD CALLDATALOAD PUSH2 0xBFE JUMP JUMPDEST SWAP6 PUSH2 0x82D JUMP JUMPDEST PUSH2 0x1C0 DUP3 ADD SWAP2 PUSH1 0x60 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB PUSH2 0x910 DUP6 DUP5 PUSH2 0x127 JUMP JUMPDEST SWAP1 POP AND SWAP1 PUSH1 0x1 DUP3 EQ ISZERO PUSH1 0x0 EQ PUSH2 0x9C9 JUMPI POP PUSH2 0x92A SWAP1 PUSH2 0xC81 JUMP JUMPDEST SWAP3 JUMPDEST PUSH2 0x934 PUSH2 0xD1E JUMP JUMPDEST PUSH2 0x1E0 DUP4 ADD SWAP4 PUSH2 0x944 DUP6 DUP6 PUSH2 0x127 JUMP JUMPDEST PUSH2 0x94D SWAP2 PUSH2 0x2AC JUMP JUMPDEST PUSH2 0x956 SWAP2 PUSH2 0x2CB JUMP JUMPDEST PUSH2 0x95F SWAP1 PUSH2 0xBFE JUMP JUMPDEST SWAP4 PUSH2 0x96A DUP7 DUP3 PUSH2 0x127 JUMP JUMPDEST PUSH2 0x973 SWAP2 PUSH2 0x2BA JUMP JUMPDEST PUSH2 0x97C SWAP2 PUSH2 0x2CB JUMP JUMPDEST PUSH2 0x985 SWAP1 PUSH2 0xBFE JUMP JUMPDEST SWAP6 PUSH2 0x990 SWAP1 DUP3 PUSH2 0x127 JUMP JUMPDEST PUSH2 0x999 SWAP2 PUSH2 0x265 JUMP JUMPDEST PUSH2 0x564 SWAP8 SWAP1 PUSH2 0x9C1 SWAP1 PUSH2 0x7A2 SWAP1 PUSH2 0x589 SWAP1 CALLDATALOAD PUSH1 0xF8 SHR PUSH1 0x1B DUP2 EQ DUP1 ISZERO PUSH2 0x7E2 JUMPI PUSH2 0x79D SWAP1 PUSH2 0x2E8 JUMP JUMPDEST SWAP4 SWAP1 SWAP3 PUSH2 0x862 JUMP JUMPDEST SWAP4 SWAP1 POP PUSH2 0x9D6 DUP2 DUP4 PUSH2 0x127 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xFF SHL SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT SWAP2 PUSH2 0x9F4 SWAP2 PUSH2 0x5C1 SWAP2 SWAP1 PUSH2 0x257 JUMP JUMPDEST AND LT PUSH2 0x92C JUMPI SWAP3 POP PUSH2 0xA04 PUSH2 0x28F JUMP JUMPDEST SWAP3 PUSH2 0x92C JUMP JUMPDEST ISZERO PUSH2 0xA11 JUMPI JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x6B656363616B3235362072657475726E656420696E76616C6964206461746100 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 SWAP1 REVERT JUMPDEST PUSH1 0x20 DUP2 MLOAD SWAP2 ADD MLOAD SWAP1 PUSH1 0x20 DUP2 LT PUSH2 0x2D9 JUMPI POP SWAP1 JUMP JUMPDEST SWAP1 GAS SWAP2 PUSH1 0x0 SWAP1 PUSH2 0xFFFF SWAP3 DUP3 DUP1 DUP6 DUP2 PUSH2 0xFFEB DUP2 STATICCALL POP DUP1 PUSH2 0xB16 JUMPI POP POP PUSH2 0xA94 PUSH4 0xFFFFFFFF CALLDATASIZE AND PUSH2 0xE35 JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP4 GT PUSH2 0xAE6 JUMPI PUSH2 0xAE3 SWAP3 PUSH2 0xAD1 SWAP3 DUP3 SWAP2 PUSH2 0xAC4 SWAP1 PUSH1 0xC0 SHL PUSH4 0xFFFFFFFF PUSH1 0xC0 SHL AND PUSH1 0x1 PUSH1 0xE0 SHL OR PUSH2 0xE26 JUMP JUMPDEST DUP2 PUSH2 0xFFF6 PUSH2 0x8010 STATICCALL PUSH2 0xB96 JUMP JUMPDEST PUSH2 0xADE PUSH1 0x20 DUP3 MLOAD EQ PUSH2 0xA0A JUMP JUMPDEST PUSH2 0xA56 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x8 PUSH1 0x24 DUP3 ADD MSTORE PUSH8 0x4F766572666C6F77 PUSH1 0xC0 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 SWAP1 REVERT JUMPDEST PUSH4 0xFFFFFFFF SWAP2 DUP4 DUP1 DUP7 DUP2 PUSH2 0xFFE9 DUP8 DUP7 AND STATICCALL POP DUP2 ADD DUP1 SWAP2 GT PUSH2 0x352 JUMPI CALLDATASIZE SUB SWAP1 CALLDATASIZE DUP3 GT PUSH2 0x352 JUMPI PUSH2 0xB45 SWAP2 AND PUSH2 0xE35 JUMP JUMPDEST PUSH2 0xA94 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 PUSH2 0xB57 DUP3 PUSH2 0x174 JUMP JUMPDEST PUSH1 0x1 DUP3 MSTORE PUSH1 0x20 CALLDATASIZE DUP2 DUP5 ADD CALLDATACOPY JUMP JUMPDEST SWAP1 PUSH2 0xB6E DUP3 PUSH2 0x274 JUMP JUMPDEST PUSH2 0xB7B PUSH1 0x40 MLOAD SWAP2 DUP3 PUSH2 0x194 JUMP JUMPDEST DUP3 DUP2 MSTORE DUP1 SWAP3 PUSH2 0xB8C PUSH1 0x1F NOT SWAP2 PUSH2 0x274 JUMP JUMPDEST ADD SWAP1 PUSH1 0x20 CALLDATASIZE SWAP2 ADD CALLDATACOPY JUMP JUMPDEST ISZERO PUSH2 0xBB0 JUMPI RETURNDATASIZE SWAP1 PUSH2 0xBA6 DUP3 PUSH2 0xB64 JUMP JUMPDEST SWAP2 PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY JUMP JUMPDEST RETURNDATASIZE DUP1 PUSH1 0x0 DUP1 RETURNDATACOPY PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x40 MLOAD PUSH2 0xBC7 DUP2 PUSH2 0x174 JUMP JUMPDEST PUSH1 0x15 DUP2 MSTORE PUSH1 0x25 PUSH1 0xFA SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x60 SWAP3 SWAP1 SWAP3 SHL PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x21 DUP4 ADD MSTORE JUMP JUMPDEST DUP1 MLOAD ISZERO PUSH2 0x260 JUMPI PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST SWAP1 PUSH1 0x80 DUP3 LT ISZERO PUSH2 0xC3E JUMPI PUSH2 0xC10 PUSH2 0xB4A JUMP JUMPDEST SWAP2 DUP1 PUSH2 0xC2C JUMPI POP PUSH1 0x1 PUSH1 0xFF SHL JUMPDEST PUSH1 0x0 BYTE PUSH2 0xC29 DUP4 PUSH2 0xBF1 JUMP JUMPDEST MSTORE8 JUMP JUMPDEST PUSH1 0xF8 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND PUSH2 0xC1D JUMP JUMPDEST PUSH2 0xC47 DUP3 PUSH2 0xD9E JUMP JUMPDEST SWAP2 PUSH2 0xC54 PUSH1 0x2 DUP5 ADD PUSH2 0xB64 JUMP JUMPDEST SWAP3 PUSH1 0x81 DUP2 ADD PUSH1 0xF8 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND PUSH1 0x0 BYTE PUSH2 0xC72 DUP6 PUSH2 0xBF1 JUMP JUMPDEST MSTORE8 PUSH1 0x1F SUB PUSH1 0x3 SHL SHL PUSH1 0x21 DUP4 ADD MSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x1 DUP2 EQ PUSH2 0xD08 JUMPI PUSH1 0x38 DUP2 LT ISZERO PUSH2 0xCC4 JUMPI PUSH2 0xCA3 PUSH2 0xB4A JUMP JUMPDEST SWAP1 PUSH1 0x80 ADD PUSH1 0xF8 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND PUSH1 0x0 BYTE PUSH2 0xCC0 DUP3 PUSH2 0xBF1 JUMP JUMPDEST MSTORE8 SWAP1 JUMP JUMPDEST PUSH2 0xCCD DUP2 PUSH2 0xD9E JUMP JUMPDEST SWAP1 PUSH2 0xCDA PUSH1 0x2 DUP4 ADD PUSH2 0xB64 JUMP JUMPDEST SWAP2 PUSH1 0xB8 DUP2 ADD PUSH1 0xF8 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND PUSH1 0x0 BYTE PUSH2 0xCF8 DUP5 PUSH2 0xBF1 JUMP JUMPDEST MSTORE8 PUSH1 0x1F SUB PUSH1 0x3 SHL SHL PUSH1 0x21 DUP3 ADD MSTORE SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0xD26 PUSH2 0xB4A JUMP JUMPDEST SWAP1 PUSH1 0xC0 PUSH2 0xC29 DUP4 PUSH2 0xBF1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 PUSH1 0x38 DUP3 LT ISZERO PUSH2 0xD6A JUMPI PUSH2 0xD4D PUSH2 0xB4A JUMP JUMPDEST SWAP2 PUSH1 0xC0 ADD PUSH1 0xF8 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND PUSH1 0x0 BYTE PUSH2 0xC29 DUP4 PUSH2 0xBF1 JUMP JUMPDEST PUSH2 0xD73 DUP3 PUSH2 0xD9E JUMP JUMPDEST SWAP2 PUSH2 0xD80 PUSH1 0x2 DUP5 ADD PUSH2 0xB64 JUMP JUMPDEST SWAP3 PUSH1 0xF8 DUP1 DUP3 ADD SWAP1 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND PUSH1 0x0 BYTE PUSH2 0xC72 DUP6 PUSH2 0xBF1 JUMP JUMPDEST SWAP1 PUSH1 0x0 SWAP2 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 GT PUSH2 0xE1A JUMPI JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB PUSH1 0xFF SWAP3 GT PUSH2 0xE0C JUMPI JUMPDEST PUSH4 0xFFFFFFFF DUP2 GT PUSH2 0xDFE JUMPI JUMPDEST PUSH2 0xFFFF DUP2 GT PUSH2 0xDF0 JUMPI JUMPDEST GT PUSH2 0xDE9 JUMPI JUMP JUMPDEST SWAP1 PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x2 SWAP1 PUSH1 0x10 SHR SWAP4 ADD SWAP3 PUSH2 0xDE2 JUMP JUMPDEST PUSH1 0x4 SWAP1 PUSH1 0x20 SHR SWAP4 ADD SWAP3 PUSH2 0xDD8 JUMP JUMPDEST PUSH1 0x8 SWAP1 PUSH1 0x40 SHR SWAP4 ADD SWAP3 PUSH2 0xDCC JUMP JUMPDEST PUSH1 0x10 SWAP3 POP PUSH1 0x80 SHR PUSH2 0xDBA JUMP JUMPDEST PUSH1 0x0 PUSH2 0xFFFF DUP2 PUSH2 0xFFE7 DUP2 SWAP5 STATICCALL POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xFFFF DUP2 PUSH2 0xFFE8 PUSH4 0xFFFFFFFF DUP3 SWAP6 AND STATICCALL POP JUMP JUMPDEST DUP1 CALLDATALOAD DUP1 PUSH2 0xE5B JUMPI POP PUSH2 0xAE3 SWAP1 PUSH2 0x11C7 JUMP JUMPDEST PUSH1 0x71 DUP2 SUB PUSH2 0xE6D JUMPI POP PUSH2 0xAE3 SWAP1 PUSH2 0xF24 JUMP JUMPDEST PUSH1 0x2 DUP2 SUB PUSH2 0xE7F JUMPI POP PUSH2 0xAE3 SWAP1 PUSH2 0x141B JUMP JUMPDEST PUSH1 0x1 SUB PUSH2 0xE8F JUMPI PUSH2 0xAE3 SWAP1 PUSH2 0x132E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x456E636F64696E6720756E737570706F72746564207478000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 SWAP1 REVERT JUMPDEST SWAP1 CALLDATALOAD SWAP1 PUSH1 0x1E NOT DUP2 CALLDATASIZE SUB ADD DUP3 SLT ISZERO PUSH2 0x159 JUMPI ADD DUP1 CALLDATALOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT PUSH2 0x159 JUMPI PUSH1 0x20 ADD SWAP2 DUP2 PUSH1 0x5 SHL CALLDATASIZE SUB DUP4 SGT PUSH2 0x159 JUMPI JUMP JUMPDEST SWAP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xFB SHL SUB DUP2 GT PUSH2 0x159 JUMPI PUSH1 0x5 SHL DUP1 SWAP3 DUP3 CALLDATACOPY ADD SWAP1 JUMP JUMPDEST PUSH2 0x1127 PUSH2 0x1133 PUSH2 0xF62 SWAP3 PUSH2 0xF3F PUSH2 0x88 PUSH2 0x1C0 DUP4 ADD DUP4 PUSH2 0x127 JUMP JUMPDEST PUSH2 0x105F PUSH2 0xF50 PUSH2 0x200 DUP5 ADD DUP5 PUSH2 0xED4 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP8 PUSH1 0x20 DUP10 ADD SWAP3 DUP10 SWAP3 DUP5 SWAP2 PUSH2 0xF09 JUMP JUMPDEST SUB SWAP7 PUSH2 0xF76 PUSH1 0x1F NOT SWAP9 DUP10 DUP2 ADD DUP4 MSTORE DUP3 PUSH2 0x194 JUMP JUMPDEST MLOAD SWAP1 KECCAK256 SWAP2 PUSH2 0x1053 PUSH2 0xF8E PUSH2 0x88 PUSH2 0x220 DUP8 ADD DUP8 PUSH2 0x127 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP5 DUP6 SWAP4 PUSH1 0x20 DUP6 ADD SWAP8 PUSH2 0x120 DUP2 ADD CALLDATALOAD SWAP1 PUSH2 0x100 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xE0 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xC0 DUP2 ADD CALLDATALOAD SWAP1 DUP13 PUSH1 0xA0 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0x80 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x60 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0x40 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x20 DUP3 ADD CALLDATALOAD SWAP2 CALLDATALOAD SWAP1 SWAP10 SWAP7 SWAP4 SWAP1 SWAP14 SWAP13 SWAP12 SWAP9 SWAP6 SWAP3 PUSH2 0x1A0 SWAP12 SWAP9 SWAP6 SWAP3 PUSH2 0x1C0 DUP13 ADD SWAP16 PUSH32 0x848E1BFA1AC4E3576B728BDA6721B215C70A7799A5B4866282A71BAB954BAAC8 DUP14 MSTORE PUSH1 0x20 DUP14 ADD MSTORE PUSH1 0x40 DUP13 ADD MSTORE PUSH1 0x60 DUP12 ADD MSTORE PUSH1 0x80 DUP11 ADD MSTORE PUSH1 0xA0 DUP10 ADD MSTORE PUSH1 0xC0 DUP9 ADD MSTORE PUSH1 0xE0 DUP8 ADD MSTORE PUSH2 0x100 DUP7 ADD MSTORE PUSH2 0x120 DUP6 ADD MSTORE PUSH2 0x140 DUP5 ADD MSTORE PUSH2 0x160 DUP4 ADD MSTORE PUSH2 0x180 DUP3 ADD MSTORE ADD MSTORE JUMP JUMPDEST SUB DUP7 DUP2 ADD DUP4 MSTORE DUP3 PUSH2 0x194 JUMP JUMPDEST MLOAD SWAP1 KECCAK256 SWAP3 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x10FC DUP2 PUSH2 0x10F0 CHAINID DUP6 SWAP2 SWAP1 PUSH1 0x60 PUSH1 0x80 DUP5 ADD SWAP4 PUSH32 0xC2F8787176B8AC6BF7215B4ADCC1E069BF4AB82D9AB1DF05A57A91D425935B6E DUP2 MSTORE PUSH32 0x19B453CE45AAAAF3A300F5A9EC95869B4F28AB10430B572EE218C3A6A5E07D6F PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0xAD7C5BEF027816A800DA1736444FB58A807EF4C9603B7848673F7E3A68EB14A5 PUSH1 0x40 DUP3 ADD MSTORE ADD MSTORE JUMP JUMPDEST SUB DUP5 DUP2 ADD DUP4 MSTORE DUP3 PUSH2 0x194 JUMP JUMPDEST MLOAD SWAP1 KECCAK256 SWAP4 PUSH1 0x40 MLOAD SWAP4 DUP5 SWAP2 PUSH1 0x20 DUP4 ADD SWAP7 DUP8 SWAP1 SWAP2 PUSH1 0x42 SWAP3 PUSH2 0x1901 PUSH1 0xF0 SHL DUP4 MSTORE PUSH1 0x2 DUP4 ADD MSTORE PUSH1 0x22 DUP3 ADD MSTORE ADD SWAP1 JUMP JUMPDEST SUB SWAP1 DUP2 ADD DUP4 MSTORE DUP3 PUSH2 0x194 JUMP JUMPDEST MLOAD SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST SWAP1 PUSH2 0x23F PUSH1 0x2 PUSH2 0x1153 SWAP4 PUSH1 0x40 MLOAD SWAP5 DUP6 SWAP2 PUSH1 0x20 DUP4 ADD SWAP1 PUSH2 0x1E4 JUMP JUMPDEST PUSH2 0x101 PUSH1 0xF7 SHL DUP2 MSTORE SUB PUSH1 0x1D NOT DUP2 ADD DUP6 MSTORE ADD DUP4 PUSH2 0x194 JUMP JUMPDEST SWAP7 SWAP5 SWAP2 SWAP3 DUP6 SWAP4 SWAP10 SWAP9 SWAP7 SWAP5 SWAP2 SWAP10 PUSH1 0x40 MLOAD SWAP11 DUP12 SWAP10 PUSH1 0x20 DUP12 ADD PUSH2 0x1189 SWAP2 PUSH2 0x1E4 JUMP JUMPDEST PUSH2 0x1192 SWAP2 PUSH2 0x1E4 JUMP JUMPDEST PUSH2 0x119B SWAP2 PUSH2 0x1E4 JUMP JUMPDEST PUSH2 0x11A4 SWAP2 PUSH2 0x1E4 JUMP JUMPDEST PUSH2 0x11AD SWAP2 PUSH2 0x1E4 JUMP JUMPDEST PUSH2 0x11B6 SWAP2 PUSH2 0x1E4 JUMP JUMPDEST SWAP2 DUP3 CALLDATACOPY ADD PUSH1 0x0 DUP2 MSTORE PUSH2 0x3E3 SWAP2 PUSH2 0x1E4 JUMP JUMPDEST PUSH2 0x564 SWAP1 PUSH2 0x11D9 PUSH2 0x100 DUP3 ADD CALLDATALOAD PUSH2 0xBFE JUMP JUMPDEST PUSH2 0x11E9 PUSH2 0x413 PUSH1 0xA0 DUP5 ADD CALLDATALOAD PUSH2 0xBFE JUMP JUMPDEST SWAP2 PUSH2 0x1200 PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xBBA JUMP JUMPDEST SWAP3 PUSH2 0x120F PUSH2 0x120 DUP4 ADD CALLDATALOAD PUSH2 0xBFE JUMP JUMPDEST PUSH2 0x1C0 DUP4 ADD SWAP5 PUSH1 0x60 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB PUSH2 0x1229 DUP9 DUP8 PUSH2 0x127 JUMP JUMPDEST SWAP1 POP AND SWAP1 PUSH1 0x1 DUP3 EQ ISZERO PUSH1 0x0 EQ PUSH2 0x12AE JUMPI POP PUSH2 0x1243 SWAP1 PUSH2 0xC81 JUMP JUMPDEST SWAP3 JUMPDEST PUSH1 0x60 SWAP7 PUSH2 0x140 DUP7 ADD CALLDATALOAD PUSH2 0x1290 JUMPI JUMPDEST PUSH2 0x1288 SWAP1 PUSH2 0x556 PUSH2 0x551 DUP10 MLOAD DUP6 MLOAD ADD DUP7 MLOAD ADD DUP8 MLOAD ADD DUP9 MLOAD ADD PUSH2 0x1275 DUP5 DUP12 PUSH2 0x127 JUMP JUMPDEST SWAP1 POP DUP13 MLOAD SWAP2 ADD ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 JUMP JUMPDEST SWAP7 SWAP1 SWAP6 PUSH2 0x116A JUMP JUMPDEST SWAP7 POP PUSH2 0x1288 PUSH2 0x12A6 PUSH2 0x12A1 CHAINID PUSH2 0xBFE JUMP JUMPDEST PUSH2 0x1139 JUMP JUMPDEST SWAP8 SWAP1 POP PUSH2 0x1253 JUMP JUMPDEST SWAP4 SWAP1 POP PUSH2 0x12BB DUP8 DUP7 PUSH2 0x127 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xFF SHL SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT SWAP2 PUSH2 0x12D9 SWAP2 PUSH2 0x5C1 SWAP2 SWAP1 PUSH2 0x257 JUMP JUMPDEST AND LT PUSH2 0x1245 JUMPI SWAP3 POP PUSH2 0x12E9 PUSH2 0x28F JUMP JUMPDEST SWAP3 PUSH2 0x1245 JUMP JUMPDEST SWAP3 SWAP4 PUSH2 0x23F SWAP5 DUP2 PUSH2 0x1320 PUSH2 0x231 SWAP6 PUSH2 0x22B PUSH2 0x22B SWAP12 SWAP11 SWAP7 PUSH1 0x40 MLOAD SWAP13 DUP14 SWAP11 PUSH1 0x1 PUSH1 0xF8 SHL PUSH1 0x20 DUP14 ADD MSTORE PUSH1 0x21 DUP13 ADD SWAP1 PUSH2 0x1E4 JUMP JUMPDEST SWAP2 DUP3 CALLDATACOPY ADD SWAP1 PUSH1 0x0 DUP3 MSTORE PUSH2 0x1E4 JUMP JUMPDEST PUSH2 0x564 SWAP1 PUSH2 0x133E PUSH2 0x67D CHAINID PUSH2 0xBFE JUMP JUMPDEST PUSH2 0x1C0 DUP3 ADD SWAP2 PUSH1 0x60 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB PUSH2 0x1358 DUP6 DUP5 PUSH2 0x127 JUMP JUMPDEST SWAP1 POP AND PUSH1 0x1 DUP2 EQ ISZERO PUSH1 0x0 EQ PUSH2 0x13AD JUMPI PUSH2 0x1371 SWAP2 POP PUSH2 0xC81 JUMP JUMPDEST PUSH2 0x13A5 PUSH2 0x137C PUSH2 0xD1E JUMP JUMPDEST SWAP5 PUSH2 0x7D4 PUSH2 0x551 DUP7 MLOAD DUP6 MLOAD ADD PUSH2 0x1392 DUP5 DUP9 PUSH2 0x127 JUMP JUMPDEST SWAP1 POP DUP10 MLOAD SWAP2 ADD ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 JUMP JUMPDEST SWAP4 SWAP1 SWAP3 PUSH2 0x12EF JUMP JUMPDEST POP PUSH2 0x13B8 DUP5 DUP4 PUSH2 0x127 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xFF SHL SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT SWAP2 PUSH2 0x13D6 SWAP2 PUSH2 0x5C1 SWAP2 SWAP1 PUSH2 0x257 JUMP JUMPDEST AND LT PUSH2 0x1371 JUMPI POP PUSH2 0x13E5 PUSH2 0x28F JUMP JUMPDEST PUSH2 0x1371 JUMP JUMPDEST SWAP3 SWAP4 PUSH2 0x23F SWAP5 DUP2 PUSH2 0x1320 PUSH2 0x231 SWAP6 PUSH2 0x22B PUSH2 0x22B SWAP12 SWAP11 SWAP7 PUSH1 0x40 MLOAD SWAP13 DUP14 SWAP11 PUSH1 0x1 PUSH1 0xF9 SHL PUSH1 0x20 DUP14 ADD MSTORE PUSH1 0x21 DUP13 ADD SWAP1 PUSH2 0x1E4 JUMP JUMPDEST PUSH2 0x564 SWAP1 PUSH2 0x142B PUSH2 0x895 CHAINID PUSH2 0xBFE JUMP JUMPDEST PUSH2 0x1C0 DUP3 ADD SWAP2 PUSH1 0x60 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB PUSH2 0x1445 DUP6 DUP5 PUSH2 0x127 JUMP JUMPDEST SWAP1 POP AND PUSH1 0x1 DUP2 EQ ISZERO PUSH1 0x0 EQ PUSH2 0x1471 JUMPI PUSH2 0x145E SWAP2 POP PUSH2 0xC81 JUMP JUMPDEST PUSH2 0x1469 PUSH2 0x137C PUSH2 0xD1E JUMP JUMPDEST SWAP4 SWAP1 SWAP3 PUSH2 0x13EA JUMP JUMPDEST POP PUSH2 0x147C DUP5 DUP4 PUSH2 0x127 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xFF SHL SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT SWAP2 PUSH2 0x149A SWAP2 PUSH2 0x5C1 SWAP2 SWAP1 PUSH2 0x257 JUMP JUMPDEST AND LT PUSH2 0x145E JUMPI POP PUSH2 0x14A9 PUSH2 0x28F JUMP JUMPDEST PUSH2 0x145E JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x1E 0xC6 0x22 ADD PC 0x1E SIGNEXTEND 0xC2 0xCE SLT PUSH10 0xF0FB33FCD1A9BB5ABF85 PUSH15 0x4634E565726BA47CF39864736F6C63 NUMBER STOP ADDMOD SLT STOP CALLER ","sourceMap":"373:13530:0:-:0;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"abi_encode_array_bytes32_dyn_calldata":{"entryPoint":3849,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_bytes":{"entryPoint":484,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_bytes32_bytes32":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_bytes32_bytes32_bytes32_uint256":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_bytes32_uint256_uint256_uint256_uint256_uint256_uint256_uint256_uint256_uint256_uint256_bytes32_bytes32_bytes32":{"entryPoint":null,"id":null,"parameterSlots":14,"returnSlots":1},"abi_encode_packed_stringliteral_301a_bytes32_bytes32":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_stringliteral_80e5":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"access_calldata_tail_array_bytes32_dyn_calldata":{"entryPoint":3796,"id":null,"parameterSlots":2,"returnSlots":2},"access_calldata_tail_bytes_calldata":{"entryPoint":295,"id":null,"parameterSlots":2,"returnSlots":2},"allocate_and_zero_memory_array_bytes":{"entryPoint":2916,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_and_zero_memory_array_bytes_5154":{"entryPoint":2890,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_string":{"entryPoint":628,"id":null,"parameterSlots":1,"returnSlots":1},"bytes_concat_bytes32_bytes32":{"entryPoint":437,"id":null,"parameterSlots":2,"returnSlots":1},"bytes_concat_bytes_bytes":{"entryPoint":527,"id":null,"parameterSlots":2,"returnSlots":1},"bytes_concat_bytes_bytes_bytes_bytes_bytes_bytes":{"entryPoint":1507,"id":null,"parameterSlots":6,"returnSlots":1},"bytes_concat_bytes_bytes_bytes_bytes_bytes_bytes_bytes":{"entryPoint":2093,"id":null,"parameterSlots":7,"returnSlots":1},"bytes_concat_bytes_bytes_bytes_bytes_bytes_bytes_bytes_calldata_bytes":{"entryPoint":4458,"id":null,"parameterSlots":9,"returnSlots":1},"bytes_concat_bytes_bytes_bytes_bytes_bytes_bytes_bytes_calldata_bytes_bytes_bytes":{"entryPoint":882,"id":null,"parameterSlots":11,"returnSlots":1},"bytes_concat_bytes_stringliteral_d329":{"entryPoint":4409,"id":null,"parameterSlots":1,"returnSlots":1},"bytes_concat_stringliteral_5fe7_bytes_bytes_bytes_bytes_calldata_bytes":{"entryPoint":4847,"id":null,"parameterSlots":6,"returnSlots":1},"bytes_concat_stringliteral_5fe7_bytes_bytes_bytes_bytes_calldata_bytes_bytes_bytes_bytes":{"entryPoint":1566,"id":null,"parameterSlots":9,"returnSlots":1},"bytes_concat_stringliteral_f2ee_bytes_bytes_bytes_bytes_calldata_bytes":{"entryPoint":5098,"id":null,"parameterSlots":6,"returnSlots":1},"bytes_concat_stringliteral_f2ee_bytes_bytes_bytes_bytes_calldata_bytes_bytes_bytes_bytes":{"entryPoint":2146,"id":null,"parameterSlots":9,"returnSlots":1},"calldata_array_index_access_bytes_calldata":{"entryPoint":613,"id":null,"parameterSlots":2,"returnSlots":1},"calldata_array_index_access_bytes_calldata_5129":{"entryPoint":599,"id":null,"parameterSlots":2,"returnSlots":1},"calldata_array_index_range_access_bytes_calldata":{"entryPoint":684,"id":null,"parameterSlots":2,"returnSlots":2},"calldata_array_index_range_access_bytes_calldata_5131":{"entryPoint":698,"id":null,"parameterSlots":2,"returnSlots":2},"checked_add_uint256":{"entryPoint":869,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_uint256_5135":{"entryPoint":855,"id":null,"parameterSlots":1,"returnSlots":1},"checked_mul_uint256":{"entryPoint":828,"id":null,"parameterSlots":1,"returnSlots":1},"checked_sub_uint256":{"entryPoint":1551,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_bytes1":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"convert_bytes1_to_uint8":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"convert_bytes_to_fixedbytes_from_bytes_calldata_to_bytes32":{"entryPoint":715,"id":null,"parameterSlots":2,"returnSlots":1},"convert_bytes_to_fixedbytes_from_bytes_to_bytes32":{"entryPoint":2646,"id":null,"parameterSlots":1,"returnSlots":1},"convert_uint256_to_uint64":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"convert_uint8_to_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"copy_literal_to_memory_1fed454f35701d8970ad2ac06907e973314989ab6eb948eda79c00e416c4bdeb":{"entryPoint":655,"id":null,"parameterSlots":0,"returnSlots":1},"finalize_allocation":{"entryPoint":404,"id":null,"parameterSlots":2,"returnSlots":0},"finalize_allocation_8941":{"entryPoint":372,"id":null,"parameterSlots":1,"returnSlots":0},"fun_encodeAddress":{"entryPoint":3002,"id":2195,"parameterSlots":1,"returnSlots":1},"fun_encodeEIP1559TransactionHash":{"entryPoint":2185,"id":904,"parameterSlots":1,"returnSlots":1},"fun_encodeEIP2930TransactionHash":{"entryPoint":1649,"id":628,"parameterSlots":1,"returnSlots":1},"fun_encodeHash":{"entryPoint":3658,"id":3851,"parameterSlots":1,"returnSlots":1},"fun_encodeHashEIP1559Transaction":{"entryPoint":5147,"id":4462,"parameterSlots":1,"returnSlots":1},"fun_encodeHashEIP2930Transaction":{"entryPoint":4910,"id":4285,"parameterSlots":1,"returnSlots":1},"fun_encodeHashEIP712Transaction":{"entryPoint":3876,"id":3933,"parameterSlots":1,"returnSlots":1},"fun_encodeHashLegacyTransaction":{"entryPoint":4551,"id":4117,"parameterSlots":1,"returnSlots":1},"fun_encodeLegacyTransactionHash":{"entryPoint":1013,"id":361,"parameterSlots":1,"returnSlots":1},"fun_encodeLength":{"entryPoint":3378,"id":2411,"parameterSlots":1,"returnSlots":1},"fun_encodeLength_5137":{"entryPoint":3358,"id":2411,"parameterSlots":0,"returnSlots":1},"fun_encodeNonSingleBytesLen":{"entryPoint":3201,"id":2306,"parameterSlots":1,"returnSlots":1},"fun_encodeUint256":{"entryPoint":3070,"id":2286,"parameterSlots":1,"returnSlots":1},"fun_highestByteSet":{"entryPoint":3486,"id":2502,"parameterSlots":1,"returnSlots":1},"fun_keccak":{"entryPoint":2666,"id":1743,"parameterSlots":2,"returnSlots":1},"fun_ptrPackIntoActivePtr":{"entryPoint":3622,"id":2590,"parameterSlots":1,"returnSlots":0},"fun_ptrShrinkIntoActive":{"entryPoint":3637,"id":2622,"parameterSlots":1,"returnSlots":0},"fun_verifyCallResult":{"entryPoint":2966,"id":2068,"parameterSlots":1,"returnSlots":1},"memory_array_index_access_bytes":{"entryPoint":3057,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":806,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":577,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":350,"id":null,"parameterSlots":0,"returnSlots":0},"require_helper_stringliteral_74fb":{"entryPoint":2570,"id":null,"parameterSlots":1,"returnSlots":0},"require_helper_stringliteral_f613":{"entryPoint":744,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"6080604052600436101561001257600080fd5b6000803560e01c63ebe4a3d71461002857600080fd5b346101205760031960203682011261012357600435916001600160401b0383116101205761026083600401928436030112610120575061006781610e4a565b918135607181036100ad5750610088610094926101e461008e930190610127565b90610a6a565b826101b5565b602081519101205b604080519182526020820192909252f35b9050806100c357506100be906103f5565b61009c565b600281036100d557506100be90610889565b6001036100e5576100be90610671565b60405162461bcd60e51b8152602060048201526013602482015272556e737570706f72746564207478207479706560681b6044820152606490fd5b80fd5b5080fd5b903590601e198136030182121561015957018035906001600160401b0382116101595760200191813603831361015957565b600080fd5b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b0382111761018f57604052565b61015e565b90601f801991011681019081106001600160401b0382111761018f57604052565b9190604051926020840152604083015260408252606082018281106001600160401b0382111761018f57604052565b9081519160005b8381106101fc575050016000815290565b80602080928401015181850152016101eb565b61023f9061023161022b949360405195869360208501906101e4565b906101e4565b03601f198101845283610194565b565b634e487b7160e01b600052603260045260246000fd5b90156102605790565b610241565b90604010156102605760400190565b6001600160401b03811161018f57601f01601f191660200190565b6040519061029c82610174565b60018252608160f81b6020830152565b906020116101595790602090565b906040116101595760200190602090565b3590602081106102d9575090565b6000199060200360031b1b1690565b156102ef57565b60405162461bcd60e51b815260206004820152600f60248201526e496e76616c696420762076616c756560881b6044820152606490fd5b634e487b7160e01b600052601160045260246000fd5b908160011b918083046002149015171561035257565b610326565b600801908160081161035257565b9190820180921161035257565b989694919285939b9a989694919b6040519c8d9b60208d01610393916101e4565b61039c916101e4565b6103a5916101e4565b6103ae916101e4565b6103b7916101e4565b6103c0916101e4565b91823701600081526103d1916101e4565b6103da916101e4565b6103e3916101e4565b03601f198101835261023f9083610194565b610403610100820135610bfe565b61042661041360a0840135610bfe565b6104206060850135610bfe565b9061020f565b9161043d60408201356001600160a01b0316610bba565b9061044c610120820135610bfe565b926101c082019160606001600160401b036104678584610127565b9050166001811415600014610598576104809150610c81565b6101e08201956104908784610127565b610499916102ac565b6104a2916102cb565b6104ab90610bfe565b956104b68885610127565b6104bf916102ba565b6104c8916102cb565b6104d190610bfe565b976104dc9085610127565b6104e591610265565b610564999061055c90610519903560f81c601b8114801561058e575b61050a906102e8565b61014088013561056e57610bfe565b976105566105518951855101865101875101885101610538848b610127565b90508d519101018d51018b51016001600160401b031690565b610d32565b96610127565b969095610372565b6020815191012090565b6105899061058361057e4661033c565b610357565b90610365565b610bfe565b50601c8114610501565b506105a38483610127565b600160ff1b916001600160f81b0319916105cf916105c19190610257565b356001600160f81b03191690565b161061048057506105de61028f565b610480565b9261023f9461022b61022b9261022b6102319661022b61022b9c9b976040519d8e9b60208d01906101e4565b601a1981019190821161035257565b969492909897959380926040519a8b99600160f81b60208c015260218b01610645916101e4565b61064e916101e4565b610657916101e4565b9182370160008152610668916101e4565b6103d1916101e4565b6106d161067d46610bfe565b61068b610100840135610bfe565b61069860a0850135610bfe565b6106a56060860135610bfe565b906106bc60408701356001600160a01b0316610bba565b926106cb610120880135610bfe565b946105e3565b6101c082019160606001600160401b036106eb8584610127565b9050169060018214156000146107ec575061070590610c81565b925b61070f610d1e565b6101e083019361071f8585610127565b610728916102ac565b610731916102cb565b61073a90610bfe565b936107458682610127565b61074e916102ba565b610757916102cb565b61076090610bfe565b9561076b9082610127565b61077491610265565b61056497906107da906107a290610589903560f81c601b811480156107e2575b61079d906102e8565b61060f565b956107d461055186518551016107b88488610127565b905089519101018a51018b51018951016001600160401b031690565b93610127565b93909261061e565b50601c8114610794565b9390506107f98183610127565b600160ff1b916001600160f81b031991610817916105c19190610257565b161061070757925061082761028f565b92610707565b9492909695939160405197889660208801610847916101e4565b610850916101e4565b610859916101e4565b610668916101e4565b969492909897959380926040519a8b99600160f91b60208c015260218b01610645916101e4565b6108f661089546610bfe565b6108a3610100840135610bfe565b6108b060c0850135610bfe565b6108bd60a0860135610bfe565b6108ca6060870135610bfe565b916108e160408801356001600160a01b0316610bba565b936108f0610120890135610bfe565b9561082d565b6101c082019160606001600160401b036109108584610127565b9050169060018214156000146109c9575061092a90610c81565b925b610934610d1e565b6101e08301936109448585610127565b61094d916102ac565b610956916102cb565b61095f90610bfe565b9361096a8682610127565b610973916102ba565b61097c916102cb565b61098590610bfe565b956109909082610127565b61099991610265565b61056497906109c1906107a290610589903560f81c601b811480156107e25761079d906102e8565b939092610862565b9390506109d68183610127565b600160ff1b916001600160f81b0319916109f4916105c19190610257565b161061092c579250610a0461028f565b9261092c565b15610a1157565b60405162461bcd60e51b815260206004820152601f60248201527f6b656363616b3235362072657475726e656420696e76616c69642064617461006044820152606490fd5b6020815191015190602081106102d9575090565b905a9160009061ffff928280858161ffeb81fa5080610b16575050610a9463ffffffff3616610e35565b63ffffffff8311610ae657610ae392610ad1928291610ac49060c01b63ffffffff60c01b16600160e01b17610e26565b8161fff6618010fa610b96565b610ade6020825114610a0a565b610a56565b90565b60405162461bcd60e51b81526020600482015260086024820152674f766572666c6f7760c01b6044820152606490fd5b63ffffffff918380868161ffe9878616fa5081018091116103525736039036821161035257610b459116610e35565b610a94565b60405190610b5782610174565b6001825260203681840137565b90610b6e82610274565b610b7b6040519182610194565b8281528092610b8c601f1991610274565b0190602036910137565b15610bb0573d90610ba682610b64565b916000602084013e565b3d806000803e6000fd5b90604051610bc781610174565b60158152602560fa1b602082015260609290921b6bffffffffffffffffffffffff19166021830152565b8051156102605760200190565b906080821015610c3e57610c10610b4a565b9180610c2c5750600160ff1b5b60001a610c2983610bf1565b53565b60f81b6001600160f81b031916610c1d565b610c4782610d9e565b91610c5460028401610b64565b926081810160f81b6001600160f81b03191660001a610c7285610bf1565b53601f0360031b1b6021830152565b6001600160401b031660018114610d08576038811015610cc457610ca3610b4a565b9060800160f81b6001600160f81b03191660001a610cc082610bf1565b5390565b610ccd81610d9e565b90610cda60028301610b64565b9160b8810160f81b6001600160f81b03191660001a610cf884610bf1565b53601f0360031b1b602182015290565b634e487b7160e01b600052600160045260246000fd5b610d26610b4a565b9060c0610c2983610bf1565b6001600160401b0316906038821015610d6a57610d4d610b4a565b9160c00160f81b6001600160f81b03191660001a610c2983610bf1565b610d7382610d9e565b91610d8060028401610b64565b9260f8808201901b6001600160f81b03191660001a610c7285610bf1565b906000916fffffffffffffffffffffffffffffffff8111610e1a575b806001600160401b0360ff9211610e0c575b63ffffffff8111610dfe575b61ffff8111610df0575b11610de957565b9060010190565b60029060101c930192610de2565b60049060201c930192610dd8565b60089060401c930192610dcc565b6010925060801c610dba565b600061ffff8161ffe78194fa50565b600061ffff8161ffe863ffffffff829516fa50565b803580610e5b5750610ae3906111c7565b60718103610e6d5750610ae390610f24565b60028103610e7f5750610ae39061141b565b600103610e8f57610ae39061132e565b60405162461bcd60e51b815260206004820152601760248201527f456e636f64696e6720756e737570706f727465642074780000000000000000006044820152606490fd5b903590601e198136030182121561015957018035906001600160401b03821161015957602001918160051b3603831361015957565b91906001600160fb1b0381116101595760051b809282370190565b611127611133610f6292610f3f6100886101c0830183610127565b61105f610f50610200840184610ed4565b60405197602089019289928491610f09565b0396610f76601f1998898101835282610194565b51902091611053610f8e610088610220870187610127565b6040519485936020850197610120810135906101008101359060e08101359060c0810135908c60a0820135916080810135916060820135916040810135916020820135913590999693909d9c9b9895926101a09b9895926101c08c019f7f848e1bfa1ac4e3576b728bda6721b215c70a7799a5b4866282a71bab954baac88d5260208d015260408c015260608b015260808a015260a089015260c088015260e08701526101008601526101208501526101408401526101608301526101808201520152565b03868101835282610194565b5190209260405160208101906110fc816110f046859190606060808401937fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6e81527f19b453ce45aaaaf3a300f5a9ec95869b4f28ab10430b572ee218c3a6a5e07d6f60208201527fad7c5bef027816a800da1736444fb58a807ef4c9603b7848673f7e3a68eb14a560408201520152565b03848101835282610194565b51902093604051938491602083019687909160429261190160f01b8352600283015260228201520190565b03908101835282610194565b51902090565b9061023f60026111539360405194859160208301906101e4565b61010160f71b815203601d19810185520183610194565b9694919285939998969491996040519a8b9960208b01611189916101e4565b611192916101e4565b61119b916101e4565b6111a4916101e4565b6111ad916101e4565b6111b6916101e4565b91823701600081526103e3916101e4565b610564906111d9610100820135610bfe565b6111e961041360a0840135610bfe565b9161120060408201356001600160a01b0316610bba565b9261120f610120830135610bfe565b6101c083019460606001600160401b036112298887610127565b9050169060018214156000146112ae575061124390610c81565b925b606096610140860135611290575b611288906105566105518951855101865101875101885101611275848b610127565b90508c519101016001600160401b031690565b96909561116a565b96506112886112a66112a146610bfe565b611139565b979050611253565b9390506112bb8786610127565b600160ff1b916001600160f81b0319916112d9916105c19190610257565b16106112455792506112e961028f565b92611245565b929361023f94816113206102319561022b61022b9b9a966040519c8d9a600160f81b60208d015260218c01906101e4565b9182370190600082526101e4565b6105649061133e61067d46610bfe565b6101c082019160606001600160401b036113588584610127565b90501660018114156000146113ad576113719150610c81565b6113a561137c610d1e565b946107d461055186518551016113928488610127565b905089519101016001600160401b031690565b9390926112ef565b506113b88483610127565b600160ff1b916001600160f81b0319916113d6916105c19190610257565b161061137157506113e561028f565b611371565b929361023f94816113206102319561022b61022b9b9a966040519c8d9a600160f91b60208d015260218c01906101e4565b6105649061142b61089546610bfe565b6101c082019160606001600160401b036114458584610127565b90501660018114156000146114715761145e9150610c81565b61146961137c610d1e565b9390926113ea565b5061147c8483610127565b600160ff1b916001600160f81b03199161149a916105c19190610257565b161061145e57506114a961028f565b61145e56fea26469706673582212201ec62201581e0bc2ce1269f0fb33fcd1a9bb5abf856e4634e565726ba47cf39864736f6c63430008120033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT ISZERO PUSH2 0x12 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 CALLDATALOAD PUSH1 0xE0 SHR PUSH4 0xEBE4A3D7 EQ PUSH2 0x28 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE PUSH2 0x120 JUMPI PUSH1 0x3 NOT PUSH1 0x20 CALLDATASIZE DUP3 ADD SLT PUSH2 0x123 JUMPI PUSH1 0x4 CALLDATALOAD SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP4 GT PUSH2 0x120 JUMPI PUSH2 0x260 DUP4 PUSH1 0x4 ADD SWAP3 DUP5 CALLDATASIZE SUB ADD SLT PUSH2 0x120 JUMPI POP PUSH2 0x67 DUP2 PUSH2 0xE4A JUMP JUMPDEST SWAP2 DUP2 CALLDATALOAD PUSH1 0x71 DUP2 SUB PUSH2 0xAD JUMPI POP PUSH2 0x88 PUSH2 0x94 SWAP3 PUSH2 0x1E4 PUSH2 0x8E SWAP4 ADD SWAP1 PUSH2 0x127 JUMP JUMPDEST SWAP1 PUSH2 0xA6A JUMP JUMPDEST DUP3 PUSH2 0x1B5 JUMP JUMPDEST PUSH1 0x20 DUP2 MLOAD SWAP2 ADD KECCAK256 JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE RETURN JUMPDEST SWAP1 POP DUP1 PUSH2 0xC3 JUMPI POP PUSH2 0xBE SWAP1 PUSH2 0x3F5 JUMP JUMPDEST PUSH2 0x9C JUMP JUMPDEST PUSH1 0x2 DUP2 SUB PUSH2 0xD5 JUMPI POP PUSH2 0xBE SWAP1 PUSH2 0x889 JUMP JUMPDEST PUSH1 0x1 SUB PUSH2 0xE5 JUMPI PUSH2 0xBE SWAP1 PUSH2 0x671 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH19 0x556E737570706F727465642074782074797065 PUSH1 0x68 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 SWAP1 REVERT JUMPDEST DUP1 REVERT JUMPDEST POP DUP1 REVERT JUMPDEST SWAP1 CALLDATALOAD SWAP1 PUSH1 0x1E NOT DUP2 CALLDATASIZE SUB ADD DUP3 SLT ISZERO PUSH2 0x159 JUMPI ADD DUP1 CALLDATALOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT PUSH2 0x159 JUMPI PUSH1 0x20 ADD SWAP2 DUP2 CALLDATASIZE SUB DUP4 SGT PUSH2 0x159 JUMPI JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 DUP2 ADD SWAP1 DUP2 LT PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT OR PUSH2 0x18F JUMPI PUSH1 0x40 MSTORE JUMP JUMPDEST PUSH2 0x15E JUMP JUMPDEST SWAP1 PUSH1 0x1F DUP1 NOT SWAP2 ADD AND DUP2 ADD SWAP1 DUP2 LT PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT OR PUSH2 0x18F JUMPI PUSH1 0x40 MSTORE JUMP JUMPDEST SWAP2 SWAP1 PUSH1 0x40 MLOAD SWAP3 PUSH1 0x20 DUP5 ADD MSTORE PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x40 DUP3 MSTORE PUSH1 0x60 DUP3 ADD DUP3 DUP2 LT PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT OR PUSH2 0x18F JUMPI PUSH1 0x40 MSTORE JUMP JUMPDEST SWAP1 DUP2 MLOAD SWAP2 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT PUSH2 0x1FC JUMPI POP POP ADD PUSH1 0x0 DUP2 MSTORE SWAP1 JUMP JUMPDEST DUP1 PUSH1 0x20 DUP1 SWAP3 DUP5 ADD ADD MLOAD DUP2 DUP6 ADD MSTORE ADD PUSH2 0x1EB JUMP JUMPDEST PUSH2 0x23F SWAP1 PUSH2 0x231 PUSH2 0x22B SWAP5 SWAP4 PUSH1 0x40 MLOAD SWAP6 DUP7 SWAP4 PUSH1 0x20 DUP6 ADD SWAP1 PUSH2 0x1E4 JUMP JUMPDEST SWAP1 PUSH2 0x1E4 JUMP JUMPDEST SUB PUSH1 0x1F NOT DUP2 ADD DUP5 MSTORE DUP4 PUSH2 0x194 JUMP JUMPDEST JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 ISZERO PUSH2 0x260 JUMPI SWAP1 JUMP JUMPDEST PUSH2 0x241 JUMP JUMPDEST SWAP1 PUSH1 0x40 LT ISZERO PUSH2 0x260 JUMPI PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT PUSH2 0x18F JUMPI PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 PUSH2 0x29C DUP3 PUSH2 0x174 JUMP JUMPDEST PUSH1 0x1 DUP3 MSTORE PUSH1 0x81 PUSH1 0xF8 SHL PUSH1 0x20 DUP4 ADD MSTORE JUMP JUMPDEST SWAP1 PUSH1 0x20 GT PUSH2 0x159 JUMPI SWAP1 PUSH1 0x20 SWAP1 JUMP JUMPDEST SWAP1 PUSH1 0x40 GT PUSH2 0x159 JUMPI PUSH1 0x20 ADD SWAP1 PUSH1 0x20 SWAP1 JUMP JUMPDEST CALLDATALOAD SWAP1 PUSH1 0x20 DUP2 LT PUSH2 0x2D9 JUMPI POP SWAP1 JUMP JUMPDEST PUSH1 0x0 NOT SWAP1 PUSH1 0x20 SUB PUSH1 0x3 SHL SHL AND SWAP1 JUMP JUMPDEST ISZERO PUSH2 0x2EF JUMPI JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH15 0x496E76616C696420762076616C7565 PUSH1 0x88 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 SWAP1 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 DUP2 PUSH1 0x1 SHL SWAP2 DUP1 DUP4 DIV PUSH1 0x2 EQ SWAP1 ISZERO OR ISZERO PUSH2 0x352 JUMPI JUMP JUMPDEST PUSH2 0x326 JUMP JUMPDEST PUSH1 0x8 ADD SWAP1 DUP2 PUSH1 0x8 GT PUSH2 0x352 JUMPI JUMP JUMPDEST SWAP2 SWAP1 DUP3 ADD DUP1 SWAP3 GT PUSH2 0x352 JUMPI JUMP JUMPDEST SWAP9 SWAP7 SWAP5 SWAP2 SWAP3 DUP6 SWAP4 SWAP12 SWAP11 SWAP9 SWAP7 SWAP5 SWAP2 SWAP12 PUSH1 0x40 MLOAD SWAP13 DUP14 SWAP12 PUSH1 0x20 DUP14 ADD PUSH2 0x393 SWAP2 PUSH2 0x1E4 JUMP JUMPDEST PUSH2 0x39C SWAP2 PUSH2 0x1E4 JUMP JUMPDEST PUSH2 0x3A5 SWAP2 PUSH2 0x1E4 JUMP JUMPDEST PUSH2 0x3AE SWAP2 PUSH2 0x1E4 JUMP JUMPDEST PUSH2 0x3B7 SWAP2 PUSH2 0x1E4 JUMP JUMPDEST PUSH2 0x3C0 SWAP2 PUSH2 0x1E4 JUMP JUMPDEST SWAP2 DUP3 CALLDATACOPY ADD PUSH1 0x0 DUP2 MSTORE PUSH2 0x3D1 SWAP2 PUSH2 0x1E4 JUMP JUMPDEST PUSH2 0x3DA SWAP2 PUSH2 0x1E4 JUMP JUMPDEST PUSH2 0x3E3 SWAP2 PUSH2 0x1E4 JUMP JUMPDEST SUB PUSH1 0x1F NOT DUP2 ADD DUP4 MSTORE PUSH2 0x23F SWAP1 DUP4 PUSH2 0x194 JUMP JUMPDEST PUSH2 0x403 PUSH2 0x100 DUP3 ADD CALLDATALOAD PUSH2 0xBFE JUMP JUMPDEST PUSH2 0x426 PUSH2 0x413 PUSH1 0xA0 DUP5 ADD CALLDATALOAD PUSH2 0xBFE JUMP JUMPDEST PUSH2 0x420 PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH2 0xBFE JUMP JUMPDEST SWAP1 PUSH2 0x20F JUMP JUMPDEST SWAP2 PUSH2 0x43D PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xBBA JUMP JUMPDEST SWAP1 PUSH2 0x44C PUSH2 0x120 DUP3 ADD CALLDATALOAD PUSH2 0xBFE JUMP JUMPDEST SWAP3 PUSH2 0x1C0 DUP3 ADD SWAP2 PUSH1 0x60 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB PUSH2 0x467 DUP6 DUP5 PUSH2 0x127 JUMP JUMPDEST SWAP1 POP AND PUSH1 0x1 DUP2 EQ ISZERO PUSH1 0x0 EQ PUSH2 0x598 JUMPI PUSH2 0x480 SWAP2 POP PUSH2 0xC81 JUMP JUMPDEST PUSH2 0x1E0 DUP3 ADD SWAP6 PUSH2 0x490 DUP8 DUP5 PUSH2 0x127 JUMP JUMPDEST PUSH2 0x499 SWAP2 PUSH2 0x2AC JUMP JUMPDEST PUSH2 0x4A2 SWAP2 PUSH2 0x2CB JUMP JUMPDEST PUSH2 0x4AB SWAP1 PUSH2 0xBFE JUMP JUMPDEST SWAP6 PUSH2 0x4B6 DUP9 DUP6 PUSH2 0x127 JUMP JUMPDEST PUSH2 0x4BF SWAP2 PUSH2 0x2BA JUMP JUMPDEST PUSH2 0x4C8 SWAP2 PUSH2 0x2CB JUMP JUMPDEST PUSH2 0x4D1 SWAP1 PUSH2 0xBFE JUMP JUMPDEST SWAP8 PUSH2 0x4DC SWAP1 DUP6 PUSH2 0x127 JUMP JUMPDEST PUSH2 0x4E5 SWAP2 PUSH2 0x265 JUMP JUMPDEST PUSH2 0x564 SWAP10 SWAP1 PUSH2 0x55C SWAP1 PUSH2 0x519 SWAP1 CALLDATALOAD PUSH1 0xF8 SHR PUSH1 0x1B DUP2 EQ DUP1 ISZERO PUSH2 0x58E JUMPI JUMPDEST PUSH2 0x50A SWAP1 PUSH2 0x2E8 JUMP JUMPDEST PUSH2 0x140 DUP9 ADD CALLDATALOAD PUSH2 0x56E JUMPI PUSH2 0xBFE JUMP JUMPDEST SWAP8 PUSH2 0x556 PUSH2 0x551 DUP10 MLOAD DUP6 MLOAD ADD DUP7 MLOAD ADD DUP8 MLOAD ADD DUP9 MLOAD ADD PUSH2 0x538 DUP5 DUP12 PUSH2 0x127 JUMP JUMPDEST SWAP1 POP DUP14 MLOAD SWAP2 ADD ADD DUP14 MLOAD ADD DUP12 MLOAD ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH2 0xD32 JUMP JUMPDEST SWAP7 PUSH2 0x127 JUMP JUMPDEST SWAP7 SWAP1 SWAP6 PUSH2 0x372 JUMP JUMPDEST PUSH1 0x20 DUP2 MLOAD SWAP2 ADD KECCAK256 SWAP1 JUMP JUMPDEST PUSH2 0x589 SWAP1 PUSH2 0x583 PUSH2 0x57E CHAINID PUSH2 0x33C JUMP JUMPDEST PUSH2 0x357 JUMP JUMPDEST SWAP1 PUSH2 0x365 JUMP JUMPDEST PUSH2 0xBFE JUMP JUMPDEST POP PUSH1 0x1C DUP2 EQ PUSH2 0x501 JUMP JUMPDEST POP PUSH2 0x5A3 DUP5 DUP4 PUSH2 0x127 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xFF SHL SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT SWAP2 PUSH2 0x5CF SWAP2 PUSH2 0x5C1 SWAP2 SWAP1 PUSH2 0x257 JUMP JUMPDEST CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 JUMP JUMPDEST AND LT PUSH2 0x480 JUMPI POP PUSH2 0x5DE PUSH2 0x28F JUMP JUMPDEST PUSH2 0x480 JUMP JUMPDEST SWAP3 PUSH2 0x23F SWAP5 PUSH2 0x22B PUSH2 0x22B SWAP3 PUSH2 0x22B PUSH2 0x231 SWAP7 PUSH2 0x22B PUSH2 0x22B SWAP13 SWAP12 SWAP8 PUSH1 0x40 MLOAD SWAP14 DUP15 SWAP12 PUSH1 0x20 DUP14 ADD SWAP1 PUSH2 0x1E4 JUMP JUMPDEST PUSH1 0x1A NOT DUP2 ADD SWAP2 SWAP1 DUP3 GT PUSH2 0x352 JUMPI JUMP JUMPDEST SWAP7 SWAP5 SWAP3 SWAP1 SWAP9 SWAP8 SWAP6 SWAP4 DUP1 SWAP3 PUSH1 0x40 MLOAD SWAP11 DUP12 SWAP10 PUSH1 0x1 PUSH1 0xF8 SHL PUSH1 0x20 DUP13 ADD MSTORE PUSH1 0x21 DUP12 ADD PUSH2 0x645 SWAP2 PUSH2 0x1E4 JUMP JUMPDEST PUSH2 0x64E SWAP2 PUSH2 0x1E4 JUMP JUMPDEST PUSH2 0x657 SWAP2 PUSH2 0x1E4 JUMP JUMPDEST SWAP2 DUP3 CALLDATACOPY ADD PUSH1 0x0 DUP2 MSTORE PUSH2 0x668 SWAP2 PUSH2 0x1E4 JUMP JUMPDEST PUSH2 0x3D1 SWAP2 PUSH2 0x1E4 JUMP JUMPDEST PUSH2 0x6D1 PUSH2 0x67D CHAINID PUSH2 0xBFE JUMP JUMPDEST PUSH2 0x68B PUSH2 0x100 DUP5 ADD CALLDATALOAD PUSH2 0xBFE JUMP JUMPDEST PUSH2 0x698 PUSH1 0xA0 DUP6 ADD CALLDATALOAD PUSH2 0xBFE JUMP JUMPDEST PUSH2 0x6A5 PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH2 0xBFE JUMP JUMPDEST SWAP1 PUSH2 0x6BC PUSH1 0x40 DUP8 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xBBA JUMP JUMPDEST SWAP3 PUSH2 0x6CB PUSH2 0x120 DUP9 ADD CALLDATALOAD PUSH2 0xBFE JUMP JUMPDEST SWAP5 PUSH2 0x5E3 JUMP JUMPDEST PUSH2 0x1C0 DUP3 ADD SWAP2 PUSH1 0x60 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB PUSH2 0x6EB DUP6 DUP5 PUSH2 0x127 JUMP JUMPDEST SWAP1 POP AND SWAP1 PUSH1 0x1 DUP3 EQ ISZERO PUSH1 0x0 EQ PUSH2 0x7EC JUMPI POP PUSH2 0x705 SWAP1 PUSH2 0xC81 JUMP JUMPDEST SWAP3 JUMPDEST PUSH2 0x70F PUSH2 0xD1E JUMP JUMPDEST PUSH2 0x1E0 DUP4 ADD SWAP4 PUSH2 0x71F DUP6 DUP6 PUSH2 0x127 JUMP JUMPDEST PUSH2 0x728 SWAP2 PUSH2 0x2AC JUMP JUMPDEST PUSH2 0x731 SWAP2 PUSH2 0x2CB JUMP JUMPDEST PUSH2 0x73A SWAP1 PUSH2 0xBFE JUMP JUMPDEST SWAP4 PUSH2 0x745 DUP7 DUP3 PUSH2 0x127 JUMP JUMPDEST PUSH2 0x74E SWAP2 PUSH2 0x2BA JUMP JUMPDEST PUSH2 0x757 SWAP2 PUSH2 0x2CB JUMP JUMPDEST PUSH2 0x760 SWAP1 PUSH2 0xBFE JUMP JUMPDEST SWAP6 PUSH2 0x76B SWAP1 DUP3 PUSH2 0x127 JUMP JUMPDEST PUSH2 0x774 SWAP2 PUSH2 0x265 JUMP JUMPDEST PUSH2 0x564 SWAP8 SWAP1 PUSH2 0x7DA SWAP1 PUSH2 0x7A2 SWAP1 PUSH2 0x589 SWAP1 CALLDATALOAD PUSH1 0xF8 SHR PUSH1 0x1B DUP2 EQ DUP1 ISZERO PUSH2 0x7E2 JUMPI JUMPDEST PUSH2 0x79D SWAP1 PUSH2 0x2E8 JUMP JUMPDEST PUSH2 0x60F JUMP JUMPDEST SWAP6 PUSH2 0x7D4 PUSH2 0x551 DUP7 MLOAD DUP6 MLOAD ADD PUSH2 0x7B8 DUP5 DUP9 PUSH2 0x127 JUMP JUMPDEST SWAP1 POP DUP10 MLOAD SWAP2 ADD ADD DUP11 MLOAD ADD DUP12 MLOAD ADD DUP10 MLOAD ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 JUMP JUMPDEST SWAP4 PUSH2 0x127 JUMP JUMPDEST SWAP4 SWAP1 SWAP3 PUSH2 0x61E JUMP JUMPDEST POP PUSH1 0x1C DUP2 EQ PUSH2 0x794 JUMP JUMPDEST SWAP4 SWAP1 POP PUSH2 0x7F9 DUP2 DUP4 PUSH2 0x127 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xFF SHL SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT SWAP2 PUSH2 0x817 SWAP2 PUSH2 0x5C1 SWAP2 SWAP1 PUSH2 0x257 JUMP JUMPDEST AND LT PUSH2 0x707 JUMPI SWAP3 POP PUSH2 0x827 PUSH2 0x28F JUMP JUMPDEST SWAP3 PUSH2 0x707 JUMP JUMPDEST SWAP5 SWAP3 SWAP1 SWAP7 SWAP6 SWAP4 SWAP2 PUSH1 0x40 MLOAD SWAP8 DUP9 SWAP7 PUSH1 0x20 DUP9 ADD PUSH2 0x847 SWAP2 PUSH2 0x1E4 JUMP JUMPDEST PUSH2 0x850 SWAP2 PUSH2 0x1E4 JUMP JUMPDEST PUSH2 0x859 SWAP2 PUSH2 0x1E4 JUMP JUMPDEST PUSH2 0x668 SWAP2 PUSH2 0x1E4 JUMP JUMPDEST SWAP7 SWAP5 SWAP3 SWAP1 SWAP9 SWAP8 SWAP6 SWAP4 DUP1 SWAP3 PUSH1 0x40 MLOAD SWAP11 DUP12 SWAP10 PUSH1 0x1 PUSH1 0xF9 SHL PUSH1 0x20 DUP13 ADD MSTORE PUSH1 0x21 DUP12 ADD PUSH2 0x645 SWAP2 PUSH2 0x1E4 JUMP JUMPDEST PUSH2 0x8F6 PUSH2 0x895 CHAINID PUSH2 0xBFE JUMP JUMPDEST PUSH2 0x8A3 PUSH2 0x100 DUP5 ADD CALLDATALOAD PUSH2 0xBFE JUMP JUMPDEST PUSH2 0x8B0 PUSH1 0xC0 DUP6 ADD CALLDATALOAD PUSH2 0xBFE JUMP JUMPDEST PUSH2 0x8BD PUSH1 0xA0 DUP7 ADD CALLDATALOAD PUSH2 0xBFE JUMP JUMPDEST PUSH2 0x8CA PUSH1 0x60 DUP8 ADD CALLDATALOAD PUSH2 0xBFE JUMP JUMPDEST SWAP2 PUSH2 0x8E1 PUSH1 0x40 DUP9 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xBBA JUMP JUMPDEST SWAP4 PUSH2 0x8F0 PUSH2 0x120 DUP10 ADD CALLDATALOAD PUSH2 0xBFE JUMP JUMPDEST SWAP6 PUSH2 0x82D JUMP JUMPDEST PUSH2 0x1C0 DUP3 ADD SWAP2 PUSH1 0x60 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB PUSH2 0x910 DUP6 DUP5 PUSH2 0x127 JUMP JUMPDEST SWAP1 POP AND SWAP1 PUSH1 0x1 DUP3 EQ ISZERO PUSH1 0x0 EQ PUSH2 0x9C9 JUMPI POP PUSH2 0x92A SWAP1 PUSH2 0xC81 JUMP JUMPDEST SWAP3 JUMPDEST PUSH2 0x934 PUSH2 0xD1E JUMP JUMPDEST PUSH2 0x1E0 DUP4 ADD SWAP4 PUSH2 0x944 DUP6 DUP6 PUSH2 0x127 JUMP JUMPDEST PUSH2 0x94D SWAP2 PUSH2 0x2AC JUMP JUMPDEST PUSH2 0x956 SWAP2 PUSH2 0x2CB JUMP JUMPDEST PUSH2 0x95F SWAP1 PUSH2 0xBFE JUMP JUMPDEST SWAP4 PUSH2 0x96A DUP7 DUP3 PUSH2 0x127 JUMP JUMPDEST PUSH2 0x973 SWAP2 PUSH2 0x2BA JUMP JUMPDEST PUSH2 0x97C SWAP2 PUSH2 0x2CB JUMP JUMPDEST PUSH2 0x985 SWAP1 PUSH2 0xBFE JUMP JUMPDEST SWAP6 PUSH2 0x990 SWAP1 DUP3 PUSH2 0x127 JUMP JUMPDEST PUSH2 0x999 SWAP2 PUSH2 0x265 JUMP JUMPDEST PUSH2 0x564 SWAP8 SWAP1 PUSH2 0x9C1 SWAP1 PUSH2 0x7A2 SWAP1 PUSH2 0x589 SWAP1 CALLDATALOAD PUSH1 0xF8 SHR PUSH1 0x1B DUP2 EQ DUP1 ISZERO PUSH2 0x7E2 JUMPI PUSH2 0x79D SWAP1 PUSH2 0x2E8 JUMP JUMPDEST SWAP4 SWAP1 SWAP3 PUSH2 0x862 JUMP JUMPDEST SWAP4 SWAP1 POP PUSH2 0x9D6 DUP2 DUP4 PUSH2 0x127 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xFF SHL SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT SWAP2 PUSH2 0x9F4 SWAP2 PUSH2 0x5C1 SWAP2 SWAP1 PUSH2 0x257 JUMP JUMPDEST AND LT PUSH2 0x92C JUMPI SWAP3 POP PUSH2 0xA04 PUSH2 0x28F JUMP JUMPDEST SWAP3 PUSH2 0x92C JUMP JUMPDEST ISZERO PUSH2 0xA11 JUMPI JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x6B656363616B3235362072657475726E656420696E76616C6964206461746100 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 SWAP1 REVERT JUMPDEST PUSH1 0x20 DUP2 MLOAD SWAP2 ADD MLOAD SWAP1 PUSH1 0x20 DUP2 LT PUSH2 0x2D9 JUMPI POP SWAP1 JUMP JUMPDEST SWAP1 GAS SWAP2 PUSH1 0x0 SWAP1 PUSH2 0xFFFF SWAP3 DUP3 DUP1 DUP6 DUP2 PUSH2 0xFFEB DUP2 STATICCALL POP DUP1 PUSH2 0xB16 JUMPI POP POP PUSH2 0xA94 PUSH4 0xFFFFFFFF CALLDATASIZE AND PUSH2 0xE35 JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP4 GT PUSH2 0xAE6 JUMPI PUSH2 0xAE3 SWAP3 PUSH2 0xAD1 SWAP3 DUP3 SWAP2 PUSH2 0xAC4 SWAP1 PUSH1 0xC0 SHL PUSH4 0xFFFFFFFF PUSH1 0xC0 SHL AND PUSH1 0x1 PUSH1 0xE0 SHL OR PUSH2 0xE26 JUMP JUMPDEST DUP2 PUSH2 0xFFF6 PUSH2 0x8010 STATICCALL PUSH2 0xB96 JUMP JUMPDEST PUSH2 0xADE PUSH1 0x20 DUP3 MLOAD EQ PUSH2 0xA0A JUMP JUMPDEST PUSH2 0xA56 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x8 PUSH1 0x24 DUP3 ADD MSTORE PUSH8 0x4F766572666C6F77 PUSH1 0xC0 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 SWAP1 REVERT JUMPDEST PUSH4 0xFFFFFFFF SWAP2 DUP4 DUP1 DUP7 DUP2 PUSH2 0xFFE9 DUP8 DUP7 AND STATICCALL POP DUP2 ADD DUP1 SWAP2 GT PUSH2 0x352 JUMPI CALLDATASIZE SUB SWAP1 CALLDATASIZE DUP3 GT PUSH2 0x352 JUMPI PUSH2 0xB45 SWAP2 AND PUSH2 0xE35 JUMP JUMPDEST PUSH2 0xA94 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 PUSH2 0xB57 DUP3 PUSH2 0x174 JUMP JUMPDEST PUSH1 0x1 DUP3 MSTORE PUSH1 0x20 CALLDATASIZE DUP2 DUP5 ADD CALLDATACOPY JUMP JUMPDEST SWAP1 PUSH2 0xB6E DUP3 PUSH2 0x274 JUMP JUMPDEST PUSH2 0xB7B PUSH1 0x40 MLOAD SWAP2 DUP3 PUSH2 0x194 JUMP JUMPDEST DUP3 DUP2 MSTORE DUP1 SWAP3 PUSH2 0xB8C PUSH1 0x1F NOT SWAP2 PUSH2 0x274 JUMP JUMPDEST ADD SWAP1 PUSH1 0x20 CALLDATASIZE SWAP2 ADD CALLDATACOPY JUMP JUMPDEST ISZERO PUSH2 0xBB0 JUMPI RETURNDATASIZE SWAP1 PUSH2 0xBA6 DUP3 PUSH2 0xB64 JUMP JUMPDEST SWAP2 PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY JUMP JUMPDEST RETURNDATASIZE DUP1 PUSH1 0x0 DUP1 RETURNDATACOPY PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x40 MLOAD PUSH2 0xBC7 DUP2 PUSH2 0x174 JUMP JUMPDEST PUSH1 0x15 DUP2 MSTORE PUSH1 0x25 PUSH1 0xFA SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x60 SWAP3 SWAP1 SWAP3 SHL PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x21 DUP4 ADD MSTORE JUMP JUMPDEST DUP1 MLOAD ISZERO PUSH2 0x260 JUMPI PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST SWAP1 PUSH1 0x80 DUP3 LT ISZERO PUSH2 0xC3E JUMPI PUSH2 0xC10 PUSH2 0xB4A JUMP JUMPDEST SWAP2 DUP1 PUSH2 0xC2C JUMPI POP PUSH1 0x1 PUSH1 0xFF SHL JUMPDEST PUSH1 0x0 BYTE PUSH2 0xC29 DUP4 PUSH2 0xBF1 JUMP JUMPDEST MSTORE8 JUMP JUMPDEST PUSH1 0xF8 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND PUSH2 0xC1D JUMP JUMPDEST PUSH2 0xC47 DUP3 PUSH2 0xD9E JUMP JUMPDEST SWAP2 PUSH2 0xC54 PUSH1 0x2 DUP5 ADD PUSH2 0xB64 JUMP JUMPDEST SWAP3 PUSH1 0x81 DUP2 ADD PUSH1 0xF8 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND PUSH1 0x0 BYTE PUSH2 0xC72 DUP6 PUSH2 0xBF1 JUMP JUMPDEST MSTORE8 PUSH1 0x1F SUB PUSH1 0x3 SHL SHL PUSH1 0x21 DUP4 ADD MSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x1 DUP2 EQ PUSH2 0xD08 JUMPI PUSH1 0x38 DUP2 LT ISZERO PUSH2 0xCC4 JUMPI PUSH2 0xCA3 PUSH2 0xB4A JUMP JUMPDEST SWAP1 PUSH1 0x80 ADD PUSH1 0xF8 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND PUSH1 0x0 BYTE PUSH2 0xCC0 DUP3 PUSH2 0xBF1 JUMP JUMPDEST MSTORE8 SWAP1 JUMP JUMPDEST PUSH2 0xCCD DUP2 PUSH2 0xD9E JUMP JUMPDEST SWAP1 PUSH2 0xCDA PUSH1 0x2 DUP4 ADD PUSH2 0xB64 JUMP JUMPDEST SWAP2 PUSH1 0xB8 DUP2 ADD PUSH1 0xF8 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND PUSH1 0x0 BYTE PUSH2 0xCF8 DUP5 PUSH2 0xBF1 JUMP JUMPDEST MSTORE8 PUSH1 0x1F SUB PUSH1 0x3 SHL SHL PUSH1 0x21 DUP3 ADD MSTORE SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0xD26 PUSH2 0xB4A JUMP JUMPDEST SWAP1 PUSH1 0xC0 PUSH2 0xC29 DUP4 PUSH2 0xBF1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 PUSH1 0x38 DUP3 LT ISZERO PUSH2 0xD6A JUMPI PUSH2 0xD4D PUSH2 0xB4A JUMP JUMPDEST SWAP2 PUSH1 0xC0 ADD PUSH1 0xF8 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND PUSH1 0x0 BYTE PUSH2 0xC29 DUP4 PUSH2 0xBF1 JUMP JUMPDEST PUSH2 0xD73 DUP3 PUSH2 0xD9E JUMP JUMPDEST SWAP2 PUSH2 0xD80 PUSH1 0x2 DUP5 ADD PUSH2 0xB64 JUMP JUMPDEST SWAP3 PUSH1 0xF8 DUP1 DUP3 ADD SWAP1 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND PUSH1 0x0 BYTE PUSH2 0xC72 DUP6 PUSH2 0xBF1 JUMP JUMPDEST SWAP1 PUSH1 0x0 SWAP2 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 GT PUSH2 0xE1A JUMPI JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB PUSH1 0xFF SWAP3 GT PUSH2 0xE0C JUMPI JUMPDEST PUSH4 0xFFFFFFFF DUP2 GT PUSH2 0xDFE JUMPI JUMPDEST PUSH2 0xFFFF DUP2 GT PUSH2 0xDF0 JUMPI JUMPDEST GT PUSH2 0xDE9 JUMPI JUMP JUMPDEST SWAP1 PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x2 SWAP1 PUSH1 0x10 SHR SWAP4 ADD SWAP3 PUSH2 0xDE2 JUMP JUMPDEST PUSH1 0x4 SWAP1 PUSH1 0x20 SHR SWAP4 ADD SWAP3 PUSH2 0xDD8 JUMP JUMPDEST PUSH1 0x8 SWAP1 PUSH1 0x40 SHR SWAP4 ADD SWAP3 PUSH2 0xDCC JUMP JUMPDEST PUSH1 0x10 SWAP3 POP PUSH1 0x80 SHR PUSH2 0xDBA JUMP JUMPDEST PUSH1 0x0 PUSH2 0xFFFF DUP2 PUSH2 0xFFE7 DUP2 SWAP5 STATICCALL POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xFFFF DUP2 PUSH2 0xFFE8 PUSH4 0xFFFFFFFF DUP3 SWAP6 AND STATICCALL POP JUMP JUMPDEST DUP1 CALLDATALOAD DUP1 PUSH2 0xE5B JUMPI POP PUSH2 0xAE3 SWAP1 PUSH2 0x11C7 JUMP JUMPDEST PUSH1 0x71 DUP2 SUB PUSH2 0xE6D JUMPI POP PUSH2 0xAE3 SWAP1 PUSH2 0xF24 JUMP JUMPDEST PUSH1 0x2 DUP2 SUB PUSH2 0xE7F JUMPI POP PUSH2 0xAE3 SWAP1 PUSH2 0x141B JUMP JUMPDEST PUSH1 0x1 SUB PUSH2 0xE8F JUMPI PUSH2 0xAE3 SWAP1 PUSH2 0x132E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x456E636F64696E6720756E737570706F72746564207478000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 SWAP1 REVERT JUMPDEST SWAP1 CALLDATALOAD SWAP1 PUSH1 0x1E NOT DUP2 CALLDATASIZE SUB ADD DUP3 SLT ISZERO PUSH2 0x159 JUMPI ADD DUP1 CALLDATALOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT PUSH2 0x159 JUMPI PUSH1 0x20 ADD SWAP2 DUP2 PUSH1 0x5 SHL CALLDATASIZE SUB DUP4 SGT PUSH2 0x159 JUMPI JUMP JUMPDEST SWAP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xFB SHL SUB DUP2 GT PUSH2 0x159 JUMPI PUSH1 0x5 SHL DUP1 SWAP3 DUP3 CALLDATACOPY ADD SWAP1 JUMP JUMPDEST PUSH2 0x1127 PUSH2 0x1133 PUSH2 0xF62 SWAP3 PUSH2 0xF3F PUSH2 0x88 PUSH2 0x1C0 DUP4 ADD DUP4 PUSH2 0x127 JUMP JUMPDEST PUSH2 0x105F PUSH2 0xF50 PUSH2 0x200 DUP5 ADD DUP5 PUSH2 0xED4 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP8 PUSH1 0x20 DUP10 ADD SWAP3 DUP10 SWAP3 DUP5 SWAP2 PUSH2 0xF09 JUMP JUMPDEST SUB SWAP7 PUSH2 0xF76 PUSH1 0x1F NOT SWAP9 DUP10 DUP2 ADD DUP4 MSTORE DUP3 PUSH2 0x194 JUMP JUMPDEST MLOAD SWAP1 KECCAK256 SWAP2 PUSH2 0x1053 PUSH2 0xF8E PUSH2 0x88 PUSH2 0x220 DUP8 ADD DUP8 PUSH2 0x127 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP5 DUP6 SWAP4 PUSH1 0x20 DUP6 ADD SWAP8 PUSH2 0x120 DUP2 ADD CALLDATALOAD SWAP1 PUSH2 0x100 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xE0 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xC0 DUP2 ADD CALLDATALOAD SWAP1 DUP13 PUSH1 0xA0 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0x80 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x60 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0x40 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x20 DUP3 ADD CALLDATALOAD SWAP2 CALLDATALOAD SWAP1 SWAP10 SWAP7 SWAP4 SWAP1 SWAP14 SWAP13 SWAP12 SWAP9 SWAP6 SWAP3 PUSH2 0x1A0 SWAP12 SWAP9 SWAP6 SWAP3 PUSH2 0x1C0 DUP13 ADD SWAP16 PUSH32 0x848E1BFA1AC4E3576B728BDA6721B215C70A7799A5B4866282A71BAB954BAAC8 DUP14 MSTORE PUSH1 0x20 DUP14 ADD MSTORE PUSH1 0x40 DUP13 ADD MSTORE PUSH1 0x60 DUP12 ADD MSTORE PUSH1 0x80 DUP11 ADD MSTORE PUSH1 0xA0 DUP10 ADD MSTORE PUSH1 0xC0 DUP9 ADD MSTORE PUSH1 0xE0 DUP8 ADD MSTORE PUSH2 0x100 DUP7 ADD MSTORE PUSH2 0x120 DUP6 ADD MSTORE PUSH2 0x140 DUP5 ADD MSTORE PUSH2 0x160 DUP4 ADD MSTORE PUSH2 0x180 DUP3 ADD MSTORE ADD MSTORE JUMP JUMPDEST SUB DUP7 DUP2 ADD DUP4 MSTORE DUP3 PUSH2 0x194 JUMP JUMPDEST MLOAD SWAP1 KECCAK256 SWAP3 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x10FC DUP2 PUSH2 0x10F0 CHAINID DUP6 SWAP2 SWAP1 PUSH1 0x60 PUSH1 0x80 DUP5 ADD SWAP4 PUSH32 0xC2F8787176B8AC6BF7215B4ADCC1E069BF4AB82D9AB1DF05A57A91D425935B6E DUP2 MSTORE PUSH32 0x19B453CE45AAAAF3A300F5A9EC95869B4F28AB10430B572EE218C3A6A5E07D6F PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0xAD7C5BEF027816A800DA1736444FB58A807EF4C9603B7848673F7E3A68EB14A5 PUSH1 0x40 DUP3 ADD MSTORE ADD MSTORE JUMP JUMPDEST SUB DUP5 DUP2 ADD DUP4 MSTORE DUP3 PUSH2 0x194 JUMP JUMPDEST MLOAD SWAP1 KECCAK256 SWAP4 PUSH1 0x40 MLOAD SWAP4 DUP5 SWAP2 PUSH1 0x20 DUP4 ADD SWAP7 DUP8 SWAP1 SWAP2 PUSH1 0x42 SWAP3 PUSH2 0x1901 PUSH1 0xF0 SHL DUP4 MSTORE PUSH1 0x2 DUP4 ADD MSTORE PUSH1 0x22 DUP3 ADD MSTORE ADD SWAP1 JUMP JUMPDEST SUB SWAP1 DUP2 ADD DUP4 MSTORE DUP3 PUSH2 0x194 JUMP JUMPDEST MLOAD SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST SWAP1 PUSH2 0x23F PUSH1 0x2 PUSH2 0x1153 SWAP4 PUSH1 0x40 MLOAD SWAP5 DUP6 SWAP2 PUSH1 0x20 DUP4 ADD SWAP1 PUSH2 0x1E4 JUMP JUMPDEST PUSH2 0x101 PUSH1 0xF7 SHL DUP2 MSTORE SUB PUSH1 0x1D NOT DUP2 ADD DUP6 MSTORE ADD DUP4 PUSH2 0x194 JUMP JUMPDEST SWAP7 SWAP5 SWAP2 SWAP3 DUP6 SWAP4 SWAP10 SWAP9 SWAP7 SWAP5 SWAP2 SWAP10 PUSH1 0x40 MLOAD SWAP11 DUP12 SWAP10 PUSH1 0x20 DUP12 ADD PUSH2 0x1189 SWAP2 PUSH2 0x1E4 JUMP JUMPDEST PUSH2 0x1192 SWAP2 PUSH2 0x1E4 JUMP JUMPDEST PUSH2 0x119B SWAP2 PUSH2 0x1E4 JUMP JUMPDEST PUSH2 0x11A4 SWAP2 PUSH2 0x1E4 JUMP JUMPDEST PUSH2 0x11AD SWAP2 PUSH2 0x1E4 JUMP JUMPDEST PUSH2 0x11B6 SWAP2 PUSH2 0x1E4 JUMP JUMPDEST SWAP2 DUP3 CALLDATACOPY ADD PUSH1 0x0 DUP2 MSTORE PUSH2 0x3E3 SWAP2 PUSH2 0x1E4 JUMP JUMPDEST PUSH2 0x564 SWAP1 PUSH2 0x11D9 PUSH2 0x100 DUP3 ADD CALLDATALOAD PUSH2 0xBFE JUMP JUMPDEST PUSH2 0x11E9 PUSH2 0x413 PUSH1 0xA0 DUP5 ADD CALLDATALOAD PUSH2 0xBFE JUMP JUMPDEST SWAP2 PUSH2 0x1200 PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xBBA JUMP JUMPDEST SWAP3 PUSH2 0x120F PUSH2 0x120 DUP4 ADD CALLDATALOAD PUSH2 0xBFE JUMP JUMPDEST PUSH2 0x1C0 DUP4 ADD SWAP5 PUSH1 0x60 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB PUSH2 0x1229 DUP9 DUP8 PUSH2 0x127 JUMP JUMPDEST SWAP1 POP AND SWAP1 PUSH1 0x1 DUP3 EQ ISZERO PUSH1 0x0 EQ PUSH2 0x12AE JUMPI POP PUSH2 0x1243 SWAP1 PUSH2 0xC81 JUMP JUMPDEST SWAP3 JUMPDEST PUSH1 0x60 SWAP7 PUSH2 0x140 DUP7 ADD CALLDATALOAD PUSH2 0x1290 JUMPI JUMPDEST PUSH2 0x1288 SWAP1 PUSH2 0x556 PUSH2 0x551 DUP10 MLOAD DUP6 MLOAD ADD DUP7 MLOAD ADD DUP8 MLOAD ADD DUP9 MLOAD ADD PUSH2 0x1275 DUP5 DUP12 PUSH2 0x127 JUMP JUMPDEST SWAP1 POP DUP13 MLOAD SWAP2 ADD ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 JUMP JUMPDEST SWAP7 SWAP1 SWAP6 PUSH2 0x116A JUMP JUMPDEST SWAP7 POP PUSH2 0x1288 PUSH2 0x12A6 PUSH2 0x12A1 CHAINID PUSH2 0xBFE JUMP JUMPDEST PUSH2 0x1139 JUMP JUMPDEST SWAP8 SWAP1 POP PUSH2 0x1253 JUMP JUMPDEST SWAP4 SWAP1 POP PUSH2 0x12BB DUP8 DUP7 PUSH2 0x127 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xFF SHL SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT SWAP2 PUSH2 0x12D9 SWAP2 PUSH2 0x5C1 SWAP2 SWAP1 PUSH2 0x257 JUMP JUMPDEST AND LT PUSH2 0x1245 JUMPI SWAP3 POP PUSH2 0x12E9 PUSH2 0x28F JUMP JUMPDEST SWAP3 PUSH2 0x1245 JUMP JUMPDEST SWAP3 SWAP4 PUSH2 0x23F SWAP5 DUP2 PUSH2 0x1320 PUSH2 0x231 SWAP6 PUSH2 0x22B PUSH2 0x22B SWAP12 SWAP11 SWAP7 PUSH1 0x40 MLOAD SWAP13 DUP14 SWAP11 PUSH1 0x1 PUSH1 0xF8 SHL PUSH1 0x20 DUP14 ADD MSTORE PUSH1 0x21 DUP13 ADD SWAP1 PUSH2 0x1E4 JUMP JUMPDEST SWAP2 DUP3 CALLDATACOPY ADD SWAP1 PUSH1 0x0 DUP3 MSTORE PUSH2 0x1E4 JUMP JUMPDEST PUSH2 0x564 SWAP1 PUSH2 0x133E PUSH2 0x67D CHAINID PUSH2 0xBFE JUMP JUMPDEST PUSH2 0x1C0 DUP3 ADD SWAP2 PUSH1 0x60 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB PUSH2 0x1358 DUP6 DUP5 PUSH2 0x127 JUMP JUMPDEST SWAP1 POP AND PUSH1 0x1 DUP2 EQ ISZERO PUSH1 0x0 EQ PUSH2 0x13AD JUMPI PUSH2 0x1371 SWAP2 POP PUSH2 0xC81 JUMP JUMPDEST PUSH2 0x13A5 PUSH2 0x137C PUSH2 0xD1E JUMP JUMPDEST SWAP5 PUSH2 0x7D4 PUSH2 0x551 DUP7 MLOAD DUP6 MLOAD ADD PUSH2 0x1392 DUP5 DUP9 PUSH2 0x127 JUMP JUMPDEST SWAP1 POP DUP10 MLOAD SWAP2 ADD ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 JUMP JUMPDEST SWAP4 SWAP1 SWAP3 PUSH2 0x12EF JUMP JUMPDEST POP PUSH2 0x13B8 DUP5 DUP4 PUSH2 0x127 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xFF SHL SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT SWAP2 PUSH2 0x13D6 SWAP2 PUSH2 0x5C1 SWAP2 SWAP1 PUSH2 0x257 JUMP JUMPDEST AND LT PUSH2 0x1371 JUMPI POP PUSH2 0x13E5 PUSH2 0x28F JUMP JUMPDEST PUSH2 0x1371 JUMP JUMPDEST SWAP3 SWAP4 PUSH2 0x23F SWAP5 DUP2 PUSH2 0x1320 PUSH2 0x231 SWAP6 PUSH2 0x22B PUSH2 0x22B SWAP12 SWAP11 SWAP7 PUSH1 0x40 MLOAD SWAP13 DUP14 SWAP11 PUSH1 0x1 PUSH1 0xF9 SHL PUSH1 0x20 DUP14 ADD MSTORE PUSH1 0x21 DUP13 ADD SWAP1 PUSH2 0x1E4 JUMP JUMPDEST PUSH2 0x564 SWAP1 PUSH2 0x142B PUSH2 0x895 CHAINID PUSH2 0xBFE JUMP JUMPDEST PUSH2 0x1C0 DUP3 ADD SWAP2 PUSH1 0x60 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB PUSH2 0x1445 DUP6 DUP5 PUSH2 0x127 JUMP JUMPDEST SWAP1 POP AND PUSH1 0x1 DUP2 EQ ISZERO PUSH1 0x0 EQ PUSH2 0x1471 JUMPI PUSH2 0x145E SWAP2 POP PUSH2 0xC81 JUMP JUMPDEST PUSH2 0x1469 PUSH2 0x137C PUSH2 0xD1E JUMP JUMPDEST SWAP4 SWAP1 SWAP3 PUSH2 0x13EA JUMP JUMPDEST POP PUSH2 0x147C DUP5 DUP4 PUSH2 0x127 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xFF SHL SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT SWAP2 PUSH2 0x149A SWAP2 PUSH2 0x5C1 SWAP2 SWAP1 PUSH2 0x257 JUMP JUMPDEST AND LT PUSH2 0x145E JUMPI POP PUSH2 0x14A9 PUSH2 0x28F JUMP JUMPDEST PUSH2 0x145E JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x1E 0xC6 0x22 ADD PC 0x1E SIGNEXTEND 0xC2 0xCE SLT PUSH10 0xF0FB33FCD1A9BB5ABF85 PUSH15 0x4634E565726BA47CF39864736F6C63 NUMBER STOP ADDMOD SLT STOP CALLER ","sourceMap":"373:13530:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;373:13530:0;;;;;;;;;;-1:-1:-1;;;;;373:13530:0;;;;;;;;;;;;;;;;1070:25;;;;:::i;:::-;373:13530;;;494:4:18;1109:38:0;;494:4:18;;1230:22:0;;1182:72;1230:22;;1209:44;1230:22;;;;:::i;:::-;1209:44;;:::i;:::-;1182:72;;:::i;:::-;373:13530;662:4:18;;;;1172:83:0;1105:599;373:13530;;;;;;;;;;;;;;1105:599;1276:37;-1:-1:-1;1276:37:0;;;1338:41;;;;:::i;:::-;1105:599;;1272:432;748:4:18;1400:39:0;;748:4:18;;1464:42:0;;;;:::i;1396:308::-;662:4:18;1527:39:0;662:4:18;;1591:42:0;;;:::i;1523:181::-;373:13530;;-1:-1:-1;;;1664:29:0;;662:4:18;373:13530:0;1664:29;;662:4:18;;;;;;-1:-1:-1;;;662:4:18;;;;;;1664:29:0;373:13530;;;;;;;662:4:18;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;662:4:18;;;;;;;;;;;;;;:::o;:::-;373:13530:0;;;662:4:18;;;;;;;;;;;;;373:13530:0;662:4:18;;;;;-1:-1:-1;;;;;662:4:18;;;;;373:13530:0;662:4:18;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;662:4:18;;;;;;;:::o;:::-;;;373:13530:0;;662:4:18;;;;373:13530:0;;662:4:18;;373:13530:0;;662:4:18;;;;;;;;-1:-1:-1;;;;;662:4:18;;;;;373:13530:0;662:4:18;:::o;373:13530:0:-;;662:4:18;;373:13530:0;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;662:4:18;;373:13530:0;;;;;;:::i;:::-;:::o;:::-;662:4:18;;;373:13530:0;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;2959:15;373:13530;;;;2959:15;373:13530;;:::o;:::-;-1:-1:-1;;;;;373:13530:0;;;;662:4:18;;-1:-1:-1;;662:4:18;373:13530:0;;;:::o;:::-;;;;;;;:::i;:::-;;;;-1:-1:-1;;;373:13530:0;;;;:::o;:::-;;4063:2;373:13530;;;;4063:2;373:13530;:::o;:::-;;2959:15;373:13530;;;4063:2;373:13530;;4063:2;373:13530;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;:::o;:::-;;;-1:-1:-1;;;373:13530:0;;;;;;;;;;;662:4:18;-1:-1:-1;;;662:4:18;;;373:13530:0;;;;;662:4:18;;;373:13530:0;;;;;;;;;;;;;;;;;4788:1;373:13530;;;;;;;:::o;:::-;;:::i;:::-;4768:1;373:13530;;;4768:1;373:13530;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;;;;;-1:-1:-1;373:13530:0;;;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;;662:4:18;;373:13530:0;;;;;;;;:::i;1882:4020::-;2426:44;2451:18;;;373:13530;2426:44;:::i;:::-;2826:46;2651:51;2676:25;;;373:13530;2651:51;:::i;:::-;2747:47;373:13530;2772:21;;373:13530;2747:47;:::i;:::-;2826:46;;:::i;:::-;373:13530;2918:59;2959:15;;;373:13530;-1:-1:-1;;;;;373:13530:0;2918:59;:::i;:::-;3040:18;3015:44;3040:18;;;373:13530;3015:44;:::i;:::-;3235:30;3403:17;;;;373:13530;-1:-1:-1;;;;;3403:17:0;;;;:::i;:::-;373:13530;;;;3446:14;;;3442:441;3459:1;;;3611:45;;;;:::i;:::-;4038:22;;;;;;;;:::i;:::-;:28;;;:::i;:::-;4030:37;;;:::i;:::-;4093:30;;;:::i;:::-;4219:22;;;;;:::i;:::-;:29;;;:::i;:::-;4211:38;;;:::i;:::-;4275:30;;;:::i;:::-;4399:22;;;;;:::i;:::-;:26;;;:::i;:::-;5508:373;;4449:10;5756:17;;4829:30;;4399:26;373:13530;;4457:2;4449:10;;:24;;;;3442:441;4441:52;;;:::i;:::-;4711:21;;;373:13530;4707:97;;4829:30;:::i;:::-;662:4:18;2171:25:15;5422:18:0;662:4:18;;;;373:13530:0;662:4:18;;373:13530:0;662:4:18;;373:13530:0;662:4:18;;373:13530:0;5160:17;;;;:::i;:::-;662:4:18;;;;373:13530:0;;;662:4:18;;373:13530:0;662:4:18;;373:13530:0;-1:-1:-1;;;;;373:13530:0;;;5422:18;2171:25:15;:::i;:::-;5756:17:0;;:::i;:::-;5508:373;;;;:::i;:::-;4063:2;662:4:18;;;;5481:414:0;1882:4020;:::o;4707:97::-;4760:29;4772:13;4768:21;4772:17;:13;:17;:::i;:::-;4768:21;:::i;:::-;4760:29;;:::i;:::-;4829:30;:::i;4449:24::-;-1:-1:-1;4471:2:0;4463:10;;4449:24;;3442:441;3681:17;;;;;:::i;:::-;-1:-1:-1;;;373:13530:0;-1:-1:-1;;;;;;373:13530:0;3681:20;;;;373:13530;3681:20;:::i;:::-;;-1:-1:-1;;;;;;373:13530:0;;;3681:20;373:13530;3681:28;3442:441;3677:206;373:13530;;;:::i;:::-;3442:441;;373:13530;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;373:13530:0;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;;;;;-1:-1:-1;373:13530:0;;;;;:::i;:::-;;;;:::i;6077:3663::-;6895:211;6357:39;6382:13;6357:39;:::i;:::-;6438:44;6463:18;;;373:13530;6438:44;:::i;:::-;6527:51;6552:25;;;373:13530;6527:51;:::i;:::-;6623:47;373:13530;6648:21;;373:13530;6623:47;:::i;:::-;373:13530;6709:59;6750:15;;;373:13530;-1:-1:-1;;;;;373:13530:0;6709:59;:::i;:::-;6835:18;6810:44;6835:18;;;373:13530;6810:44;:::i;:::-;6895:211;;:::i;:::-;7461:17;;;;373:13530;-1:-1:-1;;;;;7461:17:0;;;;:::i;:::-;373:13530;;;7504:14;373:13530;7504:14;;;7500:441;7517:1;;;7669:45;;;;:::i;:::-;7500:441;;2171:25:15;;:::i;:::-;8251:22:0;;;;;;;;:::i;:::-;:28;;;:::i;:::-;8243:37;;;:::i;:::-;8306:30;;;:::i;:::-;8432:22;;;;;:::i;:::-;:29;;;:::i;:::-;8424:38;;;:::i;:::-;8488:30;;;:::i;:::-;8612:22;;;;;:::i;:::-;:26;;;:::i;:::-;9363:356;;8662:10;9549:17;;8732:35;;8757:9;;8612:26;373:13530;;8670:2;8662:10;;:24;;;;7500:441;8654:52;;;:::i;:::-;8757:9;:::i;8732:35::-;662:4:18;2171:25:15;9277:18:0;662:4:18;;;;373:13530:0;8966:17;;;;:::i;:::-;662:4:18;;;;373:13530:0;;;662:4:18;;373:13530:0;662:4:18;;373:13530:0;662:4:18;;373:13530:0;-1:-1:-1;;;;;373:13530:0;;;2171:25:15;9549:17:0;;:::i;:::-;9363:356;;;;:::i;8662:24::-;-1:-1:-1;8684:2:0;8676:10;;8662:24;;7500:441;7739:17;;;;;;;:::i;:::-;-1:-1:-1;;;373:13530:0;-1:-1:-1;;;;;;373:13530:0;7739:20;;;;373:13530;7739:20;:::i;:::-;373:13530;7739:28;7500:441;7735:206;373:13530;;;;:::i;:::-;7735:206;7500:441;;373:13530;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;9914:3987::-;11007:260;10349:39;10374:13;10349:39;:::i;:::-;10430:44;10455:18;;;373:13530;10430:44;:::i;:::-;10531:59;10556:33;;;373:13530;10531:59;:::i;:::-;10639:51;10664:25;;;373:13530;10639:51;:::i;:::-;10735:47;373:13530;10760:21;;373:13530;10735:47;:::i;:::-;373:13530;10821:59;10862:15;;;373:13530;-1:-1:-1;;;;;373:13530:0;10821:59;:::i;:::-;10947:18;10922:44;10947:18;;;373:13530;10922:44;:::i;:::-;11007:260;;:::i;:::-;11622:17;;;;373:13530;-1:-1:-1;;;;;11622:17:0;;;;:::i;:::-;373:13530;;;11665:14;373:13530;11665:14;;;11661:441;11678:1;;;11830:45;;;;:::i;:::-;11661:441;;2171:25:15;;:::i;:::-;12412:22:0;;;;;;;;:::i;:::-;:28;;;:::i;:::-;12404:37;;;:::i;:::-;12467:30;;;:::i;:::-;12593:22;;;;;:::i;:::-;:29;;;:::i;:::-;12585:38;;;:::i;:::-;12649:30;;;:::i;:::-;12773:22;;;;;:::i;:::-;:26;;;:::i;:::-;13524:356;;12823:10;13710:17;;12893:35;;12918:9;;12773:26;373:13530;;12831:2;12823:10;;:24;;;;12815:52;;;:::i;13710:17::-;13524:356;;;;:::i;11661:441::-;11900:17;;;;;;;:::i;:::-;-1:-1:-1;;;373:13530:0;-1:-1:-1;;;;;;373:13530:0;11900:20;;;;373:13530;11900:20;:::i;:::-;373:13530;11900:28;11661:441;11896:206;373:13530;;;;:::i;:::-;11896:206;11661:441;;2560:39:1;;;;:::o;:::-;373:13530:0;;-1:-1:-1;;;2560:39:1;;;;;;;;;;;662:4:18;2560:39:1;662:4:18;;;2560:39:1;;;;;662:4:18;;;;;2560:39:1;;662:4:18;2560:39:1;;;;;;:::o;2227:281:14:-;;2344:9;-1:-1:-1;;2936:78:16;;;;;;;1878:14:17;2936:78:16;;-1:-1:-1;11641:17:14;;;11798:8;;11791:23;373:13530:0;11798:8:14;373:13530:0;11791:23:14;:::i;:::-;373:13530:0;857:22:19;;373:13530:0;;2482:19:14;;4195:26;;373:13530:0;;12715:10:14;;373:13530:0;;-1:-1:-1;;;373:13530:0;-1:-1:-1;;;11333:61:17;12715:10:14;:::i;:::-;7809:91;1076:14:17;682:6:1;7809:91:14;4195:26;:::i;:::-;2398:67;2427:2;662:4:18;;2406:23:14;2398:67;:::i;:::-;2482:19;:::i;:::-;2227:281;:::o;373:13530:0:-;;;-1:-1:-1;;;373:13530:0;;;;;;;;;;;662:4:18;-1:-1:-1;;;662:4:18;;;373:13530:0;;;;11637:698:14;373:13530:0;;;;;;2051:14:17;373:13530:0;;;4007:214:16;;373:13530:0;;;;;;;12214:8:14;373:13530:0;12214:8:14;;373:13530:0;;;;12315:8:14;373:13530:0;;12315:8:14;:::i;:::-;11637:698;;373:13530:0;;;;;;;:::i;:::-;860:1:15;373:13530:0;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;662:4:18;373:13530:0;662:4:18;;373:13530:0;;:::i;:::-;;;;;;;;:::o;10097:425:14:-;10196:320;;;10250:65;10342:15;;;;:::i;:::-;10371:87;-1:-1:-1;10371:87:14;;;;10097:425::o;10196:320::-;10657:128;;;;;;;83:601:15;;373:13530:0;;;;;:::i;:::-;296:4:15;373:13530:0;;-1:-1:-1;;;373:13530:0;;;356:322:15;373:13530:0;;;;;-1:-1:-1;;373:13530:0;356:322:15;;;;83:601::o;373:13530:0:-;662:4:18;;373:13530:0;;;;;;:::o;690:768:15:-;;817:3;810:10;;817:3;;;850:12;;:::i;:::-;994:54;995:9;;;-1:-1:-1;;;;994:54:15;1003:1;981:67;;;;:::i;:::-;;690:768::o;994:54::-;373:13530:0;;-1:-1:-1;;;;;;373:13530:0;994:54:15;;806:636;1101:21;;;:::i;:::-;373:13530:0;1151:18:15;1167:1;373:13530:0;;1151:18:15;:::i;:::-;373:13530:0;1219:4:15;373:13530:0;;;;-1:-1:-1;;;;;;373:13530:0;1195:1:15;1187:38;;373:13530:0;1187:38:15;:::i;:::-;;1258:2;373:13530:0;;;;1341:87:15;;;;690:768::o;1734:159::-;-1:-1:-1;;;;;373:13530:0;1842:1:15;1834:9;;373:13530:0;;2351:2:15;2344:9;;2351:2;;;2383:12;;:::i;:::-;373:13530:0;1881:4:15;373:13530:0;;;-1:-1:-1;;;;;;373:13530:0;-1:-1:-1;2413:42:15;;373:13530:0;2413:42:15;:::i;:::-;;1734:159;:::o;2340:535::-;2508:30;;;:::i;:::-;373:13530:0;2567:18:15;2583:1;373:13530:0;;2567:18:15;:::i;:::-;373:13530:0;;;;;;-1:-1:-1;;;;;;373:13530:0;-1:-1:-1;2603:46:15;;373:13530:0;2603:46:15;:::i;:::-;;2682:2;373:13530:0;;;;2774:87:15;;;;1734:159;:::o;373:13530:0:-;662:4:18;;;373:13530:0;;1842:1:15;373:13530:0;;;;;2209:682:15;2383:12;;:::i;:::-;2413:42;2191:4;2413:42;;;:::i;2209:682::-;-1:-1:-1;;;;;373:13530:0;;2351:2:15;2344:9;;2351:2;;;2383:12;;:::i;:::-;373:13530:0;2191:4:15;373:13530:0;;;-1:-1:-1;;;;;;373:13530:0;2421:1:15;2413:42;;373:13530:0;2413:42:15;:::i;2340:535::-;2508:30;;;:::i;:::-;373:13530:0;2567:18:15;2583:1;373:13530:0;;2567:18:15;:::i;:::-;373:13530:0;;;;;;;-1:-1:-1;;;;;;373:13530:0;2611:1:15;2603:46;;373:13530:0;2603:46:15;:::i;3089:674::-;;373:13530:0;3204:27:15;373:13530:0;3204:27:15;;3200:108;;3089:674;3325:26;-1:-1:-1;;;;;373:13530:0;3325:26:15;;3321:105;;3089:674;373:13530:0;3443:26:15;;3439:105;;3089:674;373:13530:0;3561:26:15;;3557:105;;3089:674;3679:25;3675:72;;3089:674::o;3675:72::-;373:13530:0;3731:1:15;373:13530:0;3675:72:15;3089:674::o;3557:105::-;3646:1;373:13530:0;;;;;3557:105:15;;;3439;3528:1;373:13530:0;;;;;3439:105:15;;;3321;3410:1;373:13530:0;;;;;3321:105:15;;;3200:108;3291:2;;-1:-1:-1;373:13530:0;;3200:108:15;;3383:231:16;3520:88;;3383:231;2209:14:17;3383:231:16;;3520:88;;3383:231::o;4456:399::-;4632:217;;4456:399;2131:14:17;238:10:16;4456:399;;4632:217;;;4456:399::o;4285:842:18:-;373:13530:0;;4397:37:18;;;4463:42;;;;:::i;4393:728::-;494:4;4526:38;;494:4;;4593:42;;;;:::i;4522:599::-;748:4;4656:39;;748:4;;4724:43;;;;:::i;4652:469::-;662:4;4788:39;662:4;;4856:43;;;:::i;4784:337::-;373:13530:0;;-1:-1:-1;;;5077:33:18;;373:13530:0;5077:33:18;;;373:13530:0;;;;;662:4:18;373:13530:0;662:4:18;;;373:13530:0;;;5077:33:18;3317:284;;;662:4;;;3317:284;;;;;;;;;;;;;-1:-1:-1;;;;;3317:284:18;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;3317:284:18;;;;;;;;;;;;:::o;5284:1085::-;6304:57;;3317:284;5284:1085;5919:39;5940:17;;;;;;:::i;5919:39::-;5442:668;6003:24;;;;;;:::i;:::-;5588:15;373:13530:0;;5553:17:18;5986:42;;;373:13530:0;;5986:42:18;;3317:284;:::i;:::-;5986:42;662:4;5986:42;662:4;;5986:42;;;;;;;;:::i;:::-;662:4;5976:53;;6068:27;5442:668;6047:49;6068:27;;;;;;:::i;6047:49::-;5588:15;373:13530:0;5442:668:18;;;5553:17;5442:668;;5883:18;;;;373:13530:0;5847:18:18;;;;373:13530:0;5807:22:18;;;;373:13530:0;5756:33:18;;;;373:13530:0;5713:25:18;;;;;373:13530:0;5660:35:18;;;;373:13530:0;5621:21:18;;;;373:13530:0;5588:15:18;;;;373:13530:0;5553:17:18;;;;373:13530:0;;;5442:668:18;3317:284;;;;;;;;;;;;;;;;;;373:13530:0;3317:284:18;373:13530:0;;3317:284:18;;;373:13530:0;3317:284:18;;;373:13530:0;3317:284:18;;;373:13530:0;3317:284:18;;;373:13530:0;3317:284:18;;;373:13530:0;3317:284:18;;;373:13530:0;3317:284:18;;;373:13530:0;3317:284:18;;;373:13530:0;3317:284:18;;;373:13530:0;3317:284:18;;;373:13530:0;3317:284:18;;;373:13530:0;3317:284:18;;;373:13530:0;3317:284:18;373:13530:0;3317:284:18;5442:668;;;;;;;;;:::i;:::-;662:4;5419:701;;373:13530:0;5588:15:18;373:13530:0;5553:17:18;6180:86;;6252:13;6180:86;6252:13;6180:86;6252:13;6180:86;3185:69;;;;;;373:13530:0;3185:69:18;373:13530:0;;6215:19:18;3185:69;;;373:13530:0;6236:14:18;3185:69;;;373:13530:0;3185:69:18;373:13530:0;3185:69:18;6180:86;;;;;;;;;:::i;:::-;662:4;6157:119;;373:13530:0;5588:15:18;373:13530:0;6304:57:18;;;5553:17;6304:57;;;;3185:69;;;;;;;;;;;;373:13530:0;3185:69:18;;;373:13530:0;3185:69:18;;;6304:57;;;;;;;;;:::i;:::-;662:4;6294:68;;5284:1085;:::o;373:13530:0:-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;;;;;-1:-1:-1;373:13530:0;;;;;:::i;6521:3277:18:-;9458:319;6521:3277;7058:44;7083:18;;;373:13530:0;7058:44:18;:::i;:::-;7458:46;7283:51;7308:25;;;373:13530:0;7283:51:18;:::i;7458:46::-;373:13530:0;7550:59:18;7591:15;;;373:13530:0;-1:-1:-1;;;;;373:13530:0;7550:59:18;:::i;:::-;7672:18;7647:44;7672:18;;;373:13530:0;7647:44:18;:::i;:::-;8035:17;;;;373:13530:0;-1:-1:-1;;;;;8035:17:18;;;;:::i;:::-;373:13530:0;;;8078:14:18;373:13530:0;8078:14:18;;;8074:441;8091:1;;;8243:45;;;;:::i;:::-;8074:441;;373:13530:0;8744:21:18;;;;373:13530:0;8740:142:18;;8074:441;9706:17;662:4;2171:25:15;9372:18:18;662:4;;;;373:13530:0;662:4:18;;373:13530:0;662:4:18;;373:13530:0;662:4:18;;373:13530:0;9172:17:18;;;;:::i;:::-;662:4;;;;373:13530:0;;;-1:-1:-1;;;;;373:13530:0;;;9706:17:18;9458:319;;;;:::i;8740:142::-;8844:13;;9706:17;8806:65;8819:39;8844:13;8819:39;:::i;:::-;8806:65;:::i;:::-;8740:142;;;;;8074:441;8313:17;;;;;;;:::i;:::-;-1:-1:-1;;;373:13530:0;-1:-1:-1;;;;;;373:13530:0;8313:20:18;;;;373:13530:0;8313:20:18;:::i;:::-;373:13530:0;8313:28:18;8074:441;8309:206;373:13530:0;;;;:::i;:::-;8309:206:18;8074:441;;373:13530:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;373:13530:0;;;:::i;9951:3136:18:-;12800:266;9951:3136;11047:211;10509:39;10534:13;10509:39;:::i;11047:211::-;11613:17;;;;373:13530:0;-1:-1:-1;;;;;11613:17:18;;;;:::i;:::-;373:13530:0;;;;11656:14:18;;;11652:441;11669:1;;;11821:45;;;;:::i;:::-;12986:17;2171:25:15;;:::i;:::-;662:4:18;2171:25:15;12714:18:18;662:4;;;;373:13530:0;12505:17:18;;;;:::i;:::-;662:4;;;;373:13530:0;;;-1:-1:-1;;;;;373:13530:0;;;12986:17:18;12800:266;;;;:::i;11652:441::-;11891:17;;;;;:::i;:::-;-1:-1:-1;;;373:13530:0;-1:-1:-1;;;;;;373:13530:0;11891:20:18;;;;373:13530:0;11891:20:18;:::i;:::-;373:13530:0;11891:28:18;11652:441;11887:206;373:13530:0;;;:::i;:::-;11652:441:18;;373:13530:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;13240:3337:18:-;16290:266;13240:3337;14488:260;13830:39;13855:13;13830:39;:::i;14488:260::-;15103:17;;;;373:13530:0;-1:-1:-1;;;;;15103:17:18;;;;:::i;:::-;373:13530:0;;;;15146:14:18;;;15142:441;15159:1;;;15311:45;;;;:::i;:::-;16476:17;2171:25:15;;:::i;16476:17:18:-;16290:266;;;;:::i;15142:441::-;15381:17;;;;;:::i;:::-;-1:-1:-1;;;373:13530:0;-1:-1:-1;;;;;;373:13530:0;15381:20:18;;;;373:13530:0;15381:20:18;:::i;:::-;373:13530:0;15381:28:18;15142:441;15377:206;373:13530:0;;;:::i;:::-;15142:441:18;"},"methodIdentifiers":{"getTransactionHashes((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256[4],bytes,bytes,bytes32[],bytes,bytes))":"ebe4a3d7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"txType\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"from\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"to\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasPerPubdataByteLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPriorityFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymaster\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256[4]\",\"name\":\"reserved\",\"type\":\"uint256[4]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"factoryDeps\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes\",\"name\":\"paymasterInput\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"reservedDynamic\",\"type\":\"bytes\"}],\"internalType\":\"struct Transaction\",\"name\":\"_transaction\",\"type\":\"tuple\"}],\"name\":\"getTransactionHashes\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"signedTxHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Matter Labs\",\"kind\":\"dev\",\"methods\":{\"getTransactionHashes((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256[4],bytes,bytes,bytes32[],bytes,bytes))\":{\"details\":\"txHash must be unique for all transactions.\",\"params\":{\"_transaction\":\"The transaction.\"},\"returns\":{\"txHash\":\"and signedTxHash of the transaction, i.e. the transaction hash to be used in the explorer and commits to all the fields of the transaction and the recommended hash to be signed for this transaction.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getTransactionHashes((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256[4],bytes,bytes,bytes32[],bytes,bytes))\":{\"notice\":\"Calculates the canonical transaction hash and the recommended transaction hash.\"}},\"notice\":\"A contract that provides some utility methods for the bootloader that is very hard to write in Yul.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@matterlabs/zksync-contracts/l2/system-contracts/BootloaderUtilities.sol\":\"BootloaderUtilities\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@matterlabs/zksync-contracts/l2/system-contracts/BootloaderUtilities.sol\":{\"keccak256\":\"0xc41e925966405a28c4eb0e2469a29eadd62754859fe61166fda0ceac5610c8f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6781f926f24839f6d0f5bf5927de8a7ddcf36d7b5a047faa53d530022ecf5df\",\"dweb:/ipfs/QmRtScb3y57Ygy9xctaa448ZkRA7ouaJfxhBwdKLRN6a3z\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/Constants.sol\":{\"keccak256\":\"0x29a24f62d17d95b1f8d2d79505d056e1e99d64c1d5725a4b46fbe91a965b0c60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b56691f9a23d9b0f17ea5c6e1dcce28b780a461c34eb9340f74621dad25c5468\",\"dweb:/ipfs/QmXVJTkTBWfuiGhwvxP9Ldv7oDmAd66ruLhoQemE15F6KS\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IAccountCodeStorage.sol\":{\"keccak256\":\"0xc75d1bd8895832daeb7d59734cf0afcc47628c2c343b95cc5359d6975dc3ccaa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5be4ef8c557cd5216127b14b53b881a410707387fe9b7522a95e83f3b56b0368\",\"dweb:/ipfs/QmeAnw5BjgR4Vrz5eBkWdEMajevVaDyMbSXRPALfyHYnbe\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBootloaderUtilities.sol\":{\"keccak256\":\"0xeea7b6ea35e94ae1ee84697df2053ca660e750c90e8d9e340a515200e5de52f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9e55744cabfc9ae67d43b136c9f1be3e347dd6c9d9d2777bb699fed9bc630c5\",\"dweb:/ipfs/QmQcACmf7PfijgFjLbcNi8SRZh1bUvN4abpWUGWCRnszpS\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBytecodeCompressor.sol\":{\"keccak256\":\"0xfbe695ca62333019f21a12a1636736a1e3ffaba62059d35fe24a7694cf99a1ac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e6d6bece56e8be5391e77af4b4a1eaf18ceefb500b0fd15123878ecee1ec3f8d\",\"dweb:/ipfs/QmNfy59uBQAsyfG2Vfdy38M6TYj3nLnkbb1P2euQqQEteZ\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IContractDeployer.sol\":{\"keccak256\":\"0xcd0cb526a3c1b6c8689ca2b4ff4da2f8cb2b134dce1b983b2368e4b8ff585ad3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e853769ee9769d16a4398a4351e82214801592b711c3cc6789de36e4b84cfa71\",\"dweb:/ipfs/QmeXAc1mRQVhhaXjj15XWH2YS4tjpYqMwgdQ8xLAozcdmU\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IEthToken.sol\":{\"keccak256\":\"0x12d57fed82ecc9d955e592e65d36c0256da4f8f3ce46c59e9828664bb623be2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e95d99c4202b2fbe10706e358e09135cb9ec43563db7e72fe81913f2798f4b5\",\"dweb:/ipfs/QmbPcrDDHSQsKKXq5itMttMQnRXpYpGYMLYp9BDXoVwa7k\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IImmutableSimulator.sol\":{\"keccak256\":\"0xe71d8c877f89fb8f2e3cc83d31dea978de99c35d07354052388abb6af9e9dbcc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://47b7c0601463321723b2623873fd91365a451f7d2b26216ea48d0503c38f91e8\",\"dweb:/ipfs/QmbFjjH95ekfzeR94z3AEsak1dfmZ5R8aHsbDpGwBzjSzD\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IKnownCodesStorage.sol\":{\"keccak256\":\"0xbc460f4e40c05b0b958d94bdcc23cc64f1efe887ef722c7bd4afc66583d92846\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6956ef37fb2a64c065251fdd3dc3b8ab9abb56a23c64b4ed7a3f32dce3af2472\",\"dweb:/ipfs/QmcVUbnZ6AXbmWm8CbLWM6p2pGnpy5VmgsEjQrHqWheBM5\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IL1Messenger.sol\":{\"keccak256\":\"0x13b3d1e55c9a1752885d7101a8e6886ff04c70259dff6bb672f79ce0c63952d9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35600fe3cc1ccd2029b47e2740bfd3f100a5896acd13e9eeafd583727abc4922\",\"dweb:/ipfs/QmNWWpGGpZ9r46Cw8hNVJG3vobFwk6hHhsWjRiJUo4xB4h\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/INonceHolder.sol\":{\"keccak256\":\"0x4895f2828cac4b6c3891c59214d70d3cd31cee4324a6e70c87caf90a234776fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0b7cfe1caf4c91b44111eb2ff9ffd693ad4ec3f4f09ffd6a8c65645de1c4d23e\",\"dweb:/ipfs/QmNnzanCJq3JR6JYhGhZzUAa5VQznuBN6A8bg5nNwq9wSU\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymasterFlow.sol\":{\"keccak256\":\"0xbc73dbaf894a3fa41b52195227c73a855fdfcee713fa5ab3fba0773abe61a017\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e3fc1a2b1d3e2662a378ff3499457097e9ee1918faa830e741a38102ffa534f7\",\"dweb:/ipfs/QmatFh5y3B4XFnMZWjDuyUNCZAzh1dYF2uqEJvebxmzu6R\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/ISystemContext.sol\":{\"keccak256\":\"0xeb17460013b7bd75015f14c7aa296f7613dd331ffb2dccb4e725e708aa942ffb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7b4a3d7369d59deda677a7f2997151a146084d4d8487733ddec97924455c17d7\",\"dweb:/ipfs/QmQnCanKcV8UnBWHAV5BzDxnFd3sAQPQZbRAC44JCsgN4v\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/EfficientCall.sol\":{\"keccak256\":\"0x60a1780ada0ebad3ca24743399fb56c60bed23e1218371ec56855d214d152ea6\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2c7b490a8218a2d505b25d87c3aeb40e8867ed424e6eceb7ceb7bc557a32301a\",\"dweb:/ipfs/QmWRiRc11dHg2Vjbstxp1QCLqP23FsgtJS6R1jSfWiaBrC\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/RLPEncoder.sol\":{\"keccak256\":\"0x90e89a3db5d1d31cb60835b554c751c995339c7f7204314bc546683cad733439\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://234b0b0f64b3c984689f3c8d55ab2bf2e2a51c926aa8708aa72e365e884a4c28\",\"dweb:/ipfs/QmR2FLvaUCyBS6HnhZt5cp5nmjdefjdSVSymuYVG9qToBF\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractHelper.sol\":{\"keccak256\":\"0x5eb2c2a098cf0c4cd39be7842682a20ef575dccbb5d10713f98313788212411a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e1c1a52053dcf3b347a7161655f4e8a396be0c663d0d30b60953cf4e81e68848\",\"dweb:/ipfs/Qmat7quKhUTrjLDyPcAqMdpg4KP2jQhbuoCTGq7YENXHZ4\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractsCaller.sol\":{\"keccak256\":\"0x5033a1008942cb59413e47ea876f99bc5cd2b4b72308db003579ee1add07571f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11866ee670865a59e96ee25971d32abbe6a012a65ee0eca8a37aa11fe463e81f\",\"dweb:/ipfs/Qme3fnqFJgtnpRHf21Xj8qrE46P3nKwMZTywJytRbMjBZg\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/TransactionHelper.sol\":{\"keccak256\":\"0xb8ad21ccd87317971347a7a07388a1647944f62de02dbf2594632497e3dec330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://56369664918121fd8276ef09e35e1c5d64b8616ee38ad8d88fd45fbb0ddf381d\",\"dweb:/ipfs/QmPENE5H4Lg94MCpQ7gjah26Muqhc7QYAcyXQ9sFHxViGq\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/Utils.sol\":{\"keccak256\":\"0x323d26123de797a41955a05e68be86a6fe55aa62134ec59a8f89faa5bd04c416\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e0fd70642c2ded7d486bc5a3faac55d3357c20bb10d4243fef61962cf70e641\",\"dweb:/ipfs/QmWqQ3x27z2iCNNaAfXVAJ3FX2tHvUYu1t1Ze27pdbCRbK\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x35e258421ae206f3db37281cea70871b4c3553914734aa76139a41af60ac1abb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ef94b6bc4ee356db612a1849c615f7dd4b15542d6c8584c86bb9243a7913cf0\",\"dweb:/ipfs/QmaxFj5NFpAjjitZtHPNS9PPtCuBATaRz9ktDDRCQCQ83y\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x84d04bd9b87928b261736f90a86cbb15d8cf6f80560151366370fa79313f3cb5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7fd52b96d25ba9ca6ba26a591d2726c0256185b1c107b9a06834ca9ce0bae240\",\"dweb:/ipfs/QmYbgPqwwX1hUi6HfqcPM82bqgbjLYWDCXv83NxCvivL43\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/utils/Address.sol\":{\"keccak256\":\"0xef97d5bcb540814e1371a1e355a170919412e0d6754fdaa003b6a602e6a7ea4d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41a8f093a740cdcb224e48b2c4c2868f8e86dcdd3bc96ded6b10d29714b6f9a4\",\"dweb:/ipfs/QmSsgQmcY8n1a2bCFxdpWGS3YV63TZyZD77ycNHdpMDySL\"]}},\"version\":1}"}},"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IAccountCodeStorage.sol":{"IAccountCodeStorage":{"abi":[{"inputs":[{"internalType":"uint256","name":"_input","type":"uint256"}],"name":"getCodeHash","outputs":[{"internalType":"bytes32","name":"codeHash","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_input","type":"uint256"}],"name":"getCodeSize","outputs":[{"internalType":"uint256","name":"codeSize","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"getRawCodeHash","outputs":[{"internalType":"bytes32","name":"codeHash","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"markAccountCodeHashAsConstructed","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bytes32","name":"_hash","type":"bytes32"}],"name":"storeAccountConstructedCodeHash","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bytes32","name":"_hash","type":"bytes32"}],"name":"storeAccountConstructingCodeHash","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"getCodeHash(uint256)":"e03fe177","getCodeSize(uint256)":"1806aa18","getRawCodeHash(address)":"4de2e468","markAccountCodeHashAsConstructed(address)":"c2e4ff97","storeAccountConstructedCodeHash(address,bytes32)":"0d4651aa","storeAccountConstructingCodeHash(address,bytes32)":"4f1e1be0"}},"metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_input\",\"type\":\"uint256\"}],\"name\":\"getCodeHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"codeHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_input\",\"type\":\"uint256\"}],\"name\":\"getCodeSize\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"codeSize\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"getRawCodeHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"codeHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"markAccountCodeHashAsConstructed\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_address\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_hash\",\"type\":\"bytes32\"}],\"name\":\"storeAccountConstructedCodeHash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_address\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_hash\",\"type\":\"bytes32\"}],\"name\":\"storeAccountConstructingCodeHash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IAccountCodeStorage.sol\":\"IAccountCodeStorage\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IAccountCodeStorage.sol\":{\"keccak256\":\"0xc75d1bd8895832daeb7d59734cf0afcc47628c2c343b95cc5359d6975dc3ccaa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5be4ef8c557cd5216127b14b53b881a410707387fe9b7522a95e83f3b56b0368\",\"dweb:/ipfs/QmeAnw5BjgR4Vrz5eBkWdEMajevVaDyMbSXRPALfyHYnbe\"]}},\"version\":1}"}},"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBootloaderUtilities.sol":{"IBootloaderUtilities":{"abi":[{"inputs":[{"components":[{"internalType":"uint256","name":"txType","type":"uint256"},{"internalType":"uint256","name":"from","type":"uint256"},{"internalType":"uint256","name":"to","type":"uint256"},{"internalType":"uint256","name":"gasLimit","type":"uint256"},{"internalType":"uint256","name":"gasPerPubdataByteLimit","type":"uint256"},{"internalType":"uint256","name":"maxFeePerGas","type":"uint256"},{"internalType":"uint256","name":"maxPriorityFeePerGas","type":"uint256"},{"internalType":"uint256","name":"paymaster","type":"uint256"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256[4]","name":"reserved","type":"uint256[4]"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"bytes32[]","name":"factoryDeps","type":"bytes32[]"},{"internalType":"bytes","name":"paymasterInput","type":"bytes"},{"internalType":"bytes","name":"reservedDynamic","type":"bytes"}],"internalType":"struct Transaction","name":"_transaction","type":"tuple"}],"name":"getTransactionHashes","outputs":[{"internalType":"bytes32","name":"txHash","type":"bytes32"},{"internalType":"bytes32","name":"signedTxHash","type":"bytes32"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"getTransactionHashes((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256[4],bytes,bytes,bytes32[],bytes,bytes))":"ebe4a3d7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"txType\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"from\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"to\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasPerPubdataByteLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPriorityFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymaster\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256[4]\",\"name\":\"reserved\",\"type\":\"uint256[4]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"factoryDeps\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes\",\"name\":\"paymasterInput\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"reservedDynamic\",\"type\":\"bytes\"}],\"internalType\":\"struct Transaction\",\"name\":\"_transaction\",\"type\":\"tuple\"}],\"name\":\"getTransactionHashes\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"signedTxHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBootloaderUtilities.sol\":\"IBootloaderUtilities\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@matterlabs/zksync-contracts/l2/system-contracts/BootloaderUtilities.sol\":{\"keccak256\":\"0xc41e925966405a28c4eb0e2469a29eadd62754859fe61166fda0ceac5610c8f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6781f926f24839f6d0f5bf5927de8a7ddcf36d7b5a047faa53d530022ecf5df\",\"dweb:/ipfs/QmRtScb3y57Ygy9xctaa448ZkRA7ouaJfxhBwdKLRN6a3z\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/Constants.sol\":{\"keccak256\":\"0x29a24f62d17d95b1f8d2d79505d056e1e99d64c1d5725a4b46fbe91a965b0c60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b56691f9a23d9b0f17ea5c6e1dcce28b780a461c34eb9340f74621dad25c5468\",\"dweb:/ipfs/QmXVJTkTBWfuiGhwvxP9Ldv7oDmAd66ruLhoQemE15F6KS\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IAccountCodeStorage.sol\":{\"keccak256\":\"0xc75d1bd8895832daeb7d59734cf0afcc47628c2c343b95cc5359d6975dc3ccaa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5be4ef8c557cd5216127b14b53b881a410707387fe9b7522a95e83f3b56b0368\",\"dweb:/ipfs/QmeAnw5BjgR4Vrz5eBkWdEMajevVaDyMbSXRPALfyHYnbe\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBootloaderUtilities.sol\":{\"keccak256\":\"0xeea7b6ea35e94ae1ee84697df2053ca660e750c90e8d9e340a515200e5de52f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9e55744cabfc9ae67d43b136c9f1be3e347dd6c9d9d2777bb699fed9bc630c5\",\"dweb:/ipfs/QmQcACmf7PfijgFjLbcNi8SRZh1bUvN4abpWUGWCRnszpS\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBytecodeCompressor.sol\":{\"keccak256\":\"0xfbe695ca62333019f21a12a1636736a1e3ffaba62059d35fe24a7694cf99a1ac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e6d6bece56e8be5391e77af4b4a1eaf18ceefb500b0fd15123878ecee1ec3f8d\",\"dweb:/ipfs/QmNfy59uBQAsyfG2Vfdy38M6TYj3nLnkbb1P2euQqQEteZ\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IContractDeployer.sol\":{\"keccak256\":\"0xcd0cb526a3c1b6c8689ca2b4ff4da2f8cb2b134dce1b983b2368e4b8ff585ad3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e853769ee9769d16a4398a4351e82214801592b711c3cc6789de36e4b84cfa71\",\"dweb:/ipfs/QmeXAc1mRQVhhaXjj15XWH2YS4tjpYqMwgdQ8xLAozcdmU\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IEthToken.sol\":{\"keccak256\":\"0x12d57fed82ecc9d955e592e65d36c0256da4f8f3ce46c59e9828664bb623be2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e95d99c4202b2fbe10706e358e09135cb9ec43563db7e72fe81913f2798f4b5\",\"dweb:/ipfs/QmbPcrDDHSQsKKXq5itMttMQnRXpYpGYMLYp9BDXoVwa7k\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IImmutableSimulator.sol\":{\"keccak256\":\"0xe71d8c877f89fb8f2e3cc83d31dea978de99c35d07354052388abb6af9e9dbcc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://47b7c0601463321723b2623873fd91365a451f7d2b26216ea48d0503c38f91e8\",\"dweb:/ipfs/QmbFjjH95ekfzeR94z3AEsak1dfmZ5R8aHsbDpGwBzjSzD\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IKnownCodesStorage.sol\":{\"keccak256\":\"0xbc460f4e40c05b0b958d94bdcc23cc64f1efe887ef722c7bd4afc66583d92846\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6956ef37fb2a64c065251fdd3dc3b8ab9abb56a23c64b4ed7a3f32dce3af2472\",\"dweb:/ipfs/QmcVUbnZ6AXbmWm8CbLWM6p2pGnpy5VmgsEjQrHqWheBM5\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IL1Messenger.sol\":{\"keccak256\":\"0x13b3d1e55c9a1752885d7101a8e6886ff04c70259dff6bb672f79ce0c63952d9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35600fe3cc1ccd2029b47e2740bfd3f100a5896acd13e9eeafd583727abc4922\",\"dweb:/ipfs/QmNWWpGGpZ9r46Cw8hNVJG3vobFwk6hHhsWjRiJUo4xB4h\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/INonceHolder.sol\":{\"keccak256\":\"0x4895f2828cac4b6c3891c59214d70d3cd31cee4324a6e70c87caf90a234776fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0b7cfe1caf4c91b44111eb2ff9ffd693ad4ec3f4f09ffd6a8c65645de1c4d23e\",\"dweb:/ipfs/QmNnzanCJq3JR6JYhGhZzUAa5VQznuBN6A8bg5nNwq9wSU\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymasterFlow.sol\":{\"keccak256\":\"0xbc73dbaf894a3fa41b52195227c73a855fdfcee713fa5ab3fba0773abe61a017\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e3fc1a2b1d3e2662a378ff3499457097e9ee1918faa830e741a38102ffa534f7\",\"dweb:/ipfs/QmatFh5y3B4XFnMZWjDuyUNCZAzh1dYF2uqEJvebxmzu6R\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/ISystemContext.sol\":{\"keccak256\":\"0xeb17460013b7bd75015f14c7aa296f7613dd331ffb2dccb4e725e708aa942ffb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7b4a3d7369d59deda677a7f2997151a146084d4d8487733ddec97924455c17d7\",\"dweb:/ipfs/QmQnCanKcV8UnBWHAV5BzDxnFd3sAQPQZbRAC44JCsgN4v\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/EfficientCall.sol\":{\"keccak256\":\"0x60a1780ada0ebad3ca24743399fb56c60bed23e1218371ec56855d214d152ea6\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2c7b490a8218a2d505b25d87c3aeb40e8867ed424e6eceb7ceb7bc557a32301a\",\"dweb:/ipfs/QmWRiRc11dHg2Vjbstxp1QCLqP23FsgtJS6R1jSfWiaBrC\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/RLPEncoder.sol\":{\"keccak256\":\"0x90e89a3db5d1d31cb60835b554c751c995339c7f7204314bc546683cad733439\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://234b0b0f64b3c984689f3c8d55ab2bf2e2a51c926aa8708aa72e365e884a4c28\",\"dweb:/ipfs/QmR2FLvaUCyBS6HnhZt5cp5nmjdefjdSVSymuYVG9qToBF\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractHelper.sol\":{\"keccak256\":\"0x5eb2c2a098cf0c4cd39be7842682a20ef575dccbb5d10713f98313788212411a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e1c1a52053dcf3b347a7161655f4e8a396be0c663d0d30b60953cf4e81e68848\",\"dweb:/ipfs/Qmat7quKhUTrjLDyPcAqMdpg4KP2jQhbuoCTGq7YENXHZ4\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractsCaller.sol\":{\"keccak256\":\"0x5033a1008942cb59413e47ea876f99bc5cd2b4b72308db003579ee1add07571f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11866ee670865a59e96ee25971d32abbe6a012a65ee0eca8a37aa11fe463e81f\",\"dweb:/ipfs/Qme3fnqFJgtnpRHf21Xj8qrE46P3nKwMZTywJytRbMjBZg\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/TransactionHelper.sol\":{\"keccak256\":\"0xb8ad21ccd87317971347a7a07388a1647944f62de02dbf2594632497e3dec330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://56369664918121fd8276ef09e35e1c5d64b8616ee38ad8d88fd45fbb0ddf381d\",\"dweb:/ipfs/QmPENE5H4Lg94MCpQ7gjah26Muqhc7QYAcyXQ9sFHxViGq\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/Utils.sol\":{\"keccak256\":\"0x323d26123de797a41955a05e68be86a6fe55aa62134ec59a8f89faa5bd04c416\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e0fd70642c2ded7d486bc5a3faac55d3357c20bb10d4243fef61962cf70e641\",\"dweb:/ipfs/QmWqQ3x27z2iCNNaAfXVAJ3FX2tHvUYu1t1Ze27pdbCRbK\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x35e258421ae206f3db37281cea70871b4c3553914734aa76139a41af60ac1abb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ef94b6bc4ee356db612a1849c615f7dd4b15542d6c8584c86bb9243a7913cf0\",\"dweb:/ipfs/QmaxFj5NFpAjjitZtHPNS9PPtCuBATaRz9ktDDRCQCQ83y\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x84d04bd9b87928b261736f90a86cbb15d8cf6f80560151366370fa79313f3cb5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7fd52b96d25ba9ca6ba26a591d2726c0256185b1c107b9a06834ca9ce0bae240\",\"dweb:/ipfs/QmYbgPqwwX1hUi6HfqcPM82bqgbjLYWDCXv83NxCvivL43\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/utils/Address.sol\":{\"keccak256\":\"0xef97d5bcb540814e1371a1e355a170919412e0d6754fdaa003b6a602e6a7ea4d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41a8f093a740cdcb224e48b2c4c2868f8e86dcdd3bc96ded6b10d29714b6f9a4\",\"dweb:/ipfs/QmSsgQmcY8n1a2bCFxdpWGS3YV63TZyZD77ycNHdpMDySL\"]}},\"version\":1}"}},"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBytecodeCompressor.sol":{"IBytecodeCompressor":{"abi":[{"inputs":[{"internalType":"bytes","name":"_bytecode","type":"bytes"},{"internalType":"bytes","name":"_rawCompressedData","type":"bytes"}],"name":"publishCompressedBytecode","outputs":[{"internalType":"bytes32","name":"bytecodeHash","type":"bytes32"}],"stateMutability":"payable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"publishCompressedBytecode(bytes,bytes)":"f5e69a47"}},"metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_bytecode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_rawCompressedData\",\"type\":\"bytes\"}],\"name\":\"publishCompressedBytecode\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"bytecodeHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBytecodeCompressor.sol\":\"IBytecodeCompressor\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBytecodeCompressor.sol\":{\"keccak256\":\"0xfbe695ca62333019f21a12a1636736a1e3ffaba62059d35fe24a7694cf99a1ac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e6d6bece56e8be5391e77af4b4a1eaf18ceefb500b0fd15123878ecee1ec3f8d\",\"dweb:/ipfs/QmNfy59uBQAsyfG2Vfdy38M6TYj3nLnkbb1P2euQqQEteZ\"]}},\"version\":1}"}},"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IContractDeployer.sol":{"IContractDeployer":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"accountAddress","type":"address"},{"indexed":false,"internalType":"enum IContractDeployer.AccountNonceOrdering","name":"nonceOrdering","type":"uint8"}],"name":"AccountNonceOrderingUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"accountAddress","type":"address"},{"indexed":false,"internalType":"enum IContractDeployer.AccountAbstractionVersion","name":"aaVersion","type":"uint8"}],"name":"AccountVersionUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"deployerAddress","type":"address"},{"indexed":true,"internalType":"bytes32","name":"bytecodeHash","type":"bytes32"},{"indexed":true,"internalType":"address","name":"contractAddress","type":"address"}],"name":"ContractDeployed","type":"event"},{"inputs":[{"internalType":"bytes32","name":"_salt","type":"bytes32"},{"internalType":"bytes32","name":"_bytecodeHash","type":"bytes32"},{"internalType":"bytes","name":"_input","type":"bytes"}],"name":"create","outputs":[{"internalType":"address","name":"newAddress","type":"address"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_salt","type":"bytes32"},{"internalType":"bytes32","name":"_bytecodeHash","type":"bytes32"},{"internalType":"bytes","name":"_input","type":"bytes"}],"name":"create2","outputs":[{"internalType":"address","name":"newAddress","type":"address"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_salt","type":"bytes32"},{"internalType":"bytes32","name":"_bytecodeHash","type":"bytes32"},{"internalType":"bytes","name":"_input","type":"bytes"},{"internalType":"enum IContractDeployer.AccountAbstractionVersion","name":"_aaVersion","type":"uint8"}],"name":"create2Account","outputs":[{"internalType":"address","name":"newAddress","type":"address"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_salt","type":"bytes32"},{"internalType":"bytes32","name":"_bytecodeHash","type":"bytes32"},{"internalType":"bytes","name":"_input","type":"bytes"},{"internalType":"enum IContractDeployer.AccountAbstractionVersion","name":"_aaVersion","type":"uint8"}],"name":"createAccount","outputs":[{"internalType":"address","name":"newAddress","type":"address"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"getAccountInfo","outputs":[{"components":[{"internalType":"enum IContractDeployer.AccountAbstractionVersion","name":"supportedAAVersion","type":"uint8"},{"internalType":"enum IContractDeployer.AccountNonceOrdering","name":"nonceOrdering","type":"uint8"}],"internalType":"struct IContractDeployer.AccountInfo","name":"info","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"internalType":"uint256","name":"_senderNonce","type":"uint256"}],"name":"getNewAddressCreate","outputs":[{"internalType":"address","name":"newAddress","type":"address"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"internalType":"bytes32","name":"_bytecodeHash","type":"bytes32"},{"internalType":"bytes32","name":"_salt","type":"bytes32"},{"internalType":"bytes","name":"_input","type":"bytes"}],"name":"getNewAddressCreate2","outputs":[{"internalType":"address","name":"newAddress","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"enum IContractDeployer.AccountAbstractionVersion","name":"_version","type":"uint8"}],"name":"updateAccountVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"enum IContractDeployer.AccountNonceOrdering","name":"_nonceOrdering","type":"uint8"}],"name":"updateNonceOrdering","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"create(bytes32,bytes32,bytes)":"9c4d535b","create2(bytes32,bytes32,bytes)":"3cda3351","create2Account(bytes32,bytes32,bytes,uint8)":"5d382700","createAccount(bytes32,bytes32,bytes,uint8)":"ecf95b8a","getAccountInfo(address)":"7b510fe8","getNewAddressCreate(address,uint256)":"187598a5","getNewAddressCreate2(address,bytes32,bytes32,bytes)":"84da1fb4","updateAccountVersion(uint8)":"57180981","updateNonceOrdering(uint8)":"ec8067c7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"accountAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"enum IContractDeployer.AccountNonceOrdering\",\"name\":\"nonceOrdering\",\"type\":\"uint8\"}],\"name\":\"AccountNonceOrderingUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"accountAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"enum IContractDeployer.AccountAbstractionVersion\",\"name\":\"aaVersion\",\"type\":\"uint8\"}],\"name\":\"AccountVersionUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"deployerAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"bytecodeHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"}],\"name\":\"ContractDeployed\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_bytecodeHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_input\",\"type\":\"bytes\"}],\"name\":\"create\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"newAddress\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_bytecodeHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_input\",\"type\":\"bytes\"}],\"name\":\"create2\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"newAddress\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_bytecodeHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_input\",\"type\":\"bytes\"},{\"internalType\":\"enum IContractDeployer.AccountAbstractionVersion\",\"name\":\"_aaVersion\",\"type\":\"uint8\"}],\"name\":\"create2Account\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"newAddress\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_bytecodeHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_input\",\"type\":\"bytes\"},{\"internalType\":\"enum IContractDeployer.AccountAbstractionVersion\",\"name\":\"_aaVersion\",\"type\":\"uint8\"}],\"name\":\"createAccount\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"newAddress\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"getAccountInfo\",\"outputs\":[{\"components\":[{\"internalType\":\"enum IContractDeployer.AccountAbstractionVersion\",\"name\":\"supportedAAVersion\",\"type\":\"uint8\"},{\"internalType\":\"enum IContractDeployer.AccountNonceOrdering\",\"name\":\"nonceOrdering\",\"type\":\"uint8\"}],\"internalType\":\"struct IContractDeployer.AccountInfo\",\"name\":\"info\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_senderNonce\",\"type\":\"uint256\"}],\"name\":\"getNewAddressCreate\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"newAddress\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_bytecodeHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_input\",\"type\":\"bytes\"}],\"name\":\"getNewAddressCreate2\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"newAddress\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum IContractDeployer.AccountAbstractionVersion\",\"name\":\"_version\",\"type\":\"uint8\"}],\"name\":\"updateAccountVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum IContractDeployer.AccountNonceOrdering\",\"name\":\"_nonceOrdering\",\"type\":\"uint8\"}],\"name\":\"updateNonceOrdering\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"create(bytes32,bytes32,bytes)\":{\"details\":\"While the `_salt` parameter is not used anywhere here, it is still needed for consistency between `create` and `create2` functions (required by the compiler).\"},\"createAccount(bytes32,bytes32,bytes,uint8)\":{\"details\":\"While `_salt` is never used here, we leave it here as a parameter for the consistency with the `create` function.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getAccountInfo(address)\":{\"notice\":\"Returns the information about a certain AA.\"},\"updateAccountVersion(uint8)\":{\"notice\":\"Can be called by an account to update its account version\"},\"updateNonceOrdering(uint8)\":{\"notice\":\"Can be called by an account to update its nonce ordering\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IContractDeployer.sol\":\"IContractDeployer\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IContractDeployer.sol\":{\"keccak256\":\"0xcd0cb526a3c1b6c8689ca2b4ff4da2f8cb2b134dce1b983b2368e4b8ff585ad3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e853769ee9769d16a4398a4351e82214801592b711c3cc6789de36e4b84cfa71\",\"dweb:/ipfs/QmeXAc1mRQVhhaXjj15XWH2YS4tjpYqMwgdQ8xLAozcdmU\"]}},\"version\":1}"}},"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IEthToken.sol":{"IEthToken":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_l2Sender","type":"address"},{"indexed":true,"internalType":"address","name":"_l1Receiver","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"Withdrawal","type":"event"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"_account","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":"pure","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","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":"_amount","type":"uint256"}],"name":"transferFromTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_l1Receiver","type":"address"}],"name":"withdraw","outputs":[],"stateMutability":"payable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"balanceOf(uint256)":"9cc7f708","decimals()":"313ce567","mint(address,uint256)":"40c10f19","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transferFromTo(address,address,uint256)":"579952fc","withdraw(address)":"51cff8d9"}},"metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Mint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_l2Sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_l1Receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"Withdrawal\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_account\",\"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\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"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\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"transferFromTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_l1Receiver\",\"type\":\"address\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IEthToken.sol\":\"IEthToken\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IEthToken.sol\":{\"keccak256\":\"0x12d57fed82ecc9d955e592e65d36c0256da4f8f3ce46c59e9828664bb623be2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e95d99c4202b2fbe10706e358e09135cb9ec43563db7e72fe81913f2798f4b5\",\"dweb:/ipfs/QmbPcrDDHSQsKKXq5itMttMQnRXpYpGYMLYp9BDXoVwa7k\"]}},\"version\":1}"}},"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IImmutableSimulator.sol":{"IImmutableSimulator":{"abi":[{"inputs":[{"internalType":"address","name":"_dest","type":"address"},{"internalType":"uint256","name":"_index","type":"uint256"}],"name":"getImmutable","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_dest","type":"address"},{"components":[{"internalType":"uint256","name":"index","type":"uint256"},{"internalType":"bytes32","name":"value","type":"bytes32"}],"internalType":"struct ImmutableData[]","name":"_immutables","type":"tuple[]"}],"name":"setImmutables","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"getImmutable(address,uint256)":"310ab089","setImmutables(address,(uint256,bytes32)[])":"ad7e232e"}},"metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_dest\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_index\",\"type\":\"uint256\"}],\"name\":\"getImmutable\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_dest\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"internalType\":\"struct ImmutableData[]\",\"name\":\"_immutables\",\"type\":\"tuple[]\"}],\"name\":\"setImmutables\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IImmutableSimulator.sol\":\"IImmutableSimulator\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IImmutableSimulator.sol\":{\"keccak256\":\"0xe71d8c877f89fb8f2e3cc83d31dea978de99c35d07354052388abb6af9e9dbcc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://47b7c0601463321723b2623873fd91365a451f7d2b26216ea48d0503c38f91e8\",\"dweb:/ipfs/QmbFjjH95ekfzeR94z3AEsak1dfmZ5R8aHsbDpGwBzjSzD\"]}},\"version\":1}"}},"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IKnownCodesStorage.sol":{"IKnownCodesStorage":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"bytecodeHash","type":"bytes32"},{"indexed":true,"internalType":"bool","name":"sendBytecodeToL1","type":"bool"}],"name":"MarkedAsKnown","type":"event"},{"inputs":[{"internalType":"bytes32","name":"_hash","type":"bytes32"}],"name":"getMarker","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_bytecodeHash","type":"bytes32"},{"internalType":"bytes32","name":"_l1PreimageHash","type":"bytes32"},{"internalType":"uint256","name":"_l1PreimageBytesLen","type":"uint256"}],"name":"markBytecodeAsPublished","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_shouldSendToL1","type":"bool"},{"internalType":"bytes32[]","name":"_hashes","type":"bytes32[]"}],"name":"markFactoryDeps","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"getMarker(bytes32)":"4c6314f0","markBytecodeAsPublished(bytes32,bytes32,uint256)":"24a55db9","markFactoryDeps(bool,bytes32[])":"e516761e"}},"metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"bytecodeHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bool\",\"name\":\"sendBytecodeToL1\",\"type\":\"bool\"}],\"name\":\"MarkedAsKnown\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_hash\",\"type\":\"bytes32\"}],\"name\":\"getMarker\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_bytecodeHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_l1PreimageHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_l1PreimageBytesLen\",\"type\":\"uint256\"}],\"name\":\"markBytecodeAsPublished\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"_shouldSendToL1\",\"type\":\"bool\"},{\"internalType\":\"bytes32[]\",\"name\":\"_hashes\",\"type\":\"bytes32[]\"}],\"name\":\"markFactoryDeps\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IKnownCodesStorage.sol\":\"IKnownCodesStorage\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IKnownCodesStorage.sol\":{\"keccak256\":\"0xbc460f4e40c05b0b958d94bdcc23cc64f1efe887ef722c7bd4afc66583d92846\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6956ef37fb2a64c065251fdd3dc3b8ab9abb56a23c64b4ed7a3f32dce3af2472\",\"dweb:/ipfs/QmcVUbnZ6AXbmWm8CbLWM6p2pGnpy5VmgsEjQrHqWheBM5\"]}},\"version\":1}"}},"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IL1Messenger.sol":{"IL1Messenger":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_sender","type":"address"},{"indexed":true,"internalType":"bytes32","name":"_hash","type":"bytes32"},{"indexed":false,"internalType":"bytes","name":"_message","type":"bytes"}],"name":"L1MessageSent","type":"event"},{"inputs":[{"internalType":"bytes","name":"_message","type":"bytes"}],"name":"sendToL1","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"sendToL1(bytes)":"62f84b24"}},"metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_hash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"}],\"name\":\"L1MessageSent\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"}],\"name\":\"sendToL1\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IL1Messenger.sol\":\"IL1Messenger\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IL1Messenger.sol\":{\"keccak256\":\"0x13b3d1e55c9a1752885d7101a8e6886ff04c70259dff6bb672f79ce0c63952d9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35600fe3cc1ccd2029b47e2740bfd3f100a5896acd13e9eeafd583727abc4922\",\"dweb:/ipfs/QmNWWpGGpZ9r46Cw8hNVJG3vobFwk6hHhsWjRiJUo4xB4h\"]}},\"version\":1}"}},"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/INonceHolder.sol":{"INonceHolder":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"accountAddress","type":"address"},{"indexed":true,"internalType":"uint256","name":"key","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"ValueSetUnderNonce","type":"event"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"getDeploymentNonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"getMinNonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"getRawNonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_key","type":"uint256"}],"name":"getValueUnderNonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"increaseMinNonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"incrementDeploymentNonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_expectedNonce","type":"uint256"}],"name":"incrementMinNonceIfEquals","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"uint256","name":"_nonce","type":"uint256"}],"name":"isNonceUsed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_key","type":"uint256"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"setValueUnderNonce","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"uint256","name":"_key","type":"uint256"},{"internalType":"bool","name":"_shouldBeUsed","type":"bool"}],"name":"validateNonceUsage","outputs":[],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"getDeploymentNonce(address)":"fb1a9a57","getMinNonce(address)":"896909dc","getRawNonce(address)":"5aa9b6b5","getValueUnderNonce(uint256)":"55d35d18","increaseMinNonce(uint256)":"38a78092","incrementDeploymentNonce(address)":"306395c6","incrementMinNonceIfEquals(uint256)":"e1239cd8","isNonceUsed(address,uint256)":"cab7e8eb","setValueUnderNonce(uint256,uint256)":"155fd27a","validateNonceUsage(address,uint256,bool)":"6ee1dc20"}},"metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"accountAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"key\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"ValueSetUnderNonce\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"getDeploymentNonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"getMinNonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"getRawNonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_key\",\"type\":\"uint256\"}],\"name\":\"getValueUnderNonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"increaseMinNonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"incrementDeploymentNonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_expectedNonce\",\"type\":\"uint256\"}],\"name\":\"incrementMinNonceIfEquals\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_address\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"isNonceUsed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_key\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"setValueUnderNonce\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_address\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_key\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"_shouldBeUsed\",\"type\":\"bool\"}],\"name\":\"validateNonceUsage\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Matter Labs\",\"details\":\"Interface of the nonce holder contract -- a contract used by the system to ensure that there is always a unique identifier for a transaction with a particular account (we call it nonce). In other words, the pair of (address, nonce) should always be unique.Custom accounts should use methods of this contract to store nonces or other possible unique identifiers for the transaction.\",\"kind\":\"dev\",\"methods\":{\"getDeploymentNonce(address)\":{\"details\":\"Returns the deployment nonce for the accounts used for CREATE opcode.\"},\"getMinNonce(address)\":{\"details\":\"Returns the current minimal nonce for account.\"},\"getRawNonce(address)\":{\"details\":\"Returns the raw version of the current minimal nonce (equal to minNonce + 2^128 * deployment nonce).\"},\"getValueUnderNonce(uint256)\":{\"details\":\"Gets the value stored inside a custom nonce.\"},\"increaseMinNonce(uint256)\":{\"details\":\"Increases the minimal nonce for the msg.sender.\"},\"incrementDeploymentNonce(address)\":{\"details\":\"Increments the deployment nonce for the account and returns the previous one.\"},\"incrementMinNonceIfEquals(uint256)\":{\"details\":\"A convenience method to increment the minimal nonce if it is equal to the `_expectedNonce`.\"},\"isNonceUsed(address,uint256)\":{\"details\":\"Returns whether a nonce has been used for an account.\"},\"setValueUnderNonce(uint256,uint256)\":{\"details\":\"Sets the nonce value `key` as used.\"},\"validateNonceUsage(address,uint256,bool)\":{\"details\":\"Determines whether a certain nonce has been already used for an account.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/INonceHolder.sol\":\"INonceHolder\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/INonceHolder.sol\":{\"keccak256\":\"0x4895f2828cac4b6c3891c59214d70d3cd31cee4324a6e70c87caf90a234776fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0b7cfe1caf4c91b44111eb2ff9ffd693ad4ec3f4f09ffd6a8c65645de1c4d23e\",\"dweb:/ipfs/QmNnzanCJq3JR6JYhGhZzUAa5VQznuBN6A8bg5nNwq9wSU\"]}},\"version\":1}"}},"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymaster.sol":{"IPaymaster":{"abi":[{"inputs":[{"internalType":"bytes","name":"_context","type":"bytes"},{"components":[{"internalType":"uint256","name":"txType","type":"uint256"},{"internalType":"uint256","name":"from","type":"uint256"},{"internalType":"uint256","name":"to","type":"uint256"},{"internalType":"uint256","name":"gasLimit","type":"uint256"},{"internalType":"uint256","name":"gasPerPubdataByteLimit","type":"uint256"},{"internalType":"uint256","name":"maxFeePerGas","type":"uint256"},{"internalType":"uint256","name":"maxPriorityFeePerGas","type":"uint256"},{"internalType":"uint256","name":"paymaster","type":"uint256"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256[4]","name":"reserved","type":"uint256[4]"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"bytes32[]","name":"factoryDeps","type":"bytes32[]"},{"internalType":"bytes","name":"paymasterInput","type":"bytes"},{"internalType":"bytes","name":"reservedDynamic","type":"bytes"}],"internalType":"struct Transaction","name":"_transaction","type":"tuple"},{"internalType":"bytes32","name":"_txHash","type":"bytes32"},{"internalType":"bytes32","name":"_suggestedSignedHash","type":"bytes32"},{"internalType":"enum ExecutionResult","name":"_txResult","type":"uint8"},{"internalType":"uint256","name":"_maxRefundedGas","type":"uint256"}],"name":"postTransaction","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_txHash","type":"bytes32"},{"internalType":"bytes32","name":"_suggestedSignedHash","type":"bytes32"},{"components":[{"internalType":"uint256","name":"txType","type":"uint256"},{"internalType":"uint256","name":"from","type":"uint256"},{"internalType":"uint256","name":"to","type":"uint256"},{"internalType":"uint256","name":"gasLimit","type":"uint256"},{"internalType":"uint256","name":"gasPerPubdataByteLimit","type":"uint256"},{"internalType":"uint256","name":"maxFeePerGas","type":"uint256"},{"internalType":"uint256","name":"maxPriorityFeePerGas","type":"uint256"},{"internalType":"uint256","name":"paymaster","type":"uint256"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256[4]","name":"reserved","type":"uint256[4]"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"bytes32[]","name":"factoryDeps","type":"bytes32[]"},{"internalType":"bytes","name":"paymasterInput","type":"bytes"},{"internalType":"bytes","name":"reservedDynamic","type":"bytes"}],"internalType":"struct Transaction","name":"_transaction","type":"tuple"}],"name":"validateAndPayForPaymasterTransaction","outputs":[{"internalType":"bytes4","name":"magic","type":"bytes4"},{"internalType":"bytes","name":"context","type":"bytes"}],"stateMutability":"payable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"postTransaction(bytes,(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256[4],bytes,bytes,bytes32[],bytes,bytes),bytes32,bytes32,uint8,uint256)":"817b17f0","validateAndPayForPaymasterTransaction(bytes32,bytes32,(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256[4],bytes,bytes,bytes32[],bytes,bytes))":"038a24bc"}},"metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_context\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"txType\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"from\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"to\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasPerPubdataByteLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPriorityFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymaster\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256[4]\",\"name\":\"reserved\",\"type\":\"uint256[4]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"factoryDeps\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes\",\"name\":\"paymasterInput\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"reservedDynamic\",\"type\":\"bytes\"}],\"internalType\":\"struct Transaction\",\"name\":\"_transaction\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"_txHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_suggestedSignedHash\",\"type\":\"bytes32\"},{\"internalType\":\"enum ExecutionResult\",\"name\":\"_txResult\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"_maxRefundedGas\",\"type\":\"uint256\"}],\"name\":\"postTransaction\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_txHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_suggestedSignedHash\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"txType\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"from\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"to\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasPerPubdataByteLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPriorityFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymaster\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256[4]\",\"name\":\"reserved\",\"type\":\"uint256[4]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"factoryDeps\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes\",\"name\":\"paymasterInput\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"reservedDynamic\",\"type\":\"bytes\"}],\"internalType\":\"struct Transaction\",\"name\":\"_transaction\",\"type\":\"tuple\"}],\"name\":\"validateAndPayForPaymasterTransaction\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"magic\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"context\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"postTransaction(bytes,(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256[4],bytes,bytes,bytes32[],bytes,bytes),bytes32,bytes32,uint8,uint256)\":{\"details\":\"Called by the bootloader after the execution of the transaction. Please note that there is no guarantee that this method will be called at all. Unlike the original EIP4337, this method won't be called if the transaction execution results in out-of-gas.The exact amount refunded depends on the gas spent by the \\\"postOp\\\" itself and so the developers should take that into account.\",\"params\":{\"_context\":\", the context of the execution, returned by the \\\"validateAndPayForPaymasterTransaction\\\" method.\",\"_maxRefundedGas\":\", the upper bound on the amout of gas that could be refunded to the paymaster.\",\"_transaction\":\", the users' transaction.\",\"_txResult\":\", the result of the transaction execution (success or failure).\"}},\"validateAndPayForPaymasterTransaction(bytes32,bytes32,(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256[4],bytes,bytes,bytes32[],bytes,bytes))\":{\"details\":\"Called by the bootloader to verify that the paymaster agrees to pay for the fee for the transaction. This transaction should also send the necessary amount of funds onto the bootloader address.The developer should strive to preserve as many steps as possible both for valid and invalid transactions as this very method is also used during the gas fee estimation (without some of the necessary data, e.g. signature).\",\"params\":{\"_suggestedSignedHash\":\"The hash of the transaction that is signed by an EOA\",\"_transaction\":\"The transaction itself.\",\"_txHash\":\"The hash of the transaction\"},\"returns\":{\"context\":\"The \\\"context\\\" of the transaction: an array of bytes of length at most 1024 bytes, which will be passed to the `postTransaction` method of the account.\",\"magic\":\"The value that should be equal to the signature of the validateAndPayForPaymasterTransaction if the paymaster agrees to pay for the transaction.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymaster.sol\":\"IPaymaster\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@matterlabs/zksync-contracts/l2/system-contracts/BootloaderUtilities.sol\":{\"keccak256\":\"0xc41e925966405a28c4eb0e2469a29eadd62754859fe61166fda0ceac5610c8f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6781f926f24839f6d0f5bf5927de8a7ddcf36d7b5a047faa53d530022ecf5df\",\"dweb:/ipfs/QmRtScb3y57Ygy9xctaa448ZkRA7ouaJfxhBwdKLRN6a3z\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/Constants.sol\":{\"keccak256\":\"0x29a24f62d17d95b1f8d2d79505d056e1e99d64c1d5725a4b46fbe91a965b0c60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b56691f9a23d9b0f17ea5c6e1dcce28b780a461c34eb9340f74621dad25c5468\",\"dweb:/ipfs/QmXVJTkTBWfuiGhwvxP9Ldv7oDmAd66ruLhoQemE15F6KS\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IAccountCodeStorage.sol\":{\"keccak256\":\"0xc75d1bd8895832daeb7d59734cf0afcc47628c2c343b95cc5359d6975dc3ccaa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5be4ef8c557cd5216127b14b53b881a410707387fe9b7522a95e83f3b56b0368\",\"dweb:/ipfs/QmeAnw5BjgR4Vrz5eBkWdEMajevVaDyMbSXRPALfyHYnbe\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBootloaderUtilities.sol\":{\"keccak256\":\"0xeea7b6ea35e94ae1ee84697df2053ca660e750c90e8d9e340a515200e5de52f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9e55744cabfc9ae67d43b136c9f1be3e347dd6c9d9d2777bb699fed9bc630c5\",\"dweb:/ipfs/QmQcACmf7PfijgFjLbcNi8SRZh1bUvN4abpWUGWCRnszpS\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBytecodeCompressor.sol\":{\"keccak256\":\"0xfbe695ca62333019f21a12a1636736a1e3ffaba62059d35fe24a7694cf99a1ac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e6d6bece56e8be5391e77af4b4a1eaf18ceefb500b0fd15123878ecee1ec3f8d\",\"dweb:/ipfs/QmNfy59uBQAsyfG2Vfdy38M6TYj3nLnkbb1P2euQqQEteZ\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IContractDeployer.sol\":{\"keccak256\":\"0xcd0cb526a3c1b6c8689ca2b4ff4da2f8cb2b134dce1b983b2368e4b8ff585ad3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e853769ee9769d16a4398a4351e82214801592b711c3cc6789de36e4b84cfa71\",\"dweb:/ipfs/QmeXAc1mRQVhhaXjj15XWH2YS4tjpYqMwgdQ8xLAozcdmU\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IEthToken.sol\":{\"keccak256\":\"0x12d57fed82ecc9d955e592e65d36c0256da4f8f3ce46c59e9828664bb623be2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e95d99c4202b2fbe10706e358e09135cb9ec43563db7e72fe81913f2798f4b5\",\"dweb:/ipfs/QmbPcrDDHSQsKKXq5itMttMQnRXpYpGYMLYp9BDXoVwa7k\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IImmutableSimulator.sol\":{\"keccak256\":\"0xe71d8c877f89fb8f2e3cc83d31dea978de99c35d07354052388abb6af9e9dbcc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://47b7c0601463321723b2623873fd91365a451f7d2b26216ea48d0503c38f91e8\",\"dweb:/ipfs/QmbFjjH95ekfzeR94z3AEsak1dfmZ5R8aHsbDpGwBzjSzD\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IKnownCodesStorage.sol\":{\"keccak256\":\"0xbc460f4e40c05b0b958d94bdcc23cc64f1efe887ef722c7bd4afc66583d92846\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6956ef37fb2a64c065251fdd3dc3b8ab9abb56a23c64b4ed7a3f32dce3af2472\",\"dweb:/ipfs/QmcVUbnZ6AXbmWm8CbLWM6p2pGnpy5VmgsEjQrHqWheBM5\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IL1Messenger.sol\":{\"keccak256\":\"0x13b3d1e55c9a1752885d7101a8e6886ff04c70259dff6bb672f79ce0c63952d9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35600fe3cc1ccd2029b47e2740bfd3f100a5896acd13e9eeafd583727abc4922\",\"dweb:/ipfs/QmNWWpGGpZ9r46Cw8hNVJG3vobFwk6hHhsWjRiJUo4xB4h\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/INonceHolder.sol\":{\"keccak256\":\"0x4895f2828cac4b6c3891c59214d70d3cd31cee4324a6e70c87caf90a234776fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0b7cfe1caf4c91b44111eb2ff9ffd693ad4ec3f4f09ffd6a8c65645de1c4d23e\",\"dweb:/ipfs/QmNnzanCJq3JR6JYhGhZzUAa5VQznuBN6A8bg5nNwq9wSU\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymaster.sol\":{\"keccak256\":\"0xeac1f3eecbd9a12dd729a1813d9aabdaf6501fab82c4e11bdcf4380b20e36352\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b9796ea25da7821f9438c4c2199edeeb85040c04b146b58995a157e2eabed90a\",\"dweb:/ipfs/QmSM87mwrEDxC13mS8k9ZWREFibk2fbQd5obvt5PXPWToR\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymasterFlow.sol\":{\"keccak256\":\"0xbc73dbaf894a3fa41b52195227c73a855fdfcee713fa5ab3fba0773abe61a017\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e3fc1a2b1d3e2662a378ff3499457097e9ee1918faa830e741a38102ffa534f7\",\"dweb:/ipfs/QmatFh5y3B4XFnMZWjDuyUNCZAzh1dYF2uqEJvebxmzu6R\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/ISystemContext.sol\":{\"keccak256\":\"0xeb17460013b7bd75015f14c7aa296f7613dd331ffb2dccb4e725e708aa942ffb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7b4a3d7369d59deda677a7f2997151a146084d4d8487733ddec97924455c17d7\",\"dweb:/ipfs/QmQnCanKcV8UnBWHAV5BzDxnFd3sAQPQZbRAC44JCsgN4v\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/EfficientCall.sol\":{\"keccak256\":\"0x60a1780ada0ebad3ca24743399fb56c60bed23e1218371ec56855d214d152ea6\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2c7b490a8218a2d505b25d87c3aeb40e8867ed424e6eceb7ceb7bc557a32301a\",\"dweb:/ipfs/QmWRiRc11dHg2Vjbstxp1QCLqP23FsgtJS6R1jSfWiaBrC\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/RLPEncoder.sol\":{\"keccak256\":\"0x90e89a3db5d1d31cb60835b554c751c995339c7f7204314bc546683cad733439\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://234b0b0f64b3c984689f3c8d55ab2bf2e2a51c926aa8708aa72e365e884a4c28\",\"dweb:/ipfs/QmR2FLvaUCyBS6HnhZt5cp5nmjdefjdSVSymuYVG9qToBF\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractHelper.sol\":{\"keccak256\":\"0x5eb2c2a098cf0c4cd39be7842682a20ef575dccbb5d10713f98313788212411a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e1c1a52053dcf3b347a7161655f4e8a396be0c663d0d30b60953cf4e81e68848\",\"dweb:/ipfs/Qmat7quKhUTrjLDyPcAqMdpg4KP2jQhbuoCTGq7YENXHZ4\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractsCaller.sol\":{\"keccak256\":\"0x5033a1008942cb59413e47ea876f99bc5cd2b4b72308db003579ee1add07571f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11866ee670865a59e96ee25971d32abbe6a012a65ee0eca8a37aa11fe463e81f\",\"dweb:/ipfs/Qme3fnqFJgtnpRHf21Xj8qrE46P3nKwMZTywJytRbMjBZg\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/TransactionHelper.sol\":{\"keccak256\":\"0xb8ad21ccd87317971347a7a07388a1647944f62de02dbf2594632497e3dec330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://56369664918121fd8276ef09e35e1c5d64b8616ee38ad8d88fd45fbb0ddf381d\",\"dweb:/ipfs/QmPENE5H4Lg94MCpQ7gjah26Muqhc7QYAcyXQ9sFHxViGq\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/Utils.sol\":{\"keccak256\":\"0x323d26123de797a41955a05e68be86a6fe55aa62134ec59a8f89faa5bd04c416\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e0fd70642c2ded7d486bc5a3faac55d3357c20bb10d4243fef61962cf70e641\",\"dweb:/ipfs/QmWqQ3x27z2iCNNaAfXVAJ3FX2tHvUYu1t1Ze27pdbCRbK\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x35e258421ae206f3db37281cea70871b4c3553914734aa76139a41af60ac1abb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ef94b6bc4ee356db612a1849c615f7dd4b15542d6c8584c86bb9243a7913cf0\",\"dweb:/ipfs/QmaxFj5NFpAjjitZtHPNS9PPtCuBATaRz9ktDDRCQCQ83y\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x84d04bd9b87928b261736f90a86cbb15d8cf6f80560151366370fa79313f3cb5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7fd52b96d25ba9ca6ba26a591d2726c0256185b1c107b9a06834ca9ce0bae240\",\"dweb:/ipfs/QmYbgPqwwX1hUi6HfqcPM82bqgbjLYWDCXv83NxCvivL43\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/utils/Address.sol\":{\"keccak256\":\"0xef97d5bcb540814e1371a1e355a170919412e0d6754fdaa003b6a602e6a7ea4d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41a8f093a740cdcb224e48b2c4c2868f8e86dcdd3bc96ded6b10d29714b6f9a4\",\"dweb:/ipfs/QmSsgQmcY8n1a2bCFxdpWGS3YV63TZyZD77ycNHdpMDySL\"]}},\"version\":1}"}},"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymasterFlow.sol":{"IPaymasterFlow":{"abi":[{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_minAllowance","type":"uint256"},{"internalType":"bytes","name":"_innerInput","type":"bytes"}],"name":"approvalBased","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"input","type":"bytes"}],"name":"general","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"approvalBased(address,uint256,bytes)":"949431dc","general(bytes)":"8c5a3445"}},"metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_minAllowance\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_innerInput\",\"type\":\"bytes\"}],\"name\":\"approvalBased\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"input\",\"type\":\"bytes\"}],\"name\":\"general\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Matter Labs\",\"details\":\"The interface that is used for encoding/decoding of different types of paymaster flows.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"This is NOT an interface to be implementated by contracts. It is just used for encoding.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymasterFlow.sol\":\"IPaymasterFlow\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymasterFlow.sol\":{\"keccak256\":\"0xbc73dbaf894a3fa41b52195227c73a855fdfcee713fa5ab3fba0773abe61a017\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e3fc1a2b1d3e2662a378ff3499457097e9ee1918faa830e741a38102ffa534f7\",\"dweb:/ipfs/QmatFh5y3B4XFnMZWjDuyUNCZAzh1dYF2uqEJvebxmzu6R\"]}},\"version\":1}"}},"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/ISystemContext.sol":{"ISystemContext":{"abi":[{"inputs":[],"name":"baseFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"blockGasLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_block","type":"uint256"}],"name":"blockHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"chainId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"coinbase","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"difficulty","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"gasPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_block","type":"uint256"}],"name":"getBlockHashEVM","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBlockNumber","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBlockNumberAndTimestamp","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"uint256","name":"blockTimestamp","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBlockTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"origin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"baseFee()":"6ef25c3a","blockGasLimit()":"7877a797","blockHash(uint256)":"85df51fd","chainId()":"9a8a0592","coinbase()":"a6ae0aac","difficulty()":"19cae462","gasPrice()":"fe173b97","getBlockHashEVM(uint256)":"80b41246","getBlockNumber()":"42cbb15c","getBlockNumberAndTimestamp()":"d4a4ca0d","getBlockTimestamp()":"796b89b9","origin()":"938b5f32"}},"metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"baseFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"blockGasLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_block\",\"type\":\"uint256\"}],\"name\":\"blockHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"chainId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"coinbase\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"difficulty\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gasPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_block\",\"type\":\"uint256\"}],\"name\":\"getBlockHashEVM\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBlockNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBlockNumberAndTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"blockTimestamp\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBlockTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"origin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Matter Labs\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Contract that stores some of the context variables, that may be either block-scoped, tx-scoped or system-wide.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/ISystemContext.sol\":\"ISystemContext\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/ISystemContext.sol\":{\"keccak256\":\"0xeb17460013b7bd75015f14c7aa296f7613dd331ffb2dccb4e725e708aa942ffb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7b4a3d7369d59deda677a7f2997151a146084d4d8487733ddec97924455c17d7\",\"dweb:/ipfs/QmQnCanKcV8UnBWHAV5BzDxnFd3sAQPQZbRAC44JCsgN4v\"]}},\"version\":1}"}},"@matterlabs/zksync-contracts/l2/system-contracts/libraries/EfficientCall.sol":{"EfficientCall":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea264697066735822122025c78a7eb7061c43ae12416b82bd02b6699e007a7905bcb61261fe4900c10d3464736f6c63430008120033","opcodes":"PUSH1 0x80 DUP1 PUSH1 0x40 MSTORE CALLVALUE PUSH1 0x17 JUMPI PUSH1 0x3A SWAP1 DUP2 PUSH1 0x1D DUP3 CODECOPY ADDRESS DUP2 POP POP RETURN JUMPDEST PUSH1 0x0 DUP1 REVERT INVALID PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x25 0xC7 DUP11 PUSH31 0xB7061C43AE12416B82BD02B6699E007A7905BCB61261FE4900C10D3464736F PUSH13 0x63430008120033000000000000 ","sourceMap":"2048:10687:14:-:0;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"600080fdfea264697066735822122025c78a7eb7061c43ae12416b82bd02b6699e007a7905bcb61261fe4900c10d3464736f6c63430008120033","opcodes":"PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x25 0xC7 DUP11 PUSH31 0xB7061C43AE12416B82BD02B6699E007A7905BCB61261FE4900C10D3464736F PUSH13 0x63430008120033000000000000 ","sourceMap":"2048:10687:14:-:0;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"Matter Labs\",\"details\":\"EVM calls always accept a memory slice as input and return a memory slice as output. Therefore, even if the user has a ready-made calldata slice, they still need to copy it to memory before calling. This is especially inefficient for large inputs (proxies, multi-calls, etc.). In turn, zkEVM operates over a fat pointer, which is a set of (memory page, offset, start, length) in the memory/calldata/returndata. This allows forwarding the calldata slice as is, without copying it to memory.Fat pointer is not just an integer, it is an extended data type supported on the VM level. zkEVM creates the wellformed fat pointers for all the calldata/returndata regions, later the contract may manipulate the already created fat pointers to forward a slice of the data, but not to create new fat pointers!The allowed operation on fat pointers are: 1. `ptr.add` - Transforms `ptr.offset` into `ptr.offset + u32(_value)`. If overflow happens then it panics. 2. `ptr.sub` - Transforms `ptr.offset` into `ptr.offset - u32(_value)`. If underflow happens then it panics. 3. `ptr.pack` - Do the concatenation between the lowest 128 bits of the pointer itself and the highest 128 bits of `_value`. It is typically used to prepare the ABI for external calls. 4. `ptr.shrink` - Transforms `ptr.length` into `ptr.length - u32(_shrink)`. If underflow happens then it panics.The call opcodes accept the fat pointer and change it to its canonical form before passing it to the child call 1. `ptr.start` is transformed into `ptr.offset + ptr.start` 2. `ptr.length` is transformed into `ptr.length - ptr.offset` 3. `ptr.offset` is transformed into `0`\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"This library is used to perform ultra-efficient calls using zkEVM-specific features.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/EfficientCall.sol\":\"EfficientCall\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@matterlabs/zksync-contracts/l2/system-contracts/BootloaderUtilities.sol\":{\"keccak256\":\"0xc41e925966405a28c4eb0e2469a29eadd62754859fe61166fda0ceac5610c8f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6781f926f24839f6d0f5bf5927de8a7ddcf36d7b5a047faa53d530022ecf5df\",\"dweb:/ipfs/QmRtScb3y57Ygy9xctaa448ZkRA7ouaJfxhBwdKLRN6a3z\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/Constants.sol\":{\"keccak256\":\"0x29a24f62d17d95b1f8d2d79505d056e1e99d64c1d5725a4b46fbe91a965b0c60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b56691f9a23d9b0f17ea5c6e1dcce28b780a461c34eb9340f74621dad25c5468\",\"dweb:/ipfs/QmXVJTkTBWfuiGhwvxP9Ldv7oDmAd66ruLhoQemE15F6KS\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IAccountCodeStorage.sol\":{\"keccak256\":\"0xc75d1bd8895832daeb7d59734cf0afcc47628c2c343b95cc5359d6975dc3ccaa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5be4ef8c557cd5216127b14b53b881a410707387fe9b7522a95e83f3b56b0368\",\"dweb:/ipfs/QmeAnw5BjgR4Vrz5eBkWdEMajevVaDyMbSXRPALfyHYnbe\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBootloaderUtilities.sol\":{\"keccak256\":\"0xeea7b6ea35e94ae1ee84697df2053ca660e750c90e8d9e340a515200e5de52f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9e55744cabfc9ae67d43b136c9f1be3e347dd6c9d9d2777bb699fed9bc630c5\",\"dweb:/ipfs/QmQcACmf7PfijgFjLbcNi8SRZh1bUvN4abpWUGWCRnszpS\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBytecodeCompressor.sol\":{\"keccak256\":\"0xfbe695ca62333019f21a12a1636736a1e3ffaba62059d35fe24a7694cf99a1ac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e6d6bece56e8be5391e77af4b4a1eaf18ceefb500b0fd15123878ecee1ec3f8d\",\"dweb:/ipfs/QmNfy59uBQAsyfG2Vfdy38M6TYj3nLnkbb1P2euQqQEteZ\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IContractDeployer.sol\":{\"keccak256\":\"0xcd0cb526a3c1b6c8689ca2b4ff4da2f8cb2b134dce1b983b2368e4b8ff585ad3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e853769ee9769d16a4398a4351e82214801592b711c3cc6789de36e4b84cfa71\",\"dweb:/ipfs/QmeXAc1mRQVhhaXjj15XWH2YS4tjpYqMwgdQ8xLAozcdmU\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IEthToken.sol\":{\"keccak256\":\"0x12d57fed82ecc9d955e592e65d36c0256da4f8f3ce46c59e9828664bb623be2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e95d99c4202b2fbe10706e358e09135cb9ec43563db7e72fe81913f2798f4b5\",\"dweb:/ipfs/QmbPcrDDHSQsKKXq5itMttMQnRXpYpGYMLYp9BDXoVwa7k\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IImmutableSimulator.sol\":{\"keccak256\":\"0xe71d8c877f89fb8f2e3cc83d31dea978de99c35d07354052388abb6af9e9dbcc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://47b7c0601463321723b2623873fd91365a451f7d2b26216ea48d0503c38f91e8\",\"dweb:/ipfs/QmbFjjH95ekfzeR94z3AEsak1dfmZ5R8aHsbDpGwBzjSzD\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IKnownCodesStorage.sol\":{\"keccak256\":\"0xbc460f4e40c05b0b958d94bdcc23cc64f1efe887ef722c7bd4afc66583d92846\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6956ef37fb2a64c065251fdd3dc3b8ab9abb56a23c64b4ed7a3f32dce3af2472\",\"dweb:/ipfs/QmcVUbnZ6AXbmWm8CbLWM6p2pGnpy5VmgsEjQrHqWheBM5\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IL1Messenger.sol\":{\"keccak256\":\"0x13b3d1e55c9a1752885d7101a8e6886ff04c70259dff6bb672f79ce0c63952d9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35600fe3cc1ccd2029b47e2740bfd3f100a5896acd13e9eeafd583727abc4922\",\"dweb:/ipfs/QmNWWpGGpZ9r46Cw8hNVJG3vobFwk6hHhsWjRiJUo4xB4h\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/INonceHolder.sol\":{\"keccak256\":\"0x4895f2828cac4b6c3891c59214d70d3cd31cee4324a6e70c87caf90a234776fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0b7cfe1caf4c91b44111eb2ff9ffd693ad4ec3f4f09ffd6a8c65645de1c4d23e\",\"dweb:/ipfs/QmNnzanCJq3JR6JYhGhZzUAa5VQznuBN6A8bg5nNwq9wSU\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymasterFlow.sol\":{\"keccak256\":\"0xbc73dbaf894a3fa41b52195227c73a855fdfcee713fa5ab3fba0773abe61a017\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e3fc1a2b1d3e2662a378ff3499457097e9ee1918faa830e741a38102ffa534f7\",\"dweb:/ipfs/QmatFh5y3B4XFnMZWjDuyUNCZAzh1dYF2uqEJvebxmzu6R\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/ISystemContext.sol\":{\"keccak256\":\"0xeb17460013b7bd75015f14c7aa296f7613dd331ffb2dccb4e725e708aa942ffb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7b4a3d7369d59deda677a7f2997151a146084d4d8487733ddec97924455c17d7\",\"dweb:/ipfs/QmQnCanKcV8UnBWHAV5BzDxnFd3sAQPQZbRAC44JCsgN4v\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/EfficientCall.sol\":{\"keccak256\":\"0x60a1780ada0ebad3ca24743399fb56c60bed23e1218371ec56855d214d152ea6\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2c7b490a8218a2d505b25d87c3aeb40e8867ed424e6eceb7ceb7bc557a32301a\",\"dweb:/ipfs/QmWRiRc11dHg2Vjbstxp1QCLqP23FsgtJS6R1jSfWiaBrC\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/RLPEncoder.sol\":{\"keccak256\":\"0x90e89a3db5d1d31cb60835b554c751c995339c7f7204314bc546683cad733439\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://234b0b0f64b3c984689f3c8d55ab2bf2e2a51c926aa8708aa72e365e884a4c28\",\"dweb:/ipfs/QmR2FLvaUCyBS6HnhZt5cp5nmjdefjdSVSymuYVG9qToBF\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractHelper.sol\":{\"keccak256\":\"0x5eb2c2a098cf0c4cd39be7842682a20ef575dccbb5d10713f98313788212411a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e1c1a52053dcf3b347a7161655f4e8a396be0c663d0d30b60953cf4e81e68848\",\"dweb:/ipfs/Qmat7quKhUTrjLDyPcAqMdpg4KP2jQhbuoCTGq7YENXHZ4\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractsCaller.sol\":{\"keccak256\":\"0x5033a1008942cb59413e47ea876f99bc5cd2b4b72308db003579ee1add07571f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11866ee670865a59e96ee25971d32abbe6a012a65ee0eca8a37aa11fe463e81f\",\"dweb:/ipfs/Qme3fnqFJgtnpRHf21Xj8qrE46P3nKwMZTywJytRbMjBZg\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/TransactionHelper.sol\":{\"keccak256\":\"0xb8ad21ccd87317971347a7a07388a1647944f62de02dbf2594632497e3dec330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://56369664918121fd8276ef09e35e1c5d64b8616ee38ad8d88fd45fbb0ddf381d\",\"dweb:/ipfs/QmPENE5H4Lg94MCpQ7gjah26Muqhc7QYAcyXQ9sFHxViGq\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/Utils.sol\":{\"keccak256\":\"0x323d26123de797a41955a05e68be86a6fe55aa62134ec59a8f89faa5bd04c416\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e0fd70642c2ded7d486bc5a3faac55d3357c20bb10d4243fef61962cf70e641\",\"dweb:/ipfs/QmWqQ3x27z2iCNNaAfXVAJ3FX2tHvUYu1t1Ze27pdbCRbK\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x35e258421ae206f3db37281cea70871b4c3553914734aa76139a41af60ac1abb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ef94b6bc4ee356db612a1849c615f7dd4b15542d6c8584c86bb9243a7913cf0\",\"dweb:/ipfs/QmaxFj5NFpAjjitZtHPNS9PPtCuBATaRz9ktDDRCQCQ83y\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x84d04bd9b87928b261736f90a86cbb15d8cf6f80560151366370fa79313f3cb5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7fd52b96d25ba9ca6ba26a591d2726c0256185b1c107b9a06834ca9ce0bae240\",\"dweb:/ipfs/QmYbgPqwwX1hUi6HfqcPM82bqgbjLYWDCXv83NxCvivL43\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/utils/Address.sol\":{\"keccak256\":\"0xef97d5bcb540814e1371a1e355a170919412e0d6754fdaa003b6a602e6a7ea4d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41a8f093a740cdcb224e48b2c4c2868f8e86dcdd3bc96ded6b10d29714b6f9a4\",\"dweb:/ipfs/QmSsgQmcY8n1a2bCFxdpWGS3YV63TZyZD77ycNHdpMDySL\"]}},\"version\":1}"}},"@matterlabs/zksync-contracts/l2/system-contracts/libraries/RLPEncoder.sol":{"RLPEncoder":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea26469706673582212204bea743b455214c7175807a495f4fb38a8690a1e1f6c4d8b74d230b571dacb0864736f6c63430008120033","opcodes":"PUSH1 0x80 DUP1 PUSH1 0x40 MSTORE CALLVALUE PUSH1 0x17 JUMPI PUSH1 0x3A SWAP1 DUP2 PUSH1 0x1D DUP3 CODECOPY ADDRESS DUP2 POP POP RETURN JUMPDEST PUSH1 0x0 DUP1 REVERT INVALID PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x4B 0xEA PUSH21 0x3B455214C7175807A495F4FB38A8690A1E1F6C4D8B PUSH21 0xD230B571DACB0864736F6C63430008120033000000 ","sourceMap":"58:3707:15:-:0;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"600080fdfea26469706673582212204bea743b455214c7175807a495f4fb38a8690a1e1f6c4d8b74d230b571dacb0864736f6c63430008120033","opcodes":"PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x4B 0xEA PUSH21 0x3B455214C7175807A495F4FB38A8690A1E1F6C4D8B PUSH21 0xD230B571DACB0864736F6C63430008120033000000 ","sourceMap":"58:3707:15:-:0;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/RLPEncoder.sol\":\"RLPEncoder\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/RLPEncoder.sol\":{\"keccak256\":\"0x90e89a3db5d1d31cb60835b554c751c995339c7f7204314bc546683cad733439\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://234b0b0f64b3c984689f3c8d55ab2bf2e2a51c926aa8708aa72e365e884a4c28\",\"dweb:/ipfs/QmR2FLvaUCyBS6HnhZt5cp5nmjdefjdSVSymuYVG9qToBF\"]}},\"version\":1}"}},"@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractHelper.sol":{"ISystemContract":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Solidity does not allow exporting modifiers via libraries, so the only way to do reuse modifiers is to have a base contract\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractHelper.sol\":\"ISystemContract\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@matterlabs/zksync-contracts/l2/system-contracts/BootloaderUtilities.sol\":{\"keccak256\":\"0xc41e925966405a28c4eb0e2469a29eadd62754859fe61166fda0ceac5610c8f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6781f926f24839f6d0f5bf5927de8a7ddcf36d7b5a047faa53d530022ecf5df\",\"dweb:/ipfs/QmRtScb3y57Ygy9xctaa448ZkRA7ouaJfxhBwdKLRN6a3z\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/Constants.sol\":{\"keccak256\":\"0x29a24f62d17d95b1f8d2d79505d056e1e99d64c1d5725a4b46fbe91a965b0c60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b56691f9a23d9b0f17ea5c6e1dcce28b780a461c34eb9340f74621dad25c5468\",\"dweb:/ipfs/QmXVJTkTBWfuiGhwvxP9Ldv7oDmAd66ruLhoQemE15F6KS\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IAccountCodeStorage.sol\":{\"keccak256\":\"0xc75d1bd8895832daeb7d59734cf0afcc47628c2c343b95cc5359d6975dc3ccaa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5be4ef8c557cd5216127b14b53b881a410707387fe9b7522a95e83f3b56b0368\",\"dweb:/ipfs/QmeAnw5BjgR4Vrz5eBkWdEMajevVaDyMbSXRPALfyHYnbe\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBootloaderUtilities.sol\":{\"keccak256\":\"0xeea7b6ea35e94ae1ee84697df2053ca660e750c90e8d9e340a515200e5de52f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9e55744cabfc9ae67d43b136c9f1be3e347dd6c9d9d2777bb699fed9bc630c5\",\"dweb:/ipfs/QmQcACmf7PfijgFjLbcNi8SRZh1bUvN4abpWUGWCRnszpS\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBytecodeCompressor.sol\":{\"keccak256\":\"0xfbe695ca62333019f21a12a1636736a1e3ffaba62059d35fe24a7694cf99a1ac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e6d6bece56e8be5391e77af4b4a1eaf18ceefb500b0fd15123878ecee1ec3f8d\",\"dweb:/ipfs/QmNfy59uBQAsyfG2Vfdy38M6TYj3nLnkbb1P2euQqQEteZ\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IContractDeployer.sol\":{\"keccak256\":\"0xcd0cb526a3c1b6c8689ca2b4ff4da2f8cb2b134dce1b983b2368e4b8ff585ad3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e853769ee9769d16a4398a4351e82214801592b711c3cc6789de36e4b84cfa71\",\"dweb:/ipfs/QmeXAc1mRQVhhaXjj15XWH2YS4tjpYqMwgdQ8xLAozcdmU\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IEthToken.sol\":{\"keccak256\":\"0x12d57fed82ecc9d955e592e65d36c0256da4f8f3ce46c59e9828664bb623be2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e95d99c4202b2fbe10706e358e09135cb9ec43563db7e72fe81913f2798f4b5\",\"dweb:/ipfs/QmbPcrDDHSQsKKXq5itMttMQnRXpYpGYMLYp9BDXoVwa7k\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IImmutableSimulator.sol\":{\"keccak256\":\"0xe71d8c877f89fb8f2e3cc83d31dea978de99c35d07354052388abb6af9e9dbcc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://47b7c0601463321723b2623873fd91365a451f7d2b26216ea48d0503c38f91e8\",\"dweb:/ipfs/QmbFjjH95ekfzeR94z3AEsak1dfmZ5R8aHsbDpGwBzjSzD\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IKnownCodesStorage.sol\":{\"keccak256\":\"0xbc460f4e40c05b0b958d94bdcc23cc64f1efe887ef722c7bd4afc66583d92846\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6956ef37fb2a64c065251fdd3dc3b8ab9abb56a23c64b4ed7a3f32dce3af2472\",\"dweb:/ipfs/QmcVUbnZ6AXbmWm8CbLWM6p2pGnpy5VmgsEjQrHqWheBM5\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IL1Messenger.sol\":{\"keccak256\":\"0x13b3d1e55c9a1752885d7101a8e6886ff04c70259dff6bb672f79ce0c63952d9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35600fe3cc1ccd2029b47e2740bfd3f100a5896acd13e9eeafd583727abc4922\",\"dweb:/ipfs/QmNWWpGGpZ9r46Cw8hNVJG3vobFwk6hHhsWjRiJUo4xB4h\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/INonceHolder.sol\":{\"keccak256\":\"0x4895f2828cac4b6c3891c59214d70d3cd31cee4324a6e70c87caf90a234776fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0b7cfe1caf4c91b44111eb2ff9ffd693ad4ec3f4f09ffd6a8c65645de1c4d23e\",\"dweb:/ipfs/QmNnzanCJq3JR6JYhGhZzUAa5VQznuBN6A8bg5nNwq9wSU\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymasterFlow.sol\":{\"keccak256\":\"0xbc73dbaf894a3fa41b52195227c73a855fdfcee713fa5ab3fba0773abe61a017\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e3fc1a2b1d3e2662a378ff3499457097e9ee1918faa830e741a38102ffa534f7\",\"dweb:/ipfs/QmatFh5y3B4XFnMZWjDuyUNCZAzh1dYF2uqEJvebxmzu6R\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/ISystemContext.sol\":{\"keccak256\":\"0xeb17460013b7bd75015f14c7aa296f7613dd331ffb2dccb4e725e708aa942ffb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7b4a3d7369d59deda677a7f2997151a146084d4d8487733ddec97924455c17d7\",\"dweb:/ipfs/QmQnCanKcV8UnBWHAV5BzDxnFd3sAQPQZbRAC44JCsgN4v\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/EfficientCall.sol\":{\"keccak256\":\"0x60a1780ada0ebad3ca24743399fb56c60bed23e1218371ec56855d214d152ea6\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2c7b490a8218a2d505b25d87c3aeb40e8867ed424e6eceb7ceb7bc557a32301a\",\"dweb:/ipfs/QmWRiRc11dHg2Vjbstxp1QCLqP23FsgtJS6R1jSfWiaBrC\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/RLPEncoder.sol\":{\"keccak256\":\"0x90e89a3db5d1d31cb60835b554c751c995339c7f7204314bc546683cad733439\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://234b0b0f64b3c984689f3c8d55ab2bf2e2a51c926aa8708aa72e365e884a4c28\",\"dweb:/ipfs/QmR2FLvaUCyBS6HnhZt5cp5nmjdefjdSVSymuYVG9qToBF\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractHelper.sol\":{\"keccak256\":\"0x5eb2c2a098cf0c4cd39be7842682a20ef575dccbb5d10713f98313788212411a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e1c1a52053dcf3b347a7161655f4e8a396be0c663d0d30b60953cf4e81e68848\",\"dweb:/ipfs/Qmat7quKhUTrjLDyPcAqMdpg4KP2jQhbuoCTGq7YENXHZ4\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractsCaller.sol\":{\"keccak256\":\"0x5033a1008942cb59413e47ea876f99bc5cd2b4b72308db003579ee1add07571f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11866ee670865a59e96ee25971d32abbe6a012a65ee0eca8a37aa11fe463e81f\",\"dweb:/ipfs/Qme3fnqFJgtnpRHf21Xj8qrE46P3nKwMZTywJytRbMjBZg\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/TransactionHelper.sol\":{\"keccak256\":\"0xb8ad21ccd87317971347a7a07388a1647944f62de02dbf2594632497e3dec330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://56369664918121fd8276ef09e35e1c5d64b8616ee38ad8d88fd45fbb0ddf381d\",\"dweb:/ipfs/QmPENE5H4Lg94MCpQ7gjah26Muqhc7QYAcyXQ9sFHxViGq\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/Utils.sol\":{\"keccak256\":\"0x323d26123de797a41955a05e68be86a6fe55aa62134ec59a8f89faa5bd04c416\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e0fd70642c2ded7d486bc5a3faac55d3357c20bb10d4243fef61962cf70e641\",\"dweb:/ipfs/QmWqQ3x27z2iCNNaAfXVAJ3FX2tHvUYu1t1Ze27pdbCRbK\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x35e258421ae206f3db37281cea70871b4c3553914734aa76139a41af60ac1abb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ef94b6bc4ee356db612a1849c615f7dd4b15542d6c8584c86bb9243a7913cf0\",\"dweb:/ipfs/QmaxFj5NFpAjjitZtHPNS9PPtCuBATaRz9ktDDRCQCQ83y\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x84d04bd9b87928b261736f90a86cbb15d8cf6f80560151366370fa79313f3cb5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7fd52b96d25ba9ca6ba26a591d2726c0256185b1c107b9a06834ca9ce0bae240\",\"dweb:/ipfs/QmYbgPqwwX1hUi6HfqcPM82bqgbjLYWDCXv83NxCvivL43\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/utils/Address.sol\":{\"keccak256\":\"0xef97d5bcb540814e1371a1e355a170919412e0d6754fdaa003b6a602e6a7ea4d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41a8f093a740cdcb224e48b2c4c2868f8e86dcdd3bc96ded6b10d29714b6f9a4\",\"dweb:/ipfs/QmSsgQmcY8n1a2bCFxdpWGS3YV63TZyZD77ycNHdpMDySL\"]}},\"version\":1}"},"SystemContractHelper":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220f4be7bf0462d852cb2e7f145f68daeca7172c05981b602bb2ea3871e65c7d6e664736f6c63430008120033","opcodes":"PUSH1 0x80 DUP1 PUSH1 0x40 MSTORE CALLVALUE PUSH1 0x17 JUMPI PUSH1 0x3A SWAP1 DUP2 PUSH1 0x1D DUP3 CODECOPY ADDRESS DUP2 POP POP RETURN JUMPDEST PUSH1 0x0 DUP1 REVERT INVALID PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DELEGATECALL 0xBE PUSH28 0xF0462D852CB2E7F145F68DAECA7172C05981B602BB2EA3871E65C7D6 0xE6 PUSH5 0x736F6C6343 STOP ADDMOD SLT STOP CALLER ","sourceMap":"1151:14788:16:-:0;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"600080fdfea2646970667358221220f4be7bf0462d852cb2e7f145f68daeca7172c05981b602bb2ea3871e65c7d6e664736f6c63430008120033","opcodes":"PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DELEGATECALL 0xBE PUSH28 0xF0462D852CB2E7F145F68DAECA7172C05981B602BB2EA3871E65C7D6 0xE6 PUSH5 0x736F6C6343 STOP ADDMOD SLT STOP CALLER ","sourceMap":"1151:14788:16:-:0;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"Matter Labs\",\"details\":\"While this library will be eventually available to public, some of the provided methods won't work for non-system contracts. We will not recommend this library for external use.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Library used for accessing zkEVM-specific opcodes, needed for the development of system contracts.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractHelper.sol\":\"SystemContractHelper\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@matterlabs/zksync-contracts/l2/system-contracts/BootloaderUtilities.sol\":{\"keccak256\":\"0xc41e925966405a28c4eb0e2469a29eadd62754859fe61166fda0ceac5610c8f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6781f926f24839f6d0f5bf5927de8a7ddcf36d7b5a047faa53d530022ecf5df\",\"dweb:/ipfs/QmRtScb3y57Ygy9xctaa448ZkRA7ouaJfxhBwdKLRN6a3z\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/Constants.sol\":{\"keccak256\":\"0x29a24f62d17d95b1f8d2d79505d056e1e99d64c1d5725a4b46fbe91a965b0c60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b56691f9a23d9b0f17ea5c6e1dcce28b780a461c34eb9340f74621dad25c5468\",\"dweb:/ipfs/QmXVJTkTBWfuiGhwvxP9Ldv7oDmAd66ruLhoQemE15F6KS\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IAccountCodeStorage.sol\":{\"keccak256\":\"0xc75d1bd8895832daeb7d59734cf0afcc47628c2c343b95cc5359d6975dc3ccaa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5be4ef8c557cd5216127b14b53b881a410707387fe9b7522a95e83f3b56b0368\",\"dweb:/ipfs/QmeAnw5BjgR4Vrz5eBkWdEMajevVaDyMbSXRPALfyHYnbe\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBootloaderUtilities.sol\":{\"keccak256\":\"0xeea7b6ea35e94ae1ee84697df2053ca660e750c90e8d9e340a515200e5de52f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9e55744cabfc9ae67d43b136c9f1be3e347dd6c9d9d2777bb699fed9bc630c5\",\"dweb:/ipfs/QmQcACmf7PfijgFjLbcNi8SRZh1bUvN4abpWUGWCRnszpS\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBytecodeCompressor.sol\":{\"keccak256\":\"0xfbe695ca62333019f21a12a1636736a1e3ffaba62059d35fe24a7694cf99a1ac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e6d6bece56e8be5391e77af4b4a1eaf18ceefb500b0fd15123878ecee1ec3f8d\",\"dweb:/ipfs/QmNfy59uBQAsyfG2Vfdy38M6TYj3nLnkbb1P2euQqQEteZ\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IContractDeployer.sol\":{\"keccak256\":\"0xcd0cb526a3c1b6c8689ca2b4ff4da2f8cb2b134dce1b983b2368e4b8ff585ad3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e853769ee9769d16a4398a4351e82214801592b711c3cc6789de36e4b84cfa71\",\"dweb:/ipfs/QmeXAc1mRQVhhaXjj15XWH2YS4tjpYqMwgdQ8xLAozcdmU\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IEthToken.sol\":{\"keccak256\":\"0x12d57fed82ecc9d955e592e65d36c0256da4f8f3ce46c59e9828664bb623be2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e95d99c4202b2fbe10706e358e09135cb9ec43563db7e72fe81913f2798f4b5\",\"dweb:/ipfs/QmbPcrDDHSQsKKXq5itMttMQnRXpYpGYMLYp9BDXoVwa7k\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IImmutableSimulator.sol\":{\"keccak256\":\"0xe71d8c877f89fb8f2e3cc83d31dea978de99c35d07354052388abb6af9e9dbcc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://47b7c0601463321723b2623873fd91365a451f7d2b26216ea48d0503c38f91e8\",\"dweb:/ipfs/QmbFjjH95ekfzeR94z3AEsak1dfmZ5R8aHsbDpGwBzjSzD\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IKnownCodesStorage.sol\":{\"keccak256\":\"0xbc460f4e40c05b0b958d94bdcc23cc64f1efe887ef722c7bd4afc66583d92846\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6956ef37fb2a64c065251fdd3dc3b8ab9abb56a23c64b4ed7a3f32dce3af2472\",\"dweb:/ipfs/QmcVUbnZ6AXbmWm8CbLWM6p2pGnpy5VmgsEjQrHqWheBM5\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IL1Messenger.sol\":{\"keccak256\":\"0x13b3d1e55c9a1752885d7101a8e6886ff04c70259dff6bb672f79ce0c63952d9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35600fe3cc1ccd2029b47e2740bfd3f100a5896acd13e9eeafd583727abc4922\",\"dweb:/ipfs/QmNWWpGGpZ9r46Cw8hNVJG3vobFwk6hHhsWjRiJUo4xB4h\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/INonceHolder.sol\":{\"keccak256\":\"0x4895f2828cac4b6c3891c59214d70d3cd31cee4324a6e70c87caf90a234776fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0b7cfe1caf4c91b44111eb2ff9ffd693ad4ec3f4f09ffd6a8c65645de1c4d23e\",\"dweb:/ipfs/QmNnzanCJq3JR6JYhGhZzUAa5VQznuBN6A8bg5nNwq9wSU\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymasterFlow.sol\":{\"keccak256\":\"0xbc73dbaf894a3fa41b52195227c73a855fdfcee713fa5ab3fba0773abe61a017\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e3fc1a2b1d3e2662a378ff3499457097e9ee1918faa830e741a38102ffa534f7\",\"dweb:/ipfs/QmatFh5y3B4XFnMZWjDuyUNCZAzh1dYF2uqEJvebxmzu6R\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/ISystemContext.sol\":{\"keccak256\":\"0xeb17460013b7bd75015f14c7aa296f7613dd331ffb2dccb4e725e708aa942ffb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7b4a3d7369d59deda677a7f2997151a146084d4d8487733ddec97924455c17d7\",\"dweb:/ipfs/QmQnCanKcV8UnBWHAV5BzDxnFd3sAQPQZbRAC44JCsgN4v\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/EfficientCall.sol\":{\"keccak256\":\"0x60a1780ada0ebad3ca24743399fb56c60bed23e1218371ec56855d214d152ea6\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2c7b490a8218a2d505b25d87c3aeb40e8867ed424e6eceb7ceb7bc557a32301a\",\"dweb:/ipfs/QmWRiRc11dHg2Vjbstxp1QCLqP23FsgtJS6R1jSfWiaBrC\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/RLPEncoder.sol\":{\"keccak256\":\"0x90e89a3db5d1d31cb60835b554c751c995339c7f7204314bc546683cad733439\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://234b0b0f64b3c984689f3c8d55ab2bf2e2a51c926aa8708aa72e365e884a4c28\",\"dweb:/ipfs/QmR2FLvaUCyBS6HnhZt5cp5nmjdefjdSVSymuYVG9qToBF\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractHelper.sol\":{\"keccak256\":\"0x5eb2c2a098cf0c4cd39be7842682a20ef575dccbb5d10713f98313788212411a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e1c1a52053dcf3b347a7161655f4e8a396be0c663d0d30b60953cf4e81e68848\",\"dweb:/ipfs/Qmat7quKhUTrjLDyPcAqMdpg4KP2jQhbuoCTGq7YENXHZ4\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractsCaller.sol\":{\"keccak256\":\"0x5033a1008942cb59413e47ea876f99bc5cd2b4b72308db003579ee1add07571f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11866ee670865a59e96ee25971d32abbe6a012a65ee0eca8a37aa11fe463e81f\",\"dweb:/ipfs/Qme3fnqFJgtnpRHf21Xj8qrE46P3nKwMZTywJytRbMjBZg\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/TransactionHelper.sol\":{\"keccak256\":\"0xb8ad21ccd87317971347a7a07388a1647944f62de02dbf2594632497e3dec330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://56369664918121fd8276ef09e35e1c5d64b8616ee38ad8d88fd45fbb0ddf381d\",\"dweb:/ipfs/QmPENE5H4Lg94MCpQ7gjah26Muqhc7QYAcyXQ9sFHxViGq\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/Utils.sol\":{\"keccak256\":\"0x323d26123de797a41955a05e68be86a6fe55aa62134ec59a8f89faa5bd04c416\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e0fd70642c2ded7d486bc5a3faac55d3357c20bb10d4243fef61962cf70e641\",\"dweb:/ipfs/QmWqQ3x27z2iCNNaAfXVAJ3FX2tHvUYu1t1Ze27pdbCRbK\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x35e258421ae206f3db37281cea70871b4c3553914734aa76139a41af60ac1abb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ef94b6bc4ee356db612a1849c615f7dd4b15542d6c8584c86bb9243a7913cf0\",\"dweb:/ipfs/QmaxFj5NFpAjjitZtHPNS9PPtCuBATaRz9ktDDRCQCQ83y\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x84d04bd9b87928b261736f90a86cbb15d8cf6f80560151366370fa79313f3cb5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7fd52b96d25ba9ca6ba26a591d2726c0256185b1c107b9a06834ca9ce0bae240\",\"dweb:/ipfs/QmYbgPqwwX1hUi6HfqcPM82bqgbjLYWDCXv83NxCvivL43\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/utils/Address.sol\":{\"keccak256\":\"0xef97d5bcb540814e1371a1e355a170919412e0d6754fdaa003b6a602e6a7ea4d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41a8f093a740cdcb224e48b2c4c2868f8e86dcdd3bc96ded6b10d29714b6f9a4\",\"dweb:/ipfs/QmSsgQmcY8n1a2bCFxdpWGS3YV63TZyZD77ycNHdpMDySL\"]}},\"version\":1}"}},"@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractsCaller.sol":{"SystemContractsCaller":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea264697066735822122039d99a6780026d2a89898e0998e4ac3137b9f7747e676e1187e2899a1fbb071c64736f6c63430008120033","opcodes":"PUSH1 0x80 DUP1 PUSH1 0x40 MSTORE CALLVALUE PUSH1 0x17 JUMPI PUSH1 0x3A SWAP1 DUP2 PUSH1 0x1D DUP3 CODECOPY ADDRESS DUP2 POP POP RETURN JUMPDEST PUSH1 0x0 DUP1 REVERT INVALID PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CODECOPY 0xD9 SWAP11 PUSH8 0x80026D2A89898E09 SWAP9 0xE4 0xAC BALANCE CALLDATACOPY 0xB9 0xF7 PUSH21 0x7E676E1187E2899A1FBB071C64736F6C6343000812 STOP CALLER ","sourceMap":"3385:8269:17:-:0;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"600080fdfea264697066735822122039d99a6780026d2a89898e0998e4ac3137b9f7747e676e1187e2899a1fbb071c64736f6c63430008120033","opcodes":"PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CODECOPY 0xD9 SWAP11 PUSH8 0x80026D2A89898E09 SWAP9 0xE4 0xAC BALANCE CALLDATACOPY 0xB9 0xF7 PUSH21 0x7E676E1187E2899A1FBB071C64736F6C6343000812 STOP CALLER ","sourceMap":"3385:8269:17:-:0;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"Matter Labs\",\"details\":\"It is needed to call ContractDeployer and NonceHolder.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"A library that allows calling contracts with the `isSystem` flag.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractsCaller.sol\":\"SystemContractsCaller\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@matterlabs/zksync-contracts/l2/system-contracts/BootloaderUtilities.sol\":{\"keccak256\":\"0xc41e925966405a28c4eb0e2469a29eadd62754859fe61166fda0ceac5610c8f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6781f926f24839f6d0f5bf5927de8a7ddcf36d7b5a047faa53d530022ecf5df\",\"dweb:/ipfs/QmRtScb3y57Ygy9xctaa448ZkRA7ouaJfxhBwdKLRN6a3z\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/Constants.sol\":{\"keccak256\":\"0x29a24f62d17d95b1f8d2d79505d056e1e99d64c1d5725a4b46fbe91a965b0c60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b56691f9a23d9b0f17ea5c6e1dcce28b780a461c34eb9340f74621dad25c5468\",\"dweb:/ipfs/QmXVJTkTBWfuiGhwvxP9Ldv7oDmAd66ruLhoQemE15F6KS\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IAccountCodeStorage.sol\":{\"keccak256\":\"0xc75d1bd8895832daeb7d59734cf0afcc47628c2c343b95cc5359d6975dc3ccaa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5be4ef8c557cd5216127b14b53b881a410707387fe9b7522a95e83f3b56b0368\",\"dweb:/ipfs/QmeAnw5BjgR4Vrz5eBkWdEMajevVaDyMbSXRPALfyHYnbe\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBootloaderUtilities.sol\":{\"keccak256\":\"0xeea7b6ea35e94ae1ee84697df2053ca660e750c90e8d9e340a515200e5de52f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9e55744cabfc9ae67d43b136c9f1be3e347dd6c9d9d2777bb699fed9bc630c5\",\"dweb:/ipfs/QmQcACmf7PfijgFjLbcNi8SRZh1bUvN4abpWUGWCRnszpS\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBytecodeCompressor.sol\":{\"keccak256\":\"0xfbe695ca62333019f21a12a1636736a1e3ffaba62059d35fe24a7694cf99a1ac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e6d6bece56e8be5391e77af4b4a1eaf18ceefb500b0fd15123878ecee1ec3f8d\",\"dweb:/ipfs/QmNfy59uBQAsyfG2Vfdy38M6TYj3nLnkbb1P2euQqQEteZ\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IContractDeployer.sol\":{\"keccak256\":\"0xcd0cb526a3c1b6c8689ca2b4ff4da2f8cb2b134dce1b983b2368e4b8ff585ad3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e853769ee9769d16a4398a4351e82214801592b711c3cc6789de36e4b84cfa71\",\"dweb:/ipfs/QmeXAc1mRQVhhaXjj15XWH2YS4tjpYqMwgdQ8xLAozcdmU\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IEthToken.sol\":{\"keccak256\":\"0x12d57fed82ecc9d955e592e65d36c0256da4f8f3ce46c59e9828664bb623be2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e95d99c4202b2fbe10706e358e09135cb9ec43563db7e72fe81913f2798f4b5\",\"dweb:/ipfs/QmbPcrDDHSQsKKXq5itMttMQnRXpYpGYMLYp9BDXoVwa7k\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IImmutableSimulator.sol\":{\"keccak256\":\"0xe71d8c877f89fb8f2e3cc83d31dea978de99c35d07354052388abb6af9e9dbcc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://47b7c0601463321723b2623873fd91365a451f7d2b26216ea48d0503c38f91e8\",\"dweb:/ipfs/QmbFjjH95ekfzeR94z3AEsak1dfmZ5R8aHsbDpGwBzjSzD\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IKnownCodesStorage.sol\":{\"keccak256\":\"0xbc460f4e40c05b0b958d94bdcc23cc64f1efe887ef722c7bd4afc66583d92846\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6956ef37fb2a64c065251fdd3dc3b8ab9abb56a23c64b4ed7a3f32dce3af2472\",\"dweb:/ipfs/QmcVUbnZ6AXbmWm8CbLWM6p2pGnpy5VmgsEjQrHqWheBM5\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IL1Messenger.sol\":{\"keccak256\":\"0x13b3d1e55c9a1752885d7101a8e6886ff04c70259dff6bb672f79ce0c63952d9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35600fe3cc1ccd2029b47e2740bfd3f100a5896acd13e9eeafd583727abc4922\",\"dweb:/ipfs/QmNWWpGGpZ9r46Cw8hNVJG3vobFwk6hHhsWjRiJUo4xB4h\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/INonceHolder.sol\":{\"keccak256\":\"0x4895f2828cac4b6c3891c59214d70d3cd31cee4324a6e70c87caf90a234776fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0b7cfe1caf4c91b44111eb2ff9ffd693ad4ec3f4f09ffd6a8c65645de1c4d23e\",\"dweb:/ipfs/QmNnzanCJq3JR6JYhGhZzUAa5VQznuBN6A8bg5nNwq9wSU\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymasterFlow.sol\":{\"keccak256\":\"0xbc73dbaf894a3fa41b52195227c73a855fdfcee713fa5ab3fba0773abe61a017\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e3fc1a2b1d3e2662a378ff3499457097e9ee1918faa830e741a38102ffa534f7\",\"dweb:/ipfs/QmatFh5y3B4XFnMZWjDuyUNCZAzh1dYF2uqEJvebxmzu6R\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/ISystemContext.sol\":{\"keccak256\":\"0xeb17460013b7bd75015f14c7aa296f7613dd331ffb2dccb4e725e708aa942ffb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7b4a3d7369d59deda677a7f2997151a146084d4d8487733ddec97924455c17d7\",\"dweb:/ipfs/QmQnCanKcV8UnBWHAV5BzDxnFd3sAQPQZbRAC44JCsgN4v\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/EfficientCall.sol\":{\"keccak256\":\"0x60a1780ada0ebad3ca24743399fb56c60bed23e1218371ec56855d214d152ea6\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2c7b490a8218a2d505b25d87c3aeb40e8867ed424e6eceb7ceb7bc557a32301a\",\"dweb:/ipfs/QmWRiRc11dHg2Vjbstxp1QCLqP23FsgtJS6R1jSfWiaBrC\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/RLPEncoder.sol\":{\"keccak256\":\"0x90e89a3db5d1d31cb60835b554c751c995339c7f7204314bc546683cad733439\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://234b0b0f64b3c984689f3c8d55ab2bf2e2a51c926aa8708aa72e365e884a4c28\",\"dweb:/ipfs/QmR2FLvaUCyBS6HnhZt5cp5nmjdefjdSVSymuYVG9qToBF\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractHelper.sol\":{\"keccak256\":\"0x5eb2c2a098cf0c4cd39be7842682a20ef575dccbb5d10713f98313788212411a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e1c1a52053dcf3b347a7161655f4e8a396be0c663d0d30b60953cf4e81e68848\",\"dweb:/ipfs/Qmat7quKhUTrjLDyPcAqMdpg4KP2jQhbuoCTGq7YENXHZ4\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractsCaller.sol\":{\"keccak256\":\"0x5033a1008942cb59413e47ea876f99bc5cd2b4b72308db003579ee1add07571f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11866ee670865a59e96ee25971d32abbe6a012a65ee0eca8a37aa11fe463e81f\",\"dweb:/ipfs/Qme3fnqFJgtnpRHf21Xj8qrE46P3nKwMZTywJytRbMjBZg\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/TransactionHelper.sol\":{\"keccak256\":\"0xb8ad21ccd87317971347a7a07388a1647944f62de02dbf2594632497e3dec330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://56369664918121fd8276ef09e35e1c5d64b8616ee38ad8d88fd45fbb0ddf381d\",\"dweb:/ipfs/QmPENE5H4Lg94MCpQ7gjah26Muqhc7QYAcyXQ9sFHxViGq\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/Utils.sol\":{\"keccak256\":\"0x323d26123de797a41955a05e68be86a6fe55aa62134ec59a8f89faa5bd04c416\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e0fd70642c2ded7d486bc5a3faac55d3357c20bb10d4243fef61962cf70e641\",\"dweb:/ipfs/QmWqQ3x27z2iCNNaAfXVAJ3FX2tHvUYu1t1Ze27pdbCRbK\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x35e258421ae206f3db37281cea70871b4c3553914734aa76139a41af60ac1abb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ef94b6bc4ee356db612a1849c615f7dd4b15542d6c8584c86bb9243a7913cf0\",\"dweb:/ipfs/QmaxFj5NFpAjjitZtHPNS9PPtCuBATaRz9ktDDRCQCQ83y\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x84d04bd9b87928b261736f90a86cbb15d8cf6f80560151366370fa79313f3cb5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7fd52b96d25ba9ca6ba26a591d2726c0256185b1c107b9a06834ca9ce0bae240\",\"dweb:/ipfs/QmYbgPqwwX1hUi6HfqcPM82bqgbjLYWDCXv83NxCvivL43\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/utils/Address.sol\":{\"keccak256\":\"0xef97d5bcb540814e1371a1e355a170919412e0d6754fdaa003b6a602e6a7ea4d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41a8f093a740cdcb224e48b2c4c2868f8e86dcdd3bc96ded6b10d29714b6f9a4\",\"dweb:/ipfs/QmSsgQmcY8n1a2bCFxdpWGS3YV63TZyZD77ycNHdpMDySL\"]}},\"version\":1}"}},"@matterlabs/zksync-contracts/l2/system-contracts/libraries/TransactionHelper.sol":{"TransactionHelper":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220023c79b805f279cf37dab836c1123895007f802f4551fc0402e993ba4ad51dbd64736f6c63430008120033","opcodes":"PUSH1 0x80 DUP1 PUSH1 0x40 MSTORE CALLVALUE PUSH1 0x17 JUMPI PUSH1 0x3A SWAP1 DUP2 PUSH1 0x1D DUP3 CODECOPY ADDRESS DUP2 POP POP RETURN JUMPDEST PUSH1 0x0 DUP1 REVERT INVALID PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 MUL EXTCODECOPY PUSH26 0xB805F279CF37DAB836C1123895007F802F4551FC0402E993BA4A 0xD5 SAR 0xBD PUSH5 0x736F6C6343 STOP ADDMOD SLT STOP CALLER ","sourceMap":"3015:16576:18:-:0;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"600080fdfea2646970667358221220023c79b805f279cf37dab836c1123895007f802f4551fc0402e993ba4ad51dbd64736f6c63430008120033","opcodes":"PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 MUL EXTCODECOPY PUSH26 0xB805F279CF37DAB836C1123895007F802F4551FC0402E993BA4A 0xD5 SAR 0xBD PUSH5 0x736F6C6343 STOP ADDMOD SLT STOP CALLER ","sourceMap":"3015:16576:18:-:0;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"Matter Labs\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Library is used to help custom accounts to work with common methods for the Transaction type.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/TransactionHelper.sol\":\"TransactionHelper\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@matterlabs/zksync-contracts/l2/system-contracts/BootloaderUtilities.sol\":{\"keccak256\":\"0xc41e925966405a28c4eb0e2469a29eadd62754859fe61166fda0ceac5610c8f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6781f926f24839f6d0f5bf5927de8a7ddcf36d7b5a047faa53d530022ecf5df\",\"dweb:/ipfs/QmRtScb3y57Ygy9xctaa448ZkRA7ouaJfxhBwdKLRN6a3z\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/Constants.sol\":{\"keccak256\":\"0x29a24f62d17d95b1f8d2d79505d056e1e99d64c1d5725a4b46fbe91a965b0c60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b56691f9a23d9b0f17ea5c6e1dcce28b780a461c34eb9340f74621dad25c5468\",\"dweb:/ipfs/QmXVJTkTBWfuiGhwvxP9Ldv7oDmAd66ruLhoQemE15F6KS\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IAccountCodeStorage.sol\":{\"keccak256\":\"0xc75d1bd8895832daeb7d59734cf0afcc47628c2c343b95cc5359d6975dc3ccaa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5be4ef8c557cd5216127b14b53b881a410707387fe9b7522a95e83f3b56b0368\",\"dweb:/ipfs/QmeAnw5BjgR4Vrz5eBkWdEMajevVaDyMbSXRPALfyHYnbe\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBootloaderUtilities.sol\":{\"keccak256\":\"0xeea7b6ea35e94ae1ee84697df2053ca660e750c90e8d9e340a515200e5de52f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9e55744cabfc9ae67d43b136c9f1be3e347dd6c9d9d2777bb699fed9bc630c5\",\"dweb:/ipfs/QmQcACmf7PfijgFjLbcNi8SRZh1bUvN4abpWUGWCRnszpS\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBytecodeCompressor.sol\":{\"keccak256\":\"0xfbe695ca62333019f21a12a1636736a1e3ffaba62059d35fe24a7694cf99a1ac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e6d6bece56e8be5391e77af4b4a1eaf18ceefb500b0fd15123878ecee1ec3f8d\",\"dweb:/ipfs/QmNfy59uBQAsyfG2Vfdy38M6TYj3nLnkbb1P2euQqQEteZ\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IContractDeployer.sol\":{\"keccak256\":\"0xcd0cb526a3c1b6c8689ca2b4ff4da2f8cb2b134dce1b983b2368e4b8ff585ad3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e853769ee9769d16a4398a4351e82214801592b711c3cc6789de36e4b84cfa71\",\"dweb:/ipfs/QmeXAc1mRQVhhaXjj15XWH2YS4tjpYqMwgdQ8xLAozcdmU\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IEthToken.sol\":{\"keccak256\":\"0x12d57fed82ecc9d955e592e65d36c0256da4f8f3ce46c59e9828664bb623be2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e95d99c4202b2fbe10706e358e09135cb9ec43563db7e72fe81913f2798f4b5\",\"dweb:/ipfs/QmbPcrDDHSQsKKXq5itMttMQnRXpYpGYMLYp9BDXoVwa7k\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IImmutableSimulator.sol\":{\"keccak256\":\"0xe71d8c877f89fb8f2e3cc83d31dea978de99c35d07354052388abb6af9e9dbcc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://47b7c0601463321723b2623873fd91365a451f7d2b26216ea48d0503c38f91e8\",\"dweb:/ipfs/QmbFjjH95ekfzeR94z3AEsak1dfmZ5R8aHsbDpGwBzjSzD\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IKnownCodesStorage.sol\":{\"keccak256\":\"0xbc460f4e40c05b0b958d94bdcc23cc64f1efe887ef722c7bd4afc66583d92846\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6956ef37fb2a64c065251fdd3dc3b8ab9abb56a23c64b4ed7a3f32dce3af2472\",\"dweb:/ipfs/QmcVUbnZ6AXbmWm8CbLWM6p2pGnpy5VmgsEjQrHqWheBM5\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IL1Messenger.sol\":{\"keccak256\":\"0x13b3d1e55c9a1752885d7101a8e6886ff04c70259dff6bb672f79ce0c63952d9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35600fe3cc1ccd2029b47e2740bfd3f100a5896acd13e9eeafd583727abc4922\",\"dweb:/ipfs/QmNWWpGGpZ9r46Cw8hNVJG3vobFwk6hHhsWjRiJUo4xB4h\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/INonceHolder.sol\":{\"keccak256\":\"0x4895f2828cac4b6c3891c59214d70d3cd31cee4324a6e70c87caf90a234776fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0b7cfe1caf4c91b44111eb2ff9ffd693ad4ec3f4f09ffd6a8c65645de1c4d23e\",\"dweb:/ipfs/QmNnzanCJq3JR6JYhGhZzUAa5VQznuBN6A8bg5nNwq9wSU\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymasterFlow.sol\":{\"keccak256\":\"0xbc73dbaf894a3fa41b52195227c73a855fdfcee713fa5ab3fba0773abe61a017\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e3fc1a2b1d3e2662a378ff3499457097e9ee1918faa830e741a38102ffa534f7\",\"dweb:/ipfs/QmatFh5y3B4XFnMZWjDuyUNCZAzh1dYF2uqEJvebxmzu6R\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/ISystemContext.sol\":{\"keccak256\":\"0xeb17460013b7bd75015f14c7aa296f7613dd331ffb2dccb4e725e708aa942ffb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7b4a3d7369d59deda677a7f2997151a146084d4d8487733ddec97924455c17d7\",\"dweb:/ipfs/QmQnCanKcV8UnBWHAV5BzDxnFd3sAQPQZbRAC44JCsgN4v\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/EfficientCall.sol\":{\"keccak256\":\"0x60a1780ada0ebad3ca24743399fb56c60bed23e1218371ec56855d214d152ea6\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2c7b490a8218a2d505b25d87c3aeb40e8867ed424e6eceb7ceb7bc557a32301a\",\"dweb:/ipfs/QmWRiRc11dHg2Vjbstxp1QCLqP23FsgtJS6R1jSfWiaBrC\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/RLPEncoder.sol\":{\"keccak256\":\"0x90e89a3db5d1d31cb60835b554c751c995339c7f7204314bc546683cad733439\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://234b0b0f64b3c984689f3c8d55ab2bf2e2a51c926aa8708aa72e365e884a4c28\",\"dweb:/ipfs/QmR2FLvaUCyBS6HnhZt5cp5nmjdefjdSVSymuYVG9qToBF\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractHelper.sol\":{\"keccak256\":\"0x5eb2c2a098cf0c4cd39be7842682a20ef575dccbb5d10713f98313788212411a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e1c1a52053dcf3b347a7161655f4e8a396be0c663d0d30b60953cf4e81e68848\",\"dweb:/ipfs/Qmat7quKhUTrjLDyPcAqMdpg4KP2jQhbuoCTGq7YENXHZ4\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractsCaller.sol\":{\"keccak256\":\"0x5033a1008942cb59413e47ea876f99bc5cd2b4b72308db003579ee1add07571f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11866ee670865a59e96ee25971d32abbe6a012a65ee0eca8a37aa11fe463e81f\",\"dweb:/ipfs/Qme3fnqFJgtnpRHf21Xj8qrE46P3nKwMZTywJytRbMjBZg\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/TransactionHelper.sol\":{\"keccak256\":\"0xb8ad21ccd87317971347a7a07388a1647944f62de02dbf2594632497e3dec330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://56369664918121fd8276ef09e35e1c5d64b8616ee38ad8d88fd45fbb0ddf381d\",\"dweb:/ipfs/QmPENE5H4Lg94MCpQ7gjah26Muqhc7QYAcyXQ9sFHxViGq\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/Utils.sol\":{\"keccak256\":\"0x323d26123de797a41955a05e68be86a6fe55aa62134ec59a8f89faa5bd04c416\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e0fd70642c2ded7d486bc5a3faac55d3357c20bb10d4243fef61962cf70e641\",\"dweb:/ipfs/QmWqQ3x27z2iCNNaAfXVAJ3FX2tHvUYu1t1Ze27pdbCRbK\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x35e258421ae206f3db37281cea70871b4c3553914734aa76139a41af60ac1abb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ef94b6bc4ee356db612a1849c615f7dd4b15542d6c8584c86bb9243a7913cf0\",\"dweb:/ipfs/QmaxFj5NFpAjjitZtHPNS9PPtCuBATaRz9ktDDRCQCQ83y\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x84d04bd9b87928b261736f90a86cbb15d8cf6f80560151366370fa79313f3cb5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7fd52b96d25ba9ca6ba26a591d2726c0256185b1c107b9a06834ca9ce0bae240\",\"dweb:/ipfs/QmYbgPqwwX1hUi6HfqcPM82bqgbjLYWDCXv83NxCvivL43\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/utils/Address.sol\":{\"keccak256\":\"0xef97d5bcb540814e1371a1e355a170919412e0d6754fdaa003b6a602e6a7ea4d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41a8f093a740cdcb224e48b2c4c2868f8e86dcdd3bc96ded6b10d29714b6f9a4\",\"dweb:/ipfs/QmSsgQmcY8n1a2bCFxdpWGS3YV63TZyZD77ycNHdpMDySL\"]}},\"version\":1}"}},"@matterlabs/zksync-contracts/l2/system-contracts/libraries/Utils.sol":{"Utils":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220cda790b0fda0c8de3ee1bda342d1bc887c69410acffc03bcf629d72bcc2cadbe64736f6c63430008120033","opcodes":"PUSH1 0x80 DUP1 PUSH1 0x40 MSTORE CALLVALUE PUSH1 0x17 JUMPI PUSH1 0x3A SWAP1 DUP2 PUSH1 0x1D DUP3 CODECOPY ADDRESS DUP2 POP POP RETURN JUMPDEST PUSH1 0x0 DUP1 REVERT INVALID PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xCD 0xA7 SWAP1 0xB0 REVERT LOG0 0xC8 0xDE RETURNDATACOPY 0xE1 0xBD LOG3 TIMESTAMP 0xD1 0xBC DUP9 PUSH29 0x69410ACFFC03BCF629D72BCC2CADBE64736F6C63430008120033000000 ","sourceMap":"177:4209:19:-:0;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"600080fdfea2646970667358221220cda790b0fda0c8de3ee1bda342d1bc887c69410acffc03bcf629d72bcc2cadbe64736f6c63430008120033","opcodes":"PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xCD 0xA7 SWAP1 0xB0 REVERT LOG0 0xC8 0xDE RETURNDATACOPY 0xE1 0xBD LOG3 TIMESTAMP 0xD1 0xBC DUP9 PUSH29 0x69410ACFFC03BCF629D72BCC2CADBE64736F6C63430008120033000000 ","sourceMap":"177:4209:19:-:0;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"Matter Labs\",\"details\":\"Common utilities used in zkSync system contracts\",\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"IS_CONSTRUCTOR_BYTECODE_HASH_BIT_MASK\":{\"details\":\"Bit mask of bytecode hash \\\"isConstructor\\\" marker\"},\"SET_IS_CONSTRUCTOR_MARKER_BIT_MASK\":{\"details\":\"Bit mask to set the \\\"isConstructor\\\" marker in the bytecode hash\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/Utils.sol\":\"Utils\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@matterlabs/zksync-contracts/l2/system-contracts/BootloaderUtilities.sol\":{\"keccak256\":\"0xc41e925966405a28c4eb0e2469a29eadd62754859fe61166fda0ceac5610c8f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6781f926f24839f6d0f5bf5927de8a7ddcf36d7b5a047faa53d530022ecf5df\",\"dweb:/ipfs/QmRtScb3y57Ygy9xctaa448ZkRA7ouaJfxhBwdKLRN6a3z\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/Constants.sol\":{\"keccak256\":\"0x29a24f62d17d95b1f8d2d79505d056e1e99d64c1d5725a4b46fbe91a965b0c60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b56691f9a23d9b0f17ea5c6e1dcce28b780a461c34eb9340f74621dad25c5468\",\"dweb:/ipfs/QmXVJTkTBWfuiGhwvxP9Ldv7oDmAd66ruLhoQemE15F6KS\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IAccountCodeStorage.sol\":{\"keccak256\":\"0xc75d1bd8895832daeb7d59734cf0afcc47628c2c343b95cc5359d6975dc3ccaa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5be4ef8c557cd5216127b14b53b881a410707387fe9b7522a95e83f3b56b0368\",\"dweb:/ipfs/QmeAnw5BjgR4Vrz5eBkWdEMajevVaDyMbSXRPALfyHYnbe\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBootloaderUtilities.sol\":{\"keccak256\":\"0xeea7b6ea35e94ae1ee84697df2053ca660e750c90e8d9e340a515200e5de52f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9e55744cabfc9ae67d43b136c9f1be3e347dd6c9d9d2777bb699fed9bc630c5\",\"dweb:/ipfs/QmQcACmf7PfijgFjLbcNi8SRZh1bUvN4abpWUGWCRnszpS\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBytecodeCompressor.sol\":{\"keccak256\":\"0xfbe695ca62333019f21a12a1636736a1e3ffaba62059d35fe24a7694cf99a1ac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e6d6bece56e8be5391e77af4b4a1eaf18ceefb500b0fd15123878ecee1ec3f8d\",\"dweb:/ipfs/QmNfy59uBQAsyfG2Vfdy38M6TYj3nLnkbb1P2euQqQEteZ\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IContractDeployer.sol\":{\"keccak256\":\"0xcd0cb526a3c1b6c8689ca2b4ff4da2f8cb2b134dce1b983b2368e4b8ff585ad3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e853769ee9769d16a4398a4351e82214801592b711c3cc6789de36e4b84cfa71\",\"dweb:/ipfs/QmeXAc1mRQVhhaXjj15XWH2YS4tjpYqMwgdQ8xLAozcdmU\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IEthToken.sol\":{\"keccak256\":\"0x12d57fed82ecc9d955e592e65d36c0256da4f8f3ce46c59e9828664bb623be2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e95d99c4202b2fbe10706e358e09135cb9ec43563db7e72fe81913f2798f4b5\",\"dweb:/ipfs/QmbPcrDDHSQsKKXq5itMttMQnRXpYpGYMLYp9BDXoVwa7k\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IImmutableSimulator.sol\":{\"keccak256\":\"0xe71d8c877f89fb8f2e3cc83d31dea978de99c35d07354052388abb6af9e9dbcc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://47b7c0601463321723b2623873fd91365a451f7d2b26216ea48d0503c38f91e8\",\"dweb:/ipfs/QmbFjjH95ekfzeR94z3AEsak1dfmZ5R8aHsbDpGwBzjSzD\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IKnownCodesStorage.sol\":{\"keccak256\":\"0xbc460f4e40c05b0b958d94bdcc23cc64f1efe887ef722c7bd4afc66583d92846\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6956ef37fb2a64c065251fdd3dc3b8ab9abb56a23c64b4ed7a3f32dce3af2472\",\"dweb:/ipfs/QmcVUbnZ6AXbmWm8CbLWM6p2pGnpy5VmgsEjQrHqWheBM5\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IL1Messenger.sol\":{\"keccak256\":\"0x13b3d1e55c9a1752885d7101a8e6886ff04c70259dff6bb672f79ce0c63952d9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35600fe3cc1ccd2029b47e2740bfd3f100a5896acd13e9eeafd583727abc4922\",\"dweb:/ipfs/QmNWWpGGpZ9r46Cw8hNVJG3vobFwk6hHhsWjRiJUo4xB4h\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/INonceHolder.sol\":{\"keccak256\":\"0x4895f2828cac4b6c3891c59214d70d3cd31cee4324a6e70c87caf90a234776fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0b7cfe1caf4c91b44111eb2ff9ffd693ad4ec3f4f09ffd6a8c65645de1c4d23e\",\"dweb:/ipfs/QmNnzanCJq3JR6JYhGhZzUAa5VQznuBN6A8bg5nNwq9wSU\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymasterFlow.sol\":{\"keccak256\":\"0xbc73dbaf894a3fa41b52195227c73a855fdfcee713fa5ab3fba0773abe61a017\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e3fc1a2b1d3e2662a378ff3499457097e9ee1918faa830e741a38102ffa534f7\",\"dweb:/ipfs/QmatFh5y3B4XFnMZWjDuyUNCZAzh1dYF2uqEJvebxmzu6R\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/ISystemContext.sol\":{\"keccak256\":\"0xeb17460013b7bd75015f14c7aa296f7613dd331ffb2dccb4e725e708aa942ffb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7b4a3d7369d59deda677a7f2997151a146084d4d8487733ddec97924455c17d7\",\"dweb:/ipfs/QmQnCanKcV8UnBWHAV5BzDxnFd3sAQPQZbRAC44JCsgN4v\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/EfficientCall.sol\":{\"keccak256\":\"0x60a1780ada0ebad3ca24743399fb56c60bed23e1218371ec56855d214d152ea6\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2c7b490a8218a2d505b25d87c3aeb40e8867ed424e6eceb7ceb7bc557a32301a\",\"dweb:/ipfs/QmWRiRc11dHg2Vjbstxp1QCLqP23FsgtJS6R1jSfWiaBrC\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/RLPEncoder.sol\":{\"keccak256\":\"0x90e89a3db5d1d31cb60835b554c751c995339c7f7204314bc546683cad733439\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://234b0b0f64b3c984689f3c8d55ab2bf2e2a51c926aa8708aa72e365e884a4c28\",\"dweb:/ipfs/QmR2FLvaUCyBS6HnhZt5cp5nmjdefjdSVSymuYVG9qToBF\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractHelper.sol\":{\"keccak256\":\"0x5eb2c2a098cf0c4cd39be7842682a20ef575dccbb5d10713f98313788212411a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e1c1a52053dcf3b347a7161655f4e8a396be0c663d0d30b60953cf4e81e68848\",\"dweb:/ipfs/Qmat7quKhUTrjLDyPcAqMdpg4KP2jQhbuoCTGq7YENXHZ4\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractsCaller.sol\":{\"keccak256\":\"0x5033a1008942cb59413e47ea876f99bc5cd2b4b72308db003579ee1add07571f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11866ee670865a59e96ee25971d32abbe6a012a65ee0eca8a37aa11fe463e81f\",\"dweb:/ipfs/Qme3fnqFJgtnpRHf21Xj8qrE46P3nKwMZTywJytRbMjBZg\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/TransactionHelper.sol\":{\"keccak256\":\"0xb8ad21ccd87317971347a7a07388a1647944f62de02dbf2594632497e3dec330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://56369664918121fd8276ef09e35e1c5d64b8616ee38ad8d88fd45fbb0ddf381d\",\"dweb:/ipfs/QmPENE5H4Lg94MCpQ7gjah26Muqhc7QYAcyXQ9sFHxViGq\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/Utils.sol\":{\"keccak256\":\"0x323d26123de797a41955a05e68be86a6fe55aa62134ec59a8f89faa5bd04c416\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e0fd70642c2ded7d486bc5a3faac55d3357c20bb10d4243fef61962cf70e641\",\"dweb:/ipfs/QmWqQ3x27z2iCNNaAfXVAJ3FX2tHvUYu1t1Ze27pdbCRbK\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x35e258421ae206f3db37281cea70871b4c3553914734aa76139a41af60ac1abb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ef94b6bc4ee356db612a1849c615f7dd4b15542d6c8584c86bb9243a7913cf0\",\"dweb:/ipfs/QmaxFj5NFpAjjitZtHPNS9PPtCuBATaRz9ktDDRCQCQ83y\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x84d04bd9b87928b261736f90a86cbb15d8cf6f80560151366370fa79313f3cb5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7fd52b96d25ba9ca6ba26a591d2726c0256185b1c107b9a06834ca9ce0bae240\",\"dweb:/ipfs/QmYbgPqwwX1hUi6HfqcPM82bqgbjLYWDCXv83NxCvivL43\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/utils/Address.sol\":{\"keccak256\":\"0xef97d5bcb540814e1371a1e355a170919412e0d6754fdaa003b6a602e6a7ea4d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41a8f093a740cdcb224e48b2c4c2868f8e86dcdd3bc96ded6b10d29714b6f9a4\",\"dweb:/ipfs/QmSsgQmcY8n1a2bCFxdpWGS3YV63TZyZD77ycNHdpMDySL\"]}},\"version\":1}"}},"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/IERC20.sol":{"IERC20":{"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"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"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\":{\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/IERC20.sol\":\"IERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]}},\"version\":1}"}},"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/extensions/IERC20Permit.sol":{"IERC20Permit":{"abi":[{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","nonces(address)":"7ecebe00","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf"}},"metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in https://eips.ethereum.org/EIPS/eip-2612[EIP-2612]. Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't need to send a transaction, and thus is not required to hold Ether at all.\",\"kind\":\"dev\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"details\":\"Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}.\"},\"nonces(address)\":{\"details\":\"Returns the current nonce for `owner`. This value must be included whenever a signature is generated for {permit}. Every successful call to {permit} increases ``owner``'s nonce by one. This prevents a signature from being used multiple times.\"},\"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Sets `value` as the allowance of `spender` over ``owner``'s tokens, given ``owner``'s signed approval. IMPORTANT: The same issues {IERC20-approve} has related to transaction ordering also apply here. Emits an {Approval} event. Requirements: - `spender` cannot be the zero address. - `deadline` must be a timestamp in the future. - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner` over the EIP712-formatted function arguments. - the signature must use ``owner``'s current nonce (see {nonces}). For more information on the signature format, see the https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP section].\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/extensions/IERC20Permit.sol\":\"IERC20Permit\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x35e258421ae206f3db37281cea70871b4c3553914734aa76139a41af60ac1abb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ef94b6bc4ee356db612a1849c615f7dd4b15542d6c8584c86bb9243a7913cf0\",\"dweb:/ipfs/QmaxFj5NFpAjjitZtHPNS9PPtCuBATaRz9ktDDRCQCQ83y\"]}},\"version\":1}"}},"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/utils/SafeERC20.sol":{"SafeERC20":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220f9f1240120c242b1326825687e71c6462d02eccd50c82b79c3efe417d5c04edc64736f6c63430008120033","opcodes":"PUSH1 0x80 DUP1 PUSH1 0x40 MSTORE CALLVALUE PUSH1 0x17 JUMPI PUSH1 0x3A SWAP1 DUP2 PUSH1 0x1D DUP3 CODECOPY ADDRESS DUP2 POP POP RETURN JUMPDEST PUSH1 0x0 DUP1 REVERT INVALID PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xF9 CALL 0x24 ADD KECCAK256 0xC2 TIMESTAMP 0xB1 ORIGIN PUSH9 0x25687E71C6462D02EC 0xCD POP 0xC8 0x2B PUSH26 0xC3EFE417D5C04EDC64736F6C6343000812003300000000000000 ","sourceMap":"701:4230:22:-:0;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"600080fdfea2646970667358221220f9f1240120c242b1326825687e71c6462d02eccd50c82b79c3efe417d5c04edc64736f6c63430008120033","opcodes":"PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xF9 CALL 0x24 ADD KECCAK256 0xC2 TIMESTAMP 0xB1 ORIGIN PUSH9 0x25687E71C6462D02EC 0xCD POP 0xC8 0x2B PUSH26 0xC3EFE417D5C04EDC64736F6C6343000812003300000000000000 ","sourceMap":"701:4230:22:-:0;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Wrappers around ERC20 operations that throw on failure (when the token contract returns false). Tokens that return no value (and instead revert or throw on failure) are also supported, non-reverting calls are assumed to be successful. To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract, which allows you to call the safe operations as `token.safeTransfer(...)`, etc.\",\"kind\":\"dev\",\"methods\":{},\"title\":\"SafeERC20\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/utils/SafeERC20.sol\":\"SafeERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x35e258421ae206f3db37281cea70871b4c3553914734aa76139a41af60ac1abb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ef94b6bc4ee356db612a1849c615f7dd4b15542d6c8584c86bb9243a7913cf0\",\"dweb:/ipfs/QmaxFj5NFpAjjitZtHPNS9PPtCuBATaRz9ktDDRCQCQ83y\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x84d04bd9b87928b261736f90a86cbb15d8cf6f80560151366370fa79313f3cb5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7fd52b96d25ba9ca6ba26a591d2726c0256185b1c107b9a06834ca9ce0bae240\",\"dweb:/ipfs/QmYbgPqwwX1hUi6HfqcPM82bqgbjLYWDCXv83NxCvivL43\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/utils/Address.sol\":{\"keccak256\":\"0xef97d5bcb540814e1371a1e355a170919412e0d6754fdaa003b6a602e6a7ea4d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41a8f093a740cdcb224e48b2c4c2868f8e86dcdd3bc96ded6b10d29714b6f9a4\",\"dweb:/ipfs/QmSsgQmcY8n1a2bCFxdpWGS3YV63TZyZD77ycNHdpMDySL\"]}},\"version\":1}"}},"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/utils/Address.sol":{"Address":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220fa930808715f13d9e1cd9184730fc8baebb074123b08e81ffed2c39ebd282d2564736f6c63430008120033","opcodes":"PUSH1 0x80 DUP1 PUSH1 0x40 MSTORE CALLVALUE PUSH1 0x17 JUMPI PUSH1 0x3A SWAP1 DUP2 PUSH1 0x1D DUP3 CODECOPY ADDRESS DUP2 POP POP RETURN JUMPDEST PUSH1 0x0 DUP1 REVERT INVALID PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 STATICCALL SWAP4 ADDMOD ADDMOD PUSH18 0x5F13D9E1CD9184730FC8BAEBB074123B08E8 0x1F INVALID 0xD2 0xC3 SWAP15 0xBD 0x28 0x2D 0x25 PUSH5 0x736F6C6343 STOP ADDMOD SLT STOP CALLER ","sourceMap":"194:9773:23:-:0;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"600080fdfea2646970667358221220fa930808715f13d9e1cd9184730fc8baebb074123b08e81ffed2c39ebd282d2564736f6c63430008120033","opcodes":"PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 STATICCALL SWAP4 ADDMOD ADDMOD PUSH18 0x5F13D9E1CD9184730FC8BAEBB074123B08E8 0x1F INVALID 0xD2 0xC3 SWAP15 0xBD 0x28 0x2D 0x25 PUSH5 0x736F6C6343 STOP ADDMOD SLT STOP CALLER ","sourceMap":"194:9773:23:-:0;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"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\":{\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/utils/Address.sol\":\"Address\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/utils/Address.sol\":{\"keccak256\":\"0xef97d5bcb540814e1371a1e355a170919412e0d6754fdaa003b6a602e6a7ea4d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41a8f093a740cdcb224e48b2c4c2868f8e86dcdd3bc96ded6b10d29714b6f9a4\",\"dweb:/ipfs/QmSsgQmcY8n1a2bCFxdpWGS3YV63TZyZD77ycNHdpMDySL\"]}},\"version\":1}"}},"@openzeppelin/contracts/access/Ownable.sol":{"Ownable":{"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"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"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\":{\"@openzeppelin/contracts/access/Ownable.sol\":\"Ownable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0x24e0364e503a9bbde94c715d26573a76f14cd2a202d45f96f52134ab806b67b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e12cbaa7378fd9b62280e4e1d164bedcb4399ce238f5f98fc0eefb7e50577981\",\"dweb:/ipfs/QmXRoFGUgfsaRkoPT5bxNMtSayKTQ8GZATLPXf69HcRA51\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC20/ERC20.sol":{"ERC20":{"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"}],"evm":{"bytecode":{"functionDebugData":{"abi_decode_string_fromMemory":{"entryPoint":840,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_memory":{"entryPoint":802,"id":null,"parameterSlots":1,"returnSlots":1}},"generatedSources":[],"linkReferences":{},"object":"6080604052346200031d5762000c77803803806200001d8162000322565b9283398101906040818303126200031d5780516001600160401b03908181116200031d57836200004f91840162000348565b91602093848201518381116200031d576200006b920162000348565b82518281116200021d576003918254916001958684811c9416801562000312575b88851014620002fc578190601f94858111620002a6575b5088908583116001146200023f5760009262000233575b505060001982861b1c191690861b1783555b80519384116200021d5760049586548681811c9116801562000212575b82821014620001fd57838111620001b2575b508092851160011462000144575093839491849260009562000138575b50501b92600019911b1c19161790555b6040516108bc9081620003bb8239f35b01519350388062000118565b92919084601f1981168860005285600020956000905b898383106200019757505050106200017c575b50505050811b01905562000128565b01519060f884600019921b161c19169055388080806200016d565b8587015189559097019694850194889350908101906200015a565b87600052816000208480880160051c820192848910620001f3575b0160051c019087905b828110620001e6575050620000fb565b60008155018790620001d6565b92508192620001cd565b602288634e487b7160e01b6000525260246000fd5b90607f1690620000e9565b634e487b7160e01b600052604160045260246000fd5b015190503880620000ba565b90889350601f19831691876000528a6000209260005b8c8282106200028f575050841162000276575b505050811b018355620000cc565b015160001983881b60f8161c1916905538808062000268565b8385015186558c9790950194938401930162000255565b90915085600052886000208580850160051c8201928b8610620002f2575b918a91869594930160051c01915b828110620002e2575050620000a3565b600081558594508a9101620002d2565b92508192620002c4565b634e487b7160e01b600052602260045260246000fd5b93607f16936200008c565b600080fd5b6040519190601f01601f191682016001600160401b038111838210176200021d57604052565b919080601f840112156200031d5782516001600160401b0381116200021d576020906200037e601f8201601f1916830162000322565b928184528282870101116200031d5760005b818110620003a657508260009394955001015290565b85810183015184820184015282016200039056fe608060408181526004918236101561001657600080fd5b600092833560e01c91826306fdde031461049657508163095ea7b31461046c57816318160ddd1461044d57816323b872dd14610383578163313ce56714610367578163395093511461031757816370a08231146102e057816395d89b41146101c1578163a457c2d71461011957508063a9059cbb146100e95763dd62ed3e1461009e57600080fd5b346100e557806003193601126100e557806020926100ba6105bb565b6100c26105d6565b6001600160a01b0391821683526001865283832091168252845220549051908152f35b5080fd5b50346100e557806003193601126100e5576020906101126101086105bb565b602435903361060f565b5160018152f35b905082346101be57826003193601126101be576101346105bb565b918360243592338152600160205281812060018060a01b038616825260205220549082821061016d576020856101128585038733610784565b608490602086519162461bcd60e51b8352820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152fd5b80fd5b8383346100e557816003193601126100e557805190828454600181811c908083169283156102d6575b60209384841081146102c3578388529081156102a75750600114610252575b505050829003601f01601f191682019267ffffffffffffffff84118385101761023f575082918261023b925282610572565b0390f35b634e487b7160e01b815260418552602490fd5b8787529192508591837f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b8385106102935750505050830101858080610209565b80548886018301529301928490820161027d565b60ff1916878501525050151560051b8401019050858080610209565b634e487b7160e01b895260228a52602489fd5b91607f16916101ea565b5050346100e55760203660031901126100e55760209181906001600160a01b036103086105bb565b16815280845220549051908152f35b5050346100e557806003193601126100e55761011260209261036061033a6105bb565b338352600186528483206001600160a01b038216845286529184902054602435906105ec565b9033610784565b5050346100e557816003193601126100e5576020905160128152f35b839150346100e55760603660031901126100e55761039f6105bb565b6103a76105d6565b91846044359460018060a01b0384168152600160205281812033825260205220549060001982036103e1575b60208661011287878761060f565b84821061040a57509183916103ff6020969561011295033383610784565b9193948193506103d3565b606490602087519162461bcd60e51b8352820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152fd5b5050346100e557816003193601126100e5576020906002549051908152f35b5050346100e557806003193601126100e55760209061011261048c6105bb565b6024359033610784565b8490843461056e578260031936011261056e5782600354600181811c90808316928315610564575b60209384841081146102c3578388529081156102a7575060011461050e57505050829003601f01601f191682019267ffffffffffffffff84118385101761023f575082918261023b925282610572565b600387529192508591837fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b8385106105505750505050830101858080610209565b80548886018301529301928490820161053a565b91607f16916104be565b8280fd5b6020808252825181830181905290939260005b8281106105a757505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610585565b600435906001600160a01b03821682036105d157565b600080fd5b602435906001600160a01b03821682036105d157565b919082018092116105f957565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b0390811691821561073157169182156106e05760008281528060205260408120549180831061068c57604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9587602096528286520382822055868152206106818282546105ec565b9055604051908152a3565b60405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608490fd5b60405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608490fd5b60405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608490fd5b6001600160a01b0390811691821561083557169182156107e55760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925918360005260018252604060002085600052825280604060002055604051908152a3565b60405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608490fd5b60405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608490fdfea264697066735822122089f98b8f1179a8eb361b949e7a7cbb83915b4eeb0aa0229e65cdabb14559f42664736f6c63430008120033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE PUSH3 0x31D JUMPI PUSH3 0xC77 DUP1 CODESIZE SUB DUP1 PUSH3 0x1D DUP2 PUSH3 0x322 JUMP JUMPDEST SWAP3 DUP4 CODECOPY DUP2 ADD SWAP1 PUSH1 0x40 DUP2 DUP4 SUB SLT PUSH3 0x31D JUMPI DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 DUP2 DUP2 GT PUSH3 0x31D JUMPI DUP4 PUSH3 0x4F SWAP2 DUP5 ADD PUSH3 0x348 JUMP JUMPDEST SWAP2 PUSH1 0x20 SWAP4 DUP5 DUP3 ADD MLOAD DUP4 DUP2 GT PUSH3 0x31D JUMPI PUSH3 0x6B SWAP3 ADD PUSH3 0x348 JUMP JUMPDEST DUP3 MLOAD DUP3 DUP2 GT PUSH3 0x21D JUMPI PUSH1 0x3 SWAP2 DUP3 SLOAD SWAP2 PUSH1 0x1 SWAP6 DUP7 DUP5 DUP2 SHR SWAP5 AND DUP1 ISZERO PUSH3 0x312 JUMPI JUMPDEST DUP9 DUP6 LT EQ PUSH3 0x2FC JUMPI DUP2 SWAP1 PUSH1 0x1F SWAP5 DUP6 DUP2 GT PUSH3 0x2A6 JUMPI JUMPDEST POP DUP9 SWAP1 DUP6 DUP4 GT PUSH1 0x1 EQ PUSH3 0x23F JUMPI PUSH1 0x0 SWAP3 PUSH3 0x233 JUMPI JUMPDEST POP POP PUSH1 0x0 NOT DUP3 DUP7 SHL SHR NOT AND SWAP1 DUP7 SHL OR DUP4 SSTORE JUMPDEST DUP1 MLOAD SWAP4 DUP5 GT PUSH3 0x21D JUMPI PUSH1 0x4 SWAP6 DUP7 SLOAD DUP7 DUP2 DUP2 SHR SWAP2 AND DUP1 ISZERO PUSH3 0x212 JUMPI JUMPDEST DUP3 DUP3 LT EQ PUSH3 0x1FD JUMPI DUP4 DUP2 GT PUSH3 0x1B2 JUMPI JUMPDEST POP DUP1 SWAP3 DUP6 GT PUSH1 0x1 EQ PUSH3 0x144 JUMPI POP SWAP4 DUP4 SWAP5 SWAP2 DUP5 SWAP3 PUSH1 0x0 SWAP6 PUSH3 0x138 JUMPI JUMPDEST POP POP SHL SWAP3 PUSH1 0x0 NOT SWAP2 SHL SHR NOT AND OR SWAP1 SSTORE JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x8BC SWAP1 DUP2 PUSH3 0x3BB DUP3 CODECOPY RETURN JUMPDEST ADD MLOAD SWAP4 POP CODESIZE DUP1 PUSH3 0x118 JUMP JUMPDEST SWAP3 SWAP2 SWAP1 DUP5 PUSH1 0x1F NOT DUP2 AND DUP9 PUSH1 0x0 MSTORE DUP6 PUSH1 0x0 KECCAK256 SWAP6 PUSH1 0x0 SWAP1 JUMPDEST DUP10 DUP4 DUP4 LT PUSH3 0x197 JUMPI POP POP POP LT PUSH3 0x17C JUMPI JUMPDEST POP POP POP POP DUP2 SHL ADD SWAP1 SSTORE PUSH3 0x128 JUMP JUMPDEST ADD MLOAD SWAP1 PUSH1 0xF8 DUP5 PUSH1 0x0 NOT SWAP3 SHL AND SHR NOT AND SWAP1 SSTORE CODESIZE DUP1 DUP1 DUP1 PUSH3 0x16D JUMP JUMPDEST DUP6 DUP8 ADD MLOAD DUP10 SSTORE SWAP1 SWAP8 ADD SWAP7 SWAP5 DUP6 ADD SWAP5 DUP9 SWAP4 POP SWAP1 DUP2 ADD SWAP1 PUSH3 0x15A JUMP JUMPDEST DUP8 PUSH1 0x0 MSTORE DUP2 PUSH1 0x0 KECCAK256 DUP5 DUP1 DUP9 ADD PUSH1 0x5 SHR DUP3 ADD SWAP3 DUP5 DUP10 LT PUSH3 0x1F3 JUMPI JUMPDEST ADD PUSH1 0x5 SHR ADD SWAP1 DUP8 SWAP1 JUMPDEST DUP3 DUP2 LT PUSH3 0x1E6 JUMPI POP POP PUSH3 0xFB JUMP JUMPDEST PUSH1 0x0 DUP2 SSTORE ADD DUP8 SWAP1 PUSH3 0x1D6 JUMP JUMPDEST SWAP3 POP DUP2 SWAP3 PUSH3 0x1CD JUMP JUMPDEST PUSH1 0x22 DUP9 PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x7F AND SWAP1 PUSH3 0xE9 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADD MLOAD SWAP1 POP CODESIZE DUP1 PUSH3 0xBA JUMP JUMPDEST SWAP1 DUP9 SWAP4 POP PUSH1 0x1F NOT DUP4 AND SWAP2 DUP8 PUSH1 0x0 MSTORE DUP11 PUSH1 0x0 KECCAK256 SWAP3 PUSH1 0x0 JUMPDEST DUP13 DUP3 DUP3 LT PUSH3 0x28F JUMPI POP POP DUP5 GT PUSH3 0x276 JUMPI JUMPDEST POP POP POP DUP2 SHL ADD DUP4 SSTORE PUSH3 0xCC JUMP JUMPDEST ADD MLOAD PUSH1 0x0 NOT DUP4 DUP9 SHL PUSH1 0xF8 AND SHR NOT AND SWAP1 SSTORE CODESIZE DUP1 DUP1 PUSH3 0x268 JUMP JUMPDEST DUP4 DUP6 ADD MLOAD DUP7 SSTORE DUP13 SWAP8 SWAP1 SWAP6 ADD SWAP5 SWAP4 DUP5 ADD SWAP4 ADD PUSH3 0x255 JUMP JUMPDEST SWAP1 SWAP2 POP DUP6 PUSH1 0x0 MSTORE DUP9 PUSH1 0x0 KECCAK256 DUP6 DUP1 DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP3 DUP12 DUP7 LT PUSH3 0x2F2 JUMPI JUMPDEST SWAP2 DUP11 SWAP2 DUP7 SWAP6 SWAP5 SWAP4 ADD PUSH1 0x5 SHR ADD SWAP2 JUMPDEST DUP3 DUP2 LT PUSH3 0x2E2 JUMPI POP POP PUSH3 0xA3 JUMP JUMPDEST PUSH1 0x0 DUP2 SSTORE DUP6 SWAP5 POP DUP11 SWAP2 ADD PUSH3 0x2D2 JUMP JUMPDEST SWAP3 POP DUP2 SWAP3 PUSH3 0x2C4 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP4 PUSH1 0x7F AND SWAP4 PUSH3 0x8C JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MLOAD SWAP2 SWAP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP4 DUP3 LT OR PUSH3 0x21D JUMPI PUSH1 0x40 MSTORE JUMP JUMPDEST SWAP2 SWAP1 DUP1 PUSH1 0x1F DUP5 ADD SLT ISZERO PUSH3 0x31D JUMPI DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT PUSH3 0x21D JUMPI PUSH1 0x20 SWAP1 PUSH3 0x37E PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP4 ADD PUSH3 0x322 JUMP JUMPDEST SWAP3 DUP2 DUP5 MSTORE DUP3 DUP3 DUP8 ADD ADD GT PUSH3 0x31D JUMPI PUSH1 0x0 JUMPDEST DUP2 DUP2 LT PUSH3 0x3A6 JUMPI POP DUP3 PUSH1 0x0 SWAP4 SWAP5 SWAP6 POP ADD ADD MSTORE SWAP1 JUMP JUMPDEST DUP6 DUP2 ADD DUP4 ADD MLOAD DUP5 DUP3 ADD DUP5 ADD MSTORE DUP3 ADD PUSH3 0x390 JUMP INVALID PUSH1 0x80 PUSH1 0x40 DUP2 DUP2 MSTORE PUSH1 0x4 SWAP2 DUP3 CALLDATASIZE LT ISZERO PUSH2 0x16 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP3 DUP4 CALLDATALOAD PUSH1 0xE0 SHR SWAP2 DUP3 PUSH4 0x6FDDE03 EQ PUSH2 0x496 JUMPI POP DUP2 PUSH4 0x95EA7B3 EQ PUSH2 0x46C JUMPI DUP2 PUSH4 0x18160DDD EQ PUSH2 0x44D JUMPI DUP2 PUSH4 0x23B872DD EQ PUSH2 0x383 JUMPI DUP2 PUSH4 0x313CE567 EQ PUSH2 0x367 JUMPI DUP2 PUSH4 0x39509351 EQ PUSH2 0x317 JUMPI DUP2 PUSH4 0x70A08231 EQ PUSH2 0x2E0 JUMPI DUP2 PUSH4 0x95D89B41 EQ PUSH2 0x1C1 JUMPI DUP2 PUSH4 0xA457C2D7 EQ PUSH2 0x119 JUMPI POP DUP1 PUSH4 0xA9059CBB EQ PUSH2 0xE9 JUMPI PUSH4 0xDD62ED3E EQ PUSH2 0x9E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE PUSH2 0xE5 JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0xE5 JUMPI DUP1 PUSH1 0x20 SWAP3 PUSH2 0xBA PUSH2 0x5BB JUMP JUMPDEST PUSH2 0xC2 PUSH2 0x5D6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND DUP4 MSTORE PUSH1 0x1 DUP7 MSTORE DUP4 DUP4 KECCAK256 SWAP2 AND DUP3 MSTORE DUP5 MSTORE KECCAK256 SLOAD SWAP1 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST POP DUP1 REVERT JUMPDEST POP CALLVALUE PUSH2 0xE5 JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0xE5 JUMPI PUSH1 0x20 SWAP1 PUSH2 0x112 PUSH2 0x108 PUSH2 0x5BB JUMP JUMPDEST PUSH1 0x24 CALLDATALOAD SWAP1 CALLER PUSH2 0x60F JUMP JUMPDEST MLOAD PUSH1 0x1 DUP2 MSTORE RETURN JUMPDEST SWAP1 POP DUP3 CALLVALUE PUSH2 0x1BE JUMPI DUP3 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x1BE JUMPI PUSH2 0x134 PUSH2 0x5BB JUMP JUMPDEST SWAP2 DUP4 PUSH1 0x24 CALLDATALOAD SWAP3 CALLER DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE DUP2 DUP2 KECCAK256 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP7 AND DUP3 MSTORE PUSH1 0x20 MSTORE KECCAK256 SLOAD SWAP1 DUP3 DUP3 LT PUSH2 0x16D JUMPI PUSH1 0x20 DUP6 PUSH2 0x112 DUP6 DUP6 SUB DUP8 CALLER PUSH2 0x784 JUMP JUMPDEST PUSH1 0x84 SWAP1 PUSH1 0x20 DUP7 MLOAD SWAP2 PUSH3 0x461BCD PUSH1 0xE5 SHL DUP4 MSTORE DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE REVERT JUMPDEST DUP1 REVERT JUMPDEST DUP4 DUP4 CALLVALUE PUSH2 0xE5 JUMPI DUP2 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0xE5 JUMPI DUP1 MLOAD SWAP1 DUP3 DUP5 SLOAD PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP1 DUP4 AND SWAP3 DUP4 ISZERO PUSH2 0x2D6 JUMPI JUMPDEST PUSH1 0x20 SWAP4 DUP5 DUP5 LT DUP2 EQ PUSH2 0x2C3 JUMPI DUP4 DUP9 MSTORE SWAP1 DUP2 ISZERO PUSH2 0x2A7 JUMPI POP PUSH1 0x1 EQ PUSH2 0x252 JUMPI JUMPDEST POP POP POP DUP3 SWAP1 SUB PUSH1 0x1F ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP3 PUSH8 0xFFFFFFFFFFFFFFFF DUP5 GT DUP4 DUP6 LT OR PUSH2 0x23F JUMPI POP DUP3 SWAP2 DUP3 PUSH2 0x23B SWAP3 MSTORE DUP3 PUSH2 0x572 JUMP JUMPDEST SUB SWAP1 RETURN JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x41 DUP6 MSTORE PUSH1 0x24 SWAP1 REVERT JUMPDEST DUP8 DUP8 MSTORE SWAP2 SWAP3 POP DUP6 SWAP2 DUP4 PUSH32 0x8A35ACFBC15FF81A39AE7D344FD709F28E8600B4AA8C65C6B64BFE7FE36BD19B JUMPDEST DUP4 DUP6 LT PUSH2 0x293 JUMPI POP POP POP POP DUP4 ADD ADD DUP6 DUP1 DUP1 PUSH2 0x209 JUMP JUMPDEST DUP1 SLOAD DUP9 DUP7 ADD DUP4 ADD MSTORE SWAP4 ADD SWAP3 DUP5 SWAP1 DUP3 ADD PUSH2 0x27D JUMP JUMPDEST PUSH1 0xFF NOT AND DUP8 DUP6 ADD MSTORE POP POP ISZERO ISZERO PUSH1 0x5 SHL DUP5 ADD ADD SWAP1 POP DUP6 DUP1 DUP1 PUSH2 0x209 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP10 MSTORE PUSH1 0x22 DUP11 MSTORE PUSH1 0x24 DUP10 REVERT JUMPDEST SWAP2 PUSH1 0x7F AND SWAP2 PUSH2 0x1EA JUMP JUMPDEST POP POP CALLVALUE PUSH2 0xE5 JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0xE5 JUMPI PUSH1 0x20 SWAP2 DUP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH2 0x308 PUSH2 0x5BB JUMP JUMPDEST AND DUP2 MSTORE DUP1 DUP5 MSTORE KECCAK256 SLOAD SWAP1 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST POP POP CALLVALUE PUSH2 0xE5 JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0xE5 JUMPI PUSH2 0x112 PUSH1 0x20 SWAP3 PUSH2 0x360 PUSH2 0x33A PUSH2 0x5BB JUMP JUMPDEST CALLER DUP4 MSTORE PUSH1 0x1 DUP7 MSTORE DUP5 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND DUP5 MSTORE DUP7 MSTORE SWAP2 DUP5 SWAP1 KECCAK256 SLOAD PUSH1 0x24 CALLDATALOAD SWAP1 PUSH2 0x5EC JUMP JUMPDEST SWAP1 CALLER PUSH2 0x784 JUMP JUMPDEST POP POP CALLVALUE PUSH2 0xE5 JUMPI DUP2 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0xE5 JUMPI PUSH1 0x20 SWAP1 MLOAD PUSH1 0x12 DUP2 MSTORE RETURN JUMPDEST DUP4 SWAP2 POP CALLVALUE PUSH2 0xE5 JUMPI PUSH1 0x60 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0xE5 JUMPI PUSH2 0x39F PUSH2 0x5BB JUMP JUMPDEST PUSH2 0x3A7 PUSH2 0x5D6 JUMP JUMPDEST SWAP2 DUP5 PUSH1 0x44 CALLDATALOAD SWAP5 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP5 AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE DUP2 DUP2 KECCAK256 CALLER DUP3 MSTORE PUSH1 0x20 MSTORE KECCAK256 SLOAD SWAP1 PUSH1 0x0 NOT DUP3 SUB PUSH2 0x3E1 JUMPI JUMPDEST PUSH1 0x20 DUP7 PUSH2 0x112 DUP8 DUP8 DUP8 PUSH2 0x60F JUMP JUMPDEST DUP5 DUP3 LT PUSH2 0x40A JUMPI POP SWAP2 DUP4 SWAP2 PUSH2 0x3FF PUSH1 0x20 SWAP7 SWAP6 PUSH2 0x112 SWAP6 SUB CALLER DUP4 PUSH2 0x784 JUMP JUMPDEST SWAP2 SWAP4 SWAP5 DUP2 SWAP4 POP PUSH2 0x3D3 JUMP JUMPDEST PUSH1 0x64 SWAP1 PUSH1 0x20 DUP8 MLOAD SWAP2 PUSH3 0x461BCD PUSH1 0xE5 SHL DUP4 MSTORE DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH1 0x44 DUP3 ADD MSTORE REVERT JUMPDEST POP POP CALLVALUE PUSH2 0xE5 JUMPI DUP2 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0xE5 JUMPI PUSH1 0x20 SWAP1 PUSH1 0x2 SLOAD SWAP1 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST POP POP CALLVALUE PUSH2 0xE5 JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0xE5 JUMPI PUSH1 0x20 SWAP1 PUSH2 0x112 PUSH2 0x48C PUSH2 0x5BB JUMP JUMPDEST PUSH1 0x24 CALLDATALOAD SWAP1 CALLER PUSH2 0x784 JUMP JUMPDEST DUP5 SWAP1 DUP5 CALLVALUE PUSH2 0x56E JUMPI DUP3 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x56E JUMPI DUP3 PUSH1 0x3 SLOAD PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP1 DUP4 AND SWAP3 DUP4 ISZERO PUSH2 0x564 JUMPI JUMPDEST PUSH1 0x20 SWAP4 DUP5 DUP5 LT DUP2 EQ PUSH2 0x2C3 JUMPI DUP4 DUP9 MSTORE SWAP1 DUP2 ISZERO PUSH2 0x2A7 JUMPI POP PUSH1 0x1 EQ PUSH2 0x50E JUMPI POP POP POP DUP3 SWAP1 SUB PUSH1 0x1F ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP3 PUSH8 0xFFFFFFFFFFFFFFFF DUP5 GT DUP4 DUP6 LT OR PUSH2 0x23F JUMPI POP DUP3 SWAP2 DUP3 PUSH2 0x23B SWAP3 MSTORE DUP3 PUSH2 0x572 JUMP JUMPDEST PUSH1 0x3 DUP8 MSTORE SWAP2 SWAP3 POP DUP6 SWAP2 DUP4 PUSH32 0xC2575A0E9E593C00F959F8C92F12DB2869C3395A3B0502D05E2516446F71F85B JUMPDEST DUP4 DUP6 LT PUSH2 0x550 JUMPI POP POP POP POP DUP4 ADD ADD DUP6 DUP1 DUP1 PUSH2 0x209 JUMP JUMPDEST DUP1 SLOAD DUP9 DUP7 ADD DUP4 ADD MSTORE SWAP4 ADD SWAP3 DUP5 SWAP1 DUP3 ADD PUSH2 0x53A JUMP JUMPDEST SWAP2 PUSH1 0x7F AND SWAP2 PUSH2 0x4BE JUMP JUMPDEST DUP3 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP3 MLOAD DUP2 DUP4 ADD DUP2 SWAP1 MSTORE SWAP1 SWAP4 SWAP3 PUSH1 0x0 JUMPDEST DUP3 DUP2 LT PUSH2 0x5A7 JUMPI POP POP PUSH1 0x40 SWAP3 SWAP4 POP PUSH1 0x0 DUP4 DUP3 DUP5 ADD ADD MSTORE PUSH1 0x1F DUP1 NOT SWAP2 ADD AND ADD ADD SWAP1 JUMP JUMPDEST DUP2 DUP2 ADD DUP7 ADD MLOAD DUP5 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP6 ADD PUSH2 0x585 JUMP JUMPDEST PUSH1 0x4 CALLDATALOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND DUP3 SUB PUSH2 0x5D1 JUMPI JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x24 CALLDATALOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND DUP3 SUB PUSH2 0x5D1 JUMPI JUMP JUMPDEST SWAP2 SWAP1 DUP3 ADD DUP1 SWAP3 GT PUSH2 0x5F9 JUMPI JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND SWAP2 DUP3 ISZERO PUSH2 0x731 JUMPI AND SWAP2 DUP3 ISZERO PUSH2 0x6E0 JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE DUP1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD SWAP2 DUP1 DUP4 LT PUSH2 0x68C JUMPI PUSH1 0x40 DUP3 DUP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP6 DUP8 PUSH1 0x20 SWAP7 MSTORE DUP3 DUP7 MSTORE SUB DUP3 DUP3 KECCAK256 SSTORE DUP7 DUP2 MSTORE KECCAK256 PUSH2 0x681 DUP3 DUP3 SLOAD PUSH2 0x5EC JUMP JUMPDEST SWAP1 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE LOG3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND SWAP2 DUP3 ISZERO PUSH2 0x835 JUMPI AND SWAP2 DUP3 ISZERO PUSH2 0x7E5 JUMPI PUSH1 0x20 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 DUP4 PUSH1 0x0 MSTORE PUSH1 0x1 DUP3 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 DUP6 PUSH1 0x0 MSTORE DUP3 MSTORE DUP1 PUSH1 0x40 PUSH1 0x0 KECCAK256 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE LOG3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP10 0xF9 DUP12 DUP16 GT PUSH26 0xA8EB361B949E7A7CBB83915B4EEB0AA0229E65CDABB14559F426 PUSH5 0x736F6C6343 STOP ADDMOD SLT STOP CALLER ","sourceMap":"1403:11223:25:-:0;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1403:11223:25;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;2044:13;1403:11223;;;;;;;;;;;;;;;;-1:-1:-1;1403:11223:25;;;;;;;;;;;;;;;-1:-1:-1;1403:11223:25;;;;;;;;;;-1:-1:-1;1403:11223:25;;;;-1:-1:-1;;;;1403:11223:25;;;;;;;;;;;;;;;;;;;;2067:17;1403:11223;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1403:11223:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1403:11223:25;;;;;;;;;;;;;;-1:-1:-1;1403:11223:25;;-1:-1:-1;1403:11223:25;;-1:-1:-1;1403:11223:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1403:11223:25;;;;;;;;-1:-1:-1;1403:11223:25;;-1:-1:-1;1403:11223:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1403:11223:25;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1403:11223:25;;;-1:-1:-1;1403:11223:25;;;;;;;;;;;;-1:-1:-1;1403:11223:25;;2067:17;1403:11223;;-1:-1:-1;1403:11223:25;;;;;-1:-1:-1;1403:11223:25;;;;;;;;;;;;;;;-1:-1:-1;1403:11223:25;;-1:-1:-1;1403:11223:25;;-1:-1:-1;1403:11223:25;;;;;;;;;;-1:-1:-1;1403:11223:25;;;;;;;;;;;;;;;;-1:-1:-1;;1403:11223:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1403:11223:25;;-1:-1:-1;1403:11223:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1403:11223:25;;;;-1:-1:-1;1403:11223:25;;;;;;;;;;;;;;;;-1:-1:-1;1403:11223:25;;;;;-1:-1:-1;1403:11223:25;;;;;;;;;-1:-1:-1;1403:11223:25;;;;;;;;;-1:-1:-1;;1403:11223:25;;;-1:-1:-1;;;;;1403:11223:25;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1403:11223:25;;;;;;;;;;-1:-1:-1;;1403:11223:25;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;1403:11223:25;;;;;;;;-1:-1:-1;1403:11223:25;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"abi_decode_address":{"entryPoint":1494,"id":null,"parameterSlots":0,"returnSlots":1},"abi_decode_address_4723":{"entryPoint":1467,"id":null,"parameterSlots":0,"returnSlots":1},"abi_encode_string":{"entryPoint":1394,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_uint256":{"entryPoint":1516,"id":null,"parameterSlots":2,"returnSlots":1},"fun_approve":{"entryPoint":1924,"id":6270,"parameterSlots":3,"returnSlots":0},"fun_transfer":{"entryPoint":1551,"id":6097,"parameterSlots":3,"returnSlots":0}},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"608060408181526004918236101561001657600080fd5b600092833560e01c91826306fdde031461049657508163095ea7b31461046c57816318160ddd1461044d57816323b872dd14610383578163313ce56714610367578163395093511461031757816370a08231146102e057816395d89b41146101c1578163a457c2d71461011957508063a9059cbb146100e95763dd62ed3e1461009e57600080fd5b346100e557806003193601126100e557806020926100ba6105bb565b6100c26105d6565b6001600160a01b0391821683526001865283832091168252845220549051908152f35b5080fd5b50346100e557806003193601126100e5576020906101126101086105bb565b602435903361060f565b5160018152f35b905082346101be57826003193601126101be576101346105bb565b918360243592338152600160205281812060018060a01b038616825260205220549082821061016d576020856101128585038733610784565b608490602086519162461bcd60e51b8352820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152fd5b80fd5b8383346100e557816003193601126100e557805190828454600181811c908083169283156102d6575b60209384841081146102c3578388529081156102a75750600114610252575b505050829003601f01601f191682019267ffffffffffffffff84118385101761023f575082918261023b925282610572565b0390f35b634e487b7160e01b815260418552602490fd5b8787529192508591837f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b8385106102935750505050830101858080610209565b80548886018301529301928490820161027d565b60ff1916878501525050151560051b8401019050858080610209565b634e487b7160e01b895260228a52602489fd5b91607f16916101ea565b5050346100e55760203660031901126100e55760209181906001600160a01b036103086105bb565b16815280845220549051908152f35b5050346100e557806003193601126100e55761011260209261036061033a6105bb565b338352600186528483206001600160a01b038216845286529184902054602435906105ec565b9033610784565b5050346100e557816003193601126100e5576020905160128152f35b839150346100e55760603660031901126100e55761039f6105bb565b6103a76105d6565b91846044359460018060a01b0384168152600160205281812033825260205220549060001982036103e1575b60208661011287878761060f565b84821061040a57509183916103ff6020969561011295033383610784565b9193948193506103d3565b606490602087519162461bcd60e51b8352820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152fd5b5050346100e557816003193601126100e5576020906002549051908152f35b5050346100e557806003193601126100e55760209061011261048c6105bb565b6024359033610784565b8490843461056e578260031936011261056e5782600354600181811c90808316928315610564575b60209384841081146102c3578388529081156102a7575060011461050e57505050829003601f01601f191682019267ffffffffffffffff84118385101761023f575082918261023b925282610572565b600387529192508591837fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b8385106105505750505050830101858080610209565b80548886018301529301928490820161053a565b91607f16916104be565b8280fd5b6020808252825181830181905290939260005b8281106105a757505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610585565b600435906001600160a01b03821682036105d157565b600080fd5b602435906001600160a01b03821682036105d157565b919082018092116105f957565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b0390811691821561073157169182156106e05760008281528060205260408120549180831061068c57604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9587602096528286520382822055868152206106818282546105ec565b9055604051908152a3565b60405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608490fd5b60405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608490fd5b60405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608490fd5b6001600160a01b0390811691821561083557169182156107e55760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925918360005260018252604060002085600052825280604060002055604051908152a3565b60405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608490fd5b60405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608490fdfea264697066735822122089f98b8f1179a8eb361b949e7a7cbb83915b4eeb0aa0229e65cdabb14559f42664736f6c63430008120033","opcodes":"PUSH1 0x80 PUSH1 0x40 DUP2 DUP2 MSTORE PUSH1 0x4 SWAP2 DUP3 CALLDATASIZE LT ISZERO PUSH2 0x16 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP3 DUP4 CALLDATALOAD PUSH1 0xE0 SHR SWAP2 DUP3 PUSH4 0x6FDDE03 EQ PUSH2 0x496 JUMPI POP DUP2 PUSH4 0x95EA7B3 EQ PUSH2 0x46C JUMPI DUP2 PUSH4 0x18160DDD EQ PUSH2 0x44D JUMPI DUP2 PUSH4 0x23B872DD EQ PUSH2 0x383 JUMPI DUP2 PUSH4 0x313CE567 EQ PUSH2 0x367 JUMPI DUP2 PUSH4 0x39509351 EQ PUSH2 0x317 JUMPI DUP2 PUSH4 0x70A08231 EQ PUSH2 0x2E0 JUMPI DUP2 PUSH4 0x95D89B41 EQ PUSH2 0x1C1 JUMPI DUP2 PUSH4 0xA457C2D7 EQ PUSH2 0x119 JUMPI POP DUP1 PUSH4 0xA9059CBB EQ PUSH2 0xE9 JUMPI PUSH4 0xDD62ED3E EQ PUSH2 0x9E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE PUSH2 0xE5 JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0xE5 JUMPI DUP1 PUSH1 0x20 SWAP3 PUSH2 0xBA PUSH2 0x5BB JUMP JUMPDEST PUSH2 0xC2 PUSH2 0x5D6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND DUP4 MSTORE PUSH1 0x1 DUP7 MSTORE DUP4 DUP4 KECCAK256 SWAP2 AND DUP3 MSTORE DUP5 MSTORE KECCAK256 SLOAD SWAP1 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST POP DUP1 REVERT JUMPDEST POP CALLVALUE PUSH2 0xE5 JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0xE5 JUMPI PUSH1 0x20 SWAP1 PUSH2 0x112 PUSH2 0x108 PUSH2 0x5BB JUMP JUMPDEST PUSH1 0x24 CALLDATALOAD SWAP1 CALLER PUSH2 0x60F JUMP JUMPDEST MLOAD PUSH1 0x1 DUP2 MSTORE RETURN JUMPDEST SWAP1 POP DUP3 CALLVALUE PUSH2 0x1BE JUMPI DUP3 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x1BE JUMPI PUSH2 0x134 PUSH2 0x5BB JUMP JUMPDEST SWAP2 DUP4 PUSH1 0x24 CALLDATALOAD SWAP3 CALLER DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE DUP2 DUP2 KECCAK256 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP7 AND DUP3 MSTORE PUSH1 0x20 MSTORE KECCAK256 SLOAD SWAP1 DUP3 DUP3 LT PUSH2 0x16D JUMPI PUSH1 0x20 DUP6 PUSH2 0x112 DUP6 DUP6 SUB DUP8 CALLER PUSH2 0x784 JUMP JUMPDEST PUSH1 0x84 SWAP1 PUSH1 0x20 DUP7 MLOAD SWAP2 PUSH3 0x461BCD PUSH1 0xE5 SHL DUP4 MSTORE DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE REVERT JUMPDEST DUP1 REVERT JUMPDEST DUP4 DUP4 CALLVALUE PUSH2 0xE5 JUMPI DUP2 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0xE5 JUMPI DUP1 MLOAD SWAP1 DUP3 DUP5 SLOAD PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP1 DUP4 AND SWAP3 DUP4 ISZERO PUSH2 0x2D6 JUMPI JUMPDEST PUSH1 0x20 SWAP4 DUP5 DUP5 LT DUP2 EQ PUSH2 0x2C3 JUMPI DUP4 DUP9 MSTORE SWAP1 DUP2 ISZERO PUSH2 0x2A7 JUMPI POP PUSH1 0x1 EQ PUSH2 0x252 JUMPI JUMPDEST POP POP POP DUP3 SWAP1 SUB PUSH1 0x1F ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP3 PUSH8 0xFFFFFFFFFFFFFFFF DUP5 GT DUP4 DUP6 LT OR PUSH2 0x23F JUMPI POP DUP3 SWAP2 DUP3 PUSH2 0x23B SWAP3 MSTORE DUP3 PUSH2 0x572 JUMP JUMPDEST SUB SWAP1 RETURN JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x41 DUP6 MSTORE PUSH1 0x24 SWAP1 REVERT JUMPDEST DUP8 DUP8 MSTORE SWAP2 SWAP3 POP DUP6 SWAP2 DUP4 PUSH32 0x8A35ACFBC15FF81A39AE7D344FD709F28E8600B4AA8C65C6B64BFE7FE36BD19B JUMPDEST DUP4 DUP6 LT PUSH2 0x293 JUMPI POP POP POP POP DUP4 ADD ADD DUP6 DUP1 DUP1 PUSH2 0x209 JUMP JUMPDEST DUP1 SLOAD DUP9 DUP7 ADD DUP4 ADD MSTORE SWAP4 ADD SWAP3 DUP5 SWAP1 DUP3 ADD PUSH2 0x27D JUMP JUMPDEST PUSH1 0xFF NOT AND DUP8 DUP6 ADD MSTORE POP POP ISZERO ISZERO PUSH1 0x5 SHL DUP5 ADD ADD SWAP1 POP DUP6 DUP1 DUP1 PUSH2 0x209 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP10 MSTORE PUSH1 0x22 DUP11 MSTORE PUSH1 0x24 DUP10 REVERT JUMPDEST SWAP2 PUSH1 0x7F AND SWAP2 PUSH2 0x1EA JUMP JUMPDEST POP POP CALLVALUE PUSH2 0xE5 JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0xE5 JUMPI PUSH1 0x20 SWAP2 DUP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH2 0x308 PUSH2 0x5BB JUMP JUMPDEST AND DUP2 MSTORE DUP1 DUP5 MSTORE KECCAK256 SLOAD SWAP1 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST POP POP CALLVALUE PUSH2 0xE5 JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0xE5 JUMPI PUSH2 0x112 PUSH1 0x20 SWAP3 PUSH2 0x360 PUSH2 0x33A PUSH2 0x5BB JUMP JUMPDEST CALLER DUP4 MSTORE PUSH1 0x1 DUP7 MSTORE DUP5 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND DUP5 MSTORE DUP7 MSTORE SWAP2 DUP5 SWAP1 KECCAK256 SLOAD PUSH1 0x24 CALLDATALOAD SWAP1 PUSH2 0x5EC JUMP JUMPDEST SWAP1 CALLER PUSH2 0x784 JUMP JUMPDEST POP POP CALLVALUE PUSH2 0xE5 JUMPI DUP2 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0xE5 JUMPI PUSH1 0x20 SWAP1 MLOAD PUSH1 0x12 DUP2 MSTORE RETURN JUMPDEST DUP4 SWAP2 POP CALLVALUE PUSH2 0xE5 JUMPI PUSH1 0x60 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0xE5 JUMPI PUSH2 0x39F PUSH2 0x5BB JUMP JUMPDEST PUSH2 0x3A7 PUSH2 0x5D6 JUMP JUMPDEST SWAP2 DUP5 PUSH1 0x44 CALLDATALOAD SWAP5 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP5 AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE DUP2 DUP2 KECCAK256 CALLER DUP3 MSTORE PUSH1 0x20 MSTORE KECCAK256 SLOAD SWAP1 PUSH1 0x0 NOT DUP3 SUB PUSH2 0x3E1 JUMPI JUMPDEST PUSH1 0x20 DUP7 PUSH2 0x112 DUP8 DUP8 DUP8 PUSH2 0x60F JUMP JUMPDEST DUP5 DUP3 LT PUSH2 0x40A JUMPI POP SWAP2 DUP4 SWAP2 PUSH2 0x3FF PUSH1 0x20 SWAP7 SWAP6 PUSH2 0x112 SWAP6 SUB CALLER DUP4 PUSH2 0x784 JUMP JUMPDEST SWAP2 SWAP4 SWAP5 DUP2 SWAP4 POP PUSH2 0x3D3 JUMP JUMPDEST PUSH1 0x64 SWAP1 PUSH1 0x20 DUP8 MLOAD SWAP2 PUSH3 0x461BCD PUSH1 0xE5 SHL DUP4 MSTORE DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH1 0x44 DUP3 ADD MSTORE REVERT JUMPDEST POP POP CALLVALUE PUSH2 0xE5 JUMPI DUP2 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0xE5 JUMPI PUSH1 0x20 SWAP1 PUSH1 0x2 SLOAD SWAP1 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST POP POP CALLVALUE PUSH2 0xE5 JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0xE5 JUMPI PUSH1 0x20 SWAP1 PUSH2 0x112 PUSH2 0x48C PUSH2 0x5BB JUMP JUMPDEST PUSH1 0x24 CALLDATALOAD SWAP1 CALLER PUSH2 0x784 JUMP JUMPDEST DUP5 SWAP1 DUP5 CALLVALUE PUSH2 0x56E JUMPI DUP3 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x56E JUMPI DUP3 PUSH1 0x3 SLOAD PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP1 DUP4 AND SWAP3 DUP4 ISZERO PUSH2 0x564 JUMPI JUMPDEST PUSH1 0x20 SWAP4 DUP5 DUP5 LT DUP2 EQ PUSH2 0x2C3 JUMPI DUP4 DUP9 MSTORE SWAP1 DUP2 ISZERO PUSH2 0x2A7 JUMPI POP PUSH1 0x1 EQ PUSH2 0x50E JUMPI POP POP POP DUP3 SWAP1 SUB PUSH1 0x1F ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP3 PUSH8 0xFFFFFFFFFFFFFFFF DUP5 GT DUP4 DUP6 LT OR PUSH2 0x23F JUMPI POP DUP3 SWAP2 DUP3 PUSH2 0x23B SWAP3 MSTORE DUP3 PUSH2 0x572 JUMP JUMPDEST PUSH1 0x3 DUP8 MSTORE SWAP2 SWAP3 POP DUP6 SWAP2 DUP4 PUSH32 0xC2575A0E9E593C00F959F8C92F12DB2869C3395A3B0502D05E2516446F71F85B JUMPDEST DUP4 DUP6 LT PUSH2 0x550 JUMPI POP POP POP POP DUP4 ADD ADD DUP6 DUP1 DUP1 PUSH2 0x209 JUMP JUMPDEST DUP1 SLOAD DUP9 DUP7 ADD DUP4 ADD MSTORE SWAP4 ADD SWAP3 DUP5 SWAP1 DUP3 ADD PUSH2 0x53A JUMP JUMPDEST SWAP2 PUSH1 0x7F AND SWAP2 PUSH2 0x4BE JUMP JUMPDEST DUP3 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP3 MLOAD DUP2 DUP4 ADD DUP2 SWAP1 MSTORE SWAP1 SWAP4 SWAP3 PUSH1 0x0 JUMPDEST DUP3 DUP2 LT PUSH2 0x5A7 JUMPI POP POP PUSH1 0x40 SWAP3 SWAP4 POP PUSH1 0x0 DUP4 DUP3 DUP5 ADD ADD MSTORE PUSH1 0x1F DUP1 NOT SWAP2 ADD AND ADD ADD SWAP1 JUMP JUMPDEST DUP2 DUP2 ADD DUP7 ADD MLOAD DUP5 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP6 ADD PUSH2 0x585 JUMP JUMPDEST PUSH1 0x4 CALLDATALOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND DUP3 SUB PUSH2 0x5D1 JUMPI JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x24 CALLDATALOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND DUP3 SUB PUSH2 0x5D1 JUMPI JUMP JUMPDEST SWAP2 SWAP1 DUP3 ADD DUP1 SWAP3 GT PUSH2 0x5F9 JUMPI JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND SWAP2 DUP3 ISZERO PUSH2 0x731 JUMPI AND SWAP2 DUP3 ISZERO PUSH2 0x6E0 JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE DUP1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD SWAP2 DUP1 DUP4 LT PUSH2 0x68C JUMPI PUSH1 0x40 DUP3 DUP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP6 DUP8 PUSH1 0x20 SWAP7 MSTORE DUP3 DUP7 MSTORE SUB DUP3 DUP3 KECCAK256 SSTORE DUP7 DUP2 MSTORE KECCAK256 PUSH2 0x681 DUP3 DUP3 SLOAD PUSH2 0x5EC JUMP JUMPDEST SWAP1 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE LOG3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND SWAP2 DUP3 ISZERO PUSH2 0x835 JUMPI AND SWAP2 DUP3 ISZERO PUSH2 0x7E5 JUMPI PUSH1 0x20 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 DUP4 PUSH1 0x0 MSTORE PUSH1 0x1 DUP3 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 DUP6 PUSH1 0x0 MSTORE DUP3 MSTORE DUP1 PUSH1 0x40 PUSH1 0x0 KECCAK256 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE LOG3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP10 0xF9 DUP12 DUP16 GT PUSH26 0xA8EB361B949E7A7CBB83915B4EEB0AA0229E65CDABB14559F426 PUSH5 0x736F6C6343 STOP ADDMOD SLT STOP CALLER ","sourceMap":"1403:11223:25:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;-1:-1:-1;;;;;1403:11223:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3883:6;1403:11223;;:::i;:::-;;;719:10:35;;3883:6:25;:::i;:::-;1403:11223;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;719:10:35;;1403:11223:25;;;;;;;;;;;;;;;;;;;;;6811:35;;;;1403:11223;;;;6947:34;1403:11223;;;;719:10:35;6947:34:25;:::i;1403:11223::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1403:11223:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1403:11223:25;;;;;-1:-1:-1;;1403:11223:25;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;1403:11223:25;;;;;;;;;;;;;;-1:-1:-1;1403:11223:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1403:11223:25;;;;;-1:-1:-1;;1403:11223:25;;;;;;;;-1:-1:-1;1403:11223:25;;;;;;-1:-1:-1;;;1403:11223:25;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1403:11223:25;;;;;;;;-1:-1:-1;;;;;1403:11223:25;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6040:38;1403:11223;;6040:38;1403:11223;;:::i;:::-;719:10:35;1403:11223:25;;;;;;;;-1:-1:-1;;;;;1403:11223:25;;;;;;;;;;;;;;6040:38;:::i;:::-;719:10:35;;6040:38:25;:::i;1403:11223::-;;;;;;;;;;;;;;;;;3175:2;1403:11223;;;;;;;;;;;;-1:-1:-1;;1403:11223:25;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;719:10:35;1403:11223:25;;;;;;10986:17;;;10966:37;;10962:243;;1403:11223;;5443:6;;;;;;:::i;10962:243::-;11027:26;;;1403:11223;;;;;;11154:25;1403:11223;;;5443:6;1403:11223;;719:10:35;11154:25:25;;:::i;:::-;10962:243;;;;;;;;1403:11223;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3331:12;1403:11223;;;;;;;;;;;;;;;;;;;;;;;4595:6;1403:11223;;:::i;:::-;;;719:10:35;;4595:6:25;:::i;1403:11223::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1403:11223:25;;;;;-1:-1:-1;;1403:11223:25;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;1403:11223:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1403:11223:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1403:11223:25;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;;;;1403:11223:25;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;7484:651;-1:-1:-1;;;;;1403:11223:25;;;;7610:18;;1403:11223;;;7688:16;;;1403:11223;;7626:1;1403:11223;;;;;;;;;;7859:21;;;;1403:11223;;;;;8054:26;1403:11223;;;;;;;;;;;;;;;;;8015:23;1403:11223;;;8015:23;:::i;:::-;1403:11223;;;;;;;8054:26;7484:651::o;1403:11223::-;;;-1:-1:-1;;;1403:11223:25;;;;;;;;;;;;;;;;;-1:-1:-1;;;1403:11223:25;;;;;;;;;;-1:-1:-1;;;1403:11223:25;;;;;;;;;;;;;;;;;-1:-1:-1;;;1403:11223:25;;;;;;;;;;-1:-1:-1;;;1403:11223:25;;;;;;;;;;;;;;;;;-1:-1:-1;;;1403:11223:25;;;;;;;10119:370;-1:-1:-1;;;;;1403:11223:25;;;;10250:19;;1403:11223;;;10328:21;;;1403:11223;;;10450:32;1403:11223;;10267:1;1403:11223;;;;;10267:1;1403:11223;;10267:1;1403:11223;;;;;10267:1;1403:11223;;;;;;;10450:32;10119:370::o;1403:11223::-;;;-1:-1:-1;;;1403:11223:25;;;;;;;;;;;;;;;;;-1:-1:-1;;;1403:11223:25;;;;;;;;;;-1:-1:-1;;;1403:11223:25;;;;;;;;;;;;;;;;;-1:-1:-1;;;1403:11223:25;;;;;;"},"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"}},"metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"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\":{\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":\"ERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xe0c8b625a79bac0fe80f17cfb521e072805cc9cef1c96a5caf45b264e74812fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12fd1efc9ad061ef675bd50fb0c8e3c6f2952a09f8df0e3c688b8d81b8918838\",\"dweb:/ipfs/QmawN6PjTwy91pU7ANjCSgbsLc8TDA6hwu9GsFFaNSuhb5\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC20/IERC20.sol":{"IERC20":{"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"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"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\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":\"IERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"IERC20Metadata":{"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"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"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"}},"metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"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\":{\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":\"IERC20Metadata\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"SafeERC20":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea264697066735822122087f908664cc8239262fe5e2f6316e73010cb9af19451a913cabcddca895132cd64736f6c63430008120033","opcodes":"PUSH1 0x80 DUP1 PUSH1 0x40 MSTORE CALLVALUE PUSH1 0x17 JUMPI PUSH1 0x3A SWAP1 DUP2 PUSH1 0x1D DUP3 CODECOPY ADDRESS DUP2 POP POP RETURN JUMPDEST PUSH1 0x0 DUP1 REVERT INVALID PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP8 0xF9 ADDMOD PUSH7 0x4CC8239262FE5E 0x2F PUSH4 0x16E73010 0xCB SWAP11 CALL SWAP5 MLOAD 0xA9 SGT 0xCA 0xBC 0xDD 0xCA DUP10 MLOAD ORIGIN 0xCD PUSH5 0x736F6C6343 STOP ADDMOD SLT STOP CALLER ","sourceMap":"645:3270:28:-:0;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"600080fdfea264697066735822122087f908664cc8239262fe5e2f6316e73010cb9af19451a913cabcddca895132cd64736f6c63430008120033","opcodes":"PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP8 0xF9 ADDMOD PUSH7 0x4CC8239262FE5E 0x2F PUSH4 0x16E73010 0xCB SWAP11 CALL SWAP5 MLOAD 0xA9 SGT 0xCA 0xBC 0xDD 0xCA DUP10 MLOAD ORIGIN 0xCD PUSH5 0x736F6C6343 STOP ADDMOD SLT STOP CALLER ","sourceMap":"645:3270:28:-:0;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Wrappers around ERC20 operations that throw on failure (when the token contract returns false). Tokens that return no value (and instead revert or throw on failure) are also supported, non-reverting calls are assumed to be successful. To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract, which allows you to call the safe operations as `token.safeTransfer(...)`, etc.\",\"kind\":\"dev\",\"methods\":{},\"title\":\"SafeERC20\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":\"SafeERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xc3d946432c0ddbb1f846a0d3985be71299df331b91d06732152117f62f0be2b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4632c341a06ba5c079b51ca5a915efab4e6ab57735b37839b3e8365ff806a43e\",\"dweb:/ipfs/QmTHT3xHYed2wajEoA5qu7ii2BxLpPhQZHwAhtLK5Z7ANK\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x2ccf9d2313a313d41a791505f2b5abfdc62191b5d4334f7f7a82691c088a1c87\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3a57d0854b2fdce6ebff933a48dca2445643d1eccfc27f00292e937f26c6a58\",\"dweb:/ipfs/QmW45rZooS9TqR4YXUbjRbtf2Bpb5ouSarBvfW1LdGprvV\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC721/ERC721.sol":{"ERC721":{"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":"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":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"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":"","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":"nonpayable","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":"nonpayable","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":"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":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"abi_decode_string_fromMemory":{"entryPoint":836,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_memory":{"entryPoint":798,"id":null,"parameterSlots":1,"returnSlots":1}},"generatedSources":[],"linkReferences":{},"object":"6080604052346200031957620015b6803803806200001d816200031e565b928339810190604081830312620003195780516001600160401b03908181116200031957836200004f91840162000344565b916020938482015183811162000319576200006b920162000344565b825190828211620003035760008054926001958685811c95168015620002f8575b88861014620002e4578190601f9586811162000291575b5088908683116001146200022d57849262000221575b5050600019600383901b1c191690861b1781555b81519384116200020d5784548581811c9116801562000202575b87821014620001ee57838111620001a6575b50859284116001146200014157839495509262000135575b5050600019600383901b1c191690821b1790555b6040516111ff9081620003b78239f35b01519050388062000111565b9190601f1984169585845280842093905b8782106200018e5750508385961062000174575b505050811b01905562000125565b015160001960f88460031b161c1916905538808062000166565b80878596829496860151815501950193019062000152565b8582528682208480870160051c820192898810620001e4575b0160051c019086905b828110620001d8575050620000f9565b838155018690620001c8565b92508192620001bf565b634e487b7160e01b82526022600452602482fd5b90607f1690620000e7565b634e487b7160e01b81526041600452602490fd5b015190503880620000b9565b8480528985208994509190601f198416865b8c8282106200027a575050841162000260575b505050811b018155620000cd565b015160001960f88460031b161c1916905538808062000252565b8385015186558c979095019493840193016200023f565b9091508380528884208680850160051c8201928b8610620002da575b918a91869594930160051c01915b828110620002cb575050620000a3565b8681558594508a9101620002bb565b92508192620002ad565b634e487b7160e01b83526022600452602483fd5b94607f16946200008c565b634e487b7160e01b600052604160045260246000fd5b600080fd5b6040519190601f01601f191682016001600160401b038111838210176200030357604052565b919080601f84011215620003195782516001600160401b03811162000303576020906200037a601f8201601f191683016200031e565b92818452828287010111620003195760005b818110620003a257508260009394955001015290565b85810183015184820184015282016200038c56fe6080604052600436101561001257600080fd5b60003560e01c806301ffc9a7146100e757806306fdde03146100e2578063081812fc146100dd578063095ea7b3146100d857806323b872dd146100d357806342842e0e146100ce5780636352211e146100c957806370a08231146100c457806395d89b41146100bf578063a22cb465146100ba578063b88d4fde146100b5578063c87b56dd146100b05763e985e9c5146100ab57600080fd5b6108fc565b610813565b61078a565b610629565b610568565b6104c6565b6104a8565b610480565b610457565b610333565b6102d7565b6101cd565b610103565b6001600160e01b03198116036100fe57565b600080fd5b346100fe5760203660031901126100fe576020600435610122816100ec565b63ffffffff60e01b166380ac58cd60e01b8114908115610160575b811561014f575b506040519015158152f35b6301ffc9a760e01b14905038610144565b635b5e139f60e01b8114915061013d565b60005b8381106101845750506000910152565b8181015183820152602001610174565b906020916101ad81518092818552858086019101610171565b601f01601f1916010190565b9060206101ca928181520190610194565b90565b346100fe576000806003193601126102d457604051908080549060019180831c928082169283156102ca575b60209283861085146102b6578588526020880194908115610295575060011461023d575b6102398761022d8189038261074c565b604051918291826101b9565b0390f35b6000805294509192917f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b838610610284575050509101905061022d82610239388061021d565b805485870152948201948101610268565b60ff191685525050505090151560051b01905061022d82610239388061021d565b634e487b7160e01b82526022600452602482fd5b93607f16936101f9565b80fd5b346100fe5760203660031901126100fe5760206102f5600435610a6d565b6040516001600160a01b039091168152f35b600435906001600160a01b03821682036100fe57565b602435906001600160a01b03821682036100fe57565b346100fe5760403660031901126100fe5761034c610307565b60243561035881610959565b916001600160a01b0380841690821681146103d35761038a9361038591331490811561038c575b506109fb565b610f18565b005b6001600160a01b031660009081526005602052604090206103cd91506103c69033905b9060018060a01b0316600052602052604060002090565b5460ff1690565b3861037f565b60405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608490fd5b60609060031901126100fe576001600160a01b039060043582811681036100fe579160243590811681036100fe579060443590565b346100fe5761038a61046836610422565b9161047b6104768433610c00565b610aff565b610d8e565b346100fe5761038a61049136610422565b906040519261049f8461072b565b60008452610b65565b346100fe5760203660031901126100fe5760206102f5600435610959565b346100fe5760203660031901126100fe576001600160a01b036104e7610307565b168015610510576000526003602052610239604060002054604051918291829190602083019252565b60405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604482015269726f206164647265737360b01b6064820152608490fd5b346100fe576000806003193601126102d4576040519080600190815480831c9280821692831561061f575b60209283861085146102b657858852602088019490811561029557506001146105c6576102398761022d8189038261074c565b600160005294509192917fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b83861061060e575050509101905061022d82610239388061021d565b8054858701529482019481016105f2565b93607f1693610593565b346100fe5760403660031901126100fe57610642610307565b60243580151581036100fe576001600160a01b038216913383146106d0578161068d61069e9233600052600560205260406000209060018060a01b0316600052602052604060002090565b9060ff801983541691151516179055565b604051901515815233907f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3190602090a3005b60405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606490fd5b634e487b7160e01b600052604160045260246000fd5b6020810190811067ffffffffffffffff82111761074757604052565b610715565b90601f8019910116810190811067ffffffffffffffff82111761074757604052565b67ffffffffffffffff811161074757601f01601f191660200190565b346100fe5760803660031901126100fe576107a3610307565b6107ab61031d565b6064359167ffffffffffffffff83116100fe57366023840112156100fe578260040135916107d88361076e565b926107e6604051948561074c565b80845236602482870101116100fe57602081600092602461038a9801838801378501015260443591610b65565b346100fe5760203660031901126100fe576004356000818152600260205260409020546001600160a01b03161561089f5761084c6109d1565b80511561088d5761022d6108799161087f6108696102399561110e565b60405194859360208501906109e4565b906109e4565b03601f19810183528261074c565b505061023961089a6109d1565b61022d565b60405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b6064820152608490fd5b346100fe5760403660031901126100fe57602060ff61094d61091c610307565b61092461031d565b6001600160a01b0391821660009081526005865260408082209290931681526020919091522090565b54166040519015158152f35b6000908152600260205260409020546001600160a01b0316801561097a5790565b60405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201526832b73a103a37b5b2b760b91b6064820152608490fd5b604051906109de8261072b565b60008252565b906109f760209282815194859201610171565b0190565b15610a0257565b60405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c00000000000000006064820152608490fd5b6000818152600260205260409020546001600160a01b031615610aa5576000908152600460205260409020546001600160a01b031690565b60405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608490fd5b15610b0657565b60405162461bcd60e51b815260206004820152603160248201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6044820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b6064820152608490fd5b90610b89939291610b796104768433610c00565b610b84838383610d8e565b610ff2565b15610b9057565b60405162461bcd60e51b815280610ba960048201610bad565b0390fd5b60809060208152603260208201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b60608201520190565b6000828152600260205260409020546001600160a01b031615610c9657610c2682610959565b9160018060a01b0390818316928285168414948515610c65575b50508315610c4f575b50505090565b610c5b91929350610a6d565b1614388080610c49565b6001600160a01b0316600090815260056020526040902091945060ff91610c8c91906103af565b5416923880610c40565b60405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608490fd5b15610cf757565b60405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608490fd5b634e487b7160e01b600052601160045260246000fd5b600019810191908211610d6d57565b610d48565b9060018201809211610d6d57565b6030019081603011610d6d57565b90610d9883610959565b6001600160a01b038381169290918216839003610e7157610de7610e4a92821694610dc4861515610cf0565b610dcd87610ec4565b6001600160a01b0316600090815260036020526040902090565b610df18154610d5e565b90556001600160a01b0381166000908152600360205260409020610e158154610d72565b9055610e2b856000526002602052604060002090565b80546001600160a01b0319166001600160a01b03909216919091179055565b7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4565b60405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b6064820152608490fd5b600081815260046020526040812080546001600160a01b03191690556001600160a01b03610ef183610959565b167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258280a4565b600082815260046020526040902080546001600160a01b0319166001600160a01b0383161790556001600160a01b0380610f5184610959565b169116907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600080a4565b908160209103126100fe57516101ca816100ec565b6001600160a01b0391821681529116602082015260408101919091526080606082018190526101ca92910190610194565b3d15610fed573d90610fd38261076e565b91610fe1604051938461074c565b82523d6000602084013e565b606090565b92909190823b156110ac57611025926020926000604051809681958294630a85bd0160e11b9a8b85523360048601610f91565b03926001600160a01b03165af16000918161107c575b5061106e57611048610fc2565b805190816110695760405162461bcd60e51b815280610ba960048201610bad565b602001fd5b6001600160e01b0319161490565b61109e91925060203d81116110a5575b611096818361074c565b810190610f7c565b903861103b565b503d61108c565b50505050600190565b906110bf8261076e565b6110cc604051918261074c565b82815280926110dd601f199161076e565b0190602036910137565b9081518110156110f8570160200190565b634e487b7160e01b600052603260045260246000fd5b801561119a576000818181805b61117e5750611129816110b5565b935b6111355750505090565b61113e90610d5e565b90600a90611169611159611153848406610d80565b60ff1690565b60f81b6001600160f81b03191690565b841a61117584876110e7565b5304908161112b565b91506000198114610d6d576001600a910191048084929161111b565b506040516040810181811067ffffffffffffffff8211176107475760405260018152600360fc1b60208201529056fea26469706673582212201f806aae0a9b76f74c0e2e628ee4298ae6cc78505b14b8a17d7ce1d9e564234a64736f6c63430008120033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE PUSH3 0x319 JUMPI PUSH3 0x15B6 DUP1 CODESIZE SUB DUP1 PUSH3 0x1D DUP2 PUSH3 0x31E JUMP JUMPDEST SWAP3 DUP4 CODECOPY DUP2 ADD SWAP1 PUSH1 0x40 DUP2 DUP4 SUB SLT PUSH3 0x319 JUMPI DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 DUP2 DUP2 GT PUSH3 0x319 JUMPI DUP4 PUSH3 0x4F SWAP2 DUP5 ADD PUSH3 0x344 JUMP JUMPDEST SWAP2 PUSH1 0x20 SWAP4 DUP5 DUP3 ADD MLOAD DUP4 DUP2 GT PUSH3 0x319 JUMPI PUSH3 0x6B SWAP3 ADD PUSH3 0x344 JUMP JUMPDEST DUP3 MLOAD SWAP1 DUP3 DUP3 GT PUSH3 0x303 JUMPI PUSH1 0x0 DUP1 SLOAD SWAP3 PUSH1 0x1 SWAP6 DUP7 DUP6 DUP2 SHR SWAP6 AND DUP1 ISZERO PUSH3 0x2F8 JUMPI JUMPDEST DUP9 DUP7 LT EQ PUSH3 0x2E4 JUMPI DUP2 SWAP1 PUSH1 0x1F SWAP6 DUP7 DUP2 GT PUSH3 0x291 JUMPI JUMPDEST POP DUP9 SWAP1 DUP7 DUP4 GT PUSH1 0x1 EQ PUSH3 0x22D JUMPI DUP5 SWAP3 PUSH3 0x221 JUMPI JUMPDEST POP POP PUSH1 0x0 NOT PUSH1 0x3 DUP4 SWAP1 SHL SHR NOT AND SWAP1 DUP7 SHL OR DUP2 SSTORE JUMPDEST DUP2 MLOAD SWAP4 DUP5 GT PUSH3 0x20D JUMPI DUP5 SLOAD DUP6 DUP2 DUP2 SHR SWAP2 AND DUP1 ISZERO PUSH3 0x202 JUMPI JUMPDEST DUP8 DUP3 LT EQ PUSH3 0x1EE JUMPI DUP4 DUP2 GT PUSH3 0x1A6 JUMPI JUMPDEST POP DUP6 SWAP3 DUP5 GT PUSH1 0x1 EQ PUSH3 0x141 JUMPI DUP4 SWAP5 SWAP6 POP SWAP3 PUSH3 0x135 JUMPI JUMPDEST POP POP PUSH1 0x0 NOT PUSH1 0x3 DUP4 SWAP1 SHL SHR NOT AND SWAP1 DUP3 SHL OR SWAP1 SSTORE JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x11FF SWAP1 DUP2 PUSH3 0x3B7 DUP3 CODECOPY RETURN JUMPDEST ADD MLOAD SWAP1 POP CODESIZE DUP1 PUSH3 0x111 JUMP JUMPDEST SWAP2 SWAP1 PUSH1 0x1F NOT DUP5 AND SWAP6 DUP6 DUP5 MSTORE DUP1 DUP5 KECCAK256 SWAP4 SWAP1 JUMPDEST DUP8 DUP3 LT PUSH3 0x18E JUMPI POP POP DUP4 DUP6 SWAP7 LT PUSH3 0x174 JUMPI JUMPDEST POP POP POP DUP2 SHL ADD SWAP1 SSTORE PUSH3 0x125 JUMP JUMPDEST ADD MLOAD PUSH1 0x0 NOT PUSH1 0xF8 DUP5 PUSH1 0x3 SHL AND SHR NOT AND SWAP1 SSTORE CODESIZE DUP1 DUP1 PUSH3 0x166 JUMP JUMPDEST DUP1 DUP8 DUP6 SWAP7 DUP3 SWAP5 SWAP7 DUP7 ADD MLOAD DUP2 SSTORE ADD SWAP6 ADD SWAP4 ADD SWAP1 PUSH3 0x152 JUMP JUMPDEST DUP6 DUP3 MSTORE DUP7 DUP3 KECCAK256 DUP5 DUP1 DUP8 ADD PUSH1 0x5 SHR DUP3 ADD SWAP3 DUP10 DUP9 LT PUSH3 0x1E4 JUMPI JUMPDEST ADD PUSH1 0x5 SHR ADD SWAP1 DUP7 SWAP1 JUMPDEST DUP3 DUP2 LT PUSH3 0x1D8 JUMPI POP POP PUSH3 0xF9 JUMP JUMPDEST DUP4 DUP2 SSTORE ADD DUP7 SWAP1 PUSH3 0x1C8 JUMP JUMPDEST SWAP3 POP DUP2 SWAP3 PUSH3 0x1BF JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP3 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 DUP3 REVERT JUMPDEST SWAP1 PUSH1 0x7F AND SWAP1 PUSH3 0xE7 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 SWAP1 REVERT JUMPDEST ADD MLOAD SWAP1 POP CODESIZE DUP1 PUSH3 0xB9 JUMP JUMPDEST DUP5 DUP1 MSTORE DUP10 DUP6 KECCAK256 DUP10 SWAP5 POP SWAP2 SWAP1 PUSH1 0x1F NOT DUP5 AND DUP7 JUMPDEST DUP13 DUP3 DUP3 LT PUSH3 0x27A JUMPI POP POP DUP5 GT PUSH3 0x260 JUMPI JUMPDEST POP POP POP DUP2 SHL ADD DUP2 SSTORE PUSH3 0xCD JUMP JUMPDEST ADD MLOAD PUSH1 0x0 NOT PUSH1 0xF8 DUP5 PUSH1 0x3 SHL AND SHR NOT AND SWAP1 SSTORE CODESIZE DUP1 DUP1 PUSH3 0x252 JUMP JUMPDEST DUP4 DUP6 ADD MLOAD DUP7 SSTORE DUP13 SWAP8 SWAP1 SWAP6 ADD SWAP5 SWAP4 DUP5 ADD SWAP4 ADD PUSH3 0x23F JUMP JUMPDEST SWAP1 SWAP2 POP DUP4 DUP1 MSTORE DUP9 DUP5 KECCAK256 DUP7 DUP1 DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP3 DUP12 DUP7 LT PUSH3 0x2DA JUMPI JUMPDEST SWAP2 DUP11 SWAP2 DUP7 SWAP6 SWAP5 SWAP4 ADD PUSH1 0x5 SHR ADD SWAP2 JUMPDEST DUP3 DUP2 LT PUSH3 0x2CB JUMPI POP POP PUSH3 0xA3 JUMP JUMPDEST DUP7 DUP2 SSTORE DUP6 SWAP5 POP DUP11 SWAP2 ADD PUSH3 0x2BB JUMP JUMPDEST SWAP3 POP DUP2 SWAP3 PUSH3 0x2AD JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP4 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 DUP4 REVERT JUMPDEST SWAP5 PUSH1 0x7F AND SWAP5 PUSH3 0x8C JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MLOAD SWAP2 SWAP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP4 DUP3 LT OR PUSH3 0x303 JUMPI PUSH1 0x40 MSTORE JUMP JUMPDEST SWAP2 SWAP1 DUP1 PUSH1 0x1F DUP5 ADD SLT ISZERO PUSH3 0x319 JUMPI DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT PUSH3 0x303 JUMPI PUSH1 0x20 SWAP1 PUSH3 0x37A PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP4 ADD PUSH3 0x31E JUMP JUMPDEST SWAP3 DUP2 DUP5 MSTORE DUP3 DUP3 DUP8 ADD ADD GT PUSH3 0x319 JUMPI PUSH1 0x0 JUMPDEST DUP2 DUP2 LT PUSH3 0x3A2 JUMPI POP DUP3 PUSH1 0x0 SWAP4 SWAP5 SWAP6 POP ADD ADD MSTORE SWAP1 JUMP JUMPDEST DUP6 DUP2 ADD DUP4 ADD MLOAD DUP5 DUP3 ADD DUP5 ADD MSTORE DUP3 ADD PUSH3 0x38C JUMP INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT ISZERO PUSH2 0x12 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0xE7 JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xE2 JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0xDD JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xD8 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0xD3 JUMPI DUP1 PUSH4 0x42842E0E EQ PUSH2 0xCE JUMPI DUP1 PUSH4 0x6352211E EQ PUSH2 0xC9 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0xC4 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0xBF JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0xBA JUMPI DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0xB5 JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0xB0 JUMPI PUSH4 0xE985E9C5 EQ PUSH2 0xAB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x8FC JUMP JUMPDEST PUSH2 0x813 JUMP JUMPDEST PUSH2 0x78A JUMP JUMPDEST PUSH2 0x629 JUMP JUMPDEST PUSH2 0x568 JUMP JUMPDEST PUSH2 0x4C6 JUMP JUMPDEST PUSH2 0x4A8 JUMP JUMPDEST PUSH2 0x480 JUMP JUMPDEST PUSH2 0x457 JUMP JUMPDEST PUSH2 0x333 JUMP JUMPDEST PUSH2 0x2D7 JUMP JUMPDEST PUSH2 0x1CD JUMP JUMPDEST PUSH2 0x103 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND SUB PUSH2 0xFE JUMPI JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE PUSH2 0xFE JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0xFE JUMPI PUSH1 0x20 PUSH1 0x4 CALLDATALOAD PUSH2 0x122 DUP2 PUSH2 0xEC JUMP JUMPDEST PUSH4 0xFFFFFFFF PUSH1 0xE0 SHL AND PUSH4 0x80AC58CD PUSH1 0xE0 SHL DUP2 EQ SWAP1 DUP2 ISZERO PUSH2 0x160 JUMPI JUMPDEST DUP2 ISZERO PUSH2 0x14F JUMPI JUMPDEST POP PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE RETURN JUMPDEST PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL EQ SWAP1 POP CODESIZE PUSH2 0x144 JUMP JUMPDEST PUSH4 0x5B5E139F PUSH1 0xE0 SHL DUP2 EQ SWAP2 POP PUSH2 0x13D JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT PUSH2 0x184 JUMPI POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x174 JUMP JUMPDEST SWAP1 PUSH1 0x20 SWAP2 PUSH2 0x1AD DUP2 MLOAD DUP1 SWAP3 DUP2 DUP6 MSTORE DUP6 DUP1 DUP7 ADD SWAP2 ADD PUSH2 0x171 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND ADD ADD SWAP1 JUMP JUMPDEST SWAP1 PUSH1 0x20 PUSH2 0x1CA SWAP3 DUP2 DUP2 MSTORE ADD SWAP1 PUSH2 0x194 JUMP JUMPDEST SWAP1 JUMP JUMPDEST CALLVALUE PUSH2 0xFE JUMPI PUSH1 0x0 DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x2D4 JUMPI PUSH1 0x40 MLOAD SWAP1 DUP1 DUP1 SLOAD SWAP1 PUSH1 0x1 SWAP2 DUP1 DUP4 SHR SWAP3 DUP1 DUP3 AND SWAP3 DUP4 ISZERO PUSH2 0x2CA JUMPI JUMPDEST PUSH1 0x20 SWAP3 DUP4 DUP7 LT DUP6 EQ PUSH2 0x2B6 JUMPI DUP6 DUP9 MSTORE PUSH1 0x20 DUP9 ADD SWAP5 SWAP1 DUP2 ISZERO PUSH2 0x295 JUMPI POP PUSH1 0x1 EQ PUSH2 0x23D JUMPI JUMPDEST PUSH2 0x239 DUP8 PUSH2 0x22D DUP2 DUP10 SUB DUP3 PUSH2 0x74C JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP2 DUP3 SWAP2 DUP3 PUSH2 0x1B9 JUMP JUMPDEST SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 MSTORE SWAP5 POP SWAP2 SWAP3 SWAP2 PUSH32 0x290DECD9548B62A8D60345A988386FC84BA6BC95484008F6362F93160EF3E563 JUMPDEST DUP4 DUP7 LT PUSH2 0x284 JUMPI POP POP POP SWAP2 ADD SWAP1 POP PUSH2 0x22D DUP3 PUSH2 0x239 CODESIZE DUP1 PUSH2 0x21D JUMP JUMPDEST DUP1 SLOAD DUP6 DUP8 ADD MSTORE SWAP5 DUP3 ADD SWAP5 DUP2 ADD PUSH2 0x268 JUMP JUMPDEST PUSH1 0xFF NOT AND DUP6 MSTORE POP POP POP POP SWAP1 ISZERO ISZERO PUSH1 0x5 SHL ADD SWAP1 POP PUSH2 0x22D DUP3 PUSH2 0x239 CODESIZE DUP1 PUSH2 0x21D JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP3 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 DUP3 REVERT JUMPDEST SWAP4 PUSH1 0x7F AND SWAP4 PUSH2 0x1F9 JUMP JUMPDEST DUP1 REVERT JUMPDEST CALLVALUE PUSH2 0xFE JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0xFE JUMPI PUSH1 0x20 PUSH2 0x2F5 PUSH1 0x4 CALLDATALOAD PUSH2 0xA6D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE RETURN JUMPDEST PUSH1 0x4 CALLDATALOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND DUP3 SUB PUSH2 0xFE JUMPI JUMP JUMPDEST PUSH1 0x24 CALLDATALOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND DUP3 SUB PUSH2 0xFE JUMPI JUMP JUMPDEST CALLVALUE PUSH2 0xFE JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0xFE JUMPI PUSH2 0x34C PUSH2 0x307 JUMP JUMPDEST PUSH1 0x24 CALLDATALOAD PUSH2 0x358 DUP2 PUSH2 0x959 JUMP JUMPDEST SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND SWAP1 DUP3 AND DUP2 EQ PUSH2 0x3D3 JUMPI PUSH2 0x38A SWAP4 PUSH2 0x385 SWAP2 CALLER EQ SWAP1 DUP2 ISZERO PUSH2 0x38C JUMPI JUMPDEST POP PUSH2 0x9FB JUMP JUMPDEST PUSH2 0xF18 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x3CD SWAP2 POP PUSH2 0x3C6 SWAP1 CALLER SWAP1 JUMPDEST SWAP1 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 SWAP1 JUMP JUMPDEST SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST CODESIZE PUSH2 0x37F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F76616C20746F2063757272656E74206F776E65 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x39 PUSH1 0xF9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST PUSH1 0x60 SWAP1 PUSH1 0x3 NOT ADD SLT PUSH2 0xFE JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 PUSH1 0x4 CALLDATALOAD DUP3 DUP2 AND DUP2 SUB PUSH2 0xFE JUMPI SWAP2 PUSH1 0x24 CALLDATALOAD SWAP1 DUP2 AND DUP2 SUB PUSH2 0xFE JUMPI SWAP1 PUSH1 0x44 CALLDATALOAD SWAP1 JUMP JUMPDEST CALLVALUE PUSH2 0xFE JUMPI PUSH2 0x38A PUSH2 0x468 CALLDATASIZE PUSH2 0x422 JUMP JUMPDEST SWAP2 PUSH2 0x47B PUSH2 0x476 DUP5 CALLER PUSH2 0xC00 JUMP JUMPDEST PUSH2 0xAFF JUMP JUMPDEST PUSH2 0xD8E JUMP JUMPDEST CALLVALUE PUSH2 0xFE JUMPI PUSH2 0x38A PUSH2 0x491 CALLDATASIZE PUSH2 0x422 JUMP JUMPDEST SWAP1 PUSH1 0x40 MLOAD SWAP3 PUSH2 0x49F DUP5 PUSH2 0x72B JUMP JUMPDEST PUSH1 0x0 DUP5 MSTORE PUSH2 0xB65 JUMP JUMPDEST CALLVALUE PUSH2 0xFE JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0xFE JUMPI PUSH1 0x20 PUSH2 0x2F5 PUSH1 0x4 CALLDATALOAD PUSH2 0x959 JUMP JUMPDEST CALLVALUE PUSH2 0xFE JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0xFE JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH2 0x4E7 PUSH2 0x307 JUMP JUMPDEST AND DUP1 ISZERO PUSH2 0x510 JUMPI PUSH1 0x0 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH2 0x239 PUSH1 0x40 PUSH1 0x0 KECCAK256 SLOAD PUSH1 0x40 MLOAD SWAP2 DUP3 SWAP2 DUP3 SWAP2 SWAP1 PUSH1 0x20 DUP4 ADD SWAP3 MSTORE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A2062616C616E636520717565727920666F7220746865207A65 PUSH1 0x44 DUP3 ADD MSTORE PUSH10 0x726F2061646472657373 PUSH1 0xB0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST CALLVALUE PUSH2 0xFE JUMPI PUSH1 0x0 DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x2D4 JUMPI PUSH1 0x40 MLOAD SWAP1 DUP1 PUSH1 0x1 SWAP1 DUP2 SLOAD DUP1 DUP4 SHR SWAP3 DUP1 DUP3 AND SWAP3 DUP4 ISZERO PUSH2 0x61F JUMPI JUMPDEST PUSH1 0x20 SWAP3 DUP4 DUP7 LT DUP6 EQ PUSH2 0x2B6 JUMPI DUP6 DUP9 MSTORE PUSH1 0x20 DUP9 ADD SWAP5 SWAP1 DUP2 ISZERO PUSH2 0x295 JUMPI POP PUSH1 0x1 EQ PUSH2 0x5C6 JUMPI PUSH2 0x239 DUP8 PUSH2 0x22D DUP2 DUP10 SUB DUP3 PUSH2 0x74C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 MSTORE SWAP5 POP SWAP2 SWAP3 SWAP2 PUSH32 0xB10E2D527612073B26EECDFD717E6A320CF44B4AFAC2B0732D9FCBE2B7FA0CF6 JUMPDEST DUP4 DUP7 LT PUSH2 0x60E JUMPI POP POP POP SWAP2 ADD SWAP1 POP PUSH2 0x22D DUP3 PUSH2 0x239 CODESIZE DUP1 PUSH2 0x21D JUMP JUMPDEST DUP1 SLOAD DUP6 DUP8 ADD MSTORE SWAP5 DUP3 ADD SWAP5 DUP2 ADD PUSH2 0x5F2 JUMP JUMPDEST SWAP4 PUSH1 0x7F AND SWAP4 PUSH2 0x593 JUMP JUMPDEST CALLVALUE PUSH2 0xFE JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0xFE JUMPI PUSH2 0x642 PUSH2 0x307 JUMP JUMPDEST PUSH1 0x24 CALLDATALOAD DUP1 ISZERO ISZERO DUP2 SUB PUSH2 0xFE JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP2 CALLER DUP4 EQ PUSH2 0x6D0 JUMPI DUP2 PUSH2 0x68D PUSH2 0x69E SWAP3 CALLER PUSH1 0x0 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 SWAP1 JUMP JUMPDEST SWAP1 PUSH1 0xFF DUP1 NOT DUP4 SLOAD AND SWAP2 ISZERO ISZERO AND OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE CALLER SWAP1 PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 SWAP1 PUSH1 0x20 SWAP1 LOG3 STOP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F766520746F2063616C6C657200000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 SWAP1 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 DUP2 ADD SWAP1 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR PUSH2 0x747 JUMPI PUSH1 0x40 MSTORE JUMP JUMPDEST PUSH2 0x715 JUMP JUMPDEST SWAP1 PUSH1 0x1F DUP1 NOT SWAP2 ADD AND DUP2 ADD SWAP1 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR PUSH2 0x747 JUMPI PUSH1 0x40 MSTORE JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT PUSH2 0x747 JUMPI PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST CALLVALUE PUSH2 0xFE JUMPI PUSH1 0x80 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0xFE JUMPI PUSH2 0x7A3 PUSH2 0x307 JUMP JUMPDEST PUSH2 0x7AB PUSH2 0x31D JUMP JUMPDEST PUSH1 0x64 CALLDATALOAD SWAP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP4 GT PUSH2 0xFE JUMPI CALLDATASIZE PUSH1 0x23 DUP5 ADD SLT ISZERO PUSH2 0xFE JUMPI DUP3 PUSH1 0x4 ADD CALLDATALOAD SWAP2 PUSH2 0x7D8 DUP4 PUSH2 0x76E JUMP JUMPDEST SWAP3 PUSH2 0x7E6 PUSH1 0x40 MLOAD SWAP5 DUP6 PUSH2 0x74C JUMP JUMPDEST DUP1 DUP5 MSTORE CALLDATASIZE PUSH1 0x24 DUP3 DUP8 ADD ADD GT PUSH2 0xFE JUMPI PUSH1 0x20 DUP2 PUSH1 0x0 SWAP3 PUSH1 0x24 PUSH2 0x38A SWAP9 ADD DUP4 DUP9 ADD CALLDATACOPY DUP6 ADD ADD MSTORE PUSH1 0x44 CALLDATALOAD SWAP2 PUSH2 0xB65 JUMP JUMPDEST CALLVALUE PUSH2 0xFE JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0xFE JUMPI PUSH1 0x4 CALLDATALOAD PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO PUSH2 0x89F JUMPI PUSH2 0x84C PUSH2 0x9D1 JUMP JUMPDEST DUP1 MLOAD ISZERO PUSH2 0x88D JUMPI PUSH2 0x22D PUSH2 0x879 SWAP2 PUSH2 0x87F PUSH2 0x869 PUSH2 0x239 SWAP6 PUSH2 0x110E JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP5 DUP6 SWAP4 PUSH1 0x20 DUP6 ADD SWAP1 PUSH2 0x9E4 JUMP JUMPDEST SWAP1 PUSH2 0x9E4 JUMP JUMPDEST SUB PUSH1 0x1F NOT DUP2 ADD DUP4 MSTORE DUP3 PUSH2 0x74C JUMP JUMPDEST POP POP PUSH2 0x239 PUSH2 0x89A PUSH2 0x9D1 JUMP JUMPDEST PUSH2 0x22D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732314D657461646174613A2055524920717565727920666F72206E6F PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x3732BC34B9BA32B73A103A37B5B2B7 PUSH1 0x89 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST CALLVALUE PUSH2 0xFE JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0xFE JUMPI PUSH1 0x20 PUSH1 0xFF PUSH2 0x94D PUSH2 0x91C PUSH2 0x307 JUMP JUMPDEST PUSH2 0x924 PUSH2 0x31D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 DUP7 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP3 SWAP1 SWAP4 AND DUP2 MSTORE PUSH1 0x20 SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SWAP1 JUMP JUMPDEST SLOAD AND PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE RETURN JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP1 ISZERO PUSH2 0x97A JUMPI SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A206F776E657220717565727920666F72206E6F6E6578697374 PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x32B73A103A37B5B2B7 PUSH1 0xB9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD SWAP1 PUSH2 0x9DE DUP3 PUSH2 0x72B JUMP JUMPDEST PUSH1 0x0 DUP3 MSTORE JUMP JUMPDEST SWAP1 PUSH2 0x9F7 PUSH1 0x20 SWAP3 DUP3 DUP2 MLOAD SWAP5 DUP6 SWAP3 ADD PUSH2 0x171 JUMP JUMPDEST ADD SWAP1 JUMP JUMPDEST ISZERO PUSH2 0xA02 JUMPI JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x38 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F76652063616C6C6572206973206E6F74206F77 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E6572206E6F7220617070726F76656420666F7220616C6C0000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO PUSH2 0xAA5 JUMPI PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F76656420717565727920666F72206E6F6E6578 PUSH1 0x44 DUP3 ADD MSTORE PUSH12 0x34B9BA32B73A103A37B5B2B7 PUSH1 0xA1 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST ISZERO PUSH2 0xB06 JUMPI JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x31 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E736665722063616C6C6572206973206E6F74206F PUSH1 0x44 DUP3 ADD MSTORE PUSH17 0x1DDB995C881B9BDC88185C1C1C9BDD9959 PUSH1 0x7A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST SWAP1 PUSH2 0xB89 SWAP4 SWAP3 SWAP2 PUSH2 0xB79 PUSH2 0x476 DUP5 CALLER PUSH2 0xC00 JUMP JUMPDEST PUSH2 0xB84 DUP4 DUP4 DUP4 PUSH2 0xD8E JUMP JUMPDEST PUSH2 0xFF2 JUMP JUMPDEST ISZERO PUSH2 0xB90 JUMPI JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE DUP1 PUSH2 0xBA9 PUSH1 0x4 DUP3 ADD PUSH2 0xBAD JUMP JUMPDEST SUB SWAP1 REVERT JUMPDEST PUSH1 0x80 SWAP1 PUSH1 0x20 DUP2 MSTORE PUSH1 0x32 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E7366657220746F206E6F6E204552433732315265 PUSH1 0x40 DUP3 ADD MSTORE PUSH18 0x31B2B4BB32B91034B6B83632B6B2B73A32B9 PUSH1 0x71 SHL PUSH1 0x60 DUP3 ADD MSTORE ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO PUSH2 0xC96 JUMPI PUSH2 0xC26 DUP3 PUSH2 0x959 JUMP JUMPDEST SWAP2 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 DUP4 AND SWAP3 DUP3 DUP6 AND DUP5 EQ SWAP5 DUP6 ISZERO PUSH2 0xC65 JUMPI JUMPDEST POP POP DUP4 ISZERO PUSH2 0xC4F JUMPI JUMPDEST POP POP POP SWAP1 JUMP JUMPDEST PUSH2 0xC5B SWAP2 SWAP3 SWAP4 POP PUSH2 0xA6D JUMP JUMPDEST AND EQ CODESIZE DUP1 DUP1 PUSH2 0xC49 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 SWAP5 POP PUSH1 0xFF SWAP2 PUSH2 0xC8C SWAP2 SWAP1 PUSH2 0x3AF JUMP JUMPDEST SLOAD AND SWAP3 CODESIZE DUP1 PUSH2 0xC40 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A206F70657261746F7220717565727920666F72206E6F6E6578 PUSH1 0x44 DUP3 ADD MSTORE PUSH12 0x34B9BA32B73A103A37B5B2B7 PUSH1 0xA1 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST ISZERO PUSH2 0xCF7 JUMPI JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E7366657220746F20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 NOT DUP2 ADD SWAP2 SWAP1 DUP3 GT PUSH2 0xD6D JUMPI JUMP JUMPDEST PUSH2 0xD48 JUMP JUMPDEST SWAP1 PUSH1 0x1 DUP3 ADD DUP1 SWAP3 GT PUSH2 0xD6D JUMPI JUMP JUMPDEST PUSH1 0x30 ADD SWAP1 DUP2 PUSH1 0x30 GT PUSH2 0xD6D JUMPI JUMP JUMPDEST SWAP1 PUSH2 0xD98 DUP4 PUSH2 0x959 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND SWAP3 SWAP1 SWAP2 DUP3 AND DUP4 SWAP1 SUB PUSH2 0xE71 JUMPI PUSH2 0xDE7 PUSH2 0xE4A SWAP3 DUP3 AND SWAP5 PUSH2 0xDC4 DUP7 ISZERO ISZERO PUSH2 0xCF0 JUMP JUMPDEST PUSH2 0xDCD DUP8 PUSH2 0xEC4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST PUSH2 0xDF1 DUP2 SLOAD PUSH2 0xD5E JUMP JUMPDEST SWAP1 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0xE15 DUP2 SLOAD PUSH2 0xD72 JUMP JUMPDEST SWAP1 SSTORE PUSH2 0xE2B DUP6 PUSH1 0x0 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 SWAP1 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH1 0x0 DUP1 LOG4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E736665722066726F6D20696E636F727265637420 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x37BBB732B9 PUSH1 0xD9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH2 0xEF1 DUP4 PUSH2 0x959 JUMP JUMPDEST AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP3 DUP1 LOG4 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND OR SWAP1 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 PUSH2 0xF51 DUP5 PUSH2 0x959 JUMP JUMPDEST AND SWAP2 AND SWAP1 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x0 DUP1 LOG4 JUMP JUMPDEST SWAP1 DUP2 PUSH1 0x20 SWAP2 SUB SLT PUSH2 0xFE JUMPI MLOAD PUSH2 0x1CA DUP2 PUSH2 0xEC JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND DUP2 MSTORE SWAP2 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x80 PUSH1 0x60 DUP3 ADD DUP2 SWAP1 MSTORE PUSH2 0x1CA SWAP3 SWAP2 ADD SWAP1 PUSH2 0x194 JUMP JUMPDEST RETURNDATASIZE ISZERO PUSH2 0xFED JUMPI RETURNDATASIZE SWAP1 PUSH2 0xFD3 DUP3 PUSH2 0x76E JUMP JUMPDEST SWAP2 PUSH2 0xFE1 PUSH1 0x40 MLOAD SWAP4 DUP5 PUSH2 0x74C JUMP JUMPDEST DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY JUMP JUMPDEST PUSH1 0x60 SWAP1 JUMP JUMPDEST SWAP3 SWAP1 SWAP2 SWAP1 DUP3 EXTCODESIZE ISZERO PUSH2 0x10AC JUMPI PUSH2 0x1025 SWAP3 PUSH1 0x20 SWAP3 PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 SWAP7 DUP2 SWAP6 DUP3 SWAP5 PUSH4 0xA85BD01 PUSH1 0xE1 SHL SWAP11 DUP12 DUP6 MSTORE CALLER PUSH1 0x4 DUP7 ADD PUSH2 0xF91 JUMP JUMPDEST SUB SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND GAS CALL PUSH1 0x0 SWAP2 DUP2 PUSH2 0x107C JUMPI JUMPDEST POP PUSH2 0x106E JUMPI PUSH2 0x1048 PUSH2 0xFC2 JUMP JUMPDEST DUP1 MLOAD SWAP1 DUP2 PUSH2 0x1069 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE DUP1 PUSH2 0xBA9 PUSH1 0x4 DUP3 ADD PUSH2 0xBAD JUMP JUMPDEST PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND EQ SWAP1 JUMP JUMPDEST PUSH2 0x109E SWAP2 SWAP3 POP PUSH1 0x20 RETURNDATASIZE DUP2 GT PUSH2 0x10A5 JUMPI JUMPDEST PUSH2 0x1096 DUP2 DUP4 PUSH2 0x74C JUMP JUMPDEST DUP2 ADD SWAP1 PUSH2 0xF7C JUMP JUMPDEST SWAP1 CODESIZE PUSH2 0x103B JUMP JUMPDEST POP RETURNDATASIZE PUSH2 0x108C JUMP JUMPDEST POP POP POP POP PUSH1 0x1 SWAP1 JUMP JUMPDEST SWAP1 PUSH2 0x10BF DUP3 PUSH2 0x76E JUMP JUMPDEST PUSH2 0x10CC PUSH1 0x40 MLOAD SWAP2 DUP3 PUSH2 0x74C JUMP JUMPDEST DUP3 DUP2 MSTORE DUP1 SWAP3 PUSH2 0x10DD PUSH1 0x1F NOT SWAP2 PUSH2 0x76E JUMP JUMPDEST ADD SWAP1 PUSH1 0x20 CALLDATASIZE SWAP2 ADD CALLDATACOPY JUMP JUMPDEST SWAP1 DUP2 MLOAD DUP2 LT ISZERO PUSH2 0x10F8 JUMPI ADD PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 ISZERO PUSH2 0x119A JUMPI PUSH1 0x0 DUP2 DUP2 DUP2 DUP1 JUMPDEST PUSH2 0x117E JUMPI POP PUSH2 0x1129 DUP2 PUSH2 0x10B5 JUMP JUMPDEST SWAP4 JUMPDEST PUSH2 0x1135 JUMPI POP POP POP SWAP1 JUMP JUMPDEST PUSH2 0x113E SWAP1 PUSH2 0xD5E JUMP JUMPDEST SWAP1 PUSH1 0xA SWAP1 PUSH2 0x1169 PUSH2 0x1159 PUSH2 0x1153 DUP5 DUP5 MOD PUSH2 0xD80 JUMP JUMPDEST PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0xF8 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 JUMP JUMPDEST DUP5 BYTE PUSH2 0x1175 DUP5 DUP8 PUSH2 0x10E7 JUMP JUMPDEST MSTORE8 DIV SWAP1 DUP2 PUSH2 0x112B JUMP JUMPDEST SWAP2 POP PUSH1 0x0 NOT DUP2 EQ PUSH2 0xD6D JUMPI PUSH1 0x1 PUSH1 0xA SWAP2 ADD SWAP2 DIV DUP1 DUP5 SWAP3 SWAP2 PUSH2 0x111B JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x40 DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR PUSH2 0x747 JUMPI PUSH1 0x40 MSTORE PUSH1 0x1 DUP2 MSTORE PUSH1 0x3 PUSH1 0xFC SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x1F DUP1 PUSH11 0xAE0A9B76F74C0E2E628EE4 0x29 DUP11 0xE6 0xCC PUSH25 0x505B14B8A17D7CE1D9E564234A64736F6C6343000812003300 ","sourceMap":"628:13658:29:-:0;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;628:13658:29;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;628:13658:29;;;;;;;;;;;;;;;-1:-1:-1;628:13658:29;;;;;;;;;;;;;;;-1:-1:-1;628:13658:29;;;;;;;;;;;;;;;-1:-1:-1;;;;628:13658:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;628:13658:29;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;628:13658:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;628:13658:29;;;;;;;;;;;;;;;;-1:-1:-1;;;628:13658:29;;;;;;;;;;;;-1:-1:-1;628:13658:29;;;;;;;;;;;;;-1:-1:-1;628:13658:29;;-1:-1:-1;;628:13658:29;;;;;;;;;;;;;-1:-1:-1;628:13658:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;628:13658:29;;;;;;;;;;;;;-1:-1:-1;;;628:13658:29;;;;;;;;;;;;;;;;;;;-1:-1:-1;628:13658:29;;;;;-1:-1:-1;628:13658:29;;-1:-1:-1;628:13658:29;;;;;;;;;-1:-1:-1;;628:13658:29;;;-1:-1:-1;;;;;628:13658:29;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;628:13658:29;;;;;;;;;;-1:-1:-1;;628:13658:29;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;628:13658:29;;;;;;;;-1:-1:-1;628:13658:29;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"abi_decode_address":{"entryPoint":797,"id":null,"parameterSlots":0,"returnSlots":1},"abi_decode_address_5349":{"entryPoint":775,"id":null,"parameterSlots":0,"returnSlots":1},"abi_decode_addresst_addresst_uint256":{"entryPoint":1058,"id":null,"parameterSlots":1,"returnSlots":3},"abi_decode_bytes4_fromMemory":{"entryPoint":3964,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_address_address_uint256_bytes":{"entryPoint":3985,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_bool":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_string":{"entryPoint":441,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_string_memory_ptr":{"entryPoint":2532,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_string_to_string":{"entryPoint":404,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_stringliteral_1e76":{"entryPoint":2989,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_uint256":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_and_zero_memory_array_bytes":{"entryPoint":4277,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_memory_array_string":{"entryPoint":2513,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_bytes":{"entryPoint":1902,"id":null,"parameterSlots":1,"returnSlots":1},"array_dataslot_string_storage":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_dataslot_string_storage_5357":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_storeLengthForEncoding_string":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_uint256":{"entryPoint":3456,"id":null,"parameterSlots":1,"returnSlots":1},"checked_add_uint256_5377":{"entryPoint":3442,"id":null,"parameterSlots":1,"returnSlots":1},"checked_sub_uint256":{"entryPoint":3422,"id":null,"parameterSlots":1,"returnSlots":1},"convert_uint8_to_bytes1":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":369,"id":null,"parameterSlots":3,"returnSlots":0},"external_fun_approve":{"entryPoint":819,"id":null,"parameterSlots":0,"returnSlots":0},"external_fun_balanceOf":{"entryPoint":1222,"id":null,"parameterSlots":0,"returnSlots":0},"external_fun_getApproved":{"entryPoint":727,"id":null,"parameterSlots":0,"returnSlots":0},"external_fun_isApprovedForAll":{"entryPoint":2300,"id":null,"parameterSlots":0,"returnSlots":0},"external_fun_name":{"entryPoint":461,"id":null,"parameterSlots":0,"returnSlots":0},"external_fun_ownerOf":{"entryPoint":1192,"id":null,"parameterSlots":0,"returnSlots":0},"external_fun_safeTransferFrom":{"entryPoint":1930,"id":null,"parameterSlots":0,"returnSlots":0},"external_fun_safeTransferFrom_7025":{"entryPoint":1152,"id":null,"parameterSlots":0,"returnSlots":0},"external_fun_setApprovalForAll":{"entryPoint":1577,"id":null,"parameterSlots":0,"returnSlots":0},"external_fun_supportsInterface":{"entryPoint":259,"id":null,"parameterSlots":0,"returnSlots":0},"external_fun_symbol":{"entryPoint":1384,"id":null,"parameterSlots":0,"returnSlots":0},"external_fun_tokenURI":{"entryPoint":2067,"id":null,"parameterSlots":0,"returnSlots":0},"external_fun_transferFrom":{"entryPoint":1111,"id":null,"parameterSlots":0,"returnSlots":0},"extract_from_storage_value_offsett_bool":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"extract_returndata":{"entryPoint":4034,"id":null,"parameterSlots":0,"returnSlots":1},"finalize_allocation":{"entryPoint":1868,"id":null,"parameterSlots":2,"returnSlots":0},"finalize_allocation_7804":{"entryPoint":1835,"id":null,"parameterSlots":1,"returnSlots":0},"fun_approve":{"entryPoint":3864,"id":7412,"parameterSlots":2,"returnSlots":0},"fun_approve_5373":{"entryPoint":3780,"id":7412,"parameterSlots":1,"returnSlots":0},"fun_checkOnERC721Received":{"entryPoint":4082,"id":7506,"parameterSlots":4,"returnSlots":1},"fun_exists":{"entryPoint":null,"id":7102,"parameterSlots":1,"returnSlots":1},"fun_getApproved":{"entryPoint":2669,"id":6944,"parameterSlots":1,"returnSlots":1},"fun_isApprovedOrOwner":{"entryPoint":3072,"id":7143,"parameterSlots":2,"returnSlots":1},"fun_ownerOf":{"entryPoint":2393,"id":6809,"parameterSlots":1,"returnSlots":1},"fun_safeTransferFrom":{"entryPoint":2917,"id":7055,"parameterSlots":4,"returnSlots":0},"fun_toString":{"entryPoint":4366,"id":8294,"parameterSlots":1,"returnSlots":1},"fun_transfer":{"entryPoint":3470,"id":7388,"parameterSlots":3,"returnSlots":0},"mapping_index_access_mapping_address_uint256_of_address":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"mapping_index_access_mapping_address_uint256_of_address_5351":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"mapping_index_access_mapping_address_uint256_of_address_5374":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"mapping_index_access_mapping_uint256_address_of_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"memory_array_index_access_bytes":{"entryPoint":4327,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x11":{"entryPoint":3400,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":1813,"id":null,"parameterSlots":0,"returnSlots":0},"read_from_storage_split_offset_bool":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"require_helper_stringliteral_455f":{"entryPoint":3312,"id":null,"parameterSlots":1,"returnSlots":0},"require_helper_stringliteral_6d83":{"entryPoint":2555,"id":null,"parameterSlots":1,"returnSlots":0},"require_helper_stringliteral_c868":{"entryPoint":2815,"id":null,"parameterSlots":1,"returnSlots":0},"update_storage_value_offsett_address_to_address":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"update_storage_value_offsett_bool_to_bool":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"validator_revert_bytes4":{"entryPoint":236,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"6080604052600436101561001257600080fd5b60003560e01c806301ffc9a7146100e757806306fdde03146100e2578063081812fc146100dd578063095ea7b3146100d857806323b872dd146100d357806342842e0e146100ce5780636352211e146100c957806370a08231146100c457806395d89b41146100bf578063a22cb465146100ba578063b88d4fde146100b5578063c87b56dd146100b05763e985e9c5146100ab57600080fd5b6108fc565b610813565b61078a565b610629565b610568565b6104c6565b6104a8565b610480565b610457565b610333565b6102d7565b6101cd565b610103565b6001600160e01b03198116036100fe57565b600080fd5b346100fe5760203660031901126100fe576020600435610122816100ec565b63ffffffff60e01b166380ac58cd60e01b8114908115610160575b811561014f575b506040519015158152f35b6301ffc9a760e01b14905038610144565b635b5e139f60e01b8114915061013d565b60005b8381106101845750506000910152565b8181015183820152602001610174565b906020916101ad81518092818552858086019101610171565b601f01601f1916010190565b9060206101ca928181520190610194565b90565b346100fe576000806003193601126102d457604051908080549060019180831c928082169283156102ca575b60209283861085146102b6578588526020880194908115610295575060011461023d575b6102398761022d8189038261074c565b604051918291826101b9565b0390f35b6000805294509192917f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b838610610284575050509101905061022d82610239388061021d565b805485870152948201948101610268565b60ff191685525050505090151560051b01905061022d82610239388061021d565b634e487b7160e01b82526022600452602482fd5b93607f16936101f9565b80fd5b346100fe5760203660031901126100fe5760206102f5600435610a6d565b6040516001600160a01b039091168152f35b600435906001600160a01b03821682036100fe57565b602435906001600160a01b03821682036100fe57565b346100fe5760403660031901126100fe5761034c610307565b60243561035881610959565b916001600160a01b0380841690821681146103d35761038a9361038591331490811561038c575b506109fb565b610f18565b005b6001600160a01b031660009081526005602052604090206103cd91506103c69033905b9060018060a01b0316600052602052604060002090565b5460ff1690565b3861037f565b60405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608490fd5b60609060031901126100fe576001600160a01b039060043582811681036100fe579160243590811681036100fe579060443590565b346100fe5761038a61046836610422565b9161047b6104768433610c00565b610aff565b610d8e565b346100fe5761038a61049136610422565b906040519261049f8461072b565b60008452610b65565b346100fe5760203660031901126100fe5760206102f5600435610959565b346100fe5760203660031901126100fe576001600160a01b036104e7610307565b168015610510576000526003602052610239604060002054604051918291829190602083019252565b60405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604482015269726f206164647265737360b01b6064820152608490fd5b346100fe576000806003193601126102d4576040519080600190815480831c9280821692831561061f575b60209283861085146102b657858852602088019490811561029557506001146105c6576102398761022d8189038261074c565b600160005294509192917fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b83861061060e575050509101905061022d82610239388061021d565b8054858701529482019481016105f2565b93607f1693610593565b346100fe5760403660031901126100fe57610642610307565b60243580151581036100fe576001600160a01b038216913383146106d0578161068d61069e9233600052600560205260406000209060018060a01b0316600052602052604060002090565b9060ff801983541691151516179055565b604051901515815233907f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3190602090a3005b60405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606490fd5b634e487b7160e01b600052604160045260246000fd5b6020810190811067ffffffffffffffff82111761074757604052565b610715565b90601f8019910116810190811067ffffffffffffffff82111761074757604052565b67ffffffffffffffff811161074757601f01601f191660200190565b346100fe5760803660031901126100fe576107a3610307565b6107ab61031d565b6064359167ffffffffffffffff83116100fe57366023840112156100fe578260040135916107d88361076e565b926107e6604051948561074c565b80845236602482870101116100fe57602081600092602461038a9801838801378501015260443591610b65565b346100fe5760203660031901126100fe576004356000818152600260205260409020546001600160a01b03161561089f5761084c6109d1565b80511561088d5761022d6108799161087f6108696102399561110e565b60405194859360208501906109e4565b906109e4565b03601f19810183528261074c565b505061023961089a6109d1565b61022d565b60405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b6064820152608490fd5b346100fe5760403660031901126100fe57602060ff61094d61091c610307565b61092461031d565b6001600160a01b0391821660009081526005865260408082209290931681526020919091522090565b54166040519015158152f35b6000908152600260205260409020546001600160a01b0316801561097a5790565b60405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201526832b73a103a37b5b2b760b91b6064820152608490fd5b604051906109de8261072b565b60008252565b906109f760209282815194859201610171565b0190565b15610a0257565b60405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c00000000000000006064820152608490fd5b6000818152600260205260409020546001600160a01b031615610aa5576000908152600460205260409020546001600160a01b031690565b60405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608490fd5b15610b0657565b60405162461bcd60e51b815260206004820152603160248201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6044820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b6064820152608490fd5b90610b89939291610b796104768433610c00565b610b84838383610d8e565b610ff2565b15610b9057565b60405162461bcd60e51b815280610ba960048201610bad565b0390fd5b60809060208152603260208201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b60608201520190565b6000828152600260205260409020546001600160a01b031615610c9657610c2682610959565b9160018060a01b0390818316928285168414948515610c65575b50508315610c4f575b50505090565b610c5b91929350610a6d565b1614388080610c49565b6001600160a01b0316600090815260056020526040902091945060ff91610c8c91906103af565b5416923880610c40565b60405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608490fd5b15610cf757565b60405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608490fd5b634e487b7160e01b600052601160045260246000fd5b600019810191908211610d6d57565b610d48565b9060018201809211610d6d57565b6030019081603011610d6d57565b90610d9883610959565b6001600160a01b038381169290918216839003610e7157610de7610e4a92821694610dc4861515610cf0565b610dcd87610ec4565b6001600160a01b0316600090815260036020526040902090565b610df18154610d5e565b90556001600160a01b0381166000908152600360205260409020610e158154610d72565b9055610e2b856000526002602052604060002090565b80546001600160a01b0319166001600160a01b03909216919091179055565b7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4565b60405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b6064820152608490fd5b600081815260046020526040812080546001600160a01b03191690556001600160a01b03610ef183610959565b167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258280a4565b600082815260046020526040902080546001600160a01b0319166001600160a01b0383161790556001600160a01b0380610f5184610959565b169116907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600080a4565b908160209103126100fe57516101ca816100ec565b6001600160a01b0391821681529116602082015260408101919091526080606082018190526101ca92910190610194565b3d15610fed573d90610fd38261076e565b91610fe1604051938461074c565b82523d6000602084013e565b606090565b92909190823b156110ac57611025926020926000604051809681958294630a85bd0160e11b9a8b85523360048601610f91565b03926001600160a01b03165af16000918161107c575b5061106e57611048610fc2565b805190816110695760405162461bcd60e51b815280610ba960048201610bad565b602001fd5b6001600160e01b0319161490565b61109e91925060203d81116110a5575b611096818361074c565b810190610f7c565b903861103b565b503d61108c565b50505050600190565b906110bf8261076e565b6110cc604051918261074c565b82815280926110dd601f199161076e565b0190602036910137565b9081518110156110f8570160200190565b634e487b7160e01b600052603260045260246000fd5b801561119a576000818181805b61117e5750611129816110b5565b935b6111355750505090565b61113e90610d5e565b90600a90611169611159611153848406610d80565b60ff1690565b60f81b6001600160f81b03191690565b841a61117584876110e7565b5304908161112b565b91506000198114610d6d576001600a910191048084929161111b565b506040516040810181811067ffffffffffffffff8211176107475760405260018152600360fc1b60208201529056fea26469706673582212201f806aae0a9b76f74c0e2e628ee4298ae6cc78505b14b8a17d7ce1d9e564234a64736f6c63430008120033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT ISZERO PUSH2 0x12 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0xE7 JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xE2 JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0xDD JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xD8 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0xD3 JUMPI DUP1 PUSH4 0x42842E0E EQ PUSH2 0xCE JUMPI DUP1 PUSH4 0x6352211E EQ PUSH2 0xC9 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0xC4 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0xBF JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0xBA JUMPI DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0xB5 JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0xB0 JUMPI PUSH4 0xE985E9C5 EQ PUSH2 0xAB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x8FC JUMP JUMPDEST PUSH2 0x813 JUMP JUMPDEST PUSH2 0x78A JUMP JUMPDEST PUSH2 0x629 JUMP JUMPDEST PUSH2 0x568 JUMP JUMPDEST PUSH2 0x4C6 JUMP JUMPDEST PUSH2 0x4A8 JUMP JUMPDEST PUSH2 0x480 JUMP JUMPDEST PUSH2 0x457 JUMP JUMPDEST PUSH2 0x333 JUMP JUMPDEST PUSH2 0x2D7 JUMP JUMPDEST PUSH2 0x1CD JUMP JUMPDEST PUSH2 0x103 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND SUB PUSH2 0xFE JUMPI JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE PUSH2 0xFE JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0xFE JUMPI PUSH1 0x20 PUSH1 0x4 CALLDATALOAD PUSH2 0x122 DUP2 PUSH2 0xEC JUMP JUMPDEST PUSH4 0xFFFFFFFF PUSH1 0xE0 SHL AND PUSH4 0x80AC58CD PUSH1 0xE0 SHL DUP2 EQ SWAP1 DUP2 ISZERO PUSH2 0x160 JUMPI JUMPDEST DUP2 ISZERO PUSH2 0x14F JUMPI JUMPDEST POP PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE RETURN JUMPDEST PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL EQ SWAP1 POP CODESIZE PUSH2 0x144 JUMP JUMPDEST PUSH4 0x5B5E139F PUSH1 0xE0 SHL DUP2 EQ SWAP2 POP PUSH2 0x13D JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT PUSH2 0x184 JUMPI POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x174 JUMP JUMPDEST SWAP1 PUSH1 0x20 SWAP2 PUSH2 0x1AD DUP2 MLOAD DUP1 SWAP3 DUP2 DUP6 MSTORE DUP6 DUP1 DUP7 ADD SWAP2 ADD PUSH2 0x171 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND ADD ADD SWAP1 JUMP JUMPDEST SWAP1 PUSH1 0x20 PUSH2 0x1CA SWAP3 DUP2 DUP2 MSTORE ADD SWAP1 PUSH2 0x194 JUMP JUMPDEST SWAP1 JUMP JUMPDEST CALLVALUE PUSH2 0xFE JUMPI PUSH1 0x0 DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x2D4 JUMPI PUSH1 0x40 MLOAD SWAP1 DUP1 DUP1 SLOAD SWAP1 PUSH1 0x1 SWAP2 DUP1 DUP4 SHR SWAP3 DUP1 DUP3 AND SWAP3 DUP4 ISZERO PUSH2 0x2CA JUMPI JUMPDEST PUSH1 0x20 SWAP3 DUP4 DUP7 LT DUP6 EQ PUSH2 0x2B6 JUMPI DUP6 DUP9 MSTORE PUSH1 0x20 DUP9 ADD SWAP5 SWAP1 DUP2 ISZERO PUSH2 0x295 JUMPI POP PUSH1 0x1 EQ PUSH2 0x23D JUMPI JUMPDEST PUSH2 0x239 DUP8 PUSH2 0x22D DUP2 DUP10 SUB DUP3 PUSH2 0x74C JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP2 DUP3 SWAP2 DUP3 PUSH2 0x1B9 JUMP JUMPDEST SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 MSTORE SWAP5 POP SWAP2 SWAP3 SWAP2 PUSH32 0x290DECD9548B62A8D60345A988386FC84BA6BC95484008F6362F93160EF3E563 JUMPDEST DUP4 DUP7 LT PUSH2 0x284 JUMPI POP POP POP SWAP2 ADD SWAP1 POP PUSH2 0x22D DUP3 PUSH2 0x239 CODESIZE DUP1 PUSH2 0x21D JUMP JUMPDEST DUP1 SLOAD DUP6 DUP8 ADD MSTORE SWAP5 DUP3 ADD SWAP5 DUP2 ADD PUSH2 0x268 JUMP JUMPDEST PUSH1 0xFF NOT AND DUP6 MSTORE POP POP POP POP SWAP1 ISZERO ISZERO PUSH1 0x5 SHL ADD SWAP1 POP PUSH2 0x22D DUP3 PUSH2 0x239 CODESIZE DUP1 PUSH2 0x21D JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP3 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 DUP3 REVERT JUMPDEST SWAP4 PUSH1 0x7F AND SWAP4 PUSH2 0x1F9 JUMP JUMPDEST DUP1 REVERT JUMPDEST CALLVALUE PUSH2 0xFE JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0xFE JUMPI PUSH1 0x20 PUSH2 0x2F5 PUSH1 0x4 CALLDATALOAD PUSH2 0xA6D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE RETURN JUMPDEST PUSH1 0x4 CALLDATALOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND DUP3 SUB PUSH2 0xFE JUMPI JUMP JUMPDEST PUSH1 0x24 CALLDATALOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND DUP3 SUB PUSH2 0xFE JUMPI JUMP JUMPDEST CALLVALUE PUSH2 0xFE JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0xFE JUMPI PUSH2 0x34C PUSH2 0x307 JUMP JUMPDEST PUSH1 0x24 CALLDATALOAD PUSH2 0x358 DUP2 PUSH2 0x959 JUMP JUMPDEST SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND SWAP1 DUP3 AND DUP2 EQ PUSH2 0x3D3 JUMPI PUSH2 0x38A SWAP4 PUSH2 0x385 SWAP2 CALLER EQ SWAP1 DUP2 ISZERO PUSH2 0x38C JUMPI JUMPDEST POP PUSH2 0x9FB JUMP JUMPDEST PUSH2 0xF18 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x3CD SWAP2 POP PUSH2 0x3C6 SWAP1 CALLER SWAP1 JUMPDEST SWAP1 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 SWAP1 JUMP JUMPDEST SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST CODESIZE PUSH2 0x37F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F76616C20746F2063757272656E74206F776E65 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x39 PUSH1 0xF9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST PUSH1 0x60 SWAP1 PUSH1 0x3 NOT ADD SLT PUSH2 0xFE JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 PUSH1 0x4 CALLDATALOAD DUP3 DUP2 AND DUP2 SUB PUSH2 0xFE JUMPI SWAP2 PUSH1 0x24 CALLDATALOAD SWAP1 DUP2 AND DUP2 SUB PUSH2 0xFE JUMPI SWAP1 PUSH1 0x44 CALLDATALOAD SWAP1 JUMP JUMPDEST CALLVALUE PUSH2 0xFE JUMPI PUSH2 0x38A PUSH2 0x468 CALLDATASIZE PUSH2 0x422 JUMP JUMPDEST SWAP2 PUSH2 0x47B PUSH2 0x476 DUP5 CALLER PUSH2 0xC00 JUMP JUMPDEST PUSH2 0xAFF JUMP JUMPDEST PUSH2 0xD8E JUMP JUMPDEST CALLVALUE PUSH2 0xFE JUMPI PUSH2 0x38A PUSH2 0x491 CALLDATASIZE PUSH2 0x422 JUMP JUMPDEST SWAP1 PUSH1 0x40 MLOAD SWAP3 PUSH2 0x49F DUP5 PUSH2 0x72B JUMP JUMPDEST PUSH1 0x0 DUP5 MSTORE PUSH2 0xB65 JUMP JUMPDEST CALLVALUE PUSH2 0xFE JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0xFE JUMPI PUSH1 0x20 PUSH2 0x2F5 PUSH1 0x4 CALLDATALOAD PUSH2 0x959 JUMP JUMPDEST CALLVALUE PUSH2 0xFE JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0xFE JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH2 0x4E7 PUSH2 0x307 JUMP JUMPDEST AND DUP1 ISZERO PUSH2 0x510 JUMPI PUSH1 0x0 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH2 0x239 PUSH1 0x40 PUSH1 0x0 KECCAK256 SLOAD PUSH1 0x40 MLOAD SWAP2 DUP3 SWAP2 DUP3 SWAP2 SWAP1 PUSH1 0x20 DUP4 ADD SWAP3 MSTORE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A2062616C616E636520717565727920666F7220746865207A65 PUSH1 0x44 DUP3 ADD MSTORE PUSH10 0x726F2061646472657373 PUSH1 0xB0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST CALLVALUE PUSH2 0xFE JUMPI PUSH1 0x0 DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x2D4 JUMPI PUSH1 0x40 MLOAD SWAP1 DUP1 PUSH1 0x1 SWAP1 DUP2 SLOAD DUP1 DUP4 SHR SWAP3 DUP1 DUP3 AND SWAP3 DUP4 ISZERO PUSH2 0x61F JUMPI JUMPDEST PUSH1 0x20 SWAP3 DUP4 DUP7 LT DUP6 EQ PUSH2 0x2B6 JUMPI DUP6 DUP9 MSTORE PUSH1 0x20 DUP9 ADD SWAP5 SWAP1 DUP2 ISZERO PUSH2 0x295 JUMPI POP PUSH1 0x1 EQ PUSH2 0x5C6 JUMPI PUSH2 0x239 DUP8 PUSH2 0x22D DUP2 DUP10 SUB DUP3 PUSH2 0x74C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 MSTORE SWAP5 POP SWAP2 SWAP3 SWAP2 PUSH32 0xB10E2D527612073B26EECDFD717E6A320CF44B4AFAC2B0732D9FCBE2B7FA0CF6 JUMPDEST DUP4 DUP7 LT PUSH2 0x60E JUMPI POP POP POP SWAP2 ADD SWAP1 POP PUSH2 0x22D DUP3 PUSH2 0x239 CODESIZE DUP1 PUSH2 0x21D JUMP JUMPDEST DUP1 SLOAD DUP6 DUP8 ADD MSTORE SWAP5 DUP3 ADD SWAP5 DUP2 ADD PUSH2 0x5F2 JUMP JUMPDEST SWAP4 PUSH1 0x7F AND SWAP4 PUSH2 0x593 JUMP JUMPDEST CALLVALUE PUSH2 0xFE JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0xFE JUMPI PUSH2 0x642 PUSH2 0x307 JUMP JUMPDEST PUSH1 0x24 CALLDATALOAD DUP1 ISZERO ISZERO DUP2 SUB PUSH2 0xFE JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP2 CALLER DUP4 EQ PUSH2 0x6D0 JUMPI DUP2 PUSH2 0x68D PUSH2 0x69E SWAP3 CALLER PUSH1 0x0 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 SWAP1 JUMP JUMPDEST SWAP1 PUSH1 0xFF DUP1 NOT DUP4 SLOAD AND SWAP2 ISZERO ISZERO AND OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE CALLER SWAP1 PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 SWAP1 PUSH1 0x20 SWAP1 LOG3 STOP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F766520746F2063616C6C657200000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 SWAP1 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 DUP2 ADD SWAP1 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR PUSH2 0x747 JUMPI PUSH1 0x40 MSTORE JUMP JUMPDEST PUSH2 0x715 JUMP JUMPDEST SWAP1 PUSH1 0x1F DUP1 NOT SWAP2 ADD AND DUP2 ADD SWAP1 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR PUSH2 0x747 JUMPI PUSH1 0x40 MSTORE JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT PUSH2 0x747 JUMPI PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST CALLVALUE PUSH2 0xFE JUMPI PUSH1 0x80 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0xFE JUMPI PUSH2 0x7A3 PUSH2 0x307 JUMP JUMPDEST PUSH2 0x7AB PUSH2 0x31D JUMP JUMPDEST PUSH1 0x64 CALLDATALOAD SWAP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP4 GT PUSH2 0xFE JUMPI CALLDATASIZE PUSH1 0x23 DUP5 ADD SLT ISZERO PUSH2 0xFE JUMPI DUP3 PUSH1 0x4 ADD CALLDATALOAD SWAP2 PUSH2 0x7D8 DUP4 PUSH2 0x76E JUMP JUMPDEST SWAP3 PUSH2 0x7E6 PUSH1 0x40 MLOAD SWAP5 DUP6 PUSH2 0x74C JUMP JUMPDEST DUP1 DUP5 MSTORE CALLDATASIZE PUSH1 0x24 DUP3 DUP8 ADD ADD GT PUSH2 0xFE JUMPI PUSH1 0x20 DUP2 PUSH1 0x0 SWAP3 PUSH1 0x24 PUSH2 0x38A SWAP9 ADD DUP4 DUP9 ADD CALLDATACOPY DUP6 ADD ADD MSTORE PUSH1 0x44 CALLDATALOAD SWAP2 PUSH2 0xB65 JUMP JUMPDEST CALLVALUE PUSH2 0xFE JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0xFE JUMPI PUSH1 0x4 CALLDATALOAD PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO PUSH2 0x89F JUMPI PUSH2 0x84C PUSH2 0x9D1 JUMP JUMPDEST DUP1 MLOAD ISZERO PUSH2 0x88D JUMPI PUSH2 0x22D PUSH2 0x879 SWAP2 PUSH2 0x87F PUSH2 0x869 PUSH2 0x239 SWAP6 PUSH2 0x110E JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP5 DUP6 SWAP4 PUSH1 0x20 DUP6 ADD SWAP1 PUSH2 0x9E4 JUMP JUMPDEST SWAP1 PUSH2 0x9E4 JUMP JUMPDEST SUB PUSH1 0x1F NOT DUP2 ADD DUP4 MSTORE DUP3 PUSH2 0x74C JUMP JUMPDEST POP POP PUSH2 0x239 PUSH2 0x89A PUSH2 0x9D1 JUMP JUMPDEST PUSH2 0x22D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732314D657461646174613A2055524920717565727920666F72206E6F PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x3732BC34B9BA32B73A103A37B5B2B7 PUSH1 0x89 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST CALLVALUE PUSH2 0xFE JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0xFE JUMPI PUSH1 0x20 PUSH1 0xFF PUSH2 0x94D PUSH2 0x91C PUSH2 0x307 JUMP JUMPDEST PUSH2 0x924 PUSH2 0x31D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 DUP7 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP3 SWAP1 SWAP4 AND DUP2 MSTORE PUSH1 0x20 SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SWAP1 JUMP JUMPDEST SLOAD AND PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE RETURN JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP1 ISZERO PUSH2 0x97A JUMPI SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A206F776E657220717565727920666F72206E6F6E6578697374 PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x32B73A103A37B5B2B7 PUSH1 0xB9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD SWAP1 PUSH2 0x9DE DUP3 PUSH2 0x72B JUMP JUMPDEST PUSH1 0x0 DUP3 MSTORE JUMP JUMPDEST SWAP1 PUSH2 0x9F7 PUSH1 0x20 SWAP3 DUP3 DUP2 MLOAD SWAP5 DUP6 SWAP3 ADD PUSH2 0x171 JUMP JUMPDEST ADD SWAP1 JUMP JUMPDEST ISZERO PUSH2 0xA02 JUMPI JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x38 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F76652063616C6C6572206973206E6F74206F77 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E6572206E6F7220617070726F76656420666F7220616C6C0000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO PUSH2 0xAA5 JUMPI PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F76656420717565727920666F72206E6F6E6578 PUSH1 0x44 DUP3 ADD MSTORE PUSH12 0x34B9BA32B73A103A37B5B2B7 PUSH1 0xA1 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST ISZERO PUSH2 0xB06 JUMPI JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x31 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E736665722063616C6C6572206973206E6F74206F PUSH1 0x44 DUP3 ADD MSTORE PUSH17 0x1DDB995C881B9BDC88185C1C1C9BDD9959 PUSH1 0x7A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST SWAP1 PUSH2 0xB89 SWAP4 SWAP3 SWAP2 PUSH2 0xB79 PUSH2 0x476 DUP5 CALLER PUSH2 0xC00 JUMP JUMPDEST PUSH2 0xB84 DUP4 DUP4 DUP4 PUSH2 0xD8E JUMP JUMPDEST PUSH2 0xFF2 JUMP JUMPDEST ISZERO PUSH2 0xB90 JUMPI JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE DUP1 PUSH2 0xBA9 PUSH1 0x4 DUP3 ADD PUSH2 0xBAD JUMP JUMPDEST SUB SWAP1 REVERT JUMPDEST PUSH1 0x80 SWAP1 PUSH1 0x20 DUP2 MSTORE PUSH1 0x32 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E7366657220746F206E6F6E204552433732315265 PUSH1 0x40 DUP3 ADD MSTORE PUSH18 0x31B2B4BB32B91034B6B83632B6B2B73A32B9 PUSH1 0x71 SHL PUSH1 0x60 DUP3 ADD MSTORE ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO PUSH2 0xC96 JUMPI PUSH2 0xC26 DUP3 PUSH2 0x959 JUMP JUMPDEST SWAP2 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 DUP4 AND SWAP3 DUP3 DUP6 AND DUP5 EQ SWAP5 DUP6 ISZERO PUSH2 0xC65 JUMPI JUMPDEST POP POP DUP4 ISZERO PUSH2 0xC4F JUMPI JUMPDEST POP POP POP SWAP1 JUMP JUMPDEST PUSH2 0xC5B SWAP2 SWAP3 SWAP4 POP PUSH2 0xA6D JUMP JUMPDEST AND EQ CODESIZE DUP1 DUP1 PUSH2 0xC49 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 SWAP5 POP PUSH1 0xFF SWAP2 PUSH2 0xC8C SWAP2 SWAP1 PUSH2 0x3AF JUMP JUMPDEST SLOAD AND SWAP3 CODESIZE DUP1 PUSH2 0xC40 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A206F70657261746F7220717565727920666F72206E6F6E6578 PUSH1 0x44 DUP3 ADD MSTORE PUSH12 0x34B9BA32B73A103A37B5B2B7 PUSH1 0xA1 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST ISZERO PUSH2 0xCF7 JUMPI JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E7366657220746F20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 NOT DUP2 ADD SWAP2 SWAP1 DUP3 GT PUSH2 0xD6D JUMPI JUMP JUMPDEST PUSH2 0xD48 JUMP JUMPDEST SWAP1 PUSH1 0x1 DUP3 ADD DUP1 SWAP3 GT PUSH2 0xD6D JUMPI JUMP JUMPDEST PUSH1 0x30 ADD SWAP1 DUP2 PUSH1 0x30 GT PUSH2 0xD6D JUMPI JUMP JUMPDEST SWAP1 PUSH2 0xD98 DUP4 PUSH2 0x959 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND SWAP3 SWAP1 SWAP2 DUP3 AND DUP4 SWAP1 SUB PUSH2 0xE71 JUMPI PUSH2 0xDE7 PUSH2 0xE4A SWAP3 DUP3 AND SWAP5 PUSH2 0xDC4 DUP7 ISZERO ISZERO PUSH2 0xCF0 JUMP JUMPDEST PUSH2 0xDCD DUP8 PUSH2 0xEC4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST PUSH2 0xDF1 DUP2 SLOAD PUSH2 0xD5E JUMP JUMPDEST SWAP1 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0xE15 DUP2 SLOAD PUSH2 0xD72 JUMP JUMPDEST SWAP1 SSTORE PUSH2 0xE2B DUP6 PUSH1 0x0 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 SWAP1 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH1 0x0 DUP1 LOG4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E736665722066726F6D20696E636F727265637420 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x37BBB732B9 PUSH1 0xD9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH2 0xEF1 DUP4 PUSH2 0x959 JUMP JUMPDEST AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP3 DUP1 LOG4 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND OR SWAP1 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 PUSH2 0xF51 DUP5 PUSH2 0x959 JUMP JUMPDEST AND SWAP2 AND SWAP1 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x0 DUP1 LOG4 JUMP JUMPDEST SWAP1 DUP2 PUSH1 0x20 SWAP2 SUB SLT PUSH2 0xFE JUMPI MLOAD PUSH2 0x1CA DUP2 PUSH2 0xEC JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND DUP2 MSTORE SWAP2 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x80 PUSH1 0x60 DUP3 ADD DUP2 SWAP1 MSTORE PUSH2 0x1CA SWAP3 SWAP2 ADD SWAP1 PUSH2 0x194 JUMP JUMPDEST RETURNDATASIZE ISZERO PUSH2 0xFED JUMPI RETURNDATASIZE SWAP1 PUSH2 0xFD3 DUP3 PUSH2 0x76E JUMP JUMPDEST SWAP2 PUSH2 0xFE1 PUSH1 0x40 MLOAD SWAP4 DUP5 PUSH2 0x74C JUMP JUMPDEST DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY JUMP JUMPDEST PUSH1 0x60 SWAP1 JUMP JUMPDEST SWAP3 SWAP1 SWAP2 SWAP1 DUP3 EXTCODESIZE ISZERO PUSH2 0x10AC JUMPI PUSH2 0x1025 SWAP3 PUSH1 0x20 SWAP3 PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 SWAP7 DUP2 SWAP6 DUP3 SWAP5 PUSH4 0xA85BD01 PUSH1 0xE1 SHL SWAP11 DUP12 DUP6 MSTORE CALLER PUSH1 0x4 DUP7 ADD PUSH2 0xF91 JUMP JUMPDEST SUB SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND GAS CALL PUSH1 0x0 SWAP2 DUP2 PUSH2 0x107C JUMPI JUMPDEST POP PUSH2 0x106E JUMPI PUSH2 0x1048 PUSH2 0xFC2 JUMP JUMPDEST DUP1 MLOAD SWAP1 DUP2 PUSH2 0x1069 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE DUP1 PUSH2 0xBA9 PUSH1 0x4 DUP3 ADD PUSH2 0xBAD JUMP JUMPDEST PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND EQ SWAP1 JUMP JUMPDEST PUSH2 0x109E SWAP2 SWAP3 POP PUSH1 0x20 RETURNDATASIZE DUP2 GT PUSH2 0x10A5 JUMPI JUMPDEST PUSH2 0x1096 DUP2 DUP4 PUSH2 0x74C JUMP JUMPDEST DUP2 ADD SWAP1 PUSH2 0xF7C JUMP JUMPDEST SWAP1 CODESIZE PUSH2 0x103B JUMP JUMPDEST POP RETURNDATASIZE PUSH2 0x108C JUMP JUMPDEST POP POP POP POP PUSH1 0x1 SWAP1 JUMP JUMPDEST SWAP1 PUSH2 0x10BF DUP3 PUSH2 0x76E JUMP JUMPDEST PUSH2 0x10CC PUSH1 0x40 MLOAD SWAP2 DUP3 PUSH2 0x74C JUMP JUMPDEST DUP3 DUP2 MSTORE DUP1 SWAP3 PUSH2 0x10DD PUSH1 0x1F NOT SWAP2 PUSH2 0x76E JUMP JUMPDEST ADD SWAP1 PUSH1 0x20 CALLDATASIZE SWAP2 ADD CALLDATACOPY JUMP JUMPDEST SWAP1 DUP2 MLOAD DUP2 LT ISZERO PUSH2 0x10F8 JUMPI ADD PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 ISZERO PUSH2 0x119A JUMPI PUSH1 0x0 DUP2 DUP2 DUP2 DUP1 JUMPDEST PUSH2 0x117E JUMPI POP PUSH2 0x1129 DUP2 PUSH2 0x10B5 JUMP JUMPDEST SWAP4 JUMPDEST PUSH2 0x1135 JUMPI POP POP POP SWAP1 JUMP JUMPDEST PUSH2 0x113E SWAP1 PUSH2 0xD5E JUMP JUMPDEST SWAP1 PUSH1 0xA SWAP1 PUSH2 0x1169 PUSH2 0x1159 PUSH2 0x1153 DUP5 DUP5 MOD PUSH2 0xD80 JUMP JUMPDEST PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0xF8 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 JUMP JUMPDEST DUP5 BYTE PUSH2 0x1175 DUP5 DUP8 PUSH2 0x10E7 JUMP JUMPDEST MSTORE8 DIV SWAP1 DUP2 PUSH2 0x112B JUMP JUMPDEST SWAP2 POP PUSH1 0x0 NOT DUP2 EQ PUSH2 0xD6D JUMPI PUSH1 0x1 PUSH1 0xA SWAP2 ADD SWAP2 DIV DUP1 DUP5 SWAP3 SWAP2 PUSH2 0x111B JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x40 DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR PUSH2 0x747 JUMPI PUSH1 0x40 MSTORE PUSH1 0x1 DUP2 MSTORE PUSH1 0x3 PUSH1 0xFC SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x1F DUP1 PUSH11 0xAE0A9B76F74C0E2E628EE4 0x29 DUP11 0xE6 0xCC PUSH25 0x505B14B8A17D7CE1D9E564234A64736F6C6343000812003300 ","sourceMap":"628:13658:29:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;-1:-1:-1;;;;;;628:13658:29;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;628:13658:29;;;;;;;;;;:::i;:::-;;;;;1722:25;;;1707:40;;:104;;;;;628:13658;1707:156;;;;628:13658;;;;;;;;;;1707:156;-1:-1:-1;;;937:40:38;;-1:-1:-1;1707:156:29;;;:104;-1:-1:-1;;;1763:48:29;;;-1:-1:-1;1707:104:29;;628:13658;;;;;;;;-1:-1:-1;;628:13658:29;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;628:13658:29;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;628:13658:29;;;;;;;;;;-1:-1:-1;;;628:13658:29;;;-1:-1:-1;628:13658:29;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;628:13658:29;;;-1:-1:-1;;;;628:13658:29;;;;;;;-1:-1:-1;628:13658:29;;;;;;;;-1:-1:-1;;;628:13658:29;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;628:13658:29;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;628:13658:29;;;;;;;;;;-1:-1:-1;;;;;628:13658:29;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;628:13658:29;;;;;;:::o;:::-;;;;;;-1:-1:-1;;628:13658:29;;;;;;:::i;:::-;;;3634:23;;;:::i;:::-;628:13658;-1:-1:-1;;;;;628:13658:29;;;;;;3675:11;;628:13658;;3924:7;719:10:35;3735:165:29;719:10:35;;3756:21:29;:62;;;;;628:13658;3735:165;;:::i;:::-;3924:7;:::i;:::-;628:13658;3756:62;-1:-1:-1;;;;;628:13658:29;;;;;4623:18;628:13658;;;;;4623:35;;-1:-1:-1;4623:35:29;;719:10:35;;4623:25:29;628:13658;;;;;;;;;;;;;;;;4623:35;628:13658;;;;;4623:35;3756:62;;;628:13658;;;-1:-1:-1;;;628:13658:29;;;;;;;;;;;;;;;;;-1:-1:-1;;;628:13658:29;;;;;;;;;;;;;;;;-1:-1:-1;;;;;628:13658:29;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;5042:7;628:13658;;;:::i;:::-;719:10:35;4908:103:29;4916:41;719:10:35;;4916:41:29;:::i;:::-;4908:103;:::i;:::-;5042:7;:::i;628:13658::-;;;;5256:39;628:13658;;;:::i;:::-;;;;;;;;:::i;:::-;;;;5256:39;:::i;628:13658::-;;;;;;-1:-1:-1;;628:13658:29;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;628:13658:29;;;;-1:-1:-1;;;;;628:13658:29;;:::i;:::-;;2028:19;;628:13658;;-1:-1:-1;628:13658:29;;;;;;-1:-1:-1;628:13658:29;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;628:13658:29;;;;;;;;;;;;;;;;;-1:-1:-1;;;628:13658:29;;;;;;;;;;;;;;;;;;;;;;;;2738:7;628:13658;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2738:7;628:13658;;;-1:-1:-1;628:13658:29;;;;;;;;;;-1:-1:-1;;;628:13658:29;;;-1:-1:-1;628:13658:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;628:13658:29;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;628:13658:29;;;719:10:35;11616:17:29;;628:13658;;719:10:35;11673:35:29;:46;719:10:35;;-1:-1:-1;628:13658:29;11673:18;628:13658;;;-1:-1:-1;628:13658:29;;;;;;;;;;;;;;;;;11673:35;628:13658;;;;;;;;;;;;;;;11673:46;628:13658;;;;;;;719:10:35;;11734:41:29;;628:13658;;11734:41;628:13658;;;;-1:-1:-1;;;628:13658:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;628:13658:29;;;;:::o;:::-;;;;;;-1:-1:-1;;628:13658:29;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;628:13658:29;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;628:13658:29;;;;;;-1:-1:-1;628:13658:29;;;7248:7;628:13658;;;;;;-1:-1:-1;;;;;628:13658:29;7248:30;628:13658;;;;:::i;:::-;;;3054:25;:86;;3089:45;628:13658;3115:18;628:13658;3115:18;628:13658;3115:18;;:::i;:::-;628:13658;;3089:45;;;628:13658;3089:45;;628:13658;;:::i;:::-;;;:::i;:::-;3089:45;628:13658;;3089:45;;;;;;:::i;3054:86::-;628:13658;;;;;:::i;:::-;3054:86;;628:13658;;;-1:-1:-1;;;628:13658:29;;;;;;;;;;;;;;;;;-1:-1:-1;;;628:13658:29;;;;;;;;;;;;;-1:-1:-1;;628:13658:29;;;;;;4623:35;628:13658;;:::i;:::-;;;:::i;:::-;-1:-1:-1;;;;;628:13658:29;;;-1:-1:-1;628:13658:29;;;4623:18;628:13658;;;;;;;;;;;;-1:-1:-1;628:13658:29;;;;;;;4623:35;628:13658;;;;;;;;;;2191:235;-1:-1:-1;628:13658:29;;;2298:7;628:13658;;;;;;-1:-1:-1;;;;;628:13658:29;2332:19;;628:13658;;2191:235;:::o;628:13658::-;;;-1:-1:-1;;;628:13658:29;;;;;;;;;;;;;;;;;-1:-1:-1;;;628:13658:29;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;628:13658:29;;:::o;:::-;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;:::o;:::-;;;-1:-1:-1;;;628:13658:29;;;;;;;;;;;;;;;;;;;;;;;;;4000:217;-1:-1:-1;628:13658:29;;;7248:7;628:13658;;;;;;-1:-1:-1;;;;;628:13658:29;7248:30;628:13658;;-1:-1:-1;628:13658:29;;;4186:15;628:13658;;;;;;-1:-1:-1;;;;;628:13658:29;;4000:217::o;628:13658::-;;;-1:-1:-1;;;628:13658:29;;;;;;;;;;;;;;;;;-1:-1:-1;;;628:13658:29;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;628:13658:29;;;;;;;;;;;;;;;;;-1:-1:-1;;;628:13658:29;;;;;;;5368:320;;6747:48;5368:320;;;5529:103;5537:41;719:10:35;;5537:41:29;:::i;5529:103::-;6721:7;;;;;:::i;:::-;6747:48;:::i;:::-;628:13658;;;5368:320::o;628:13658::-;;;-1:-1:-1;;;628:13658:29;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;628:13658:29;;;;;;:::o;7443:344::-;-1:-1:-1;628:13658:29;;;7248:7;628:13658;;;;;;-1:-1:-1;;;;;628:13658:29;7248:30;628:13658;;7651:23;;;:::i;:::-;628:13658;;;;;;;;;;;;;;7692:16;;:52;;;;;7443:344;7692:87;;;;;;7443:344;7684:96;;;7443:344;:::o;7692:87::-;7748:20;;;;;;:::i;:::-;628:13658;7748:31;7692:87;;;;;:52;-1:-1:-1;;;;;628:13658:29;;;;;4623:18;628:13658;;;;;4623:25;;-1:-1:-1;628:13658:29;;4623:35;;:25;;628:13658;4623:35;628:13658;;7692:52;;;;;628:13658;;;-1:-1:-1;;;628:13658:29;;;;;;;;;;;;;;;;;-1:-1:-1;;;628:13658:29;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;628:13658:29;;;;;;;;;;;;;;;;;-1:-1:-1;;;628:13658:29;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;628:13658:29;;;;;;;;:::o;:::-;;:::i;:::-;;10899:1;628:13658;;;;;;;:::o;:::-;932:2:37;628:13658:29;;;932:2:37;628:13658:29;;;:::o;10453:605::-;;10580:23;;;:::i;:::-;-1:-1:-1;;;;;628:13658:29;;;;;;;;10580:31;;;628:13658;;10880:15;10938:21;628:13658;;;10671:16;10663:65;10671:16;;;10663:65;:::i;:::-;10861:7;;;:::i;:::-;-1:-1:-1;;;;;628:13658:29;;;;;10880:9;628:13658;;;;;;;10880:15;:20;628:13658;;10880:20;:::i;:::-;628:13658;;-1:-1:-1;;;;;628:13658:29;;;;;;10880:9;628:13658;;;;;10910:18;628:13658;;10910:18;:::i;:::-;628:13658;;10938:16;;628:13658;;10938:7;628:13658;;;;;;;10938:16;628:13658;;-1:-1:-1;;;;;;628:13658:29;-1:-1:-1;;;;;628:13658:29;;;;;;;;;;10938:21;10975:27;10685:1;10975:27;;10453:605::o;628:13658::-;;;-1:-1:-1;;;628:13658:29;;;;;;;;;;;;;;;;;-1:-1:-1;;;628:13658:29;;;;;;;11169:171;628:13658;;;;11243:15;628:13658;;;;;;;-1:-1:-1;;;;;;628:13658:29;;;-1:-1:-1;;;;;11296:23:29;628:13658;11296:23;:::i;:::-;628:13658;11287:46;;;;11169:171::o;:::-;-1:-1:-1;628:13658:29;;;11243:15;628:13658;;;;;;;-1:-1:-1;;;;;;628:13658:29;-1:-1:-1;;;;;628:13658:29;;;;;-1:-1:-1;;;;;628:13658:29;11296:23;;;:::i;:::-;628:13658;;;11287:46;;-1:-1:-1;11287:46:29;;11169:171::o;628:13658::-;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;628:13658:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;628:13658:29;;;;:::o;:::-;;;:::o;12335:778::-;;;;;1465:19:34;;:23;12505:15:29;;12540:72;628:13658;12540:72;628:13658;;;;;;;;;;;;;12540:72;;;;719:10:35;12540:72:29;;;;:::i;:::-;;;-1:-1:-1;;;;;628:13658:29;12540:72;;628:13658;;12540:72;;;12501:606;-1:-1:-1;12536:519:29;;12729:326;;:::i;:::-;628:13658;;;12779:18;;;628:13658;;-1:-1:-1;;;12821:60:29;;628:13658;12821:60;12540:72;12821:60;;;:::i;12775:266::-;12540:72;12928:95;;12536:519;-1:-1:-1;;;;;;628:13658:29;12662:51;;12655:58::o;12540:72::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;12501:606;13085:11;;;;13092:4;13085:11;:::o;628:13658::-;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;328:703:37;601:10;;597:51;;610:1;657:20;610:1;657:20;;718:9;;;817:17;;;;:::i;:::-;844:150;851:10;;;1003:21;;;328:703;:::o;844:150::-;877:11;;;:::i;:::-;773:2;;628:13658:29;919:39:37;926:31;932:24;628:13658:29;;;932:24:37;:::i;:::-;628:13658:29;;;;926:31:37;628:13658:29;;-1:-1:-1;;;;;;628:13658:29;;;919:39:37;902:56;;;;;;:::i;:::-;;628:13658:29;844:150:37;;;;711:75;628:13658:29;-1:-1:-1;;;628:13658:29;;;;;773:2:37;628:13658:29;;;;711:75:37;;;;;;597:51;628:13658:29;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;628:13658:29;;;;627:10:37;:::o"},"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"}},"metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"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\":\"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\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"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\":\"\",\"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\":\"nonpayable\",\"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\":\"nonpayable\",\"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\":\"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\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including the Metadata extension, but not including the Enumerable extension, which is available separately as {ERC721Enumerable}.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"constructor\":{\"details\":\"Initializes the contract by setting a `name` and a `symbol` to the token collection.\"},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":\"ERC721\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x921f012325281f7d81e29c53a13824cf6c2c5d77232065d0d4f3f912e97af6ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7dbcedc364fce0ab5e54d21d4cbd91a97959f52c0674cf5c36a314bb58308f62\",\"dweb:/ipfs/QmfYpqHKtu3bSQ9FGvLwzdxRNykStpVPtoLNTaM1KBKj6E\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x0d4de01fe5360c38b4ad2b0822a12722958428f5138a7ff47c1720eb6fa52bba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77724cecdfba8814632ab58737c2b0f2d4ad2d532bc614aee559b5593c1152f0\",\"dweb:/ipfs/QmUcE6gXyv7CQh4sUdcDABYKGTovTe1zLMZSEq95nkc3ph\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146\",\"dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x2ccf9d2313a313d41a791505f2b5abfdc62191b5d4334f7f7a82691c088a1c87\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3a57d0854b2fdce6ebff933a48dca2445643d1eccfc27f00292e937f26c6a58\",\"dweb:/ipfs/QmW45rZooS9TqR4YXUbjRbtf2Bpb5ouSarBvfW1LdGprvV\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x32c202bd28995dd20c4347b7c6467a6d3241c74c8ad3edcbb610cd9205916c45\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8179c356adb19e70d6b31a1eedc8c5c7f0c00e669e2540f4099e3844c6074d30\",\"dweb:/ipfs/QmWFbivarEobbqhS1go64ootVuHfVohBseerYy9FTEd1W2\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC721/IERC721.sol":{"IERC721":{"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":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"operator","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":"owner","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":"nonpayable","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":"nonpayable","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":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"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"}},"metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"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\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"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\":\"owner\",\"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\":\"nonpayable\",\"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\":\"nonpayable\",\"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\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Required interface of an ERC721 compliant contract.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":\"IERC721\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x0d4de01fe5360c38b4ad2b0822a12722958428f5138a7ff47c1720eb6fa52bba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77724cecdfba8814632ab58737c2b0f2d4ad2d532bc614aee559b5593c1152f0\",\"dweb:/ipfs/QmUcE6gXyv7CQh4sUdcDABYKGTovTe1zLMZSEq95nkc3ph\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol":{"IERC721Receiver":{"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"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"onERC721Received(address,address,uint256,bytes)":"150b7a02"}},"metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"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\":\"Interface for any contract that wants to support safeTransfers from ERC721 asset contracts.\",\"kind\":\"dev\",\"methods\":{\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} by `operator` from `from`, this function is called. It must return its Solidity selector to confirm the token transfer. If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`.\"}},\"title\":\"ERC721 token receiver interface\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":\"IERC721Receiver\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol":{"ERC721URIStorage":{"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":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"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":"","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":"nonpayable","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":"nonpayable","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":"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":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"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"}},"metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"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\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"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\":\"\",\"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\":\"nonpayable\",\"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\":\"nonpayable\",\"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\":\"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\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"ERC721 token with storage based token URI management.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol\":\"ERC721URIStorage\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x921f012325281f7d81e29c53a13824cf6c2c5d77232065d0d4f3f912e97af6ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7dbcedc364fce0ab5e54d21d4cbd91a97959f52c0674cf5c36a314bb58308f62\",\"dweb:/ipfs/QmfYpqHKtu3bSQ9FGvLwzdxRNykStpVPtoLNTaM1KBKj6E\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x0d4de01fe5360c38b4ad2b0822a12722958428f5138a7ff47c1720eb6fa52bba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77724cecdfba8814632ab58737c2b0f2d4ad2d532bc614aee559b5593c1152f0\",\"dweb:/ipfs/QmUcE6gXyv7CQh4sUdcDABYKGTovTe1zLMZSEq95nkc3ph\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol\":{\"keccak256\":\"0x1cbe42915bc66227970fe99bc0f783eb1de30f2b48f984af01ad45edb9658698\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2baa08eb67d9da46e6c4c049f17b7684a1c68c5268d0f466cfa0eb23ce2bf9b0\",\"dweb:/ipfs/Qmdnj8zj4PfErB2HM2eKmDt7FrqrhggsZ6Qd8MpD593tgj\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146\",\"dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x2ccf9d2313a313d41a791505f2b5abfdc62191b5d4334f7f7a82691c088a1c87\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3a57d0854b2fdce6ebff933a48dca2445643d1eccfc27f00292e937f26c6a58\",\"dweb:/ipfs/QmW45rZooS9TqR4YXUbjRbtf2Bpb5ouSarBvfW1LdGprvV\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x32c202bd28995dd20c4347b7c6467a6d3241c74c8ad3edcbb610cd9205916c45\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8179c356adb19e70d6b31a1eedc8c5c7f0c00e669e2540f4099e3844c6074d30\",\"dweb:/ipfs/QmWFbivarEobbqhS1go64ootVuHfVohBseerYy9FTEd1W2\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"IERC721Metadata":{"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":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"operator","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":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","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":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","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":"nonpayable","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":"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":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"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"}},"metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"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\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"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\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"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\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\":\"nonpayable\",\"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\":\"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\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"See https://eips.ethereum.org/EIPS/eip-721\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"name()\":{\"details\":\"Returns the token collection name.\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"symbol()\":{\"details\":\"Returns the token collection symbol.\"},\"tokenURI(uint256)\":{\"details\":\"Returns the Uniform Resource Identifier (URI) for `tokenId` token.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"title\":\"ERC-721 Non-Fungible Token Standard, optional metadata extension\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":\"IERC721Metadata\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x0d4de01fe5360c38b4ad2b0822a12722958428f5138a7ff47c1720eb6fa52bba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77724cecdfba8814632ab58737c2b0f2d4ad2d532bc614aee559b5593c1152f0\",\"dweb:/ipfs/QmUcE6gXyv7CQh4sUdcDABYKGTovTe1zLMZSEq95nkc3ph\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146\",\"dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/Address.sol":{"Address":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220ac43faee7ca38d4cdd1c70b68eaef36126725ad73108bf35bfdddf3a813602f964736f6c63430008120033","opcodes":"PUSH1 0x80 DUP1 PUSH1 0x40 MSTORE CALLVALUE PUSH1 0x17 JUMPI PUSH1 0x3A SWAP1 DUP2 PUSH1 0x1D DUP3 CODECOPY ADDRESS DUP2 POP POP RETURN JUMPDEST PUSH1 0x0 DUP1 REVERT INVALID PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xAC NUMBER STATICCALL 0xEE PUSH29 0xA38D4CDD1C70B68EAEF36126725AD73108BF35BFDDDF3A813602F96473 PUSH16 0x6C634300081200330000000000000000 ","sourceMap":"194:8061:34:-:0;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"600080fdfea2646970667358221220ac43faee7ca38d4cdd1c70b68eaef36126725ad73108bf35bfdddf3a813602f964736f6c63430008120033","opcodes":"PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xAC NUMBER STATICCALL 0xEE PUSH29 0xA38D4CDD1C70B68EAEF36126725AD73108BF35BFDDDF3A813602F96473 PUSH16 0x6C634300081200330000000000000000 ","sourceMap":"194:8061:34:-:0;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"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\":{\"@openzeppelin/contracts/utils/Address.sol\":\"Address\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x2ccf9d2313a313d41a791505f2b5abfdc62191b5d4334f7f7a82691c088a1c87\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3a57d0854b2fdce6ebff933a48dca2445643d1eccfc27f00292e937f26c6a58\",\"dweb:/ipfs/QmW45rZooS9TqR4YXUbjRbtf2Bpb5ouSarBvfW1LdGprvV\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/Context.sol":{"Context":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"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\":{\"@openzeppelin/contracts/utils/Context.sol\":\"Context\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/Counters.sol":{"Counters":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea26469706673582212201ab5e9bac94912824cc03ae7702411d9f1763cc09f043182d066a3951912758964736f6c63430008120033","opcodes":"PUSH1 0x80 DUP1 PUSH1 0x40 MSTORE CALLVALUE PUSH1 0x17 JUMPI PUSH1 0x3A SWAP1 DUP2 PUSH1 0x1D DUP3 CODECOPY ADDRESS DUP2 POP POP RETURN JUMPDEST PUSH1 0x0 DUP1 REVERT INVALID PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 BYTE 0xB5 0xE9 0xBA 0xC9 0x49 SLT DUP3 0x4C 0xC0 GASPRICE 0xE7 PUSH17 0x2411D9F1763CC09F043182D066A3951912 PUSH22 0x8964736F6C6343000812003300000000000000000000 ","sourceMap":"424:971:36:-:0;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"600080fdfea26469706673582212201ab5e9bac94912824cc03ae7702411d9f1763cc09f043182d066a3951912758964736f6c63430008120033","opcodes":"PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 BYTE 0xB5 0xE9 0xBA 0xC9 0x49 SLT DUP3 0x4C 0xC0 GASPRICE 0xE7 PUSH17 0x2411D9F1763CC09F043182D066A3951912 PUSH22 0x8964736F6C6343000812003300000000000000000000 ","sourceMap":"424:971:36:-:0;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"Matt Condon (@shrugs)\",\"details\":\"Provides counters that can only be incremented, decremented or reset. This can be used e.g. to track the number of elements in a mapping, issuing ERC721 ids, or counting request ids. Include with `using Counters for Counters.Counter;`\",\"kind\":\"dev\",\"methods\":{},\"title\":\"Counters\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Counters.sol\":\"Counters\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@openzeppelin/contracts/utils/Counters.sol\":{\"keccak256\":\"0xf0018c2440fbe238dd3a8732fa8e17a0f9dce84d31451dc8a32f6d62b349c9f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59e1c62884d55b70f3ae5432b44bb3166ad71ae3acd19c57ab6ddc3c87c325ee\",\"dweb:/ipfs/QmezuXg5GK5oeA4F91EZhozBFekhq5TD966bHPH18cCqhu\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/Strings.sol":{"Strings":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220dd915b48356224801e0798b666bc79756a6226faf0c5e85aea7d83184b1a65df64736f6c63430008120033","opcodes":"PUSH1 0x80 DUP1 PUSH1 0x40 MSTORE CALLVALUE PUSH1 0x17 JUMPI PUSH1 0x3A SWAP1 DUP2 PUSH1 0x1D DUP3 CODECOPY ADDRESS DUP2 POP POP RETURN JUMPDEST PUSH1 0x0 DUP1 REVERT INVALID PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDD SWAP2 JUMPDEST BASEFEE CALLDATALOAD PUSH3 0x24801E SMOD SWAP9 0xB6 PUSH7 0xBC79756A6226FA CREATE 0xC5 0xE8 GAS 0xEA PUSH30 0x83184B1A65DF64736F6C6343000812003300000000000000000000000000 ","sourceMap":"146:1885:37:-:0;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"600080fdfea2646970667358221220dd915b48356224801e0798b666bc79756a6226faf0c5e85aea7d83184b1a65df64736f6c63430008120033","opcodes":"PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDD SWAP2 JUMPDEST BASEFEE CALLDATALOAD PUSH3 0x24801E SMOD SWAP9 0xB6 PUSH7 0xBC79756A6226FA CREATE 0xC5 0xE8 GAS 0xEA PUSH30 0x83184B1A65DF64736F6C6343000812003300000000000000000000000000 ","sourceMap":"146:1885:37:-:0;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"String operations.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Strings.sol\":\"Strings\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x32c202bd28995dd20c4347b7c6467a6d3241c74c8ad3edcbb610cd9205916c45\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8179c356adb19e70d6b31a1eedc8c5c7f0c00e669e2540f4099e3844c6074d30\",\"dweb:/ipfs/QmWFbivarEobbqhS1go64ootVuHfVohBseerYy9FTEd1W2\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/introspection/ERC165.sol":{"ERC165":{"abi":[{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC165} interface. Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check for the additional interface id that will be supported. For example: ```solidity function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId); } ``` Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":\"ERC165\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/introspection/IERC165.sol":{"IERC165":{"abi":[{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC165 standard, as defined in the https://eips.ethereum.org/EIPS/eip-165[EIP]. Implementers can declare support of contract interfaces, which can then be queried by others ({ERC165Checker}). For an implementation, see {ERC165}.\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":\"IERC165\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}"}},"contracts/Caller.sol":{"GCaller":{"abi":[{"inputs":[{"internalType":"address","name":"_callAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"callAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"myAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"newCallGreeter","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_greeting","type":"string"}],"name":"newSetGreet","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60803461013357601f61058138819003918201601f19168301916001600160401b038311848410176101385780849260209460405283398101031261013357516001600160a01b0381169081900361013357600254906001918281811c91168015610129575b602082101461011357601f81116100c6575b507f48692066726f6d2043616c6c657200000000000000000000000000000000001c600255600080546001600160a01b03199081163017909155825416179055604051610432908161014f8239f35b6002600052601f0160051c7f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace9081019083905b828110610107575050610077565b600081550183906100f9565b634e487b7160e01b600052602260045260246000fd5b90607f1690610065565b600080fd5b634e487b7160e01b600052604160045260246000fdfe608060408181526004908136101561001657600080fd5b600092833560e01c90816326b85ee114610335575080633e23ee431461030c57806349900eec1461013a576370225fc71461005057600080fd5b3461013657826003193601126101365760015481516335ed0a4760e21b815292849184919082906001600160a01b03165afa91821561012c5783926100a1575b81518061009d85826103d0565b0390f35b9091503d8084833e6100b38183610359565b8101906020818303126101245780519067ffffffffffffffff8211610128570181601f82011215610124578051936100ea85610391565b926100f785519485610359565b85845260208684010111610121575061009d9361011a91602080850191016103ad565b9038610090565b80fd5b8380fd5b8480fd5b81513d85823e3d90fd5b8280fd5b5082903461030857602092836003193601126101365767ffffffffffffffff81358181116101285736602382011215610128578083013561017a81610391565b9161018786519384610359565b81835236602483830101116103045781879260248a93018386013783010152805115610228578495505b6001546001600160a01b031690813b156102245785916101e5918651978880948193639698086b60e01b83528983016103d0565b03925af1801561021a576101f7578480f35b8311610207575052818080808480f35b634e487b7160e01b845260419052602483fd5b83513d87823e3d90fd5b8580fd5b5082518495600254600181811c9181811680156102fa575b84841081146102e7578386529081156102c95750600114610271575b50505061026c8186970382610359565b6101b1565b6002885291975086917f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace5b8284106102b65750505081869761026c928201019761025c565b80548585018b015292890192810161029c565b60ff1916858501525050151560051b820101955061026c818661025c565b634e487b7160e01b8a526022885260248afd5b92607f1692610240565b8680fd5b5080fd5b83823461030857816003193601126103085760015490516001600160a01b039091168152602090f35b84903461030857816003193601126103085790546001600160a01b03168152602090f35b90601f8019910116810190811067ffffffffffffffff82111761037b57604052565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff811161037b57601f01601f191660200190565b60005b8381106103c05750506000910152565b81810151838201526020016103b0565b604091602082526103f081518092816020860152602086860191016103ad565b601f01601f191601019056fea264697066735822122023ed7494a3c851b54638a538e10284a07eb2354f9ff1fd3f11d3ecdb081936c464736f6c63430008120033","opcodes":"PUSH1 0x80 CALLVALUE PUSH2 0x133 JUMPI PUSH1 0x1F PUSH2 0x581 CODESIZE DUP2 SWAP1 SUB SWAP2 DUP3 ADD PUSH1 0x1F NOT AND DUP4 ADD SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP4 GT DUP5 DUP5 LT OR PUSH2 0x138 JUMPI DUP1 DUP5 SWAP3 PUSH1 0x20 SWAP5 PUSH1 0x40 MSTORE DUP4 CODECOPY DUP2 ADD SUB SLT PUSH2 0x133 JUMPI MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND SWAP1 DUP2 SWAP1 SUB PUSH2 0x133 JUMPI PUSH1 0x2 SLOAD SWAP1 PUSH1 0x1 SWAP2 DUP3 DUP2 DUP2 SHR SWAP2 AND DUP1 ISZERO PUSH2 0x129 JUMPI JUMPDEST PUSH1 0x20 DUP3 LT EQ PUSH2 0x113 JUMPI PUSH1 0x1F DUP2 GT PUSH2 0xC6 JUMPI JUMPDEST POP PUSH32 0x48692066726F6D2043616C6C657200000000000000000000000000000000001C PUSH1 0x2 SSTORE PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 DUP2 AND ADDRESS OR SWAP1 SWAP2 SSTORE DUP3 SLOAD AND OR SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH2 0x432 SWAP1 DUP2 PUSH2 0x14F DUP3 CODECOPY RETURN JUMPDEST PUSH1 0x2 PUSH1 0x0 MSTORE PUSH1 0x1F ADD PUSH1 0x5 SHR PUSH32 0x405787FA12A823E0F2B7631CC41B3BA8828B3321CA811111FA75CD3AA3BB5ACE SWAP1 DUP2 ADD SWAP1 DUP4 SWAP1 JUMPDEST DUP3 DUP2 LT PUSH2 0x107 JUMPI POP POP PUSH2 0x77 JUMP JUMPDEST PUSH1 0x0 DUP2 SSTORE ADD DUP4 SWAP1 PUSH2 0xF9 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x7F AND SWAP1 PUSH2 0x65 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID PUSH1 0x80 PUSH1 0x40 DUP2 DUP2 MSTORE PUSH1 0x4 SWAP1 DUP2 CALLDATASIZE LT ISZERO PUSH2 0x16 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP3 DUP4 CALLDATALOAD PUSH1 0xE0 SHR SWAP1 DUP2 PUSH4 0x26B85EE1 EQ PUSH2 0x335 JUMPI POP DUP1 PUSH4 0x3E23EE43 EQ PUSH2 0x30C JUMPI DUP1 PUSH4 0x49900EEC EQ PUSH2 0x13A JUMPI PUSH4 0x70225FC7 EQ PUSH2 0x50 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE PUSH2 0x136 JUMPI DUP3 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x136 JUMPI PUSH1 0x1 SLOAD DUP2 MLOAD PUSH4 0x35ED0A47 PUSH1 0xE2 SHL DUP2 MSTORE SWAP3 DUP5 SWAP2 DUP5 SWAP2 SWAP1 DUP3 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND GAS STATICCALL SWAP2 DUP3 ISZERO PUSH2 0x12C JUMPI DUP4 SWAP3 PUSH2 0xA1 JUMPI JUMPDEST DUP2 MLOAD DUP1 PUSH2 0x9D DUP6 DUP3 PUSH2 0x3D0 JUMP JUMPDEST SUB SWAP1 RETURN JUMPDEST SWAP1 SWAP2 POP RETURNDATASIZE DUP1 DUP5 DUP4 RETURNDATACOPY PUSH2 0xB3 DUP2 DUP4 PUSH2 0x359 JUMP JUMPDEST DUP2 ADD SWAP1 PUSH1 0x20 DUP2 DUP4 SUB SLT PUSH2 0x124 JUMPI DUP1 MLOAD SWAP1 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT PUSH2 0x128 JUMPI ADD DUP2 PUSH1 0x1F DUP3 ADD SLT ISZERO PUSH2 0x124 JUMPI DUP1 MLOAD SWAP4 PUSH2 0xEA DUP6 PUSH2 0x391 JUMP JUMPDEST SWAP3 PUSH2 0xF7 DUP6 MLOAD SWAP5 DUP6 PUSH2 0x359 JUMP JUMPDEST DUP6 DUP5 MSTORE PUSH1 0x20 DUP7 DUP5 ADD ADD GT PUSH2 0x121 JUMPI POP PUSH2 0x9D SWAP4 PUSH2 0x11A SWAP2 PUSH1 0x20 DUP1 DUP6 ADD SWAP2 ADD PUSH2 0x3AD JUMP JUMPDEST SWAP1 CODESIZE PUSH2 0x90 JUMP JUMPDEST DUP1 REVERT JUMPDEST DUP4 DUP1 REVERT JUMPDEST DUP5 DUP1 REVERT JUMPDEST DUP2 MLOAD RETURNDATASIZE DUP6 DUP3 RETURNDATACOPY RETURNDATASIZE SWAP1 REVERT JUMPDEST DUP3 DUP1 REVERT JUMPDEST POP DUP3 SWAP1 CALLVALUE PUSH2 0x308 JUMPI PUSH1 0x20 SWAP3 DUP4 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x136 JUMPI PUSH8 0xFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD DUP2 DUP2 GT PUSH2 0x128 JUMPI CALLDATASIZE PUSH1 0x23 DUP3 ADD SLT ISZERO PUSH2 0x128 JUMPI DUP1 DUP4 ADD CALLDATALOAD PUSH2 0x17A DUP2 PUSH2 0x391 JUMP JUMPDEST SWAP2 PUSH2 0x187 DUP7 MLOAD SWAP4 DUP5 PUSH2 0x359 JUMP JUMPDEST DUP2 DUP4 MSTORE CALLDATASIZE PUSH1 0x24 DUP4 DUP4 ADD ADD GT PUSH2 0x304 JUMPI DUP2 DUP8 SWAP3 PUSH1 0x24 DUP11 SWAP4 ADD DUP4 DUP7 ADD CALLDATACOPY DUP4 ADD ADD MSTORE DUP1 MLOAD ISZERO PUSH2 0x228 JUMPI DUP5 SWAP6 POP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 DUP2 EXTCODESIZE ISZERO PUSH2 0x224 JUMPI DUP6 SWAP2 PUSH2 0x1E5 SWAP2 DUP7 MLOAD SWAP8 DUP9 DUP1 SWAP5 DUP2 SWAP4 PUSH4 0x9698086B PUSH1 0xE0 SHL DUP4 MSTORE DUP10 DUP4 ADD PUSH2 0x3D0 JUMP JUMPDEST SUB SWAP3 GAS CALL DUP1 ISZERO PUSH2 0x21A JUMPI PUSH2 0x1F7 JUMPI DUP5 DUP1 RETURN JUMPDEST DUP4 GT PUSH2 0x207 JUMPI POP MSTORE DUP2 DUP1 DUP1 DUP1 DUP5 DUP1 RETURN JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP5 MSTORE PUSH1 0x41 SWAP1 MSTORE PUSH1 0x24 DUP4 REVERT JUMPDEST DUP4 MLOAD RETURNDATASIZE DUP8 DUP3 RETURNDATACOPY RETURNDATASIZE SWAP1 REVERT JUMPDEST DUP6 DUP1 REVERT JUMPDEST POP DUP3 MLOAD DUP5 SWAP6 PUSH1 0x2 SLOAD PUSH1 0x1 DUP2 DUP2 SHR SWAP2 DUP2 DUP2 AND DUP1 ISZERO PUSH2 0x2FA JUMPI JUMPDEST DUP5 DUP5 LT DUP2 EQ PUSH2 0x2E7 JUMPI DUP4 DUP7 MSTORE SWAP1 DUP2 ISZERO PUSH2 0x2C9 JUMPI POP PUSH1 0x1 EQ PUSH2 0x271 JUMPI JUMPDEST POP POP POP PUSH2 0x26C DUP2 DUP7 SWAP8 SUB DUP3 PUSH2 0x359 JUMP JUMPDEST PUSH2 0x1B1 JUMP JUMPDEST PUSH1 0x2 DUP9 MSTORE SWAP2 SWAP8 POP DUP7 SWAP2 PUSH32 0x405787FA12A823E0F2B7631CC41B3BA8828B3321CA811111FA75CD3AA3BB5ACE JUMPDEST DUP3 DUP5 LT PUSH2 0x2B6 JUMPI POP POP POP DUP2 DUP7 SWAP8 PUSH2 0x26C SWAP3 DUP3 ADD ADD SWAP8 PUSH2 0x25C JUMP JUMPDEST DUP1 SLOAD DUP6 DUP6 ADD DUP12 ADD MSTORE SWAP3 DUP10 ADD SWAP3 DUP2 ADD PUSH2 0x29C JUMP JUMPDEST PUSH1 0xFF NOT AND DUP6 DUP6 ADD MSTORE POP POP ISZERO ISZERO PUSH1 0x5 SHL DUP3 ADD ADD SWAP6 POP PUSH2 0x26C DUP2 DUP7 PUSH2 0x25C JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP11 MSTORE PUSH1 0x22 DUP9 MSTORE PUSH1 0x24 DUP11 REVERT JUMPDEST SWAP3 PUSH1 0x7F AND SWAP3 PUSH2 0x240 JUMP JUMPDEST DUP7 DUP1 REVERT JUMPDEST POP DUP1 REVERT JUMPDEST DUP4 DUP3 CALLVALUE PUSH2 0x308 JUMPI DUP2 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x308 JUMPI PUSH1 0x1 SLOAD SWAP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 SWAP1 RETURN JUMPDEST DUP5 SWAP1 CALLVALUE PUSH2 0x308 JUMPI DUP2 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x308 JUMPI SWAP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 SWAP1 RETURN JUMPDEST SWAP1 PUSH1 0x1F DUP1 NOT SWAP2 ADD AND DUP2 ADD SWAP1 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR PUSH2 0x37B JUMPI PUSH1 0x40 MSTORE JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT PUSH2 0x37B JUMPI PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT PUSH2 0x3C0 JUMPI POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x3B0 JUMP JUMPDEST PUSH1 0x40 SWAP2 PUSH1 0x20 DUP3 MSTORE PUSH2 0x3F0 DUP2 MLOAD DUP1 SWAP3 DUP2 PUSH1 0x20 DUP7 ADD MSTORE PUSH1 0x20 DUP7 DUP7 ADD SWAP2 ADD PUSH2 0x3AD JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND ADD ADD SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x23 0xED PUSH21 0x94A3C851B54638A538E10284A07EB2354F9FF1FD3F GT 0xD3 0xEC 0xDB ADDMOD NOT CALLDATASIZE 0xC4 PUSH5 0x736F6C6343 STOP ADDMOD SLT STOP CALLER ","sourceMap":"210:650:40:-:0;;;;;;;;;;;;;-1:-1:-1;;210:650:40;;;;-1:-1:-1;;;;;210:650:40;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;210:650:40;;;;;;;;328:16;210:650;;;;;;;;;;;;;;-1:-1:-1;210:650:40;;;;;;;;;;;-1:-1:-1;;210:650:40;328:16;210:650;-1:-1:-1;210:650:40;;-1:-1:-1;;;;;;210:650:40;;;415:4;210:650;;;;;;;;;;;;;;;;;;;;328:16;-1:-1:-1;210:650:40;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;210:650:40;;;;;;;;;;;-1:-1:-1;210:650:40;;;;;-1:-1:-1;210:650:40;;;;;;;;;-1:-1:-1;210:650:40;;;;;;-1:-1:-1;210:650:40;;;;;-1:-1:-1;210:650:40"},"deployedBytecode":{"functionDebugData":{"abi_encode_string":{"entryPoint":976,"id":null,"parameterSlots":2,"returnSlots":1},"array_allocation_size_string":{"entryPoint":913,"id":null,"parameterSlots":1,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":941,"id":null,"parameterSlots":3,"returnSlots":0},"finalize_allocation":{"entryPoint":857,"id":null,"parameterSlots":2,"returnSlots":0}},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"608060408181526004908136101561001657600080fd5b600092833560e01c90816326b85ee114610335575080633e23ee431461030c57806349900eec1461013a576370225fc71461005057600080fd5b3461013657826003193601126101365760015481516335ed0a4760e21b815292849184919082906001600160a01b03165afa91821561012c5783926100a1575b81518061009d85826103d0565b0390f35b9091503d8084833e6100b38183610359565b8101906020818303126101245780519067ffffffffffffffff8211610128570181601f82011215610124578051936100ea85610391565b926100f785519485610359565b85845260208684010111610121575061009d9361011a91602080850191016103ad565b9038610090565b80fd5b8380fd5b8480fd5b81513d85823e3d90fd5b8280fd5b5082903461030857602092836003193601126101365767ffffffffffffffff81358181116101285736602382011215610128578083013561017a81610391565b9161018786519384610359565b81835236602483830101116103045781879260248a93018386013783010152805115610228578495505b6001546001600160a01b031690813b156102245785916101e5918651978880948193639698086b60e01b83528983016103d0565b03925af1801561021a576101f7578480f35b8311610207575052818080808480f35b634e487b7160e01b845260419052602483fd5b83513d87823e3d90fd5b8580fd5b5082518495600254600181811c9181811680156102fa575b84841081146102e7578386529081156102c95750600114610271575b50505061026c8186970382610359565b6101b1565b6002885291975086917f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace5b8284106102b65750505081869761026c928201019761025c565b80548585018b015292890192810161029c565b60ff1916858501525050151560051b820101955061026c818661025c565b634e487b7160e01b8a526022885260248afd5b92607f1692610240565b8680fd5b5080fd5b83823461030857816003193601126103085760015490516001600160a01b039091168152602090f35b84903461030857816003193601126103085790546001600160a01b03168152602090f35b90601f8019910116810190811067ffffffffffffffff82111761037b57604052565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff811161037b57601f01601f191660200190565b60005b8381106103c05750506000910152565b81810151838201526020016103b0565b604091602082526103f081518092816020860152602086860191016103ad565b601f01601f191601019056fea264697066735822122023ed7494a3c851b54638a538e10284a07eb2354f9ff1fd3f11d3ecdb081936c464736f6c63430008120033","opcodes":"PUSH1 0x80 PUSH1 0x40 DUP2 DUP2 MSTORE PUSH1 0x4 SWAP1 DUP2 CALLDATASIZE LT ISZERO PUSH2 0x16 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP3 DUP4 CALLDATALOAD PUSH1 0xE0 SHR SWAP1 DUP2 PUSH4 0x26B85EE1 EQ PUSH2 0x335 JUMPI POP DUP1 PUSH4 0x3E23EE43 EQ PUSH2 0x30C JUMPI DUP1 PUSH4 0x49900EEC EQ PUSH2 0x13A JUMPI PUSH4 0x70225FC7 EQ PUSH2 0x50 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE PUSH2 0x136 JUMPI DUP3 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x136 JUMPI PUSH1 0x1 SLOAD DUP2 MLOAD PUSH4 0x35ED0A47 PUSH1 0xE2 SHL DUP2 MSTORE SWAP3 DUP5 SWAP2 DUP5 SWAP2 SWAP1 DUP3 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND GAS STATICCALL SWAP2 DUP3 ISZERO PUSH2 0x12C JUMPI DUP4 SWAP3 PUSH2 0xA1 JUMPI JUMPDEST DUP2 MLOAD DUP1 PUSH2 0x9D DUP6 DUP3 PUSH2 0x3D0 JUMP JUMPDEST SUB SWAP1 RETURN JUMPDEST SWAP1 SWAP2 POP RETURNDATASIZE DUP1 DUP5 DUP4 RETURNDATACOPY PUSH2 0xB3 DUP2 DUP4 PUSH2 0x359 JUMP JUMPDEST DUP2 ADD SWAP1 PUSH1 0x20 DUP2 DUP4 SUB SLT PUSH2 0x124 JUMPI DUP1 MLOAD SWAP1 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT PUSH2 0x128 JUMPI ADD DUP2 PUSH1 0x1F DUP3 ADD SLT ISZERO PUSH2 0x124 JUMPI DUP1 MLOAD SWAP4 PUSH2 0xEA DUP6 PUSH2 0x391 JUMP JUMPDEST SWAP3 PUSH2 0xF7 DUP6 MLOAD SWAP5 DUP6 PUSH2 0x359 JUMP JUMPDEST DUP6 DUP5 MSTORE PUSH1 0x20 DUP7 DUP5 ADD ADD GT PUSH2 0x121 JUMPI POP PUSH2 0x9D SWAP4 PUSH2 0x11A SWAP2 PUSH1 0x20 DUP1 DUP6 ADD SWAP2 ADD PUSH2 0x3AD JUMP JUMPDEST SWAP1 CODESIZE PUSH2 0x90 JUMP JUMPDEST DUP1 REVERT JUMPDEST DUP4 DUP1 REVERT JUMPDEST DUP5 DUP1 REVERT JUMPDEST DUP2 MLOAD RETURNDATASIZE DUP6 DUP3 RETURNDATACOPY RETURNDATASIZE SWAP1 REVERT JUMPDEST DUP3 DUP1 REVERT JUMPDEST POP DUP3 SWAP1 CALLVALUE PUSH2 0x308 JUMPI PUSH1 0x20 SWAP3 DUP4 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x136 JUMPI PUSH8 0xFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD DUP2 DUP2 GT PUSH2 0x128 JUMPI CALLDATASIZE PUSH1 0x23 DUP3 ADD SLT ISZERO PUSH2 0x128 JUMPI DUP1 DUP4 ADD CALLDATALOAD PUSH2 0x17A DUP2 PUSH2 0x391 JUMP JUMPDEST SWAP2 PUSH2 0x187 DUP7 MLOAD SWAP4 DUP5 PUSH2 0x359 JUMP JUMPDEST DUP2 DUP4 MSTORE CALLDATASIZE PUSH1 0x24 DUP4 DUP4 ADD ADD GT PUSH2 0x304 JUMPI DUP2 DUP8 SWAP3 PUSH1 0x24 DUP11 SWAP4 ADD DUP4 DUP7 ADD CALLDATACOPY DUP4 ADD ADD MSTORE DUP1 MLOAD ISZERO PUSH2 0x228 JUMPI DUP5 SWAP6 POP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 DUP2 EXTCODESIZE ISZERO PUSH2 0x224 JUMPI DUP6 SWAP2 PUSH2 0x1E5 SWAP2 DUP7 MLOAD SWAP8 DUP9 DUP1 SWAP5 DUP2 SWAP4 PUSH4 0x9698086B PUSH1 0xE0 SHL DUP4 MSTORE DUP10 DUP4 ADD PUSH2 0x3D0 JUMP JUMPDEST SUB SWAP3 GAS CALL DUP1 ISZERO PUSH2 0x21A JUMPI PUSH2 0x1F7 JUMPI DUP5 DUP1 RETURN JUMPDEST DUP4 GT PUSH2 0x207 JUMPI POP MSTORE DUP2 DUP1 DUP1 DUP1 DUP5 DUP1 RETURN JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP5 MSTORE PUSH1 0x41 SWAP1 MSTORE PUSH1 0x24 DUP4 REVERT JUMPDEST DUP4 MLOAD RETURNDATASIZE DUP8 DUP3 RETURNDATACOPY RETURNDATASIZE SWAP1 REVERT JUMPDEST DUP6 DUP1 REVERT JUMPDEST POP DUP3 MLOAD DUP5 SWAP6 PUSH1 0x2 SLOAD PUSH1 0x1 DUP2 DUP2 SHR SWAP2 DUP2 DUP2 AND DUP1 ISZERO PUSH2 0x2FA JUMPI JUMPDEST DUP5 DUP5 LT DUP2 EQ PUSH2 0x2E7 JUMPI DUP4 DUP7 MSTORE SWAP1 DUP2 ISZERO PUSH2 0x2C9 JUMPI POP PUSH1 0x1 EQ PUSH2 0x271 JUMPI JUMPDEST POP POP POP PUSH2 0x26C DUP2 DUP7 SWAP8 SUB DUP3 PUSH2 0x359 JUMP JUMPDEST PUSH2 0x1B1 JUMP JUMPDEST PUSH1 0x2 DUP9 MSTORE SWAP2 SWAP8 POP DUP7 SWAP2 PUSH32 0x405787FA12A823E0F2B7631CC41B3BA8828B3321CA811111FA75CD3AA3BB5ACE JUMPDEST DUP3 DUP5 LT PUSH2 0x2B6 JUMPI POP POP POP DUP2 DUP7 SWAP8 PUSH2 0x26C SWAP3 DUP3 ADD ADD SWAP8 PUSH2 0x25C JUMP JUMPDEST DUP1 SLOAD DUP6 DUP6 ADD DUP12 ADD MSTORE SWAP3 DUP10 ADD SWAP3 DUP2 ADD PUSH2 0x29C JUMP JUMPDEST PUSH1 0xFF NOT AND DUP6 DUP6 ADD MSTORE POP POP ISZERO ISZERO PUSH1 0x5 SHL DUP3 ADD ADD SWAP6 POP PUSH2 0x26C DUP2 DUP7 PUSH2 0x25C JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP11 MSTORE PUSH1 0x22 DUP9 MSTORE PUSH1 0x24 DUP11 REVERT JUMPDEST SWAP3 PUSH1 0x7F AND SWAP3 PUSH2 0x240 JUMP JUMPDEST DUP7 DUP1 REVERT JUMPDEST POP DUP1 REVERT JUMPDEST DUP4 DUP3 CALLVALUE PUSH2 0x308 JUMPI DUP2 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x308 JUMPI PUSH1 0x1 SLOAD SWAP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 SWAP1 RETURN JUMPDEST DUP5 SWAP1 CALLVALUE PUSH2 0x308 JUMPI DUP2 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x308 JUMPI SWAP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 SWAP1 RETURN JUMPDEST SWAP1 PUSH1 0x1F DUP1 NOT SWAP2 ADD AND DUP2 ADD SWAP1 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR PUSH2 0x37B JUMPI PUSH1 0x40 MSTORE JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT PUSH2 0x37B JUMPI PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT PUSH2 0x3C0 JUMPI POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x3B0 JUMP JUMPDEST PUSH1 0x40 SWAP2 PUSH1 0x20 DUP3 MSTORE PUSH2 0x3F0 DUP2 MLOAD DUP1 SWAP3 DUP2 PUSH1 0x20 DUP7 ADD MSTORE PUSH1 0x20 DUP7 DUP7 ADD SWAP2 ADD PUSH2 0x3AD JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND ADD ADD SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x23 0xED PUSH21 0x94A3C851B54638A538E10284A07EB2354F9FF1FD3F GT 0xD3 0xEC 0xDB ADDMOD NOT CALLDATASIZE 0xC4 PUSH5 0x736F6C6343 STOP ADDMOD SLT STOP CALLER ","sourceMap":"210:650:40:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;815:36:40;;210:650;;;;;;;;-1:-1:-1;;;;;210:650:40;815:36;;;;;;;;;;;210:650;;;;;;;;:::i;:::-;;;;815:36;;;;;;;;;;;;;:::i;:::-;;;210:650;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;815:36;;;;210:650;;;;;;;;;;;815:36;210:650;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;615:24;614:56;;;;;;210:650;;-1:-1:-1;;;;;210:650:40;;680:41;;;;;210:650;;680:41;210:650;;;;;;;;;;;;680:41;;;;;;:::i;:::-;;;;;;;;;;;210:650;;;680:41;210:650;;;;;;680:41;;;;210:650;;;;-1:-1:-1;;;210:650:40;;;;;;;;680:41;210:650;;;;;;;;;680:41;210:650;;;614:56;210:650;;;;;655:15;210:650;;;;;;;;;;;;;614:56;210:650;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;614:56;;210:650;655:15;210:650;;;;-1:-1:-1;210:650:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;210:650:40;;;;;-1:-1:-1;;210:650:40;;;;;;;;-1:-1:-1;210:650:40;;;;;;-1:-1:-1;;;210:650:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;210:650:40;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;210:650:40;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;210:650:40;;;;:::o;:::-;;;;;;;;-1:-1:-1;;210:650:40;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;210:650:40;;;;:::o"},"methodIdentifiers":{"callAddress()":"3e23ee43","myAddress()":"26b85ee1","newCallGreeter()":"70225fc7","newSetGreet(string)":"49900eec"}},"metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_callAddress\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"callAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"myAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"newCallGreeter\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_greeting\",\"type\":\"string\"}],\"name\":\"newSetGreet\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Caller.sol\":\"GCaller\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"contracts/Caller.sol\":{\"keccak256\":\"0xacce13b84a5ad11718762299753c4c8443cf5532dc0c70a1e949da7b956f3a73\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://32761e9c6e61589e2bba1e4c553acb5741640c8a6dd12708d7f5581243f78795\",\"dweb:/ipfs/QmaMmTC3pQfP4fc7LVtjPkVLQa6YesfWja6nmSu23cmsqy\"]}},\"version\":1}"},"IGreeter2":{"abi":[{"inputs":[],"name":"callGreeter","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"greeting","type":"string"}],"name":"setGreet","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"callGreeter()":"d7b4291c","setGreet(string)":"9698086b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"callGreeter\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"greeting\",\"type\":\"string\"}],\"name\":\"setGreet\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Caller.sol\":\"IGreeter2\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"contracts/Caller.sol\":{\"keccak256\":\"0xacce13b84a5ad11718762299753c4c8443cf5532dc0c70a1e949da7b956f3a73\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://32761e9c6e61589e2bba1e4c553acb5741640c8a6dd12708d7f5581243f78795\",\"dweb:/ipfs/QmaMmTC3pQfP4fc7LVtjPkVLQa6YesfWja6nmSu23cmsqy\"]}},\"version\":1}"}},"contracts/Greeter.sol":{"Greeter":{"abi":[{"inputs":[{"internalType":"string","name":"_greeting","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"greeting","type":"string"}],"name":"SetGreeting","type":"event"},{"inputs":[],"name":"greet","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_greeting","type":"string"}],"name":"setGreeting","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"allocate_memory":{"entryPoint":506,"id":null,"parameterSlots":1,"returnSlots":1}},"generatedSources":[],"linkReferences":{},"object":"6080604052346101f55761066380380380610019816101fa565b928339810190602080828403126101f55781516001600160401b03928382116101f5570192601f908082860112156101f55784518481116101cb57601f1995610067828501881686016101fa565b928284528583830101116101f557849060005b8381106101e15750506000918301015280519384116101cb57600054926001938481811c911680156101c1575b828210146101ab57838111610165575b50809285116001146101005750839450908392916000946100f5575b50501b916000199060031b1c1916176000555b60405161044390816102208239f35b0151925038806100d3565b9294849081166000805284600020946000905b8883831061014b5750505010610132575b505050811b016000556100e6565b015160001960f88460031b161c19169055388080610124565b858701518855909601959485019487935090810190610113565b60008052816000208480880160051c8201928489106101a2575b0160051c019085905b8281106101965750506100b7565b60008155018590610188565b9250819261017f565b634e487b7160e01b600052602260045260246000fd5b90607f16906100a7565b634e487b7160e01b600052604160045260246000fd5b81810183015185820184015286920161007a565b600080fd5b6040519190601f01601f191682016001600160401b038111838210176101cb5760405256fe608080604052600436101561001357600080fd5b600090813560e01c908163a413686214610118575063cfae32171461003757600080fd5b3461011557806003193601126101155760405190808054610057816103d3565b808552916001918083169081156100eb5750600114610091575b61008d8561008181870382610352565b6040519182918261038a565b0390f35b80809450527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b8284106100d35750505081016020016100818261008d610071565b805460208587018101919091529093019281016100b8565b86955061008d9693506020925061008194915060ff191682840152151560051b8201019293610071565b80fd5b8234610115576020918260031936011261034e5760043567ffffffffffffffff9384821161034a573660238301121561034a57816004013585811161033657601f199261016c601f83018516840186610352565b81855236602483830101116103325781869260248593018388013785010152825194851161031e5761019e84546103d3565b601f81116102bd575b508091601f861160011461021757505090838394610206937f4dabe8361a35a905ec9d530e301d2e5c6cf44c65cdd7768f522a77a373436da9959161020c575b508160011b916000199060031b1c19161784556040519182918261038a565b0390a180f35b9050820151866101e7565b85929192168480527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5639285905b8282106102a5575050946102069392600192827f4dabe8361a35a905ec9d530e301d2e5c6cf44c65cdd7768f522a77a373436da997981061028c575b5050811b018455610081565b84015160001960f88460031b161c191690558680610280565b80600185968294968901518155019501930190610244565b8480527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563601f870160051c810191838810610314575b601f0160051c01905b81811061030957506101a7565b8581556001016102fc565b90915081906102f3565b634e487b7160e01b84526041600452602484fd5b8580fd5b634e487b7160e01b85526041600452602485fd5b8380fd5b5080fd5b90601f8019910116810190811067ffffffffffffffff82111761037457604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b8281106103bf57505060409293506000838284010152601f8019910116010190565b81810186015184820160400152850161039d565b90600182811c92168015610403575b60208310146103ed57565b634e487b7160e01b600052602260045260246000fd5b91607f16916103e256fea26469706673582212205202fe51dd83dc87143aaf4812eb74f95b34eec3501aa105dcaf98250fae7bda64736f6c63430008120033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE PUSH2 0x1F5 JUMPI PUSH2 0x663 DUP1 CODESIZE SUB DUP1 PUSH2 0x19 DUP2 PUSH2 0x1FA JUMP JUMPDEST SWAP3 DUP4 CODECOPY DUP2 ADD SWAP1 PUSH1 0x20 DUP1 DUP3 DUP5 SUB SLT PUSH2 0x1F5 JUMPI DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP3 DUP4 DUP3 GT PUSH2 0x1F5 JUMPI ADD SWAP3 PUSH1 0x1F SWAP1 DUP1 DUP3 DUP7 ADD SLT ISZERO PUSH2 0x1F5 JUMPI DUP5 MLOAD DUP5 DUP2 GT PUSH2 0x1CB JUMPI PUSH1 0x1F NOT SWAP6 PUSH2 0x67 DUP3 DUP6 ADD DUP9 AND DUP7 ADD PUSH2 0x1FA JUMP JUMPDEST SWAP3 DUP3 DUP5 MSTORE DUP6 DUP4 DUP4 ADD ADD GT PUSH2 0x1F5 JUMPI DUP5 SWAP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT PUSH2 0x1E1 JUMPI POP POP PUSH1 0x0 SWAP2 DUP4 ADD ADD MSTORE DUP1 MLOAD SWAP4 DUP5 GT PUSH2 0x1CB JUMPI PUSH1 0x0 SLOAD SWAP3 PUSH1 0x1 SWAP4 DUP5 DUP2 DUP2 SHR SWAP2 AND DUP1 ISZERO PUSH2 0x1C1 JUMPI JUMPDEST DUP3 DUP3 LT EQ PUSH2 0x1AB JUMPI DUP4 DUP2 GT PUSH2 0x165 JUMPI JUMPDEST POP DUP1 SWAP3 DUP6 GT PUSH1 0x1 EQ PUSH2 0x100 JUMPI POP DUP4 SWAP5 POP SWAP1 DUP4 SWAP3 SWAP2 PUSH1 0x0 SWAP5 PUSH2 0xF5 JUMPI JUMPDEST POP POP SHL SWAP2 PUSH1 0x0 NOT SWAP1 PUSH1 0x3 SHL SHR NOT AND OR PUSH1 0x0 SSTORE JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x443 SWAP1 DUP2 PUSH2 0x220 DUP3 CODECOPY RETURN JUMPDEST ADD MLOAD SWAP3 POP CODESIZE DUP1 PUSH2 0xD3 JUMP JUMPDEST SWAP3 SWAP5 DUP5 SWAP1 DUP2 AND PUSH1 0x0 DUP1 MSTORE DUP5 PUSH1 0x0 KECCAK256 SWAP5 PUSH1 0x0 SWAP1 JUMPDEST DUP9 DUP4 DUP4 LT PUSH2 0x14B JUMPI POP POP POP LT PUSH2 0x132 JUMPI JUMPDEST POP POP POP DUP2 SHL ADD PUSH1 0x0 SSTORE PUSH2 0xE6 JUMP JUMPDEST ADD MLOAD PUSH1 0x0 NOT PUSH1 0xF8 DUP5 PUSH1 0x3 SHL AND SHR NOT AND SWAP1 SSTORE CODESIZE DUP1 DUP1 PUSH2 0x124 JUMP JUMPDEST DUP6 DUP8 ADD MLOAD DUP9 SSTORE SWAP1 SWAP7 ADD SWAP6 SWAP5 DUP6 ADD SWAP5 DUP8 SWAP4 POP SWAP1 DUP2 ADD SWAP1 PUSH2 0x113 JUMP JUMPDEST PUSH1 0x0 DUP1 MSTORE DUP2 PUSH1 0x0 KECCAK256 DUP5 DUP1 DUP9 ADD PUSH1 0x5 SHR DUP3 ADD SWAP3 DUP5 DUP10 LT PUSH2 0x1A2 JUMPI JUMPDEST ADD PUSH1 0x5 SHR ADD SWAP1 DUP6 SWAP1 JUMPDEST DUP3 DUP2 LT PUSH2 0x196 JUMPI POP POP PUSH2 0xB7 JUMP JUMPDEST PUSH1 0x0 DUP2 SSTORE ADD DUP6 SWAP1 PUSH2 0x188 JUMP JUMPDEST SWAP3 POP DUP2 SWAP3 PUSH2 0x17F JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x7F AND SWAP1 PUSH2 0xA7 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD DUP5 ADD MSTORE DUP7 SWAP3 ADD PUSH2 0x7A JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MLOAD SWAP2 SWAP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP4 DUP3 LT OR PUSH2 0x1CB JUMPI PUSH1 0x40 MSTORE JUMP INVALID PUSH1 0x80 DUP1 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT ISZERO PUSH2 0x13 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP1 DUP2 CALLDATALOAD PUSH1 0xE0 SHR SWAP1 DUP2 PUSH4 0xA4136862 EQ PUSH2 0x118 JUMPI POP PUSH4 0xCFAE3217 EQ PUSH2 0x37 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE PUSH2 0x115 JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x115 JUMPI PUSH1 0x40 MLOAD SWAP1 DUP1 DUP1 SLOAD PUSH2 0x57 DUP2 PUSH2 0x3D3 JUMP JUMPDEST DUP1 DUP6 MSTORE SWAP2 PUSH1 0x1 SWAP2 DUP1 DUP4 AND SWAP1 DUP2 ISZERO PUSH2 0xEB JUMPI POP PUSH1 0x1 EQ PUSH2 0x91 JUMPI JUMPDEST PUSH2 0x8D DUP6 PUSH2 0x81 DUP2 DUP8 SUB DUP3 PUSH2 0x352 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP2 DUP3 SWAP2 DUP3 PUSH2 0x38A JUMP JUMPDEST SUB SWAP1 RETURN JUMPDEST DUP1 DUP1 SWAP5 POP MSTORE PUSH32 0x290DECD9548B62A8D60345A988386FC84BA6BC95484008F6362F93160EF3E563 JUMPDEST DUP3 DUP5 LT PUSH2 0xD3 JUMPI POP POP POP DUP2 ADD PUSH1 0x20 ADD PUSH2 0x81 DUP3 PUSH2 0x8D PUSH2 0x71 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x20 DUP6 DUP8 ADD DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 SWAP4 ADD SWAP3 DUP2 ADD PUSH2 0xB8 JUMP JUMPDEST DUP7 SWAP6 POP PUSH2 0x8D SWAP7 SWAP4 POP PUSH1 0x20 SWAP3 POP PUSH2 0x81 SWAP5 SWAP2 POP PUSH1 0xFF NOT AND DUP3 DUP5 ADD MSTORE ISZERO ISZERO PUSH1 0x5 SHL DUP3 ADD ADD SWAP3 SWAP4 PUSH2 0x71 JUMP JUMPDEST DUP1 REVERT JUMPDEST DUP3 CALLVALUE PUSH2 0x115 JUMPI PUSH1 0x20 SWAP2 DUP3 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x34E JUMPI PUSH1 0x4 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF SWAP4 DUP5 DUP3 GT PUSH2 0x34A JUMPI CALLDATASIZE PUSH1 0x23 DUP4 ADD SLT ISZERO PUSH2 0x34A JUMPI DUP2 PUSH1 0x4 ADD CALLDATALOAD DUP6 DUP2 GT PUSH2 0x336 JUMPI PUSH1 0x1F NOT SWAP3 PUSH2 0x16C PUSH1 0x1F DUP4 ADD DUP6 AND DUP5 ADD DUP7 PUSH2 0x352 JUMP JUMPDEST DUP2 DUP6 MSTORE CALLDATASIZE PUSH1 0x24 DUP4 DUP4 ADD ADD GT PUSH2 0x332 JUMPI DUP2 DUP7 SWAP3 PUSH1 0x24 DUP6 SWAP4 ADD DUP4 DUP9 ADD CALLDATACOPY DUP6 ADD ADD MSTORE DUP3 MLOAD SWAP5 DUP6 GT PUSH2 0x31E JUMPI PUSH2 0x19E DUP5 SLOAD PUSH2 0x3D3 JUMP JUMPDEST PUSH1 0x1F DUP2 GT PUSH2 0x2BD JUMPI JUMPDEST POP DUP1 SWAP2 PUSH1 0x1F DUP7 GT PUSH1 0x1 EQ PUSH2 0x217 JUMPI POP POP SWAP1 DUP4 DUP4 SWAP5 PUSH2 0x206 SWAP4 PUSH32 0x4DABE8361A35A905EC9D530E301D2E5C6CF44C65CDD7768F522A77A373436DA9 SWAP6 SWAP2 PUSH2 0x20C JUMPI JUMPDEST POP DUP2 PUSH1 0x1 SHL SWAP2 PUSH1 0x0 NOT SWAP1 PUSH1 0x3 SHL SHR NOT AND OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 DUP3 SWAP2 DUP3 PUSH2 0x38A JUMP JUMPDEST SUB SWAP1 LOG1 DUP1 RETURN JUMPDEST SWAP1 POP DUP3 ADD MLOAD DUP7 PUSH2 0x1E7 JUMP JUMPDEST DUP6 SWAP3 SWAP2 SWAP3 AND DUP5 DUP1 MSTORE PUSH32 0x290DECD9548B62A8D60345A988386FC84BA6BC95484008F6362F93160EF3E563 SWAP3 DUP6 SWAP1 JUMPDEST DUP3 DUP3 LT PUSH2 0x2A5 JUMPI POP POP SWAP5 PUSH2 0x206 SWAP4 SWAP3 PUSH1 0x1 SWAP3 DUP3 PUSH32 0x4DABE8361A35A905EC9D530E301D2E5C6CF44C65CDD7768F522A77A373436DA9 SWAP8 SWAP9 LT PUSH2 0x28C JUMPI JUMPDEST POP POP DUP2 SHL ADD DUP5 SSTORE PUSH2 0x81 JUMP JUMPDEST DUP5 ADD MLOAD PUSH1 0x0 NOT PUSH1 0xF8 DUP5 PUSH1 0x3 SHL AND SHR NOT AND SWAP1 SSTORE DUP7 DUP1 PUSH2 0x280 JUMP JUMPDEST DUP1 PUSH1 0x1 DUP6 SWAP7 DUP3 SWAP5 SWAP7 DUP10 ADD MLOAD DUP2 SSTORE ADD SWAP6 ADD SWAP4 ADD SWAP1 PUSH2 0x244 JUMP JUMPDEST DUP5 DUP1 MSTORE PUSH32 0x290DECD9548B62A8D60345A988386FC84BA6BC95484008F6362F93160EF3E563 PUSH1 0x1F DUP8 ADD PUSH1 0x5 SHR DUP2 ADD SWAP2 DUP4 DUP9 LT PUSH2 0x314 JUMPI JUMPDEST PUSH1 0x1F ADD PUSH1 0x5 SHR ADD SWAP1 JUMPDEST DUP2 DUP2 LT PUSH2 0x309 JUMPI POP PUSH2 0x1A7 JUMP JUMPDEST DUP6 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x2FC JUMP JUMPDEST SWAP1 SWAP2 POP DUP2 SWAP1 PUSH2 0x2F3 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP5 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 DUP5 REVERT JUMPDEST DUP6 DUP1 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP6 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 DUP6 REVERT JUMPDEST DUP4 DUP1 REVERT JUMPDEST POP DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x1F DUP1 NOT SWAP2 ADD AND DUP2 ADD SWAP1 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR PUSH2 0x374 JUMPI PUSH1 0x40 MSTORE JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP3 MLOAD DUP2 DUP4 ADD DUP2 SWAP1 MSTORE SWAP1 SWAP4 SWAP3 PUSH1 0x0 JUMPDEST DUP3 DUP2 LT PUSH2 0x3BF JUMPI POP POP PUSH1 0x40 SWAP3 SWAP4 POP PUSH1 0x0 DUP4 DUP3 DUP5 ADD ADD MSTORE PUSH1 0x1F DUP1 NOT SWAP2 ADD AND ADD ADD SWAP1 JUMP JUMPDEST DUP2 DUP2 ADD DUP7 ADD MLOAD DUP5 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP6 ADD PUSH2 0x39D JUMP JUMPDEST SWAP1 PUSH1 0x1 DUP3 DUP2 SHR SWAP3 AND DUP1 ISZERO PUSH2 0x403 JUMPI JUMPDEST PUSH1 0x20 DUP4 LT EQ PUSH2 0x3ED JUMPI JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP2 PUSH1 0x7F AND SWAP2 PUSH2 0x3E2 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 MSTORE MUL INVALID MLOAD 0xDD DUP4 0xDC DUP8 EQ GASPRICE 0xAF BASEFEE SLT 0xEB PUSH21 0xF95B34EEC3501AA105DCAF98250FAE7BDA64736F6C PUSH4 0x43000812 STOP CALLER ","sourceMap":"62:395:41:-:0;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;62:395:41;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;62:395:41;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;62:395:41;;;;;;;;-1:-1:-1;62:395:41;;;;;;;;;;;;-1:-1:-1;62:395:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;62:395:41;;;;;;;;;;;;;;;;;-1:-1:-1;62:395:41;;;;;;;;;;;;;;;-1:-1:-1;62:395:41;;;;;;;;;;;-1:-1:-1;62:395:41;;;-1:-1:-1;62:395:41;;-1:-1:-1;62:395:41;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;62:395:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;62:395:41;;;;;;;-1:-1:-1;62:395:41;;;-1:-1:-1;62:395:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;62:395:41;;;;;;;;;;;;;;;;;;-1:-1:-1;62:395:41;;;;;-1:-1:-1;62:395:41;;;;;;;;;;;;-1:-1:-1;62:395:41;;;;;-1:-1:-1;62:395:41;;;;;;;;;;;;;;;;;;;;-1:-1:-1;62:395:41;;;;;;;;;-1:-1:-1;;62:395:41;;;-1:-1:-1;;;;;62:395:41;;;;;;;;;;:::o"},"deployedBytecode":{"functionDebugData":{"abi_encode_string":{"entryPoint":906,"id":null,"parameterSlots":2,"returnSlots":1},"extract_byte_array_length":{"entryPoint":979,"id":null,"parameterSlots":1,"returnSlots":1},"finalize_allocation":{"entryPoint":850,"id":null,"parameterSlots":2,"returnSlots":0}},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"608080604052600436101561001357600080fd5b600090813560e01c908163a413686214610118575063cfae32171461003757600080fd5b3461011557806003193601126101155760405190808054610057816103d3565b808552916001918083169081156100eb5750600114610091575b61008d8561008181870382610352565b6040519182918261038a565b0390f35b80809450527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b8284106100d35750505081016020016100818261008d610071565b805460208587018101919091529093019281016100b8565b86955061008d9693506020925061008194915060ff191682840152151560051b8201019293610071565b80fd5b8234610115576020918260031936011261034e5760043567ffffffffffffffff9384821161034a573660238301121561034a57816004013585811161033657601f199261016c601f83018516840186610352565b81855236602483830101116103325781869260248593018388013785010152825194851161031e5761019e84546103d3565b601f81116102bd575b508091601f861160011461021757505090838394610206937f4dabe8361a35a905ec9d530e301d2e5c6cf44c65cdd7768f522a77a373436da9959161020c575b508160011b916000199060031b1c19161784556040519182918261038a565b0390a180f35b9050820151866101e7565b85929192168480527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5639285905b8282106102a5575050946102069392600192827f4dabe8361a35a905ec9d530e301d2e5c6cf44c65cdd7768f522a77a373436da997981061028c575b5050811b018455610081565b84015160001960f88460031b161c191690558680610280565b80600185968294968901518155019501930190610244565b8480527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563601f870160051c810191838810610314575b601f0160051c01905b81811061030957506101a7565b8581556001016102fc565b90915081906102f3565b634e487b7160e01b84526041600452602484fd5b8580fd5b634e487b7160e01b85526041600452602485fd5b8380fd5b5080fd5b90601f8019910116810190811067ffffffffffffffff82111761037457604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b8281106103bf57505060409293506000838284010152601f8019910116010190565b81810186015184820160400152850161039d565b90600182811c92168015610403575b60208310146103ed57565b634e487b7160e01b600052602260045260246000fd5b91607f16916103e256fea26469706673582212205202fe51dd83dc87143aaf4812eb74f95b34eec3501aa105dcaf98250fae7bda64736f6c63430008120033","opcodes":"PUSH1 0x80 DUP1 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT ISZERO PUSH2 0x13 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP1 DUP2 CALLDATALOAD PUSH1 0xE0 SHR SWAP1 DUP2 PUSH4 0xA4136862 EQ PUSH2 0x118 JUMPI POP PUSH4 0xCFAE3217 EQ PUSH2 0x37 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE PUSH2 0x115 JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x115 JUMPI PUSH1 0x40 MLOAD SWAP1 DUP1 DUP1 SLOAD PUSH2 0x57 DUP2 PUSH2 0x3D3 JUMP JUMPDEST DUP1 DUP6 MSTORE SWAP2 PUSH1 0x1 SWAP2 DUP1 DUP4 AND SWAP1 DUP2 ISZERO PUSH2 0xEB JUMPI POP PUSH1 0x1 EQ PUSH2 0x91 JUMPI JUMPDEST PUSH2 0x8D DUP6 PUSH2 0x81 DUP2 DUP8 SUB DUP3 PUSH2 0x352 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP2 DUP3 SWAP2 DUP3 PUSH2 0x38A JUMP JUMPDEST SUB SWAP1 RETURN JUMPDEST DUP1 DUP1 SWAP5 POP MSTORE PUSH32 0x290DECD9548B62A8D60345A988386FC84BA6BC95484008F6362F93160EF3E563 JUMPDEST DUP3 DUP5 LT PUSH2 0xD3 JUMPI POP POP POP DUP2 ADD PUSH1 0x20 ADD PUSH2 0x81 DUP3 PUSH2 0x8D PUSH2 0x71 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x20 DUP6 DUP8 ADD DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 SWAP4 ADD SWAP3 DUP2 ADD PUSH2 0xB8 JUMP JUMPDEST DUP7 SWAP6 POP PUSH2 0x8D SWAP7 SWAP4 POP PUSH1 0x20 SWAP3 POP PUSH2 0x81 SWAP5 SWAP2 POP PUSH1 0xFF NOT AND DUP3 DUP5 ADD MSTORE ISZERO ISZERO PUSH1 0x5 SHL DUP3 ADD ADD SWAP3 SWAP4 PUSH2 0x71 JUMP JUMPDEST DUP1 REVERT JUMPDEST DUP3 CALLVALUE PUSH2 0x115 JUMPI PUSH1 0x20 SWAP2 DUP3 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x34E JUMPI PUSH1 0x4 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF SWAP4 DUP5 DUP3 GT PUSH2 0x34A JUMPI CALLDATASIZE PUSH1 0x23 DUP4 ADD SLT ISZERO PUSH2 0x34A JUMPI DUP2 PUSH1 0x4 ADD CALLDATALOAD DUP6 DUP2 GT PUSH2 0x336 JUMPI PUSH1 0x1F NOT SWAP3 PUSH2 0x16C PUSH1 0x1F DUP4 ADD DUP6 AND DUP5 ADD DUP7 PUSH2 0x352 JUMP JUMPDEST DUP2 DUP6 MSTORE CALLDATASIZE PUSH1 0x24 DUP4 DUP4 ADD ADD GT PUSH2 0x332 JUMPI DUP2 DUP7 SWAP3 PUSH1 0x24 DUP6 SWAP4 ADD DUP4 DUP9 ADD CALLDATACOPY DUP6 ADD ADD MSTORE DUP3 MLOAD SWAP5 DUP6 GT PUSH2 0x31E JUMPI PUSH2 0x19E DUP5 SLOAD PUSH2 0x3D3 JUMP JUMPDEST PUSH1 0x1F DUP2 GT PUSH2 0x2BD JUMPI JUMPDEST POP DUP1 SWAP2 PUSH1 0x1F DUP7 GT PUSH1 0x1 EQ PUSH2 0x217 JUMPI POP POP SWAP1 DUP4 DUP4 SWAP5 PUSH2 0x206 SWAP4 PUSH32 0x4DABE8361A35A905EC9D530E301D2E5C6CF44C65CDD7768F522A77A373436DA9 SWAP6 SWAP2 PUSH2 0x20C JUMPI JUMPDEST POP DUP2 PUSH1 0x1 SHL SWAP2 PUSH1 0x0 NOT SWAP1 PUSH1 0x3 SHL SHR NOT AND OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 DUP3 SWAP2 DUP3 PUSH2 0x38A JUMP JUMPDEST SUB SWAP1 LOG1 DUP1 RETURN JUMPDEST SWAP1 POP DUP3 ADD MLOAD DUP7 PUSH2 0x1E7 JUMP JUMPDEST DUP6 SWAP3 SWAP2 SWAP3 AND DUP5 DUP1 MSTORE PUSH32 0x290DECD9548B62A8D60345A988386FC84BA6BC95484008F6362F93160EF3E563 SWAP3 DUP6 SWAP1 JUMPDEST DUP3 DUP3 LT PUSH2 0x2A5 JUMPI POP POP SWAP5 PUSH2 0x206 SWAP4 SWAP3 PUSH1 0x1 SWAP3 DUP3 PUSH32 0x4DABE8361A35A905EC9D530E301D2E5C6CF44C65CDD7768F522A77A373436DA9 SWAP8 SWAP9 LT PUSH2 0x28C JUMPI JUMPDEST POP POP DUP2 SHL ADD DUP5 SSTORE PUSH2 0x81 JUMP JUMPDEST DUP5 ADD MLOAD PUSH1 0x0 NOT PUSH1 0xF8 DUP5 PUSH1 0x3 SHL AND SHR NOT AND SWAP1 SSTORE DUP7 DUP1 PUSH2 0x280 JUMP JUMPDEST DUP1 PUSH1 0x1 DUP6 SWAP7 DUP3 SWAP5 SWAP7 DUP10 ADD MLOAD DUP2 SSTORE ADD SWAP6 ADD SWAP4 ADD SWAP1 PUSH2 0x244 JUMP JUMPDEST DUP5 DUP1 MSTORE PUSH32 0x290DECD9548B62A8D60345A988386FC84BA6BC95484008F6362F93160EF3E563 PUSH1 0x1F DUP8 ADD PUSH1 0x5 SHR DUP2 ADD SWAP2 DUP4 DUP9 LT PUSH2 0x314 JUMPI JUMPDEST PUSH1 0x1F ADD PUSH1 0x5 SHR ADD SWAP1 JUMPDEST DUP2 DUP2 LT PUSH2 0x309 JUMPI POP PUSH2 0x1A7 JUMP JUMPDEST DUP6 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x2FC JUMP JUMPDEST SWAP1 SWAP2 POP DUP2 SWAP1 PUSH2 0x2F3 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP5 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 DUP5 REVERT JUMPDEST DUP6 DUP1 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP6 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 DUP6 REVERT JUMPDEST DUP4 DUP1 REVERT JUMPDEST POP DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x1F DUP1 NOT SWAP2 ADD AND DUP2 ADD SWAP1 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR PUSH2 0x374 JUMPI PUSH1 0x40 MSTORE JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP3 MLOAD DUP2 DUP4 ADD DUP2 SWAP1 MSTORE SWAP1 SWAP4 SWAP3 PUSH1 0x0 JUMPDEST DUP3 DUP2 LT PUSH2 0x3BF JUMPI POP POP PUSH1 0x40 SWAP3 SWAP4 POP PUSH1 0x0 DUP4 DUP3 DUP5 ADD ADD MSTORE PUSH1 0x1F DUP1 NOT SWAP2 ADD AND ADD ADD SWAP1 JUMP JUMPDEST DUP2 DUP2 ADD DUP7 ADD MLOAD DUP5 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP6 ADD PUSH2 0x39D JUMP JUMPDEST SWAP1 PUSH1 0x1 DUP3 DUP2 SHR SWAP3 AND DUP1 ISZERO PUSH2 0x403 JUMPI JUMPDEST PUSH1 0x20 DUP4 LT EQ PUSH2 0x3ED JUMPI JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP2 PUSH1 0x7F AND SWAP2 PUSH2 0x3E2 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 MSTORE MUL INVALID MLOAD 0xDD DUP4 0xDC DUP8 EQ GASPRICE 0xAF BASEFEE SLT 0xEB PUSH21 0xF95B34EEC3501AA105DCAF98250FAE7BDA64736F6C PUSH4 0x43000812 STOP CALLER ","sourceMap":"62:395:41:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;62:395:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;62:395:41;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;426:22;62:395;426:22;62:395;;;;;;;;;;;;;;;;;;;;;;;426:22;;;;;:::i;:::-;;;;62:395;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;426:22;62:395;;;;;426:22;62:395;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;62:395:41;;;;;-1:-1:-1;;;62:395:41;;;;;;;;;;;;;-1:-1:-1;;;62:395:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;62:395:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;"},"methodIdentifiers":{"greet()":"cfae3217","setGreeting(string)":"a4136862"}},"metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_greeting\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"greeting\",\"type\":\"string\"}],\"name\":\"SetGreeting\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"greet\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_greeting\",\"type\":\"string\"}],\"name\":\"setGreeting\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Greeter.sol\":\"Greeter\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"contracts/Greeter.sol\":{\"keccak256\":\"0x375b6ab84b732f75ff95e85a809c665b17784764a5878ace7fde8f49940a89df\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://a5301bb97fe4994265c18bc74bb884c6803dee0f9189d12940b6a8a36db306d3\",\"dweb:/ipfs/QmbeTs6V2bRra1Kau41vJu45iNhrBNWz4DvMaRtnGRWDic\"]}},\"version\":1}"}},"contracts/L1.sol":{"L1":{"abi":[{"inputs":[{"internalType":"address","name":"_recipient","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":[{"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"}],"evm":{"bytecode":{"functionDebugData":{"allocate_memory":{"entryPoint":1002,"id":null,"parameterSlots":0,"returnSlots":1},"checked_add_uint256":{"entryPoint":1034,"id":null,"parameterSlots":1,"returnSlots":1}},"generatedSources":[],"linkReferences":{},"object":"608034620003e557601f19906001600160401b03601f62000cf4388190038281018616850184811186821017620002e957859282916040528339602094859181010312620003e557516001600160a01b0381169490859003620003e55762000066620003ea565b92600e84526d26189022a9219918103a37b5b2b760911b858501526200008b620003ea565b9360028552614c3160f01b86860152805190828211620002e95760039182546001928382811c92168015620003da575b8a831014620003c45781888493116200036e575b5089908883116001146200030b57600092620002ff575b505060001982851b1c191690821b1782555b8551928311620002e95760049586548281811c91168015620002de575b89821014620002c9578681116200027e575b50879086851160011462000215578495509084929160009562000209575b50501b92600019911b1c19161782555b8315620001c9578360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856200018e6002546200040a565b60025583835282815260408320620001a781546200040a565b9055604051683635c9adc5dea000008152a36040516108bc9081620004388239f35b6064926040519262461bcd60e51b845283015260248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152fd5b01519350388062000145565b9291948416928760005284896000209460005b8b898383106200026657505050106200024b575b50505050811b01825562000155565b01519060f884600019921b161c19169055388080806200023c565b86860151895590970196948501948893500162000228565b87600052886000208780870160051c8201928b8810620002bf575b0160051c019083905b828110620002b257505062000127565b60008155018390620002a2565b9250819262000299565b602288634e487b7160e01b6000525260246000fd5b90607f169062000115565b634e487b7160e01b600052604160045260246000fd5b015190503880620000e6565b908785941691866000528b6000209260005b8d8282106200035757505084116200033e575b505050811b018255620000f8565b015160001983871b60f8161c1916905538808062000330565b83850151865588979095019493840193016200031d565b90915084600052896000208880850160051c8201928c8610620003ba575b918691869594930160051c01915b828110620003aa575050620000cf565b600081558594508691016200039a565b925081926200038c565b634e487b7160e01b600052602260045260246000fd5b91607f1691620000bb565b600080fd5b60408051919082016001600160401b03811183821017620002e957604052565b90683635c9adc5dea0000082018092116200042157565b634e487b7160e01b600052601160045260246000fdfe608060408181526004918236101561001657600080fd5b600092833560e01c91826306fdde031461049657508163095ea7b31461046c57816318160ddd1461044d57816323b872dd14610383578163313ce56714610367578163395093511461031757816370a08231146102e057816395d89b41146101c1578163a457c2d71461011957508063a9059cbb146100e95763dd62ed3e1461009e57600080fd5b346100e557806003193601126100e557806020926100ba6105bb565b6100c26105d6565b6001600160a01b0391821683526001865283832091168252845220549051908152f35b5080fd5b50346100e557806003193601126100e5576020906101126101086105bb565b602435903361060f565b5160018152f35b905082346101be57826003193601126101be576101346105bb565b918360243592338152600160205281812060018060a01b038616825260205220549082821061016d576020856101128585038733610784565b608490602086519162461bcd60e51b8352820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152fd5b80fd5b8383346100e557816003193601126100e557805190828454600181811c908083169283156102d6575b60209384841081146102c3578388529081156102a75750600114610252575b505050829003601f01601f191682019267ffffffffffffffff84118385101761023f575082918261023b925282610572565b0390f35b634e487b7160e01b815260418552602490fd5b8787529192508591837f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b8385106102935750505050830101858080610209565b80548886018301529301928490820161027d565b60ff1916878501525050151560051b8401019050858080610209565b634e487b7160e01b895260228a52602489fd5b91607f16916101ea565b5050346100e55760203660031901126100e55760209181906001600160a01b036103086105bb565b16815280845220549051908152f35b5050346100e557806003193601126100e55761011260209261036061033a6105bb565b338352600186528483206001600160a01b038216845286529184902054602435906105ec565b9033610784565b5050346100e557816003193601126100e5576020905160128152f35b839150346100e55760603660031901126100e55761039f6105bb565b6103a76105d6565b91846044359460018060a01b0384168152600160205281812033825260205220549060001982036103e1575b60208661011287878761060f565b84821061040a57509183916103ff6020969561011295033383610784565b9193948193506103d3565b606490602087519162461bcd60e51b8352820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152fd5b5050346100e557816003193601126100e5576020906002549051908152f35b5050346100e557806003193601126100e55760209061011261048c6105bb565b6024359033610784565b8490843461056e578260031936011261056e5782600354600181811c90808316928315610564575b60209384841081146102c3578388529081156102a7575060011461050e57505050829003601f01601f191682019267ffffffffffffffff84118385101761023f575082918261023b925282610572565b600387529192508591837fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b8385106105505750505050830101858080610209565b80548886018301529301928490820161053a565b91607f16916104be565b8280fd5b6020808252825181830181905290939260005b8281106105a757505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610585565b600435906001600160a01b03821682036105d157565b600080fd5b602435906001600160a01b03821682036105d157565b919082018092116105f957565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b0390811691821561073157169182156106e05760008281528060205260408120549180831061068c57604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9587602096528286520382822055868152206106818282546105ec565b9055604051908152a3565b60405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608490fd5b60405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608490fd5b60405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608490fd5b6001600160a01b0390811691821561083557169182156107e55760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925918360005260018252604060002085600052825280604060002055604051908152a3565b60405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608490fd5b60405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608490fdfea2646970667358221220cfaaa9e37635652ffecb0d8e79a0f61f335cb5f3da036f0b3153d0031c12e19664736f6c63430008120033","opcodes":"PUSH1 0x80 CALLVALUE PUSH3 0x3E5 JUMPI PUSH1 0x1F NOT SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB PUSH1 0x1F PUSH3 0xCF4 CODESIZE DUP2 SWAP1 SUB DUP3 DUP2 ADD DUP7 AND DUP6 ADD DUP5 DUP2 GT DUP7 DUP3 LT OR PUSH3 0x2E9 JUMPI DUP6 SWAP3 DUP3 SWAP2 PUSH1 0x40 MSTORE DUP4 CODECOPY PUSH1 0x20 SWAP5 DUP6 SWAP2 DUP2 ADD SUB SLT PUSH3 0x3E5 JUMPI MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND SWAP5 SWAP1 DUP6 SWAP1 SUB PUSH3 0x3E5 JUMPI PUSH3 0x66 PUSH3 0x3EA JUMP JUMPDEST SWAP3 PUSH1 0xE DUP5 MSTORE PUSH14 0x26189022A9219918103A37B5B2B7 PUSH1 0x91 SHL DUP6 DUP6 ADD MSTORE PUSH3 0x8B PUSH3 0x3EA JUMP JUMPDEST SWAP4 PUSH1 0x2 DUP6 MSTORE PUSH2 0x4C31 PUSH1 0xF0 SHL DUP7 DUP7 ADD MSTORE DUP1 MLOAD SWAP1 DUP3 DUP3 GT PUSH3 0x2E9 JUMPI PUSH1 0x3 SWAP2 DUP3 SLOAD PUSH1 0x1 SWAP3 DUP4 DUP3 DUP2 SHR SWAP3 AND DUP1 ISZERO PUSH3 0x3DA JUMPI JUMPDEST DUP11 DUP4 LT EQ PUSH3 0x3C4 JUMPI DUP2 DUP9 DUP5 SWAP4 GT PUSH3 0x36E JUMPI JUMPDEST POP DUP10 SWAP1 DUP9 DUP4 GT PUSH1 0x1 EQ PUSH3 0x30B JUMPI PUSH1 0x0 SWAP3 PUSH3 0x2FF JUMPI JUMPDEST POP POP PUSH1 0x0 NOT DUP3 DUP6 SHL SHR NOT AND SWAP1 DUP3 SHL OR DUP3 SSTORE JUMPDEST DUP6 MLOAD SWAP3 DUP4 GT PUSH3 0x2E9 JUMPI PUSH1 0x4 SWAP6 DUP7 SLOAD DUP3 DUP2 DUP2 SHR SWAP2 AND DUP1 ISZERO PUSH3 0x2DE JUMPI JUMPDEST DUP10 DUP3 LT EQ PUSH3 0x2C9 JUMPI DUP7 DUP2 GT PUSH3 0x27E JUMPI JUMPDEST POP DUP8 SWAP1 DUP7 DUP6 GT PUSH1 0x1 EQ PUSH3 0x215 JUMPI DUP5 SWAP6 POP SWAP1 DUP5 SWAP3 SWAP2 PUSH1 0x0 SWAP6 PUSH3 0x209 JUMPI JUMPDEST POP POP SHL SWAP3 PUSH1 0x0 NOT SWAP2 SHL SHR NOT AND OR DUP3 SSTORE JUMPDEST DUP4 ISZERO PUSH3 0x1C9 JUMPI DUP4 PUSH1 0x0 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP6 PUSH3 0x18E PUSH1 0x2 SLOAD PUSH3 0x40A JUMP JUMPDEST PUSH1 0x2 SSTORE DUP4 DUP4 MSTORE DUP3 DUP2 MSTORE PUSH1 0x40 DUP4 KECCAK256 PUSH3 0x1A7 DUP2 SLOAD PUSH3 0x40A JUMP JUMPDEST SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH9 0x3635C9ADC5DEA00000 DUP2 MSTORE LOG3 PUSH1 0x40 MLOAD PUSH2 0x8BC SWAP1 DUP2 PUSH3 0x438 DUP3 CODECOPY RETURN JUMPDEST PUSH1 0x64 SWAP3 PUSH1 0x40 MLOAD SWAP3 PUSH3 0x461BCD PUSH1 0xE5 SHL DUP5 MSTORE DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A206D696E7420746F20746865207A65726F206164647265737300 PUSH1 0x44 DUP3 ADD MSTORE REVERT JUMPDEST ADD MLOAD SWAP4 POP CODESIZE DUP1 PUSH3 0x145 JUMP JUMPDEST SWAP3 SWAP2 SWAP5 DUP5 AND SWAP3 DUP8 PUSH1 0x0 MSTORE DUP5 DUP10 PUSH1 0x0 KECCAK256 SWAP5 PUSH1 0x0 JUMPDEST DUP12 DUP10 DUP4 DUP4 LT PUSH3 0x266 JUMPI POP POP POP LT PUSH3 0x24B JUMPI JUMPDEST POP POP POP POP DUP2 SHL ADD DUP3 SSTORE PUSH3 0x155 JUMP JUMPDEST ADD MLOAD SWAP1 PUSH1 0xF8 DUP5 PUSH1 0x0 NOT SWAP3 SHL AND SHR NOT AND SWAP1 SSTORE CODESIZE DUP1 DUP1 DUP1 PUSH3 0x23C JUMP JUMPDEST DUP7 DUP7 ADD MLOAD DUP10 SSTORE SWAP1 SWAP8 ADD SWAP7 SWAP5 DUP6 ADD SWAP5 DUP9 SWAP4 POP ADD PUSH3 0x228 JUMP JUMPDEST DUP8 PUSH1 0x0 MSTORE DUP9 PUSH1 0x0 KECCAK256 DUP8 DUP1 DUP8 ADD PUSH1 0x5 SHR DUP3 ADD SWAP3 DUP12 DUP9 LT PUSH3 0x2BF JUMPI JUMPDEST ADD PUSH1 0x5 SHR ADD SWAP1 DUP4 SWAP1 JUMPDEST DUP3 DUP2 LT PUSH3 0x2B2 JUMPI POP POP PUSH3 0x127 JUMP JUMPDEST PUSH1 0x0 DUP2 SSTORE ADD DUP4 SWAP1 PUSH3 0x2A2 JUMP JUMPDEST SWAP3 POP DUP2 SWAP3 PUSH3 0x299 JUMP JUMPDEST PUSH1 0x22 DUP9 PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x7F AND SWAP1 PUSH3 0x115 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADD MLOAD SWAP1 POP CODESIZE DUP1 PUSH3 0xE6 JUMP JUMPDEST SWAP1 DUP8 DUP6 SWAP5 AND SWAP2 DUP7 PUSH1 0x0 MSTORE DUP12 PUSH1 0x0 KECCAK256 SWAP3 PUSH1 0x0 JUMPDEST DUP14 DUP3 DUP3 LT PUSH3 0x357 JUMPI POP POP DUP5 GT PUSH3 0x33E JUMPI JUMPDEST POP POP POP DUP2 SHL ADD DUP3 SSTORE PUSH3 0xF8 JUMP JUMPDEST ADD MLOAD PUSH1 0x0 NOT DUP4 DUP8 SHL PUSH1 0xF8 AND SHR NOT AND SWAP1 SSTORE CODESIZE DUP1 DUP1 PUSH3 0x330 JUMP JUMPDEST DUP4 DUP6 ADD MLOAD DUP7 SSTORE DUP9 SWAP8 SWAP1 SWAP6 ADD SWAP5 SWAP4 DUP5 ADD SWAP4 ADD PUSH3 0x31D JUMP JUMPDEST SWAP1 SWAP2 POP DUP5 PUSH1 0x0 MSTORE DUP10 PUSH1 0x0 KECCAK256 DUP9 DUP1 DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP3 DUP13 DUP7 LT PUSH3 0x3BA JUMPI JUMPDEST SWAP2 DUP7 SWAP2 DUP7 SWAP6 SWAP5 SWAP4 ADD PUSH1 0x5 SHR ADD SWAP2 JUMPDEST DUP3 DUP2 LT PUSH3 0x3AA JUMPI POP POP PUSH3 0xCF JUMP JUMPDEST PUSH1 0x0 DUP2 SSTORE DUP6 SWAP5 POP DUP7 SWAP2 ADD PUSH3 0x39A JUMP JUMPDEST SWAP3 POP DUP2 SWAP3 PUSH3 0x38C JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP2 PUSH1 0x7F AND SWAP2 PUSH3 0xBB JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 SWAP1 DUP3 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP4 DUP3 LT OR PUSH3 0x2E9 JUMPI PUSH1 0x40 MSTORE JUMP JUMPDEST SWAP1 PUSH9 0x3635C9ADC5DEA00000 DUP3 ADD DUP1 SWAP3 GT PUSH3 0x421 JUMPI JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID PUSH1 0x80 PUSH1 0x40 DUP2 DUP2 MSTORE PUSH1 0x4 SWAP2 DUP3 CALLDATASIZE LT ISZERO PUSH2 0x16 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP3 DUP4 CALLDATALOAD PUSH1 0xE0 SHR SWAP2 DUP3 PUSH4 0x6FDDE03 EQ PUSH2 0x496 JUMPI POP DUP2 PUSH4 0x95EA7B3 EQ PUSH2 0x46C JUMPI DUP2 PUSH4 0x18160DDD EQ PUSH2 0x44D JUMPI DUP2 PUSH4 0x23B872DD EQ PUSH2 0x383 JUMPI DUP2 PUSH4 0x313CE567 EQ PUSH2 0x367 JUMPI DUP2 PUSH4 0x39509351 EQ PUSH2 0x317 JUMPI DUP2 PUSH4 0x70A08231 EQ PUSH2 0x2E0 JUMPI DUP2 PUSH4 0x95D89B41 EQ PUSH2 0x1C1 JUMPI DUP2 PUSH4 0xA457C2D7 EQ PUSH2 0x119 JUMPI POP DUP1 PUSH4 0xA9059CBB EQ PUSH2 0xE9 JUMPI PUSH4 0xDD62ED3E EQ PUSH2 0x9E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE PUSH2 0xE5 JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0xE5 JUMPI DUP1 PUSH1 0x20 SWAP3 PUSH2 0xBA PUSH2 0x5BB JUMP JUMPDEST PUSH2 0xC2 PUSH2 0x5D6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND DUP4 MSTORE PUSH1 0x1 DUP7 MSTORE DUP4 DUP4 KECCAK256 SWAP2 AND DUP3 MSTORE DUP5 MSTORE KECCAK256 SLOAD SWAP1 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST POP DUP1 REVERT JUMPDEST POP CALLVALUE PUSH2 0xE5 JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0xE5 JUMPI PUSH1 0x20 SWAP1 PUSH2 0x112 PUSH2 0x108 PUSH2 0x5BB JUMP JUMPDEST PUSH1 0x24 CALLDATALOAD SWAP1 CALLER PUSH2 0x60F JUMP JUMPDEST MLOAD PUSH1 0x1 DUP2 MSTORE RETURN JUMPDEST SWAP1 POP DUP3 CALLVALUE PUSH2 0x1BE JUMPI DUP3 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x1BE JUMPI PUSH2 0x134 PUSH2 0x5BB JUMP JUMPDEST SWAP2 DUP4 PUSH1 0x24 CALLDATALOAD SWAP3 CALLER DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE DUP2 DUP2 KECCAK256 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP7 AND DUP3 MSTORE PUSH1 0x20 MSTORE KECCAK256 SLOAD SWAP1 DUP3 DUP3 LT PUSH2 0x16D JUMPI PUSH1 0x20 DUP6 PUSH2 0x112 DUP6 DUP6 SUB DUP8 CALLER PUSH2 0x784 JUMP JUMPDEST PUSH1 0x84 SWAP1 PUSH1 0x20 DUP7 MLOAD SWAP2 PUSH3 0x461BCD PUSH1 0xE5 SHL DUP4 MSTORE DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE REVERT JUMPDEST DUP1 REVERT JUMPDEST DUP4 DUP4 CALLVALUE PUSH2 0xE5 JUMPI DUP2 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0xE5 JUMPI DUP1 MLOAD SWAP1 DUP3 DUP5 SLOAD PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP1 DUP4 AND SWAP3 DUP4 ISZERO PUSH2 0x2D6 JUMPI JUMPDEST PUSH1 0x20 SWAP4 DUP5 DUP5 LT DUP2 EQ PUSH2 0x2C3 JUMPI DUP4 DUP9 MSTORE SWAP1 DUP2 ISZERO PUSH2 0x2A7 JUMPI POP PUSH1 0x1 EQ PUSH2 0x252 JUMPI JUMPDEST POP POP POP DUP3 SWAP1 SUB PUSH1 0x1F ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP3 PUSH8 0xFFFFFFFFFFFFFFFF DUP5 GT DUP4 DUP6 LT OR PUSH2 0x23F JUMPI POP DUP3 SWAP2 DUP3 PUSH2 0x23B SWAP3 MSTORE DUP3 PUSH2 0x572 JUMP JUMPDEST SUB SWAP1 RETURN JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x41 DUP6 MSTORE PUSH1 0x24 SWAP1 REVERT JUMPDEST DUP8 DUP8 MSTORE SWAP2 SWAP3 POP DUP6 SWAP2 DUP4 PUSH32 0x8A35ACFBC15FF81A39AE7D344FD709F28E8600B4AA8C65C6B64BFE7FE36BD19B JUMPDEST DUP4 DUP6 LT PUSH2 0x293 JUMPI POP POP POP POP DUP4 ADD ADD DUP6 DUP1 DUP1 PUSH2 0x209 JUMP JUMPDEST DUP1 SLOAD DUP9 DUP7 ADD DUP4 ADD MSTORE SWAP4 ADD SWAP3 DUP5 SWAP1 DUP3 ADD PUSH2 0x27D JUMP JUMPDEST PUSH1 0xFF NOT AND DUP8 DUP6 ADD MSTORE POP POP ISZERO ISZERO PUSH1 0x5 SHL DUP5 ADD ADD SWAP1 POP DUP6 DUP1 DUP1 PUSH2 0x209 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP10 MSTORE PUSH1 0x22 DUP11 MSTORE PUSH1 0x24 DUP10 REVERT JUMPDEST SWAP2 PUSH1 0x7F AND SWAP2 PUSH2 0x1EA JUMP JUMPDEST POP POP CALLVALUE PUSH2 0xE5 JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0xE5 JUMPI PUSH1 0x20 SWAP2 DUP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH2 0x308 PUSH2 0x5BB JUMP JUMPDEST AND DUP2 MSTORE DUP1 DUP5 MSTORE KECCAK256 SLOAD SWAP1 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST POP POP CALLVALUE PUSH2 0xE5 JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0xE5 JUMPI PUSH2 0x112 PUSH1 0x20 SWAP3 PUSH2 0x360 PUSH2 0x33A PUSH2 0x5BB JUMP JUMPDEST CALLER DUP4 MSTORE PUSH1 0x1 DUP7 MSTORE DUP5 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND DUP5 MSTORE DUP7 MSTORE SWAP2 DUP5 SWAP1 KECCAK256 SLOAD PUSH1 0x24 CALLDATALOAD SWAP1 PUSH2 0x5EC JUMP JUMPDEST SWAP1 CALLER PUSH2 0x784 JUMP JUMPDEST POP POP CALLVALUE PUSH2 0xE5 JUMPI DUP2 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0xE5 JUMPI PUSH1 0x20 SWAP1 MLOAD PUSH1 0x12 DUP2 MSTORE RETURN JUMPDEST DUP4 SWAP2 POP CALLVALUE PUSH2 0xE5 JUMPI PUSH1 0x60 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0xE5 JUMPI PUSH2 0x39F PUSH2 0x5BB JUMP JUMPDEST PUSH2 0x3A7 PUSH2 0x5D6 JUMP JUMPDEST SWAP2 DUP5 PUSH1 0x44 CALLDATALOAD SWAP5 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP5 AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE DUP2 DUP2 KECCAK256 CALLER DUP3 MSTORE PUSH1 0x20 MSTORE KECCAK256 SLOAD SWAP1 PUSH1 0x0 NOT DUP3 SUB PUSH2 0x3E1 JUMPI JUMPDEST PUSH1 0x20 DUP7 PUSH2 0x112 DUP8 DUP8 DUP8 PUSH2 0x60F JUMP JUMPDEST DUP5 DUP3 LT PUSH2 0x40A JUMPI POP SWAP2 DUP4 SWAP2 PUSH2 0x3FF PUSH1 0x20 SWAP7 SWAP6 PUSH2 0x112 SWAP6 SUB CALLER DUP4 PUSH2 0x784 JUMP JUMPDEST SWAP2 SWAP4 SWAP5 DUP2 SWAP4 POP PUSH2 0x3D3 JUMP JUMPDEST PUSH1 0x64 SWAP1 PUSH1 0x20 DUP8 MLOAD SWAP2 PUSH3 0x461BCD PUSH1 0xE5 SHL DUP4 MSTORE DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH1 0x44 DUP3 ADD MSTORE REVERT JUMPDEST POP POP CALLVALUE PUSH2 0xE5 JUMPI DUP2 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0xE5 JUMPI PUSH1 0x20 SWAP1 PUSH1 0x2 SLOAD SWAP1 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST POP POP CALLVALUE PUSH2 0xE5 JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0xE5 JUMPI PUSH1 0x20 SWAP1 PUSH2 0x112 PUSH2 0x48C PUSH2 0x5BB JUMP JUMPDEST PUSH1 0x24 CALLDATALOAD SWAP1 CALLER PUSH2 0x784 JUMP JUMPDEST DUP5 SWAP1 DUP5 CALLVALUE PUSH2 0x56E JUMPI DUP3 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x56E JUMPI DUP3 PUSH1 0x3 SLOAD PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP1 DUP4 AND SWAP3 DUP4 ISZERO PUSH2 0x564 JUMPI JUMPDEST PUSH1 0x20 SWAP4 DUP5 DUP5 LT DUP2 EQ PUSH2 0x2C3 JUMPI DUP4 DUP9 MSTORE SWAP1 DUP2 ISZERO PUSH2 0x2A7 JUMPI POP PUSH1 0x1 EQ PUSH2 0x50E JUMPI POP POP POP DUP3 SWAP1 SUB PUSH1 0x1F ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP3 PUSH8 0xFFFFFFFFFFFFFFFF DUP5 GT DUP4 DUP6 LT OR PUSH2 0x23F JUMPI POP DUP3 SWAP2 DUP3 PUSH2 0x23B SWAP3 MSTORE DUP3 PUSH2 0x572 JUMP JUMPDEST PUSH1 0x3 DUP8 MSTORE SWAP2 SWAP3 POP DUP6 SWAP2 DUP4 PUSH32 0xC2575A0E9E593C00F959F8C92F12DB2869C3395A3B0502D05E2516446F71F85B JUMPDEST DUP4 DUP6 LT PUSH2 0x550 JUMPI POP POP POP POP DUP4 ADD ADD DUP6 DUP1 DUP1 PUSH2 0x209 JUMP JUMPDEST DUP1 SLOAD DUP9 DUP7 ADD DUP4 ADD MSTORE SWAP4 ADD SWAP3 DUP5 SWAP1 DUP3 ADD PUSH2 0x53A JUMP JUMPDEST SWAP2 PUSH1 0x7F AND SWAP2 PUSH2 0x4BE JUMP JUMPDEST DUP3 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP3 MLOAD DUP2 DUP4 ADD DUP2 SWAP1 MSTORE SWAP1 SWAP4 SWAP3 PUSH1 0x0 JUMPDEST DUP3 DUP2 LT PUSH2 0x5A7 JUMPI POP POP PUSH1 0x40 SWAP3 SWAP4 POP PUSH1 0x0 DUP4 DUP3 DUP5 ADD ADD MSTORE PUSH1 0x1F DUP1 NOT SWAP2 ADD AND ADD ADD SWAP1 JUMP JUMPDEST DUP2 DUP2 ADD DUP7 ADD MLOAD DUP5 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP6 ADD PUSH2 0x585 JUMP JUMPDEST PUSH1 0x4 CALLDATALOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND DUP3 SUB PUSH2 0x5D1 JUMPI JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x24 CALLDATALOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND DUP3 SUB PUSH2 0x5D1 JUMPI JUMP JUMPDEST SWAP2 SWAP1 DUP3 ADD DUP1 SWAP3 GT PUSH2 0x5F9 JUMPI JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND SWAP2 DUP3 ISZERO PUSH2 0x731 JUMPI AND SWAP2 DUP3 ISZERO PUSH2 0x6E0 JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE DUP1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD SWAP2 DUP1 DUP4 LT PUSH2 0x68C JUMPI PUSH1 0x40 DUP3 DUP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP6 DUP8 PUSH1 0x20 SWAP7 MSTORE DUP3 DUP7 MSTORE SUB DUP3 DUP3 KECCAK256 SSTORE DUP7 DUP2 MSTORE KECCAK256 PUSH2 0x681 DUP3 DUP3 SLOAD PUSH2 0x5EC JUMP JUMPDEST SWAP1 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE LOG3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND SWAP2 DUP3 ISZERO PUSH2 0x835 JUMPI AND SWAP2 DUP3 ISZERO PUSH2 0x7E5 JUMPI PUSH1 0x20 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 DUP4 PUSH1 0x0 MSTORE PUSH1 0x1 DUP3 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 DUP6 PUSH1 0x0 MSTORE DUP3 MSTORE DUP1 PUSH1 0x40 PUSH1 0x0 KECCAK256 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE LOG3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xCF 0xAA 0xA9 0xE3 PUSH23 0x35652FFECB0D8E79A0F61F335CB5F3DA036F0B3153D003 SHR SLT 0xE1 SWAP7 PUSH5 0x736F6C6343 STOP ADDMOD SLT STOP CALLER ","sourceMap":"119:208:42:-:0;;;;-1:-1:-1;;119:208:42;-1:-1:-1;;;;;119:208:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;119:208:42;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;119:208:42;;;;;;:::i;:::-;;;;;-1:-1:-1;;;119:208:42;;;;;;;;;;;;2044:13:25;119:208:42;;;;;;;;;;;;;;;-1:-1:-1;119:208:42;;;;;;;;;;;;;-1:-1:-1;119:208:42;;;;;;;;;;-1:-1:-1;119:208:42;;;;-1:-1:-1;;;;119:208:42;;;;;;;;;;;;;;;;;;;;2067:17:25;119:208:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;119:208:42;;;;;;;;;;;;;;;;;;;8494:21:25;;119:208:42;;;-1:-1:-1;8697:37:25;119:208:42;8622:22:25;119:208:42;;8622:22:25;:::i;:::-;119:208:42;;;;;;;;;;;8654:28:25;119:208:42;;8654:28:25;:::i;:::-;119:208:42;;;;181:17;119:208;;8697:37:25;119:208:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;119:208:42;;;;;;;;;;;;-1:-1:-1;119:208:42;;;-1:-1:-1;119:208:42;;-1:-1:-1;119:208:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;119:208:42;;;;;-1:-1:-1;119:208:42;;-1:-1:-1;119:208:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;119:208:42;;;;;;;;;;;;;;;;;;;;-1:-1:-1;119:208:42;;;-1:-1:-1;119:208:42;;;;;;;;;;;;-1:-1:-1;119:208:42;;2067:17:25;119:208:42;;-1:-1:-1;119:208:42;;;;;-1:-1:-1;119:208:42;;;;;;;;;;;;-1:-1:-1;119:208:42;;-1:-1:-1;119:208:42;;-1:-1:-1;119:208:42;;;;;;;;;;-1:-1:-1;119:208:42;;;;;;;;;;;;;;;;-1:-1:-1;;119:208:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;119:208:42;;-1:-1:-1;119:208:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;119:208:42;;;;-1:-1:-1;119:208:42;;;;;;;;;;;;;;;;-1:-1:-1;119:208:42;;;;;-1:-1:-1;119:208:42;;;;;;;;;-1:-1:-1;119:208:42;;;;;;;;;;-1:-1:-1;;;;;119:208:42;;;;;;;;;;:::o;:::-;;181:17;119:208;;;;;;;:::o;:::-;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"abi_decode_address":{"entryPoint":1494,"id":null,"parameterSlots":0,"returnSlots":1},"abi_decode_address_4723":{"entryPoint":1467,"id":null,"parameterSlots":0,"returnSlots":1},"abi_encode_string":{"entryPoint":1394,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_uint256":{"entryPoint":1516,"id":null,"parameterSlots":2,"returnSlots":1},"fun_approve":{"entryPoint":1924,"id":6270,"parameterSlots":3,"returnSlots":0},"fun_transfer":{"entryPoint":1551,"id":6097,"parameterSlots":3,"returnSlots":0}},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"608060408181526004918236101561001657600080fd5b600092833560e01c91826306fdde031461049657508163095ea7b31461046c57816318160ddd1461044d57816323b872dd14610383578163313ce56714610367578163395093511461031757816370a08231146102e057816395d89b41146101c1578163a457c2d71461011957508063a9059cbb146100e95763dd62ed3e1461009e57600080fd5b346100e557806003193601126100e557806020926100ba6105bb565b6100c26105d6565b6001600160a01b0391821683526001865283832091168252845220549051908152f35b5080fd5b50346100e557806003193601126100e5576020906101126101086105bb565b602435903361060f565b5160018152f35b905082346101be57826003193601126101be576101346105bb565b918360243592338152600160205281812060018060a01b038616825260205220549082821061016d576020856101128585038733610784565b608490602086519162461bcd60e51b8352820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152fd5b80fd5b8383346100e557816003193601126100e557805190828454600181811c908083169283156102d6575b60209384841081146102c3578388529081156102a75750600114610252575b505050829003601f01601f191682019267ffffffffffffffff84118385101761023f575082918261023b925282610572565b0390f35b634e487b7160e01b815260418552602490fd5b8787529192508591837f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b8385106102935750505050830101858080610209565b80548886018301529301928490820161027d565b60ff1916878501525050151560051b8401019050858080610209565b634e487b7160e01b895260228a52602489fd5b91607f16916101ea565b5050346100e55760203660031901126100e55760209181906001600160a01b036103086105bb565b16815280845220549051908152f35b5050346100e557806003193601126100e55761011260209261036061033a6105bb565b338352600186528483206001600160a01b038216845286529184902054602435906105ec565b9033610784565b5050346100e557816003193601126100e5576020905160128152f35b839150346100e55760603660031901126100e55761039f6105bb565b6103a76105d6565b91846044359460018060a01b0384168152600160205281812033825260205220549060001982036103e1575b60208661011287878761060f565b84821061040a57509183916103ff6020969561011295033383610784565b9193948193506103d3565b606490602087519162461bcd60e51b8352820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152fd5b5050346100e557816003193601126100e5576020906002549051908152f35b5050346100e557806003193601126100e55760209061011261048c6105bb565b6024359033610784565b8490843461056e578260031936011261056e5782600354600181811c90808316928315610564575b60209384841081146102c3578388529081156102a7575060011461050e57505050829003601f01601f191682019267ffffffffffffffff84118385101761023f575082918261023b925282610572565b600387529192508591837fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b8385106105505750505050830101858080610209565b80548886018301529301928490820161053a565b91607f16916104be565b8280fd5b6020808252825181830181905290939260005b8281106105a757505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610585565b600435906001600160a01b03821682036105d157565b600080fd5b602435906001600160a01b03821682036105d157565b919082018092116105f957565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b0390811691821561073157169182156106e05760008281528060205260408120549180831061068c57604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9587602096528286520382822055868152206106818282546105ec565b9055604051908152a3565b60405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608490fd5b60405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608490fd5b60405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608490fd5b6001600160a01b0390811691821561083557169182156107e55760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925918360005260018252604060002085600052825280604060002055604051908152a3565b60405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608490fd5b60405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608490fdfea2646970667358221220cfaaa9e37635652ffecb0d8e79a0f61f335cb5f3da036f0b3153d0031c12e19664736f6c63430008120033","opcodes":"PUSH1 0x80 PUSH1 0x40 DUP2 DUP2 MSTORE PUSH1 0x4 SWAP2 DUP3 CALLDATASIZE LT ISZERO PUSH2 0x16 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP3 DUP4 CALLDATALOAD PUSH1 0xE0 SHR SWAP2 DUP3 PUSH4 0x6FDDE03 EQ PUSH2 0x496 JUMPI POP DUP2 PUSH4 0x95EA7B3 EQ PUSH2 0x46C JUMPI DUP2 PUSH4 0x18160DDD EQ PUSH2 0x44D JUMPI DUP2 PUSH4 0x23B872DD EQ PUSH2 0x383 JUMPI DUP2 PUSH4 0x313CE567 EQ PUSH2 0x367 JUMPI DUP2 PUSH4 0x39509351 EQ PUSH2 0x317 JUMPI DUP2 PUSH4 0x70A08231 EQ PUSH2 0x2E0 JUMPI DUP2 PUSH4 0x95D89B41 EQ PUSH2 0x1C1 JUMPI DUP2 PUSH4 0xA457C2D7 EQ PUSH2 0x119 JUMPI POP DUP1 PUSH4 0xA9059CBB EQ PUSH2 0xE9 JUMPI PUSH4 0xDD62ED3E EQ PUSH2 0x9E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE PUSH2 0xE5 JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0xE5 JUMPI DUP1 PUSH1 0x20 SWAP3 PUSH2 0xBA PUSH2 0x5BB JUMP JUMPDEST PUSH2 0xC2 PUSH2 0x5D6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND DUP4 MSTORE PUSH1 0x1 DUP7 MSTORE DUP4 DUP4 KECCAK256 SWAP2 AND DUP3 MSTORE DUP5 MSTORE KECCAK256 SLOAD SWAP1 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST POP DUP1 REVERT JUMPDEST POP CALLVALUE PUSH2 0xE5 JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0xE5 JUMPI PUSH1 0x20 SWAP1 PUSH2 0x112 PUSH2 0x108 PUSH2 0x5BB JUMP JUMPDEST PUSH1 0x24 CALLDATALOAD SWAP1 CALLER PUSH2 0x60F JUMP JUMPDEST MLOAD PUSH1 0x1 DUP2 MSTORE RETURN JUMPDEST SWAP1 POP DUP3 CALLVALUE PUSH2 0x1BE JUMPI DUP3 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x1BE JUMPI PUSH2 0x134 PUSH2 0x5BB JUMP JUMPDEST SWAP2 DUP4 PUSH1 0x24 CALLDATALOAD SWAP3 CALLER DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE DUP2 DUP2 KECCAK256 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP7 AND DUP3 MSTORE PUSH1 0x20 MSTORE KECCAK256 SLOAD SWAP1 DUP3 DUP3 LT PUSH2 0x16D JUMPI PUSH1 0x20 DUP6 PUSH2 0x112 DUP6 DUP6 SUB DUP8 CALLER PUSH2 0x784 JUMP JUMPDEST PUSH1 0x84 SWAP1 PUSH1 0x20 DUP7 MLOAD SWAP2 PUSH3 0x461BCD PUSH1 0xE5 SHL DUP4 MSTORE DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE REVERT JUMPDEST DUP1 REVERT JUMPDEST DUP4 DUP4 CALLVALUE PUSH2 0xE5 JUMPI DUP2 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0xE5 JUMPI DUP1 MLOAD SWAP1 DUP3 DUP5 SLOAD PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP1 DUP4 AND SWAP3 DUP4 ISZERO PUSH2 0x2D6 JUMPI JUMPDEST PUSH1 0x20 SWAP4 DUP5 DUP5 LT DUP2 EQ PUSH2 0x2C3 JUMPI DUP4 DUP9 MSTORE SWAP1 DUP2 ISZERO PUSH2 0x2A7 JUMPI POP PUSH1 0x1 EQ PUSH2 0x252 JUMPI JUMPDEST POP POP POP DUP3 SWAP1 SUB PUSH1 0x1F ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP3 PUSH8 0xFFFFFFFFFFFFFFFF DUP5 GT DUP4 DUP6 LT OR PUSH2 0x23F JUMPI POP DUP3 SWAP2 DUP3 PUSH2 0x23B SWAP3 MSTORE DUP3 PUSH2 0x572 JUMP JUMPDEST SUB SWAP1 RETURN JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x41 DUP6 MSTORE PUSH1 0x24 SWAP1 REVERT JUMPDEST DUP8 DUP8 MSTORE SWAP2 SWAP3 POP DUP6 SWAP2 DUP4 PUSH32 0x8A35ACFBC15FF81A39AE7D344FD709F28E8600B4AA8C65C6B64BFE7FE36BD19B JUMPDEST DUP4 DUP6 LT PUSH2 0x293 JUMPI POP POP POP POP DUP4 ADD ADD DUP6 DUP1 DUP1 PUSH2 0x209 JUMP JUMPDEST DUP1 SLOAD DUP9 DUP7 ADD DUP4 ADD MSTORE SWAP4 ADD SWAP3 DUP5 SWAP1 DUP3 ADD PUSH2 0x27D JUMP JUMPDEST PUSH1 0xFF NOT AND DUP8 DUP6 ADD MSTORE POP POP ISZERO ISZERO PUSH1 0x5 SHL DUP5 ADD ADD SWAP1 POP DUP6 DUP1 DUP1 PUSH2 0x209 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP10 MSTORE PUSH1 0x22 DUP11 MSTORE PUSH1 0x24 DUP10 REVERT JUMPDEST SWAP2 PUSH1 0x7F AND SWAP2 PUSH2 0x1EA JUMP JUMPDEST POP POP CALLVALUE PUSH2 0xE5 JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0xE5 JUMPI PUSH1 0x20 SWAP2 DUP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH2 0x308 PUSH2 0x5BB JUMP JUMPDEST AND DUP2 MSTORE DUP1 DUP5 MSTORE KECCAK256 SLOAD SWAP1 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST POP POP CALLVALUE PUSH2 0xE5 JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0xE5 JUMPI PUSH2 0x112 PUSH1 0x20 SWAP3 PUSH2 0x360 PUSH2 0x33A PUSH2 0x5BB JUMP JUMPDEST CALLER DUP4 MSTORE PUSH1 0x1 DUP7 MSTORE DUP5 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND DUP5 MSTORE DUP7 MSTORE SWAP2 DUP5 SWAP1 KECCAK256 SLOAD PUSH1 0x24 CALLDATALOAD SWAP1 PUSH2 0x5EC JUMP JUMPDEST SWAP1 CALLER PUSH2 0x784 JUMP JUMPDEST POP POP CALLVALUE PUSH2 0xE5 JUMPI DUP2 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0xE5 JUMPI PUSH1 0x20 SWAP1 MLOAD PUSH1 0x12 DUP2 MSTORE RETURN JUMPDEST DUP4 SWAP2 POP CALLVALUE PUSH2 0xE5 JUMPI PUSH1 0x60 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0xE5 JUMPI PUSH2 0x39F PUSH2 0x5BB JUMP JUMPDEST PUSH2 0x3A7 PUSH2 0x5D6 JUMP JUMPDEST SWAP2 DUP5 PUSH1 0x44 CALLDATALOAD SWAP5 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP5 AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE DUP2 DUP2 KECCAK256 CALLER DUP3 MSTORE PUSH1 0x20 MSTORE KECCAK256 SLOAD SWAP1 PUSH1 0x0 NOT DUP3 SUB PUSH2 0x3E1 JUMPI JUMPDEST PUSH1 0x20 DUP7 PUSH2 0x112 DUP8 DUP8 DUP8 PUSH2 0x60F JUMP JUMPDEST DUP5 DUP3 LT PUSH2 0x40A JUMPI POP SWAP2 DUP4 SWAP2 PUSH2 0x3FF PUSH1 0x20 SWAP7 SWAP6 PUSH2 0x112 SWAP6 SUB CALLER DUP4 PUSH2 0x784 JUMP JUMPDEST SWAP2 SWAP4 SWAP5 DUP2 SWAP4 POP PUSH2 0x3D3 JUMP JUMPDEST PUSH1 0x64 SWAP1 PUSH1 0x20 DUP8 MLOAD SWAP2 PUSH3 0x461BCD PUSH1 0xE5 SHL DUP4 MSTORE DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH1 0x44 DUP3 ADD MSTORE REVERT JUMPDEST POP POP CALLVALUE PUSH2 0xE5 JUMPI DUP2 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0xE5 JUMPI PUSH1 0x20 SWAP1 PUSH1 0x2 SLOAD SWAP1 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST POP POP CALLVALUE PUSH2 0xE5 JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0xE5 JUMPI PUSH1 0x20 SWAP1 PUSH2 0x112 PUSH2 0x48C PUSH2 0x5BB JUMP JUMPDEST PUSH1 0x24 CALLDATALOAD SWAP1 CALLER PUSH2 0x784 JUMP JUMPDEST DUP5 SWAP1 DUP5 CALLVALUE PUSH2 0x56E JUMPI DUP3 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x56E JUMPI DUP3 PUSH1 0x3 SLOAD PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP1 DUP4 AND SWAP3 DUP4 ISZERO PUSH2 0x564 JUMPI JUMPDEST PUSH1 0x20 SWAP4 DUP5 DUP5 LT DUP2 EQ PUSH2 0x2C3 JUMPI DUP4 DUP9 MSTORE SWAP1 DUP2 ISZERO PUSH2 0x2A7 JUMPI POP PUSH1 0x1 EQ PUSH2 0x50E JUMPI POP POP POP DUP3 SWAP1 SUB PUSH1 0x1F ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP3 PUSH8 0xFFFFFFFFFFFFFFFF DUP5 GT DUP4 DUP6 LT OR PUSH2 0x23F JUMPI POP DUP3 SWAP2 DUP3 PUSH2 0x23B SWAP3 MSTORE DUP3 PUSH2 0x572 JUMP JUMPDEST PUSH1 0x3 DUP8 MSTORE SWAP2 SWAP3 POP DUP6 SWAP2 DUP4 PUSH32 0xC2575A0E9E593C00F959F8C92F12DB2869C3395A3B0502D05E2516446F71F85B JUMPDEST DUP4 DUP6 LT PUSH2 0x550 JUMPI POP POP POP POP DUP4 ADD ADD DUP6 DUP1 DUP1 PUSH2 0x209 JUMP JUMPDEST DUP1 SLOAD DUP9 DUP7 ADD DUP4 ADD MSTORE SWAP4 ADD SWAP3 DUP5 SWAP1 DUP3 ADD PUSH2 0x53A JUMP JUMPDEST SWAP2 PUSH1 0x7F AND SWAP2 PUSH2 0x4BE JUMP JUMPDEST DUP3 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP3 MLOAD DUP2 DUP4 ADD DUP2 SWAP1 MSTORE SWAP1 SWAP4 SWAP3 PUSH1 0x0 JUMPDEST DUP3 DUP2 LT PUSH2 0x5A7 JUMPI POP POP PUSH1 0x40 SWAP3 SWAP4 POP PUSH1 0x0 DUP4 DUP3 DUP5 ADD ADD MSTORE PUSH1 0x1F DUP1 NOT SWAP2 ADD AND ADD ADD SWAP1 JUMP JUMPDEST DUP2 DUP2 ADD DUP7 ADD MLOAD DUP5 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP6 ADD PUSH2 0x585 JUMP JUMPDEST PUSH1 0x4 CALLDATALOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND DUP3 SUB PUSH2 0x5D1 JUMPI JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x24 CALLDATALOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND DUP3 SUB PUSH2 0x5D1 JUMPI JUMP JUMPDEST SWAP2 SWAP1 DUP3 ADD DUP1 SWAP3 GT PUSH2 0x5F9 JUMPI JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND SWAP2 DUP3 ISZERO PUSH2 0x731 JUMPI AND SWAP2 DUP3 ISZERO PUSH2 0x6E0 JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE DUP1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD SWAP2 DUP1 DUP4 LT PUSH2 0x68C JUMPI PUSH1 0x40 DUP3 DUP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP6 DUP8 PUSH1 0x20 SWAP7 MSTORE DUP3 DUP7 MSTORE SUB DUP3 DUP3 KECCAK256 SSTORE DUP7 DUP2 MSTORE KECCAK256 PUSH2 0x681 DUP3 DUP3 SLOAD PUSH2 0x5EC JUMP JUMPDEST SWAP1 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE LOG3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND SWAP2 DUP3 ISZERO PUSH2 0x835 JUMPI AND SWAP2 DUP3 ISZERO PUSH2 0x7E5 JUMPI PUSH1 0x20 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 DUP4 PUSH1 0x0 MSTORE PUSH1 0x1 DUP3 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 DUP6 PUSH1 0x0 MSTORE DUP3 MSTORE DUP1 PUSH1 0x40 PUSH1 0x0 KECCAK256 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE LOG3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xCF 0xAA 0xA9 0xE3 PUSH23 0x35652FFECB0D8E79A0F61F335CB5F3DA036F0B3153D003 SHR SLT 0xE1 SWAP7 PUSH5 0x736F6C6343 STOP ADDMOD SLT STOP CALLER ","sourceMap":"119:208:42:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;-1:-1:-1;;;;;119:208:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3883:6:25;119:208:42;;:::i;:::-;;;719:10:35;;3883:6:25;:::i;:::-;119:208:42;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;719:10:35;;119:208:42;;;;;;;;;;;;;;;;;;;;;6811:35:25;;;;119:208:42;;;;6947:34:25;119:208:42;;;;719:10:35;6947:34:25;:::i;119:208:42:-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;119:208:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;119:208:42;;;;;-1:-1:-1;;119:208:42;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;119:208:42;;;;;;;;;;;;;;-1:-1:-1;119:208:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;119:208:42;;;;;-1:-1:-1;;119:208:42;;;;;;;;-1:-1:-1;119:208:42;;;;;;-1:-1:-1;;;119:208:42;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;119:208:42;;;;;;;;-1:-1:-1;;;;;119:208:42;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6040:38:25;119:208:42;;6040:38:25;119:208:42;;:::i;:::-;719:10:35;119:208:42;;;;;;;;-1:-1:-1;;;;;119:208:42;;;;;;;;;;;;;;6040:38:25;:::i;:::-;719:10:35;;6040:38:25;:::i;119:208:42:-;;;;;;;;;;;;;;;;;3175:2:25;119:208:42;;;;;;;;;;;;-1:-1:-1;;119:208:42;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;719:10:35;119:208:42;;;;;;10986:17:25;;;10966:37;;10962:243;;119:208:42;;5443:6:25;;;;;;:::i;10962:243::-;11027:26;;;119:208:42;;;;;;11154:25:25;119:208:42;;;5443:6:25;119:208:42;;719:10:35;11154:25:25;;:::i;:::-;10962:243;;;;;;;;119:208:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3331:12:25;119:208:42;;;;;;;;;;;;;;;;;;;;;;;4595:6:25;119:208:42;;:::i;:::-;;;719:10:35;;4595:6:25;:::i;119:208:42:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;119:208:42;;;;;-1:-1:-1;;119:208:42;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;119:208:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;119:208:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;119:208:42;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;;;;119:208:42;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;7484:651:25;-1:-1:-1;;;;;119:208:42;;;;7610:18:25;;119:208:42;;;7688:16:25;;;119:208:42;;7626:1:25;119:208:42;;;;;;;;;;7859:21:25;;;;119:208:42;;;;;8054:26:25;119:208:42;;;;;;;;;;;;;;;;;8015:23:25;119:208:42;;;8015:23:25;:::i;:::-;119:208:42;;;;;;;8054:26:25;7484:651::o;119:208:42:-;;;-1:-1:-1;;;119:208:42;;;;;;;;;;;;;;;;;-1:-1:-1;;;119:208:42;;;;;;;;;;-1:-1:-1;;;119:208:42;;;;;;;;;;;;;;;;;-1:-1:-1;;;119:208:42;;;;;;;;;;-1:-1:-1;;;119:208:42;;;;;;;;;;;;;;;;;-1:-1:-1;;;119:208:42;;;;;;;10119:370:25;-1:-1:-1;;;;;119:208:42;;;;10250:19:25;;119:208:42;;;10328:21:25;;;119:208:42;;;10450:32:25;119:208:42;;10267:1:25;119:208:42;;;;;10267:1:25;119:208:42;;10267:1:25;119:208:42;;;;;10267:1:25;119:208:42;;;;;;;10450:32:25;10119:370::o;119:208:42:-;;;-1:-1:-1;;;119:208:42;;;;;;;;;;;;;;;;;-1:-1:-1;;;119:208:42;;;;;;;;;;-1:-1:-1;;;119:208:42;;;;;;;;;;;;;;;;;-1:-1:-1;;;119:208:42;;;;;;"},"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"}},"metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_recipient\",\"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\":[{\"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\":{\"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\":{\"contracts/L1.sol\":\"L1\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xe0c8b625a79bac0fe80f17cfb521e072805cc9cef1c96a5caf45b264e74812fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12fd1efc9ad061ef675bd50fb0c8e3c6f2952a09f8df0e3c688b8d81b8918838\",\"dweb:/ipfs/QmawN6PjTwy91pU7ANjCSgbsLc8TDA6hwu9GsFFaNSuhb5\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"contracts/L1.sol\":{\"keccak256\":\"0x10885b5322d6a27339005fb7d11786fcc1d246cddbbb68de5d5fcaf801686010\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://3b6cbfcaaa27313a102ab54478583bfdf4c322d6c707fa2e2ef15a14b637800e\",\"dweb:/ipfs/QmR9XtRrGcyA4DaJ48oKa3MpGFm8XnhWq4HgadzkiqcJ2z\"]}},\"version\":1}"}},"contracts/L2.sol":{"L2":{"abi":[{"inputs":[],"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"}],"evm":{"bytecode":{"functionDebugData":{"checked_add_uint256":{"entryPoint":956,"id":null,"parameterSlots":1,"returnSlots":1}},"generatedSources":[],"linkReferences":{},"object":"608034620003b7576040906001600160401b039080830182811182821017620002b7578352600e81526020916d26191022a9219918103a37b5b2b760911b8383015283519184830183811083821117620002b75785526002835261261960f11b84840152805191808311620002b75760038054936001938486811c96168015620003ac575b8887101462000396578190601f9687811162000340575b508890878311600114620002d957600092620002cd575b505060001982841b1c191690841b1781555b8451918211620002b75760049485548481811c91168015620002ac575b8882101462000297578581116200024c575b508690858411600114620001e157938394918492600095620001d5575b50501b92600019911b1c19161782555b33156200019657505062000136600254620003bc565b600255336000526000815281600020620001518154620003bc565b905560007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef835192683635c9adc5dea0000084523393a3516108bc9081620003ea8239f35b60649284519262461bcd60e51b845283015260248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152fd5b01519350388062000110565b9190601f198416928760005284896000209460005b8b8983831062000234575050501062000219575b50505050811b01825562000120565b01519060f884600019921b161c19169055388080806200020a565b868601518955909701969485019488935001620001f6565b86600052876000208680860160051c8201928a87106200028d575b0160051c019085905b82811062000280575050620000f3565b6000815501859062000270565b9250819262000267565b602287634e487b7160e01b6000525260246000fd5b90607f1690620000e1565b634e487b7160e01b600052604160045260246000fd5b015190503880620000b2565b90869350601f19831691856000528a6000209260005b8c82821062000329575050841162000310575b505050811b018155620000c4565b015160001983861b60f8161c1916905538808062000302565b8385015186558a97909501949384019301620002ef565b90915083600052886000208780850160051c8201928b86106200038c575b918891869594930160051c01915b8281106200037c5750506200009b565b600081558594508891016200036c565b925081926200035e565b634e487b7160e01b600052602260045260246000fd5b95607f169562000084565b600080fd5b90683635c9adc5dea000008201809211620003d357565b634e487b7160e01b600052601160045260246000fdfe608060408181526004918236101561001657600080fd5b600092833560e01c91826306fdde031461049657508163095ea7b31461046c57816318160ddd1461044d57816323b872dd14610383578163313ce56714610367578163395093511461031757816370a08231146102e057816395d89b41146101c1578163a457c2d71461011957508063a9059cbb146100e95763dd62ed3e1461009e57600080fd5b346100e557806003193601126100e557806020926100ba6105bb565b6100c26105d6565b6001600160a01b0391821683526001865283832091168252845220549051908152f35b5080fd5b50346100e557806003193601126100e5576020906101126101086105bb565b602435903361060f565b5160018152f35b905082346101be57826003193601126101be576101346105bb565b918360243592338152600160205281812060018060a01b038616825260205220549082821061016d576020856101128585038733610784565b608490602086519162461bcd60e51b8352820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152fd5b80fd5b8383346100e557816003193601126100e557805190828454600181811c908083169283156102d6575b60209384841081146102c3578388529081156102a75750600114610252575b505050829003601f01601f191682019267ffffffffffffffff84118385101761023f575082918261023b925282610572565b0390f35b634e487b7160e01b815260418552602490fd5b8787529192508591837f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b8385106102935750505050830101858080610209565b80548886018301529301928490820161027d565b60ff1916878501525050151560051b8401019050858080610209565b634e487b7160e01b895260228a52602489fd5b91607f16916101ea565b5050346100e55760203660031901126100e55760209181906001600160a01b036103086105bb565b16815280845220549051908152f35b5050346100e557806003193601126100e55761011260209261036061033a6105bb565b338352600186528483206001600160a01b038216845286529184902054602435906105ec565b9033610784565b5050346100e557816003193601126100e5576020905160128152f35b839150346100e55760603660031901126100e55761039f6105bb565b6103a76105d6565b91846044359460018060a01b0384168152600160205281812033825260205220549060001982036103e1575b60208661011287878761060f565b84821061040a57509183916103ff6020969561011295033383610784565b9193948193506103d3565b606490602087519162461bcd60e51b8352820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152fd5b5050346100e557816003193601126100e5576020906002549051908152f35b5050346100e557806003193601126100e55760209061011261048c6105bb565b6024359033610784565b8490843461056e578260031936011261056e5782600354600181811c90808316928315610564575b60209384841081146102c3578388529081156102a7575060011461050e57505050829003601f01601f191682019267ffffffffffffffff84118385101761023f575082918261023b925282610572565b600387529192508591837fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b8385106105505750505050830101858080610209565b80548886018301529301928490820161053a565b91607f16916104be565b8280fd5b6020808252825181830181905290939260005b8281106105a757505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610585565b600435906001600160a01b03821682036105d157565b600080fd5b602435906001600160a01b03821682036105d157565b919082018092116105f957565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b0390811691821561073157169182156106e05760008281528060205260408120549180831061068c57604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9587602096528286520382822055868152206106818282546105ec565b9055604051908152a3565b60405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608490fd5b60405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608490fd5b60405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608490fd5b6001600160a01b0390811691821561083557169182156107e55760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925918360005260018252604060002085600052825280604060002055604051908152a3565b60405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608490fd5b60405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608490fdfea2646970667358221220bc638fb6385249a1e52fd832a2ee218efbe97ca953308423b36ceca2cdb87c9b64736f6c63430008120033","opcodes":"PUSH1 0x80 CALLVALUE PUSH3 0x3B7 JUMPI PUSH1 0x40 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 DUP1 DUP4 ADD DUP3 DUP2 GT DUP3 DUP3 LT OR PUSH3 0x2B7 JUMPI DUP4 MSTORE PUSH1 0xE DUP2 MSTORE PUSH1 0x20 SWAP2 PUSH14 0x26191022A9219918103A37B5B2B7 PUSH1 0x91 SHL DUP4 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 DUP5 DUP4 ADD DUP4 DUP2 LT DUP4 DUP3 GT OR PUSH3 0x2B7 JUMPI DUP6 MSTORE PUSH1 0x2 DUP4 MSTORE PUSH2 0x2619 PUSH1 0xF1 SHL DUP5 DUP5 ADD MSTORE DUP1 MLOAD SWAP2 DUP1 DUP4 GT PUSH3 0x2B7 JUMPI PUSH1 0x3 DUP1 SLOAD SWAP4 PUSH1 0x1 SWAP4 DUP5 DUP7 DUP2 SHR SWAP7 AND DUP1 ISZERO PUSH3 0x3AC JUMPI JUMPDEST DUP9 DUP8 LT EQ PUSH3 0x396 JUMPI DUP2 SWAP1 PUSH1 0x1F SWAP7 DUP8 DUP2 GT PUSH3 0x340 JUMPI JUMPDEST POP DUP9 SWAP1 DUP8 DUP4 GT PUSH1 0x1 EQ PUSH3 0x2D9 JUMPI PUSH1 0x0 SWAP3 PUSH3 0x2CD JUMPI JUMPDEST POP POP PUSH1 0x0 NOT DUP3 DUP5 SHL SHR NOT AND SWAP1 DUP5 SHL OR DUP2 SSTORE JUMPDEST DUP5 MLOAD SWAP2 DUP3 GT PUSH3 0x2B7 JUMPI PUSH1 0x4 SWAP5 DUP6 SLOAD DUP5 DUP2 DUP2 SHR SWAP2 AND DUP1 ISZERO PUSH3 0x2AC JUMPI JUMPDEST DUP9 DUP3 LT EQ PUSH3 0x297 JUMPI DUP6 DUP2 GT PUSH3 0x24C JUMPI JUMPDEST POP DUP7 SWAP1 DUP6 DUP5 GT PUSH1 0x1 EQ PUSH3 0x1E1 JUMPI SWAP4 DUP4 SWAP5 SWAP2 DUP5 SWAP3 PUSH1 0x0 SWAP6 PUSH3 0x1D5 JUMPI JUMPDEST POP POP SHL SWAP3 PUSH1 0x0 NOT SWAP2 SHL SHR NOT AND OR DUP3 SSTORE JUMPDEST CALLER ISZERO PUSH3 0x196 JUMPI POP POP PUSH3 0x136 PUSH1 0x2 SLOAD PUSH3 0x3BC JUMP JUMPDEST PUSH1 0x2 SSTORE CALLER PUSH1 0x0 MSTORE PUSH1 0x0 DUP2 MSTORE DUP2 PUSH1 0x0 KECCAK256 PUSH3 0x151 DUP2 SLOAD PUSH3 0x3BC JUMP JUMPDEST SWAP1 SSTORE PUSH1 0x0 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 MLOAD SWAP3 PUSH9 0x3635C9ADC5DEA00000 DUP5 MSTORE CALLER SWAP4 LOG3 MLOAD PUSH2 0x8BC SWAP1 DUP2 PUSH3 0x3EA DUP3 CODECOPY RETURN JUMPDEST PUSH1 0x64 SWAP3 DUP5 MLOAD SWAP3 PUSH3 0x461BCD PUSH1 0xE5 SHL DUP5 MSTORE DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A206D696E7420746F20746865207A65726F206164647265737300 PUSH1 0x44 DUP3 ADD MSTORE REVERT JUMPDEST ADD MLOAD SWAP4 POP CODESIZE DUP1 PUSH3 0x110 JUMP JUMPDEST SWAP2 SWAP1 PUSH1 0x1F NOT DUP5 AND SWAP3 DUP8 PUSH1 0x0 MSTORE DUP5 DUP10 PUSH1 0x0 KECCAK256 SWAP5 PUSH1 0x0 JUMPDEST DUP12 DUP10 DUP4 DUP4 LT PUSH3 0x234 JUMPI POP POP POP LT PUSH3 0x219 JUMPI JUMPDEST POP POP POP POP DUP2 SHL ADD DUP3 SSTORE PUSH3 0x120 JUMP JUMPDEST ADD MLOAD SWAP1 PUSH1 0xF8 DUP5 PUSH1 0x0 NOT SWAP3 SHL AND SHR NOT AND SWAP1 SSTORE CODESIZE DUP1 DUP1 DUP1 PUSH3 0x20A JUMP JUMPDEST DUP7 DUP7 ADD MLOAD DUP10 SSTORE SWAP1 SWAP8 ADD SWAP7 SWAP5 DUP6 ADD SWAP5 DUP9 SWAP4 POP ADD PUSH3 0x1F6 JUMP JUMPDEST DUP7 PUSH1 0x0 MSTORE DUP8 PUSH1 0x0 KECCAK256 DUP7 DUP1 DUP7 ADD PUSH1 0x5 SHR DUP3 ADD SWAP3 DUP11 DUP8 LT PUSH3 0x28D JUMPI JUMPDEST ADD PUSH1 0x5 SHR ADD SWAP1 DUP6 SWAP1 JUMPDEST DUP3 DUP2 LT PUSH3 0x280 JUMPI POP POP PUSH3 0xF3 JUMP JUMPDEST PUSH1 0x0 DUP2 SSTORE ADD DUP6 SWAP1 PUSH3 0x270 JUMP JUMPDEST SWAP3 POP DUP2 SWAP3 PUSH3 0x267 JUMP JUMPDEST PUSH1 0x22 DUP8 PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x7F AND SWAP1 PUSH3 0xE1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADD MLOAD SWAP1 POP CODESIZE DUP1 PUSH3 0xB2 JUMP JUMPDEST SWAP1 DUP7 SWAP4 POP PUSH1 0x1F NOT DUP4 AND SWAP2 DUP6 PUSH1 0x0 MSTORE DUP11 PUSH1 0x0 KECCAK256 SWAP3 PUSH1 0x0 JUMPDEST DUP13 DUP3 DUP3 LT PUSH3 0x329 JUMPI POP POP DUP5 GT PUSH3 0x310 JUMPI JUMPDEST POP POP POP DUP2 SHL ADD DUP2 SSTORE PUSH3 0xC4 JUMP JUMPDEST ADD MLOAD PUSH1 0x0 NOT DUP4 DUP7 SHL PUSH1 0xF8 AND SHR NOT AND SWAP1 SSTORE CODESIZE DUP1 DUP1 PUSH3 0x302 JUMP JUMPDEST DUP4 DUP6 ADD MLOAD DUP7 SSTORE DUP11 SWAP8 SWAP1 SWAP6 ADD SWAP5 SWAP4 DUP5 ADD SWAP4 ADD PUSH3 0x2EF JUMP JUMPDEST SWAP1 SWAP2 POP DUP4 PUSH1 0x0 MSTORE DUP9 PUSH1 0x0 KECCAK256 DUP8 DUP1 DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP3 DUP12 DUP7 LT PUSH3 0x38C JUMPI JUMPDEST SWAP2 DUP9 SWAP2 DUP7 SWAP6 SWAP5 SWAP4 ADD PUSH1 0x5 SHR ADD SWAP2 JUMPDEST DUP3 DUP2 LT PUSH3 0x37C JUMPI POP POP PUSH3 0x9B JUMP JUMPDEST PUSH1 0x0 DUP2 SSTORE DUP6 SWAP5 POP DUP9 SWAP2 ADD PUSH3 0x36C JUMP JUMPDEST SWAP3 POP DUP2 SWAP3 PUSH3 0x35E JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP6 PUSH1 0x7F AND SWAP6 PUSH3 0x84 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 PUSH9 0x3635C9ADC5DEA00000 DUP3 ADD DUP1 SWAP3 GT PUSH3 0x3D3 JUMPI JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID PUSH1 0x80 PUSH1 0x40 DUP2 DUP2 MSTORE PUSH1 0x4 SWAP2 DUP3 CALLDATASIZE LT ISZERO PUSH2 0x16 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP3 DUP4 CALLDATALOAD PUSH1 0xE0 SHR SWAP2 DUP3 PUSH4 0x6FDDE03 EQ PUSH2 0x496 JUMPI POP DUP2 PUSH4 0x95EA7B3 EQ PUSH2 0x46C JUMPI DUP2 PUSH4 0x18160DDD EQ PUSH2 0x44D JUMPI DUP2 PUSH4 0x23B872DD EQ PUSH2 0x383 JUMPI DUP2 PUSH4 0x313CE567 EQ PUSH2 0x367 JUMPI DUP2 PUSH4 0x39509351 EQ PUSH2 0x317 JUMPI DUP2 PUSH4 0x70A08231 EQ PUSH2 0x2E0 JUMPI DUP2 PUSH4 0x95D89B41 EQ PUSH2 0x1C1 JUMPI DUP2 PUSH4 0xA457C2D7 EQ PUSH2 0x119 JUMPI POP DUP1 PUSH4 0xA9059CBB EQ PUSH2 0xE9 JUMPI PUSH4 0xDD62ED3E EQ PUSH2 0x9E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE PUSH2 0xE5 JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0xE5 JUMPI DUP1 PUSH1 0x20 SWAP3 PUSH2 0xBA PUSH2 0x5BB JUMP JUMPDEST PUSH2 0xC2 PUSH2 0x5D6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND DUP4 MSTORE PUSH1 0x1 DUP7 MSTORE DUP4 DUP4 KECCAK256 SWAP2 AND DUP3 MSTORE DUP5 MSTORE KECCAK256 SLOAD SWAP1 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST POP DUP1 REVERT JUMPDEST POP CALLVALUE PUSH2 0xE5 JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0xE5 JUMPI PUSH1 0x20 SWAP1 PUSH2 0x112 PUSH2 0x108 PUSH2 0x5BB JUMP JUMPDEST PUSH1 0x24 CALLDATALOAD SWAP1 CALLER PUSH2 0x60F JUMP JUMPDEST MLOAD PUSH1 0x1 DUP2 MSTORE RETURN JUMPDEST SWAP1 POP DUP3 CALLVALUE PUSH2 0x1BE JUMPI DUP3 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x1BE JUMPI PUSH2 0x134 PUSH2 0x5BB JUMP JUMPDEST SWAP2 DUP4 PUSH1 0x24 CALLDATALOAD SWAP3 CALLER DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE DUP2 DUP2 KECCAK256 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP7 AND DUP3 MSTORE PUSH1 0x20 MSTORE KECCAK256 SLOAD SWAP1 DUP3 DUP3 LT PUSH2 0x16D JUMPI PUSH1 0x20 DUP6 PUSH2 0x112 DUP6 DUP6 SUB DUP8 CALLER PUSH2 0x784 JUMP JUMPDEST PUSH1 0x84 SWAP1 PUSH1 0x20 DUP7 MLOAD SWAP2 PUSH3 0x461BCD PUSH1 0xE5 SHL DUP4 MSTORE DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE REVERT JUMPDEST DUP1 REVERT JUMPDEST DUP4 DUP4 CALLVALUE PUSH2 0xE5 JUMPI DUP2 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0xE5 JUMPI DUP1 MLOAD SWAP1 DUP3 DUP5 SLOAD PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP1 DUP4 AND SWAP3 DUP4 ISZERO PUSH2 0x2D6 JUMPI JUMPDEST PUSH1 0x20 SWAP4 DUP5 DUP5 LT DUP2 EQ PUSH2 0x2C3 JUMPI DUP4 DUP9 MSTORE SWAP1 DUP2 ISZERO PUSH2 0x2A7 JUMPI POP PUSH1 0x1 EQ PUSH2 0x252 JUMPI JUMPDEST POP POP POP DUP3 SWAP1 SUB PUSH1 0x1F ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP3 PUSH8 0xFFFFFFFFFFFFFFFF DUP5 GT DUP4 DUP6 LT OR PUSH2 0x23F JUMPI POP DUP3 SWAP2 DUP3 PUSH2 0x23B SWAP3 MSTORE DUP3 PUSH2 0x572 JUMP JUMPDEST SUB SWAP1 RETURN JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x41 DUP6 MSTORE PUSH1 0x24 SWAP1 REVERT JUMPDEST DUP8 DUP8 MSTORE SWAP2 SWAP3 POP DUP6 SWAP2 DUP4 PUSH32 0x8A35ACFBC15FF81A39AE7D344FD709F28E8600B4AA8C65C6B64BFE7FE36BD19B JUMPDEST DUP4 DUP6 LT PUSH2 0x293 JUMPI POP POP POP POP DUP4 ADD ADD DUP6 DUP1 DUP1 PUSH2 0x209 JUMP JUMPDEST DUP1 SLOAD DUP9 DUP7 ADD DUP4 ADD MSTORE SWAP4 ADD SWAP3 DUP5 SWAP1 DUP3 ADD PUSH2 0x27D JUMP JUMPDEST PUSH1 0xFF NOT AND DUP8 DUP6 ADD MSTORE POP POP ISZERO ISZERO PUSH1 0x5 SHL DUP5 ADD ADD SWAP1 POP DUP6 DUP1 DUP1 PUSH2 0x209 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP10 MSTORE PUSH1 0x22 DUP11 MSTORE PUSH1 0x24 DUP10 REVERT JUMPDEST SWAP2 PUSH1 0x7F AND SWAP2 PUSH2 0x1EA JUMP JUMPDEST POP POP CALLVALUE PUSH2 0xE5 JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0xE5 JUMPI PUSH1 0x20 SWAP2 DUP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH2 0x308 PUSH2 0x5BB JUMP JUMPDEST AND DUP2 MSTORE DUP1 DUP5 MSTORE KECCAK256 SLOAD SWAP1 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST POP POP CALLVALUE PUSH2 0xE5 JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0xE5 JUMPI PUSH2 0x112 PUSH1 0x20 SWAP3 PUSH2 0x360 PUSH2 0x33A PUSH2 0x5BB JUMP JUMPDEST CALLER DUP4 MSTORE PUSH1 0x1 DUP7 MSTORE DUP5 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND DUP5 MSTORE DUP7 MSTORE SWAP2 DUP5 SWAP1 KECCAK256 SLOAD PUSH1 0x24 CALLDATALOAD SWAP1 PUSH2 0x5EC JUMP JUMPDEST SWAP1 CALLER PUSH2 0x784 JUMP JUMPDEST POP POP CALLVALUE PUSH2 0xE5 JUMPI DUP2 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0xE5 JUMPI PUSH1 0x20 SWAP1 MLOAD PUSH1 0x12 DUP2 MSTORE RETURN JUMPDEST DUP4 SWAP2 POP CALLVALUE PUSH2 0xE5 JUMPI PUSH1 0x60 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0xE5 JUMPI PUSH2 0x39F PUSH2 0x5BB JUMP JUMPDEST PUSH2 0x3A7 PUSH2 0x5D6 JUMP JUMPDEST SWAP2 DUP5 PUSH1 0x44 CALLDATALOAD SWAP5 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP5 AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE DUP2 DUP2 KECCAK256 CALLER DUP3 MSTORE PUSH1 0x20 MSTORE KECCAK256 SLOAD SWAP1 PUSH1 0x0 NOT DUP3 SUB PUSH2 0x3E1 JUMPI JUMPDEST PUSH1 0x20 DUP7 PUSH2 0x112 DUP8 DUP8 DUP8 PUSH2 0x60F JUMP JUMPDEST DUP5 DUP3 LT PUSH2 0x40A JUMPI POP SWAP2 DUP4 SWAP2 PUSH2 0x3FF PUSH1 0x20 SWAP7 SWAP6 PUSH2 0x112 SWAP6 SUB CALLER DUP4 PUSH2 0x784 JUMP JUMPDEST SWAP2 SWAP4 SWAP5 DUP2 SWAP4 POP PUSH2 0x3D3 JUMP JUMPDEST PUSH1 0x64 SWAP1 PUSH1 0x20 DUP8 MLOAD SWAP2 PUSH3 0x461BCD PUSH1 0xE5 SHL DUP4 MSTORE DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH1 0x44 DUP3 ADD MSTORE REVERT JUMPDEST POP POP CALLVALUE PUSH2 0xE5 JUMPI DUP2 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0xE5 JUMPI PUSH1 0x20 SWAP1 PUSH1 0x2 SLOAD SWAP1 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST POP POP CALLVALUE PUSH2 0xE5 JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0xE5 JUMPI PUSH1 0x20 SWAP1 PUSH2 0x112 PUSH2 0x48C PUSH2 0x5BB JUMP JUMPDEST PUSH1 0x24 CALLDATALOAD SWAP1 CALLER PUSH2 0x784 JUMP JUMPDEST DUP5 SWAP1 DUP5 CALLVALUE PUSH2 0x56E JUMPI DUP3 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x56E JUMPI DUP3 PUSH1 0x3 SLOAD PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP1 DUP4 AND SWAP3 DUP4 ISZERO PUSH2 0x564 JUMPI JUMPDEST PUSH1 0x20 SWAP4 DUP5 DUP5 LT DUP2 EQ PUSH2 0x2C3 JUMPI DUP4 DUP9 MSTORE SWAP1 DUP2 ISZERO PUSH2 0x2A7 JUMPI POP PUSH1 0x1 EQ PUSH2 0x50E JUMPI POP POP POP DUP3 SWAP1 SUB PUSH1 0x1F ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP3 PUSH8 0xFFFFFFFFFFFFFFFF DUP5 GT DUP4 DUP6 LT OR PUSH2 0x23F JUMPI POP DUP3 SWAP2 DUP3 PUSH2 0x23B SWAP3 MSTORE DUP3 PUSH2 0x572 JUMP JUMPDEST PUSH1 0x3 DUP8 MSTORE SWAP2 SWAP3 POP DUP6 SWAP2 DUP4 PUSH32 0xC2575A0E9E593C00F959F8C92F12DB2869C3395A3B0502D05E2516446F71F85B JUMPDEST DUP4 DUP6 LT PUSH2 0x550 JUMPI POP POP POP POP DUP4 ADD ADD DUP6 DUP1 DUP1 PUSH2 0x209 JUMP JUMPDEST DUP1 SLOAD DUP9 DUP7 ADD DUP4 ADD MSTORE SWAP4 ADD SWAP3 DUP5 SWAP1 DUP3 ADD PUSH2 0x53A JUMP JUMPDEST SWAP2 PUSH1 0x7F AND SWAP2 PUSH2 0x4BE JUMP JUMPDEST DUP3 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP3 MLOAD DUP2 DUP4 ADD DUP2 SWAP1 MSTORE SWAP1 SWAP4 SWAP3 PUSH1 0x0 JUMPDEST DUP3 DUP2 LT PUSH2 0x5A7 JUMPI POP POP PUSH1 0x40 SWAP3 SWAP4 POP PUSH1 0x0 DUP4 DUP3 DUP5 ADD ADD MSTORE PUSH1 0x1F DUP1 NOT SWAP2 ADD AND ADD ADD SWAP1 JUMP JUMPDEST DUP2 DUP2 ADD DUP7 ADD MLOAD DUP5 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP6 ADD PUSH2 0x585 JUMP JUMPDEST PUSH1 0x4 CALLDATALOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND DUP3 SUB PUSH2 0x5D1 JUMPI JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x24 CALLDATALOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND DUP3 SUB PUSH2 0x5D1 JUMPI JUMP JUMPDEST SWAP2 SWAP1 DUP3 ADD DUP1 SWAP3 GT PUSH2 0x5F9 JUMPI JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND SWAP2 DUP3 ISZERO PUSH2 0x731 JUMPI AND SWAP2 DUP3 ISZERO PUSH2 0x6E0 JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE DUP1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD SWAP2 DUP1 DUP4 LT PUSH2 0x68C JUMPI PUSH1 0x40 DUP3 DUP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP6 DUP8 PUSH1 0x20 SWAP7 MSTORE DUP3 DUP7 MSTORE SUB DUP3 DUP3 KECCAK256 SSTORE DUP7 DUP2 MSTORE KECCAK256 PUSH2 0x681 DUP3 DUP3 SLOAD PUSH2 0x5EC JUMP JUMPDEST SWAP1 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE LOG3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND SWAP2 DUP3 ISZERO PUSH2 0x835 JUMPI AND SWAP2 DUP3 ISZERO PUSH2 0x7E5 JUMPI PUSH1 0x20 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 DUP4 PUSH1 0x0 MSTORE PUSH1 0x1 DUP3 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 DUP6 PUSH1 0x0 MSTORE DUP3 MSTORE DUP1 PUSH1 0x40 PUSH1 0x0 KECCAK256 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE LOG3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xBC PUSH4 0x8FB63852 0x49 LOG1 0xE5 0x2F 0xD8 ORIGIN LOG2 0xEE 0x21 DUP15 0xFB 0xE9 PUSH29 0xA953308423B36CECA2CDB87C9B64736F6C634300081200330000000000 ","sourceMap":"119:183:43:-:0;;;;;;-1:-1:-1;;;;;119:183:43;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;119:183:43;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;119:183:43;;;;;;;;;;;;2044:13:25;119:183:43;;;;;;;;;;;;;;;-1:-1:-1;119:183:43;;;;;;;;;;;;;;;-1:-1:-1;119:183:43;;;;;;;;;;-1:-1:-1;119:183:43;;;;-1:-1:-1;;;;119:183:43;;;;;;;;;;;;;;;;;;;;2067:17:25;119:183:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;119:183:43;;;;;;;;;;;;;;;;;;;265:10;8494:21:25;119:183:43;;;;8622:22:25;119:183:43;;8622:22:25;:::i;:::-;119:183:43;;265:10;-1:-1:-1;119:183:43;-1:-1:-1;119:183:43;;;-1:-1:-1;119:183:43;8654:28:25;119:183:43;;8654:28:25;:::i;:::-;119:183:43;;-1:-1:-1;8697:37:25;119:183:43;;;181:17;119:183;;265:10;8697:37:25;;119:183:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;119:183:43;;;;;;;;;;;;;-1:-1:-1;119:183:43;;;-1:-1:-1;119:183:43;;-1:-1:-1;119:183:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;119:183:43;;;;;-1:-1:-1;119:183:43;;-1:-1:-1;119:183:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;119:183:43;;;;;;;;;;;;;;;;;;;;-1:-1:-1;119:183:43;;;-1:-1:-1;119:183:43;;;;;;;;;;;;-1:-1:-1;119:183:43;;2067:17:25;119:183:43;;-1:-1:-1;119:183:43;;;;;-1:-1:-1;119:183:43;;;;;;;;;;;;;;;-1:-1:-1;119:183:43;;-1:-1:-1;119:183:43;;-1:-1:-1;119:183:43;;;;;;;;;;-1:-1:-1;119:183:43;;;;;;;;;;;;;;;;-1:-1:-1;;119:183:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;119:183:43;;-1:-1:-1;119:183:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;119:183:43;;;;-1:-1:-1;119:183:43;;;;;;;;;;;;;;;;-1:-1:-1;119:183:43;;;;;-1:-1:-1;119:183:43;;;;;;;;;;;;;;181:17;119:183;;;;;;;:::o;:::-;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"abi_decode_address":{"entryPoint":1494,"id":null,"parameterSlots":0,"returnSlots":1},"abi_decode_address_4723":{"entryPoint":1467,"id":null,"parameterSlots":0,"returnSlots":1},"abi_encode_string":{"entryPoint":1394,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_uint256":{"entryPoint":1516,"id":null,"parameterSlots":2,"returnSlots":1},"fun_approve":{"entryPoint":1924,"id":6270,"parameterSlots":3,"returnSlots":0},"fun_transfer":{"entryPoint":1551,"id":6097,"parameterSlots":3,"returnSlots":0}},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"608060408181526004918236101561001657600080fd5b600092833560e01c91826306fdde031461049657508163095ea7b31461046c57816318160ddd1461044d57816323b872dd14610383578163313ce56714610367578163395093511461031757816370a08231146102e057816395d89b41146101c1578163a457c2d71461011957508063a9059cbb146100e95763dd62ed3e1461009e57600080fd5b346100e557806003193601126100e557806020926100ba6105bb565b6100c26105d6565b6001600160a01b0391821683526001865283832091168252845220549051908152f35b5080fd5b50346100e557806003193601126100e5576020906101126101086105bb565b602435903361060f565b5160018152f35b905082346101be57826003193601126101be576101346105bb565b918360243592338152600160205281812060018060a01b038616825260205220549082821061016d576020856101128585038733610784565b608490602086519162461bcd60e51b8352820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152fd5b80fd5b8383346100e557816003193601126100e557805190828454600181811c908083169283156102d6575b60209384841081146102c3578388529081156102a75750600114610252575b505050829003601f01601f191682019267ffffffffffffffff84118385101761023f575082918261023b925282610572565b0390f35b634e487b7160e01b815260418552602490fd5b8787529192508591837f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b8385106102935750505050830101858080610209565b80548886018301529301928490820161027d565b60ff1916878501525050151560051b8401019050858080610209565b634e487b7160e01b895260228a52602489fd5b91607f16916101ea565b5050346100e55760203660031901126100e55760209181906001600160a01b036103086105bb565b16815280845220549051908152f35b5050346100e557806003193601126100e55761011260209261036061033a6105bb565b338352600186528483206001600160a01b038216845286529184902054602435906105ec565b9033610784565b5050346100e557816003193601126100e5576020905160128152f35b839150346100e55760603660031901126100e55761039f6105bb565b6103a76105d6565b91846044359460018060a01b0384168152600160205281812033825260205220549060001982036103e1575b60208661011287878761060f565b84821061040a57509183916103ff6020969561011295033383610784565b9193948193506103d3565b606490602087519162461bcd60e51b8352820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152fd5b5050346100e557816003193601126100e5576020906002549051908152f35b5050346100e557806003193601126100e55760209061011261048c6105bb565b6024359033610784565b8490843461056e578260031936011261056e5782600354600181811c90808316928315610564575b60209384841081146102c3578388529081156102a7575060011461050e57505050829003601f01601f191682019267ffffffffffffffff84118385101761023f575082918261023b925282610572565b600387529192508591837fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b8385106105505750505050830101858080610209565b80548886018301529301928490820161053a565b91607f16916104be565b8280fd5b6020808252825181830181905290939260005b8281106105a757505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610585565b600435906001600160a01b03821682036105d157565b600080fd5b602435906001600160a01b03821682036105d157565b919082018092116105f957565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b0390811691821561073157169182156106e05760008281528060205260408120549180831061068c57604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9587602096528286520382822055868152206106818282546105ec565b9055604051908152a3565b60405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608490fd5b60405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608490fd5b60405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608490fd5b6001600160a01b0390811691821561083557169182156107e55760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925918360005260018252604060002085600052825280604060002055604051908152a3565b60405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608490fd5b60405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608490fdfea2646970667358221220bc638fb6385249a1e52fd832a2ee218efbe97ca953308423b36ceca2cdb87c9b64736f6c63430008120033","opcodes":"PUSH1 0x80 PUSH1 0x40 DUP2 DUP2 MSTORE PUSH1 0x4 SWAP2 DUP3 CALLDATASIZE LT ISZERO PUSH2 0x16 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP3 DUP4 CALLDATALOAD PUSH1 0xE0 SHR SWAP2 DUP3 PUSH4 0x6FDDE03 EQ PUSH2 0x496 JUMPI POP DUP2 PUSH4 0x95EA7B3 EQ PUSH2 0x46C JUMPI DUP2 PUSH4 0x18160DDD EQ PUSH2 0x44D JUMPI DUP2 PUSH4 0x23B872DD EQ PUSH2 0x383 JUMPI DUP2 PUSH4 0x313CE567 EQ PUSH2 0x367 JUMPI DUP2 PUSH4 0x39509351 EQ PUSH2 0x317 JUMPI DUP2 PUSH4 0x70A08231 EQ PUSH2 0x2E0 JUMPI DUP2 PUSH4 0x95D89B41 EQ PUSH2 0x1C1 JUMPI DUP2 PUSH4 0xA457C2D7 EQ PUSH2 0x119 JUMPI POP DUP1 PUSH4 0xA9059CBB EQ PUSH2 0xE9 JUMPI PUSH4 0xDD62ED3E EQ PUSH2 0x9E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE PUSH2 0xE5 JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0xE5 JUMPI DUP1 PUSH1 0x20 SWAP3 PUSH2 0xBA PUSH2 0x5BB JUMP JUMPDEST PUSH2 0xC2 PUSH2 0x5D6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND DUP4 MSTORE PUSH1 0x1 DUP7 MSTORE DUP4 DUP4 KECCAK256 SWAP2 AND DUP3 MSTORE DUP5 MSTORE KECCAK256 SLOAD SWAP1 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST POP DUP1 REVERT JUMPDEST POP CALLVALUE PUSH2 0xE5 JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0xE5 JUMPI PUSH1 0x20 SWAP1 PUSH2 0x112 PUSH2 0x108 PUSH2 0x5BB JUMP JUMPDEST PUSH1 0x24 CALLDATALOAD SWAP1 CALLER PUSH2 0x60F JUMP JUMPDEST MLOAD PUSH1 0x1 DUP2 MSTORE RETURN JUMPDEST SWAP1 POP DUP3 CALLVALUE PUSH2 0x1BE JUMPI DUP3 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x1BE JUMPI PUSH2 0x134 PUSH2 0x5BB JUMP JUMPDEST SWAP2 DUP4 PUSH1 0x24 CALLDATALOAD SWAP3 CALLER DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE DUP2 DUP2 KECCAK256 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP7 AND DUP3 MSTORE PUSH1 0x20 MSTORE KECCAK256 SLOAD SWAP1 DUP3 DUP3 LT PUSH2 0x16D JUMPI PUSH1 0x20 DUP6 PUSH2 0x112 DUP6 DUP6 SUB DUP8 CALLER PUSH2 0x784 JUMP JUMPDEST PUSH1 0x84 SWAP1 PUSH1 0x20 DUP7 MLOAD SWAP2 PUSH3 0x461BCD PUSH1 0xE5 SHL DUP4 MSTORE DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE REVERT JUMPDEST DUP1 REVERT JUMPDEST DUP4 DUP4 CALLVALUE PUSH2 0xE5 JUMPI DUP2 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0xE5 JUMPI DUP1 MLOAD SWAP1 DUP3 DUP5 SLOAD PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP1 DUP4 AND SWAP3 DUP4 ISZERO PUSH2 0x2D6 JUMPI JUMPDEST PUSH1 0x20 SWAP4 DUP5 DUP5 LT DUP2 EQ PUSH2 0x2C3 JUMPI DUP4 DUP9 MSTORE SWAP1 DUP2 ISZERO PUSH2 0x2A7 JUMPI POP PUSH1 0x1 EQ PUSH2 0x252 JUMPI JUMPDEST POP POP POP DUP3 SWAP1 SUB PUSH1 0x1F ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP3 PUSH8 0xFFFFFFFFFFFFFFFF DUP5 GT DUP4 DUP6 LT OR PUSH2 0x23F JUMPI POP DUP3 SWAP2 DUP3 PUSH2 0x23B SWAP3 MSTORE DUP3 PUSH2 0x572 JUMP JUMPDEST SUB SWAP1 RETURN JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x41 DUP6 MSTORE PUSH1 0x24 SWAP1 REVERT JUMPDEST DUP8 DUP8 MSTORE SWAP2 SWAP3 POP DUP6 SWAP2 DUP4 PUSH32 0x8A35ACFBC15FF81A39AE7D344FD709F28E8600B4AA8C65C6B64BFE7FE36BD19B JUMPDEST DUP4 DUP6 LT PUSH2 0x293 JUMPI POP POP POP POP DUP4 ADD ADD DUP6 DUP1 DUP1 PUSH2 0x209 JUMP JUMPDEST DUP1 SLOAD DUP9 DUP7 ADD DUP4 ADD MSTORE SWAP4 ADD SWAP3 DUP5 SWAP1 DUP3 ADD PUSH2 0x27D JUMP JUMPDEST PUSH1 0xFF NOT AND DUP8 DUP6 ADD MSTORE POP POP ISZERO ISZERO PUSH1 0x5 SHL DUP5 ADD ADD SWAP1 POP DUP6 DUP1 DUP1 PUSH2 0x209 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP10 MSTORE PUSH1 0x22 DUP11 MSTORE PUSH1 0x24 DUP10 REVERT JUMPDEST SWAP2 PUSH1 0x7F AND SWAP2 PUSH2 0x1EA JUMP JUMPDEST POP POP CALLVALUE PUSH2 0xE5 JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0xE5 JUMPI PUSH1 0x20 SWAP2 DUP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH2 0x308 PUSH2 0x5BB JUMP JUMPDEST AND DUP2 MSTORE DUP1 DUP5 MSTORE KECCAK256 SLOAD SWAP1 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST POP POP CALLVALUE PUSH2 0xE5 JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0xE5 JUMPI PUSH2 0x112 PUSH1 0x20 SWAP3 PUSH2 0x360 PUSH2 0x33A PUSH2 0x5BB JUMP JUMPDEST CALLER DUP4 MSTORE PUSH1 0x1 DUP7 MSTORE DUP5 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND DUP5 MSTORE DUP7 MSTORE SWAP2 DUP5 SWAP1 KECCAK256 SLOAD PUSH1 0x24 CALLDATALOAD SWAP1 PUSH2 0x5EC JUMP JUMPDEST SWAP1 CALLER PUSH2 0x784 JUMP JUMPDEST POP POP CALLVALUE PUSH2 0xE5 JUMPI DUP2 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0xE5 JUMPI PUSH1 0x20 SWAP1 MLOAD PUSH1 0x12 DUP2 MSTORE RETURN JUMPDEST DUP4 SWAP2 POP CALLVALUE PUSH2 0xE5 JUMPI PUSH1 0x60 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0xE5 JUMPI PUSH2 0x39F PUSH2 0x5BB JUMP JUMPDEST PUSH2 0x3A7 PUSH2 0x5D6 JUMP JUMPDEST SWAP2 DUP5 PUSH1 0x44 CALLDATALOAD SWAP5 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP5 AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE DUP2 DUP2 KECCAK256 CALLER DUP3 MSTORE PUSH1 0x20 MSTORE KECCAK256 SLOAD SWAP1 PUSH1 0x0 NOT DUP3 SUB PUSH2 0x3E1 JUMPI JUMPDEST PUSH1 0x20 DUP7 PUSH2 0x112 DUP8 DUP8 DUP8 PUSH2 0x60F JUMP JUMPDEST DUP5 DUP3 LT PUSH2 0x40A JUMPI POP SWAP2 DUP4 SWAP2 PUSH2 0x3FF PUSH1 0x20 SWAP7 SWAP6 PUSH2 0x112 SWAP6 SUB CALLER DUP4 PUSH2 0x784 JUMP JUMPDEST SWAP2 SWAP4 SWAP5 DUP2 SWAP4 POP PUSH2 0x3D3 JUMP JUMPDEST PUSH1 0x64 SWAP1 PUSH1 0x20 DUP8 MLOAD SWAP2 PUSH3 0x461BCD PUSH1 0xE5 SHL DUP4 MSTORE DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH1 0x44 DUP3 ADD MSTORE REVERT JUMPDEST POP POP CALLVALUE PUSH2 0xE5 JUMPI DUP2 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0xE5 JUMPI PUSH1 0x20 SWAP1 PUSH1 0x2 SLOAD SWAP1 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST POP POP CALLVALUE PUSH2 0xE5 JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0xE5 JUMPI PUSH1 0x20 SWAP1 PUSH2 0x112 PUSH2 0x48C PUSH2 0x5BB JUMP JUMPDEST PUSH1 0x24 CALLDATALOAD SWAP1 CALLER PUSH2 0x784 JUMP JUMPDEST DUP5 SWAP1 DUP5 CALLVALUE PUSH2 0x56E JUMPI DUP3 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x56E JUMPI DUP3 PUSH1 0x3 SLOAD PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP1 DUP4 AND SWAP3 DUP4 ISZERO PUSH2 0x564 JUMPI JUMPDEST PUSH1 0x20 SWAP4 DUP5 DUP5 LT DUP2 EQ PUSH2 0x2C3 JUMPI DUP4 DUP9 MSTORE SWAP1 DUP2 ISZERO PUSH2 0x2A7 JUMPI POP PUSH1 0x1 EQ PUSH2 0x50E JUMPI POP POP POP DUP3 SWAP1 SUB PUSH1 0x1F ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP3 PUSH8 0xFFFFFFFFFFFFFFFF DUP5 GT DUP4 DUP6 LT OR PUSH2 0x23F JUMPI POP DUP3 SWAP2 DUP3 PUSH2 0x23B SWAP3 MSTORE DUP3 PUSH2 0x572 JUMP JUMPDEST PUSH1 0x3 DUP8 MSTORE SWAP2 SWAP3 POP DUP6 SWAP2 DUP4 PUSH32 0xC2575A0E9E593C00F959F8C92F12DB2869C3395A3B0502D05E2516446F71F85B JUMPDEST DUP4 DUP6 LT PUSH2 0x550 JUMPI POP POP POP POP DUP4 ADD ADD DUP6 DUP1 DUP1 PUSH2 0x209 JUMP JUMPDEST DUP1 SLOAD DUP9 DUP7 ADD DUP4 ADD MSTORE SWAP4 ADD SWAP3 DUP5 SWAP1 DUP3 ADD PUSH2 0x53A JUMP JUMPDEST SWAP2 PUSH1 0x7F AND SWAP2 PUSH2 0x4BE JUMP JUMPDEST DUP3 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP3 MLOAD DUP2 DUP4 ADD DUP2 SWAP1 MSTORE SWAP1 SWAP4 SWAP3 PUSH1 0x0 JUMPDEST DUP3 DUP2 LT PUSH2 0x5A7 JUMPI POP POP PUSH1 0x40 SWAP3 SWAP4 POP PUSH1 0x0 DUP4 DUP3 DUP5 ADD ADD MSTORE PUSH1 0x1F DUP1 NOT SWAP2 ADD AND ADD ADD SWAP1 JUMP JUMPDEST DUP2 DUP2 ADD DUP7 ADD MLOAD DUP5 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP6 ADD PUSH2 0x585 JUMP JUMPDEST PUSH1 0x4 CALLDATALOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND DUP3 SUB PUSH2 0x5D1 JUMPI JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x24 CALLDATALOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND DUP3 SUB PUSH2 0x5D1 JUMPI JUMP JUMPDEST SWAP2 SWAP1 DUP3 ADD DUP1 SWAP3 GT PUSH2 0x5F9 JUMPI JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND SWAP2 DUP3 ISZERO PUSH2 0x731 JUMPI AND SWAP2 DUP3 ISZERO PUSH2 0x6E0 JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE DUP1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD SWAP2 DUP1 DUP4 LT PUSH2 0x68C JUMPI PUSH1 0x40 DUP3 DUP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP6 DUP8 PUSH1 0x20 SWAP7 MSTORE DUP3 DUP7 MSTORE SUB DUP3 DUP3 KECCAK256 SSTORE DUP7 DUP2 MSTORE KECCAK256 PUSH2 0x681 DUP3 DUP3 SLOAD PUSH2 0x5EC JUMP JUMPDEST SWAP1 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE LOG3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND SWAP2 DUP3 ISZERO PUSH2 0x835 JUMPI AND SWAP2 DUP3 ISZERO PUSH2 0x7E5 JUMPI PUSH1 0x20 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 DUP4 PUSH1 0x0 MSTORE PUSH1 0x1 DUP3 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 DUP6 PUSH1 0x0 MSTORE DUP3 MSTORE DUP1 PUSH1 0x40 PUSH1 0x0 KECCAK256 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE LOG3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xBC PUSH4 0x8FB63852 0x49 LOG1 0xE5 0x2F 0xD8 ORIGIN LOG2 0xEE 0x21 DUP15 0xFB 0xE9 PUSH29 0xA953308423B36CECA2CDB87C9B64736F6C634300081200330000000000 ","sourceMap":"119:183:43:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;-1:-1:-1;;;;;119:183:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3883:6:25;119:183:43;;:::i;:::-;;;719:10:35;;3883:6:25;:::i;:::-;119:183:43;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;719:10:35;;119:183:43;;;;;;;;;;;;;;;;;;;;;6811:35:25;;;;119:183:43;;;;6947:34:25;119:183:43;;;;719:10:35;6947:34:25;:::i;119:183:43:-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;119:183:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;119:183:43;;;;;-1:-1:-1;;119:183:43;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;119:183:43;;;;;;;;;;;;;;-1:-1:-1;119:183:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;119:183:43;;;;;-1:-1:-1;;119:183:43;;;;;;;;-1:-1:-1;119:183:43;;;;;;-1:-1:-1;;;119:183:43;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;119:183:43;;;;;;;;-1:-1:-1;;;;;119:183:43;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6040:38:25;119:183:43;;6040:38:25;119:183:43;;:::i;:::-;719:10:35;119:183:43;;;;;;;;-1:-1:-1;;;;;119:183:43;;;;;;;;;;;;;;6040:38:25;:::i;:::-;719:10:35;;6040:38:25;:::i;119:183:43:-;;;;;;;;;;;;;;;;;3175:2:25;119:183:43;;;;;;;;;;;;-1:-1:-1;;119:183:43;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;719:10:35;119:183:43;;;;;;10986:17:25;;;10966:37;;10962:243;;119:183:43;;5443:6:25;;;;;;:::i;10962:243::-;11027:26;;;119:183:43;;;;;;11154:25:25;119:183:43;;;5443:6:25;119:183:43;;719:10:35;11154:25:25;;:::i;:::-;10962:243;;;;;;;;119:183:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3331:12:25;119:183:43;;;;;;;;;;;;;;;;;;;;;;;4595:6:25;119:183:43;;:::i;:::-;;;719:10:35;;4595:6:25;:::i;119:183:43:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;119:183:43;;;;;-1:-1:-1;;119:183:43;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;119:183:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;119:183:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;119:183:43;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;;;;119:183:43;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;7484:651:25;-1:-1:-1;;;;;119:183:43;;;;7610:18:25;;119:183:43;;;7688:16:25;;;119:183:43;;7626:1:25;119:183:43;;;;;;;;;;7859:21:25;;;;119:183:43;;;;;8054:26:25;119:183:43;;;;;;;;;;;;;;;;;8015:23:25;119:183:43;;;8015:23:25;:::i;:::-;119:183:43;;;;;;;8054:26:25;7484:651::o;119:183:43:-;;;-1:-1:-1;;;119:183:43;;;;;;;;;;;;;;;;;-1:-1:-1;;;119:183:43;;;;;;;;;;-1:-1:-1;;;119:183:43;;;;;;;;;;;;;;;;;-1:-1:-1;;;119:183:43;;;;;;;;;;-1:-1:-1;;;119:183:43;;;;;;;;;;;;;;;;;-1:-1:-1;;;119:183:43;;;;;;;10119:370:25;-1:-1:-1;;;;;119:183:43;;;;10250:19:25;;119:183:43;;;10328:21:25;;;119:183:43;;;10450:32:25;119:183:43;;10267:1:25;119:183:43;;;;;10267:1:25;119:183:43;;10267:1:25;119:183:43;;;;;10267:1:25;119:183:43;;;;;;;10450:32:25;10119:370::o;119:183:43:-;;;-1:-1:-1;;;119:183:43;;;;;;;;;;;;;;;;;-1:-1:-1;;;119:183:43;;;;;;;;;;-1:-1:-1;;;119:183:43;;;;;;;;;;;;;;;;;-1:-1:-1;;;119:183:43;;;;;;"},"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"}},"metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"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\":{\"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\":{\"contracts/L2.sol\":\"L2\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xe0c8b625a79bac0fe80f17cfb521e072805cc9cef1c96a5caf45b264e74812fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12fd1efc9ad061ef675bd50fb0c8e3c6f2952a09f8df0e3c688b8d81b8918838\",\"dweb:/ipfs/QmawN6PjTwy91pU7ANjCSgbsLc8TDA6hwu9GsFFaNSuhb5\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"contracts/L2.sol\":{\"keccak256\":\"0x41de43e9b7b54e1ffe9232f33a71c4927ac6d4adcb7f690f310244503e081719\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://7f70dcaa48de9418e1c0300dc3f2b3f1390c81bf2334e1472a7681e48777f2ec\",\"dweb:/ipfs/Qmc7wA1CdozJwbWhVBGMMvgo6hQPj5oj4TRLC1N5WQq2cc\"]}},\"version\":1}"}},"contracts/Middle.sol":{"IGreeter":{"abi":[{"inputs":[],"name":"greet","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"","type":"string"}],"name":"setGreeting","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"greet()":"cfae3217","setGreeting(string)":"a4136862"}},"metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"greet\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"setGreeting\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Middle.sol\":\"IGreeter\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"contracts/Middle.sol\":{\"keccak256\":\"0x8b5ca2b3da7ef4caff98f39ba1eb003d926e432e66b3a68f9c725b19267e31f4\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://98718593f3d3e466c5e364824fe0cd3570d1b2d06c4366908f67455dd480a4d6\",\"dweb:/ipfs/QmX9tZh7FDyKjsoPEGZGzQaQ1kZYLvxf4vUGYfDcFjcWF4\"]}},\"version\":1}"},"Middle":{"abi":[{"inputs":[{"internalType":"address","name":"_myAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"callGreeter","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"myAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"newGreeting","type":"string"}],"name":"setGreet","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60803461007457601f6103aa38819003918201601f19168301916001600160401b038311848410176100795780849260209460405283398101031261007457516001600160a01b0381169081900361007457600080546001600160a01b03191691909117905560405161031a90816100908239f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe608060408181526004908136101561001657600080fd5b600092833560e01c90816326b85ee11461021957508381639698086b14610130575063d7b4291c1461004757600080fd5b3461012c578260031936011261012c578254815163cfae321760e01b815292849184919082906001600160a01b03165afa918215610122578392610097575b81518061009385826102b8565b0390f35b9091503d8084833e6100a98183610241565b81019060208183031261011a5780519067ffffffffffffffff821161011e570181601f8201121561011a578051936100e085610279565b926100ed85519485610241565b858452602086840101116101175750610093936101109160208085019101610295565b9038610086565b80fd5b8380fd5b8480fd5b81513d85823e3d90fd5b8280fd5b929050346102155760203660031901126102155767ffffffffffffffff813581811161011e573660238201121561011e578083013561016e81610279565b9161017b86519384610241565b818352366024838301011161021157818792602460209301838601378301015284546001600160a01b031690813b1561020d5785916101ce918651978880948193635209b43160e11b83528983016102b8565b03925af18015610203576101e0578480f35b83116101f0575052388080808480f35b634e487b7160e01b845260419052602483fd5b83513d87823e3d90fd5b8580fd5b8680fd5b5050fd5b84903461023d578160031936011261023d5790546001600160a01b03168152602090f35b5080fd5b90601f8019910116810190811067ffffffffffffffff82111761026357604052565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff811161026357601f01601f191660200190565b60005b8381106102a85750506000910152565b8181015183820152602001610298565b604091602082526102d88151809281602086015260208686019101610295565b601f01601f191601019056fea26469706673582212209f246326f8c7ff4969b718fee6aaa69dd577ca0da481df5e161edd6e211be7ba64736f6c63430008120033","opcodes":"PUSH1 0x80 CALLVALUE PUSH2 0x74 JUMPI PUSH1 0x1F PUSH2 0x3AA CODESIZE DUP2 SWAP1 SUB SWAP2 DUP3 ADD PUSH1 0x1F NOT AND DUP4 ADD SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP4 GT DUP5 DUP5 LT OR PUSH2 0x79 JUMPI DUP1 DUP5 SWAP3 PUSH1 0x20 SWAP5 PUSH1 0x40 MSTORE DUP4 CODECOPY DUP2 ADD SUB SLT PUSH2 0x74 JUMPI MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND SWAP1 DUP2 SWAP1 SUB PUSH2 0x74 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH2 0x31A SWAP1 DUP2 PUSH2 0x90 DUP3 CODECOPY RETURN JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID PUSH1 0x80 PUSH1 0x40 DUP2 DUP2 MSTORE PUSH1 0x4 SWAP1 DUP2 CALLDATASIZE LT ISZERO PUSH2 0x16 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP3 DUP4 CALLDATALOAD PUSH1 0xE0 SHR SWAP1 DUP2 PUSH4 0x26B85EE1 EQ PUSH2 0x219 JUMPI POP DUP4 DUP2 PUSH4 0x9698086B EQ PUSH2 0x130 JUMPI POP PUSH4 0xD7B4291C EQ PUSH2 0x47 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE PUSH2 0x12C JUMPI DUP3 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x12C JUMPI DUP3 SLOAD DUP2 MLOAD PUSH4 0xCFAE3217 PUSH1 0xE0 SHL DUP2 MSTORE SWAP3 DUP5 SWAP2 DUP5 SWAP2 SWAP1 DUP3 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND GAS STATICCALL SWAP2 DUP3 ISZERO PUSH2 0x122 JUMPI DUP4 SWAP3 PUSH2 0x97 JUMPI JUMPDEST DUP2 MLOAD DUP1 PUSH2 0x93 DUP6 DUP3 PUSH2 0x2B8 JUMP JUMPDEST SUB SWAP1 RETURN JUMPDEST SWAP1 SWAP2 POP RETURNDATASIZE DUP1 DUP5 DUP4 RETURNDATACOPY PUSH2 0xA9 DUP2 DUP4 PUSH2 0x241 JUMP JUMPDEST DUP2 ADD SWAP1 PUSH1 0x20 DUP2 DUP4 SUB SLT PUSH2 0x11A JUMPI DUP1 MLOAD SWAP1 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT PUSH2 0x11E JUMPI ADD DUP2 PUSH1 0x1F DUP3 ADD SLT ISZERO PUSH2 0x11A JUMPI DUP1 MLOAD SWAP4 PUSH2 0xE0 DUP6 PUSH2 0x279 JUMP JUMPDEST SWAP3 PUSH2 0xED DUP6 MLOAD SWAP5 DUP6 PUSH2 0x241 JUMP JUMPDEST DUP6 DUP5 MSTORE PUSH1 0x20 DUP7 DUP5 ADD ADD GT PUSH2 0x117 JUMPI POP PUSH2 0x93 SWAP4 PUSH2 0x110 SWAP2 PUSH1 0x20 DUP1 DUP6 ADD SWAP2 ADD PUSH2 0x295 JUMP JUMPDEST SWAP1 CODESIZE PUSH2 0x86 JUMP JUMPDEST DUP1 REVERT JUMPDEST DUP4 DUP1 REVERT JUMPDEST DUP5 DUP1 REVERT JUMPDEST DUP2 MLOAD RETURNDATASIZE DUP6 DUP3 RETURNDATACOPY RETURNDATASIZE SWAP1 REVERT JUMPDEST DUP3 DUP1 REVERT JUMPDEST SWAP3 SWAP1 POP CALLVALUE PUSH2 0x215 JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x215 JUMPI PUSH8 0xFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD DUP2 DUP2 GT PUSH2 0x11E JUMPI CALLDATASIZE PUSH1 0x23 DUP3 ADD SLT ISZERO PUSH2 0x11E JUMPI DUP1 DUP4 ADD CALLDATALOAD PUSH2 0x16E DUP2 PUSH2 0x279 JUMP JUMPDEST SWAP2 PUSH2 0x17B DUP7 MLOAD SWAP4 DUP5 PUSH2 0x241 JUMP JUMPDEST DUP2 DUP4 MSTORE CALLDATASIZE PUSH1 0x24 DUP4 DUP4 ADD ADD GT PUSH2 0x211 JUMPI DUP2 DUP8 SWAP3 PUSH1 0x24 PUSH1 0x20 SWAP4 ADD DUP4 DUP7 ADD CALLDATACOPY DUP4 ADD ADD MSTORE DUP5 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 DUP2 EXTCODESIZE ISZERO PUSH2 0x20D JUMPI DUP6 SWAP2 PUSH2 0x1CE SWAP2 DUP7 MLOAD SWAP8 DUP9 DUP1 SWAP5 DUP2 SWAP4 PUSH4 0x5209B431 PUSH1 0xE1 SHL DUP4 MSTORE DUP10 DUP4 ADD PUSH2 0x2B8 JUMP JUMPDEST SUB SWAP3 GAS CALL DUP1 ISZERO PUSH2 0x203 JUMPI PUSH2 0x1E0 JUMPI DUP5 DUP1 RETURN JUMPDEST DUP4 GT PUSH2 0x1F0 JUMPI POP MSTORE CODESIZE DUP1 DUP1 DUP1 DUP5 DUP1 RETURN JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP5 MSTORE PUSH1 0x41 SWAP1 MSTORE PUSH1 0x24 DUP4 REVERT JUMPDEST DUP4 MLOAD RETURNDATASIZE DUP8 DUP3 RETURNDATACOPY RETURNDATASIZE SWAP1 REVERT JUMPDEST DUP6 DUP1 REVERT JUMPDEST DUP7 DUP1 REVERT JUMPDEST POP POP REVERT JUMPDEST DUP5 SWAP1 CALLVALUE PUSH2 0x23D JUMPI DUP2 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x23D JUMPI SWAP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 SWAP1 RETURN JUMPDEST POP DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x1F DUP1 NOT SWAP2 ADD AND DUP2 ADD SWAP1 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR PUSH2 0x263 JUMPI PUSH1 0x40 MSTORE JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT PUSH2 0x263 JUMPI PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT PUSH2 0x2A8 JUMPI POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x298 JUMP JUMPDEST PUSH1 0x40 SWAP2 PUSH1 0x20 DUP3 MSTORE PUSH2 0x2D8 DUP2 MLOAD DUP1 SWAP3 DUP2 PUSH1 0x20 DUP7 ADD MSTORE PUSH1 0x20 DUP7 DUP7 ADD SWAP2 ADD PUSH2 0x295 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND ADD ADD SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP16 0x24 PUSH4 0x26F8C7FF 0x49 PUSH10 0xB718FEE6AAA69DD577CA 0xD LOG4 DUP2 0xDF 0x5E AND 0x1E 0xDD PUSH15 0x211BE7BA64736F6C63430008120033 ","sourceMap":"197:365:44:-:0;;;;;;;;;;;;;-1:-1:-1;;197:365:44;;;;-1:-1:-1;;;;;197:365:44;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;197:365:44;;;;;;;;-1:-1:-1;197:365:44;;-1:-1:-1;;;;;;197:365:44;;;;;;;;;;;;;;;;;-1:-1:-1;197:365:44;;;;;;-1:-1:-1;197:365:44;;;;;-1:-1:-1;197:365:44"},"deployedBytecode":{"functionDebugData":{"abi_encode_string":{"entryPoint":696,"id":null,"parameterSlots":2,"returnSlots":1},"array_allocation_size_string":{"entryPoint":633,"id":null,"parameterSlots":1,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":661,"id":null,"parameterSlots":3,"returnSlots":0},"finalize_allocation":{"entryPoint":577,"id":null,"parameterSlots":2,"returnSlots":0}},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"608060408181526004908136101561001657600080fd5b600092833560e01c90816326b85ee11461021957508381639698086b14610130575063d7b4291c1461004757600080fd5b3461012c578260031936011261012c578254815163cfae321760e01b815292849184919082906001600160a01b03165afa918215610122578392610097575b81518061009385826102b8565b0390f35b9091503d8084833e6100a98183610241565b81019060208183031261011a5780519067ffffffffffffffff821161011e570181601f8201121561011a578051936100e085610279565b926100ed85519485610241565b858452602086840101116101175750610093936101109160208085019101610295565b9038610086565b80fd5b8380fd5b8480fd5b81513d85823e3d90fd5b8280fd5b929050346102155760203660031901126102155767ffffffffffffffff813581811161011e573660238201121561011e578083013561016e81610279565b9161017b86519384610241565b818352366024838301011161021157818792602460209301838601378301015284546001600160a01b031690813b1561020d5785916101ce918651978880948193635209b43160e11b83528983016102b8565b03925af18015610203576101e0578480f35b83116101f0575052388080808480f35b634e487b7160e01b845260419052602483fd5b83513d87823e3d90fd5b8580fd5b8680fd5b5050fd5b84903461023d578160031936011261023d5790546001600160a01b03168152602090f35b5080fd5b90601f8019910116810190811067ffffffffffffffff82111761026357604052565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff811161026357601f01601f191660200190565b60005b8381106102a85750506000910152565b8181015183820152602001610298565b604091602082526102d88151809281602086015260208686019101610295565b601f01601f191601019056fea26469706673582212209f246326f8c7ff4969b718fee6aaa69dd577ca0da481df5e161edd6e211be7ba64736f6c63430008120033","opcodes":"PUSH1 0x80 PUSH1 0x40 DUP2 DUP2 MSTORE PUSH1 0x4 SWAP1 DUP2 CALLDATASIZE LT ISZERO PUSH2 0x16 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP3 DUP4 CALLDATALOAD PUSH1 0xE0 SHR SWAP1 DUP2 PUSH4 0x26B85EE1 EQ PUSH2 0x219 JUMPI POP DUP4 DUP2 PUSH4 0x9698086B EQ PUSH2 0x130 JUMPI POP PUSH4 0xD7B4291C EQ PUSH2 0x47 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE PUSH2 0x12C JUMPI DUP3 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x12C JUMPI DUP3 SLOAD DUP2 MLOAD PUSH4 0xCFAE3217 PUSH1 0xE0 SHL DUP2 MSTORE SWAP3 DUP5 SWAP2 DUP5 SWAP2 SWAP1 DUP3 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND GAS STATICCALL SWAP2 DUP3 ISZERO PUSH2 0x122 JUMPI DUP4 SWAP3 PUSH2 0x97 JUMPI JUMPDEST DUP2 MLOAD DUP1 PUSH2 0x93 DUP6 DUP3 PUSH2 0x2B8 JUMP JUMPDEST SUB SWAP1 RETURN JUMPDEST SWAP1 SWAP2 POP RETURNDATASIZE DUP1 DUP5 DUP4 RETURNDATACOPY PUSH2 0xA9 DUP2 DUP4 PUSH2 0x241 JUMP JUMPDEST DUP2 ADD SWAP1 PUSH1 0x20 DUP2 DUP4 SUB SLT PUSH2 0x11A JUMPI DUP1 MLOAD SWAP1 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT PUSH2 0x11E JUMPI ADD DUP2 PUSH1 0x1F DUP3 ADD SLT ISZERO PUSH2 0x11A JUMPI DUP1 MLOAD SWAP4 PUSH2 0xE0 DUP6 PUSH2 0x279 JUMP JUMPDEST SWAP3 PUSH2 0xED DUP6 MLOAD SWAP5 DUP6 PUSH2 0x241 JUMP JUMPDEST DUP6 DUP5 MSTORE PUSH1 0x20 DUP7 DUP5 ADD ADD GT PUSH2 0x117 JUMPI POP PUSH2 0x93 SWAP4 PUSH2 0x110 SWAP2 PUSH1 0x20 DUP1 DUP6 ADD SWAP2 ADD PUSH2 0x295 JUMP JUMPDEST SWAP1 CODESIZE PUSH2 0x86 JUMP JUMPDEST DUP1 REVERT JUMPDEST DUP4 DUP1 REVERT JUMPDEST DUP5 DUP1 REVERT JUMPDEST DUP2 MLOAD RETURNDATASIZE DUP6 DUP3 RETURNDATACOPY RETURNDATASIZE SWAP1 REVERT JUMPDEST DUP3 DUP1 REVERT JUMPDEST SWAP3 SWAP1 POP CALLVALUE PUSH2 0x215 JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x215 JUMPI PUSH8 0xFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD DUP2 DUP2 GT PUSH2 0x11E JUMPI CALLDATASIZE PUSH1 0x23 DUP3 ADD SLT ISZERO PUSH2 0x11E JUMPI DUP1 DUP4 ADD CALLDATALOAD PUSH2 0x16E DUP2 PUSH2 0x279 JUMP JUMPDEST SWAP2 PUSH2 0x17B DUP7 MLOAD SWAP4 DUP5 PUSH2 0x241 JUMP JUMPDEST DUP2 DUP4 MSTORE CALLDATASIZE PUSH1 0x24 DUP4 DUP4 ADD ADD GT PUSH2 0x211 JUMPI DUP2 DUP8 SWAP3 PUSH1 0x24 PUSH1 0x20 SWAP4 ADD DUP4 DUP7 ADD CALLDATACOPY DUP4 ADD ADD MSTORE DUP5 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 DUP2 EXTCODESIZE ISZERO PUSH2 0x20D JUMPI DUP6 SWAP2 PUSH2 0x1CE SWAP2 DUP7 MLOAD SWAP8 DUP9 DUP1 SWAP5 DUP2 SWAP4 PUSH4 0x5209B431 PUSH1 0xE1 SHL DUP4 MSTORE DUP10 DUP4 ADD PUSH2 0x2B8 JUMP JUMPDEST SUB SWAP3 GAS CALL DUP1 ISZERO PUSH2 0x203 JUMPI PUSH2 0x1E0 JUMPI DUP5 DUP1 RETURN JUMPDEST DUP4 GT PUSH2 0x1F0 JUMPI POP MSTORE CODESIZE DUP1 DUP1 DUP1 DUP5 DUP1 RETURN JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP5 MSTORE PUSH1 0x41 SWAP1 MSTORE PUSH1 0x24 DUP4 REVERT JUMPDEST DUP4 MLOAD RETURNDATASIZE DUP8 DUP3 RETURNDATACOPY RETURNDATASIZE SWAP1 REVERT JUMPDEST DUP6 DUP1 REVERT JUMPDEST DUP7 DUP1 REVERT JUMPDEST POP POP REVERT JUMPDEST DUP5 SWAP1 CALLVALUE PUSH2 0x23D JUMPI DUP2 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x23D JUMPI SWAP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 SWAP1 RETURN JUMPDEST POP DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x1F DUP1 NOT SWAP2 ADD AND DUP2 ADD SWAP1 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR PUSH2 0x263 JUMPI PUSH1 0x40 MSTORE JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT PUSH2 0x263 JUMPI PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT PUSH2 0x2A8 JUMPI POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x298 JUMP JUMPDEST PUSH1 0x40 SWAP2 PUSH1 0x20 DUP3 MSTORE PUSH2 0x2D8 DUP2 MLOAD DUP1 SWAP3 DUP2 PUSH1 0x20 DUP7 ADD MSTORE PUSH1 0x20 DUP7 DUP7 ADD SWAP2 ADD PUSH2 0x295 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND ADD ADD SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP16 0x24 PUSH4 0x26F8C7FF 0x49 PUSH10 0xB718FEE6AAA69DD577CA 0xD LOG4 DUP2 0xDF 0x5E AND 0x1E 0xDD PUSH15 0x211BE7BA64736F6C63430008120033 ","sourceMap":"197:365:44:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;526:27:44;;197:365;;;;;;;;-1:-1:-1;;;;;197:365:44;526:27;;;;;;;;;;;197:365;;;;;;;;:::i;:::-;;;;526:27;;;;;;;;;;;;;:::i;:::-;;;197:365;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;526:27;;;;197:365;;;;;;;;;;;526:27;197:365;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;197:365:44;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;197:365:44;;391:44;;;;;197:365;;391:44;197:365;;;;;;;;;;;;391:44;;;;;;:::i;:::-;;;;;;;;;;;197:365;;;391:44;197:365;;;;;;391:44;;;;197:365;;;;-1:-1:-1;;;197:365:44;;;;;;;;391:44;197:365;;;;;;;;;391:44;197:365;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;197:365:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;197:365:44;;;;:::o;:::-;;;;;;;;-1:-1:-1;;197:365:44;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;197:365:44;;;;:::o"},"methodIdentifiers":{"callGreeter()":"d7b4291c","myAddress()":"26b85ee1","setGreet(string)":"9698086b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_myAddress\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"callGreeter\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"myAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"newGreeting\",\"type\":\"string\"}],\"name\":\"setGreet\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Middle.sol\":\"Middle\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"contracts/Middle.sol\":{\"keccak256\":\"0x8b5ca2b3da7ef4caff98f39ba1eb003d926e432e66b3a68f9c725b19267e31f4\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://98718593f3d3e466c5e364824fe0cd3570d1b2d06c4366908f67455dd480a4d6\",\"dweb:/ipfs/QmX9tZh7FDyKjsoPEGZGzQaQ1kZYLvxf4vUGYfDcFjcWF4\"]}},\"version\":1}"}},"contracts/MultiTransfer.sol":{"TokenF2L2":{"abi":[{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_timestamp","type":"uint256"}],"name":"Paid","type":"event"},{"inputs":[],"name":"getBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_recivers","type":"address[]"},{"internalType":"address[]","name":"_tokenAddresses","type":"address[]"},{"internalType":"uint256[]","name":"_tokenAmounts","type":"uint256[]"}],"name":"multiTransfer","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pay","outputs":[],"stateMutability":"payable","type":"function"},{"stateMutability":"payable","type":"receive"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60803461007457601f61082a38819003918201601f19168301916001600160401b038311848410176100795780849260209460405283398101031261007457516001600160a01b0381169081900361007457600080546001600160a01b03191691909117905560405161079a90816100908239f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe60806040526004361015610023575b361561001957600080fd5b610021610275565b005b6000803560e01c90816312065fe01461007a5781631b9265b814610061575080638da5cb5b1461005c5763cd72250d0361000e576101bd565b610094565b8060031936011261007757610074610275565b80f35b80fd5b346100775780600319360112610077574760805260206080f35b346100bd5760003660031901126100bd576000546040516001600160a01b039091168152602090f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b6080810190811067ffffffffffffffff8211176100f457604052565b6100c2565b6040810190811067ffffffffffffffff8211176100f457604052565b90601f8019910116810190811067ffffffffffffffff8211176100f457604052565b67ffffffffffffffff81116100f45760051b60200190565b81601f820112156100bd5780359161016683610137565b926101746040519485610115565b808452602092838086019260051b8201019283116100bd578301905b82821061019e575050505090565b81356001600160a01b03811681036100bd578152908301908301610190565b60603660031901126100bd5767ffffffffffffffff6004358181116100bd576101ea90369060040161014f565b906024358181116100bd5761020390369060040161014f565b6044359182116100bd57366023830112156100bd5781600401359261022784610137565b926102356040519485610115565b84845260209460248686019160051b830101913683116100bd57602401905b828210610266576100218686866102a9565b81358152908601908601610254565b6040513481524260208201527fdf9a51129930649214df58f542322c245372c6f2fa6fc3c9b40d927c597cd23060403392a2565b60005491939290916001600160a01b0316330361037d576102cd84518251146103ba565b6102da84518351146103ba565b60005b845181101561037657806103136103076102fa610340948961042a565b516001600160a01b031690565b6001600160a01b031690565b6103455761033b61032a6103076102fa848861042a565b610334838661042a565b519061060e565b610405565b6102dd565b61033b6103586103076102fa848a61042a565b6103656102fa848861042a565b61036f848761042a565b5191610454565b5050509050565b60405162461bcd60e51b81526020600482015260156024820152742cb7ba9030b932903737ba103a34329037bbb732b960591b6044820152606490fd5b156103c157565b606460405162461bcd60e51b815260206004820152602060248201527f417272617973206d7573742068617665207468652073616d65206c656e6774686044820152fd5b60001981146104145760010190565b634e487b7160e01b600052601160045260246000fd5b805182101561043e5760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b60405163a9059cbb60e01b60208083019182526001600160a01b03948516602484015260448084019690965294825290929091610490846100d8565b16906040519261049f846100f9565b8484527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656485850152823b15610512576104eb939260009283809351925af16104e56105ce565b906106e9565b805190816104f857505050565b826105109361050b938301019101610557565b61056f565b565b60405162461bcd60e51b815260048101869052601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b908160209103126100bd575180151581036100bd5790565b1561057657565b60405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608490fd5b3d15610609573d9067ffffffffffffffff82116100f457604051916105fd601f8201601f191660200184610115565b82523d6000602084013e565b606090565b8147106106a4576000918291829182916001600160a01b03165af16106316105ce565b501561063957565b60405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608490fd5b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606490fd5b909190156106f5575090565b8151156107055750805190602001fd5b6040519062461bcd60e51b82528160208060048301528251908160248401526000935b82851061074b575050604492506000838284010152601f80199101168101030190fd5b848101820151868601604401529381019385935061072856fea264697066735822122060555dc8e10dce7d7d6e3e1a4e2f44d4de56d3ebdece296c24ffaa6553a61a1564736f6c63430008120033","opcodes":"PUSH1 0x80 CALLVALUE PUSH2 0x74 JUMPI PUSH1 0x1F PUSH2 0x82A CODESIZE DUP2 SWAP1 SUB SWAP2 DUP3 ADD PUSH1 0x1F NOT AND DUP4 ADD SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP4 GT DUP5 DUP5 LT OR PUSH2 0x79 JUMPI DUP1 DUP5 SWAP3 PUSH1 0x20 SWAP5 PUSH1 0x40 MSTORE DUP4 CODECOPY DUP2 ADD SUB SLT PUSH2 0x74 JUMPI MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND SWAP1 DUP2 SWAP1 SUB PUSH2 0x74 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH2 0x79A SWAP1 DUP2 PUSH2 0x90 DUP3 CODECOPY RETURN JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT ISZERO PUSH2 0x23 JUMPI JUMPDEST CALLDATASIZE ISZERO PUSH2 0x19 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x21 PUSH2 0x275 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 CALLDATALOAD PUSH1 0xE0 SHR SWAP1 DUP2 PUSH4 0x12065FE0 EQ PUSH2 0x7A JUMPI DUP2 PUSH4 0x1B9265B8 EQ PUSH2 0x61 JUMPI POP DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x5C JUMPI PUSH4 0xCD72250D SUB PUSH2 0xE JUMPI PUSH2 0x1BD JUMP JUMPDEST PUSH2 0x94 JUMP JUMPDEST DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x77 JUMPI PUSH2 0x74 PUSH2 0x275 JUMP JUMPDEST DUP1 RETURN JUMPDEST DUP1 REVERT JUMPDEST CALLVALUE PUSH2 0x77 JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x77 JUMPI SELFBALANCE PUSH1 0x80 MSTORE PUSH1 0x20 PUSH1 0x80 RETURN JUMPDEST CALLVALUE PUSH2 0xBD JUMPI PUSH1 0x0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0xBD JUMPI PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x80 DUP2 ADD SWAP1 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR PUSH2 0xF4 JUMPI PUSH1 0x40 MSTORE JUMP JUMPDEST PUSH2 0xC2 JUMP JUMPDEST PUSH1 0x40 DUP2 ADD SWAP1 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR PUSH2 0xF4 JUMPI PUSH1 0x40 MSTORE JUMP JUMPDEST SWAP1 PUSH1 0x1F DUP1 NOT SWAP2 ADD AND DUP2 ADD SWAP1 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR PUSH2 0xF4 JUMPI PUSH1 0x40 MSTORE JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT PUSH2 0xF4 JUMPI PUSH1 0x5 SHL PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST DUP2 PUSH1 0x1F DUP3 ADD SLT ISZERO PUSH2 0xBD JUMPI DUP1 CALLDATALOAD SWAP2 PUSH2 0x166 DUP4 PUSH2 0x137 JUMP JUMPDEST SWAP3 PUSH2 0x174 PUSH1 0x40 MLOAD SWAP5 DUP6 PUSH2 0x115 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 SWAP3 DUP4 DUP1 DUP7 ADD SWAP3 PUSH1 0x5 SHL DUP3 ADD ADD SWAP3 DUP4 GT PUSH2 0xBD JUMPI DUP4 ADD SWAP1 JUMPDEST DUP3 DUP3 LT PUSH2 0x19E JUMPI POP POP POP POP SWAP1 JUMP JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 SUB PUSH2 0xBD JUMPI DUP2 MSTORE SWAP1 DUP4 ADD SWAP1 DUP4 ADD PUSH2 0x190 JUMP JUMPDEST PUSH1 0x60 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0xBD JUMPI PUSH8 0xFFFFFFFFFFFFFFFF PUSH1 0x4 CALLDATALOAD DUP2 DUP2 GT PUSH2 0xBD JUMPI PUSH2 0x1EA SWAP1 CALLDATASIZE SWAP1 PUSH1 0x4 ADD PUSH2 0x14F JUMP JUMPDEST SWAP1 PUSH1 0x24 CALLDATALOAD DUP2 DUP2 GT PUSH2 0xBD JUMPI PUSH2 0x203 SWAP1 CALLDATASIZE SWAP1 PUSH1 0x4 ADD PUSH2 0x14F JUMP JUMPDEST PUSH1 0x44 CALLDATALOAD SWAP2 DUP3 GT PUSH2 0xBD JUMPI CALLDATASIZE PUSH1 0x23 DUP4 ADD SLT ISZERO PUSH2 0xBD JUMPI DUP2 PUSH1 0x4 ADD CALLDATALOAD SWAP3 PUSH2 0x227 DUP5 PUSH2 0x137 JUMP JUMPDEST SWAP3 PUSH2 0x235 PUSH1 0x40 MLOAD SWAP5 DUP6 PUSH2 0x115 JUMP JUMPDEST DUP5 DUP5 MSTORE PUSH1 0x20 SWAP5 PUSH1 0x24 DUP7 DUP7 ADD SWAP2 PUSH1 0x5 SHL DUP4 ADD ADD SWAP2 CALLDATASIZE DUP4 GT PUSH2 0xBD JUMPI PUSH1 0x24 ADD SWAP1 JUMPDEST DUP3 DUP3 LT PUSH2 0x266 JUMPI PUSH2 0x21 DUP7 DUP7 DUP7 PUSH2 0x2A9 JUMP JUMPDEST DUP2 CALLDATALOAD DUP2 MSTORE SWAP1 DUP7 ADD SWAP1 DUP7 ADD PUSH2 0x254 JUMP JUMPDEST PUSH1 0x40 MLOAD CALLVALUE DUP2 MSTORE TIMESTAMP PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0xDF9A51129930649214DF58F542322C245372C6F2FA6FC3C9B40D927C597CD230 PUSH1 0x40 CALLER SWAP3 LOG2 JUMP JUMPDEST PUSH1 0x0 SLOAD SWAP2 SWAP4 SWAP3 SWAP1 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER SUB PUSH2 0x37D JUMPI PUSH2 0x2CD DUP5 MLOAD DUP3 MLOAD EQ PUSH2 0x3BA JUMP JUMPDEST PUSH2 0x2DA DUP5 MLOAD DUP4 MLOAD EQ PUSH2 0x3BA JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0x376 JUMPI DUP1 PUSH2 0x313 PUSH2 0x307 PUSH2 0x2FA PUSH2 0x340 SWAP5 DUP10 PUSH2 0x42A JUMP JUMPDEST MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH2 0x345 JUMPI PUSH2 0x33B PUSH2 0x32A PUSH2 0x307 PUSH2 0x2FA DUP5 DUP9 PUSH2 0x42A JUMP JUMPDEST PUSH2 0x334 DUP4 DUP7 PUSH2 0x42A JUMP JUMPDEST MLOAD SWAP1 PUSH2 0x60E JUMP JUMPDEST PUSH2 0x405 JUMP JUMPDEST PUSH2 0x2DD JUMP JUMPDEST PUSH2 0x33B PUSH2 0x358 PUSH2 0x307 PUSH2 0x2FA DUP5 DUP11 PUSH2 0x42A JUMP JUMPDEST PUSH2 0x365 PUSH2 0x2FA DUP5 DUP9 PUSH2 0x42A JUMP JUMPDEST PUSH2 0x36F DUP5 DUP8 PUSH2 0x42A JUMP JUMPDEST MLOAD SWAP2 PUSH2 0x454 JUMP JUMPDEST POP POP POP SWAP1 POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH21 0x2CB7BA9030B932903737BA103A34329037BBB732B9 PUSH1 0x59 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 SWAP1 REVERT JUMPDEST ISZERO PUSH2 0x3C1 JUMPI JUMP JUMPDEST PUSH1 0x64 PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x20 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x417272617973206D7573742068617665207468652073616D65206C656E677468 PUSH1 0x44 DUP3 ADD MSTORE REVERT JUMPDEST PUSH1 0x0 NOT DUP2 EQ PUSH2 0x414 JUMPI PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 MLOAD DUP3 LT ISZERO PUSH2 0x43E JUMPI PUSH1 0x20 SWAP2 PUSH1 0x5 SHL ADD ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xA9059CBB PUSH1 0xE0 SHL PUSH1 0x20 DUP1 DUP4 ADD SWAP2 DUP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP5 DUP6 AND PUSH1 0x24 DUP5 ADD MSTORE PUSH1 0x44 DUP1 DUP5 ADD SWAP7 SWAP1 SWAP7 MSTORE SWAP5 DUP3 MSTORE SWAP1 SWAP3 SWAP1 SWAP2 PUSH2 0x490 DUP5 PUSH2 0xD8 JUMP JUMPDEST AND SWAP1 PUSH1 0x40 MLOAD SWAP3 PUSH2 0x49F DUP5 PUSH2 0xF9 JUMP JUMPDEST DUP5 DUP5 MSTORE PUSH32 0x5361666545524332303A206C6F772D6C6576656C2063616C6C206661696C6564 DUP6 DUP6 ADD MSTORE DUP3 EXTCODESIZE ISZERO PUSH2 0x512 JUMPI PUSH2 0x4EB SWAP4 SWAP3 PUSH1 0x0 SWAP3 DUP4 DUP1 SWAP4 MLOAD SWAP3 GAS CALL PUSH2 0x4E5 PUSH2 0x5CE JUMP JUMPDEST SWAP1 PUSH2 0x6E9 JUMP JUMPDEST DUP1 MLOAD SWAP1 DUP2 PUSH2 0x4F8 JUMPI POP POP POP JUMP JUMPDEST DUP3 PUSH2 0x510 SWAP4 PUSH2 0x50B SWAP4 DUP4 ADD ADD SWAP2 ADD PUSH2 0x557 JUMP JUMPDEST PUSH2 0x56F JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416464726573733A2063616C6C20746F206E6F6E2D636F6E7472616374000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 SWAP1 REVERT JUMPDEST SWAP1 DUP2 PUSH1 0x20 SWAP2 SUB SLT PUSH2 0xBD JUMPI MLOAD DUP1 ISZERO ISZERO DUP2 SUB PUSH2 0xBD JUMPI SWAP1 JUMP JUMPDEST ISZERO PUSH2 0x576 JUMPI JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5361666545524332303A204552433230206F7065726174696F6E20646964206E PUSH1 0x44 DUP3 ADD MSTORE PUSH10 0x1BDD081CDD58D8D95959 PUSH1 0xB2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST RETURNDATASIZE ISZERO PUSH2 0x609 JUMPI RETURNDATASIZE SWAP1 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT PUSH2 0xF4 JUMPI PUSH1 0x40 MLOAD SWAP2 PUSH2 0x5FD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP5 PUSH2 0x115 JUMP JUMPDEST DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY JUMP JUMPDEST PUSH1 0x60 SWAP1 JUMP JUMPDEST DUP2 SELFBALANCE LT PUSH2 0x6A4 JUMPI PUSH1 0x0 SWAP2 DUP3 SWAP2 DUP3 SWAP2 DUP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND GAS CALL PUSH2 0x631 PUSH2 0x5CE JUMP JUMPDEST POP ISZERO PUSH2 0x639 JUMPI JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416464726573733A20756E61626C6520746F2073656E642076616C75652C2072 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6563697069656E74206D61792068617665207265766572746564000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416464726573733A20696E73756666696369656E742062616C616E6365000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 SWAP1 REVERT JUMPDEST SWAP1 SWAP2 SWAP1 ISZERO PUSH2 0x6F5 JUMPI POP SWAP1 JUMP JUMPDEST DUP2 MLOAD ISZERO PUSH2 0x705 JUMPI POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x40 MLOAD SWAP1 PUSH3 0x461BCD PUSH1 0xE5 SHL DUP3 MSTORE DUP2 PUSH1 0x20 DUP1 PUSH1 0x4 DUP4 ADD MSTORE DUP3 MLOAD SWAP1 DUP2 PUSH1 0x24 DUP5 ADD MSTORE PUSH1 0x0 SWAP4 JUMPDEST DUP3 DUP6 LT PUSH2 0x74B JUMPI POP POP PUSH1 0x44 SWAP3 POP PUSH1 0x0 DUP4 DUP3 DUP5 ADD ADD MSTORE PUSH1 0x1F DUP1 NOT SWAP2 ADD AND DUP2 ADD SUB ADD SWAP1 REVERT JUMPDEST DUP5 DUP2 ADD DUP3 ADD MLOAD DUP7 DUP7 ADD PUSH1 0x44 ADD MSTORE SWAP4 DUP2 ADD SWAP4 DUP6 SWAP4 POP PUSH2 0x728 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH1 0x55 0x5D 0xC8 0xE1 0xD 0xCE PUSH30 0x7D6E3E1A4E2F44D4DE56D3EBDECE296C24FFAA6553A61A1564736F6C6343 STOP ADDMOD SLT STOP CALLER ","sourceMap":"241:1843:45:-:0;;;;;;;;;;;;;-1:-1:-1;;241:1843:45;;;;-1:-1:-1;;;;;241:1843:45;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;241:1843:45;;;;;;;;-1:-1:-1;241:1843:45;;-1:-1:-1;;;;;;241:1843:45;;;;;;;;;;;;;;;;;-1:-1:-1;241:1843:45;;;;;;-1:-1:-1;241:1843:45;;;;;-1:-1:-1;241:1843:45"},"deployedBytecode":{"functionDebugData":{"abi_decode_array_address_dyn":{"entryPoint":335,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_bool_fromMemory":{"entryPoint":1367,"id":null,"parameterSlots":2,"returnSlots":1},"array_allocation_size_array_address_dyn":{"entryPoint":311,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_address":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"external_fun_multiTransfer":{"entryPoint":445,"id":null,"parameterSlots":0,"returnSlots":0},"external_fun_owner":{"entryPoint":148,"id":null,"parameterSlots":0,"returnSlots":0},"extract_returndata":{"entryPoint":1486,"id":null,"parameterSlots":0,"returnSlots":1},"finalize_allocation":{"entryPoint":277,"id":null,"parameterSlots":2,"returnSlots":0},"finalize_allocation_4170":{"entryPoint":216,"id":null,"parameterSlots":1,"returnSlots":0},"finalize_allocation_4171":{"entryPoint":249,"id":null,"parameterSlots":1,"returnSlots":0},"fun_pay":{"entryPoint":629,"id":8709,"parameterSlots":0,"returnSlots":0},"fun_safeTransfer":{"entryPoint":1108,"id":6470,"parameterSlots":3,"returnSlots":0},"fun_sendValue":{"entryPoint":1550,"id":7870,"parameterSlots":2,"returnSlots":0},"fun_verifyCallResult":{"entryPoint":1769,"id":8112,"parameterSlots":3,"returnSlots":1},"increment_uint256":{"entryPoint":1029,"id":null,"parameterSlots":1,"returnSlots":1},"memory_array_index_access_address_dyn":{"entryPoint":1066,"id":null,"parameterSlots":2,"returnSlots":1},"modifier_onlyOwner":{"entryPoint":681,"id":8753,"parameterSlots":3,"returnSlots":0},"panic_error_0x41":{"entryPoint":194,"id":null,"parameterSlots":0,"returnSlots":0},"read_from_memoryt_address":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"require_helper_stringliteral_23c3":{"entryPoint":954,"id":null,"parameterSlots":1,"returnSlots":0},"require_helper_stringliteral_e11a":{"entryPoint":1391,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"60806040526004361015610023575b361561001957600080fd5b610021610275565b005b6000803560e01c90816312065fe01461007a5781631b9265b814610061575080638da5cb5b1461005c5763cd72250d0361000e576101bd565b610094565b8060031936011261007757610074610275565b80f35b80fd5b346100775780600319360112610077574760805260206080f35b346100bd5760003660031901126100bd576000546040516001600160a01b039091168152602090f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b6080810190811067ffffffffffffffff8211176100f457604052565b6100c2565b6040810190811067ffffffffffffffff8211176100f457604052565b90601f8019910116810190811067ffffffffffffffff8211176100f457604052565b67ffffffffffffffff81116100f45760051b60200190565b81601f820112156100bd5780359161016683610137565b926101746040519485610115565b808452602092838086019260051b8201019283116100bd578301905b82821061019e575050505090565b81356001600160a01b03811681036100bd578152908301908301610190565b60603660031901126100bd5767ffffffffffffffff6004358181116100bd576101ea90369060040161014f565b906024358181116100bd5761020390369060040161014f565b6044359182116100bd57366023830112156100bd5781600401359261022784610137565b926102356040519485610115565b84845260209460248686019160051b830101913683116100bd57602401905b828210610266576100218686866102a9565b81358152908601908601610254565b6040513481524260208201527fdf9a51129930649214df58f542322c245372c6f2fa6fc3c9b40d927c597cd23060403392a2565b60005491939290916001600160a01b0316330361037d576102cd84518251146103ba565b6102da84518351146103ba565b60005b845181101561037657806103136103076102fa610340948961042a565b516001600160a01b031690565b6001600160a01b031690565b6103455761033b61032a6103076102fa848861042a565b610334838661042a565b519061060e565b610405565b6102dd565b61033b6103586103076102fa848a61042a565b6103656102fa848861042a565b61036f848761042a565b5191610454565b5050509050565b60405162461bcd60e51b81526020600482015260156024820152742cb7ba9030b932903737ba103a34329037bbb732b960591b6044820152606490fd5b156103c157565b606460405162461bcd60e51b815260206004820152602060248201527f417272617973206d7573742068617665207468652073616d65206c656e6774686044820152fd5b60001981146104145760010190565b634e487b7160e01b600052601160045260246000fd5b805182101561043e5760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b60405163a9059cbb60e01b60208083019182526001600160a01b03948516602484015260448084019690965294825290929091610490846100d8565b16906040519261049f846100f9565b8484527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656485850152823b15610512576104eb939260009283809351925af16104e56105ce565b906106e9565b805190816104f857505050565b826105109361050b938301019101610557565b61056f565b565b60405162461bcd60e51b815260048101869052601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b908160209103126100bd575180151581036100bd5790565b1561057657565b60405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608490fd5b3d15610609573d9067ffffffffffffffff82116100f457604051916105fd601f8201601f191660200184610115565b82523d6000602084013e565b606090565b8147106106a4576000918291829182916001600160a01b03165af16106316105ce565b501561063957565b60405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608490fd5b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606490fd5b909190156106f5575090565b8151156107055750805190602001fd5b6040519062461bcd60e51b82528160208060048301528251908160248401526000935b82851061074b575050604492506000838284010152601f80199101168101030190fd5b848101820151868601604401529381019385935061072856fea264697066735822122060555dc8e10dce7d7d6e3e1a4e2f44d4de56d3ebdece296c24ffaa6553a61a1564736f6c63430008120033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT ISZERO PUSH2 0x23 JUMPI JUMPDEST CALLDATASIZE ISZERO PUSH2 0x19 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x21 PUSH2 0x275 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 CALLDATALOAD PUSH1 0xE0 SHR SWAP1 DUP2 PUSH4 0x12065FE0 EQ PUSH2 0x7A JUMPI DUP2 PUSH4 0x1B9265B8 EQ PUSH2 0x61 JUMPI POP DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x5C JUMPI PUSH4 0xCD72250D SUB PUSH2 0xE JUMPI PUSH2 0x1BD JUMP JUMPDEST PUSH2 0x94 JUMP JUMPDEST DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x77 JUMPI PUSH2 0x74 PUSH2 0x275 JUMP JUMPDEST DUP1 RETURN JUMPDEST DUP1 REVERT JUMPDEST CALLVALUE PUSH2 0x77 JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x77 JUMPI SELFBALANCE PUSH1 0x80 MSTORE PUSH1 0x20 PUSH1 0x80 RETURN JUMPDEST CALLVALUE PUSH2 0xBD JUMPI PUSH1 0x0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0xBD JUMPI PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x80 DUP2 ADD SWAP1 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR PUSH2 0xF4 JUMPI PUSH1 0x40 MSTORE JUMP JUMPDEST PUSH2 0xC2 JUMP JUMPDEST PUSH1 0x40 DUP2 ADD SWAP1 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR PUSH2 0xF4 JUMPI PUSH1 0x40 MSTORE JUMP JUMPDEST SWAP1 PUSH1 0x1F DUP1 NOT SWAP2 ADD AND DUP2 ADD SWAP1 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR PUSH2 0xF4 JUMPI PUSH1 0x40 MSTORE JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT PUSH2 0xF4 JUMPI PUSH1 0x5 SHL PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST DUP2 PUSH1 0x1F DUP3 ADD SLT ISZERO PUSH2 0xBD JUMPI DUP1 CALLDATALOAD SWAP2 PUSH2 0x166 DUP4 PUSH2 0x137 JUMP JUMPDEST SWAP3 PUSH2 0x174 PUSH1 0x40 MLOAD SWAP5 DUP6 PUSH2 0x115 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 SWAP3 DUP4 DUP1 DUP7 ADD SWAP3 PUSH1 0x5 SHL DUP3 ADD ADD SWAP3 DUP4 GT PUSH2 0xBD JUMPI DUP4 ADD SWAP1 JUMPDEST DUP3 DUP3 LT PUSH2 0x19E JUMPI POP POP POP POP SWAP1 JUMP JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 SUB PUSH2 0xBD JUMPI DUP2 MSTORE SWAP1 DUP4 ADD SWAP1 DUP4 ADD PUSH2 0x190 JUMP JUMPDEST PUSH1 0x60 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0xBD JUMPI PUSH8 0xFFFFFFFFFFFFFFFF PUSH1 0x4 CALLDATALOAD DUP2 DUP2 GT PUSH2 0xBD JUMPI PUSH2 0x1EA SWAP1 CALLDATASIZE SWAP1 PUSH1 0x4 ADD PUSH2 0x14F JUMP JUMPDEST SWAP1 PUSH1 0x24 CALLDATALOAD DUP2 DUP2 GT PUSH2 0xBD JUMPI PUSH2 0x203 SWAP1 CALLDATASIZE SWAP1 PUSH1 0x4 ADD PUSH2 0x14F JUMP JUMPDEST PUSH1 0x44 CALLDATALOAD SWAP2 DUP3 GT PUSH2 0xBD JUMPI CALLDATASIZE PUSH1 0x23 DUP4 ADD SLT ISZERO PUSH2 0xBD JUMPI DUP2 PUSH1 0x4 ADD CALLDATALOAD SWAP3 PUSH2 0x227 DUP5 PUSH2 0x137 JUMP JUMPDEST SWAP3 PUSH2 0x235 PUSH1 0x40 MLOAD SWAP5 DUP6 PUSH2 0x115 JUMP JUMPDEST DUP5 DUP5 MSTORE PUSH1 0x20 SWAP5 PUSH1 0x24 DUP7 DUP7 ADD SWAP2 PUSH1 0x5 SHL DUP4 ADD ADD SWAP2 CALLDATASIZE DUP4 GT PUSH2 0xBD JUMPI PUSH1 0x24 ADD SWAP1 JUMPDEST DUP3 DUP3 LT PUSH2 0x266 JUMPI PUSH2 0x21 DUP7 DUP7 DUP7 PUSH2 0x2A9 JUMP JUMPDEST DUP2 CALLDATALOAD DUP2 MSTORE SWAP1 DUP7 ADD SWAP1 DUP7 ADD PUSH2 0x254 JUMP JUMPDEST PUSH1 0x40 MLOAD CALLVALUE DUP2 MSTORE TIMESTAMP PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0xDF9A51129930649214DF58F542322C245372C6F2FA6FC3C9B40D927C597CD230 PUSH1 0x40 CALLER SWAP3 LOG2 JUMP JUMPDEST PUSH1 0x0 SLOAD SWAP2 SWAP4 SWAP3 SWAP1 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER SUB PUSH2 0x37D JUMPI PUSH2 0x2CD DUP5 MLOAD DUP3 MLOAD EQ PUSH2 0x3BA JUMP JUMPDEST PUSH2 0x2DA DUP5 MLOAD DUP4 MLOAD EQ PUSH2 0x3BA JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0x376 JUMPI DUP1 PUSH2 0x313 PUSH2 0x307 PUSH2 0x2FA PUSH2 0x340 SWAP5 DUP10 PUSH2 0x42A JUMP JUMPDEST MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH2 0x345 JUMPI PUSH2 0x33B PUSH2 0x32A PUSH2 0x307 PUSH2 0x2FA DUP5 DUP9 PUSH2 0x42A JUMP JUMPDEST PUSH2 0x334 DUP4 DUP7 PUSH2 0x42A JUMP JUMPDEST MLOAD SWAP1 PUSH2 0x60E JUMP JUMPDEST PUSH2 0x405 JUMP JUMPDEST PUSH2 0x2DD JUMP JUMPDEST PUSH2 0x33B PUSH2 0x358 PUSH2 0x307 PUSH2 0x2FA DUP5 DUP11 PUSH2 0x42A JUMP JUMPDEST PUSH2 0x365 PUSH2 0x2FA DUP5 DUP9 PUSH2 0x42A JUMP JUMPDEST PUSH2 0x36F DUP5 DUP8 PUSH2 0x42A JUMP JUMPDEST MLOAD SWAP2 PUSH2 0x454 JUMP JUMPDEST POP POP POP SWAP1 POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH21 0x2CB7BA9030B932903737BA103A34329037BBB732B9 PUSH1 0x59 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 SWAP1 REVERT JUMPDEST ISZERO PUSH2 0x3C1 JUMPI JUMP JUMPDEST PUSH1 0x64 PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x20 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x417272617973206D7573742068617665207468652073616D65206C656E677468 PUSH1 0x44 DUP3 ADD MSTORE REVERT JUMPDEST PUSH1 0x0 NOT DUP2 EQ PUSH2 0x414 JUMPI PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 MLOAD DUP3 LT ISZERO PUSH2 0x43E JUMPI PUSH1 0x20 SWAP2 PUSH1 0x5 SHL ADD ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xA9059CBB PUSH1 0xE0 SHL PUSH1 0x20 DUP1 DUP4 ADD SWAP2 DUP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP5 DUP6 AND PUSH1 0x24 DUP5 ADD MSTORE PUSH1 0x44 DUP1 DUP5 ADD SWAP7 SWAP1 SWAP7 MSTORE SWAP5 DUP3 MSTORE SWAP1 SWAP3 SWAP1 SWAP2 PUSH2 0x490 DUP5 PUSH2 0xD8 JUMP JUMPDEST AND SWAP1 PUSH1 0x40 MLOAD SWAP3 PUSH2 0x49F DUP5 PUSH2 0xF9 JUMP JUMPDEST DUP5 DUP5 MSTORE PUSH32 0x5361666545524332303A206C6F772D6C6576656C2063616C6C206661696C6564 DUP6 DUP6 ADD MSTORE DUP3 EXTCODESIZE ISZERO PUSH2 0x512 JUMPI PUSH2 0x4EB SWAP4 SWAP3 PUSH1 0x0 SWAP3 DUP4 DUP1 SWAP4 MLOAD SWAP3 GAS CALL PUSH2 0x4E5 PUSH2 0x5CE JUMP JUMPDEST SWAP1 PUSH2 0x6E9 JUMP JUMPDEST DUP1 MLOAD SWAP1 DUP2 PUSH2 0x4F8 JUMPI POP POP POP JUMP JUMPDEST DUP3 PUSH2 0x510 SWAP4 PUSH2 0x50B SWAP4 DUP4 ADD ADD SWAP2 ADD PUSH2 0x557 JUMP JUMPDEST PUSH2 0x56F JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416464726573733A2063616C6C20746F206E6F6E2D636F6E7472616374000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 SWAP1 REVERT JUMPDEST SWAP1 DUP2 PUSH1 0x20 SWAP2 SUB SLT PUSH2 0xBD JUMPI MLOAD DUP1 ISZERO ISZERO DUP2 SUB PUSH2 0xBD JUMPI SWAP1 JUMP JUMPDEST ISZERO PUSH2 0x576 JUMPI JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5361666545524332303A204552433230206F7065726174696F6E20646964206E PUSH1 0x44 DUP3 ADD MSTORE PUSH10 0x1BDD081CDD58D8D95959 PUSH1 0xB2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST RETURNDATASIZE ISZERO PUSH2 0x609 JUMPI RETURNDATASIZE SWAP1 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT PUSH2 0xF4 JUMPI PUSH1 0x40 MLOAD SWAP2 PUSH2 0x5FD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP5 PUSH2 0x115 JUMP JUMPDEST DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY JUMP JUMPDEST PUSH1 0x60 SWAP1 JUMP JUMPDEST DUP2 SELFBALANCE LT PUSH2 0x6A4 JUMPI PUSH1 0x0 SWAP2 DUP3 SWAP2 DUP3 SWAP2 DUP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND GAS CALL PUSH2 0x631 PUSH2 0x5CE JUMP JUMPDEST POP ISZERO PUSH2 0x639 JUMPI JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416464726573733A20756E61626C6520746F2073656E642076616C75652C2072 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6563697069656E74206D61792068617665207265766572746564000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416464726573733A20696E73756666696369656E742062616C616E6365000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 SWAP1 REVERT JUMPDEST SWAP1 SWAP2 SWAP1 ISZERO PUSH2 0x6F5 JUMPI POP SWAP1 JUMP JUMPDEST DUP2 MLOAD ISZERO PUSH2 0x705 JUMPI POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x40 MLOAD SWAP1 PUSH3 0x461BCD PUSH1 0xE5 SHL DUP3 MSTORE DUP2 PUSH1 0x20 DUP1 PUSH1 0x4 DUP4 ADD MSTORE DUP3 MLOAD SWAP1 DUP2 PUSH1 0x24 DUP5 ADD MSTORE PUSH1 0x0 SWAP4 JUMPDEST DUP3 DUP6 LT PUSH2 0x74B JUMPI POP POP PUSH1 0x44 SWAP3 POP PUSH1 0x0 DUP4 DUP3 DUP5 ADD ADD MSTORE PUSH1 0x1F DUP1 NOT SWAP2 ADD AND DUP2 ADD SUB ADD SWAP1 REVERT JUMPDEST DUP5 DUP2 ADD DUP3 ADD MLOAD DUP7 DUP7 ADD PUSH1 0x44 ADD MSTORE SWAP4 DUP2 ADD SWAP4 DUP6 SWAP4 POP PUSH2 0x728 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH1 0x55 0x5D 0xC8 0xE1 0xD 0xCE PUSH30 0x7D6E3E1A4E2F44D4DE56D3EBDECE296C24FFAA6553A61A1564736F6C6343 STOP ADDMOD SLT STOP CALLER ","sourceMap":"241:1843:45:-:0;;;;;;;;;-1:-1:-1;241:1843:45;;;;;;;;446:49;;:::i;:::-;241:1843;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;669:21;241:1843;;;;;;;;;;;-1:-1:-1;;241:1843:45;;;;;;;;-1:-1:-1;;;;;241:1843:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;241:1843:45;;;;;;;;;;;;;;;;;;;-1:-1:-1;;241:1843:45;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;986:1096;;;;;:::i;241:1843::-;;;;;;;;;;;;;501:96;241:1843;;563:9;241:1843;;574:15;241:1843;;;;546:44;241:1843;551:10;546:44;;501:96::o;866:114::-;905:5;241:1843;866:114;;;;;-1:-1:-1;;;;;241:1843:45;914:10;905:19;241:1843;;1278:91;241:1843;;;;1286:46;1278:91;:::i;:::-;1379:87;241:1843;;;;1387:42;1379:87;:::i;:::-;905:5;1605:3;241:1843;;1577:26;;;;;1628:18;:32;:18;;1605:3;1628:18;;;:::i;:::-;241:1843;-1:-1:-1;;;;;241:1843:45;;;1628:18;-1:-1:-1;;;;;241:1843:45;;;1628:32;:18;;1712:16;1680:21;1688:12;;;;;:::i;1680:21::-;1712:16;;;;:::i;:::-;241:1843;1712:16;;:::i;:::-;1605:3;:::i;:::-;1565:10;;1624:442;2034:16;1883:26;1890:18;;;;;:::i;1883:26::-;2020:12;;;;;:::i;:::-;2034:16;;;;:::i;:::-;241:1843;2034:16;;:::i;1577:26::-;;;;;;866:114::o;241:1843::-;;;-1:-1:-1;;;241:1843:45;;;;;;;;;;;;-1:-1:-1;;;241:1843:45;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;241:1843:45;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;701:205:28;241:1843:45;;-1:-1:-1;;;840:58:28;;;;;;;-1:-1:-1;;;;;241:1843:45;;;840:58:28;;;241:1843:45;;;;;;;;;840:58:28;;;241:1843:45;;840:58:28;;;241:1843:45;840:58:28;:::i;:::-;241:1843:45;;;;;;;;:::i;:::-;;;;;;;;;1465:19:34;;:23;241:1843:45;;5389:51:34;5341:31;;-1:-1:-1;5341:31:34;;;;;;;;;;:::i;:::-;5389:51;;:::i;:::-;241:1843:45;;3735:21:28;;3731:176;;701:205;;;:::o;3731:176::-;3819:30;3811:85;3819:30;;;;;;;;;:::i;:::-;3811:85;:::i;:::-;701:205::o;241:1843:45:-;;;-1:-1:-1;;;241:1843:45;;;;;;;;;840:58:28;241:1843:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;:::o;:::-;;;-1:-1:-1;;;241:1843:45;;;;;;;;;;;;;;;;;-1:-1:-1;;;241:1843:45;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;241:1843:45;;;;;:::i;:::-;;;;-1:-1:-1;241:1843:45;;;;:::o;:::-;;;:::o;2412:312:34:-;2501:21;;:31;241:1843:45;;2596:33:34;;;;;;;;-1:-1:-1;;;;;241:1843:45;2596:33:34;;;;:::i;:::-;;241:1843:45;;;2412:312:34:o;241:1843:45:-;;;-1:-1:-1;;;241:1843:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;241:1843:45;;;;;;;;;;;;;;;;;;;;7561:692:34;;;;7731:516;;;7758:17;;:::o;7731:516::-;241:1843:45;;7876:21:34;:17;;8010:154;;;;;;;7872:365;241:1843:45;;;;;;8202:20:34;;241:1843:45;;8202:20:34;;;;241:1843:45;;;;;;;;;7896:1:34;241:1843:45;;;;;;;;;;;;7896:1:34;241:1843:45;;;;;;;;;;;;;;8202:20:34;;;;241:1843:45;;;;;;;;;;;;;;;;;;;-1:-1:-1;241:1843:45;"},"methodIdentifiers":{"getBalance()":"12065fe0","multiTransfer(address[],address[],uint256[])":"cd72250d","owner()":"8da5cb5b","pay()":"1b9265b8"}},"metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_timestamp\",\"type\":\"uint256\"}],\"name\":\"Paid\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_recivers\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"_tokenAddresses\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_tokenAmounts\",\"type\":\"uint256[]\"}],\"name\":\"multiTransfer\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pay\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/MultiTransfer.sol\":\"TokenF2L2\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xc3d946432c0ddbb1f846a0d3985be71299df331b91d06732152117f62f0be2b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4632c341a06ba5c079b51ca5a915efab4e6ab57735b37839b3e8365ff806a43e\",\"dweb:/ipfs/QmTHT3xHYed2wajEoA5qu7ii2BxLpPhQZHwAhtLK5Z7ANK\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x2ccf9d2313a313d41a791505f2b5abfdc62191b5d4334f7f7a82691c088a1c87\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3a57d0854b2fdce6ebff933a48dca2445643d1eccfc27f00292e937f26c6a58\",\"dweb:/ipfs/QmW45rZooS9TqR4YXUbjRbtf2Bpb5ouSarBvfW1LdGprvV\"]},\"contracts/MultiTransfer.sol\":{\"keccak256\":\"0x2046aab6d0025ecfb84499fb95006d6b8d63260452250318dd357e0e5fa0f632\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a02fb03afbada6bd55504f4f310d05e2a9318d16429c03e94511f36f72a2a059\",\"dweb:/ipfs/QmWgVHkQtRJUEpQ6CwXWA9dkmA54NQLX21MpHvbjy4456X\"]}},\"version\":1}"}},"contracts/MyERC20.sol":{"MyERC20":{"abi":[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"uint8","name":"decimals_","type":"uint8"}],"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":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"mint","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"}],"evm":{"bytecode":{"functionDebugData":{"abi_decode_string_fromMemory":{"entryPoint":870,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_memory":{"entryPoint":832,"id":null,"parameterSlots":1,"returnSlots":1}},"generatedSources":[],"linkReferences":{},"object":"6080604052346200033b5762000d6f803803806200001d8162000340565b92833981016060828203126200033b5781516001600160401b03908181116200033b57826200004e91850162000366565b90602092838501518281116200033b576040916200006e91870162000366565b9401519360ff85168095036200033b5782518281116200023b576003918254916001958684811c9416801562000330575b888510146200031a578190601f94858111620002c4575b5088908583116001146200025d5760009262000251575b505060001982861b1c191690861b1783555b80519384116200023b5760049586548681811c9116801562000230575b828210146200021b57838111620001d0575b508092851160011462000162575093839491849260009562000156575b50501b92600019911b1c19161790555b60ff1960055416176005556040516109969081620003d98239f35b0151935038806200012b565b92919084601f1981168860005285600020956000905b89838310620001b557505050106200019a575b50505050811b0190556200013b565b01519060f884600019921b161c19169055388080806200018b565b85870151895590970196948501948893509081019062000178565b87600052816000208480880160051c82019284891062000211575b0160051c019087905b828110620002045750506200010e565b60008155018790620001f4565b92508192620001eb565b602288634e487b7160e01b6000525260246000fd5b90607f1690620000fc565b634e487b7160e01b600052604160045260246000fd5b015190503880620000cd565b90889350601f19831691876000528a6000209260005b8c828210620002ad575050841162000294575b505050811b018355620000df565b015160001983881b60f8161c1916905538808062000286565b8385015186558c9790950194938401930162000273565b90915085600052886000208580850160051c8201928b861062000310575b918a91869594930160051c01915b82811062000300575050620000b6565b600081558594508a9101620002f0565b92508192620002e2565b634e487b7160e01b600052602260045260246000fd5b93607f16936200009f565b600080fd5b6040519190601f01601f191682016001600160401b038111838210176200023b57604052565b919080601f840112156200033b5782516001600160401b0381116200023b576020906200039c601f8201601f1916830162000340565b928184528282870101116200033b5760005b818110620003c457508260009394955001015290565b8581018301518482018401528201620003ae56fe608060408181526004918236101561001657600080fd5b600092833560e01c91826306fdde031461057057508163095ea7b31461054657816318160ddd1461052757816323b872dd1461045d578163313ce5671461043b57816339509351146103eb57816340c10f191461032257816370a08231146102eb57816395d89b41146101cc578163a457c2d71461012457508063a9059cbb146100f45763dd62ed3e146100a957600080fd5b346100f057806003193601126100f057806020926100c5610695565b6100cd6106b0565b6001600160a01b0391821683526001865283832091168252845220549051908152f35b5080fd5b50346100f057806003193601126100f05760209061011d610113610695565b60243590336106e9565b5160018152f35b905082346101c957826003193601126101c95761013f610695565b918360243592338152600160205281812060018060a01b03861682526020522054908282106101785760208561011d858503873361085e565b608490602086519162461bcd60e51b8352820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152fd5b80fd5b8383346100f057816003193601126100f057805190828454600181811c908083169283156102e1575b60209384841081146102ce578388529081156102b2575060011461025d575b505050829003601f01601f191682019267ffffffffffffffff84118385101761024a575082918261024692528261064c565b0390f35b634e487b7160e01b815260418552602490fd5b8787529192508591837f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b83851061029e5750505050830101858080610214565b805488860183015293019284908201610288565b60ff1916878501525050151560051b8401019050858080610214565b634e487b7160e01b895260228a52602489fd5b91607f16916101f5565b5050346100f05760203660031901126100f05760209181906001600160a01b03610313610695565b16815280845220549051908152f35b8284346101c957816003193601126101c95761033c610695565b6001600160a01b03169060243582156103a8576020809550816103827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef936002546106c6565b6002558484528382528584206103998282546106c6565b90558551908152a35160018152f35b835162461bcd60e51b8152602081870152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606490fd5b5050346100f057806003193601126100f05761011d60209261043461040e610695565b338352600186528483206001600160a01b038216845286529184902054602435906106c6565b903361085e565b5050346100f057816003193601126100f05760209060ff600554169051908152f35b839150346100f05760603660031901126100f057610479610695565b6104816106b0565b91846044359460018060a01b0384168152600160205281812033825260205220549060001982036104bb575b60208661011d8787876106e9565b8482106104e457509183916104d96020969561011d9503338361085e565b9193948193506104ad565b606490602087519162461bcd60e51b8352820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152fd5b5050346100f057816003193601126100f0576020906002549051908152f35b5050346100f057806003193601126100f05760209061011d610566610695565b602435903361085e565b8490843461064857826003193601126106485782600354600181811c9080831692831561063e575b60209384841081146102ce578388529081156102b257506001146105e857505050829003601f01601f191682019267ffffffffffffffff84118385101761024a575082918261024692528261064c565b600387529192508591837fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b83851061062a5750505050830101858080610214565b805488860183015293019284908201610614565b91607f1691610598565b8280fd5b6020808252825181830181905290939260005b82811061068157505060409293506000838284010152601f8019910116010190565b81810186015184820160400152850161065f565b600435906001600160a01b03821682036106ab57565b600080fd5b602435906001600160a01b03821682036106ab57565b919082018092116106d357565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b0390811691821561080b57169182156107ba5760008281528060205260408120549180831061076657604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef95876020965282865203828220558681522061075b8282546106c6565b9055604051908152a3565b60405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608490fd5b60405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608490fd5b60405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608490fd5b6001600160a01b0390811691821561090f57169182156108bf5760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925918360005260018252604060002085600052825280604060002055604051908152a3565b60405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608490fd5b60405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608490fdfea2646970667358221220ecf6466b8716662ffc671dc3c32439cb6398425596e4462e0de3e0a25972740064736f6c63430008120033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE PUSH3 0x33B JUMPI PUSH3 0xD6F DUP1 CODESIZE SUB DUP1 PUSH3 0x1D DUP2 PUSH3 0x340 JUMP JUMPDEST SWAP3 DUP4 CODECOPY DUP2 ADD PUSH1 0x60 DUP3 DUP3 SUB SLT PUSH3 0x33B JUMPI DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 DUP2 DUP2 GT PUSH3 0x33B JUMPI DUP3 PUSH3 0x4E SWAP2 DUP6 ADD PUSH3 0x366 JUMP JUMPDEST SWAP1 PUSH1 0x20 SWAP3 DUP4 DUP6 ADD MLOAD DUP3 DUP2 GT PUSH3 0x33B JUMPI PUSH1 0x40 SWAP2 PUSH3 0x6E SWAP2 DUP8 ADD PUSH3 0x366 JUMP JUMPDEST SWAP5 ADD MLOAD SWAP4 PUSH1 0xFF DUP6 AND DUP1 SWAP6 SUB PUSH3 0x33B JUMPI DUP3 MLOAD DUP3 DUP2 GT PUSH3 0x23B JUMPI PUSH1 0x3 SWAP2 DUP3 SLOAD SWAP2 PUSH1 0x1 SWAP6 DUP7 DUP5 DUP2 SHR SWAP5 AND DUP1 ISZERO PUSH3 0x330 JUMPI JUMPDEST DUP9 DUP6 LT EQ PUSH3 0x31A JUMPI DUP2 SWAP1 PUSH1 0x1F SWAP5 DUP6 DUP2 GT PUSH3 0x2C4 JUMPI JUMPDEST POP DUP9 SWAP1 DUP6 DUP4 GT PUSH1 0x1 EQ PUSH3 0x25D JUMPI PUSH1 0x0 SWAP3 PUSH3 0x251 JUMPI JUMPDEST POP POP PUSH1 0x0 NOT DUP3 DUP7 SHL SHR NOT AND SWAP1 DUP7 SHL OR DUP4 SSTORE JUMPDEST DUP1 MLOAD SWAP4 DUP5 GT PUSH3 0x23B JUMPI PUSH1 0x4 SWAP6 DUP7 SLOAD DUP7 DUP2 DUP2 SHR SWAP2 AND DUP1 ISZERO PUSH3 0x230 JUMPI JUMPDEST DUP3 DUP3 LT EQ PUSH3 0x21B JUMPI DUP4 DUP2 GT PUSH3 0x1D0 JUMPI JUMPDEST POP DUP1 SWAP3 DUP6 GT PUSH1 0x1 EQ PUSH3 0x162 JUMPI POP SWAP4 DUP4 SWAP5 SWAP2 DUP5 SWAP3 PUSH1 0x0 SWAP6 PUSH3 0x156 JUMPI JUMPDEST POP POP SHL SWAP3 PUSH1 0x0 NOT SWAP2 SHL SHR NOT AND OR SWAP1 SSTORE JUMPDEST PUSH1 0xFF NOT PUSH1 0x5 SLOAD AND OR PUSH1 0x5 SSTORE PUSH1 0x40 MLOAD PUSH2 0x996 SWAP1 DUP2 PUSH3 0x3D9 DUP3 CODECOPY RETURN JUMPDEST ADD MLOAD SWAP4 POP CODESIZE DUP1 PUSH3 0x12B JUMP JUMPDEST SWAP3 SWAP2 SWAP1 DUP5 PUSH1 0x1F NOT DUP2 AND DUP9 PUSH1 0x0 MSTORE DUP6 PUSH1 0x0 KECCAK256 SWAP6 PUSH1 0x0 SWAP1 JUMPDEST DUP10 DUP4 DUP4 LT PUSH3 0x1B5 JUMPI POP POP POP LT PUSH3 0x19A JUMPI JUMPDEST POP POP POP POP DUP2 SHL ADD SWAP1 SSTORE PUSH3 0x13B JUMP JUMPDEST ADD MLOAD SWAP1 PUSH1 0xF8 DUP5 PUSH1 0x0 NOT SWAP3 SHL AND SHR NOT AND SWAP1 SSTORE CODESIZE DUP1 DUP1 DUP1 PUSH3 0x18B JUMP JUMPDEST DUP6 DUP8 ADD MLOAD DUP10 SSTORE SWAP1 SWAP8 ADD SWAP7 SWAP5 DUP6 ADD SWAP5 DUP9 SWAP4 POP SWAP1 DUP2 ADD SWAP1 PUSH3 0x178 JUMP JUMPDEST DUP8 PUSH1 0x0 MSTORE DUP2 PUSH1 0x0 KECCAK256 DUP5 DUP1 DUP9 ADD PUSH1 0x5 SHR DUP3 ADD SWAP3 DUP5 DUP10 LT PUSH3 0x211 JUMPI JUMPDEST ADD PUSH1 0x5 SHR ADD SWAP1 DUP8 SWAP1 JUMPDEST DUP3 DUP2 LT PUSH3 0x204 JUMPI POP POP PUSH3 0x10E JUMP JUMPDEST PUSH1 0x0 DUP2 SSTORE ADD DUP8 SWAP1 PUSH3 0x1F4 JUMP JUMPDEST SWAP3 POP DUP2 SWAP3 PUSH3 0x1EB JUMP JUMPDEST PUSH1 0x22 DUP9 PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x7F AND SWAP1 PUSH3 0xFC JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADD MLOAD SWAP1 POP CODESIZE DUP1 PUSH3 0xCD JUMP JUMPDEST SWAP1 DUP9 SWAP4 POP PUSH1 0x1F NOT DUP4 AND SWAP2 DUP8 PUSH1 0x0 MSTORE DUP11 PUSH1 0x0 KECCAK256 SWAP3 PUSH1 0x0 JUMPDEST DUP13 DUP3 DUP3 LT PUSH3 0x2AD JUMPI POP POP DUP5 GT PUSH3 0x294 JUMPI JUMPDEST POP POP POP DUP2 SHL ADD DUP4 SSTORE PUSH3 0xDF JUMP JUMPDEST ADD MLOAD PUSH1 0x0 NOT DUP4 DUP9 SHL PUSH1 0xF8 AND SHR NOT AND SWAP1 SSTORE CODESIZE DUP1 DUP1 PUSH3 0x286 JUMP JUMPDEST DUP4 DUP6 ADD MLOAD DUP7 SSTORE DUP13 SWAP8 SWAP1 SWAP6 ADD SWAP5 SWAP4 DUP5 ADD SWAP4 ADD PUSH3 0x273 JUMP JUMPDEST SWAP1 SWAP2 POP DUP6 PUSH1 0x0 MSTORE DUP9 PUSH1 0x0 KECCAK256 DUP6 DUP1 DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP3 DUP12 DUP7 LT PUSH3 0x310 JUMPI JUMPDEST SWAP2 DUP11 SWAP2 DUP7 SWAP6 SWAP5 SWAP4 ADD PUSH1 0x5 SHR ADD SWAP2 JUMPDEST DUP3 DUP2 LT PUSH3 0x300 JUMPI POP POP PUSH3 0xB6 JUMP JUMPDEST PUSH1 0x0 DUP2 SSTORE DUP6 SWAP5 POP DUP11 SWAP2 ADD PUSH3 0x2F0 JUMP JUMPDEST SWAP3 POP DUP2 SWAP3 PUSH3 0x2E2 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP4 PUSH1 0x7F AND SWAP4 PUSH3 0x9F JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MLOAD SWAP2 SWAP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP4 DUP3 LT OR PUSH3 0x23B JUMPI PUSH1 0x40 MSTORE JUMP JUMPDEST SWAP2 SWAP1 DUP1 PUSH1 0x1F DUP5 ADD SLT ISZERO PUSH3 0x33B JUMPI DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT PUSH3 0x23B JUMPI PUSH1 0x20 SWAP1 PUSH3 0x39C PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP4 ADD PUSH3 0x340 JUMP JUMPDEST SWAP3 DUP2 DUP5 MSTORE DUP3 DUP3 DUP8 ADD ADD GT PUSH3 0x33B JUMPI PUSH1 0x0 JUMPDEST DUP2 DUP2 LT PUSH3 0x3C4 JUMPI POP DUP3 PUSH1 0x0 SWAP4 SWAP5 SWAP6 POP ADD ADD MSTORE SWAP1 JUMP JUMPDEST DUP6 DUP2 ADD DUP4 ADD MLOAD DUP5 DUP3 ADD DUP5 ADD MSTORE DUP3 ADD PUSH3 0x3AE JUMP INVALID PUSH1 0x80 PUSH1 0x40 DUP2 DUP2 MSTORE PUSH1 0x4 SWAP2 DUP3 CALLDATASIZE LT ISZERO PUSH2 0x16 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP3 DUP4 CALLDATALOAD PUSH1 0xE0 SHR SWAP2 DUP3 PUSH4 0x6FDDE03 EQ PUSH2 0x570 JUMPI POP DUP2 PUSH4 0x95EA7B3 EQ PUSH2 0x546 JUMPI DUP2 PUSH4 0x18160DDD EQ PUSH2 0x527 JUMPI DUP2 PUSH4 0x23B872DD EQ PUSH2 0x45D JUMPI DUP2 PUSH4 0x313CE567 EQ PUSH2 0x43B JUMPI DUP2 PUSH4 0x39509351 EQ PUSH2 0x3EB JUMPI DUP2 PUSH4 0x40C10F19 EQ PUSH2 0x322 JUMPI DUP2 PUSH4 0x70A08231 EQ PUSH2 0x2EB JUMPI DUP2 PUSH4 0x95D89B41 EQ PUSH2 0x1CC JUMPI DUP2 PUSH4 0xA457C2D7 EQ PUSH2 0x124 JUMPI POP DUP1 PUSH4 0xA9059CBB EQ PUSH2 0xF4 JUMPI PUSH4 0xDD62ED3E EQ PUSH2 0xA9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE PUSH2 0xF0 JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0xF0 JUMPI DUP1 PUSH1 0x20 SWAP3 PUSH2 0xC5 PUSH2 0x695 JUMP JUMPDEST PUSH2 0xCD PUSH2 0x6B0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND DUP4 MSTORE PUSH1 0x1 DUP7 MSTORE DUP4 DUP4 KECCAK256 SWAP2 AND DUP3 MSTORE DUP5 MSTORE KECCAK256 SLOAD SWAP1 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST POP DUP1 REVERT JUMPDEST POP CALLVALUE PUSH2 0xF0 JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0xF0 JUMPI PUSH1 0x20 SWAP1 PUSH2 0x11D PUSH2 0x113 PUSH2 0x695 JUMP JUMPDEST PUSH1 0x24 CALLDATALOAD SWAP1 CALLER PUSH2 0x6E9 JUMP JUMPDEST MLOAD PUSH1 0x1 DUP2 MSTORE RETURN JUMPDEST SWAP1 POP DUP3 CALLVALUE PUSH2 0x1C9 JUMPI DUP3 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x1C9 JUMPI PUSH2 0x13F PUSH2 0x695 JUMP JUMPDEST SWAP2 DUP4 PUSH1 0x24 CALLDATALOAD SWAP3 CALLER DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE DUP2 DUP2 KECCAK256 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP7 AND DUP3 MSTORE PUSH1 0x20 MSTORE KECCAK256 SLOAD SWAP1 DUP3 DUP3 LT PUSH2 0x178 JUMPI PUSH1 0x20 DUP6 PUSH2 0x11D DUP6 DUP6 SUB DUP8 CALLER PUSH2 0x85E JUMP JUMPDEST PUSH1 0x84 SWAP1 PUSH1 0x20 DUP7 MLOAD SWAP2 PUSH3 0x461BCD PUSH1 0xE5 SHL DUP4 MSTORE DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE REVERT JUMPDEST DUP1 REVERT JUMPDEST DUP4 DUP4 CALLVALUE PUSH2 0xF0 JUMPI DUP2 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0xF0 JUMPI DUP1 MLOAD SWAP1 DUP3 DUP5 SLOAD PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP1 DUP4 AND SWAP3 DUP4 ISZERO PUSH2 0x2E1 JUMPI JUMPDEST PUSH1 0x20 SWAP4 DUP5 DUP5 LT DUP2 EQ PUSH2 0x2CE JUMPI DUP4 DUP9 MSTORE SWAP1 DUP2 ISZERO PUSH2 0x2B2 JUMPI POP PUSH1 0x1 EQ PUSH2 0x25D JUMPI JUMPDEST POP POP POP DUP3 SWAP1 SUB PUSH1 0x1F ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP3 PUSH8 0xFFFFFFFFFFFFFFFF DUP5 GT DUP4 DUP6 LT OR PUSH2 0x24A JUMPI POP DUP3 SWAP2 DUP3 PUSH2 0x246 SWAP3 MSTORE DUP3 PUSH2 0x64C JUMP JUMPDEST SUB SWAP1 RETURN JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x41 DUP6 MSTORE PUSH1 0x24 SWAP1 REVERT JUMPDEST DUP8 DUP8 MSTORE SWAP2 SWAP3 POP DUP6 SWAP2 DUP4 PUSH32 0x8A35ACFBC15FF81A39AE7D344FD709F28E8600B4AA8C65C6B64BFE7FE36BD19B JUMPDEST DUP4 DUP6 LT PUSH2 0x29E JUMPI POP POP POP POP DUP4 ADD ADD DUP6 DUP1 DUP1 PUSH2 0x214 JUMP JUMPDEST DUP1 SLOAD DUP9 DUP7 ADD DUP4 ADD MSTORE SWAP4 ADD SWAP3 DUP5 SWAP1 DUP3 ADD PUSH2 0x288 JUMP JUMPDEST PUSH1 0xFF NOT AND DUP8 DUP6 ADD MSTORE POP POP ISZERO ISZERO PUSH1 0x5 SHL DUP5 ADD ADD SWAP1 POP DUP6 DUP1 DUP1 PUSH2 0x214 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP10 MSTORE PUSH1 0x22 DUP11 MSTORE PUSH1 0x24 DUP10 REVERT JUMPDEST SWAP2 PUSH1 0x7F AND SWAP2 PUSH2 0x1F5 JUMP JUMPDEST POP POP CALLVALUE PUSH2 0xF0 JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0xF0 JUMPI PUSH1 0x20 SWAP2 DUP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH2 0x313 PUSH2 0x695 JUMP JUMPDEST AND DUP2 MSTORE DUP1 DUP5 MSTORE KECCAK256 SLOAD SWAP1 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST DUP3 DUP5 CALLVALUE PUSH2 0x1C9 JUMPI DUP2 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x1C9 JUMPI PUSH2 0x33C PUSH2 0x695 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH1 0x24 CALLDATALOAD DUP3 ISZERO PUSH2 0x3A8 JUMPI PUSH1 0x20 DUP1 SWAP6 POP DUP2 PUSH2 0x382 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP4 PUSH1 0x2 SLOAD PUSH2 0x6C6 JUMP JUMPDEST PUSH1 0x2 SSTORE DUP5 DUP5 MSTORE DUP4 DUP3 MSTORE DUP6 DUP5 KECCAK256 PUSH2 0x399 DUP3 DUP3 SLOAD PUSH2 0x6C6 JUMP JUMPDEST SWAP1 SSTORE DUP6 MLOAD SWAP1 DUP2 MSTORE LOG3 MLOAD PUSH1 0x1 DUP2 MSTORE RETURN JUMPDEST DUP4 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 DUP2 DUP8 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A206D696E7420746F20746865207A65726F206164647265737300 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 SWAP1 REVERT JUMPDEST POP POP CALLVALUE PUSH2 0xF0 JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0xF0 JUMPI PUSH2 0x11D PUSH1 0x20 SWAP3 PUSH2 0x434 PUSH2 0x40E PUSH2 0x695 JUMP JUMPDEST CALLER DUP4 MSTORE PUSH1 0x1 DUP7 MSTORE DUP5 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND DUP5 MSTORE DUP7 MSTORE SWAP2 DUP5 SWAP1 KECCAK256 SLOAD PUSH1 0x24 CALLDATALOAD SWAP1 PUSH2 0x6C6 JUMP JUMPDEST SWAP1 CALLER PUSH2 0x85E JUMP JUMPDEST POP POP CALLVALUE PUSH2 0xF0 JUMPI DUP2 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0xF0 JUMPI PUSH1 0x20 SWAP1 PUSH1 0xFF PUSH1 0x5 SLOAD AND SWAP1 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST DUP4 SWAP2 POP CALLVALUE PUSH2 0xF0 JUMPI PUSH1 0x60 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0xF0 JUMPI PUSH2 0x479 PUSH2 0x695 JUMP JUMPDEST PUSH2 0x481 PUSH2 0x6B0 JUMP JUMPDEST SWAP2 DUP5 PUSH1 0x44 CALLDATALOAD SWAP5 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP5 AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE DUP2 DUP2 KECCAK256 CALLER DUP3 MSTORE PUSH1 0x20 MSTORE KECCAK256 SLOAD SWAP1 PUSH1 0x0 NOT DUP3 SUB PUSH2 0x4BB JUMPI JUMPDEST PUSH1 0x20 DUP7 PUSH2 0x11D DUP8 DUP8 DUP8 PUSH2 0x6E9 JUMP JUMPDEST DUP5 DUP3 LT PUSH2 0x4E4 JUMPI POP SWAP2 DUP4 SWAP2 PUSH2 0x4D9 PUSH1 0x20 SWAP7 SWAP6 PUSH2 0x11D SWAP6 SUB CALLER DUP4 PUSH2 0x85E JUMP JUMPDEST SWAP2 SWAP4 SWAP5 DUP2 SWAP4 POP PUSH2 0x4AD JUMP JUMPDEST PUSH1 0x64 SWAP1 PUSH1 0x20 DUP8 MLOAD SWAP2 PUSH3 0x461BCD PUSH1 0xE5 SHL DUP4 MSTORE DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH1 0x44 DUP3 ADD MSTORE REVERT JUMPDEST POP POP CALLVALUE PUSH2 0xF0 JUMPI DUP2 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0xF0 JUMPI PUSH1 0x20 SWAP1 PUSH1 0x2 SLOAD SWAP1 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST POP POP CALLVALUE PUSH2 0xF0 JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0xF0 JUMPI PUSH1 0x20 SWAP1 PUSH2 0x11D PUSH2 0x566 PUSH2 0x695 JUMP JUMPDEST PUSH1 0x24 CALLDATALOAD SWAP1 CALLER PUSH2 0x85E JUMP JUMPDEST DUP5 SWAP1 DUP5 CALLVALUE PUSH2 0x648 JUMPI DUP3 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x648 JUMPI DUP3 PUSH1 0x3 SLOAD PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP1 DUP4 AND SWAP3 DUP4 ISZERO PUSH2 0x63E JUMPI JUMPDEST PUSH1 0x20 SWAP4 DUP5 DUP5 LT DUP2 EQ PUSH2 0x2CE JUMPI DUP4 DUP9 MSTORE SWAP1 DUP2 ISZERO PUSH2 0x2B2 JUMPI POP PUSH1 0x1 EQ PUSH2 0x5E8 JUMPI POP POP POP DUP3 SWAP1 SUB PUSH1 0x1F ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP3 PUSH8 0xFFFFFFFFFFFFFFFF DUP5 GT DUP4 DUP6 LT OR PUSH2 0x24A JUMPI POP DUP3 SWAP2 DUP3 PUSH2 0x246 SWAP3 MSTORE DUP3 PUSH2 0x64C JUMP JUMPDEST PUSH1 0x3 DUP8 MSTORE SWAP2 SWAP3 POP DUP6 SWAP2 DUP4 PUSH32 0xC2575A0E9E593C00F959F8C92F12DB2869C3395A3B0502D05E2516446F71F85B JUMPDEST DUP4 DUP6 LT PUSH2 0x62A JUMPI POP POP POP POP DUP4 ADD ADD DUP6 DUP1 DUP1 PUSH2 0x214 JUMP JUMPDEST DUP1 SLOAD DUP9 DUP7 ADD DUP4 ADD MSTORE SWAP4 ADD SWAP3 DUP5 SWAP1 DUP3 ADD PUSH2 0x614 JUMP JUMPDEST SWAP2 PUSH1 0x7F AND SWAP2 PUSH2 0x598 JUMP JUMPDEST DUP3 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP3 MLOAD DUP2 DUP4 ADD DUP2 SWAP1 MSTORE SWAP1 SWAP4 SWAP3 PUSH1 0x0 JUMPDEST DUP3 DUP2 LT PUSH2 0x681 JUMPI POP POP PUSH1 0x40 SWAP3 SWAP4 POP PUSH1 0x0 DUP4 DUP3 DUP5 ADD ADD MSTORE PUSH1 0x1F DUP1 NOT SWAP2 ADD AND ADD ADD SWAP1 JUMP JUMPDEST DUP2 DUP2 ADD DUP7 ADD MLOAD DUP5 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP6 ADD PUSH2 0x65F JUMP JUMPDEST PUSH1 0x4 CALLDATALOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND DUP3 SUB PUSH2 0x6AB JUMPI JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x24 CALLDATALOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND DUP3 SUB PUSH2 0x6AB JUMPI JUMP JUMPDEST SWAP2 SWAP1 DUP3 ADD DUP1 SWAP3 GT PUSH2 0x6D3 JUMPI JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND SWAP2 DUP3 ISZERO PUSH2 0x80B JUMPI AND SWAP2 DUP3 ISZERO PUSH2 0x7BA JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE DUP1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD SWAP2 DUP1 DUP4 LT PUSH2 0x766 JUMPI PUSH1 0x40 DUP3 DUP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP6 DUP8 PUSH1 0x20 SWAP7 MSTORE DUP3 DUP7 MSTORE SUB DUP3 DUP3 KECCAK256 SSTORE DUP7 DUP2 MSTORE KECCAK256 PUSH2 0x75B DUP3 DUP3 SLOAD PUSH2 0x6C6 JUMP JUMPDEST SWAP1 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE LOG3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND SWAP2 DUP3 ISZERO PUSH2 0x90F JUMPI AND SWAP2 DUP3 ISZERO PUSH2 0x8BF JUMPI PUSH1 0x20 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 DUP4 PUSH1 0x0 MSTORE PUSH1 0x1 DUP3 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 DUP6 PUSH1 0x0 MSTORE DUP3 MSTORE DUP1 PUSH1 0x40 PUSH1 0x0 KECCAK256 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE LOG3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xEC 0xF6 CHAINID PUSH12 0x8716662FFC671DC3C32439CB PUSH4 0x98425596 0xE4 CHAINID 0x2E 0xD 0xE3 0xE0 LOG2 MSIZE PUSH19 0x740064736F6C63430008120033000000000000 ","sourceMap":"122:452:46:-:0;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;122:452:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;2044:13:25;122:452:46;;;;;;;;;;;;;;;;-1:-1:-1;122:452:46;;;;;;;;;;;;;;;-1:-1:-1;122:452:46;;;;;;;;;;-1:-1:-1;122:452:46;;;;-1:-1:-1;;;;122:452:46;;;;;;;;;;;;;;;;;;;;2067:17:25;122:452:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;122:452:46;;;;;;;;;;;;;;;;;;;;;319:21;122:452;;;319:21;122:452;;;;;;;;;;;;;;-1:-1:-1;122:452:46;;;;;;;;;;;;;;-1:-1:-1;122:452:46;;-1:-1:-1;122:452:46;;-1:-1:-1;122:452:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;122:452:46;;;;;;;;-1:-1:-1;122:452:46;;-1:-1:-1;122:452:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;122:452:46;;;;;;;;;;;;;;;;;;;;-1:-1:-1;122:452:46;;;-1:-1:-1;122:452:46;;;;;;;;;;;;-1:-1:-1;122:452:46;;2067:17:25;122:452:46;;-1:-1:-1;122:452:46;;;;;-1:-1:-1;122:452:46;;;;;;;;;;;;;;;-1:-1:-1;122:452:46;;-1:-1:-1;122:452:46;;-1:-1:-1;122:452:46;;;;;;;;;;-1:-1:-1;122:452:46;;;;;;;;;;;;;;;;-1:-1:-1;;122:452:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;122:452:46;;-1:-1:-1;122:452:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;122:452:46;;;;-1:-1:-1;122:452:46;;;;;;;;;;;;;;;;-1:-1:-1;122:452:46;;;;;-1:-1:-1;122:452:46;;;;;;;;;-1:-1:-1;122:452:46;;;;;;;;;-1:-1:-1;;122:452:46;;;-1:-1:-1;;;;;122:452:46;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;122:452:46;;;;;;;;;;-1:-1:-1;;122:452:46;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;122:452:46;;;;;;;;-1:-1:-1;122:452:46;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"abi_decode_address":{"entryPoint":1712,"id":null,"parameterSlots":0,"returnSlots":1},"abi_decode_address_5526":{"entryPoint":1685,"id":null,"parameterSlots":0,"returnSlots":1},"abi_encode_string":{"entryPoint":1612,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_uint256":{"entryPoint":1734,"id":null,"parameterSlots":2,"returnSlots":1},"fun_approve":{"entryPoint":2142,"id":6270,"parameterSlots":3,"returnSlots":0},"fun_transfer":{"entryPoint":1769,"id":6097,"parameterSlots":3,"returnSlots":0}},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"608060408181526004918236101561001657600080fd5b600092833560e01c91826306fdde031461057057508163095ea7b31461054657816318160ddd1461052757816323b872dd1461045d578163313ce5671461043b57816339509351146103eb57816340c10f191461032257816370a08231146102eb57816395d89b41146101cc578163a457c2d71461012457508063a9059cbb146100f45763dd62ed3e146100a957600080fd5b346100f057806003193601126100f057806020926100c5610695565b6100cd6106b0565b6001600160a01b0391821683526001865283832091168252845220549051908152f35b5080fd5b50346100f057806003193601126100f05760209061011d610113610695565b60243590336106e9565b5160018152f35b905082346101c957826003193601126101c95761013f610695565b918360243592338152600160205281812060018060a01b03861682526020522054908282106101785760208561011d858503873361085e565b608490602086519162461bcd60e51b8352820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152fd5b80fd5b8383346100f057816003193601126100f057805190828454600181811c908083169283156102e1575b60209384841081146102ce578388529081156102b2575060011461025d575b505050829003601f01601f191682019267ffffffffffffffff84118385101761024a575082918261024692528261064c565b0390f35b634e487b7160e01b815260418552602490fd5b8787529192508591837f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b83851061029e5750505050830101858080610214565b805488860183015293019284908201610288565b60ff1916878501525050151560051b8401019050858080610214565b634e487b7160e01b895260228a52602489fd5b91607f16916101f5565b5050346100f05760203660031901126100f05760209181906001600160a01b03610313610695565b16815280845220549051908152f35b8284346101c957816003193601126101c95761033c610695565b6001600160a01b03169060243582156103a8576020809550816103827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef936002546106c6565b6002558484528382528584206103998282546106c6565b90558551908152a35160018152f35b835162461bcd60e51b8152602081870152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606490fd5b5050346100f057806003193601126100f05761011d60209261043461040e610695565b338352600186528483206001600160a01b038216845286529184902054602435906106c6565b903361085e565b5050346100f057816003193601126100f05760209060ff600554169051908152f35b839150346100f05760603660031901126100f057610479610695565b6104816106b0565b91846044359460018060a01b0384168152600160205281812033825260205220549060001982036104bb575b60208661011d8787876106e9565b8482106104e457509183916104d96020969561011d9503338361085e565b9193948193506104ad565b606490602087519162461bcd60e51b8352820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152fd5b5050346100f057816003193601126100f0576020906002549051908152f35b5050346100f057806003193601126100f05760209061011d610566610695565b602435903361085e565b8490843461064857826003193601126106485782600354600181811c9080831692831561063e575b60209384841081146102ce578388529081156102b257506001146105e857505050829003601f01601f191682019267ffffffffffffffff84118385101761024a575082918261024692528261064c565b600387529192508591837fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b83851061062a5750505050830101858080610214565b805488860183015293019284908201610614565b91607f1691610598565b8280fd5b6020808252825181830181905290939260005b82811061068157505060409293506000838284010152601f8019910116010190565b81810186015184820160400152850161065f565b600435906001600160a01b03821682036106ab57565b600080fd5b602435906001600160a01b03821682036106ab57565b919082018092116106d357565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b0390811691821561080b57169182156107ba5760008281528060205260408120549180831061076657604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef95876020965282865203828220558681522061075b8282546106c6565b9055604051908152a3565b60405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608490fd5b60405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608490fd5b60405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608490fd5b6001600160a01b0390811691821561090f57169182156108bf5760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925918360005260018252604060002085600052825280604060002055604051908152a3565b60405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608490fd5b60405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608490fdfea2646970667358221220ecf6466b8716662ffc671dc3c32439cb6398425596e4462e0de3e0a25972740064736f6c63430008120033","opcodes":"PUSH1 0x80 PUSH1 0x40 DUP2 DUP2 MSTORE PUSH1 0x4 SWAP2 DUP3 CALLDATASIZE LT ISZERO PUSH2 0x16 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP3 DUP4 CALLDATALOAD PUSH1 0xE0 SHR SWAP2 DUP3 PUSH4 0x6FDDE03 EQ PUSH2 0x570 JUMPI POP DUP2 PUSH4 0x95EA7B3 EQ PUSH2 0x546 JUMPI DUP2 PUSH4 0x18160DDD EQ PUSH2 0x527 JUMPI DUP2 PUSH4 0x23B872DD EQ PUSH2 0x45D JUMPI DUP2 PUSH4 0x313CE567 EQ PUSH2 0x43B JUMPI DUP2 PUSH4 0x39509351 EQ PUSH2 0x3EB JUMPI DUP2 PUSH4 0x40C10F19 EQ PUSH2 0x322 JUMPI DUP2 PUSH4 0x70A08231 EQ PUSH2 0x2EB JUMPI DUP2 PUSH4 0x95D89B41 EQ PUSH2 0x1CC JUMPI DUP2 PUSH4 0xA457C2D7 EQ PUSH2 0x124 JUMPI POP DUP1 PUSH4 0xA9059CBB EQ PUSH2 0xF4 JUMPI PUSH4 0xDD62ED3E EQ PUSH2 0xA9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE PUSH2 0xF0 JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0xF0 JUMPI DUP1 PUSH1 0x20 SWAP3 PUSH2 0xC5 PUSH2 0x695 JUMP JUMPDEST PUSH2 0xCD PUSH2 0x6B0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND DUP4 MSTORE PUSH1 0x1 DUP7 MSTORE DUP4 DUP4 KECCAK256 SWAP2 AND DUP3 MSTORE DUP5 MSTORE KECCAK256 SLOAD SWAP1 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST POP DUP1 REVERT JUMPDEST POP CALLVALUE PUSH2 0xF0 JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0xF0 JUMPI PUSH1 0x20 SWAP1 PUSH2 0x11D PUSH2 0x113 PUSH2 0x695 JUMP JUMPDEST PUSH1 0x24 CALLDATALOAD SWAP1 CALLER PUSH2 0x6E9 JUMP JUMPDEST MLOAD PUSH1 0x1 DUP2 MSTORE RETURN JUMPDEST SWAP1 POP DUP3 CALLVALUE PUSH2 0x1C9 JUMPI DUP3 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x1C9 JUMPI PUSH2 0x13F PUSH2 0x695 JUMP JUMPDEST SWAP2 DUP4 PUSH1 0x24 CALLDATALOAD SWAP3 CALLER DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE DUP2 DUP2 KECCAK256 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP7 AND DUP3 MSTORE PUSH1 0x20 MSTORE KECCAK256 SLOAD SWAP1 DUP3 DUP3 LT PUSH2 0x178 JUMPI PUSH1 0x20 DUP6 PUSH2 0x11D DUP6 DUP6 SUB DUP8 CALLER PUSH2 0x85E JUMP JUMPDEST PUSH1 0x84 SWAP1 PUSH1 0x20 DUP7 MLOAD SWAP2 PUSH3 0x461BCD PUSH1 0xE5 SHL DUP4 MSTORE DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE REVERT JUMPDEST DUP1 REVERT JUMPDEST DUP4 DUP4 CALLVALUE PUSH2 0xF0 JUMPI DUP2 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0xF0 JUMPI DUP1 MLOAD SWAP1 DUP3 DUP5 SLOAD PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP1 DUP4 AND SWAP3 DUP4 ISZERO PUSH2 0x2E1 JUMPI JUMPDEST PUSH1 0x20 SWAP4 DUP5 DUP5 LT DUP2 EQ PUSH2 0x2CE JUMPI DUP4 DUP9 MSTORE SWAP1 DUP2 ISZERO PUSH2 0x2B2 JUMPI POP PUSH1 0x1 EQ PUSH2 0x25D JUMPI JUMPDEST POP POP POP DUP3 SWAP1 SUB PUSH1 0x1F ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP3 PUSH8 0xFFFFFFFFFFFFFFFF DUP5 GT DUP4 DUP6 LT OR PUSH2 0x24A JUMPI POP DUP3 SWAP2 DUP3 PUSH2 0x246 SWAP3 MSTORE DUP3 PUSH2 0x64C JUMP JUMPDEST SUB SWAP1 RETURN JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x41 DUP6 MSTORE PUSH1 0x24 SWAP1 REVERT JUMPDEST DUP8 DUP8 MSTORE SWAP2 SWAP3 POP DUP6 SWAP2 DUP4 PUSH32 0x8A35ACFBC15FF81A39AE7D344FD709F28E8600B4AA8C65C6B64BFE7FE36BD19B JUMPDEST DUP4 DUP6 LT PUSH2 0x29E JUMPI POP POP POP POP DUP4 ADD ADD DUP6 DUP1 DUP1 PUSH2 0x214 JUMP JUMPDEST DUP1 SLOAD DUP9 DUP7 ADD DUP4 ADD MSTORE SWAP4 ADD SWAP3 DUP5 SWAP1 DUP3 ADD PUSH2 0x288 JUMP JUMPDEST PUSH1 0xFF NOT AND DUP8 DUP6 ADD MSTORE POP POP ISZERO ISZERO PUSH1 0x5 SHL DUP5 ADD ADD SWAP1 POP DUP6 DUP1 DUP1 PUSH2 0x214 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP10 MSTORE PUSH1 0x22 DUP11 MSTORE PUSH1 0x24 DUP10 REVERT JUMPDEST SWAP2 PUSH1 0x7F AND SWAP2 PUSH2 0x1F5 JUMP JUMPDEST POP POP CALLVALUE PUSH2 0xF0 JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0xF0 JUMPI PUSH1 0x20 SWAP2 DUP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH2 0x313 PUSH2 0x695 JUMP JUMPDEST AND DUP2 MSTORE DUP1 DUP5 MSTORE KECCAK256 SLOAD SWAP1 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST DUP3 DUP5 CALLVALUE PUSH2 0x1C9 JUMPI DUP2 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x1C9 JUMPI PUSH2 0x33C PUSH2 0x695 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH1 0x24 CALLDATALOAD DUP3 ISZERO PUSH2 0x3A8 JUMPI PUSH1 0x20 DUP1 SWAP6 POP DUP2 PUSH2 0x382 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP4 PUSH1 0x2 SLOAD PUSH2 0x6C6 JUMP JUMPDEST PUSH1 0x2 SSTORE DUP5 DUP5 MSTORE DUP4 DUP3 MSTORE DUP6 DUP5 KECCAK256 PUSH2 0x399 DUP3 DUP3 SLOAD PUSH2 0x6C6 JUMP JUMPDEST SWAP1 SSTORE DUP6 MLOAD SWAP1 DUP2 MSTORE LOG3 MLOAD PUSH1 0x1 DUP2 MSTORE RETURN JUMPDEST DUP4 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 DUP2 DUP8 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A206D696E7420746F20746865207A65726F206164647265737300 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 SWAP1 REVERT JUMPDEST POP POP CALLVALUE PUSH2 0xF0 JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0xF0 JUMPI PUSH2 0x11D PUSH1 0x20 SWAP3 PUSH2 0x434 PUSH2 0x40E PUSH2 0x695 JUMP JUMPDEST CALLER DUP4 MSTORE PUSH1 0x1 DUP7 MSTORE DUP5 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND DUP5 MSTORE DUP7 MSTORE SWAP2 DUP5 SWAP1 KECCAK256 SLOAD PUSH1 0x24 CALLDATALOAD SWAP1 PUSH2 0x6C6 JUMP JUMPDEST SWAP1 CALLER PUSH2 0x85E JUMP JUMPDEST POP POP CALLVALUE PUSH2 0xF0 JUMPI DUP2 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0xF0 JUMPI PUSH1 0x20 SWAP1 PUSH1 0xFF PUSH1 0x5 SLOAD AND SWAP1 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST DUP4 SWAP2 POP CALLVALUE PUSH2 0xF0 JUMPI PUSH1 0x60 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0xF0 JUMPI PUSH2 0x479 PUSH2 0x695 JUMP JUMPDEST PUSH2 0x481 PUSH2 0x6B0 JUMP JUMPDEST SWAP2 DUP5 PUSH1 0x44 CALLDATALOAD SWAP5 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP5 AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE DUP2 DUP2 KECCAK256 CALLER DUP3 MSTORE PUSH1 0x20 MSTORE KECCAK256 SLOAD SWAP1 PUSH1 0x0 NOT DUP3 SUB PUSH2 0x4BB JUMPI JUMPDEST PUSH1 0x20 DUP7 PUSH2 0x11D DUP8 DUP8 DUP8 PUSH2 0x6E9 JUMP JUMPDEST DUP5 DUP3 LT PUSH2 0x4E4 JUMPI POP SWAP2 DUP4 SWAP2 PUSH2 0x4D9 PUSH1 0x20 SWAP7 SWAP6 PUSH2 0x11D SWAP6 SUB CALLER DUP4 PUSH2 0x85E JUMP JUMPDEST SWAP2 SWAP4 SWAP5 DUP2 SWAP4 POP PUSH2 0x4AD JUMP JUMPDEST PUSH1 0x64 SWAP1 PUSH1 0x20 DUP8 MLOAD SWAP2 PUSH3 0x461BCD PUSH1 0xE5 SHL DUP4 MSTORE DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH1 0x44 DUP3 ADD MSTORE REVERT JUMPDEST POP POP CALLVALUE PUSH2 0xF0 JUMPI DUP2 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0xF0 JUMPI PUSH1 0x20 SWAP1 PUSH1 0x2 SLOAD SWAP1 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST POP POP CALLVALUE PUSH2 0xF0 JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0xF0 JUMPI PUSH1 0x20 SWAP1 PUSH2 0x11D PUSH2 0x566 PUSH2 0x695 JUMP JUMPDEST PUSH1 0x24 CALLDATALOAD SWAP1 CALLER PUSH2 0x85E JUMP JUMPDEST DUP5 SWAP1 DUP5 CALLVALUE PUSH2 0x648 JUMPI DUP3 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x648 JUMPI DUP3 PUSH1 0x3 SLOAD PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP1 DUP4 AND SWAP3 DUP4 ISZERO PUSH2 0x63E JUMPI JUMPDEST PUSH1 0x20 SWAP4 DUP5 DUP5 LT DUP2 EQ PUSH2 0x2CE JUMPI DUP4 DUP9 MSTORE SWAP1 DUP2 ISZERO PUSH2 0x2B2 JUMPI POP PUSH1 0x1 EQ PUSH2 0x5E8 JUMPI POP POP POP DUP3 SWAP1 SUB PUSH1 0x1F ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP3 PUSH8 0xFFFFFFFFFFFFFFFF DUP5 GT DUP4 DUP6 LT OR PUSH2 0x24A JUMPI POP DUP3 SWAP2 DUP3 PUSH2 0x246 SWAP3 MSTORE DUP3 PUSH2 0x64C JUMP JUMPDEST PUSH1 0x3 DUP8 MSTORE SWAP2 SWAP3 POP DUP6 SWAP2 DUP4 PUSH32 0xC2575A0E9E593C00F959F8C92F12DB2869C3395A3B0502D05E2516446F71F85B JUMPDEST DUP4 DUP6 LT PUSH2 0x62A JUMPI POP POP POP POP DUP4 ADD ADD DUP6 DUP1 DUP1 PUSH2 0x214 JUMP JUMPDEST DUP1 SLOAD DUP9 DUP7 ADD DUP4 ADD MSTORE SWAP4 ADD SWAP3 DUP5 SWAP1 DUP3 ADD PUSH2 0x614 JUMP JUMPDEST SWAP2 PUSH1 0x7F AND SWAP2 PUSH2 0x598 JUMP JUMPDEST DUP3 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP3 MLOAD DUP2 DUP4 ADD DUP2 SWAP1 MSTORE SWAP1 SWAP4 SWAP3 PUSH1 0x0 JUMPDEST DUP3 DUP2 LT PUSH2 0x681 JUMPI POP POP PUSH1 0x40 SWAP3 SWAP4 POP PUSH1 0x0 DUP4 DUP3 DUP5 ADD ADD MSTORE PUSH1 0x1F DUP1 NOT SWAP2 ADD AND ADD ADD SWAP1 JUMP JUMPDEST DUP2 DUP2 ADD DUP7 ADD MLOAD DUP5 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP6 ADD PUSH2 0x65F JUMP JUMPDEST PUSH1 0x4 CALLDATALOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND DUP3 SUB PUSH2 0x6AB JUMPI JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x24 CALLDATALOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND DUP3 SUB PUSH2 0x6AB JUMPI JUMP JUMPDEST SWAP2 SWAP1 DUP3 ADD DUP1 SWAP3 GT PUSH2 0x6D3 JUMPI JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND SWAP2 DUP3 ISZERO PUSH2 0x80B JUMPI AND SWAP2 DUP3 ISZERO PUSH2 0x7BA JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE DUP1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD SWAP2 DUP1 DUP4 LT PUSH2 0x766 JUMPI PUSH1 0x40 DUP3 DUP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP6 DUP8 PUSH1 0x20 SWAP7 MSTORE DUP3 DUP7 MSTORE SUB DUP3 DUP3 KECCAK256 SSTORE DUP7 DUP2 MSTORE KECCAK256 PUSH2 0x75B DUP3 DUP3 SLOAD PUSH2 0x6C6 JUMP JUMPDEST SWAP1 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE LOG3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND SWAP2 DUP3 ISZERO PUSH2 0x90F JUMPI AND SWAP2 DUP3 ISZERO PUSH2 0x8BF JUMPI PUSH1 0x20 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 DUP4 PUSH1 0x0 MSTORE PUSH1 0x1 DUP3 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 DUP6 PUSH1 0x0 MSTORE DUP3 MSTORE DUP1 PUSH1 0x40 PUSH1 0x0 KECCAK256 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE LOG3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xEC 0xF6 CHAINID PUSH12 0x8716662FFC671DC3C32439CB PUSH4 0x98425596 0xE4 CHAINID 0x2E 0xD 0xE3 0xE0 LOG2 MSIZE PUSH19 0x740064736F6C63430008120033000000000000 ","sourceMap":"122:452:46:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;-1:-1:-1;;;;;122:452:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3883:6:25;122:452:46;;:::i;:::-;;;719:10:35;;3883:6:25;:::i;:::-;122:452:46;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;719:10:35;;122:452:46;;;;;;;;;;;;;;;;;;;;;6811:35:25;;;;122:452:46;;;;6947:34:25;122:452:46;;;;719:10:35;6947:34:25;:::i;122:452:46:-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;122:452:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;122:452:46;;;;;-1:-1:-1;;122:452:46;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;122:452:46;;;;;;;;;;;;;;-1:-1:-1;122:452:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;122:452:46;;;;;-1:-1:-1;;122:452:46;;;;;;;;-1:-1:-1;122:452:46;;;;;;-1:-1:-1;;;122:452:46;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;122:452:46;;;;;;;;-1:-1:-1;;;;;122:452:46;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;122:452:46;;;;8494:21:25;;122:452:46;;;;;;;8622:22:25;8697:37;122:452:46;8622:22:25;122:452:46;8622:22:25;:::i;:::-;;122:452:46;;;;;;;;;;8654:28:25;122:452:46;;;8654:28:25;:::i;:::-;122:452:46;;;;;;;8697:37:25;122:452:46;;;;;;;;-1:-1:-1;;;122:452:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6040:38:25;122:452:46;;6040:38:25;122:452:46;;:::i;:::-;719:10:35;122:452:46;;;;;;;;-1:-1:-1;;;;;122:452:46;;;;;;;;;;;;;;6040:38:25;:::i;:::-;719:10:35;;6040:38:25;:::i;122:452:46:-;;;;;;;;;;;;;;;;;556:9;122:452;;;;;;;;;;;;;;;;;-1:-1:-1;;122:452:46;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;719:10:35;122:452:46;;;;;;10986:17:25;;;10966:37;;10962:243;;122:452:46;;5443:6:25;;;;;;:::i;10962:243::-;11027:26;;;122:452:46;;;;;;11154:25:25;122:452:46;;;5443:6:25;122:452:46;;719:10:35;11154:25:25;;:::i;:::-;10962:243;;;;;;;;122:452:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3331:12:25;122:452:46;;;;;;;;;;;;;;;;;;;;;;;4595:6:25;122:452:46;;:::i;:::-;;;719:10:35;;4595:6:25;:::i;122:452:46:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;122:452:46;;;;;-1:-1:-1;;122:452:46;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;122:452:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;122:452:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;122:452:46;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;;;;122:452:46;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;7484:651:25;-1:-1:-1;;;;;122:452:46;;;;7610:18:25;;122:452:46;;;7688:16:25;;;122:452:46;;7626:1:25;122:452:46;;;;;;;;;;7859:21:25;;;;122:452:46;;;;;8054:26:25;122:452:46;;;;;;;;;;;;;;;;;8015:23:25;122:452:46;;;8015:23:25;:::i;:::-;122:452:46;;;;;;;8054:26:25;7484:651::o;122:452:46:-;;;-1:-1:-1;;;122:452:46;;;;;;;;;;;;;;;;;-1:-1:-1;;;122:452:46;;;;;;;;;;-1:-1:-1;;;122:452:46;;;;;;;;;;;;;;;;;-1:-1:-1;;;122:452:46;;;;;;;;;;-1:-1:-1;;;122:452:46;;;;;;;;;;;;;;;;;-1:-1:-1;;;122:452:46;;;;;;;10119:370:25;-1:-1:-1;;;;;122:452:46;;;;10250:19:25;;122:452:46;;;10328:21:25;;;122:452:46;;;10450:32:25;122:452:46;;10267:1:25;122:452:46;;;;;10267:1:25;122:452:46;;10267:1:25;122:452:46;;;;;10267:1:25;122:452:46;;;;;;;10450:32:25;10119:370::o;122:452:46:-;;;-1:-1:-1;;;122:452:46;;;;;;;;;;;;;;;;;-1:-1:-1;;;122:452:46;;;;;;;;;;-1:-1:-1;;;122:452:46;;;;;;;;;;;;;;;;;-1:-1:-1;;;122:452:46;;;;;;"},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","increaseAllowance(address,uint256)":"39509351","mint(address,uint256)":"40c10f19","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"decimals_\",\"type\":\"uint8\"}],\"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\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"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\":{\"contracts/MyERC20.sol\":\"MyERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xe0c8b625a79bac0fe80f17cfb521e072805cc9cef1c96a5caf45b264e74812fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12fd1efc9ad061ef675bd50fb0c8e3c6f2952a09f8df0e3c688b8d81b8918838\",\"dweb:/ipfs/QmawN6PjTwy91pU7ANjCSgbsLc8TDA6hwu9GsFFaNSuhb5\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"contracts/MyERC20.sol\":{\"keccak256\":\"0x08a735273ab59d0182895f68d7f310e2e5023c3d69767c0c9b483981877006f5\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://087dced97bc8bae615a503f37c7e4b981187e7e873155dbdfe0fe9d3d342c6e9\",\"dweb:/ipfs/QmdJaPTSCrWJymLhWiH7Gz74ZYbvuFiezzaDG96vM9Y28E\"]}},\"version\":1}"}},"contracts/MyNFT.sol":{"MyNFT":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"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":"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":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"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":"address","name":"recipient","type":"address"},{"internalType":"string","name":"tokenURI","type":"string"}],"name":"mintNFT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","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":"nonpayable","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":"nonpayable","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":"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":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60803462000352576001600160401b03906040818101838111838210176200033c5781526005825260209164135e53919560da1b83820152815193828501858110828211176200033c578352600385526213919560ea1b8486015281518181116200033c576000948554916001948584811c9416801562000331575b838510146200031d578190601f94858111620002ca575b508390858311600114620002665789926200025a575b5050600019600383901b1c191690851b1786555b8651928311620002465783548481811c911680156200023b575b828210146200022757828111620001df575b5080918311600114620001785750849582939495926200016c575b5050600019600383901b1c191690821b1790555b60078054336001600160a01b03198216811790925591519290916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a36118ef9081620003588239f35b01519050388062000103565b90601f198316968487528287209287905b898210620001c7575050838596979810620001ad575b505050811b01905562000117565b015160001960f88460031b161c191690553880806200019f565b80878596829496860151815501950193019062000189565b8487528187208380860160051c8201928487106200021d575b0160051c019085905b82811062000211575050620000e8565b88815501859062000201565b92508192620001f8565b634e487b7160e01b87526022600452602487fd5b90607f1690620000d6565b634e487b7160e01b86526041600452602486fd5b015190503880620000a8565b898052848a208894509190601f1984168b5b87828210620002b3575050841162000299575b505050811b018655620000bc565b015160001960f88460031b161c191690553880806200028b565b8385015186558b9790950194938401930162000278565b9091508880528389208580850160051c82019286861062000313575b918991869594930160051c01915b8281106200030457505062000092565b8b8155859450899101620002f4565b92508192620002e6565b634e487b7160e01b88526022600452602488fd5b93607f16936200007b565b634e487b7160e01b600052604160045260246000fd5b600080fdfe6080604052600436101561001257600080fd5b60003560e01c806301ffc9a71461012757806306fdde0314610122578063081812fc1461011d578063095ea7b31461011857806323b872dd1461011357806342842e0e1461010e5780636352211e1461010957806370a0823114610104578063715018a6146100ff5780638da5cb5b146100fa57806395d89b41146100f5578063a22cb465146100f0578063b88d4fde146100eb578063c87b56dd146100e6578063e985e9c5146100e1578063eacabe14146100dc5763f2fde38b146100d757600080fd5b610ac1565b610938565b6108db565b6108a8565b610848565b6106b0565b61060b565b6105e2565b610581565b6104df565b6104c1565b610499565b610470565b61034c565b6102f0565b61020d565b610143565b6001600160e01b031981160361013e57565b600080fd5b3461013e57602036600319011261013e5760206004356101628161012c565b63ffffffff60e01b166380ac58cd60e01b81149081156101a0575b811561018f575b506040519015158152f35b6301ffc9a760e01b14905038610184565b635b5e139f60e01b8114915061017d565b60005b8381106101c45750506000910152565b81810151838201526020016101b4565b906020916101ed815180928185528580860191016101b1565b601f01601f1916010190565b90602061020a9281815201906101d4565b90565b3461013e576000806003193601126102ed576040519080805461022f81610c63565b808552916001918083169081156102c35750600114610269575b61026585610259818703826107d3565b604051918291826101f9565b0390f35b80809450527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b8284106102ab57505050810160200161025982610265610249565b80546020858701810191909152909301928101610290565b8695506102659693506020925061025994915060ff191682840152151560051b8201019293610249565b80fd5b3461013e57602036600319011261013e57602061030e600435610db5565b6040516001600160a01b039091168152f35b600435906001600160a01b038216820361013e57565b602435906001600160a01b038216820361013e57565b3461013e57604036600319011261013e57610365610320565b60243561037181610beb565b916001600160a01b0380841690821681146103ec576103a39361039e9133149081156103a5575b50610d43565b611254565b005b6001600160a01b031660009081526005602052604090206103e691506103df9033905b9060018060a01b0316600052602052604060002090565b5460ff1690565b38610398565b60405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608490fd5b606090600319011261013e576001600160a01b0390600435828116810361013e5791602435908116810361013e579060443590565b3461013e576103a36104813661043b565b9161049461048f8433610f5b565b610e47565b6110e9565b3461013e576103a36104aa3661043b565b90604051926104b8846107b2565b60008452610ec0565b3461013e57602036600319011261013e57602061030e600435610beb565b3461013e57602036600319011261013e576001600160a01b03610500610320565b168015610529576000526003602052610265604060002054604051918291829190602083019252565b60405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604482015269726f206164647265737360b01b6064820152608490fd5b3461013e576000806003193601126102ed5760075481906001600160a01b038116906105ae338314610b57565b6001600160a01b0319166007557f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b3461013e57600036600319011261013e576007546040516001600160a01b039091168152602090f35b3461013e576000806003193601126102ed576040519080600180549161063083610c63565b808652928281169081156102c357506001146106565761026585610259818703826107d3565b92508083527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b82841061069857505050810160200161025982610265610249565b8054602085870181019190915290930192810161067d565b3461013e57604036600319011261013e576106c9610320565b602435801515810361013e576001600160a01b0382169133831461075757816107146107259233600052600560205260406000209060018060a01b0316600052602052604060002090565b9060ff801983541691151516179055565b604051901515815233907f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3190602090a3005b60405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606490fd5b634e487b7160e01b600052604160045260246000fd5b6020810190811067ffffffffffffffff8211176107ce57604052565b61079c565b90601f8019910116810190811067ffffffffffffffff8211176107ce57604052565b67ffffffffffffffff81116107ce57601f01601f191660200190565b92919261081d826107f5565b9161082b60405193846107d3565b82948184528183011161013e578281602093846000960137010152565b3461013e57608036600319011261013e57610861610320565b610869610336565b6064359167ffffffffffffffff831161013e573660238401121561013e5761089e6103a3933690602481600401359101610811565b9160443591610ec0565b3461013e57602036600319011261013e576102656108c7600435611408565b6040519182916020835260208301906101d4565b3461013e57604036600319011261013e57602060ff61092c6108fb610320565b610903610336565b6001600160a01b0391821660009081526005865260408082209290931681526020919091522090565b54166040519015158152f35b3461013e57604036600319011261013e57610951610320565b60243567ffffffffffffffff811161013e573660238201121561013e57610982903690602481600401359101610811565b6007546001600160a01b03919061099c9083163314610b57565b60016008540191826008558316908115610a7d5782610a6d92610a41610265966109ea6109e56109e186600052600260205260018060a01b0360406000205416151590565b1590565b6116c3565b6001600160a01b0381166000908152600360205260409020610a0c81546110cd565b9055610a22846000526002602052604060002090565b80546001600160a01b0319166001600160a01b03909216919091179055565b60007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a482611763565b6040519081529081906020820190565b606460405162461bcd60e51b815260206004820152602060248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152fd5b3461013e57602036600319011261013e57610ada610320565b6007546001600160a01b0390610af39082163314610b57565b811615610b03576103a390610ba2565b60405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608490fd5b15610b5e57565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b600780546001600160a01b039283166001600160a01b0319821681179092559091167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3565b6000908152600260205260409020546001600160a01b03168015610c0c5790565b60405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201526832b73a103a37b5b2b760b91b6064820152608490fd5b90600182811c92168015610c93575b6020831014610c7d57565b634e487b7160e01b600052602260045260246000fd5b91607f1691610c72565b9060405191826000825492610cb184610c63565b908184526001948581169081600014610d205750600114610cdd575b5050610cdb925003836107d3565b565b9093915060005260209081600020936000915b818310610d08575050610cdb93508201013880610ccd565b85548884018501529485019487945091830191610cf0565b915050610cdb94506020925060ff191682840152151560051b8201013880610ccd565b15610d4a57565b60405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c00000000000000006064820152608490fd5b6000818152600260205260409020546001600160a01b031615610ded576000908152600460205260409020546001600160a01b031690565b60405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608490fd5b15610e4e57565b60405162461bcd60e51b815260206004820152603160248201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6044820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b6064820152608490fd5b60405190610eba826107b2565b60008252565b90610ee4939291610ed461048f8433610f5b565b610edf8383836110e9565b61132e565b15610eeb57565b60405162461bcd60e51b815280610f0460048201610f08565b0390fd5b60809060208152603260208201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b60608201520190565b6000828152600260205260409020546001600160a01b031615610ff157610f8182610beb565b9160018060a01b0390818316928285168414948515610fc0575b50508315610faa575b50505090565b610fb691929350610db5565b1614388080610fa4565b6001600160a01b0316600090815260056020526040902091945060ff91610fe791906103c8565b5416923880610f9b565b60405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608490fd5b1561105257565b60405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608490fd5b634e487b7160e01b600052601160045260246000fd5b6000198101919082116110c857565b6110a3565b90600182018092116110c857565b60300190816030116110c857565b906110f383610beb565b6001600160a01b0383811692909182168390036111ad576111426111869282169461111f86151561104b565b61112887611200565b6001600160a01b0316600090815260036020526040902090565b61114c81546110b9565b90556001600160a01b038116600090815260036020526040902061117081546110cd565b9055610a22856000526002602052604060002090565b7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4565b60405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b6064820152608490fd5b600081815260046020526040812080546001600160a01b03191690556001600160a01b0361122d83610beb565b167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258280a4565b600082815260046020526040902080546001600160a01b0319166001600160a01b0383161790556001600160a01b038061128d84610beb565b169116907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600080a4565b9081602091031261013e575161020a8161012c565b6001600160a01b03918216815291166020820152604081019190915260806060820181905261020a929101906101d4565b3d15611329573d9061130f826107f5565b9161131d60405193846107d3565b82523d6000602084013e565b606090565b92909190823b156113e857611361926020926000604051809681958294630a85bd0160e11b9a8b855233600486016112cd565b03926001600160a01b03165af1600091816113b8575b506113aa576113846112fe565b805190816113a55760405162461bcd60e51b815280610f0460048201610f08565b602001fd5b6001600160e01b0319161490565b6113da91925060203d81116113e1575b6113d281836107d3565b8101906112b8565b9038611377565b503d6113c8565b50505050600190565b90611404602092828151948592016101b1565b0190565b6000818152600260205260409020546001600160a01b0316156114975761144161143c826000526006602052604060002090565b610c9d565b9061144a610ead565b805115611492578251611462575061020a91506114f6565b61020a915061148461147e9360405194859360208501906113f1565b906113f1565b03601f1981018352826107d3565b505090565b60405162461bcd60e51b815260206004820152603160248201527f45524337323155524953746f726167653a2055524920717565727920666f72206044820152703737b732bc34b9ba32b73a103a37b5b2b760791b6064820152608490fd5b6000818152600260205260409020546001600160a01b0316156115525761151b610ead565b8051909190156115485761147e9161148461153861020a93611608565b60405194859360208501906113f1565b505061020a610ead565b60405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b6064820152608490fd5b906115b9826107f5565b6115c660405191826107d3565b82815280926115d7601f19916107f5565b0190602036910137565b9081518110156115f2570160200190565b634e487b7160e01b600052603260045260246000fd5b8015611694576000818181805b6116785750611623816115af565b935b61162f5750505090565b611638906110b9565b90600a9061166361165361164d8484066110db565b60ff1690565b60f81b6001600160f81b03191690565b841a61166f84876115e1565b53049081611625565b915060001981146110c8576001600a9101910480849291611615565b506040516040810181811067ffffffffffffffff8211176107ce5760405260018152600360fc1b602082015290565b156116ca57565b60405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606490fd5b90601f811161171d57505050565b600091825260208220906020601f850160051c83019410611759575b601f0160051c01915b82811061174e57505050565b818155600101611742565b9092508290611739565b6000818152600260205260409020549192916001600160a01b03161561185d5760005260206006815260406000209083519067ffffffffffffffff82116107ce576117b8826117b28554610c63565b8561170f565b80601f83116001146117f25750819293946000926117e7575b50508160011b916000199060031b1c1916179055565b0151905038806117d1565b90601f1983169561180885600052602060002090565b926000905b8882106118455750508360019596971061182c575b505050811b019055565b015160001960f88460031b161c19169055388080611822565b8060018596829496860151815501950193019061180d565b60405162461bcd60e51b815260206004820152602e60248201527f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60448201526d32bc34b9ba32b73a103a37b5b2b760911b6064820152608490fdfea26469706673582212209d70e4abf028cab3a64325ad2648d8f06205513affd8e16a5501ada03fd2c65c64736f6c63430008120033","opcodes":"PUSH1 0x80 CALLVALUE PUSH3 0x352 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 PUSH1 0x40 DUP2 DUP2 ADD DUP4 DUP2 GT DUP4 DUP3 LT OR PUSH3 0x33C JUMPI DUP2 MSTORE PUSH1 0x5 DUP3 MSTORE PUSH1 0x20 SWAP2 PUSH5 0x135E539195 PUSH1 0xDA SHL DUP4 DUP3 ADD MSTORE DUP2 MLOAD SWAP4 DUP3 DUP6 ADD DUP6 DUP2 LT DUP3 DUP3 GT OR PUSH3 0x33C JUMPI DUP4 MSTORE PUSH1 0x3 DUP6 MSTORE PUSH3 0x139195 PUSH1 0xEA SHL DUP5 DUP7 ADD MSTORE DUP2 MLOAD DUP2 DUP2 GT PUSH3 0x33C JUMPI PUSH1 0x0 SWAP5 DUP6 SLOAD SWAP2 PUSH1 0x1 SWAP5 DUP6 DUP5 DUP2 SHR SWAP5 AND DUP1 ISZERO PUSH3 0x331 JUMPI JUMPDEST DUP4 DUP6 LT EQ PUSH3 0x31D JUMPI DUP2 SWAP1 PUSH1 0x1F SWAP5 DUP6 DUP2 GT PUSH3 0x2CA JUMPI JUMPDEST POP DUP4 SWAP1 DUP6 DUP4 GT PUSH1 0x1 EQ PUSH3 0x266 JUMPI DUP10 SWAP3 PUSH3 0x25A JUMPI JUMPDEST POP POP PUSH1 0x0 NOT PUSH1 0x3 DUP4 SWAP1 SHL SHR NOT AND SWAP1 DUP6 SHL OR DUP7 SSTORE JUMPDEST DUP7 MLOAD SWAP3 DUP4 GT PUSH3 0x246 JUMPI DUP4 SLOAD DUP5 DUP2 DUP2 SHR SWAP2 AND DUP1 ISZERO PUSH3 0x23B JUMPI JUMPDEST DUP3 DUP3 LT EQ PUSH3 0x227 JUMPI DUP3 DUP2 GT PUSH3 0x1DF JUMPI JUMPDEST POP DUP1 SWAP2 DUP4 GT PUSH1 0x1 EQ PUSH3 0x178 JUMPI POP DUP5 SWAP6 DUP3 SWAP4 SWAP5 SWAP6 SWAP3 PUSH3 0x16C JUMPI JUMPDEST POP POP PUSH1 0x0 NOT PUSH1 0x3 DUP4 SWAP1 SHL SHR NOT AND SWAP1 DUP3 SHL OR SWAP1 SSTORE JUMPDEST PUSH1 0x7 DUP1 SLOAD CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP3 AND DUP2 OR SWAP1 SWAP3 SSTORE SWAP2 MLOAD SWAP3 SWAP1 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 DUP1 LOG3 PUSH2 0x18EF SWAP1 DUP2 PUSH3 0x358 DUP3 CODECOPY RETURN JUMPDEST ADD MLOAD SWAP1 POP CODESIZE DUP1 PUSH3 0x103 JUMP JUMPDEST SWAP1 PUSH1 0x1F NOT DUP4 AND SWAP7 DUP5 DUP8 MSTORE DUP3 DUP8 KECCAK256 SWAP3 DUP8 SWAP1 JUMPDEST DUP10 DUP3 LT PUSH3 0x1C7 JUMPI POP POP DUP4 DUP6 SWAP7 SWAP8 SWAP9 LT PUSH3 0x1AD JUMPI JUMPDEST POP POP POP DUP2 SHL ADD SWAP1 SSTORE PUSH3 0x117 JUMP JUMPDEST ADD MLOAD PUSH1 0x0 NOT PUSH1 0xF8 DUP5 PUSH1 0x3 SHL AND SHR NOT AND SWAP1 SSTORE CODESIZE DUP1 DUP1 PUSH3 0x19F JUMP JUMPDEST DUP1 DUP8 DUP6 SWAP7 DUP3 SWAP5 SWAP7 DUP7 ADD MLOAD DUP2 SSTORE ADD SWAP6 ADD SWAP4 ADD SWAP1 PUSH3 0x189 JUMP JUMPDEST DUP5 DUP8 MSTORE DUP2 DUP8 KECCAK256 DUP4 DUP1 DUP7 ADD PUSH1 0x5 SHR DUP3 ADD SWAP3 DUP5 DUP8 LT PUSH3 0x21D JUMPI JUMPDEST ADD PUSH1 0x5 SHR ADD SWAP1 DUP6 SWAP1 JUMPDEST DUP3 DUP2 LT PUSH3 0x211 JUMPI POP POP PUSH3 0xE8 JUMP JUMPDEST DUP9 DUP2 SSTORE ADD DUP6 SWAP1 PUSH3 0x201 JUMP JUMPDEST SWAP3 POP DUP2 SWAP3 PUSH3 0x1F8 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP8 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 DUP8 REVERT JUMPDEST SWAP1 PUSH1 0x7F AND SWAP1 PUSH3 0xD6 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP7 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 DUP7 REVERT JUMPDEST ADD MLOAD SWAP1 POP CODESIZE DUP1 PUSH3 0xA8 JUMP JUMPDEST DUP10 DUP1 MSTORE DUP5 DUP11 KECCAK256 DUP9 SWAP5 POP SWAP2 SWAP1 PUSH1 0x1F NOT DUP5 AND DUP12 JUMPDEST DUP8 DUP3 DUP3 LT PUSH3 0x2B3 JUMPI POP POP DUP5 GT PUSH3 0x299 JUMPI JUMPDEST POP POP POP DUP2 SHL ADD DUP7 SSTORE PUSH3 0xBC JUMP JUMPDEST ADD MLOAD PUSH1 0x0 NOT PUSH1 0xF8 DUP5 PUSH1 0x3 SHL AND SHR NOT AND SWAP1 SSTORE CODESIZE DUP1 DUP1 PUSH3 0x28B JUMP JUMPDEST DUP4 DUP6 ADD MLOAD DUP7 SSTORE DUP12 SWAP8 SWAP1 SWAP6 ADD SWAP5 SWAP4 DUP5 ADD SWAP4 ADD PUSH3 0x278 JUMP JUMPDEST SWAP1 SWAP2 POP DUP9 DUP1 MSTORE DUP4 DUP10 KECCAK256 DUP6 DUP1 DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP3 DUP7 DUP7 LT PUSH3 0x313 JUMPI JUMPDEST SWAP2 DUP10 SWAP2 DUP7 SWAP6 SWAP5 SWAP4 ADD PUSH1 0x5 SHR ADD SWAP2 JUMPDEST DUP3 DUP2 LT PUSH3 0x304 JUMPI POP POP PUSH3 0x92 JUMP JUMPDEST DUP12 DUP2 SSTORE DUP6 SWAP5 POP DUP10 SWAP2 ADD PUSH3 0x2F4 JUMP JUMPDEST SWAP3 POP DUP2 SWAP3 PUSH3 0x2E6 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP9 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 DUP9 REVERT JUMPDEST SWAP4 PUSH1 0x7F AND SWAP4 PUSH3 0x7B JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT ISZERO PUSH2 0x12 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x127 JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x122 JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0x11D JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x118 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x113 JUMPI DUP1 PUSH4 0x42842E0E EQ PUSH2 0x10E JUMPI DUP1 PUSH4 0x6352211E EQ PUSH2 0x109 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x104 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0xFF JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0xFA JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0xF5 JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0xF0 JUMPI DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0xEB JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0xE6 JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0xE1 JUMPI DUP1 PUSH4 0xEACABE14 EQ PUSH2 0xDC JUMPI PUSH4 0xF2FDE38B EQ PUSH2 0xD7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xAC1 JUMP JUMPDEST PUSH2 0x938 JUMP JUMPDEST PUSH2 0x8DB JUMP JUMPDEST PUSH2 0x8A8 JUMP JUMPDEST PUSH2 0x848 JUMP JUMPDEST PUSH2 0x6B0 JUMP JUMPDEST PUSH2 0x60B JUMP JUMPDEST PUSH2 0x5E2 JUMP JUMPDEST PUSH2 0x581 JUMP JUMPDEST PUSH2 0x4DF JUMP JUMPDEST PUSH2 0x4C1 JUMP JUMPDEST PUSH2 0x499 JUMP JUMPDEST PUSH2 0x470 JUMP JUMPDEST PUSH2 0x34C JUMP JUMPDEST PUSH2 0x2F0 JUMP JUMPDEST PUSH2 0x20D JUMP JUMPDEST PUSH2 0x143 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND SUB PUSH2 0x13E JUMPI JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE PUSH2 0x13E JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x13E JUMPI PUSH1 0x20 PUSH1 0x4 CALLDATALOAD PUSH2 0x162 DUP2 PUSH2 0x12C JUMP JUMPDEST PUSH4 0xFFFFFFFF PUSH1 0xE0 SHL AND PUSH4 0x80AC58CD PUSH1 0xE0 SHL DUP2 EQ SWAP1 DUP2 ISZERO PUSH2 0x1A0 JUMPI JUMPDEST DUP2 ISZERO PUSH2 0x18F JUMPI JUMPDEST POP PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE RETURN JUMPDEST PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL EQ SWAP1 POP CODESIZE PUSH2 0x184 JUMP JUMPDEST PUSH4 0x5B5E139F PUSH1 0xE0 SHL DUP2 EQ SWAP2 POP PUSH2 0x17D JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT PUSH2 0x1C4 JUMPI POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x1B4 JUMP JUMPDEST SWAP1 PUSH1 0x20 SWAP2 PUSH2 0x1ED DUP2 MLOAD DUP1 SWAP3 DUP2 DUP6 MSTORE DUP6 DUP1 DUP7 ADD SWAP2 ADD PUSH2 0x1B1 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND ADD ADD SWAP1 JUMP JUMPDEST SWAP1 PUSH1 0x20 PUSH2 0x20A SWAP3 DUP2 DUP2 MSTORE ADD SWAP1 PUSH2 0x1D4 JUMP JUMPDEST SWAP1 JUMP JUMPDEST CALLVALUE PUSH2 0x13E JUMPI PUSH1 0x0 DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x2ED JUMPI PUSH1 0x40 MLOAD SWAP1 DUP1 DUP1 SLOAD PUSH2 0x22F DUP2 PUSH2 0xC63 JUMP JUMPDEST DUP1 DUP6 MSTORE SWAP2 PUSH1 0x1 SWAP2 DUP1 DUP4 AND SWAP1 DUP2 ISZERO PUSH2 0x2C3 JUMPI POP PUSH1 0x1 EQ PUSH2 0x269 JUMPI JUMPDEST PUSH2 0x265 DUP6 PUSH2 0x259 DUP2 DUP8 SUB DUP3 PUSH2 0x7D3 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP2 DUP3 SWAP2 DUP3 PUSH2 0x1F9 JUMP JUMPDEST SUB SWAP1 RETURN JUMPDEST DUP1 DUP1 SWAP5 POP MSTORE PUSH32 0x290DECD9548B62A8D60345A988386FC84BA6BC95484008F6362F93160EF3E563 JUMPDEST DUP3 DUP5 LT PUSH2 0x2AB JUMPI POP POP POP DUP2 ADD PUSH1 0x20 ADD PUSH2 0x259 DUP3 PUSH2 0x265 PUSH2 0x249 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x20 DUP6 DUP8 ADD DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 SWAP4 ADD SWAP3 DUP2 ADD PUSH2 0x290 JUMP JUMPDEST DUP7 SWAP6 POP PUSH2 0x265 SWAP7 SWAP4 POP PUSH1 0x20 SWAP3 POP PUSH2 0x259 SWAP5 SWAP2 POP PUSH1 0xFF NOT AND DUP3 DUP5 ADD MSTORE ISZERO ISZERO PUSH1 0x5 SHL DUP3 ADD ADD SWAP3 SWAP4 PUSH2 0x249 JUMP JUMPDEST DUP1 REVERT JUMPDEST CALLVALUE PUSH2 0x13E JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x13E JUMPI PUSH1 0x20 PUSH2 0x30E PUSH1 0x4 CALLDATALOAD PUSH2 0xDB5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE RETURN JUMPDEST PUSH1 0x4 CALLDATALOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND DUP3 SUB PUSH2 0x13E JUMPI JUMP JUMPDEST PUSH1 0x24 CALLDATALOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND DUP3 SUB PUSH2 0x13E JUMPI JUMP JUMPDEST CALLVALUE PUSH2 0x13E JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x13E JUMPI PUSH2 0x365 PUSH2 0x320 JUMP JUMPDEST PUSH1 0x24 CALLDATALOAD PUSH2 0x371 DUP2 PUSH2 0xBEB JUMP JUMPDEST SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND SWAP1 DUP3 AND DUP2 EQ PUSH2 0x3EC JUMPI PUSH2 0x3A3 SWAP4 PUSH2 0x39E SWAP2 CALLER EQ SWAP1 DUP2 ISZERO PUSH2 0x3A5 JUMPI JUMPDEST POP PUSH2 0xD43 JUMP JUMPDEST PUSH2 0x1254 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x3E6 SWAP2 POP PUSH2 0x3DF SWAP1 CALLER SWAP1 JUMPDEST SWAP1 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 SWAP1 JUMP JUMPDEST SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST CODESIZE PUSH2 0x398 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F76616C20746F2063757272656E74206F776E65 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x39 PUSH1 0xF9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST PUSH1 0x60 SWAP1 PUSH1 0x3 NOT ADD SLT PUSH2 0x13E JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 PUSH1 0x4 CALLDATALOAD DUP3 DUP2 AND DUP2 SUB PUSH2 0x13E JUMPI SWAP2 PUSH1 0x24 CALLDATALOAD SWAP1 DUP2 AND DUP2 SUB PUSH2 0x13E JUMPI SWAP1 PUSH1 0x44 CALLDATALOAD SWAP1 JUMP JUMPDEST CALLVALUE PUSH2 0x13E JUMPI PUSH2 0x3A3 PUSH2 0x481 CALLDATASIZE PUSH2 0x43B JUMP JUMPDEST SWAP2 PUSH2 0x494 PUSH2 0x48F DUP5 CALLER PUSH2 0xF5B JUMP JUMPDEST PUSH2 0xE47 JUMP JUMPDEST PUSH2 0x10E9 JUMP JUMPDEST CALLVALUE PUSH2 0x13E JUMPI PUSH2 0x3A3 PUSH2 0x4AA CALLDATASIZE PUSH2 0x43B JUMP JUMPDEST SWAP1 PUSH1 0x40 MLOAD SWAP3 PUSH2 0x4B8 DUP5 PUSH2 0x7B2 JUMP JUMPDEST PUSH1 0x0 DUP5 MSTORE PUSH2 0xEC0 JUMP JUMPDEST CALLVALUE PUSH2 0x13E JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x13E JUMPI PUSH1 0x20 PUSH2 0x30E PUSH1 0x4 CALLDATALOAD PUSH2 0xBEB JUMP JUMPDEST CALLVALUE PUSH2 0x13E JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x13E JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH2 0x500 PUSH2 0x320 JUMP JUMPDEST AND DUP1 ISZERO PUSH2 0x529 JUMPI PUSH1 0x0 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH2 0x265 PUSH1 0x40 PUSH1 0x0 KECCAK256 SLOAD PUSH1 0x40 MLOAD SWAP2 DUP3 SWAP2 DUP3 SWAP2 SWAP1 PUSH1 0x20 DUP4 ADD SWAP3 MSTORE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A2062616C616E636520717565727920666F7220746865207A65 PUSH1 0x44 DUP3 ADD MSTORE PUSH10 0x726F2061646472657373 PUSH1 0xB0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST CALLVALUE PUSH2 0x13E JUMPI PUSH1 0x0 DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x2ED JUMPI PUSH1 0x7 SLOAD DUP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND SWAP1 PUSH2 0x5AE CALLER DUP4 EQ PUSH2 0xB57 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x7 SSTORE PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 DUP3 DUP1 LOG3 DUP1 RETURN JUMPDEST CALLVALUE PUSH2 0x13E JUMPI PUSH1 0x0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x13E JUMPI PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 SWAP1 RETURN JUMPDEST CALLVALUE PUSH2 0x13E JUMPI PUSH1 0x0 DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x2ED JUMPI PUSH1 0x40 MLOAD SWAP1 DUP1 PUSH1 0x1 DUP1 SLOAD SWAP2 PUSH2 0x630 DUP4 PUSH2 0xC63 JUMP JUMPDEST DUP1 DUP7 MSTORE SWAP3 DUP3 DUP2 AND SWAP1 DUP2 ISZERO PUSH2 0x2C3 JUMPI POP PUSH1 0x1 EQ PUSH2 0x656 JUMPI PUSH2 0x265 DUP6 PUSH2 0x259 DUP2 DUP8 SUB DUP3 PUSH2 0x7D3 JUMP JUMPDEST SWAP3 POP DUP1 DUP4 MSTORE PUSH32 0xB10E2D527612073B26EECDFD717E6A320CF44B4AFAC2B0732D9FCBE2B7FA0CF6 JUMPDEST DUP3 DUP5 LT PUSH2 0x698 JUMPI POP POP POP DUP2 ADD PUSH1 0x20 ADD PUSH2 0x259 DUP3 PUSH2 0x265 PUSH2 0x249 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x20 DUP6 DUP8 ADD DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 SWAP4 ADD SWAP3 DUP2 ADD PUSH2 0x67D JUMP JUMPDEST CALLVALUE PUSH2 0x13E JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x13E JUMPI PUSH2 0x6C9 PUSH2 0x320 JUMP JUMPDEST PUSH1 0x24 CALLDATALOAD DUP1 ISZERO ISZERO DUP2 SUB PUSH2 0x13E JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP2 CALLER DUP4 EQ PUSH2 0x757 JUMPI DUP2 PUSH2 0x714 PUSH2 0x725 SWAP3 CALLER PUSH1 0x0 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 SWAP1 JUMP JUMPDEST SWAP1 PUSH1 0xFF DUP1 NOT DUP4 SLOAD AND SWAP2 ISZERO ISZERO AND OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE CALLER SWAP1 PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 SWAP1 PUSH1 0x20 SWAP1 LOG3 STOP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F766520746F2063616C6C657200000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 SWAP1 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 DUP2 ADD SWAP1 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR PUSH2 0x7CE JUMPI PUSH1 0x40 MSTORE JUMP JUMPDEST PUSH2 0x79C JUMP JUMPDEST SWAP1 PUSH1 0x1F DUP1 NOT SWAP2 ADD AND DUP2 ADD SWAP1 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR PUSH2 0x7CE JUMPI PUSH1 0x40 MSTORE JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT PUSH2 0x7CE JUMPI PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST SWAP3 SWAP2 SWAP3 PUSH2 0x81D DUP3 PUSH2 0x7F5 JUMP JUMPDEST SWAP2 PUSH2 0x82B PUSH1 0x40 MLOAD SWAP4 DUP5 PUSH2 0x7D3 JUMP JUMPDEST DUP3 SWAP5 DUP2 DUP5 MSTORE DUP2 DUP4 ADD GT PUSH2 0x13E JUMPI DUP3 DUP2 PUSH1 0x20 SWAP4 DUP5 PUSH1 0x0 SWAP7 ADD CALLDATACOPY ADD ADD MSTORE JUMP JUMPDEST CALLVALUE PUSH2 0x13E JUMPI PUSH1 0x80 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x13E JUMPI PUSH2 0x861 PUSH2 0x320 JUMP JUMPDEST PUSH2 0x869 PUSH2 0x336 JUMP JUMPDEST PUSH1 0x64 CALLDATALOAD SWAP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP4 GT PUSH2 0x13E JUMPI CALLDATASIZE PUSH1 0x23 DUP5 ADD SLT ISZERO PUSH2 0x13E JUMPI PUSH2 0x89E PUSH2 0x3A3 SWAP4 CALLDATASIZE SWAP1 PUSH1 0x24 DUP2 PUSH1 0x4 ADD CALLDATALOAD SWAP2 ADD PUSH2 0x811 JUMP JUMPDEST SWAP2 PUSH1 0x44 CALLDATALOAD SWAP2 PUSH2 0xEC0 JUMP JUMPDEST CALLVALUE PUSH2 0x13E JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x13E JUMPI PUSH2 0x265 PUSH2 0x8C7 PUSH1 0x4 CALLDATALOAD PUSH2 0x1408 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP2 DUP3 SWAP2 PUSH1 0x20 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP1 PUSH2 0x1D4 JUMP JUMPDEST CALLVALUE PUSH2 0x13E JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x13E JUMPI PUSH1 0x20 PUSH1 0xFF PUSH2 0x92C PUSH2 0x8FB PUSH2 0x320 JUMP JUMPDEST PUSH2 0x903 PUSH2 0x336 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 DUP7 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP3 SWAP1 SWAP4 AND DUP2 MSTORE PUSH1 0x20 SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SWAP1 JUMP JUMPDEST SLOAD AND PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE RETURN JUMPDEST CALLVALUE PUSH2 0x13E JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x13E JUMPI PUSH2 0x951 PUSH2 0x320 JUMP JUMPDEST PUSH1 0x24 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT PUSH2 0x13E JUMPI CALLDATASIZE PUSH1 0x23 DUP3 ADD SLT ISZERO PUSH2 0x13E JUMPI PUSH2 0x982 SWAP1 CALLDATASIZE SWAP1 PUSH1 0x24 DUP2 PUSH1 0x4 ADD CALLDATALOAD SWAP2 ADD PUSH2 0x811 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 PUSH2 0x99C SWAP1 DUP4 AND CALLER EQ PUSH2 0xB57 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x8 SLOAD ADD SWAP2 DUP3 PUSH1 0x8 SSTORE DUP4 AND SWAP1 DUP2 ISZERO PUSH2 0xA7D JUMPI DUP3 PUSH2 0xA6D SWAP3 PUSH2 0xA41 PUSH2 0x265 SWAP7 PUSH2 0x9EA PUSH2 0x9E5 PUSH2 0x9E1 DUP7 PUSH1 0x0 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB PUSH1 0x40 PUSH1 0x0 KECCAK256 SLOAD AND ISZERO ISZERO SWAP1 JUMP JUMPDEST ISZERO SWAP1 JUMP JUMPDEST PUSH2 0x16C3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0xA0C DUP2 SLOAD PUSH2 0x10CD JUMP JUMPDEST SWAP1 SSTORE PUSH2 0xA22 DUP5 PUSH1 0x0 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 SWAP1 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP2 DUP1 LOG4 DUP3 PUSH2 0x1763 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE SWAP1 DUP2 SWAP1 PUSH1 0x20 DUP3 ADD SWAP1 JUMP JUMPDEST PUSH1 0x64 PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x20 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A206D696E7420746F20746865207A65726F2061646472657373 PUSH1 0x44 DUP3 ADD MSTORE REVERT JUMPDEST CALLVALUE PUSH2 0x13E JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x13E JUMPI PUSH2 0xADA PUSH2 0x320 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 PUSH2 0xAF3 SWAP1 DUP3 AND CALLER EQ PUSH2 0xB57 JUMP JUMPDEST DUP2 AND ISZERO PUSH2 0xB03 JUMPI PUSH2 0x3A3 SWAP1 PUSH2 0xBA2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST ISZERO PUSH2 0xB5E JUMPI JUMP JUMPDEST PUSH1 0x64 PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x20 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE REVERT JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP3 AND DUP2 OR SWAP1 SWAP3 SSTORE SWAP1 SWAP2 AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x0 DUP1 LOG3 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP1 ISZERO PUSH2 0xC0C JUMPI SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A206F776E657220717565727920666F72206E6F6E6578697374 PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x32B73A103A37B5B2B7 PUSH1 0xB9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST SWAP1 PUSH1 0x1 DUP3 DUP2 SHR SWAP3 AND DUP1 ISZERO PUSH2 0xC93 JUMPI JUMPDEST PUSH1 0x20 DUP4 LT EQ PUSH2 0xC7D JUMPI JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP2 PUSH1 0x7F AND SWAP2 PUSH2 0xC72 JUMP JUMPDEST SWAP1 PUSH1 0x40 MLOAD SWAP2 DUP3 PUSH1 0x0 DUP3 SLOAD SWAP3 PUSH2 0xCB1 DUP5 PUSH2 0xC63 JUMP JUMPDEST SWAP1 DUP2 DUP5 MSTORE PUSH1 0x1 SWAP5 DUP6 DUP2 AND SWAP1 DUP2 PUSH1 0x0 EQ PUSH2 0xD20 JUMPI POP PUSH1 0x1 EQ PUSH2 0xCDD JUMPI JUMPDEST POP POP PUSH2 0xCDB SWAP3 POP SUB DUP4 PUSH2 0x7D3 JUMP JUMPDEST JUMP JUMPDEST SWAP1 SWAP4 SWAP2 POP PUSH1 0x0 MSTORE PUSH1 0x20 SWAP1 DUP2 PUSH1 0x0 KECCAK256 SWAP4 PUSH1 0x0 SWAP2 JUMPDEST DUP2 DUP4 LT PUSH2 0xD08 JUMPI POP POP PUSH2 0xCDB SWAP4 POP DUP3 ADD ADD CODESIZE DUP1 PUSH2 0xCCD JUMP JUMPDEST DUP6 SLOAD DUP9 DUP5 ADD DUP6 ADD MSTORE SWAP5 DUP6 ADD SWAP5 DUP8 SWAP5 POP SWAP2 DUP4 ADD SWAP2 PUSH2 0xCF0 JUMP JUMPDEST SWAP2 POP POP PUSH2 0xCDB SWAP5 POP PUSH1 0x20 SWAP3 POP PUSH1 0xFF NOT AND DUP3 DUP5 ADD MSTORE ISZERO ISZERO PUSH1 0x5 SHL DUP3 ADD ADD CODESIZE DUP1 PUSH2 0xCCD JUMP JUMPDEST ISZERO PUSH2 0xD4A JUMPI JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x38 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F76652063616C6C6572206973206E6F74206F77 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E6572206E6F7220617070726F76656420666F7220616C6C0000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO PUSH2 0xDED JUMPI PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F76656420717565727920666F72206E6F6E6578 PUSH1 0x44 DUP3 ADD MSTORE PUSH12 0x34B9BA32B73A103A37B5B2B7 PUSH1 0xA1 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST ISZERO PUSH2 0xE4E JUMPI JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x31 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E736665722063616C6C6572206973206E6F74206F PUSH1 0x44 DUP3 ADD MSTORE PUSH17 0x1DDB995C881B9BDC88185C1C1C9BDD9959 PUSH1 0x7A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD SWAP1 PUSH2 0xEBA DUP3 PUSH2 0x7B2 JUMP JUMPDEST PUSH1 0x0 DUP3 MSTORE JUMP JUMPDEST SWAP1 PUSH2 0xEE4 SWAP4 SWAP3 SWAP2 PUSH2 0xED4 PUSH2 0x48F DUP5 CALLER PUSH2 0xF5B JUMP JUMPDEST PUSH2 0xEDF DUP4 DUP4 DUP4 PUSH2 0x10E9 JUMP JUMPDEST PUSH2 0x132E JUMP JUMPDEST ISZERO PUSH2 0xEEB JUMPI JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE DUP1 PUSH2 0xF04 PUSH1 0x4 DUP3 ADD PUSH2 0xF08 JUMP JUMPDEST SUB SWAP1 REVERT JUMPDEST PUSH1 0x80 SWAP1 PUSH1 0x20 DUP2 MSTORE PUSH1 0x32 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E7366657220746F206E6F6E204552433732315265 PUSH1 0x40 DUP3 ADD MSTORE PUSH18 0x31B2B4BB32B91034B6B83632B6B2B73A32B9 PUSH1 0x71 SHL PUSH1 0x60 DUP3 ADD MSTORE ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO PUSH2 0xFF1 JUMPI PUSH2 0xF81 DUP3 PUSH2 0xBEB JUMP JUMPDEST SWAP2 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 DUP4 AND SWAP3 DUP3 DUP6 AND DUP5 EQ SWAP5 DUP6 ISZERO PUSH2 0xFC0 JUMPI JUMPDEST POP POP DUP4 ISZERO PUSH2 0xFAA JUMPI JUMPDEST POP POP POP SWAP1 JUMP JUMPDEST PUSH2 0xFB6 SWAP2 SWAP3 SWAP4 POP PUSH2 0xDB5 JUMP JUMPDEST AND EQ CODESIZE DUP1 DUP1 PUSH2 0xFA4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 SWAP5 POP PUSH1 0xFF SWAP2 PUSH2 0xFE7 SWAP2 SWAP1 PUSH2 0x3C8 JUMP JUMPDEST SLOAD AND SWAP3 CODESIZE DUP1 PUSH2 0xF9B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A206F70657261746F7220717565727920666F72206E6F6E6578 PUSH1 0x44 DUP3 ADD MSTORE PUSH12 0x34B9BA32B73A103A37B5B2B7 PUSH1 0xA1 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST ISZERO PUSH2 0x1052 JUMPI JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E7366657220746F20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 NOT DUP2 ADD SWAP2 SWAP1 DUP3 GT PUSH2 0x10C8 JUMPI JUMP JUMPDEST PUSH2 0x10A3 JUMP JUMPDEST SWAP1 PUSH1 0x1 DUP3 ADD DUP1 SWAP3 GT PUSH2 0x10C8 JUMPI JUMP JUMPDEST PUSH1 0x30 ADD SWAP1 DUP2 PUSH1 0x30 GT PUSH2 0x10C8 JUMPI JUMP JUMPDEST SWAP1 PUSH2 0x10F3 DUP4 PUSH2 0xBEB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND SWAP3 SWAP1 SWAP2 DUP3 AND DUP4 SWAP1 SUB PUSH2 0x11AD JUMPI PUSH2 0x1142 PUSH2 0x1186 SWAP3 DUP3 AND SWAP5 PUSH2 0x111F DUP7 ISZERO ISZERO PUSH2 0x104B JUMP JUMPDEST PUSH2 0x1128 DUP8 PUSH2 0x1200 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST PUSH2 0x114C DUP2 SLOAD PUSH2 0x10B9 JUMP JUMPDEST SWAP1 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x1170 DUP2 SLOAD PUSH2 0x10CD JUMP JUMPDEST SWAP1 SSTORE PUSH2 0xA22 DUP6 PUSH1 0x0 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 SWAP1 JUMP JUMPDEST PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH1 0x0 DUP1 LOG4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E736665722066726F6D20696E636F727265637420 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x37BBB732B9 PUSH1 0xD9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH2 0x122D DUP4 PUSH2 0xBEB JUMP JUMPDEST AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP3 DUP1 LOG4 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND OR SWAP1 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 PUSH2 0x128D DUP5 PUSH2 0xBEB JUMP JUMPDEST AND SWAP2 AND SWAP1 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x0 DUP1 LOG4 JUMP JUMPDEST SWAP1 DUP2 PUSH1 0x20 SWAP2 SUB SLT PUSH2 0x13E JUMPI MLOAD PUSH2 0x20A DUP2 PUSH2 0x12C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND DUP2 MSTORE SWAP2 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x80 PUSH1 0x60 DUP3 ADD DUP2 SWAP1 MSTORE PUSH2 0x20A SWAP3 SWAP2 ADD SWAP1 PUSH2 0x1D4 JUMP JUMPDEST RETURNDATASIZE ISZERO PUSH2 0x1329 JUMPI RETURNDATASIZE SWAP1 PUSH2 0x130F DUP3 PUSH2 0x7F5 JUMP JUMPDEST SWAP2 PUSH2 0x131D PUSH1 0x40 MLOAD SWAP4 DUP5 PUSH2 0x7D3 JUMP JUMPDEST DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY JUMP JUMPDEST PUSH1 0x60 SWAP1 JUMP JUMPDEST SWAP3 SWAP1 SWAP2 SWAP1 DUP3 EXTCODESIZE ISZERO PUSH2 0x13E8 JUMPI PUSH2 0x1361 SWAP3 PUSH1 0x20 SWAP3 PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 SWAP7 DUP2 SWAP6 DUP3 SWAP5 PUSH4 0xA85BD01 PUSH1 0xE1 SHL SWAP11 DUP12 DUP6 MSTORE CALLER PUSH1 0x4 DUP7 ADD PUSH2 0x12CD JUMP JUMPDEST SUB SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND GAS CALL PUSH1 0x0 SWAP2 DUP2 PUSH2 0x13B8 JUMPI JUMPDEST POP PUSH2 0x13AA JUMPI PUSH2 0x1384 PUSH2 0x12FE JUMP JUMPDEST DUP1 MLOAD SWAP1 DUP2 PUSH2 0x13A5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE DUP1 PUSH2 0xF04 PUSH1 0x4 DUP3 ADD PUSH2 0xF08 JUMP JUMPDEST PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND EQ SWAP1 JUMP JUMPDEST PUSH2 0x13DA SWAP2 SWAP3 POP PUSH1 0x20 RETURNDATASIZE DUP2 GT PUSH2 0x13E1 JUMPI JUMPDEST PUSH2 0x13D2 DUP2 DUP4 PUSH2 0x7D3 JUMP JUMPDEST DUP2 ADD SWAP1 PUSH2 0x12B8 JUMP JUMPDEST SWAP1 CODESIZE PUSH2 0x1377 JUMP JUMPDEST POP RETURNDATASIZE PUSH2 0x13C8 JUMP JUMPDEST POP POP POP POP PUSH1 0x1 SWAP1 JUMP JUMPDEST SWAP1 PUSH2 0x1404 PUSH1 0x20 SWAP3 DUP3 DUP2 MLOAD SWAP5 DUP6 SWAP3 ADD PUSH2 0x1B1 JUMP JUMPDEST ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO PUSH2 0x1497 JUMPI PUSH2 0x1441 PUSH2 0x143C DUP3 PUSH1 0x0 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 SWAP1 JUMP JUMPDEST PUSH2 0xC9D JUMP JUMPDEST SWAP1 PUSH2 0x144A PUSH2 0xEAD JUMP JUMPDEST DUP1 MLOAD ISZERO PUSH2 0x1492 JUMPI DUP3 MLOAD PUSH2 0x1462 JUMPI POP PUSH2 0x20A SWAP2 POP PUSH2 0x14F6 JUMP JUMPDEST PUSH2 0x20A SWAP2 POP PUSH2 0x1484 PUSH2 0x147E SWAP4 PUSH1 0x40 MLOAD SWAP5 DUP6 SWAP4 PUSH1 0x20 DUP6 ADD SWAP1 PUSH2 0x13F1 JUMP JUMPDEST SWAP1 PUSH2 0x13F1 JUMP JUMPDEST SUB PUSH1 0x1F NOT DUP2 ADD DUP4 MSTORE DUP3 PUSH2 0x7D3 JUMP JUMPDEST POP POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x31 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524337323155524953746F726167653A2055524920717565727920666F7220 PUSH1 0x44 DUP3 ADD MSTORE PUSH17 0x3737B732BC34B9BA32B73A103A37B5B2B7 PUSH1 0x79 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO PUSH2 0x1552 JUMPI PUSH2 0x151B PUSH2 0xEAD JUMP JUMPDEST DUP1 MLOAD SWAP1 SWAP2 SWAP1 ISZERO PUSH2 0x1548 JUMPI PUSH2 0x147E SWAP2 PUSH2 0x1484 PUSH2 0x1538 PUSH2 0x20A SWAP4 PUSH2 0x1608 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP5 DUP6 SWAP4 PUSH1 0x20 DUP6 ADD SWAP1 PUSH2 0x13F1 JUMP JUMPDEST POP POP PUSH2 0x20A PUSH2 0xEAD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732314D657461646174613A2055524920717565727920666F72206E6F PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x3732BC34B9BA32B73A103A37B5B2B7 PUSH1 0x89 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST SWAP1 PUSH2 0x15B9 DUP3 PUSH2 0x7F5 JUMP JUMPDEST PUSH2 0x15C6 PUSH1 0x40 MLOAD SWAP2 DUP3 PUSH2 0x7D3 JUMP JUMPDEST DUP3 DUP2 MSTORE DUP1 SWAP3 PUSH2 0x15D7 PUSH1 0x1F NOT SWAP2 PUSH2 0x7F5 JUMP JUMPDEST ADD SWAP1 PUSH1 0x20 CALLDATASIZE SWAP2 ADD CALLDATACOPY JUMP JUMPDEST SWAP1 DUP2 MLOAD DUP2 LT ISZERO PUSH2 0x15F2 JUMPI ADD PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 ISZERO PUSH2 0x1694 JUMPI PUSH1 0x0 DUP2 DUP2 DUP2 DUP1 JUMPDEST PUSH2 0x1678 JUMPI POP PUSH2 0x1623 DUP2 PUSH2 0x15AF JUMP JUMPDEST SWAP4 JUMPDEST PUSH2 0x162F JUMPI POP POP POP SWAP1 JUMP JUMPDEST PUSH2 0x1638 SWAP1 PUSH2 0x10B9 JUMP JUMPDEST SWAP1 PUSH1 0xA SWAP1 PUSH2 0x1663 PUSH2 0x1653 PUSH2 0x164D DUP5 DUP5 MOD PUSH2 0x10DB JUMP JUMPDEST PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0xF8 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 JUMP JUMPDEST DUP5 BYTE PUSH2 0x166F DUP5 DUP8 PUSH2 0x15E1 JUMP JUMPDEST MSTORE8 DIV SWAP1 DUP2 PUSH2 0x1625 JUMP JUMPDEST SWAP2 POP PUSH1 0x0 NOT DUP2 EQ PUSH2 0x10C8 JUMPI PUSH1 0x1 PUSH1 0xA SWAP2 ADD SWAP2 DIV DUP1 DUP5 SWAP3 SWAP2 PUSH2 0x1615 JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x40 DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR PUSH2 0x7CE JUMPI PUSH1 0x40 MSTORE PUSH1 0x1 DUP2 MSTORE PUSH1 0x3 PUSH1 0xFC SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP1 JUMP JUMPDEST ISZERO PUSH2 0x16CA JUMPI JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20746F6B656E20616C7265616479206D696E74656400000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 SWAP1 REVERT JUMPDEST SWAP1 PUSH1 0x1F DUP2 GT PUSH2 0x171D JUMPI POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 KECCAK256 SWAP1 PUSH1 0x20 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP4 ADD SWAP5 LT PUSH2 0x1759 JUMPI JUMPDEST PUSH1 0x1F ADD PUSH1 0x5 SHR ADD SWAP2 JUMPDEST DUP3 DUP2 LT PUSH2 0x174E JUMPI POP POP POP JUMP JUMPDEST DUP2 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x1742 JUMP JUMPDEST SWAP1 SWAP3 POP DUP3 SWAP1 PUSH2 0x1739 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP2 SWAP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO PUSH2 0x185D JUMPI PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x6 DUP2 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 SWAP1 DUP4 MLOAD SWAP1 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT PUSH2 0x7CE JUMPI PUSH2 0x17B8 DUP3 PUSH2 0x17B2 DUP6 SLOAD PUSH2 0xC63 JUMP JUMPDEST DUP6 PUSH2 0x170F JUMP JUMPDEST DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 EQ PUSH2 0x17F2 JUMPI POP DUP2 SWAP3 SWAP4 SWAP5 PUSH1 0x0 SWAP3 PUSH2 0x17E7 JUMPI JUMPDEST POP POP DUP2 PUSH1 0x1 SHL SWAP2 PUSH1 0x0 NOT SWAP1 PUSH1 0x3 SHL SHR NOT AND OR SWAP1 SSTORE JUMP JUMPDEST ADD MLOAD SWAP1 POP CODESIZE DUP1 PUSH2 0x17D1 JUMP JUMPDEST SWAP1 PUSH1 0x1F NOT DUP4 AND SWAP6 PUSH2 0x1808 DUP6 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMP JUMPDEST SWAP3 PUSH1 0x0 SWAP1 JUMPDEST DUP9 DUP3 LT PUSH2 0x1845 JUMPI POP POP DUP4 PUSH1 0x1 SWAP6 SWAP7 SWAP8 LT PUSH2 0x182C JUMPI JUMPDEST POP POP POP DUP2 SHL ADD SWAP1 SSTORE JUMP JUMPDEST ADD MLOAD PUSH1 0x0 NOT PUSH1 0xF8 DUP5 PUSH1 0x3 SHL AND SHR NOT AND SWAP1 SSTORE CODESIZE DUP1 DUP1 PUSH2 0x1822 JUMP JUMPDEST DUP1 PUSH1 0x1 DUP6 SWAP7 DUP3 SWAP5 SWAP7 DUP7 ADD MLOAD DUP2 SSTORE ADD SWAP6 ADD SWAP4 ADD SWAP1 PUSH2 0x180D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524337323155524953746F726167653A2055524920736574206F66206E6F6E PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x32BC34B9BA32B73A103A37B5B2B7 PUSH1 0x91 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP14 PUSH17 0xE4ABF028CAB3A64325AD2648D8F0620551 GASPRICE SELFDESTRUCT 0xD8 0xE1 PUSH11 0x5501ADA03FD2C65C64736F PUSH13 0x63430008120033000000000000 ","sourceMap":"244:439:47:-:0;;;;-1:-1:-1;;;;;244:439:47;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;244:439:47;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;244:439:47;;;;;;;;;;;-1:-1:-1;244:439:47;;;;;;;;;;;;;;;;-1:-1:-1;244:439:47;;;;;;;;;;;;;;;-1:-1:-1;244:439:47;;;;;;;;;;;;;;;-1:-1:-1;;;;244:439:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;244:439:47;;;;;;;;;;;;;;2362:6:24;244:439:47;;719:10:35;-1:-1:-1;;;;;;244:439:47;;;;;;;;;;719:10:35;;-1:-1:-1;;;;;244:439:47;;2410:40:24;;244:439:47;2410:40:24;244:439:47;;;;;;;;;;;-1:-1:-1;244:439:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;244:439:47;;;;;;;;;;;;;;;;-1:-1:-1;;;244:439:47;;;;;;;;;;;;-1:-1:-1;244:439:47;;;;;;;;;;;;;-1:-1:-1;244:439:47;;-1:-1:-1;;244:439:47;;;;;;;;;;;;;-1:-1:-1;244:439:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;244:439:47;;;;;;;;;;;;;-1:-1:-1;;;244:439:47;;;;;;;;;;;;;;;;;;;-1:-1:-1;244:439:47;;;;;-1:-1:-1;244:439:47;;;;"},"deployedBytecode":{"functionDebugData":{"abi_decode_address":{"entryPoint":800,"id":null,"parameterSlots":0,"returnSlots":1},"abi_decode_address_7728":{"entryPoint":822,"id":null,"parameterSlots":0,"returnSlots":1},"abi_decode_addresst_addresst_uint256":{"entryPoint":1083,"id":null,"parameterSlots":1,"returnSlots":3},"abi_decode_available_length_bytes":{"entryPoint":2065,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_bytes4_fromMemory":{"entryPoint":4792,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_address_address_uint256_bytes":{"entryPoint":4813,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_bool":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_string":{"entryPoint":505,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_string_memory_ptr":{"entryPoint":5105,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_string_to_string":{"entryPoint":468,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_stringliteral_1e76":{"entryPoint":3848,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_uint256":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_and_zero_memory_array_bytes":{"entryPoint":5551,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_memory_array_string":{"entryPoint":3757,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_bytes":{"entryPoint":2037,"id":null,"parameterSlots":1,"returnSlots":1},"array_dataslot_string_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"checked_add_uint256":{"entryPoint":4315,"id":null,"parameterSlots":1,"returnSlots":1},"checked_add_uint256_7735":{"entryPoint":4301,"id":null,"parameterSlots":1,"returnSlots":1},"checked_sub_uint256":{"entryPoint":4281,"id":null,"parameterSlots":1,"returnSlots":1},"clean_up_bytearray_end_slots_string_storage":{"entryPoint":5903,"id":null,"parameterSlots":3,"returnSlots":0},"cleanup_bool":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"convert_uint8_to_bytes1":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"copy_array_from_storage_to_memory_string":{"entryPoint":3229,"id":null,"parameterSlots":1,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":433,"id":null,"parameterSlots":3,"returnSlots":0},"external_fun_approve":{"entryPoint":844,"id":null,"parameterSlots":0,"returnSlots":0},"external_fun_balanceOf":{"entryPoint":1247,"id":null,"parameterSlots":0,"returnSlots":0},"external_fun_getApproved":{"entryPoint":752,"id":null,"parameterSlots":0,"returnSlots":0},"external_fun_isApprovedForAll":{"entryPoint":2267,"id":null,"parameterSlots":0,"returnSlots":0},"external_fun_mintNFT":{"entryPoint":2360,"id":null,"parameterSlots":0,"returnSlots":0},"external_fun_name":{"entryPoint":525,"id":null,"parameterSlots":0,"returnSlots":0},"external_fun_owner":{"entryPoint":1506,"id":null,"parameterSlots":0,"returnSlots":0},"external_fun_ownerOf":{"entryPoint":1217,"id":null,"parameterSlots":0,"returnSlots":0},"external_fun_renounceOwnership":{"entryPoint":1409,"id":null,"parameterSlots":0,"returnSlots":0},"external_fun_safeTransferFrom":{"entryPoint":2120,"id":null,"parameterSlots":0,"returnSlots":0},"external_fun_safeTransferFrom_7025":{"entryPoint":1177,"id":null,"parameterSlots":0,"returnSlots":0},"external_fun_setApprovalForAll":{"entryPoint":1712,"id":null,"parameterSlots":0,"returnSlots":0},"external_fun_supportsInterface":{"entryPoint":323,"id":null,"parameterSlots":0,"returnSlots":0},"external_fun_symbol":{"entryPoint":1547,"id":null,"parameterSlots":0,"returnSlots":0},"external_fun_tokenURI":{"entryPoint":2216,"id":null,"parameterSlots":0,"returnSlots":0},"external_fun_transferFrom":{"entryPoint":1136,"id":null,"parameterSlots":0,"returnSlots":0},"external_fun_transferOwnership":{"entryPoint":2753,"id":null,"parameterSlots":0,"returnSlots":0},"extract_byte_array_length":{"entryPoint":3171,"id":null,"parameterSlots":1,"returnSlots":1},"extract_from_storage_value_offsett_bool":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"extract_returndata":{"entryPoint":4862,"id":null,"parameterSlots":0,"returnSlots":1},"finalize_allocation":{"entryPoint":2003,"id":null,"parameterSlots":2,"returnSlots":0},"finalize_allocation_11212":{"entryPoint":1970,"id":null,"parameterSlots":1,"returnSlots":0},"fun_approve":{"entryPoint":4692,"id":7412,"parameterSlots":2,"returnSlots":0},"fun_approve_7745":{"entryPoint":4608,"id":7412,"parameterSlots":1,"returnSlots":0},"fun_checkOnERC721Received":{"entryPoint":4910,"id":7506,"parameterSlots":4,"returnSlots":1},"fun_exists":{"entryPoint":null,"id":7102,"parameterSlots":1,"returnSlots":1},"fun_getApproved":{"entryPoint":3509,"id":6944,"parameterSlots":1,"returnSlots":1},"fun_isApprovedOrOwner":{"entryPoint":3931,"id":7143,"parameterSlots":2,"returnSlots":1},"fun_ownerOf":{"entryPoint":3051,"id":6809,"parameterSlots":1,"returnSlots":1},"fun_safeTransferFrom":{"entryPoint":3776,"id":7055,"parameterSlots":4,"returnSlots":0},"fun_setTokenURI":{"entryPoint":5987,"id":7760,"parameterSlots":2,"returnSlots":0},"fun_toString":{"entryPoint":5640,"id":8294,"parameterSlots":1,"returnSlots":1},"fun_tokenURI":{"entryPoint":5128,"id":7738,"parameterSlots":1,"returnSlots":1},"fun_tokenURI_6871":{"entryPoint":5366,"id":6871,"parameterSlots":1,"returnSlots":1},"fun_transfer":{"entryPoint":4329,"id":7388,"parameterSlots":3,"returnSlots":0},"fun_transferOwnership":{"entryPoint":2978,"id":5749,"parameterSlots":1,"returnSlots":0},"mapping_index_access_mapping_address_uint256_of_address":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"mapping_index_access_mapping_address_uint256_of_address_7719":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"mapping_index_access_mapping_address_uint256_of_address_7734":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"mapping_index_access_mapping_uint256_address_of_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"mapping_index_access_mapping_uint256_address_of_uint256_7751":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"memory_array_index_access_bytes":{"entryPoint":5601,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x11":{"entryPoint":4259,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":1948,"id":null,"parameterSlots":0,"returnSlots":0},"read_from_storage_split_offset_bool":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"require_helper_stringliteral":{"entryPoint":2903,"id":null,"parameterSlots":1,"returnSlots":0},"require_helper_stringliteral_2a63":{"entryPoint":5827,"id":null,"parameterSlots":1,"returnSlots":0},"require_helper_stringliteral_455f":{"entryPoint":4171,"id":null,"parameterSlots":1,"returnSlots":0},"require_helper_stringliteral_6d83":{"entryPoint":3395,"id":null,"parameterSlots":1,"returnSlots":0},"require_helper_stringliteral_c868":{"entryPoint":3655,"id":null,"parameterSlots":1,"returnSlots":0},"update_storage_value_offsett_address_to_address":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"update_storage_value_offsett_bool_to_bool":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"validator_revert_bytes4":{"entryPoint":300,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"6080604052600436101561001257600080fd5b60003560e01c806301ffc9a71461012757806306fdde0314610122578063081812fc1461011d578063095ea7b31461011857806323b872dd1461011357806342842e0e1461010e5780636352211e1461010957806370a0823114610104578063715018a6146100ff5780638da5cb5b146100fa57806395d89b41146100f5578063a22cb465146100f0578063b88d4fde146100eb578063c87b56dd146100e6578063e985e9c5146100e1578063eacabe14146100dc5763f2fde38b146100d757600080fd5b610ac1565b610938565b6108db565b6108a8565b610848565b6106b0565b61060b565b6105e2565b610581565b6104df565b6104c1565b610499565b610470565b61034c565b6102f0565b61020d565b610143565b6001600160e01b031981160361013e57565b600080fd5b3461013e57602036600319011261013e5760206004356101628161012c565b63ffffffff60e01b166380ac58cd60e01b81149081156101a0575b811561018f575b506040519015158152f35b6301ffc9a760e01b14905038610184565b635b5e139f60e01b8114915061017d565b60005b8381106101c45750506000910152565b81810151838201526020016101b4565b906020916101ed815180928185528580860191016101b1565b601f01601f1916010190565b90602061020a9281815201906101d4565b90565b3461013e576000806003193601126102ed576040519080805461022f81610c63565b808552916001918083169081156102c35750600114610269575b61026585610259818703826107d3565b604051918291826101f9565b0390f35b80809450527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b8284106102ab57505050810160200161025982610265610249565b80546020858701810191909152909301928101610290565b8695506102659693506020925061025994915060ff191682840152151560051b8201019293610249565b80fd5b3461013e57602036600319011261013e57602061030e600435610db5565b6040516001600160a01b039091168152f35b600435906001600160a01b038216820361013e57565b602435906001600160a01b038216820361013e57565b3461013e57604036600319011261013e57610365610320565b60243561037181610beb565b916001600160a01b0380841690821681146103ec576103a39361039e9133149081156103a5575b50610d43565b611254565b005b6001600160a01b031660009081526005602052604090206103e691506103df9033905b9060018060a01b0316600052602052604060002090565b5460ff1690565b38610398565b60405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608490fd5b606090600319011261013e576001600160a01b0390600435828116810361013e5791602435908116810361013e579060443590565b3461013e576103a36104813661043b565b9161049461048f8433610f5b565b610e47565b6110e9565b3461013e576103a36104aa3661043b565b90604051926104b8846107b2565b60008452610ec0565b3461013e57602036600319011261013e57602061030e600435610beb565b3461013e57602036600319011261013e576001600160a01b03610500610320565b168015610529576000526003602052610265604060002054604051918291829190602083019252565b60405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604482015269726f206164647265737360b01b6064820152608490fd5b3461013e576000806003193601126102ed5760075481906001600160a01b038116906105ae338314610b57565b6001600160a01b0319166007557f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b3461013e57600036600319011261013e576007546040516001600160a01b039091168152602090f35b3461013e576000806003193601126102ed576040519080600180549161063083610c63565b808652928281169081156102c357506001146106565761026585610259818703826107d3565b92508083527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b82841061069857505050810160200161025982610265610249565b8054602085870181019190915290930192810161067d565b3461013e57604036600319011261013e576106c9610320565b602435801515810361013e576001600160a01b0382169133831461075757816107146107259233600052600560205260406000209060018060a01b0316600052602052604060002090565b9060ff801983541691151516179055565b604051901515815233907f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3190602090a3005b60405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606490fd5b634e487b7160e01b600052604160045260246000fd5b6020810190811067ffffffffffffffff8211176107ce57604052565b61079c565b90601f8019910116810190811067ffffffffffffffff8211176107ce57604052565b67ffffffffffffffff81116107ce57601f01601f191660200190565b92919261081d826107f5565b9161082b60405193846107d3565b82948184528183011161013e578281602093846000960137010152565b3461013e57608036600319011261013e57610861610320565b610869610336565b6064359167ffffffffffffffff831161013e573660238401121561013e5761089e6103a3933690602481600401359101610811565b9160443591610ec0565b3461013e57602036600319011261013e576102656108c7600435611408565b6040519182916020835260208301906101d4565b3461013e57604036600319011261013e57602060ff61092c6108fb610320565b610903610336565b6001600160a01b0391821660009081526005865260408082209290931681526020919091522090565b54166040519015158152f35b3461013e57604036600319011261013e57610951610320565b60243567ffffffffffffffff811161013e573660238201121561013e57610982903690602481600401359101610811565b6007546001600160a01b03919061099c9083163314610b57565b60016008540191826008558316908115610a7d5782610a6d92610a41610265966109ea6109e56109e186600052600260205260018060a01b0360406000205416151590565b1590565b6116c3565b6001600160a01b0381166000908152600360205260409020610a0c81546110cd565b9055610a22846000526002602052604060002090565b80546001600160a01b0319166001600160a01b03909216919091179055565b60007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a482611763565b6040519081529081906020820190565b606460405162461bcd60e51b815260206004820152602060248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152fd5b3461013e57602036600319011261013e57610ada610320565b6007546001600160a01b0390610af39082163314610b57565b811615610b03576103a390610ba2565b60405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608490fd5b15610b5e57565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b600780546001600160a01b039283166001600160a01b0319821681179092559091167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3565b6000908152600260205260409020546001600160a01b03168015610c0c5790565b60405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201526832b73a103a37b5b2b760b91b6064820152608490fd5b90600182811c92168015610c93575b6020831014610c7d57565b634e487b7160e01b600052602260045260246000fd5b91607f1691610c72565b9060405191826000825492610cb184610c63565b908184526001948581169081600014610d205750600114610cdd575b5050610cdb925003836107d3565b565b9093915060005260209081600020936000915b818310610d08575050610cdb93508201013880610ccd565b85548884018501529485019487945091830191610cf0565b915050610cdb94506020925060ff191682840152151560051b8201013880610ccd565b15610d4a57565b60405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c00000000000000006064820152608490fd5b6000818152600260205260409020546001600160a01b031615610ded576000908152600460205260409020546001600160a01b031690565b60405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608490fd5b15610e4e57565b60405162461bcd60e51b815260206004820152603160248201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6044820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b6064820152608490fd5b60405190610eba826107b2565b60008252565b90610ee4939291610ed461048f8433610f5b565b610edf8383836110e9565b61132e565b15610eeb57565b60405162461bcd60e51b815280610f0460048201610f08565b0390fd5b60809060208152603260208201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b60608201520190565b6000828152600260205260409020546001600160a01b031615610ff157610f8182610beb565b9160018060a01b0390818316928285168414948515610fc0575b50508315610faa575b50505090565b610fb691929350610db5565b1614388080610fa4565b6001600160a01b0316600090815260056020526040902091945060ff91610fe791906103c8565b5416923880610f9b565b60405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608490fd5b1561105257565b60405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608490fd5b634e487b7160e01b600052601160045260246000fd5b6000198101919082116110c857565b6110a3565b90600182018092116110c857565b60300190816030116110c857565b906110f383610beb565b6001600160a01b0383811692909182168390036111ad576111426111869282169461111f86151561104b565b61112887611200565b6001600160a01b0316600090815260036020526040902090565b61114c81546110b9565b90556001600160a01b038116600090815260036020526040902061117081546110cd565b9055610a22856000526002602052604060002090565b7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4565b60405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b6064820152608490fd5b600081815260046020526040812080546001600160a01b03191690556001600160a01b0361122d83610beb565b167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258280a4565b600082815260046020526040902080546001600160a01b0319166001600160a01b0383161790556001600160a01b038061128d84610beb565b169116907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600080a4565b9081602091031261013e575161020a8161012c565b6001600160a01b03918216815291166020820152604081019190915260806060820181905261020a929101906101d4565b3d15611329573d9061130f826107f5565b9161131d60405193846107d3565b82523d6000602084013e565b606090565b92909190823b156113e857611361926020926000604051809681958294630a85bd0160e11b9a8b855233600486016112cd565b03926001600160a01b03165af1600091816113b8575b506113aa576113846112fe565b805190816113a55760405162461bcd60e51b815280610f0460048201610f08565b602001fd5b6001600160e01b0319161490565b6113da91925060203d81116113e1575b6113d281836107d3565b8101906112b8565b9038611377565b503d6113c8565b50505050600190565b90611404602092828151948592016101b1565b0190565b6000818152600260205260409020546001600160a01b0316156114975761144161143c826000526006602052604060002090565b610c9d565b9061144a610ead565b805115611492578251611462575061020a91506114f6565b61020a915061148461147e9360405194859360208501906113f1565b906113f1565b03601f1981018352826107d3565b505090565b60405162461bcd60e51b815260206004820152603160248201527f45524337323155524953746f726167653a2055524920717565727920666f72206044820152703737b732bc34b9ba32b73a103a37b5b2b760791b6064820152608490fd5b6000818152600260205260409020546001600160a01b0316156115525761151b610ead565b8051909190156115485761147e9161148461153861020a93611608565b60405194859360208501906113f1565b505061020a610ead565b60405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b6064820152608490fd5b906115b9826107f5565b6115c660405191826107d3565b82815280926115d7601f19916107f5565b0190602036910137565b9081518110156115f2570160200190565b634e487b7160e01b600052603260045260246000fd5b8015611694576000818181805b6116785750611623816115af565b935b61162f5750505090565b611638906110b9565b90600a9061166361165361164d8484066110db565b60ff1690565b60f81b6001600160f81b03191690565b841a61166f84876115e1565b53049081611625565b915060001981146110c8576001600a9101910480849291611615565b506040516040810181811067ffffffffffffffff8211176107ce5760405260018152600360fc1b602082015290565b156116ca57565b60405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606490fd5b90601f811161171d57505050565b600091825260208220906020601f850160051c83019410611759575b601f0160051c01915b82811061174e57505050565b818155600101611742565b9092508290611739565b6000818152600260205260409020549192916001600160a01b03161561185d5760005260206006815260406000209083519067ffffffffffffffff82116107ce576117b8826117b28554610c63565b8561170f565b80601f83116001146117f25750819293946000926117e7575b50508160011b916000199060031b1c1916179055565b0151905038806117d1565b90601f1983169561180885600052602060002090565b926000905b8882106118455750508360019596971061182c575b505050811b019055565b015160001960f88460031b161c19169055388080611822565b8060018596829496860151815501950193019061180d565b60405162461bcd60e51b815260206004820152602e60248201527f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60448201526d32bc34b9ba32b73a103a37b5b2b760911b6064820152608490fdfea26469706673582212209d70e4abf028cab3a64325ad2648d8f06205513affd8e16a5501ada03fd2c65c64736f6c63430008120033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT ISZERO PUSH2 0x12 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x127 JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x122 JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0x11D JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x118 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x113 JUMPI DUP1 PUSH4 0x42842E0E EQ PUSH2 0x10E JUMPI DUP1 PUSH4 0x6352211E EQ PUSH2 0x109 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x104 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0xFF JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0xFA JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0xF5 JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0xF0 JUMPI DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0xEB JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0xE6 JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0xE1 JUMPI DUP1 PUSH4 0xEACABE14 EQ PUSH2 0xDC JUMPI PUSH4 0xF2FDE38B EQ PUSH2 0xD7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xAC1 JUMP JUMPDEST PUSH2 0x938 JUMP JUMPDEST PUSH2 0x8DB JUMP JUMPDEST PUSH2 0x8A8 JUMP JUMPDEST PUSH2 0x848 JUMP JUMPDEST PUSH2 0x6B0 JUMP JUMPDEST PUSH2 0x60B JUMP JUMPDEST PUSH2 0x5E2 JUMP JUMPDEST PUSH2 0x581 JUMP JUMPDEST PUSH2 0x4DF JUMP JUMPDEST PUSH2 0x4C1 JUMP JUMPDEST PUSH2 0x499 JUMP JUMPDEST PUSH2 0x470 JUMP JUMPDEST PUSH2 0x34C JUMP JUMPDEST PUSH2 0x2F0 JUMP JUMPDEST PUSH2 0x20D JUMP JUMPDEST PUSH2 0x143 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND SUB PUSH2 0x13E JUMPI JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE PUSH2 0x13E JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x13E JUMPI PUSH1 0x20 PUSH1 0x4 CALLDATALOAD PUSH2 0x162 DUP2 PUSH2 0x12C JUMP JUMPDEST PUSH4 0xFFFFFFFF PUSH1 0xE0 SHL AND PUSH4 0x80AC58CD PUSH1 0xE0 SHL DUP2 EQ SWAP1 DUP2 ISZERO PUSH2 0x1A0 JUMPI JUMPDEST DUP2 ISZERO PUSH2 0x18F JUMPI JUMPDEST POP PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE RETURN JUMPDEST PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL EQ SWAP1 POP CODESIZE PUSH2 0x184 JUMP JUMPDEST PUSH4 0x5B5E139F PUSH1 0xE0 SHL DUP2 EQ SWAP2 POP PUSH2 0x17D JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT PUSH2 0x1C4 JUMPI POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x1B4 JUMP JUMPDEST SWAP1 PUSH1 0x20 SWAP2 PUSH2 0x1ED DUP2 MLOAD DUP1 SWAP3 DUP2 DUP6 MSTORE DUP6 DUP1 DUP7 ADD SWAP2 ADD PUSH2 0x1B1 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND ADD ADD SWAP1 JUMP JUMPDEST SWAP1 PUSH1 0x20 PUSH2 0x20A SWAP3 DUP2 DUP2 MSTORE ADD SWAP1 PUSH2 0x1D4 JUMP JUMPDEST SWAP1 JUMP JUMPDEST CALLVALUE PUSH2 0x13E JUMPI PUSH1 0x0 DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x2ED JUMPI PUSH1 0x40 MLOAD SWAP1 DUP1 DUP1 SLOAD PUSH2 0x22F DUP2 PUSH2 0xC63 JUMP JUMPDEST DUP1 DUP6 MSTORE SWAP2 PUSH1 0x1 SWAP2 DUP1 DUP4 AND SWAP1 DUP2 ISZERO PUSH2 0x2C3 JUMPI POP PUSH1 0x1 EQ PUSH2 0x269 JUMPI JUMPDEST PUSH2 0x265 DUP6 PUSH2 0x259 DUP2 DUP8 SUB DUP3 PUSH2 0x7D3 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP2 DUP3 SWAP2 DUP3 PUSH2 0x1F9 JUMP JUMPDEST SUB SWAP1 RETURN JUMPDEST DUP1 DUP1 SWAP5 POP MSTORE PUSH32 0x290DECD9548B62A8D60345A988386FC84BA6BC95484008F6362F93160EF3E563 JUMPDEST DUP3 DUP5 LT PUSH2 0x2AB JUMPI POP POP POP DUP2 ADD PUSH1 0x20 ADD PUSH2 0x259 DUP3 PUSH2 0x265 PUSH2 0x249 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x20 DUP6 DUP8 ADD DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 SWAP4 ADD SWAP3 DUP2 ADD PUSH2 0x290 JUMP JUMPDEST DUP7 SWAP6 POP PUSH2 0x265 SWAP7 SWAP4 POP PUSH1 0x20 SWAP3 POP PUSH2 0x259 SWAP5 SWAP2 POP PUSH1 0xFF NOT AND DUP3 DUP5 ADD MSTORE ISZERO ISZERO PUSH1 0x5 SHL DUP3 ADD ADD SWAP3 SWAP4 PUSH2 0x249 JUMP JUMPDEST DUP1 REVERT JUMPDEST CALLVALUE PUSH2 0x13E JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x13E JUMPI PUSH1 0x20 PUSH2 0x30E PUSH1 0x4 CALLDATALOAD PUSH2 0xDB5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE RETURN JUMPDEST PUSH1 0x4 CALLDATALOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND DUP3 SUB PUSH2 0x13E JUMPI JUMP JUMPDEST PUSH1 0x24 CALLDATALOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND DUP3 SUB PUSH2 0x13E JUMPI JUMP JUMPDEST CALLVALUE PUSH2 0x13E JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x13E JUMPI PUSH2 0x365 PUSH2 0x320 JUMP JUMPDEST PUSH1 0x24 CALLDATALOAD PUSH2 0x371 DUP2 PUSH2 0xBEB JUMP JUMPDEST SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND SWAP1 DUP3 AND DUP2 EQ PUSH2 0x3EC JUMPI PUSH2 0x3A3 SWAP4 PUSH2 0x39E SWAP2 CALLER EQ SWAP1 DUP2 ISZERO PUSH2 0x3A5 JUMPI JUMPDEST POP PUSH2 0xD43 JUMP JUMPDEST PUSH2 0x1254 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x3E6 SWAP2 POP PUSH2 0x3DF SWAP1 CALLER SWAP1 JUMPDEST SWAP1 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 SWAP1 JUMP JUMPDEST SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST CODESIZE PUSH2 0x398 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F76616C20746F2063757272656E74206F776E65 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x39 PUSH1 0xF9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST PUSH1 0x60 SWAP1 PUSH1 0x3 NOT ADD SLT PUSH2 0x13E JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 PUSH1 0x4 CALLDATALOAD DUP3 DUP2 AND DUP2 SUB PUSH2 0x13E JUMPI SWAP2 PUSH1 0x24 CALLDATALOAD SWAP1 DUP2 AND DUP2 SUB PUSH2 0x13E JUMPI SWAP1 PUSH1 0x44 CALLDATALOAD SWAP1 JUMP JUMPDEST CALLVALUE PUSH2 0x13E JUMPI PUSH2 0x3A3 PUSH2 0x481 CALLDATASIZE PUSH2 0x43B JUMP JUMPDEST SWAP2 PUSH2 0x494 PUSH2 0x48F DUP5 CALLER PUSH2 0xF5B JUMP JUMPDEST PUSH2 0xE47 JUMP JUMPDEST PUSH2 0x10E9 JUMP JUMPDEST CALLVALUE PUSH2 0x13E JUMPI PUSH2 0x3A3 PUSH2 0x4AA CALLDATASIZE PUSH2 0x43B JUMP JUMPDEST SWAP1 PUSH1 0x40 MLOAD SWAP3 PUSH2 0x4B8 DUP5 PUSH2 0x7B2 JUMP JUMPDEST PUSH1 0x0 DUP5 MSTORE PUSH2 0xEC0 JUMP JUMPDEST CALLVALUE PUSH2 0x13E JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x13E JUMPI PUSH1 0x20 PUSH2 0x30E PUSH1 0x4 CALLDATALOAD PUSH2 0xBEB JUMP JUMPDEST CALLVALUE PUSH2 0x13E JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x13E JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH2 0x500 PUSH2 0x320 JUMP JUMPDEST AND DUP1 ISZERO PUSH2 0x529 JUMPI PUSH1 0x0 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH2 0x265 PUSH1 0x40 PUSH1 0x0 KECCAK256 SLOAD PUSH1 0x40 MLOAD SWAP2 DUP3 SWAP2 DUP3 SWAP2 SWAP1 PUSH1 0x20 DUP4 ADD SWAP3 MSTORE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A2062616C616E636520717565727920666F7220746865207A65 PUSH1 0x44 DUP3 ADD MSTORE PUSH10 0x726F2061646472657373 PUSH1 0xB0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST CALLVALUE PUSH2 0x13E JUMPI PUSH1 0x0 DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x2ED JUMPI PUSH1 0x7 SLOAD DUP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND SWAP1 PUSH2 0x5AE CALLER DUP4 EQ PUSH2 0xB57 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x7 SSTORE PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 DUP3 DUP1 LOG3 DUP1 RETURN JUMPDEST CALLVALUE PUSH2 0x13E JUMPI PUSH1 0x0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x13E JUMPI PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 SWAP1 RETURN JUMPDEST CALLVALUE PUSH2 0x13E JUMPI PUSH1 0x0 DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x2ED JUMPI PUSH1 0x40 MLOAD SWAP1 DUP1 PUSH1 0x1 DUP1 SLOAD SWAP2 PUSH2 0x630 DUP4 PUSH2 0xC63 JUMP JUMPDEST DUP1 DUP7 MSTORE SWAP3 DUP3 DUP2 AND SWAP1 DUP2 ISZERO PUSH2 0x2C3 JUMPI POP PUSH1 0x1 EQ PUSH2 0x656 JUMPI PUSH2 0x265 DUP6 PUSH2 0x259 DUP2 DUP8 SUB DUP3 PUSH2 0x7D3 JUMP JUMPDEST SWAP3 POP DUP1 DUP4 MSTORE PUSH32 0xB10E2D527612073B26EECDFD717E6A320CF44B4AFAC2B0732D9FCBE2B7FA0CF6 JUMPDEST DUP3 DUP5 LT PUSH2 0x698 JUMPI POP POP POP DUP2 ADD PUSH1 0x20 ADD PUSH2 0x259 DUP3 PUSH2 0x265 PUSH2 0x249 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x20 DUP6 DUP8 ADD DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 SWAP4 ADD SWAP3 DUP2 ADD PUSH2 0x67D JUMP JUMPDEST CALLVALUE PUSH2 0x13E JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x13E JUMPI PUSH2 0x6C9 PUSH2 0x320 JUMP JUMPDEST PUSH1 0x24 CALLDATALOAD DUP1 ISZERO ISZERO DUP2 SUB PUSH2 0x13E JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP2 CALLER DUP4 EQ PUSH2 0x757 JUMPI DUP2 PUSH2 0x714 PUSH2 0x725 SWAP3 CALLER PUSH1 0x0 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 SWAP1 JUMP JUMPDEST SWAP1 PUSH1 0xFF DUP1 NOT DUP4 SLOAD AND SWAP2 ISZERO ISZERO AND OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE CALLER SWAP1 PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 SWAP1 PUSH1 0x20 SWAP1 LOG3 STOP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F766520746F2063616C6C657200000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 SWAP1 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 DUP2 ADD SWAP1 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR PUSH2 0x7CE JUMPI PUSH1 0x40 MSTORE JUMP JUMPDEST PUSH2 0x79C JUMP JUMPDEST SWAP1 PUSH1 0x1F DUP1 NOT SWAP2 ADD AND DUP2 ADD SWAP1 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR PUSH2 0x7CE JUMPI PUSH1 0x40 MSTORE JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT PUSH2 0x7CE JUMPI PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST SWAP3 SWAP2 SWAP3 PUSH2 0x81D DUP3 PUSH2 0x7F5 JUMP JUMPDEST SWAP2 PUSH2 0x82B PUSH1 0x40 MLOAD SWAP4 DUP5 PUSH2 0x7D3 JUMP JUMPDEST DUP3 SWAP5 DUP2 DUP5 MSTORE DUP2 DUP4 ADD GT PUSH2 0x13E JUMPI DUP3 DUP2 PUSH1 0x20 SWAP4 DUP5 PUSH1 0x0 SWAP7 ADD CALLDATACOPY ADD ADD MSTORE JUMP JUMPDEST CALLVALUE PUSH2 0x13E JUMPI PUSH1 0x80 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x13E JUMPI PUSH2 0x861 PUSH2 0x320 JUMP JUMPDEST PUSH2 0x869 PUSH2 0x336 JUMP JUMPDEST PUSH1 0x64 CALLDATALOAD SWAP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP4 GT PUSH2 0x13E JUMPI CALLDATASIZE PUSH1 0x23 DUP5 ADD SLT ISZERO PUSH2 0x13E JUMPI PUSH2 0x89E PUSH2 0x3A3 SWAP4 CALLDATASIZE SWAP1 PUSH1 0x24 DUP2 PUSH1 0x4 ADD CALLDATALOAD SWAP2 ADD PUSH2 0x811 JUMP JUMPDEST SWAP2 PUSH1 0x44 CALLDATALOAD SWAP2 PUSH2 0xEC0 JUMP JUMPDEST CALLVALUE PUSH2 0x13E JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x13E JUMPI PUSH2 0x265 PUSH2 0x8C7 PUSH1 0x4 CALLDATALOAD PUSH2 0x1408 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP2 DUP3 SWAP2 PUSH1 0x20 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP1 PUSH2 0x1D4 JUMP JUMPDEST CALLVALUE PUSH2 0x13E JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x13E JUMPI PUSH1 0x20 PUSH1 0xFF PUSH2 0x92C PUSH2 0x8FB PUSH2 0x320 JUMP JUMPDEST PUSH2 0x903 PUSH2 0x336 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 DUP7 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP3 SWAP1 SWAP4 AND DUP2 MSTORE PUSH1 0x20 SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SWAP1 JUMP JUMPDEST SLOAD AND PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE RETURN JUMPDEST CALLVALUE PUSH2 0x13E JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x13E JUMPI PUSH2 0x951 PUSH2 0x320 JUMP JUMPDEST PUSH1 0x24 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT PUSH2 0x13E JUMPI CALLDATASIZE PUSH1 0x23 DUP3 ADD SLT ISZERO PUSH2 0x13E JUMPI PUSH2 0x982 SWAP1 CALLDATASIZE SWAP1 PUSH1 0x24 DUP2 PUSH1 0x4 ADD CALLDATALOAD SWAP2 ADD PUSH2 0x811 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 PUSH2 0x99C SWAP1 DUP4 AND CALLER EQ PUSH2 0xB57 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x8 SLOAD ADD SWAP2 DUP3 PUSH1 0x8 SSTORE DUP4 AND SWAP1 DUP2 ISZERO PUSH2 0xA7D JUMPI DUP3 PUSH2 0xA6D SWAP3 PUSH2 0xA41 PUSH2 0x265 SWAP7 PUSH2 0x9EA PUSH2 0x9E5 PUSH2 0x9E1 DUP7 PUSH1 0x0 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB PUSH1 0x40 PUSH1 0x0 KECCAK256 SLOAD AND ISZERO ISZERO SWAP1 JUMP JUMPDEST ISZERO SWAP1 JUMP JUMPDEST PUSH2 0x16C3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0xA0C DUP2 SLOAD PUSH2 0x10CD JUMP JUMPDEST SWAP1 SSTORE PUSH2 0xA22 DUP5 PUSH1 0x0 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 SWAP1 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP2 DUP1 LOG4 DUP3 PUSH2 0x1763 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE SWAP1 DUP2 SWAP1 PUSH1 0x20 DUP3 ADD SWAP1 JUMP JUMPDEST PUSH1 0x64 PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x20 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A206D696E7420746F20746865207A65726F2061646472657373 PUSH1 0x44 DUP3 ADD MSTORE REVERT JUMPDEST CALLVALUE PUSH2 0x13E JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x13E JUMPI PUSH2 0xADA PUSH2 0x320 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 PUSH2 0xAF3 SWAP1 DUP3 AND CALLER EQ PUSH2 0xB57 JUMP JUMPDEST DUP2 AND ISZERO PUSH2 0xB03 JUMPI PUSH2 0x3A3 SWAP1 PUSH2 0xBA2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST ISZERO PUSH2 0xB5E JUMPI JUMP JUMPDEST PUSH1 0x64 PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x20 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE REVERT JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP3 AND DUP2 OR SWAP1 SWAP3 SSTORE SWAP1 SWAP2 AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x0 DUP1 LOG3 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP1 ISZERO PUSH2 0xC0C JUMPI SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A206F776E657220717565727920666F72206E6F6E6578697374 PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x32B73A103A37B5B2B7 PUSH1 0xB9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST SWAP1 PUSH1 0x1 DUP3 DUP2 SHR SWAP3 AND DUP1 ISZERO PUSH2 0xC93 JUMPI JUMPDEST PUSH1 0x20 DUP4 LT EQ PUSH2 0xC7D JUMPI JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP2 PUSH1 0x7F AND SWAP2 PUSH2 0xC72 JUMP JUMPDEST SWAP1 PUSH1 0x40 MLOAD SWAP2 DUP3 PUSH1 0x0 DUP3 SLOAD SWAP3 PUSH2 0xCB1 DUP5 PUSH2 0xC63 JUMP JUMPDEST SWAP1 DUP2 DUP5 MSTORE PUSH1 0x1 SWAP5 DUP6 DUP2 AND SWAP1 DUP2 PUSH1 0x0 EQ PUSH2 0xD20 JUMPI POP PUSH1 0x1 EQ PUSH2 0xCDD JUMPI JUMPDEST POP POP PUSH2 0xCDB SWAP3 POP SUB DUP4 PUSH2 0x7D3 JUMP JUMPDEST JUMP JUMPDEST SWAP1 SWAP4 SWAP2 POP PUSH1 0x0 MSTORE PUSH1 0x20 SWAP1 DUP2 PUSH1 0x0 KECCAK256 SWAP4 PUSH1 0x0 SWAP2 JUMPDEST DUP2 DUP4 LT PUSH2 0xD08 JUMPI POP POP PUSH2 0xCDB SWAP4 POP DUP3 ADD ADD CODESIZE DUP1 PUSH2 0xCCD JUMP JUMPDEST DUP6 SLOAD DUP9 DUP5 ADD DUP6 ADD MSTORE SWAP5 DUP6 ADD SWAP5 DUP8 SWAP5 POP SWAP2 DUP4 ADD SWAP2 PUSH2 0xCF0 JUMP JUMPDEST SWAP2 POP POP PUSH2 0xCDB SWAP5 POP PUSH1 0x20 SWAP3 POP PUSH1 0xFF NOT AND DUP3 DUP5 ADD MSTORE ISZERO ISZERO PUSH1 0x5 SHL DUP3 ADD ADD CODESIZE DUP1 PUSH2 0xCCD JUMP JUMPDEST ISZERO PUSH2 0xD4A JUMPI JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x38 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F76652063616C6C6572206973206E6F74206F77 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E6572206E6F7220617070726F76656420666F7220616C6C0000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO PUSH2 0xDED JUMPI PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F76656420717565727920666F72206E6F6E6578 PUSH1 0x44 DUP3 ADD MSTORE PUSH12 0x34B9BA32B73A103A37B5B2B7 PUSH1 0xA1 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST ISZERO PUSH2 0xE4E JUMPI JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x31 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E736665722063616C6C6572206973206E6F74206F PUSH1 0x44 DUP3 ADD MSTORE PUSH17 0x1DDB995C881B9BDC88185C1C1C9BDD9959 PUSH1 0x7A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD SWAP1 PUSH2 0xEBA DUP3 PUSH2 0x7B2 JUMP JUMPDEST PUSH1 0x0 DUP3 MSTORE JUMP JUMPDEST SWAP1 PUSH2 0xEE4 SWAP4 SWAP3 SWAP2 PUSH2 0xED4 PUSH2 0x48F DUP5 CALLER PUSH2 0xF5B JUMP JUMPDEST PUSH2 0xEDF DUP4 DUP4 DUP4 PUSH2 0x10E9 JUMP JUMPDEST PUSH2 0x132E JUMP JUMPDEST ISZERO PUSH2 0xEEB JUMPI JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE DUP1 PUSH2 0xF04 PUSH1 0x4 DUP3 ADD PUSH2 0xF08 JUMP JUMPDEST SUB SWAP1 REVERT JUMPDEST PUSH1 0x80 SWAP1 PUSH1 0x20 DUP2 MSTORE PUSH1 0x32 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E7366657220746F206E6F6E204552433732315265 PUSH1 0x40 DUP3 ADD MSTORE PUSH18 0x31B2B4BB32B91034B6B83632B6B2B73A32B9 PUSH1 0x71 SHL PUSH1 0x60 DUP3 ADD MSTORE ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO PUSH2 0xFF1 JUMPI PUSH2 0xF81 DUP3 PUSH2 0xBEB JUMP JUMPDEST SWAP2 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 DUP4 AND SWAP3 DUP3 DUP6 AND DUP5 EQ SWAP5 DUP6 ISZERO PUSH2 0xFC0 JUMPI JUMPDEST POP POP DUP4 ISZERO PUSH2 0xFAA JUMPI JUMPDEST POP POP POP SWAP1 JUMP JUMPDEST PUSH2 0xFB6 SWAP2 SWAP3 SWAP4 POP PUSH2 0xDB5 JUMP JUMPDEST AND EQ CODESIZE DUP1 DUP1 PUSH2 0xFA4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 SWAP5 POP PUSH1 0xFF SWAP2 PUSH2 0xFE7 SWAP2 SWAP1 PUSH2 0x3C8 JUMP JUMPDEST SLOAD AND SWAP3 CODESIZE DUP1 PUSH2 0xF9B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A206F70657261746F7220717565727920666F72206E6F6E6578 PUSH1 0x44 DUP3 ADD MSTORE PUSH12 0x34B9BA32B73A103A37B5B2B7 PUSH1 0xA1 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST ISZERO PUSH2 0x1052 JUMPI JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E7366657220746F20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 NOT DUP2 ADD SWAP2 SWAP1 DUP3 GT PUSH2 0x10C8 JUMPI JUMP JUMPDEST PUSH2 0x10A3 JUMP JUMPDEST SWAP1 PUSH1 0x1 DUP3 ADD DUP1 SWAP3 GT PUSH2 0x10C8 JUMPI JUMP JUMPDEST PUSH1 0x30 ADD SWAP1 DUP2 PUSH1 0x30 GT PUSH2 0x10C8 JUMPI JUMP JUMPDEST SWAP1 PUSH2 0x10F3 DUP4 PUSH2 0xBEB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND SWAP3 SWAP1 SWAP2 DUP3 AND DUP4 SWAP1 SUB PUSH2 0x11AD JUMPI PUSH2 0x1142 PUSH2 0x1186 SWAP3 DUP3 AND SWAP5 PUSH2 0x111F DUP7 ISZERO ISZERO PUSH2 0x104B JUMP JUMPDEST PUSH2 0x1128 DUP8 PUSH2 0x1200 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST PUSH2 0x114C DUP2 SLOAD PUSH2 0x10B9 JUMP JUMPDEST SWAP1 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x1170 DUP2 SLOAD PUSH2 0x10CD JUMP JUMPDEST SWAP1 SSTORE PUSH2 0xA22 DUP6 PUSH1 0x0 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 SWAP1 JUMP JUMPDEST PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH1 0x0 DUP1 LOG4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E736665722066726F6D20696E636F727265637420 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x37BBB732B9 PUSH1 0xD9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH2 0x122D DUP4 PUSH2 0xBEB JUMP JUMPDEST AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP3 DUP1 LOG4 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND OR SWAP1 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 PUSH2 0x128D DUP5 PUSH2 0xBEB JUMP JUMPDEST AND SWAP2 AND SWAP1 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x0 DUP1 LOG4 JUMP JUMPDEST SWAP1 DUP2 PUSH1 0x20 SWAP2 SUB SLT PUSH2 0x13E JUMPI MLOAD PUSH2 0x20A DUP2 PUSH2 0x12C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND DUP2 MSTORE SWAP2 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x80 PUSH1 0x60 DUP3 ADD DUP2 SWAP1 MSTORE PUSH2 0x20A SWAP3 SWAP2 ADD SWAP1 PUSH2 0x1D4 JUMP JUMPDEST RETURNDATASIZE ISZERO PUSH2 0x1329 JUMPI RETURNDATASIZE SWAP1 PUSH2 0x130F DUP3 PUSH2 0x7F5 JUMP JUMPDEST SWAP2 PUSH2 0x131D PUSH1 0x40 MLOAD SWAP4 DUP5 PUSH2 0x7D3 JUMP JUMPDEST DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY JUMP JUMPDEST PUSH1 0x60 SWAP1 JUMP JUMPDEST SWAP3 SWAP1 SWAP2 SWAP1 DUP3 EXTCODESIZE ISZERO PUSH2 0x13E8 JUMPI PUSH2 0x1361 SWAP3 PUSH1 0x20 SWAP3 PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 SWAP7 DUP2 SWAP6 DUP3 SWAP5 PUSH4 0xA85BD01 PUSH1 0xE1 SHL SWAP11 DUP12 DUP6 MSTORE CALLER PUSH1 0x4 DUP7 ADD PUSH2 0x12CD JUMP JUMPDEST SUB SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND GAS CALL PUSH1 0x0 SWAP2 DUP2 PUSH2 0x13B8 JUMPI JUMPDEST POP PUSH2 0x13AA JUMPI PUSH2 0x1384 PUSH2 0x12FE JUMP JUMPDEST DUP1 MLOAD SWAP1 DUP2 PUSH2 0x13A5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE DUP1 PUSH2 0xF04 PUSH1 0x4 DUP3 ADD PUSH2 0xF08 JUMP JUMPDEST PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND EQ SWAP1 JUMP JUMPDEST PUSH2 0x13DA SWAP2 SWAP3 POP PUSH1 0x20 RETURNDATASIZE DUP2 GT PUSH2 0x13E1 JUMPI JUMPDEST PUSH2 0x13D2 DUP2 DUP4 PUSH2 0x7D3 JUMP JUMPDEST DUP2 ADD SWAP1 PUSH2 0x12B8 JUMP JUMPDEST SWAP1 CODESIZE PUSH2 0x1377 JUMP JUMPDEST POP RETURNDATASIZE PUSH2 0x13C8 JUMP JUMPDEST POP POP POP POP PUSH1 0x1 SWAP1 JUMP JUMPDEST SWAP1 PUSH2 0x1404 PUSH1 0x20 SWAP3 DUP3 DUP2 MLOAD SWAP5 DUP6 SWAP3 ADD PUSH2 0x1B1 JUMP JUMPDEST ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO PUSH2 0x1497 JUMPI PUSH2 0x1441 PUSH2 0x143C DUP3 PUSH1 0x0 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 SWAP1 JUMP JUMPDEST PUSH2 0xC9D JUMP JUMPDEST SWAP1 PUSH2 0x144A PUSH2 0xEAD JUMP JUMPDEST DUP1 MLOAD ISZERO PUSH2 0x1492 JUMPI DUP3 MLOAD PUSH2 0x1462 JUMPI POP PUSH2 0x20A SWAP2 POP PUSH2 0x14F6 JUMP JUMPDEST PUSH2 0x20A SWAP2 POP PUSH2 0x1484 PUSH2 0x147E SWAP4 PUSH1 0x40 MLOAD SWAP5 DUP6 SWAP4 PUSH1 0x20 DUP6 ADD SWAP1 PUSH2 0x13F1 JUMP JUMPDEST SWAP1 PUSH2 0x13F1 JUMP JUMPDEST SUB PUSH1 0x1F NOT DUP2 ADD DUP4 MSTORE DUP3 PUSH2 0x7D3 JUMP JUMPDEST POP POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x31 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524337323155524953746F726167653A2055524920717565727920666F7220 PUSH1 0x44 DUP3 ADD MSTORE PUSH17 0x3737B732BC34B9BA32B73A103A37B5B2B7 PUSH1 0x79 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO PUSH2 0x1552 JUMPI PUSH2 0x151B PUSH2 0xEAD JUMP JUMPDEST DUP1 MLOAD SWAP1 SWAP2 SWAP1 ISZERO PUSH2 0x1548 JUMPI PUSH2 0x147E SWAP2 PUSH2 0x1484 PUSH2 0x1538 PUSH2 0x20A SWAP4 PUSH2 0x1608 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP5 DUP6 SWAP4 PUSH1 0x20 DUP6 ADD SWAP1 PUSH2 0x13F1 JUMP JUMPDEST POP POP PUSH2 0x20A PUSH2 0xEAD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732314D657461646174613A2055524920717565727920666F72206E6F PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x3732BC34B9BA32B73A103A37B5B2B7 PUSH1 0x89 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST SWAP1 PUSH2 0x15B9 DUP3 PUSH2 0x7F5 JUMP JUMPDEST PUSH2 0x15C6 PUSH1 0x40 MLOAD SWAP2 DUP3 PUSH2 0x7D3 JUMP JUMPDEST DUP3 DUP2 MSTORE DUP1 SWAP3 PUSH2 0x15D7 PUSH1 0x1F NOT SWAP2 PUSH2 0x7F5 JUMP JUMPDEST ADD SWAP1 PUSH1 0x20 CALLDATASIZE SWAP2 ADD CALLDATACOPY JUMP JUMPDEST SWAP1 DUP2 MLOAD DUP2 LT ISZERO PUSH2 0x15F2 JUMPI ADD PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 ISZERO PUSH2 0x1694 JUMPI PUSH1 0x0 DUP2 DUP2 DUP2 DUP1 JUMPDEST PUSH2 0x1678 JUMPI POP PUSH2 0x1623 DUP2 PUSH2 0x15AF JUMP JUMPDEST SWAP4 JUMPDEST PUSH2 0x162F JUMPI POP POP POP SWAP1 JUMP JUMPDEST PUSH2 0x1638 SWAP1 PUSH2 0x10B9 JUMP JUMPDEST SWAP1 PUSH1 0xA SWAP1 PUSH2 0x1663 PUSH2 0x1653 PUSH2 0x164D DUP5 DUP5 MOD PUSH2 0x10DB JUMP JUMPDEST PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0xF8 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 JUMP JUMPDEST DUP5 BYTE PUSH2 0x166F DUP5 DUP8 PUSH2 0x15E1 JUMP JUMPDEST MSTORE8 DIV SWAP1 DUP2 PUSH2 0x1625 JUMP JUMPDEST SWAP2 POP PUSH1 0x0 NOT DUP2 EQ PUSH2 0x10C8 JUMPI PUSH1 0x1 PUSH1 0xA SWAP2 ADD SWAP2 DIV DUP1 DUP5 SWAP3 SWAP2 PUSH2 0x1615 JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x40 DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR PUSH2 0x7CE JUMPI PUSH1 0x40 MSTORE PUSH1 0x1 DUP2 MSTORE PUSH1 0x3 PUSH1 0xFC SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP1 JUMP JUMPDEST ISZERO PUSH2 0x16CA JUMPI JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20746F6B656E20616C7265616479206D696E74656400000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 SWAP1 REVERT JUMPDEST SWAP1 PUSH1 0x1F DUP2 GT PUSH2 0x171D JUMPI POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 KECCAK256 SWAP1 PUSH1 0x20 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP4 ADD SWAP5 LT PUSH2 0x1759 JUMPI JUMPDEST PUSH1 0x1F ADD PUSH1 0x5 SHR ADD SWAP2 JUMPDEST DUP3 DUP2 LT PUSH2 0x174E JUMPI POP POP POP JUMP JUMPDEST DUP2 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x1742 JUMP JUMPDEST SWAP1 SWAP3 POP DUP3 SWAP1 PUSH2 0x1739 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP2 SWAP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO PUSH2 0x185D JUMPI PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x6 DUP2 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 SWAP1 DUP4 MLOAD SWAP1 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT PUSH2 0x7CE JUMPI PUSH2 0x17B8 DUP3 PUSH2 0x17B2 DUP6 SLOAD PUSH2 0xC63 JUMP JUMPDEST DUP6 PUSH2 0x170F JUMP JUMPDEST DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 EQ PUSH2 0x17F2 JUMPI POP DUP2 SWAP3 SWAP4 SWAP5 PUSH1 0x0 SWAP3 PUSH2 0x17E7 JUMPI JUMPDEST POP POP DUP2 PUSH1 0x1 SHL SWAP2 PUSH1 0x0 NOT SWAP1 PUSH1 0x3 SHL SHR NOT AND OR SWAP1 SSTORE JUMP JUMPDEST ADD MLOAD SWAP1 POP CODESIZE DUP1 PUSH2 0x17D1 JUMP JUMPDEST SWAP1 PUSH1 0x1F NOT DUP4 AND SWAP6 PUSH2 0x1808 DUP6 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMP JUMPDEST SWAP3 PUSH1 0x0 SWAP1 JUMPDEST DUP9 DUP3 LT PUSH2 0x1845 JUMPI POP POP DUP4 PUSH1 0x1 SWAP6 SWAP7 SWAP8 LT PUSH2 0x182C JUMPI JUMPDEST POP POP POP DUP2 SHL ADD SWAP1 SSTORE JUMP JUMPDEST ADD MLOAD PUSH1 0x0 NOT PUSH1 0xF8 DUP5 PUSH1 0x3 SHL AND SHR NOT AND SWAP1 SSTORE CODESIZE DUP1 DUP1 PUSH2 0x1822 JUMP JUMPDEST DUP1 PUSH1 0x1 DUP6 SWAP7 DUP3 SWAP5 SWAP7 DUP7 ADD MLOAD DUP2 SSTORE ADD SWAP6 ADD SWAP4 ADD SWAP1 PUSH2 0x180D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524337323155524953746F726167653A2055524920736574206F66206E6F6E PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x32BC34B9BA32B73A103A37B5B2B7 PUSH1 0x91 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP14 PUSH17 0xE4ABF028CAB3A64325AD2648D8F0620551 GASPRICE SELFDESTRUCT 0xD8 0xE1 PUSH11 0x5501ADA03FD2C65C64736F PUSH13 0x63430008120033000000000000 ","sourceMap":"244:439:47:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;-1:-1:-1;;;;;;244:439:47;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;244:439:47;;;;;;;;;;:::i;:::-;;;;;1722:25:29;;;1707:40;;:104;;;;;244:439:47;1707:156:29;;;;244:439:47;;;;;;;;;;1707:156:29;-1:-1:-1;;;937:40:38;;-1:-1:-1;1707:156:29;;;:104;-1:-1:-1;;;1763:48:29;;;-1:-1:-1;1707:104:29;;244:439:47;;;;;;;;-1:-1:-1;;244:439:47;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;244:439:47;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;244:439:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;244:439:47;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;244:439:47;;;;;;;;;;-1:-1:-1;;;;;244:439:47;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;244:439:47;;;;;;:::o;:::-;;;;;;-1:-1:-1;;244:439:47;;;;;;:::i;:::-;;;3634:23:29;;;:::i;:::-;244:439:47;-1:-1:-1;;;;;244:439:47;;;;;;3675:11:29;;244:439:47;;3924:7:29;719:10:35;3735:165:29;719:10:35;;3756:21:29;:62;;;;;244:439:47;3735:165:29;;:::i;:::-;3924:7;:::i;:::-;244:439:47;3756:62:29;-1:-1:-1;;;;;244:439:47;;;;;4623:18:29;244:439:47;;;;;4623:35:29;;-1:-1:-1;4623:35:29;;719:10:35;;4623:25:29;244:439:47;;;;;;;;;;;;;;;;4623:35:29;244:439:47;;;;;4623:35:29;3756:62;;;244:439:47;;;-1:-1:-1;;;244:439:47;;;;;;;;;;;;;;;;;-1:-1:-1;;;244:439:47;;;;;;;;;;;;;;;;-1:-1:-1;;;;;244:439:47;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;5042:7:29;244:439:47;;;:::i;:::-;719:10:35;4908:103:29;4916:41;719:10:35;;4916:41:29;:::i;:::-;4908:103;:::i;:::-;5042:7;:::i;244:439:47:-;;;;5256:39:29;244:439:47;;;:::i;:::-;;;;;;;;:::i;:::-;;;;5256:39:29;:::i;244:439:47:-;;;;;;-1:-1:-1;;244:439:47;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;244:439:47;;;;-1:-1:-1;;;;;244:439:47;;:::i;:::-;;2028:19:29;;244:439:47;;-1:-1:-1;244:439:47;;;;;;-1:-1:-1;244:439:47;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;244:439:47;;;;;;;;;;;;;;;;;-1:-1:-1;;;244:439:47;;;;;;;;;;;;;;;;;;;;1108:6:24;244:439:47;;;-1:-1:-1;;;;;244:439:47;;;1240:68:24;719:10:35;1248:23:24;;1240:68;:::i;:::-;-1:-1:-1;;;;;;244:439:47;1108:6:24;244:439:47;2410:40:24;;;;244:439:47;;;;;;;;-1:-1:-1;;244:439:47;;;;1108:6:24;244:439:47;;;-1:-1:-1;;;;;244:439:47;;;;;;;;;;;;;;;;;;;;;;;;;2738:7:29;244:439:47;;;;;;:::i;:::-;;;;;;;;;2738:7:29;;;;244:439:47;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;244:439:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;244:439:47;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;244:439:47;;;719:10:35;11616:17:29;;244:439:47;;719:10:35;11673:35:29;:46;719:10:35;;-1:-1:-1;244:439:47;11673:18:29;244:439:47;;;-1:-1:-1;244:439:47;;;;;;;;;;;;;;;;;11673:35:29;244:439:47;;;;;;;;;;;;;;;11673:46:29;244:439:47;;;;;;;719:10:35;;11734:41:29;;244:439:47;;11734:41:29;244:439:47;;;;-1:-1:-1;;;244:439:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;244:439:47;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;244:439:47;;;;;;:::o;:::-;;;;;;-1:-1:-1;;244:439:47;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;-1:-1:-1;;244:439:47;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;244:439:47;;;;;;4623:35:29;244:439:47;;:::i;:::-;;;:::i;:::-;-1:-1:-1;;;;;244:439:47;;;-1:-1:-1;244:439:47;;;4623:18:29;244:439:47;;;;;;;;;;;;-1:-1:-1;244:439:47;;;;;;;4623:35:29;244:439:47;;;;;;;;;;;;;;;;-1:-1:-1;;244:439:47;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1108:6:24;244:439:47;-1:-1:-1;;;;;244:439:47;;1240:68:24;;244:439:47;;719:10:35;1248:23:24;1240:68;:::i;:::-;244:439:47;514:9;244:439;;;;514:9;244:439;;;9158:16:29;;;244:439:47;;9230:16:29;644:8:47;9230:16:29;9374:21;244:439:47;9230:16:29;9221:58;9229:17;9230:16;;-1:-1:-1;244:439:47;7248:7:29;244:439:47;;;;;;;;-1:-1:-1;244:439:47;;;7248:30:29;;7160:125;;9230:16;9229:17;;244:439:47;9229:17:29;9221:58;:::i;:::-;-1:-1:-1;;;;;244:439:47;;;;;;9346:9:29;244:439:47;;;;;9346:18:29;244:439:47;;9346:18:29;:::i;:::-;244:439:47;;9374:16:29;;244:439:47;;9374:7:29;244:439:47;;;;;;;9374:16:29;244:439:47;;-1:-1:-1;;;;;;244:439:47;-1:-1:-1;;;;;244:439:47;;;;;;;;;;9374:21:29;-1:-1:-1;9411:33:29;;;;644:8:47;;:::i;:::-;244:439;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;244:439:47;;;;;;:::i;:::-;1108:6:24;244:439:47;-1:-1:-1;;;;;244:439:47;1240:68:24;;244:439:47;;719:10:35;1248:23:24;1240:68;:::i;:::-;244:439:47;;2006:22:24;244:439:47;;2100:8:24;;;:::i;244:439:47:-;;;-1:-1:-1;;;244:439:47;;;;;;;;;;;;;;;;;-1:-1:-1;;;244:439:47;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;2270:187:24;2362:6;244:439:47;;-1:-1:-1;;;;;244:439:47;;;-1:-1:-1;;;;;;244:439:47;;;;;;;;;;2410:40:24;-1:-1:-1;;2410:40:24;2270:187::o;2191:235:29:-;-1:-1:-1;244:439:47;;;2298:7:29;244:439:47;;;;;;-1:-1:-1;;;;;244:439:47;2332:19:29;;244:439:47;;2191:235:29;:::o;244:439:47:-;;;-1:-1:-1;;;244:439:47;;;;;;;;;;;;;;;;;-1:-1:-1;;;244:439:47;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;244:439:47;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;-1:-1:-1;244:439:47;;;;-1:-1:-1;244:439:47;;-1:-1:-1;244:439:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;244:439:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;244:439:47;;;;;;;;;;;;;;;;;;;;;;;;;4000:217:29;-1:-1:-1;244:439:47;;;7248:7:29;244:439:47;;;;;;-1:-1:-1;;;;;244:439:47;7248:30:29;244:439:47;;-1:-1:-1;244:439:47;;;4186:15:29;244:439:47;;;;;;-1:-1:-1;;;;;244:439:47;;4000:217:29:o;244:439:47:-;;;-1:-1:-1;;;244:439:47;;;;;;;;;;;;;;;;;-1:-1:-1;;;244:439:47;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;244:439:47;;;;;;;;;;;;;;;;;-1:-1:-1;;;244:439:47;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;244:439:47;;:::o;5368:320:29:-;;6747:48;5368:320;;;5529:103;5537:41;719:10:35;;5537:41:29;:::i;5529:103::-;6721:7;;;;;:::i;:::-;6747:48;:::i;:::-;244:439:47;;;5368:320:29:o;244:439:47:-;;;-1:-1:-1;;;244:439:47;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;244:439:47;;;;;;:::o;7443:344:29:-;-1:-1:-1;244:439:47;;;7248:7:29;244:439:47;;;;;;-1:-1:-1;;;;;244:439:47;7248:30:29;244:439:47;;7651:23:29;;;:::i;:::-;244:439:47;;;;;;;;;;;;;;7692:16:29;;:52;;;;;7443:344;7692:87;;;;;;7443:344;7684:96;;;7443:344;:::o;7692:87::-;7748:20;;;;;;:::i;:::-;244:439:47;7748:31:29;7692:87;;;;;:52;-1:-1:-1;;;;;244:439:47;;;;;4623:18:29;244:439:47;;;;;4623:25:29;;-1:-1:-1;244:439:47;;4623:35:29;;:25;;244:439:47;4623:35:29;244:439:47;;7692:52:29;;;;;244:439:47;;;-1:-1:-1;;;244:439:47;;;;;;;;;;;;;;;;;-1:-1:-1;;;244:439:47;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;244:439:47;;;;;;;;;;;;;;;;;-1:-1:-1;;;244:439:47;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;244:439:47;;;;;;;;:::o;:::-;;:::i;:::-;;1050:1:36;244:439:47;;;;;;;:::o;:::-;932:2:37;244:439:47;;;932:2:37;244:439:47;;;:::o;10453:605:29:-;;10580:23;;;:::i;:::-;-1:-1:-1;;;;;244:439:47;;;;;;;;10580:31:29;;;244:439:47;;10880:15:29;10938:21;244:439:47;;;10671:16:29;10663:65;10671:16;;;10663:65;:::i;:::-;10861:7;;;:::i;:::-;-1:-1:-1;;;;;244:439:47;;;;;9346:9:29;244:439:47;;;;;;;10880:15:29;:20;244:439:47;;10880:20:29;:::i;:::-;244:439:47;;-1:-1:-1;;;;;244:439:47;;;;;;9346:9:29;244:439:47;;;;;10910:18:29;244:439:47;;10910:18:29;:::i;:::-;244:439:47;;10938:16:29;;244:439:47;;9374:7:29;244:439:47;;;;;;;10938:21:29;10975:27;10685:1;10975:27;;10453:605::o;244:439:47:-;;;-1:-1:-1;;;244:439:47;;;;;;;;;;;;;;;;;-1:-1:-1;;;244:439:47;;;;;;;11169:171:29;244:439:47;;;;11243:15:29;244:439:47;;;;;;;-1:-1:-1;;;;;;244:439:47;;;-1:-1:-1;;;;;11296:23:29;244:439:47;11296:23:29;:::i;:::-;244:439:47;11287:46:29;;;;11169:171::o;:::-;-1:-1:-1;244:439:47;;;11243:15:29;244:439:47;;;;;;;-1:-1:-1;;;;;;244:439:47;-1:-1:-1;;;;;244:439:47;;;;;-1:-1:-1;;;;;244:439:47;11296:23:29;;;:::i;:::-;244:439:47;;;11287:46:29;;-1:-1:-1;11287:46:29;;11169:171::o;244:439:47:-;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;244:439:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;244:439:47;;;;:::o;:::-;;;:::o;12335:778:29:-;;;;;1465:19:34;;:23;12505:15:29;;12540:72;244:439:47;12540:72:29;244:439:47;;;;;;;;;;;;;12540:72:29;;;;719:10:35;12540:72:29;;;;:::i;:::-;;;-1:-1:-1;;;;;244:439:47;12540:72:29;;244:439:47;;12540:72:29;;;12501:606;-1:-1:-1;12536:519:29;;12729:326;;:::i;:::-;244:439:47;;;12779:18:29;;;244:439:47;;-1:-1:-1;;;12821:60:29;;244:439:47;12821:60:29;12540:72;12821:60;;;:::i;12775:266::-;12540:72;12928:95;;12536:519;-1:-1:-1;;;;;;244:439:47;12662:51:29;;12655:58::o;12540:72::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;12501:606;13085:11;;;;13092:4;13085:11;:::o;244:439:47:-;;;;;;;;;;;;;:::i;:::-;;;:::o;467:663:32:-;-1:-1:-1;244:439:47;;;7248:7:29;244:439:47;;;;;;-1:-1:-1;;;;;244:439:47;7248:30:29;244:439:47;;;680:19:32;;244:439:47;;680:10:32;244:439:47;;;;;;;680:19:32;244:439:47;:::i;:::-;;;;:::i;:::-;;;813:23:32;809:70;;244:439:47;;977:106:32;;1100:23;;;;;:::i;977:106::-;1038:33;244:439:47;;;;;;;1038:33:32;;;;;;244:439:47;;:::i;:::-;;;:::i;:::-;1038:33:32;244:439:47;;1038:33:32;;;;;;:::i;809:70::-;852:16;;;:::o;244:439:47:-;;;-1:-1:-1;;;244:439:47;;;;;;;;;;;;;;;;;-1:-1:-1;;;244:439:47;;;;;;;2818:329:29;-1:-1:-1;244:439:47;;;7248:7:29;244:439:47;;;;;;-1:-1:-1;;;;;244:439:47;7248:30:29;244:439:47;;;;:::i;:::-;;;;;;3054:25:29;:86;;244:439:47;3115:18:29;244:439:47;3115:18:29;3089:45;3115:18;;:::i;:::-;244:439:47;;3089:45:29;;;;;;244:439:47;;:::i;3054:86:29:-;244:439:47;;;;:::i;:::-;;;-1:-1:-1;;;244:439:47;;;;;;;;;;;;;;;;;-1:-1:-1;;;244:439:47;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;328:703:37;601:10;;597:51;;610:1;657:20;610:1;657:20;;718:9;;;817:17;;;;:::i;:::-;844:150;851:10;;;1003:21;;;328:703;:::o;844:150::-;877:11;;;:::i;:::-;773:2;;244:439:47;919:39:37;926:31;932:24;244:439:47;;;932:24:37;:::i;:::-;244:439:47;;;;926:31:37;244:439:47;;-1:-1:-1;;;;;;244:439:47;;;919:39:37;902:56;;;;;;:::i;:::-;;244:439:47;844:150:37;;;;711:75;244:439:47;-1:-1:-1;;;244:439:47;;;;;773:2:37;244:439:47;;;;711:75:37;;;;;;597:51;244:439:47;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;244:439:47;;;;627:10:37;:::o;244:439:47:-;;;;:::o;:::-;;;-1:-1:-1;;;244:439:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;244:439:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;244:439:47;;;;1277:214:32;-1:-1:-1;244:439:47;;;7248:7:29;244:439:47;;;;;;1277:214:32;;;-1:-1:-1;;;;;244:439:47;7248:30:29;244:439:47;;-1:-1:-1;244:439:47;;1453:10:32;244:439:47;;;-1:-1:-1;244:439:47;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;244:439:47;;;;;;;;;;;;;;;;;;;;;1277:214:32:o;244:439:47:-;;;;-1:-1:-1;244:439:47;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;244:439:47;;;;;;;;;;;;;;;;;;;;;;;;;;1277:214:32:o;244:439:47:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;244:439:47;;;;;;;;;;;;;;;;;-1:-1:-1;;;244:439:47;;;;;;"},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","mintNFT(address,string)":"eacabe14","name()":"06fdde03","owner()":"8da5cb5b","ownerOf(uint256)":"6352211e","renounceOwnership()":"715018a6","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","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"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\":\"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\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"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\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"tokenURI\",\"type\":\"string\"}],\"name\":\"mintNFT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"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\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\":\"nonpayable\",\"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\":\"nonpayable\",\"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\":\"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\":\"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 `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"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.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"},\"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\":{\"contracts/MyNFT.sol\":\"MyNFT\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0x24e0364e503a9bbde94c715d26573a76f14cd2a202d45f96f52134ab806b67b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e12cbaa7378fd9b62280e4e1d164bedcb4399ce238f5f98fc0eefb7e50577981\",\"dweb:/ipfs/QmXRoFGUgfsaRkoPT5bxNMtSayKTQ8GZATLPXf69HcRA51\"]},\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x921f012325281f7d81e29c53a13824cf6c2c5d77232065d0d4f3f912e97af6ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7dbcedc364fce0ab5e54d21d4cbd91a97959f52c0674cf5c36a314bb58308f62\",\"dweb:/ipfs/QmfYpqHKtu3bSQ9FGvLwzdxRNykStpVPtoLNTaM1KBKj6E\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x0d4de01fe5360c38b4ad2b0822a12722958428f5138a7ff47c1720eb6fa52bba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77724cecdfba8814632ab58737c2b0f2d4ad2d532bc614aee559b5593c1152f0\",\"dweb:/ipfs/QmUcE6gXyv7CQh4sUdcDABYKGTovTe1zLMZSEq95nkc3ph\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol\":{\"keccak256\":\"0x1cbe42915bc66227970fe99bc0f783eb1de30f2b48f984af01ad45edb9658698\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2baa08eb67d9da46e6c4c049f17b7684a1c68c5268d0f466cfa0eb23ce2bf9b0\",\"dweb:/ipfs/Qmdnj8zj4PfErB2HM2eKmDt7FrqrhggsZ6Qd8MpD593tgj\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146\",\"dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x2ccf9d2313a313d41a791505f2b5abfdc62191b5d4334f7f7a82691c088a1c87\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3a57d0854b2fdce6ebff933a48dca2445643d1eccfc27f00292e937f26c6a58\",\"dweb:/ipfs/QmW45rZooS9TqR4YXUbjRbtf2Bpb5ouSarBvfW1LdGprvV\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Counters.sol\":{\"keccak256\":\"0xf0018c2440fbe238dd3a8732fa8e17a0f9dce84d31451dc8a32f6d62b349c9f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59e1c62884d55b70f3ae5432b44bb3166ad71ae3acd19c57ab6ddc3c87c325ee\",\"dweb:/ipfs/QmezuXg5GK5oeA4F91EZhozBFekhq5TD966bHPH18cCqhu\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x32c202bd28995dd20c4347b7c6467a6d3241c74c8ad3edcbb610cd9205916c45\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8179c356adb19e70d6b31a1eedc8c5c7f0c00e669e2540f4099e3844c6074d30\",\"dweb:/ipfs/QmWFbivarEobbqhS1go64ootVuHfVohBseerYy9FTEd1W2\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"contracts/MyNFT.sol\":{\"keccak256\":\"0xb7b0d6a0ba349d6861a2707632bf3e58e0f1d8d29b7d60977f4195079e7726f6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fa916aadf57a5d96637be793f276403cdc7e0159964fafac0688a25485606a55\",\"dweb:/ipfs/Qmb3WS6CLAYqpgahz4hTvuG1HJ5Eu8MWa7drtUW3D3Qkh3\"]}},\"version\":1}"}},"contracts/MyPaymaster.sol":{"MyPaymaster":{"abi":[{"inputs":[{"internalType":"address","name":"_erc20","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"allowedToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"_context","type":"bytes"},{"components":[{"internalType":"uint256","name":"txType","type":"uint256"},{"internalType":"uint256","name":"from","type":"uint256"},{"internalType":"uint256","name":"to","type":"uint256"},{"internalType":"uint256","name":"gasLimit","type":"uint256"},{"internalType":"uint256","name":"gasPerPubdataByteLimit","type":"uint256"},{"internalType":"uint256","name":"maxFeePerGas","type":"uint256"},{"internalType":"uint256","name":"maxPriorityFeePerGas","type":"uint256"},{"internalType":"uint256","name":"paymaster","type":"uint256"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256[4]","name":"reserved","type":"uint256[4]"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"bytes32[]","name":"factoryDeps","type":"bytes32[]"},{"internalType":"bytes","name":"paymasterInput","type":"bytes"},{"internalType":"bytes","name":"reservedDynamic","type":"bytes"}],"internalType":"struct Transaction","name":"_transaction","type":"tuple"},{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"enum ExecutionResult","name":"_txResult","type":"uint8"},{"internalType":"uint256","name":"_maxRefundedGas","type":"uint256"}],"name":"postTransaction","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"bytes32","name":"","type":"bytes32"},{"components":[{"internalType":"uint256","name":"txType","type":"uint256"},{"internalType":"uint256","name":"from","type":"uint256"},{"internalType":"uint256","name":"to","type":"uint256"},{"internalType":"uint256","name":"gasLimit","type":"uint256"},{"internalType":"uint256","name":"gasPerPubdataByteLimit","type":"uint256"},{"internalType":"uint256","name":"maxFeePerGas","type":"uint256"},{"internalType":"uint256","name":"maxPriorityFeePerGas","type":"uint256"},{"internalType":"uint256","name":"paymaster","type":"uint256"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256[4]","name":"reserved","type":"uint256[4]"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"bytes32[]","name":"factoryDeps","type":"bytes32[]"},{"internalType":"bytes","name":"paymasterInput","type":"bytes"},{"internalType":"bytes","name":"reservedDynamic","type":"bytes"}],"internalType":"struct Transaction","name":"_transaction","type":"tuple"}],"name":"validateAndPayForPaymasterTransaction","outputs":[{"internalType":"bytes4","name":"magic","type":"bytes4"},{"internalType":"bytes","name":"context","type":"bytes"}],"stateMutability":"payable","type":"function"},{"stateMutability":"payable","type":"receive"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60803461007457601f61083038819003918201601f19168301916001600160401b038311848410176100795780849260209460405283398101031261007457516001600160a01b0381169081900361007457600080546001600160a01b0319169190911790556040516107a090816100908239f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe60406080815260048036101561001f575b5050361561001d57600080fd5b005b600090813560e01c928363038a24bc1461005c575050508063817b17f014610057576385fa292f14610052573880610010565b6103ff565b61039d565b60603660031901126103265760443567ffffffffffffffff811161032257610087903690840161032a565b9261022084016100a48461009b8388610428565b9050101561045b565b6100b76100b18287610428565b906104cd565b6325250c7760e21b916001600160e01b0319916100d3916104f8565b16036102d7576100f06100e96100f89287610428565b80916104db565b81019061057d565b5082546001600160a01b0396919287169061011690881682146105ff565b8451636eb1769f60e11b81526001600160a01b0360208481013590991690811688830190815230818b015290949192908990849081906040010381845afa9384156102d2578661018a8a9261017b60016101c6998f9986916102a5575b501015610656565b606060a082013591013561069a565b89516323b872dd60e01b81526001600160a01b039098169288019283523060208401526040830194909452929594859384929091839160600190565b03925af19081610278575b5061024e5750506101e06106db565b80519383851161024857825162461bcd60e51b81526020818601818152602a918101919091527f4661696c656420746f207472616e7366657246726f6d2066726f6d20757365726040820152691cc9c81858d8dbdd5b9d60b21b606082015281906080010390fd5b84925001fd5b90808080610269946180015af16102636106db565b5061070b565b51806102748161033e565b0390f35b61029790873d891161029e575b61028f818361053a565b8101906106c3565b50866101d1565b503d610285565b6102c591508a3d8c116102cb575b6102bd818361053a565b81019061063b565b38610173565b503d6102b3565b61064a565b825162461bcd60e51b81526020818601818152601a918101919091527f556e737570706f72746564207061796d617374657220666c6f77000000000000604082015281906060010390fd5b8380fd5b8280fd5b90816102609103126103395790565b600080fd5b62e2892f60e21b815260209060408282015260609182519081604084015260005b82811061037c5750506000828201840152601f01601f1916010190565b6080810151848201860152810161035f565b60843590600282101561033957565b60c03660031901126103395767ffffffffffffffff6004358181116103395736602382011215610339578060040135828111610339573691016024011161033957602435908111610339576103f690369060040161032a565b5061001d61038e565b34610339576000366003190112610339576000546040516001600160a01b039091168152602090f35b903590601e1981360301821215610339570180359067ffffffffffffffff82116103395760200191813603831361033957565b1561046257565b60405162461bcd60e51b815260206004820152603a60248201527f546865207374616e64617264207061796d617374657220696e707574206d757360448201527f74206265206174206c656173742034206279746573206c6f6e670000000000006064820152608490fd5b906004116103395790600490565b909291928360041161033957831161033957600401916003190190565b6001600160e01b0319903581811693926004811061051557505050565b60040360031b82901b16169150565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff82111761055c57604052565b610524565b67ffffffffffffffff811161055c57601f01601f191660200190565b90916060828403126103395781356001600160a01b0381168103610339579260208301359260408101359067ffffffffffffffff8211610339570181601f82011215610339578035906105cf82610561565b926105dd604051948561053a565b8284526020838301011161033957816000926020809301838601378301015290565b1561060657565b60405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b2103a37b5b2b760991b6044820152606490fd5b90816020910312610339575190565b6040513d6000823e3d90fd5b1561065d57565b60405162461bcd60e51b81526020600482015260156024820152744d696e20616c6c6f77616e636520746f6f206c6f7760581b6044820152606490fd5b818102929181159184041417156106ad57565b634e487b7160e01b600052601160045260246000fd5b90816020910312610339575180151581036103395790565b3d15610706573d906106ec82610561565b916106fa604051938461053a565b82523d6000602084013e565b606090565b1561071257565b60405162461bcd60e51b815260206004820152602a60248201527f4661696c656420746f207472616e736665722066756e647320746f20746865206044820152693137b7ba3637b0b232b960b11b6064820152608490fdfea2646970667358221220b99ef07141bf7f486036e0b62c9970053bfbb59093df49b0de39c9ea0cd9b2a564736f6c63430008120033","opcodes":"PUSH1 0x80 CALLVALUE PUSH2 0x74 JUMPI PUSH1 0x1F PUSH2 0x830 CODESIZE DUP2 SWAP1 SUB SWAP2 DUP3 ADD PUSH1 0x1F NOT AND DUP4 ADD SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP4 GT DUP5 DUP5 LT OR PUSH2 0x79 JUMPI DUP1 DUP5 SWAP3 PUSH1 0x20 SWAP5 PUSH1 0x40 MSTORE DUP4 CODECOPY DUP2 ADD SUB SLT PUSH2 0x74 JUMPI MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND SWAP1 DUP2 SWAP1 SUB PUSH2 0x74 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH2 0x7A0 SWAP1 DUP2 PUSH2 0x90 DUP3 CODECOPY RETURN JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID PUSH1 0x40 PUSH1 0x80 DUP2 MSTORE PUSH1 0x4 DUP1 CALLDATASIZE LT ISZERO PUSH2 0x1F JUMPI JUMPDEST POP POP CALLDATASIZE ISZERO PUSH2 0x1D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST STOP JUMPDEST PUSH1 0x0 SWAP1 DUP2 CALLDATALOAD PUSH1 0xE0 SHR SWAP3 DUP4 PUSH4 0x38A24BC EQ PUSH2 0x5C JUMPI POP POP POP DUP1 PUSH4 0x817B17F0 EQ PUSH2 0x57 JUMPI PUSH4 0x85FA292F EQ PUSH2 0x52 JUMPI CODESIZE DUP1 PUSH2 0x10 JUMP JUMPDEST PUSH2 0x3FF JUMP JUMPDEST PUSH2 0x39D JUMP JUMPDEST PUSH1 0x60 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x326 JUMPI PUSH1 0x44 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT PUSH2 0x322 JUMPI PUSH2 0x87 SWAP1 CALLDATASIZE SWAP1 DUP5 ADD PUSH2 0x32A JUMP JUMPDEST SWAP3 PUSH2 0x220 DUP5 ADD PUSH2 0xA4 DUP5 PUSH2 0x9B DUP4 DUP9 PUSH2 0x428 JUMP JUMPDEST SWAP1 POP LT ISZERO PUSH2 0x45B JUMP JUMPDEST PUSH2 0xB7 PUSH2 0xB1 DUP3 DUP8 PUSH2 0x428 JUMP JUMPDEST SWAP1 PUSH2 0x4CD JUMP JUMPDEST PUSH4 0x25250C77 PUSH1 0xE2 SHL SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP2 PUSH2 0xD3 SWAP2 PUSH2 0x4F8 JUMP JUMPDEST AND SUB PUSH2 0x2D7 JUMPI PUSH2 0xF0 PUSH2 0xE9 PUSH2 0xF8 SWAP3 DUP8 PUSH2 0x428 JUMP JUMPDEST DUP1 SWAP2 PUSH2 0x4DB JUMP JUMPDEST DUP2 ADD SWAP1 PUSH2 0x57D JUMP JUMPDEST POP DUP3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP7 SWAP2 SWAP3 DUP8 AND SWAP1 PUSH2 0x116 SWAP1 DUP9 AND DUP3 EQ PUSH2 0x5FF JUMP JUMPDEST DUP5 MLOAD PUSH4 0x6EB1769F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH1 0x20 DUP5 DUP2 ADD CALLDATALOAD SWAP1 SWAP10 AND SWAP1 DUP2 AND DUP9 DUP4 ADD SWAP1 DUP2 MSTORE ADDRESS DUP2 DUP12 ADD MSTORE SWAP1 SWAP5 SWAP2 SWAP3 SWAP1 DUP10 SWAP1 DUP5 SWAP1 DUP2 SWAP1 PUSH1 0x40 ADD SUB DUP2 DUP5 GAS STATICCALL SWAP4 DUP5 ISZERO PUSH2 0x2D2 JUMPI DUP7 PUSH2 0x18A DUP11 SWAP3 PUSH2 0x17B PUSH1 0x1 PUSH2 0x1C6 SWAP10 DUP16 SWAP10 DUP7 SWAP2 PUSH2 0x2A5 JUMPI JUMPDEST POP LT ISZERO PUSH2 0x656 JUMP JUMPDEST PUSH1 0x60 PUSH1 0xA0 DUP3 ADD CALLDATALOAD SWAP2 ADD CALLDATALOAD PUSH2 0x69A JUMP JUMPDEST DUP10 MLOAD PUSH4 0x23B872DD PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP9 AND SWAP3 DUP9 ADD SWAP3 DUP4 MSTORE ADDRESS PUSH1 0x20 DUP5 ADD MSTORE PUSH1 0x40 DUP4 ADD SWAP5 SWAP1 SWAP5 MSTORE SWAP3 SWAP6 SWAP5 DUP6 SWAP4 DUP5 SWAP3 SWAP1 SWAP2 DUP4 SWAP2 PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST SUB SWAP3 GAS CALL SWAP1 DUP2 PUSH2 0x278 JUMPI JUMPDEST POP PUSH2 0x24E JUMPI POP POP PUSH2 0x1E0 PUSH2 0x6DB JUMP JUMPDEST DUP1 MLOAD SWAP4 DUP4 DUP6 GT PUSH2 0x248 JUMPI DUP3 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 DUP2 DUP7 ADD DUP2 DUP2 MSTORE PUSH1 0x2A SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x4661696C656420746F207472616E7366657246726F6D2066726F6D2075736572 PUSH1 0x40 DUP3 ADD MSTORE PUSH10 0x1CC9C81858D8DBDD5B9D PUSH1 0xB2 SHL PUSH1 0x60 DUP3 ADD MSTORE DUP2 SWAP1 PUSH1 0x80 ADD SUB SWAP1 REVERT JUMPDEST DUP5 SWAP3 POP ADD REVERT JUMPDEST SWAP1 DUP1 DUP1 DUP1 PUSH2 0x269 SWAP5 PUSH2 0x8001 GAS CALL PUSH2 0x263 PUSH2 0x6DB JUMP JUMPDEST POP PUSH2 0x70B JUMP JUMPDEST MLOAD DUP1 PUSH2 0x274 DUP2 PUSH2 0x33E JUMP JUMPDEST SUB SWAP1 RETURN JUMPDEST PUSH2 0x297 SWAP1 DUP8 RETURNDATASIZE DUP10 GT PUSH2 0x29E JUMPI JUMPDEST PUSH2 0x28F DUP2 DUP4 PUSH2 0x53A JUMP JUMPDEST DUP2 ADD SWAP1 PUSH2 0x6C3 JUMP JUMPDEST POP DUP7 PUSH2 0x1D1 JUMP JUMPDEST POP RETURNDATASIZE PUSH2 0x285 JUMP JUMPDEST PUSH2 0x2C5 SWAP2 POP DUP11 RETURNDATASIZE DUP13 GT PUSH2 0x2CB JUMPI JUMPDEST PUSH2 0x2BD DUP2 DUP4 PUSH2 0x53A JUMP JUMPDEST DUP2 ADD SWAP1 PUSH2 0x63B JUMP JUMPDEST CODESIZE PUSH2 0x173 JUMP JUMPDEST POP RETURNDATASIZE PUSH2 0x2B3 JUMP JUMPDEST PUSH2 0x64A JUMP JUMPDEST DUP3 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 DUP2 DUP7 ADD DUP2 DUP2 MSTORE PUSH1 0x1A SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x556E737570706F72746564207061796D617374657220666C6F77000000000000 PUSH1 0x40 DUP3 ADD MSTORE DUP2 SWAP1 PUSH1 0x60 ADD SUB SWAP1 REVERT JUMPDEST DUP4 DUP1 REVERT JUMPDEST DUP3 DUP1 REVERT JUMPDEST SWAP1 DUP2 PUSH2 0x260 SWAP2 SUB SLT PUSH2 0x339 JUMPI SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0xE2892F PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x20 SWAP1 PUSH1 0x40 DUP3 DUP3 ADD MSTORE PUSH1 0x60 SWAP2 DUP3 MLOAD SWAP1 DUP2 PUSH1 0x40 DUP5 ADD MSTORE PUSH1 0x0 JUMPDEST DUP3 DUP2 LT PUSH2 0x37C JUMPI POP POP PUSH1 0x0 DUP3 DUP3 ADD DUP5 ADD MSTORE PUSH1 0x1F ADD PUSH1 0x1F NOT AND ADD ADD SWAP1 JUMP JUMPDEST PUSH1 0x80 DUP2 ADD MLOAD DUP5 DUP3 ADD DUP7 ADD MSTORE DUP2 ADD PUSH2 0x35F JUMP JUMPDEST PUSH1 0x84 CALLDATALOAD SWAP1 PUSH1 0x2 DUP3 LT ISZERO PUSH2 0x339 JUMPI JUMP JUMPDEST PUSH1 0xC0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x339 JUMPI PUSH8 0xFFFFFFFFFFFFFFFF PUSH1 0x4 CALLDATALOAD DUP2 DUP2 GT PUSH2 0x339 JUMPI CALLDATASIZE PUSH1 0x23 DUP3 ADD SLT ISZERO PUSH2 0x339 JUMPI DUP1 PUSH1 0x4 ADD CALLDATALOAD DUP3 DUP2 GT PUSH2 0x339 JUMPI CALLDATASIZE SWAP2 ADD PUSH1 0x24 ADD GT PUSH2 0x339 JUMPI PUSH1 0x24 CALLDATALOAD SWAP1 DUP2 GT PUSH2 0x339 JUMPI PUSH2 0x3F6 SWAP1 CALLDATASIZE SWAP1 PUSH1 0x4 ADD PUSH2 0x32A JUMP JUMPDEST POP PUSH2 0x1D PUSH2 0x38E JUMP JUMPDEST CALLVALUE PUSH2 0x339 JUMPI PUSH1 0x0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x339 JUMPI PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 SWAP1 RETURN JUMPDEST SWAP1 CALLDATALOAD SWAP1 PUSH1 0x1E NOT DUP2 CALLDATASIZE SUB ADD DUP3 SLT ISZERO PUSH2 0x339 JUMPI ADD DUP1 CALLDATALOAD SWAP1 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT PUSH2 0x339 JUMPI PUSH1 0x20 ADD SWAP2 DUP2 CALLDATASIZE SUB DUP4 SGT PUSH2 0x339 JUMPI JUMP JUMPDEST ISZERO PUSH2 0x462 JUMPI JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x546865207374616E64617264207061796D617374657220696E707574206D7573 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x74206265206174206C656173742034206279746573206C6F6E67000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST SWAP1 PUSH1 0x4 GT PUSH2 0x339 JUMPI SWAP1 PUSH1 0x4 SWAP1 JUMP JUMPDEST SWAP1 SWAP3 SWAP2 SWAP3 DUP4 PUSH1 0x4 GT PUSH2 0x339 JUMPI DUP4 GT PUSH2 0x339 JUMPI PUSH1 0x4 ADD SWAP2 PUSH1 0x3 NOT ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 CALLDATALOAD DUP2 DUP2 AND SWAP4 SWAP3 PUSH1 0x4 DUP2 LT PUSH2 0x515 JUMPI POP POP POP JUMP JUMPDEST PUSH1 0x4 SUB PUSH1 0x3 SHL DUP3 SWAP1 SHL AND AND SWAP2 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x1F DUP1 NOT SWAP2 ADD AND DUP2 ADD SWAP1 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR PUSH2 0x55C JUMPI PUSH1 0x40 MSTORE JUMP JUMPDEST PUSH2 0x524 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT PUSH2 0x55C JUMPI PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST SWAP1 SWAP2 PUSH1 0x60 DUP3 DUP5 SUB SLT PUSH2 0x339 JUMPI DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 SUB PUSH2 0x339 JUMPI SWAP3 PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP3 PUSH1 0x40 DUP2 ADD CALLDATALOAD SWAP1 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT PUSH2 0x339 JUMPI ADD DUP2 PUSH1 0x1F DUP3 ADD SLT ISZERO PUSH2 0x339 JUMPI DUP1 CALLDATALOAD SWAP1 PUSH2 0x5CF DUP3 PUSH2 0x561 JUMP JUMPDEST SWAP3 PUSH2 0x5DD PUSH1 0x40 MLOAD SWAP5 DUP6 PUSH2 0x53A JUMP JUMPDEST DUP3 DUP5 MSTORE PUSH1 0x20 DUP4 DUP4 ADD ADD GT PUSH2 0x339 JUMPI DUP2 PUSH1 0x0 SWAP3 PUSH1 0x20 DUP1 SWAP4 ADD DUP4 DUP7 ADD CALLDATACOPY DUP4 ADD ADD MSTORE SWAP1 JUMP JUMPDEST ISZERO PUSH2 0x606 JUMPI JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH13 0x24B73B30B634B2103A37B5B2B7 PUSH1 0x99 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 SWAP1 REVERT JUMPDEST SWAP1 DUP2 PUSH1 0x20 SWAP2 SUB SLT PUSH2 0x339 JUMPI MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY RETURNDATASIZE SWAP1 REVERT JUMPDEST ISZERO PUSH2 0x65D JUMPI JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH21 0x4D696E20616C6C6F77616E636520746F6F206C6F77 PUSH1 0x58 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 SWAP1 REVERT JUMPDEST DUP2 DUP2 MUL SWAP3 SWAP2 DUP2 ISZERO SWAP2 DUP5 DIV EQ OR ISZERO PUSH2 0x6AD JUMPI JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 DUP2 PUSH1 0x20 SWAP2 SUB SLT PUSH2 0x339 JUMPI MLOAD DUP1 ISZERO ISZERO DUP2 SUB PUSH2 0x339 JUMPI SWAP1 JUMP JUMPDEST RETURNDATASIZE ISZERO PUSH2 0x706 JUMPI RETURNDATASIZE SWAP1 PUSH2 0x6EC DUP3 PUSH2 0x561 JUMP JUMPDEST SWAP2 PUSH2 0x6FA PUSH1 0x40 MLOAD SWAP4 DUP5 PUSH2 0x53A JUMP JUMPDEST DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY JUMP JUMPDEST PUSH1 0x60 SWAP1 JUMP JUMPDEST ISZERO PUSH2 0x712 JUMPI JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4661696C656420746F207472616E736665722066756E647320746F2074686520 PUSH1 0x44 DUP3 ADD MSTORE PUSH10 0x3137B7BA3637B0B232B9 PUSH1 0xB1 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB9 SWAP15 CREATE PUSH18 0x41BF7F486036E0B62C9970053BFBB59093DF 0x49 0xB0 0xDE CODECOPY 0xC9 0xEA 0xC 0xD9 0xB2 0xA5 PUSH5 0x736F6C6343 STOP ADDMOD SLT STOP CALLER ","sourceMap":"586:3587:48:-:0;;;;;;;;;;;;;-1:-1:-1;;586:3587:48;;;;-1:-1:-1;;;;;586:3587:48;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;586:3587:48;;;;;;;;-1:-1:-1;586:3587:48;;-1:-1:-1;;;;;;586:3587:48;;;;;;;;;;;;;;;;;-1:-1:-1;586:3587:48;;;;;;-1:-1:-1;586:3587:48;;;;;-1:-1:-1;586:3587:48"},"deployedBytecode":{"functionDebugData":{"abi_decode_address_payablet_uint256t_bytes":{"entryPoint":1405,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_bool_fromMemory":{"entryPoint":1731,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_enum_ExecutionResult":{"entryPoint":910,"id":null,"parameterSlots":0,"returnSlots":1},"abi_decode_struct_Transaction_calldata":{"entryPoint":810,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_uint256_fromMemory":{"entryPoint":1595,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_address_address":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_address_address_uint256":{"entryPoint":null,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_bytes4_bytes":{"entryPoint":830,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_stringliteral_bebb":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_stringliteral_f918":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"access_calldata_tail_bytes_calldata":{"entryPoint":1064,"id":null,"parameterSlots":2,"returnSlots":2},"array_allocation_size_bytes":{"entryPoint":1377,"id":null,"parameterSlots":1,"returnSlots":1},"calldata_array_index_range_access_bytes_calldata":{"entryPoint":1243,"id":null,"parameterSlots":3,"returnSlots":2},"calldata_array_index_range_access_bytes_calldata_2907":{"entryPoint":1229,"id":null,"parameterSlots":2,"returnSlots":2},"checked_mul_uint256":{"entryPoint":1690,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_address":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"convert_bytes_to_fixedbytes_from_bytes_calldata_to_bytes4":{"entryPoint":1272,"id":null,"parameterSlots":2,"returnSlots":1},"external_fun_allowedToken":{"entryPoint":1023,"id":null,"parameterSlots":0,"returnSlots":0},"external_fun_postTransaction":{"entryPoint":925,"id":null,"parameterSlots":0,"returnSlots":0},"extract_returndata":{"entryPoint":1755,"id":null,"parameterSlots":0,"returnSlots":1},"finalize_allocation":{"entryPoint":1338,"id":null,"parameterSlots":2,"returnSlots":0},"panic_error_0x41":{"entryPoint":1316,"id":null,"parameterSlots":0,"returnSlots":0},"require_helper_stringliteral_18cf":{"entryPoint":1622,"id":null,"parameterSlots":1,"returnSlots":0},"require_helper_stringliteral_5e70":{"entryPoint":1535,"id":null,"parameterSlots":1,"returnSlots":0},"require_helper_stringliteral_8b79":{"entryPoint":1803,"id":null,"parameterSlots":1,"returnSlots":0},"require_helper_stringliteral_c1e1":{"entryPoint":1115,"id":null,"parameterSlots":1,"returnSlots":0},"revert_forward":{"entryPoint":1610,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"60406080815260048036101561001f575b5050361561001d57600080fd5b005b600090813560e01c928363038a24bc1461005c575050508063817b17f014610057576385fa292f14610052573880610010565b6103ff565b61039d565b60603660031901126103265760443567ffffffffffffffff811161032257610087903690840161032a565b9261022084016100a48461009b8388610428565b9050101561045b565b6100b76100b18287610428565b906104cd565b6325250c7760e21b916001600160e01b0319916100d3916104f8565b16036102d7576100f06100e96100f89287610428565b80916104db565b81019061057d565b5082546001600160a01b0396919287169061011690881682146105ff565b8451636eb1769f60e11b81526001600160a01b0360208481013590991690811688830190815230818b015290949192908990849081906040010381845afa9384156102d2578661018a8a9261017b60016101c6998f9986916102a5575b501015610656565b606060a082013591013561069a565b89516323b872dd60e01b81526001600160a01b039098169288019283523060208401526040830194909452929594859384929091839160600190565b03925af19081610278575b5061024e5750506101e06106db565b80519383851161024857825162461bcd60e51b81526020818601818152602a918101919091527f4661696c656420746f207472616e7366657246726f6d2066726f6d20757365726040820152691cc9c81858d8dbdd5b9d60b21b606082015281906080010390fd5b84925001fd5b90808080610269946180015af16102636106db565b5061070b565b51806102748161033e565b0390f35b61029790873d891161029e575b61028f818361053a565b8101906106c3565b50866101d1565b503d610285565b6102c591508a3d8c116102cb575b6102bd818361053a565b81019061063b565b38610173565b503d6102b3565b61064a565b825162461bcd60e51b81526020818601818152601a918101919091527f556e737570706f72746564207061796d617374657220666c6f77000000000000604082015281906060010390fd5b8380fd5b8280fd5b90816102609103126103395790565b600080fd5b62e2892f60e21b815260209060408282015260609182519081604084015260005b82811061037c5750506000828201840152601f01601f1916010190565b6080810151848201860152810161035f565b60843590600282101561033957565b60c03660031901126103395767ffffffffffffffff6004358181116103395736602382011215610339578060040135828111610339573691016024011161033957602435908111610339576103f690369060040161032a565b5061001d61038e565b34610339576000366003190112610339576000546040516001600160a01b039091168152602090f35b903590601e1981360301821215610339570180359067ffffffffffffffff82116103395760200191813603831361033957565b1561046257565b60405162461bcd60e51b815260206004820152603a60248201527f546865207374616e64617264207061796d617374657220696e707574206d757360448201527f74206265206174206c656173742034206279746573206c6f6e670000000000006064820152608490fd5b906004116103395790600490565b909291928360041161033957831161033957600401916003190190565b6001600160e01b0319903581811693926004811061051557505050565b60040360031b82901b16169150565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff82111761055c57604052565b610524565b67ffffffffffffffff811161055c57601f01601f191660200190565b90916060828403126103395781356001600160a01b0381168103610339579260208301359260408101359067ffffffffffffffff8211610339570181601f82011215610339578035906105cf82610561565b926105dd604051948561053a565b8284526020838301011161033957816000926020809301838601378301015290565b1561060657565b60405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b2103a37b5b2b760991b6044820152606490fd5b90816020910312610339575190565b6040513d6000823e3d90fd5b1561065d57565b60405162461bcd60e51b81526020600482015260156024820152744d696e20616c6c6f77616e636520746f6f206c6f7760581b6044820152606490fd5b818102929181159184041417156106ad57565b634e487b7160e01b600052601160045260246000fd5b90816020910312610339575180151581036103395790565b3d15610706573d906106ec82610561565b916106fa604051938461053a565b82523d6000602084013e565b606090565b1561071257565b60405162461bcd60e51b815260206004820152602a60248201527f4661696c656420746f207472616e736665722066756e647320746f20746865206044820152693137b7ba3637b0b232b960b11b6064820152608490fdfea2646970667358221220b99ef07141bf7f486036e0b62c9970053bfbb59093df49b0de39c9ea0cd9b2a564736f6c63430008120033","opcodes":"PUSH1 0x40 PUSH1 0x80 DUP2 MSTORE PUSH1 0x4 DUP1 CALLDATASIZE LT ISZERO PUSH2 0x1F JUMPI JUMPDEST POP POP CALLDATASIZE ISZERO PUSH2 0x1D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST STOP JUMPDEST PUSH1 0x0 SWAP1 DUP2 CALLDATALOAD PUSH1 0xE0 SHR SWAP3 DUP4 PUSH4 0x38A24BC EQ PUSH2 0x5C JUMPI POP POP POP DUP1 PUSH4 0x817B17F0 EQ PUSH2 0x57 JUMPI PUSH4 0x85FA292F EQ PUSH2 0x52 JUMPI CODESIZE DUP1 PUSH2 0x10 JUMP JUMPDEST PUSH2 0x3FF JUMP JUMPDEST PUSH2 0x39D JUMP JUMPDEST PUSH1 0x60 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x326 JUMPI PUSH1 0x44 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT PUSH2 0x322 JUMPI PUSH2 0x87 SWAP1 CALLDATASIZE SWAP1 DUP5 ADD PUSH2 0x32A JUMP JUMPDEST SWAP3 PUSH2 0x220 DUP5 ADD PUSH2 0xA4 DUP5 PUSH2 0x9B DUP4 DUP9 PUSH2 0x428 JUMP JUMPDEST SWAP1 POP LT ISZERO PUSH2 0x45B JUMP JUMPDEST PUSH2 0xB7 PUSH2 0xB1 DUP3 DUP8 PUSH2 0x428 JUMP JUMPDEST SWAP1 PUSH2 0x4CD JUMP JUMPDEST PUSH4 0x25250C77 PUSH1 0xE2 SHL SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP2 PUSH2 0xD3 SWAP2 PUSH2 0x4F8 JUMP JUMPDEST AND SUB PUSH2 0x2D7 JUMPI PUSH2 0xF0 PUSH2 0xE9 PUSH2 0xF8 SWAP3 DUP8 PUSH2 0x428 JUMP JUMPDEST DUP1 SWAP2 PUSH2 0x4DB JUMP JUMPDEST DUP2 ADD SWAP1 PUSH2 0x57D JUMP JUMPDEST POP DUP3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP7 SWAP2 SWAP3 DUP8 AND SWAP1 PUSH2 0x116 SWAP1 DUP9 AND DUP3 EQ PUSH2 0x5FF JUMP JUMPDEST DUP5 MLOAD PUSH4 0x6EB1769F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH1 0x20 DUP5 DUP2 ADD CALLDATALOAD SWAP1 SWAP10 AND SWAP1 DUP2 AND DUP9 DUP4 ADD SWAP1 DUP2 MSTORE ADDRESS DUP2 DUP12 ADD MSTORE SWAP1 SWAP5 SWAP2 SWAP3 SWAP1 DUP10 SWAP1 DUP5 SWAP1 DUP2 SWAP1 PUSH1 0x40 ADD SUB DUP2 DUP5 GAS STATICCALL SWAP4 DUP5 ISZERO PUSH2 0x2D2 JUMPI DUP7 PUSH2 0x18A DUP11 SWAP3 PUSH2 0x17B PUSH1 0x1 PUSH2 0x1C6 SWAP10 DUP16 SWAP10 DUP7 SWAP2 PUSH2 0x2A5 JUMPI JUMPDEST POP LT ISZERO PUSH2 0x656 JUMP JUMPDEST PUSH1 0x60 PUSH1 0xA0 DUP3 ADD CALLDATALOAD SWAP2 ADD CALLDATALOAD PUSH2 0x69A JUMP JUMPDEST DUP10 MLOAD PUSH4 0x23B872DD PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP9 AND SWAP3 DUP9 ADD SWAP3 DUP4 MSTORE ADDRESS PUSH1 0x20 DUP5 ADD MSTORE PUSH1 0x40 DUP4 ADD SWAP5 SWAP1 SWAP5 MSTORE SWAP3 SWAP6 SWAP5 DUP6 SWAP4 DUP5 SWAP3 SWAP1 SWAP2 DUP4 SWAP2 PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST SUB SWAP3 GAS CALL SWAP1 DUP2 PUSH2 0x278 JUMPI JUMPDEST POP PUSH2 0x24E JUMPI POP POP PUSH2 0x1E0 PUSH2 0x6DB JUMP JUMPDEST DUP1 MLOAD SWAP4 DUP4 DUP6 GT PUSH2 0x248 JUMPI DUP3 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 DUP2 DUP7 ADD DUP2 DUP2 MSTORE PUSH1 0x2A SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x4661696C656420746F207472616E7366657246726F6D2066726F6D2075736572 PUSH1 0x40 DUP3 ADD MSTORE PUSH10 0x1CC9C81858D8DBDD5B9D PUSH1 0xB2 SHL PUSH1 0x60 DUP3 ADD MSTORE DUP2 SWAP1 PUSH1 0x80 ADD SUB SWAP1 REVERT JUMPDEST DUP5 SWAP3 POP ADD REVERT JUMPDEST SWAP1 DUP1 DUP1 DUP1 PUSH2 0x269 SWAP5 PUSH2 0x8001 GAS CALL PUSH2 0x263 PUSH2 0x6DB JUMP JUMPDEST POP PUSH2 0x70B JUMP JUMPDEST MLOAD DUP1 PUSH2 0x274 DUP2 PUSH2 0x33E JUMP JUMPDEST SUB SWAP1 RETURN JUMPDEST PUSH2 0x297 SWAP1 DUP8 RETURNDATASIZE DUP10 GT PUSH2 0x29E JUMPI JUMPDEST PUSH2 0x28F DUP2 DUP4 PUSH2 0x53A JUMP JUMPDEST DUP2 ADD SWAP1 PUSH2 0x6C3 JUMP JUMPDEST POP DUP7 PUSH2 0x1D1 JUMP JUMPDEST POP RETURNDATASIZE PUSH2 0x285 JUMP JUMPDEST PUSH2 0x2C5 SWAP2 POP DUP11 RETURNDATASIZE DUP13 GT PUSH2 0x2CB JUMPI JUMPDEST PUSH2 0x2BD DUP2 DUP4 PUSH2 0x53A JUMP JUMPDEST DUP2 ADD SWAP1 PUSH2 0x63B JUMP JUMPDEST CODESIZE PUSH2 0x173 JUMP JUMPDEST POP RETURNDATASIZE PUSH2 0x2B3 JUMP JUMPDEST PUSH2 0x64A JUMP JUMPDEST DUP3 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 DUP2 DUP7 ADD DUP2 DUP2 MSTORE PUSH1 0x1A SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x556E737570706F72746564207061796D617374657220666C6F77000000000000 PUSH1 0x40 DUP3 ADD MSTORE DUP2 SWAP1 PUSH1 0x60 ADD SUB SWAP1 REVERT JUMPDEST DUP4 DUP1 REVERT JUMPDEST DUP3 DUP1 REVERT JUMPDEST SWAP1 DUP2 PUSH2 0x260 SWAP2 SUB SLT PUSH2 0x339 JUMPI SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0xE2892F PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x20 SWAP1 PUSH1 0x40 DUP3 DUP3 ADD MSTORE PUSH1 0x60 SWAP2 DUP3 MLOAD SWAP1 DUP2 PUSH1 0x40 DUP5 ADD MSTORE PUSH1 0x0 JUMPDEST DUP3 DUP2 LT PUSH2 0x37C JUMPI POP POP PUSH1 0x0 DUP3 DUP3 ADD DUP5 ADD MSTORE PUSH1 0x1F ADD PUSH1 0x1F NOT AND ADD ADD SWAP1 JUMP JUMPDEST PUSH1 0x80 DUP2 ADD MLOAD DUP5 DUP3 ADD DUP7 ADD MSTORE DUP2 ADD PUSH2 0x35F JUMP JUMPDEST PUSH1 0x84 CALLDATALOAD SWAP1 PUSH1 0x2 DUP3 LT ISZERO PUSH2 0x339 JUMPI JUMP JUMPDEST PUSH1 0xC0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x339 JUMPI PUSH8 0xFFFFFFFFFFFFFFFF PUSH1 0x4 CALLDATALOAD DUP2 DUP2 GT PUSH2 0x339 JUMPI CALLDATASIZE PUSH1 0x23 DUP3 ADD SLT ISZERO PUSH2 0x339 JUMPI DUP1 PUSH1 0x4 ADD CALLDATALOAD DUP3 DUP2 GT PUSH2 0x339 JUMPI CALLDATASIZE SWAP2 ADD PUSH1 0x24 ADD GT PUSH2 0x339 JUMPI PUSH1 0x24 CALLDATALOAD SWAP1 DUP2 GT PUSH2 0x339 JUMPI PUSH2 0x3F6 SWAP1 CALLDATASIZE SWAP1 PUSH1 0x4 ADD PUSH2 0x32A JUMP JUMPDEST POP PUSH2 0x1D PUSH2 0x38E JUMP JUMPDEST CALLVALUE PUSH2 0x339 JUMPI PUSH1 0x0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x339 JUMPI PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 SWAP1 RETURN JUMPDEST SWAP1 CALLDATALOAD SWAP1 PUSH1 0x1E NOT DUP2 CALLDATASIZE SUB ADD DUP3 SLT ISZERO PUSH2 0x339 JUMPI ADD DUP1 CALLDATALOAD SWAP1 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT PUSH2 0x339 JUMPI PUSH1 0x20 ADD SWAP2 DUP2 CALLDATASIZE SUB DUP4 SGT PUSH2 0x339 JUMPI JUMP JUMPDEST ISZERO PUSH2 0x462 JUMPI JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x546865207374616E64617264207061796D617374657220696E707574206D7573 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x74206265206174206C656173742034206279746573206C6F6E67000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT JUMPDEST SWAP1 PUSH1 0x4 GT PUSH2 0x339 JUMPI SWAP1 PUSH1 0x4 SWAP1 JUMP JUMPDEST SWAP1 SWAP3 SWAP2 SWAP3 DUP4 PUSH1 0x4 GT PUSH2 0x339 JUMPI DUP4 GT PUSH2 0x339 JUMPI PUSH1 0x4 ADD SWAP2 PUSH1 0x3 NOT ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 CALLDATALOAD DUP2 DUP2 AND SWAP4 SWAP3 PUSH1 0x4 DUP2 LT PUSH2 0x515 JUMPI POP POP POP JUMP JUMPDEST PUSH1 0x4 SUB PUSH1 0x3 SHL DUP3 SWAP1 SHL AND AND SWAP2 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x1F DUP1 NOT SWAP2 ADD AND DUP2 ADD SWAP1 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR PUSH2 0x55C JUMPI PUSH1 0x40 MSTORE JUMP JUMPDEST PUSH2 0x524 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT PUSH2 0x55C JUMPI PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST SWAP1 SWAP2 PUSH1 0x60 DUP3 DUP5 SUB SLT PUSH2 0x339 JUMPI DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 SUB PUSH2 0x339 JUMPI SWAP3 PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP3 PUSH1 0x40 DUP2 ADD CALLDATALOAD SWAP1 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT PUSH2 0x339 JUMPI ADD DUP2 PUSH1 0x1F DUP3 ADD SLT ISZERO PUSH2 0x339 JUMPI DUP1 CALLDATALOAD SWAP1 PUSH2 0x5CF DUP3 PUSH2 0x561 JUMP JUMPDEST SWAP3 PUSH2 0x5DD PUSH1 0x40 MLOAD SWAP5 DUP6 PUSH2 0x53A JUMP JUMPDEST DUP3 DUP5 MSTORE PUSH1 0x20 DUP4 DUP4 ADD ADD GT PUSH2 0x339 JUMPI DUP2 PUSH1 0x0 SWAP3 PUSH1 0x20 DUP1 SWAP4 ADD DUP4 DUP7 ADD CALLDATACOPY DUP4 ADD ADD MSTORE SWAP1 JUMP JUMPDEST ISZERO PUSH2 0x606 JUMPI JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH13 0x24B73B30B634B2103A37B5B2B7 PUSH1 0x99 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 SWAP1 REVERT JUMPDEST SWAP1 DUP2 PUSH1 0x20 SWAP2 SUB SLT PUSH2 0x339 JUMPI MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY RETURNDATASIZE SWAP1 REVERT JUMPDEST ISZERO PUSH2 0x65D JUMPI JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH21 0x4D696E20616C6C6F77616E636520746F6F206C6F77 PUSH1 0x58 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 SWAP1 REVERT JUMPDEST DUP2 DUP2 MUL SWAP3 SWAP2 DUP2 ISZERO SWAP2 DUP5 DIV EQ OR ISZERO PUSH2 0x6AD JUMPI JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 DUP2 PUSH1 0x20 SWAP2 SUB SLT PUSH2 0x339 JUMPI MLOAD DUP1 ISZERO ISZERO DUP2 SUB PUSH2 0x339 JUMPI SWAP1 JUMP JUMPDEST RETURNDATASIZE ISZERO PUSH2 0x706 JUMPI RETURNDATASIZE SWAP1 PUSH2 0x6EC DUP3 PUSH2 0x561 JUMP JUMPDEST SWAP2 PUSH2 0x6FA PUSH1 0x40 MLOAD SWAP4 DUP5 PUSH2 0x53A JUMP JUMPDEST DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY JUMP JUMPDEST PUSH1 0x60 SWAP1 JUMP JUMPDEST ISZERO PUSH2 0x712 JUMPI JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4661696C656420746F207472616E736665722066756E647320746F2074686520 PUSH1 0x44 DUP3 ADD MSTORE PUSH10 0x3137B7BA3637B0B232B9 PUSH1 0xB1 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 SWAP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB9 SWAP15 CREATE PUSH18 0x41BF7F486036E0B62C9970053BFBB59093DF 0x49 0xB0 0xDE CODECOPY 0xC9 0xEA 0xC 0xD9 0xB2 0xA5 PUSH5 0x736F6C6343 STOP ADDMOD SLT STOP CALLER ","sourceMap":"586:3587:48:-:0;;;;;;;;;;;-1:-1:-1;586:3587:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;586:3587:48;;;;;;;;;;;;;;;;;;:::i;:::-;1364:27;;;;1343:144;1364:27;;;;;:::i;:::-;:39;;;;1343:144;:::i;:::-;1550:32;:27;;;;:::i;:::-;:32;;:::i;:::-;-1:-1:-1;;;1632:37:48;-1:-1:-1;;;;;;586:3587:48;1530:62;;;:::i;:::-;586:3587;1606:63;1632:37;;1910:31;:27;1882:116;1910:27;;;:::i;:::-;:31;;;:::i;:::-;1882:116;;;;:::i;:::-;-1:-1:-1;207:57:11;;-1:-1:-1;;;;;586:3587:48;;;;;;2063:47;;586:3587;;2071:21;;2063:47;:::i;:::-;586:3587;;-1:-1:-1;;;2344:95:48;;-1:-1:-1;;;;;586:3587:48;2232:17;;;207:57:11;586:3587:48;;;;;;2344:95;;;586:3587;;;2296:4;207:57:11;;;586:3587:48;;;;;207:57:11;586:3587:48;;;;;;207:57:11;;2344:95:48;;;;;;;;;;;2797:61;2344:95;;2453:122;586:3587;2889:60;2344:95;;;;;;;1602:2238;2478:42;;;2453:122;:::i;:::-;586:3587;;2833:25;;207:57:11;2797:21:48;;207:57:11;2797:61:48;:::i;:::-;586:3587;;-1:-1:-1;;;2889:60:48;;-1:-1:-1;;;;;586:3587:48;;;2889:60;;;586:3587;;;2296:4;668:1;;;586:3587;668:1;;;;;;;586:3587;;;;;;;-1:-1:-1;;586:3587:48;;668:1;;;;2889:60;;;;;;;;;1602:2238;-1:-1:-1;2873:603:48;;2965:511;;;;:::i;:::-;586:3587;;;3188:24;;;586:3587;;;;-1:-1:-1;;;3236:52:48;;668:1;3236:52;;;668:1;;;;;;;586:3587;;;;668:1;586:3587;;;668:1;-1:-1:-1;;;668:1:48;;;;586:3587;;668:1;;3236:52;;;3184:278;3335:109;;;;;2873:603;;;;;3700:62;2873:603;682:6:1;3597:89:48;;;;:::i;:::-;;3700:62;:::i;:::-;586:3587;;;;;:::i;:::-;;;;2889:60;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;2344:95;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;:::i;1602:2238::-;586:3587;;-1:-1:-1;;;3793:36:48;;207:57:11;3793:36:48;;;207:57:11;;;;;;;586:3587:48;;;;207:57:11;586:3587:48;;;207:57:11;586:3587:48;;207:57:11;;3236:52:48;;;586:3587;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;207:57:11;;;586:3587:48;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;586:3587:48;;;;;;;;;-1:-1:-1;;586:3587:48;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;586:3587:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;-1:-1:-1;;586:3587:48;;;;;;;;-1:-1:-1;;;;;586:3587:48;;;;;;;;207:57:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;:::o;:::-;586:3587:48;;-1:-1:-1;;;207:57:11;;;;;;;;;;;586:3587:48;207:57:11;586:3587:48;;;207:57:11;;;;;;;;;;;586:3587:48;207:57:11;;;;586:3587:48;207:57:11;:::o;:::-;;;;;;586:3587:48;207:57:11;;;;;;;586:3587:48;207:57:11;;-1:-1:-1;;207:57:11;;:::o;:::-;-1:-1:-1;;;;;;207:57:11;;586:3587:48;;;;207:57:11;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;207:57:11:o;:::-;;;;;;;;;;;;;;586:3587:48;;;;;;207:57:11;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;586:3587:48;;-1:-1:-1;;586:3587:48;207:57:11;;;:::o;:::-;;;;;;;;;;;;-1:-1:-1;;;;;586:3587:48;;207:57:11;;;;;;;;586:3587:48;207:57:11;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;586:3587:48;207:57:11;;586:3587:48;207:57:11;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;207:57:11;;;;;;;;;;;;;;:::o;:::-;;;;:::o;:::-;586:3587:48;;-1:-1:-1;;;207:57:11;;;;;;;;;;;586:3587:48;-1:-1:-1;;;586:3587:48;;;207:57:11;;;;;;;;;;;;;;;:::o;:::-;586:3587:48;;207:57:11;;;;;;;668:1:48;;;;:::o;:::-;586:3587;;-1:-1:-1;;;668:1:48;;;;;;;;;;;586:3587;-1:-1:-1;;;586:3587:48;;;668:1;;;;;;;;;;;;;;;;;;;;:::o;:::-;207:57:11;;;668:1:48;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::i;:::-;586:3587;207:57:11;586:3587:48;;207:57:11;;;:::i;:::-;668:1:48;;;-1:-1:-1;668:1:48;;;;:::o;:::-;586:3587;668:1;:::o;1382:48:1:-;;;;:::o;:::-;586:3587:48;;-1:-1:-1;;;1382:48:1;;;;;;;;;;;586:3587:48;1382:48:1;586:3587:48;;;1382:48:1;-1:-1:-1;;;1382:48:1;;;;;;"},"methodIdentifiers":{"allowedToken()":"85fa292f","postTransaction(bytes,(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256[4],bytes,bytes,bytes32[],bytes,bytes),bytes32,bytes32,uint8,uint256)":"817b17f0","validateAndPayForPaymasterTransaction(bytes32,bytes32,(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256[4],bytes,bytes,bytes32[],bytes,bytes))":"038a24bc"}},"metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_erc20\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"allowedToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_context\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"txType\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"from\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"to\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasPerPubdataByteLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPriorityFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymaster\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256[4]\",\"name\":\"reserved\",\"type\":\"uint256[4]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"factoryDeps\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes\",\"name\":\"paymasterInput\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"reservedDynamic\",\"type\":\"bytes\"}],\"internalType\":\"struct Transaction\",\"name\":\"_transaction\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"enum ExecutionResult\",\"name\":\"_txResult\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"_maxRefundedGas\",\"type\":\"uint256\"}],\"name\":\"postTransaction\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"txType\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"from\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"to\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasPerPubdataByteLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPriorityFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymaster\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256[4]\",\"name\":\"reserved\",\"type\":\"uint256[4]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"factoryDeps\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes\",\"name\":\"paymasterInput\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"reservedDynamic\",\"type\":\"bytes\"}],\"internalType\":\"struct Transaction\",\"name\":\"_transaction\",\"type\":\"tuple\"}],\"name\":\"validateAndPayForPaymasterTransaction\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"magic\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"context\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/MyPaymaster.sol\":\"MyPaymaster\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@matterlabs/zksync-contracts/l2/system-contracts/BootloaderUtilities.sol\":{\"keccak256\":\"0xc41e925966405a28c4eb0e2469a29eadd62754859fe61166fda0ceac5610c8f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6781f926f24839f6d0f5bf5927de8a7ddcf36d7b5a047faa53d530022ecf5df\",\"dweb:/ipfs/QmRtScb3y57Ygy9xctaa448ZkRA7ouaJfxhBwdKLRN6a3z\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/Constants.sol\":{\"keccak256\":\"0x29a24f62d17d95b1f8d2d79505d056e1e99d64c1d5725a4b46fbe91a965b0c60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b56691f9a23d9b0f17ea5c6e1dcce28b780a461c34eb9340f74621dad25c5468\",\"dweb:/ipfs/QmXVJTkTBWfuiGhwvxP9Ldv7oDmAd66ruLhoQemE15F6KS\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IAccountCodeStorage.sol\":{\"keccak256\":\"0xc75d1bd8895832daeb7d59734cf0afcc47628c2c343b95cc5359d6975dc3ccaa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5be4ef8c557cd5216127b14b53b881a410707387fe9b7522a95e83f3b56b0368\",\"dweb:/ipfs/QmeAnw5BjgR4Vrz5eBkWdEMajevVaDyMbSXRPALfyHYnbe\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBootloaderUtilities.sol\":{\"keccak256\":\"0xeea7b6ea35e94ae1ee84697df2053ca660e750c90e8d9e340a515200e5de52f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9e55744cabfc9ae67d43b136c9f1be3e347dd6c9d9d2777bb699fed9bc630c5\",\"dweb:/ipfs/QmQcACmf7PfijgFjLbcNi8SRZh1bUvN4abpWUGWCRnszpS\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBytecodeCompressor.sol\":{\"keccak256\":\"0xfbe695ca62333019f21a12a1636736a1e3ffaba62059d35fe24a7694cf99a1ac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e6d6bece56e8be5391e77af4b4a1eaf18ceefb500b0fd15123878ecee1ec3f8d\",\"dweb:/ipfs/QmNfy59uBQAsyfG2Vfdy38M6TYj3nLnkbb1P2euQqQEteZ\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IContractDeployer.sol\":{\"keccak256\":\"0xcd0cb526a3c1b6c8689ca2b4ff4da2f8cb2b134dce1b983b2368e4b8ff585ad3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e853769ee9769d16a4398a4351e82214801592b711c3cc6789de36e4b84cfa71\",\"dweb:/ipfs/QmeXAc1mRQVhhaXjj15XWH2YS4tjpYqMwgdQ8xLAozcdmU\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IEthToken.sol\":{\"keccak256\":\"0x12d57fed82ecc9d955e592e65d36c0256da4f8f3ce46c59e9828664bb623be2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e95d99c4202b2fbe10706e358e09135cb9ec43563db7e72fe81913f2798f4b5\",\"dweb:/ipfs/QmbPcrDDHSQsKKXq5itMttMQnRXpYpGYMLYp9BDXoVwa7k\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IImmutableSimulator.sol\":{\"keccak256\":\"0xe71d8c877f89fb8f2e3cc83d31dea978de99c35d07354052388abb6af9e9dbcc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://47b7c0601463321723b2623873fd91365a451f7d2b26216ea48d0503c38f91e8\",\"dweb:/ipfs/QmbFjjH95ekfzeR94z3AEsak1dfmZ5R8aHsbDpGwBzjSzD\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IKnownCodesStorage.sol\":{\"keccak256\":\"0xbc460f4e40c05b0b958d94bdcc23cc64f1efe887ef722c7bd4afc66583d92846\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6956ef37fb2a64c065251fdd3dc3b8ab9abb56a23c64b4ed7a3f32dce3af2472\",\"dweb:/ipfs/QmcVUbnZ6AXbmWm8CbLWM6p2pGnpy5VmgsEjQrHqWheBM5\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IL1Messenger.sol\":{\"keccak256\":\"0x13b3d1e55c9a1752885d7101a8e6886ff04c70259dff6bb672f79ce0c63952d9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35600fe3cc1ccd2029b47e2740bfd3f100a5896acd13e9eeafd583727abc4922\",\"dweb:/ipfs/QmNWWpGGpZ9r46Cw8hNVJG3vobFwk6hHhsWjRiJUo4xB4h\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/INonceHolder.sol\":{\"keccak256\":\"0x4895f2828cac4b6c3891c59214d70d3cd31cee4324a6e70c87caf90a234776fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0b7cfe1caf4c91b44111eb2ff9ffd693ad4ec3f4f09ffd6a8c65645de1c4d23e\",\"dweb:/ipfs/QmNnzanCJq3JR6JYhGhZzUAa5VQznuBN6A8bg5nNwq9wSU\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymaster.sol\":{\"keccak256\":\"0xeac1f3eecbd9a12dd729a1813d9aabdaf6501fab82c4e11bdcf4380b20e36352\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b9796ea25da7821f9438c4c2199edeeb85040c04b146b58995a157e2eabed90a\",\"dweb:/ipfs/QmSM87mwrEDxC13mS8k9ZWREFibk2fbQd5obvt5PXPWToR\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymasterFlow.sol\":{\"keccak256\":\"0xbc73dbaf894a3fa41b52195227c73a855fdfcee713fa5ab3fba0773abe61a017\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e3fc1a2b1d3e2662a378ff3499457097e9ee1918faa830e741a38102ffa534f7\",\"dweb:/ipfs/QmatFh5y3B4XFnMZWjDuyUNCZAzh1dYF2uqEJvebxmzu6R\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/interfaces/ISystemContext.sol\":{\"keccak256\":\"0xeb17460013b7bd75015f14c7aa296f7613dd331ffb2dccb4e725e708aa942ffb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7b4a3d7369d59deda677a7f2997151a146084d4d8487733ddec97924455c17d7\",\"dweb:/ipfs/QmQnCanKcV8UnBWHAV5BzDxnFd3sAQPQZbRAC44JCsgN4v\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/EfficientCall.sol\":{\"keccak256\":\"0x60a1780ada0ebad3ca24743399fb56c60bed23e1218371ec56855d214d152ea6\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2c7b490a8218a2d505b25d87c3aeb40e8867ed424e6eceb7ceb7bc557a32301a\",\"dweb:/ipfs/QmWRiRc11dHg2Vjbstxp1QCLqP23FsgtJS6R1jSfWiaBrC\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/RLPEncoder.sol\":{\"keccak256\":\"0x90e89a3db5d1d31cb60835b554c751c995339c7f7204314bc546683cad733439\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://234b0b0f64b3c984689f3c8d55ab2bf2e2a51c926aa8708aa72e365e884a4c28\",\"dweb:/ipfs/QmR2FLvaUCyBS6HnhZt5cp5nmjdefjdSVSymuYVG9qToBF\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractHelper.sol\":{\"keccak256\":\"0x5eb2c2a098cf0c4cd39be7842682a20ef575dccbb5d10713f98313788212411a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e1c1a52053dcf3b347a7161655f4e8a396be0c663d0d30b60953cf4e81e68848\",\"dweb:/ipfs/Qmat7quKhUTrjLDyPcAqMdpg4KP2jQhbuoCTGq7YENXHZ4\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractsCaller.sol\":{\"keccak256\":\"0x5033a1008942cb59413e47ea876f99bc5cd2b4b72308db003579ee1add07571f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11866ee670865a59e96ee25971d32abbe6a012a65ee0eca8a37aa11fe463e81f\",\"dweb:/ipfs/Qme3fnqFJgtnpRHf21Xj8qrE46P3nKwMZTywJytRbMjBZg\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/TransactionHelper.sol\":{\"keccak256\":\"0xb8ad21ccd87317971347a7a07388a1647944f62de02dbf2594632497e3dec330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://56369664918121fd8276ef09e35e1c5d64b8616ee38ad8d88fd45fbb0ddf381d\",\"dweb:/ipfs/QmPENE5H4Lg94MCpQ7gjah26Muqhc7QYAcyXQ9sFHxViGq\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/libraries/Utils.sol\":{\"keccak256\":\"0x323d26123de797a41955a05e68be86a6fe55aa62134ec59a8f89faa5bd04c416\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e0fd70642c2ded7d486bc5a3faac55d3357c20bb10d4243fef61962cf70e641\",\"dweb:/ipfs/QmWqQ3x27z2iCNNaAfXVAJ3FX2tHvUYu1t1Ze27pdbCRbK\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x35e258421ae206f3db37281cea70871b4c3553914734aa76139a41af60ac1abb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ef94b6bc4ee356db612a1849c615f7dd4b15542d6c8584c86bb9243a7913cf0\",\"dweb:/ipfs/QmaxFj5NFpAjjitZtHPNS9PPtCuBATaRz9ktDDRCQCQ83y\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x84d04bd9b87928b261736f90a86cbb15d8cf6f80560151366370fa79313f3cb5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7fd52b96d25ba9ca6ba26a591d2726c0256185b1c107b9a06834ca9ce0bae240\",\"dweb:/ipfs/QmYbgPqwwX1hUi6HfqcPM82bqgbjLYWDCXv83NxCvivL43\"]},\"@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/utils/Address.sol\":{\"keccak256\":\"0xef97d5bcb540814e1371a1e355a170919412e0d6754fdaa003b6a602e6a7ea4d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41a8f093a740cdcb224e48b2c4c2868f8e86dcdd3bc96ded6b10d29714b6f9a4\",\"dweb:/ipfs/QmSsgQmcY8n1a2bCFxdpWGS3YV63TZyZD77ycNHdpMDySL\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"contracts/MyPaymaster.sol\":{\"keccak256\":\"0xc9518c8982db8f6686c1ce1df672026d52bc3022feae47c48336ac55281d80b6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7acba8df36bf3130b2cf7afdb193abdc76f241686373853bb884b7d66f74fd3a\",\"dweb:/ipfs/QmXpr4P6s8kj94iFVccTW8vszoWKKdR8xrUo8TzooSpA4a\"]}},\"version\":1}"}},"contracts/Root.sol":{"Root":{"abi":[{"inputs":[{"internalType":"string","name":"_greeting","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"greeting","type":"string"}],"name":"SetGreeting","type":"event"},{"inputs":[],"name":"greet","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_greeting","type":"string"}],"name":"setGreeting","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"allocate_memory":{"entryPoint":527,"id":null,"parameterSlots":1,"returnSlots":1},"clear_storage_range_bytes1":{"entryPoint":622,"id":null,"parameterSlots":2,"returnSlots":0},"extract_byte_array_length":{"entryPoint":564,"id":null,"parameterSlots":1,"returnSlots":1}},"generatedSources":[],"linkReferences":{},"object":"60806040523461020a576106c9803803806100198161020f565b9283398101906020808284031261020a5781516001600160401b039283821161020a570190601f9184838201121561020a5780518481116101c057601f19916100678286018416850161020f565b9682885284838301011161020a57839060005b8381106101f657505060009187010152610095600054610234565b8381116101d6575b507f48692066726f6d20526f6f740000000000000000000000000000000000000018600081905585519485116101c0576100d690610234565b838111610188575b5081928411600114610126575050819260009261011b575b50508160011b916000199060031b1c1916176000555b60405161044390816102868239f35b0151905038806100f6565b6000808052828120918516959193925b8682106101705750508360019510610157575b505050811b0160005561010c565b015160001960f88460031b161c19169055388080610149565b80600185968294968601518155019501930190610136565b6101b19060008052836000208580880160051c8201928689106101b7575b0160051c019061026e565b386100de565b925081926101a6565b634e487b7160e01b600052604160045260246000fd5b6101f090600080528484600020910160051c81019061026e565b3861009d565b81810183015189820184015285920161007a565b600080fd5b6040519190601f01601f191682016001600160401b038111838210176101c057604052565b90600182811c92168015610264575b602083101461024e57565b634e487b7160e01b600052602260045260246000fd5b91607f1691610243565b818110610279575050565b6000815560010161026e56fe608080604052600436101561001357600080fd5b600090813560e01c908163a413686214610118575063cfae32171461003757600080fd5b3461011557806003193601126101155760405190808054610057816103d3565b808552916001918083169081156100eb5750600114610091575b61008d8561008181870382610352565b6040519182918261038a565b0390f35b80809450527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b8284106100d35750505081016020016100818261008d610071565b805460208587018101919091529093019281016100b8565b86955061008d9693506020925061008194915060ff191682840152151560051b8201019293610071565b80fd5b8234610115576020918260031936011261034e5760043567ffffffffffffffff9384821161034a573660238301121561034a57816004013585811161033657601f199261016c601f83018516840186610352565b81855236602483830101116103325781869260248593018388013785010152825194851161031e5761019e84546103d3565b601f81116102bd575b508091601f861160011461021757505090838394610206937f4dabe8361a35a905ec9d530e301d2e5c6cf44c65cdd7768f522a77a373436da9959161020c575b508160011b916000199060031b1c19161784556040519182918261038a565b0390a180f35b9050820151866101e7565b85929192168480527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5639285905b8282106102a5575050946102069392600192827f4dabe8361a35a905ec9d530e301d2e5c6cf44c65cdd7768f522a77a373436da997981061028c575b5050811b018455610081565b84015160001960f88460031b161c191690558680610280565b80600185968294968901518155019501930190610244565b8480527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563601f870160051c810191838810610314575b601f0160051c01905b81811061030957506101a7565b8581556001016102fc565b90915081906102f3565b634e487b7160e01b84526041600452602484fd5b8580fd5b634e487b7160e01b85526041600452602485fd5b8380fd5b5080fd5b90601f8019910116810190811067ffffffffffffffff82111761037457604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b8281106103bf57505060409293506000838284010152601f8019910116010190565b81810186015184820160400152850161039d565b90600182811c92168015610403575b60208310146103ed57565b634e487b7160e01b600052602260045260246000fd5b91607f16916103e256fea2646970667358221220bf6df06b6b1a9e36864c84d0d943e0b7a6eb18894a50d585b2645d2690958ba064736f6c63430008120033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE PUSH2 0x20A JUMPI PUSH2 0x6C9 DUP1 CODESIZE SUB DUP1 PUSH2 0x19 DUP2 PUSH2 0x20F JUMP JUMPDEST SWAP3 DUP4 CODECOPY DUP2 ADD SWAP1 PUSH1 0x20 DUP1 DUP3 DUP5 SUB SLT PUSH2 0x20A JUMPI DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP3 DUP4 DUP3 GT PUSH2 0x20A JUMPI ADD SWAP1 PUSH1 0x1F SWAP2 DUP5 DUP4 DUP3 ADD SLT ISZERO PUSH2 0x20A JUMPI DUP1 MLOAD DUP5 DUP2 GT PUSH2 0x1C0 JUMPI PUSH1 0x1F NOT SWAP2 PUSH2 0x67 DUP3 DUP7 ADD DUP5 AND DUP6 ADD PUSH2 0x20F JUMP JUMPDEST SWAP7 DUP3 DUP9 MSTORE DUP5 DUP4 DUP4 ADD ADD GT PUSH2 0x20A JUMPI DUP4 SWAP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT PUSH2 0x1F6 JUMPI POP POP PUSH1 0x0 SWAP2 DUP8 ADD ADD MSTORE PUSH2 0x95 PUSH1 0x0 SLOAD PUSH2 0x234 JUMP JUMPDEST DUP4 DUP2 GT PUSH2 0x1D6 JUMPI JUMPDEST POP PUSH32 0x48692066726F6D20526F6F740000000000000000000000000000000000000018 PUSH1 0x0 DUP2 SWAP1 SSTORE DUP6 MLOAD SWAP5 DUP6 GT PUSH2 0x1C0 JUMPI PUSH2 0xD6 SWAP1 PUSH2 0x234 JUMP JUMPDEST DUP4 DUP2 GT PUSH2 0x188 JUMPI JUMPDEST POP DUP2 SWAP3 DUP5 GT PUSH1 0x1 EQ PUSH2 0x126 JUMPI POP POP DUP2 SWAP3 PUSH1 0x0 SWAP3 PUSH2 0x11B JUMPI JUMPDEST POP POP DUP2 PUSH1 0x1 SHL SWAP2 PUSH1 0x0 NOT SWAP1 PUSH1 0x3 SHL SHR NOT AND OR PUSH1 0x0 SSTORE JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x443 SWAP1 DUP2 PUSH2 0x286 DUP3 CODECOPY RETURN JUMPDEST ADD MLOAD SWAP1 POP CODESIZE DUP1 PUSH2 0xF6 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 MSTORE DUP3 DUP2 KECCAK256 SWAP2 DUP6 AND SWAP6 SWAP2 SWAP4 SWAP3 JUMPDEST DUP7 DUP3 LT PUSH2 0x170 JUMPI POP POP DUP4 PUSH1 0x1 SWAP6 LT PUSH2 0x157 JUMPI JUMPDEST POP POP POP DUP2 SHL ADD PUSH1 0x0 SSTORE PUSH2 0x10C JUMP JUMPDEST ADD MLOAD PUSH1 0x0 NOT PUSH1 0xF8 DUP5 PUSH1 0x3 SHL AND SHR NOT AND SWAP1 SSTORE CODESIZE DUP1 DUP1 PUSH2 0x149 JUMP JUMPDEST DUP1 PUSH1 0x1 DUP6 SWAP7 DUP3 SWAP5 SWAP7 DUP7 ADD MLOAD DUP2 SSTORE ADD SWAP6 ADD SWAP4 ADD SWAP1 PUSH2 0x136 JUMP JUMPDEST PUSH2 0x1B1 SWAP1 PUSH1 0x0 DUP1 MSTORE DUP4 PUSH1 0x0 KECCAK256 DUP6 DUP1 DUP9 ADD PUSH1 0x5 SHR DUP3 ADD SWAP3 DUP7 DUP10 LT PUSH2 0x1B7 JUMPI JUMPDEST ADD PUSH1 0x5 SHR ADD SWAP1 PUSH2 0x26E JUMP JUMPDEST CODESIZE PUSH2 0xDE JUMP JUMPDEST SWAP3 POP DUP2 SWAP3 PUSH2 0x1A6 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x1F0 SWAP1 PUSH1 0x0 DUP1 MSTORE DUP5 DUP5 PUSH1 0x0 KECCAK256 SWAP2 ADD PUSH1 0x5 SHR DUP2 ADD SWAP1 PUSH2 0x26E JUMP JUMPDEST CODESIZE PUSH2 0x9D JUMP JUMPDEST DUP2 DUP2 ADD DUP4 ADD MLOAD DUP10 DUP3 ADD DUP5 ADD MSTORE DUP6 SWAP3 ADD PUSH2 0x7A JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MLOAD SWAP2 SWAP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP4 DUP3 LT OR PUSH2 0x1C0 JUMPI PUSH1 0x40 MSTORE JUMP JUMPDEST SWAP1 PUSH1 0x1 DUP3 DUP2 SHR SWAP3 AND DUP1 ISZERO PUSH2 0x264 JUMPI JUMPDEST PUSH1 0x20 DUP4 LT EQ PUSH2 0x24E JUMPI JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP2 PUSH1 0x7F AND SWAP2 PUSH2 0x243 JUMP JUMPDEST DUP2 DUP2 LT PUSH2 0x279 JUMPI POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x26E JUMP INVALID PUSH1 0x80 DUP1 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT ISZERO PUSH2 0x13 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP1 DUP2 CALLDATALOAD PUSH1 0xE0 SHR SWAP1 DUP2 PUSH4 0xA4136862 EQ PUSH2 0x118 JUMPI POP PUSH4 0xCFAE3217 EQ PUSH2 0x37 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE PUSH2 0x115 JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x115 JUMPI PUSH1 0x40 MLOAD SWAP1 DUP1 DUP1 SLOAD PUSH2 0x57 DUP2 PUSH2 0x3D3 JUMP JUMPDEST DUP1 DUP6 MSTORE SWAP2 PUSH1 0x1 SWAP2 DUP1 DUP4 AND SWAP1 DUP2 ISZERO PUSH2 0xEB JUMPI POP PUSH1 0x1 EQ PUSH2 0x91 JUMPI JUMPDEST PUSH2 0x8D DUP6 PUSH2 0x81 DUP2 DUP8 SUB DUP3 PUSH2 0x352 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP2 DUP3 SWAP2 DUP3 PUSH2 0x38A JUMP JUMPDEST SUB SWAP1 RETURN JUMPDEST DUP1 DUP1 SWAP5 POP MSTORE PUSH32 0x290DECD9548B62A8D60345A988386FC84BA6BC95484008F6362F93160EF3E563 JUMPDEST DUP3 DUP5 LT PUSH2 0xD3 JUMPI POP POP POP DUP2 ADD PUSH1 0x20 ADD PUSH2 0x81 DUP3 PUSH2 0x8D PUSH2 0x71 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x20 DUP6 DUP8 ADD DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 SWAP4 ADD SWAP3 DUP2 ADD PUSH2 0xB8 JUMP JUMPDEST DUP7 SWAP6 POP PUSH2 0x8D SWAP7 SWAP4 POP PUSH1 0x20 SWAP3 POP PUSH2 0x81 SWAP5 SWAP2 POP PUSH1 0xFF NOT AND DUP3 DUP5 ADD MSTORE ISZERO ISZERO PUSH1 0x5 SHL DUP3 ADD ADD SWAP3 SWAP4 PUSH2 0x71 JUMP JUMPDEST DUP1 REVERT JUMPDEST DUP3 CALLVALUE PUSH2 0x115 JUMPI PUSH1 0x20 SWAP2 DUP3 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x34E JUMPI PUSH1 0x4 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF SWAP4 DUP5 DUP3 GT PUSH2 0x34A JUMPI CALLDATASIZE PUSH1 0x23 DUP4 ADD SLT ISZERO PUSH2 0x34A JUMPI DUP2 PUSH1 0x4 ADD CALLDATALOAD DUP6 DUP2 GT PUSH2 0x336 JUMPI PUSH1 0x1F NOT SWAP3 PUSH2 0x16C PUSH1 0x1F DUP4 ADD DUP6 AND DUP5 ADD DUP7 PUSH2 0x352 JUMP JUMPDEST DUP2 DUP6 MSTORE CALLDATASIZE PUSH1 0x24 DUP4 DUP4 ADD ADD GT PUSH2 0x332 JUMPI DUP2 DUP7 SWAP3 PUSH1 0x24 DUP6 SWAP4 ADD DUP4 DUP9 ADD CALLDATACOPY DUP6 ADD ADD MSTORE DUP3 MLOAD SWAP5 DUP6 GT PUSH2 0x31E JUMPI PUSH2 0x19E DUP5 SLOAD PUSH2 0x3D3 JUMP JUMPDEST PUSH1 0x1F DUP2 GT PUSH2 0x2BD JUMPI JUMPDEST POP DUP1 SWAP2 PUSH1 0x1F DUP7 GT PUSH1 0x1 EQ PUSH2 0x217 JUMPI POP POP SWAP1 DUP4 DUP4 SWAP5 PUSH2 0x206 SWAP4 PUSH32 0x4DABE8361A35A905EC9D530E301D2E5C6CF44C65CDD7768F522A77A373436DA9 SWAP6 SWAP2 PUSH2 0x20C JUMPI JUMPDEST POP DUP2 PUSH1 0x1 SHL SWAP2 PUSH1 0x0 NOT SWAP1 PUSH1 0x3 SHL SHR NOT AND OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 DUP3 SWAP2 DUP3 PUSH2 0x38A JUMP JUMPDEST SUB SWAP1 LOG1 DUP1 RETURN JUMPDEST SWAP1 POP DUP3 ADD MLOAD DUP7 PUSH2 0x1E7 JUMP JUMPDEST DUP6 SWAP3 SWAP2 SWAP3 AND DUP5 DUP1 MSTORE PUSH32 0x290DECD9548B62A8D60345A988386FC84BA6BC95484008F6362F93160EF3E563 SWAP3 DUP6 SWAP1 JUMPDEST DUP3 DUP3 LT PUSH2 0x2A5 JUMPI POP POP SWAP5 PUSH2 0x206 SWAP4 SWAP3 PUSH1 0x1 SWAP3 DUP3 PUSH32 0x4DABE8361A35A905EC9D530E301D2E5C6CF44C65CDD7768F522A77A373436DA9 SWAP8 SWAP9 LT PUSH2 0x28C JUMPI JUMPDEST POP POP DUP2 SHL ADD DUP5 SSTORE PUSH2 0x81 JUMP JUMPDEST DUP5 ADD MLOAD PUSH1 0x0 NOT PUSH1 0xF8 DUP5 PUSH1 0x3 SHL AND SHR NOT AND SWAP1 SSTORE DUP7 DUP1 PUSH2 0x280 JUMP JUMPDEST DUP1 PUSH1 0x1 DUP6 SWAP7 DUP3 SWAP5 SWAP7 DUP10 ADD MLOAD DUP2 SSTORE ADD SWAP6 ADD SWAP4 ADD SWAP1 PUSH2 0x244 JUMP JUMPDEST DUP5 DUP1 MSTORE PUSH32 0x290DECD9548B62A8D60345A988386FC84BA6BC95484008F6362F93160EF3E563 PUSH1 0x1F DUP8 ADD PUSH1 0x5 SHR DUP2 ADD SWAP2 DUP4 DUP9 LT PUSH2 0x314 JUMPI JUMPDEST PUSH1 0x1F ADD PUSH1 0x5 SHR ADD SWAP1 JUMPDEST DUP2 DUP2 LT PUSH2 0x309 JUMPI POP PUSH2 0x1A7 JUMP JUMPDEST DUP6 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x2FC JUMP JUMPDEST SWAP1 SWAP2 POP DUP2 SWAP1 PUSH2 0x2F3 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP5 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 DUP5 REVERT JUMPDEST DUP6 DUP1 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP6 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 DUP6 REVERT JUMPDEST DUP4 DUP1 REVERT JUMPDEST POP DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x1F DUP1 NOT SWAP2 ADD AND DUP2 ADD SWAP1 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR PUSH2 0x374 JUMPI PUSH1 0x40 MSTORE JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP3 MLOAD DUP2 DUP4 ADD DUP2 SWAP1 MSTORE SWAP1 SWAP4 SWAP3 PUSH1 0x0 JUMPDEST DUP3 DUP2 LT PUSH2 0x3BF JUMPI POP POP PUSH1 0x40 SWAP3 SWAP4 POP PUSH1 0x0 DUP4 DUP3 DUP5 ADD ADD MSTORE PUSH1 0x1F DUP1 NOT SWAP2 ADD AND ADD ADD SWAP1 JUMP JUMPDEST DUP2 DUP2 ADD DUP7 ADD MLOAD DUP5 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP6 ADD PUSH2 0x39D JUMP JUMPDEST SWAP1 PUSH1 0x1 DUP3 DUP2 SHR SWAP3 AND DUP1 ISZERO PUSH2 0x403 JUMPI JUMPDEST PUSH1 0x20 DUP4 LT EQ PUSH2 0x3ED JUMPI JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP2 PUSH1 0x7F AND SWAP2 PUSH2 0x3E2 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xBF PUSH14 0xF06B6B1A9E36864C84D0D943E0B7 0xA6 0xEB XOR DUP10 0x4A POP 0xD5 DUP6 0xB2 PUSH5 0x5D2690958B LOG0 PUSH5 0x736F6C6343 STOP ADDMOD SLT STOP CALLER ","sourceMap":"62:409:49:-:0;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;62:409:49;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;62:409:49;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;62:409:49;;;;;;;;-1:-1:-1;62:409:49;;;;;;-1:-1:-1;62:409:49;;:::i;:::-;;;;;;;-1:-1:-1;62:409:49;-1:-1:-1;62:409:49;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;62:409:49;;;;;;;;;;;;;;;;;;;-1:-1:-1;62:409:49;;;;;;;;;;;;;;;-1:-1:-1;62:409:49;;;;;-1:-1:-1;62:409:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;62:409:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;62:409:49;;;-1:-1:-1;62:409:49;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;62:409:49;;;;;-1:-1:-1;62:409:49;;;;-1:-1:-1;62:409:49;;;;-1:-1:-1;62:409:49;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;62:409:49;;;;;;;;;-1:-1:-1;;62:409:49;;;-1:-1:-1;;;;;62:409:49;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;"},"deployedBytecode":{"functionDebugData":{"abi_encode_string":{"entryPoint":906,"id":null,"parameterSlots":2,"returnSlots":1},"extract_byte_array_length":{"entryPoint":979,"id":null,"parameterSlots":1,"returnSlots":1},"finalize_allocation":{"entryPoint":850,"id":null,"parameterSlots":2,"returnSlots":0}},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"608080604052600436101561001357600080fd5b600090813560e01c908163a413686214610118575063cfae32171461003757600080fd5b3461011557806003193601126101155760405190808054610057816103d3565b808552916001918083169081156100eb5750600114610091575b61008d8561008181870382610352565b6040519182918261038a565b0390f35b80809450527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b8284106100d35750505081016020016100818261008d610071565b805460208587018101919091529093019281016100b8565b86955061008d9693506020925061008194915060ff191682840152151560051b8201019293610071565b80fd5b8234610115576020918260031936011261034e5760043567ffffffffffffffff9384821161034a573660238301121561034a57816004013585811161033657601f199261016c601f83018516840186610352565b81855236602483830101116103325781869260248593018388013785010152825194851161031e5761019e84546103d3565b601f81116102bd575b508091601f861160011461021757505090838394610206937f4dabe8361a35a905ec9d530e301d2e5c6cf44c65cdd7768f522a77a373436da9959161020c575b508160011b916000199060031b1c19161784556040519182918261038a565b0390a180f35b9050820151866101e7565b85929192168480527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5639285905b8282106102a5575050946102069392600192827f4dabe8361a35a905ec9d530e301d2e5c6cf44c65cdd7768f522a77a373436da997981061028c575b5050811b018455610081565b84015160001960f88460031b161c191690558680610280565b80600185968294968901518155019501930190610244565b8480527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563601f870160051c810191838810610314575b601f0160051c01905b81811061030957506101a7565b8581556001016102fc565b90915081906102f3565b634e487b7160e01b84526041600452602484fd5b8580fd5b634e487b7160e01b85526041600452602485fd5b8380fd5b5080fd5b90601f8019910116810190811067ffffffffffffffff82111761037457604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b8281106103bf57505060409293506000838284010152601f8019910116010190565b81810186015184820160400152850161039d565b90600182811c92168015610403575b60208310146103ed57565b634e487b7160e01b600052602260045260246000fd5b91607f16916103e256fea2646970667358221220bf6df06b6b1a9e36864c84d0d943e0b7a6eb18894a50d585b2645d2690958ba064736f6c63430008120033","opcodes":"PUSH1 0x80 DUP1 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT ISZERO PUSH2 0x13 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP1 DUP2 CALLDATALOAD PUSH1 0xE0 SHR SWAP1 DUP2 PUSH4 0xA4136862 EQ PUSH2 0x118 JUMPI POP PUSH4 0xCFAE3217 EQ PUSH2 0x37 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE PUSH2 0x115 JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x115 JUMPI PUSH1 0x40 MLOAD SWAP1 DUP1 DUP1 SLOAD PUSH2 0x57 DUP2 PUSH2 0x3D3 JUMP JUMPDEST DUP1 DUP6 MSTORE SWAP2 PUSH1 0x1 SWAP2 DUP1 DUP4 AND SWAP1 DUP2 ISZERO PUSH2 0xEB JUMPI POP PUSH1 0x1 EQ PUSH2 0x91 JUMPI JUMPDEST PUSH2 0x8D DUP6 PUSH2 0x81 DUP2 DUP8 SUB DUP3 PUSH2 0x352 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP2 DUP3 SWAP2 DUP3 PUSH2 0x38A JUMP JUMPDEST SUB SWAP1 RETURN JUMPDEST DUP1 DUP1 SWAP5 POP MSTORE PUSH32 0x290DECD9548B62A8D60345A988386FC84BA6BC95484008F6362F93160EF3E563 JUMPDEST DUP3 DUP5 LT PUSH2 0xD3 JUMPI POP POP POP DUP2 ADD PUSH1 0x20 ADD PUSH2 0x81 DUP3 PUSH2 0x8D PUSH2 0x71 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x20 DUP6 DUP8 ADD DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 SWAP4 ADD SWAP3 DUP2 ADD PUSH2 0xB8 JUMP JUMPDEST DUP7 SWAP6 POP PUSH2 0x8D SWAP7 SWAP4 POP PUSH1 0x20 SWAP3 POP PUSH2 0x81 SWAP5 SWAP2 POP PUSH1 0xFF NOT AND DUP3 DUP5 ADD MSTORE ISZERO ISZERO PUSH1 0x5 SHL DUP3 ADD ADD SWAP3 SWAP4 PUSH2 0x71 JUMP JUMPDEST DUP1 REVERT JUMPDEST DUP3 CALLVALUE PUSH2 0x115 JUMPI PUSH1 0x20 SWAP2 DUP3 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x34E JUMPI PUSH1 0x4 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF SWAP4 DUP5 DUP3 GT PUSH2 0x34A JUMPI CALLDATASIZE PUSH1 0x23 DUP4 ADD SLT ISZERO PUSH2 0x34A JUMPI DUP2 PUSH1 0x4 ADD CALLDATALOAD DUP6 DUP2 GT PUSH2 0x336 JUMPI PUSH1 0x1F NOT SWAP3 PUSH2 0x16C PUSH1 0x1F DUP4 ADD DUP6 AND DUP5 ADD DUP7 PUSH2 0x352 JUMP JUMPDEST DUP2 DUP6 MSTORE CALLDATASIZE PUSH1 0x24 DUP4 DUP4 ADD ADD GT PUSH2 0x332 JUMPI DUP2 DUP7 SWAP3 PUSH1 0x24 DUP6 SWAP4 ADD DUP4 DUP9 ADD CALLDATACOPY DUP6 ADD ADD MSTORE DUP3 MLOAD SWAP5 DUP6 GT PUSH2 0x31E JUMPI PUSH2 0x19E DUP5 SLOAD PUSH2 0x3D3 JUMP JUMPDEST PUSH1 0x1F DUP2 GT PUSH2 0x2BD JUMPI JUMPDEST POP DUP1 SWAP2 PUSH1 0x1F DUP7 GT PUSH1 0x1 EQ PUSH2 0x217 JUMPI POP POP SWAP1 DUP4 DUP4 SWAP5 PUSH2 0x206 SWAP4 PUSH32 0x4DABE8361A35A905EC9D530E301D2E5C6CF44C65CDD7768F522A77A373436DA9 SWAP6 SWAP2 PUSH2 0x20C JUMPI JUMPDEST POP DUP2 PUSH1 0x1 SHL SWAP2 PUSH1 0x0 NOT SWAP1 PUSH1 0x3 SHL SHR NOT AND OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 DUP3 SWAP2 DUP3 PUSH2 0x38A JUMP JUMPDEST SUB SWAP1 LOG1 DUP1 RETURN JUMPDEST SWAP1 POP DUP3 ADD MLOAD DUP7 PUSH2 0x1E7 JUMP JUMPDEST DUP6 SWAP3 SWAP2 SWAP3 AND DUP5 DUP1 MSTORE PUSH32 0x290DECD9548B62A8D60345A988386FC84BA6BC95484008F6362F93160EF3E563 SWAP3 DUP6 SWAP1 JUMPDEST DUP3 DUP3 LT PUSH2 0x2A5 JUMPI POP POP SWAP5 PUSH2 0x206 SWAP4 SWAP3 PUSH1 0x1 SWAP3 DUP3 PUSH32 0x4DABE8361A35A905EC9D530E301D2E5C6CF44C65CDD7768F522A77A373436DA9 SWAP8 SWAP9 LT PUSH2 0x28C JUMPI JUMPDEST POP POP DUP2 SHL ADD DUP5 SSTORE PUSH2 0x81 JUMP JUMPDEST DUP5 ADD MLOAD PUSH1 0x0 NOT PUSH1 0xF8 DUP5 PUSH1 0x3 SHL AND SHR NOT AND SWAP1 SSTORE DUP7 DUP1 PUSH2 0x280 JUMP JUMPDEST DUP1 PUSH1 0x1 DUP6 SWAP7 DUP3 SWAP5 SWAP7 DUP10 ADD MLOAD DUP2 SSTORE ADD SWAP6 ADD SWAP4 ADD SWAP1 PUSH2 0x244 JUMP JUMPDEST DUP5 DUP1 MSTORE PUSH32 0x290DECD9548B62A8D60345A988386FC84BA6BC95484008F6362F93160EF3E563 PUSH1 0x1F DUP8 ADD PUSH1 0x5 SHR DUP2 ADD SWAP2 DUP4 DUP9 LT PUSH2 0x314 JUMPI JUMPDEST PUSH1 0x1F ADD PUSH1 0x5 SHR ADD SWAP1 JUMPDEST DUP2 DUP2 LT PUSH2 0x309 JUMPI POP PUSH2 0x1A7 JUMP JUMPDEST DUP6 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x2FC JUMP JUMPDEST SWAP1 SWAP2 POP DUP2 SWAP1 PUSH2 0x2F3 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP5 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 DUP5 REVERT JUMPDEST DUP6 DUP1 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP6 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 DUP6 REVERT JUMPDEST DUP4 DUP1 REVERT JUMPDEST POP DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x1F DUP1 NOT SWAP2 ADD AND DUP2 ADD SWAP1 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR PUSH2 0x374 JUMPI PUSH1 0x40 MSTORE JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP3 MLOAD DUP2 DUP4 ADD DUP2 SWAP1 MSTORE SWAP1 SWAP4 SWAP3 PUSH1 0x0 JUMPDEST DUP3 DUP2 LT PUSH2 0x3BF JUMPI POP POP PUSH1 0x40 SWAP3 SWAP4 POP PUSH1 0x0 DUP4 DUP3 DUP5 ADD ADD MSTORE PUSH1 0x1F DUP1 NOT SWAP2 ADD AND ADD ADD SWAP1 JUMP JUMPDEST DUP2 DUP2 ADD DUP7 ADD MLOAD DUP5 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP6 ADD PUSH2 0x39D JUMP JUMPDEST SWAP1 PUSH1 0x1 DUP3 DUP2 SHR SWAP3 AND DUP1 ISZERO PUSH2 0x403 JUMPI JUMPDEST PUSH1 0x20 DUP4 LT EQ PUSH2 0x3ED JUMPI JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP2 PUSH1 0x7F AND SWAP2 PUSH2 0x3E2 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xBF PUSH14 0xF06B6B1A9E36864C84D0D943E0B7 0xA6 0xEB XOR DUP10 0x4A POP 0xD5 DUP6 0xB2 PUSH5 0x5D2690958B LOG0 PUSH5 0x736F6C6343 STOP ADDMOD SLT STOP CALLER ","sourceMap":"62:409:49:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;62:409:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;62:409:49;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;440:22;62:409;440:22;62:409;;;;;;;;;;;;;;;;;;;;;;;440:22;;;;;:::i;:::-;;;;62:409;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;440:22;62:409;;;;;440:22;62:409;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;62:409:49;;;;;-1:-1:-1;;;62:409:49;;;;;;;;;;;;;-1:-1:-1;;;62:409:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;62:409:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;"},"methodIdentifiers":{"greet()":"cfae3217","setGreeting(string)":"a4136862"}},"metadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_greeting\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"greeting\",\"type\":\"string\"}],\"name\":\"SetGreeting\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"greet\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_greeting\",\"type\":\"string\"}],\"name\":\"setGreeting\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Root.sol\":\"Root\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"contracts/Root.sol\":{\"keccak256\":\"0xcb7eee0454dd8048fc04c0063560470ce25e4a9b06c7e96bca2fd5d02e7412a1\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://7aad0077a172d71b57a092f56fc3867b0c127ed92322b59c5c6632347484517a\",\"dweb:/ipfs/QmZpGCXxcVqZAfzZmVZSQnJBn4kRXAV3rLMh8x3zNu6hGv\"]}},\"version\":1}"}}}}} \ No newline at end of file diff --git a/packages/integration-tests/src/playbook/artifacts/contracts/Caller.sol/GCaller.dbg.json b/packages/integration-tests/src/playbook/artifacts/contracts/Caller.sol/GCaller.dbg.json deleted file mode 100644 index 31301548a5..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/contracts/Caller.sol/GCaller.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../build-info/e49535a141eefaebe6d9aa3bc85bbb11.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts/contracts/Caller.sol/GCaller.json b/packages/integration-tests/src/playbook/artifacts/contracts/Caller.sol/GCaller.json deleted file mode 100644 index 68647f8ce6..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/contracts/Caller.sol/GCaller.json +++ /dev/null @@ -1,74 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "GCaller", - "sourceName": "contracts/Caller.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "_callAddress", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [], - "name": "callAddress", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "myAddress", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "newCallGreeter", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "string", - "name": "_greeting", - "type": "string" - } - ], - "name": "newSetGreet", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x60803461013357601f61058138819003918201601f19168301916001600160401b038311848410176101385780849260209460405283398101031261013357516001600160a01b0381169081900361013357600254906001918281811c91168015610129575b602082101461011357601f81116100c6575b507f48692066726f6d2043616c6c657200000000000000000000000000000000001c600255600080546001600160a01b03199081163017909155825416179055604051610432908161014f8239f35b6002600052601f0160051c7f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace9081019083905b828110610107575050610077565b600081550183906100f9565b634e487b7160e01b600052602260045260246000fd5b90607f1690610065565b600080fd5b634e487b7160e01b600052604160045260246000fdfe608060408181526004908136101561001657600080fd5b600092833560e01c90816326b85ee114610335575080633e23ee431461030c57806349900eec1461013a576370225fc71461005057600080fd5b3461013657826003193601126101365760015481516335ed0a4760e21b815292849184919082906001600160a01b03165afa91821561012c5783926100a1575b81518061009d85826103d0565b0390f35b9091503d8084833e6100b38183610359565b8101906020818303126101245780519067ffffffffffffffff8211610128570181601f82011215610124578051936100ea85610391565b926100f785519485610359565b85845260208684010111610121575061009d9361011a91602080850191016103ad565b9038610090565b80fd5b8380fd5b8480fd5b81513d85823e3d90fd5b8280fd5b5082903461030857602092836003193601126101365767ffffffffffffffff81358181116101285736602382011215610128578083013561017a81610391565b9161018786519384610359565b81835236602483830101116103045781879260248a93018386013783010152805115610228578495505b6001546001600160a01b031690813b156102245785916101e5918651978880948193639698086b60e01b83528983016103d0565b03925af1801561021a576101f7578480f35b8311610207575052818080808480f35b634e487b7160e01b845260419052602483fd5b83513d87823e3d90fd5b8580fd5b5082518495600254600181811c9181811680156102fa575b84841081146102e7578386529081156102c95750600114610271575b50505061026c8186970382610359565b6101b1565b6002885291975086917f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace5b8284106102b65750505081869761026c928201019761025c565b80548585018b015292890192810161029c565b60ff1916858501525050151560051b820101955061026c818661025c565b634e487b7160e01b8a526022885260248afd5b92607f1692610240565b8680fd5b5080fd5b83823461030857816003193601126103085760015490516001600160a01b039091168152602090f35b84903461030857816003193601126103085790546001600160a01b03168152602090f35b90601f8019910116810190811067ffffffffffffffff82111761037b57604052565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff811161037b57601f01601f191660200190565b60005b8381106103c05750506000910152565b81810151838201526020016103b0565b604091602082526103f081518092816020860152602086860191016103ad565b601f01601f191601019056fea264697066735822122023ed7494a3c851b54638a538e10284a07eb2354f9ff1fd3f11d3ecdb081936c464736f6c63430008120033", - "deployedBytecode": "0x608060408181526004908136101561001657600080fd5b600092833560e01c90816326b85ee114610335575080633e23ee431461030c57806349900eec1461013a576370225fc71461005057600080fd5b3461013657826003193601126101365760015481516335ed0a4760e21b815292849184919082906001600160a01b03165afa91821561012c5783926100a1575b81518061009d85826103d0565b0390f35b9091503d8084833e6100b38183610359565b8101906020818303126101245780519067ffffffffffffffff8211610128570181601f82011215610124578051936100ea85610391565b926100f785519485610359565b85845260208684010111610121575061009d9361011a91602080850191016103ad565b9038610090565b80fd5b8380fd5b8480fd5b81513d85823e3d90fd5b8280fd5b5082903461030857602092836003193601126101365767ffffffffffffffff81358181116101285736602382011215610128578083013561017a81610391565b9161018786519384610359565b81835236602483830101116103045781879260248a93018386013783010152805115610228578495505b6001546001600160a01b031690813b156102245785916101e5918651978880948193639698086b60e01b83528983016103d0565b03925af1801561021a576101f7578480f35b8311610207575052818080808480f35b634e487b7160e01b845260419052602483fd5b83513d87823e3d90fd5b8580fd5b5082518495600254600181811c9181811680156102fa575b84841081146102e7578386529081156102c95750600114610271575b50505061026c8186970382610359565b6101b1565b6002885291975086917f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace5b8284106102b65750505081869761026c928201019761025c565b80548585018b015292890192810161029c565b60ff1916858501525050151560051b820101955061026c818661025c565b634e487b7160e01b8a526022885260248afd5b92607f1692610240565b8680fd5b5080fd5b83823461030857816003193601126103085760015490516001600160a01b039091168152602090f35b84903461030857816003193601126103085790546001600160a01b03168152602090f35b90601f8019910116810190811067ffffffffffffffff82111761037b57604052565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff811161037b57601f01601f191660200190565b60005b8381106103c05750506000910152565b81810151838201526020016103b0565b604091602082526103f081518092816020860152602086860191016103ad565b601f01601f191601019056fea264697066735822122023ed7494a3c851b54638a538e10284a07eb2354f9ff1fd3f11d3ecdb081936c464736f6c63430008120033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts/contracts/Caller.sol/IGreeter2.dbg.json b/packages/integration-tests/src/playbook/artifacts/contracts/Caller.sol/IGreeter2.dbg.json deleted file mode 100644 index 31301548a5..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/contracts/Caller.sol/IGreeter2.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../build-info/e49535a141eefaebe6d9aa3bc85bbb11.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts/contracts/Caller.sol/IGreeter2.json b/packages/integration-tests/src/playbook/artifacts/contracts/Caller.sol/IGreeter2.json deleted file mode 100644 index 3e9780d872..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/contracts/Caller.sol/IGreeter2.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IGreeter2", - "sourceName": "contracts/Caller.sol", - "abi": [ - { - "inputs": [], - "name": "callGreeter", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "string", - "name": "greeting", - "type": "string" - } - ], - "name": "setGreet", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts/contracts/Greeter.sol/Greeter.dbg.json b/packages/integration-tests/src/playbook/artifacts/contracts/Greeter.sol/Greeter.dbg.json deleted file mode 100644 index 31301548a5..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/contracts/Greeter.sol/Greeter.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../build-info/e49535a141eefaebe6d9aa3bc85bbb11.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts/contracts/Greeter.sol/Greeter.json b/packages/integration-tests/src/playbook/artifacts/contracts/Greeter.sol/Greeter.json deleted file mode 100644 index d49436ba1c..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/contracts/Greeter.sol/Greeter.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "Greeter", - "sourceName": "contracts/Greeter.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "string", - "name": "_greeting", - "type": "string" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "string", - "name": "greeting", - "type": "string" - } - ], - "name": "SetGreeting", - "type": "event" - }, - { - "inputs": [], - "name": "greet", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "string", - "name": "_greeting", - "type": "string" - } - ], - "name": "setGreeting", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x6080604052346101f55761066380380380610019816101fa565b928339810190602080828403126101f55781516001600160401b03928382116101f5570192601f908082860112156101f55784518481116101cb57601f1995610067828501881686016101fa565b928284528583830101116101f557849060005b8381106101e15750506000918301015280519384116101cb57600054926001938481811c911680156101c1575b828210146101ab57838111610165575b50809285116001146101005750839450908392916000946100f5575b50501b916000199060031b1c1916176000555b60405161044390816102208239f35b0151925038806100d3565b9294849081166000805284600020946000905b8883831061014b5750505010610132575b505050811b016000556100e6565b015160001960f88460031b161c19169055388080610124565b858701518855909601959485019487935090810190610113565b60008052816000208480880160051c8201928489106101a2575b0160051c019085905b8281106101965750506100b7565b60008155018590610188565b9250819261017f565b634e487b7160e01b600052602260045260246000fd5b90607f16906100a7565b634e487b7160e01b600052604160045260246000fd5b81810183015185820184015286920161007a565b600080fd5b6040519190601f01601f191682016001600160401b038111838210176101cb5760405256fe608080604052600436101561001357600080fd5b600090813560e01c908163a413686214610118575063cfae32171461003757600080fd5b3461011557806003193601126101155760405190808054610057816103d3565b808552916001918083169081156100eb5750600114610091575b61008d8561008181870382610352565b6040519182918261038a565b0390f35b80809450527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b8284106100d35750505081016020016100818261008d610071565b805460208587018101919091529093019281016100b8565b86955061008d9693506020925061008194915060ff191682840152151560051b8201019293610071565b80fd5b8234610115576020918260031936011261034e5760043567ffffffffffffffff9384821161034a573660238301121561034a57816004013585811161033657601f199261016c601f83018516840186610352565b81855236602483830101116103325781869260248593018388013785010152825194851161031e5761019e84546103d3565b601f81116102bd575b508091601f861160011461021757505090838394610206937f4dabe8361a35a905ec9d530e301d2e5c6cf44c65cdd7768f522a77a373436da9959161020c575b508160011b916000199060031b1c19161784556040519182918261038a565b0390a180f35b9050820151866101e7565b85929192168480527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5639285905b8282106102a5575050946102069392600192827f4dabe8361a35a905ec9d530e301d2e5c6cf44c65cdd7768f522a77a373436da997981061028c575b5050811b018455610081565b84015160001960f88460031b161c191690558680610280565b80600185968294968901518155019501930190610244565b8480527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563601f870160051c810191838810610314575b601f0160051c01905b81811061030957506101a7565b8581556001016102fc565b90915081906102f3565b634e487b7160e01b84526041600452602484fd5b8580fd5b634e487b7160e01b85526041600452602485fd5b8380fd5b5080fd5b90601f8019910116810190811067ffffffffffffffff82111761037457604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b8281106103bf57505060409293506000838284010152601f8019910116010190565b81810186015184820160400152850161039d565b90600182811c92168015610403575b60208310146103ed57565b634e487b7160e01b600052602260045260246000fd5b91607f16916103e256fea26469706673582212205202fe51dd83dc87143aaf4812eb74f95b34eec3501aa105dcaf98250fae7bda64736f6c63430008120033", - "deployedBytecode": "0x608080604052600436101561001357600080fd5b600090813560e01c908163a413686214610118575063cfae32171461003757600080fd5b3461011557806003193601126101155760405190808054610057816103d3565b808552916001918083169081156100eb5750600114610091575b61008d8561008181870382610352565b6040519182918261038a565b0390f35b80809450527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b8284106100d35750505081016020016100818261008d610071565b805460208587018101919091529093019281016100b8565b86955061008d9693506020925061008194915060ff191682840152151560051b8201019293610071565b80fd5b8234610115576020918260031936011261034e5760043567ffffffffffffffff9384821161034a573660238301121561034a57816004013585811161033657601f199261016c601f83018516840186610352565b81855236602483830101116103325781869260248593018388013785010152825194851161031e5761019e84546103d3565b601f81116102bd575b508091601f861160011461021757505090838394610206937f4dabe8361a35a905ec9d530e301d2e5c6cf44c65cdd7768f522a77a373436da9959161020c575b508160011b916000199060031b1c19161784556040519182918261038a565b0390a180f35b9050820151866101e7565b85929192168480527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5639285905b8282106102a5575050946102069392600192827f4dabe8361a35a905ec9d530e301d2e5c6cf44c65cdd7768f522a77a373436da997981061028c575b5050811b018455610081565b84015160001960f88460031b161c191690558680610280565b80600185968294968901518155019501930190610244565b8480527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563601f870160051c810191838810610314575b601f0160051c01905b81811061030957506101a7565b8581556001016102fc565b90915081906102f3565b634e487b7160e01b84526041600452602484fd5b8580fd5b634e487b7160e01b85526041600452602485fd5b8380fd5b5080fd5b90601f8019910116810190811067ffffffffffffffff82111761037457604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b8281106103bf57505060409293506000838284010152601f8019910116010190565b81810186015184820160400152850161039d565b90600182811c92168015610403575b60208310146103ed57565b634e487b7160e01b600052602260045260246000fd5b91607f16916103e256fea26469706673582212205202fe51dd83dc87143aaf4812eb74f95b34eec3501aa105dcaf98250fae7bda64736f6c63430008120033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts/contracts/L1.sol/L1.dbg.json b/packages/integration-tests/src/playbook/artifacts/contracts/L1.sol/L1.dbg.json deleted file mode 100644 index 31301548a5..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/contracts/L1.sol/L1.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../build-info/e49535a141eefaebe6d9aa3bc85bbb11.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts/contracts/L1.sol/L1.json b/packages/integration-tests/src/playbook/artifacts/contracts/L1.sol/L1.json deleted file mode 100644 index eb5cc13061..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/contracts/L1.sol/L1.json +++ /dev/null @@ -1,292 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "L1", - "sourceName": "contracts/L1.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "_recipient", - "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": [ - { - "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" - } - ], - "bytecode": "0x608034620003e557601f19906001600160401b03601f62000cf4388190038281018616850184811186821017620002e957859282916040528339602094859181010312620003e557516001600160a01b0381169490859003620003e55762000066620003ea565b92600e84526d26189022a9219918103a37b5b2b760911b858501526200008b620003ea565b9360028552614c3160f01b86860152805190828211620002e95760039182546001928382811c92168015620003da575b8a831014620003c45781888493116200036e575b5089908883116001146200030b57600092620002ff575b505060001982851b1c191690821b1782555b8551928311620002e95760049586548281811c91168015620002de575b89821014620002c9578681116200027e575b50879086851160011462000215578495509084929160009562000209575b50501b92600019911b1c19161782555b8315620001c9578360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856200018e6002546200040a565b60025583835282815260408320620001a781546200040a565b9055604051683635c9adc5dea000008152a36040516108bc9081620004388239f35b6064926040519262461bcd60e51b845283015260248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152fd5b01519350388062000145565b9291948416928760005284896000209460005b8b898383106200026657505050106200024b575b50505050811b01825562000155565b01519060f884600019921b161c19169055388080806200023c565b86860151895590970196948501948893500162000228565b87600052886000208780870160051c8201928b8810620002bf575b0160051c019083905b828110620002b257505062000127565b60008155018390620002a2565b9250819262000299565b602288634e487b7160e01b6000525260246000fd5b90607f169062000115565b634e487b7160e01b600052604160045260246000fd5b015190503880620000e6565b908785941691866000528b6000209260005b8d8282106200035757505084116200033e575b505050811b018255620000f8565b015160001983871b60f8161c1916905538808062000330565b83850151865588979095019493840193016200031d565b90915084600052896000208880850160051c8201928c8610620003ba575b918691869594930160051c01915b828110620003aa575050620000cf565b600081558594508691016200039a565b925081926200038c565b634e487b7160e01b600052602260045260246000fd5b91607f1691620000bb565b600080fd5b60408051919082016001600160401b03811183821017620002e957604052565b90683635c9adc5dea0000082018092116200042157565b634e487b7160e01b600052601160045260246000fdfe608060408181526004918236101561001657600080fd5b600092833560e01c91826306fdde031461049657508163095ea7b31461046c57816318160ddd1461044d57816323b872dd14610383578163313ce56714610367578163395093511461031757816370a08231146102e057816395d89b41146101c1578163a457c2d71461011957508063a9059cbb146100e95763dd62ed3e1461009e57600080fd5b346100e557806003193601126100e557806020926100ba6105bb565b6100c26105d6565b6001600160a01b0391821683526001865283832091168252845220549051908152f35b5080fd5b50346100e557806003193601126100e5576020906101126101086105bb565b602435903361060f565b5160018152f35b905082346101be57826003193601126101be576101346105bb565b918360243592338152600160205281812060018060a01b038616825260205220549082821061016d576020856101128585038733610784565b608490602086519162461bcd60e51b8352820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152fd5b80fd5b8383346100e557816003193601126100e557805190828454600181811c908083169283156102d6575b60209384841081146102c3578388529081156102a75750600114610252575b505050829003601f01601f191682019267ffffffffffffffff84118385101761023f575082918261023b925282610572565b0390f35b634e487b7160e01b815260418552602490fd5b8787529192508591837f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b8385106102935750505050830101858080610209565b80548886018301529301928490820161027d565b60ff1916878501525050151560051b8401019050858080610209565b634e487b7160e01b895260228a52602489fd5b91607f16916101ea565b5050346100e55760203660031901126100e55760209181906001600160a01b036103086105bb565b16815280845220549051908152f35b5050346100e557806003193601126100e55761011260209261036061033a6105bb565b338352600186528483206001600160a01b038216845286529184902054602435906105ec565b9033610784565b5050346100e557816003193601126100e5576020905160128152f35b839150346100e55760603660031901126100e55761039f6105bb565b6103a76105d6565b91846044359460018060a01b0384168152600160205281812033825260205220549060001982036103e1575b60208661011287878761060f565b84821061040a57509183916103ff6020969561011295033383610784565b9193948193506103d3565b606490602087519162461bcd60e51b8352820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152fd5b5050346100e557816003193601126100e5576020906002549051908152f35b5050346100e557806003193601126100e55760209061011261048c6105bb565b6024359033610784565b8490843461056e578260031936011261056e5782600354600181811c90808316928315610564575b60209384841081146102c3578388529081156102a7575060011461050e57505050829003601f01601f191682019267ffffffffffffffff84118385101761023f575082918261023b925282610572565b600387529192508591837fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b8385106105505750505050830101858080610209565b80548886018301529301928490820161053a565b91607f16916104be565b8280fd5b6020808252825181830181905290939260005b8281106105a757505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610585565b600435906001600160a01b03821682036105d157565b600080fd5b602435906001600160a01b03821682036105d157565b919082018092116105f957565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b0390811691821561073157169182156106e05760008281528060205260408120549180831061068c57604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9587602096528286520382822055868152206106818282546105ec565b9055604051908152a3565b60405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608490fd5b60405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608490fd5b60405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608490fd5b6001600160a01b0390811691821561083557169182156107e55760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925918360005260018252604060002085600052825280604060002055604051908152a3565b60405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608490fd5b60405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608490fdfea2646970667358221220cfaaa9e37635652ffecb0d8e79a0f61f335cb5f3da036f0b3153d0031c12e19664736f6c63430008120033", - "deployedBytecode": "0x608060408181526004918236101561001657600080fd5b600092833560e01c91826306fdde031461049657508163095ea7b31461046c57816318160ddd1461044d57816323b872dd14610383578163313ce56714610367578163395093511461031757816370a08231146102e057816395d89b41146101c1578163a457c2d71461011957508063a9059cbb146100e95763dd62ed3e1461009e57600080fd5b346100e557806003193601126100e557806020926100ba6105bb565b6100c26105d6565b6001600160a01b0391821683526001865283832091168252845220549051908152f35b5080fd5b50346100e557806003193601126100e5576020906101126101086105bb565b602435903361060f565b5160018152f35b905082346101be57826003193601126101be576101346105bb565b918360243592338152600160205281812060018060a01b038616825260205220549082821061016d576020856101128585038733610784565b608490602086519162461bcd60e51b8352820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152fd5b80fd5b8383346100e557816003193601126100e557805190828454600181811c908083169283156102d6575b60209384841081146102c3578388529081156102a75750600114610252575b505050829003601f01601f191682019267ffffffffffffffff84118385101761023f575082918261023b925282610572565b0390f35b634e487b7160e01b815260418552602490fd5b8787529192508591837f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b8385106102935750505050830101858080610209565b80548886018301529301928490820161027d565b60ff1916878501525050151560051b8401019050858080610209565b634e487b7160e01b895260228a52602489fd5b91607f16916101ea565b5050346100e55760203660031901126100e55760209181906001600160a01b036103086105bb565b16815280845220549051908152f35b5050346100e557806003193601126100e55761011260209261036061033a6105bb565b338352600186528483206001600160a01b038216845286529184902054602435906105ec565b9033610784565b5050346100e557816003193601126100e5576020905160128152f35b839150346100e55760603660031901126100e55761039f6105bb565b6103a76105d6565b91846044359460018060a01b0384168152600160205281812033825260205220549060001982036103e1575b60208661011287878761060f565b84821061040a57509183916103ff6020969561011295033383610784565b9193948193506103d3565b606490602087519162461bcd60e51b8352820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152fd5b5050346100e557816003193601126100e5576020906002549051908152f35b5050346100e557806003193601126100e55760209061011261048c6105bb565b6024359033610784565b8490843461056e578260031936011261056e5782600354600181811c90808316928315610564575b60209384841081146102c3578388529081156102a7575060011461050e57505050829003601f01601f191682019267ffffffffffffffff84118385101761023f575082918261023b925282610572565b600387529192508591837fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b8385106105505750505050830101858080610209565b80548886018301529301928490820161053a565b91607f16916104be565b8280fd5b6020808252825181830181905290939260005b8281106105a757505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610585565b600435906001600160a01b03821682036105d157565b600080fd5b602435906001600160a01b03821682036105d157565b919082018092116105f957565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b0390811691821561073157169182156106e05760008281528060205260408120549180831061068c57604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9587602096528286520382822055868152206106818282546105ec565b9055604051908152a3565b60405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608490fd5b60405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608490fd5b60405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608490fd5b6001600160a01b0390811691821561083557169182156107e55760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925918360005260018252604060002085600052825280604060002055604051908152a3565b60405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608490fd5b60405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608490fdfea2646970667358221220cfaaa9e37635652ffecb0d8e79a0f61f335cb5f3da036f0b3153d0031c12e19664736f6c63430008120033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts/contracts/L2.sol/L2.dbg.json b/packages/integration-tests/src/playbook/artifacts/contracts/L2.sol/L2.dbg.json deleted file mode 100644 index 31301548a5..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/contracts/L2.sol/L2.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../build-info/e49535a141eefaebe6d9aa3bc85bbb11.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts/contracts/L2.sol/L2.json b/packages/integration-tests/src/playbook/artifacts/contracts/L2.sol/L2.json deleted file mode 100644 index 3a1506989a..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/contracts/L2.sol/L2.json +++ /dev/null @@ -1,286 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "L2", - "sourceName": "contracts/L2.sol", - "abi": [ - { - "inputs": [], - "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" - } - ], - "bytecode": "0x608034620003b7576040906001600160401b039080830182811182821017620002b7578352600e81526020916d26191022a9219918103a37b5b2b760911b8383015283519184830183811083821117620002b75785526002835261261960f11b84840152805191808311620002b75760038054936001938486811c96168015620003ac575b8887101462000396578190601f9687811162000340575b508890878311600114620002d957600092620002cd575b505060001982841b1c191690841b1781555b8451918211620002b75760049485548481811c91168015620002ac575b8882101462000297578581116200024c575b508690858411600114620001e157938394918492600095620001d5575b50501b92600019911b1c19161782555b33156200019657505062000136600254620003bc565b600255336000526000815281600020620001518154620003bc565b905560007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef835192683635c9adc5dea0000084523393a3516108bc9081620003ea8239f35b60649284519262461bcd60e51b845283015260248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152fd5b01519350388062000110565b9190601f198416928760005284896000209460005b8b8983831062000234575050501062000219575b50505050811b01825562000120565b01519060f884600019921b161c19169055388080806200020a565b868601518955909701969485019488935001620001f6565b86600052876000208680860160051c8201928a87106200028d575b0160051c019085905b82811062000280575050620000f3565b6000815501859062000270565b9250819262000267565b602287634e487b7160e01b6000525260246000fd5b90607f1690620000e1565b634e487b7160e01b600052604160045260246000fd5b015190503880620000b2565b90869350601f19831691856000528a6000209260005b8c82821062000329575050841162000310575b505050811b018155620000c4565b015160001983861b60f8161c1916905538808062000302565b8385015186558a97909501949384019301620002ef565b90915083600052886000208780850160051c8201928b86106200038c575b918891869594930160051c01915b8281106200037c5750506200009b565b600081558594508891016200036c565b925081926200035e565b634e487b7160e01b600052602260045260246000fd5b95607f169562000084565b600080fd5b90683635c9adc5dea000008201809211620003d357565b634e487b7160e01b600052601160045260246000fdfe608060408181526004918236101561001657600080fd5b600092833560e01c91826306fdde031461049657508163095ea7b31461046c57816318160ddd1461044d57816323b872dd14610383578163313ce56714610367578163395093511461031757816370a08231146102e057816395d89b41146101c1578163a457c2d71461011957508063a9059cbb146100e95763dd62ed3e1461009e57600080fd5b346100e557806003193601126100e557806020926100ba6105bb565b6100c26105d6565b6001600160a01b0391821683526001865283832091168252845220549051908152f35b5080fd5b50346100e557806003193601126100e5576020906101126101086105bb565b602435903361060f565b5160018152f35b905082346101be57826003193601126101be576101346105bb565b918360243592338152600160205281812060018060a01b038616825260205220549082821061016d576020856101128585038733610784565b608490602086519162461bcd60e51b8352820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152fd5b80fd5b8383346100e557816003193601126100e557805190828454600181811c908083169283156102d6575b60209384841081146102c3578388529081156102a75750600114610252575b505050829003601f01601f191682019267ffffffffffffffff84118385101761023f575082918261023b925282610572565b0390f35b634e487b7160e01b815260418552602490fd5b8787529192508591837f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b8385106102935750505050830101858080610209565b80548886018301529301928490820161027d565b60ff1916878501525050151560051b8401019050858080610209565b634e487b7160e01b895260228a52602489fd5b91607f16916101ea565b5050346100e55760203660031901126100e55760209181906001600160a01b036103086105bb565b16815280845220549051908152f35b5050346100e557806003193601126100e55761011260209261036061033a6105bb565b338352600186528483206001600160a01b038216845286529184902054602435906105ec565b9033610784565b5050346100e557816003193601126100e5576020905160128152f35b839150346100e55760603660031901126100e55761039f6105bb565b6103a76105d6565b91846044359460018060a01b0384168152600160205281812033825260205220549060001982036103e1575b60208661011287878761060f565b84821061040a57509183916103ff6020969561011295033383610784565b9193948193506103d3565b606490602087519162461bcd60e51b8352820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152fd5b5050346100e557816003193601126100e5576020906002549051908152f35b5050346100e557806003193601126100e55760209061011261048c6105bb565b6024359033610784565b8490843461056e578260031936011261056e5782600354600181811c90808316928315610564575b60209384841081146102c3578388529081156102a7575060011461050e57505050829003601f01601f191682019267ffffffffffffffff84118385101761023f575082918261023b925282610572565b600387529192508591837fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b8385106105505750505050830101858080610209565b80548886018301529301928490820161053a565b91607f16916104be565b8280fd5b6020808252825181830181905290939260005b8281106105a757505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610585565b600435906001600160a01b03821682036105d157565b600080fd5b602435906001600160a01b03821682036105d157565b919082018092116105f957565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b0390811691821561073157169182156106e05760008281528060205260408120549180831061068c57604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9587602096528286520382822055868152206106818282546105ec565b9055604051908152a3565b60405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608490fd5b60405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608490fd5b60405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608490fd5b6001600160a01b0390811691821561083557169182156107e55760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925918360005260018252604060002085600052825280604060002055604051908152a3565b60405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608490fd5b60405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608490fdfea2646970667358221220bc638fb6385249a1e52fd832a2ee218efbe97ca953308423b36ceca2cdb87c9b64736f6c63430008120033", - "deployedBytecode": "0x608060408181526004918236101561001657600080fd5b600092833560e01c91826306fdde031461049657508163095ea7b31461046c57816318160ddd1461044d57816323b872dd14610383578163313ce56714610367578163395093511461031757816370a08231146102e057816395d89b41146101c1578163a457c2d71461011957508063a9059cbb146100e95763dd62ed3e1461009e57600080fd5b346100e557806003193601126100e557806020926100ba6105bb565b6100c26105d6565b6001600160a01b0391821683526001865283832091168252845220549051908152f35b5080fd5b50346100e557806003193601126100e5576020906101126101086105bb565b602435903361060f565b5160018152f35b905082346101be57826003193601126101be576101346105bb565b918360243592338152600160205281812060018060a01b038616825260205220549082821061016d576020856101128585038733610784565b608490602086519162461bcd60e51b8352820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152fd5b80fd5b8383346100e557816003193601126100e557805190828454600181811c908083169283156102d6575b60209384841081146102c3578388529081156102a75750600114610252575b505050829003601f01601f191682019267ffffffffffffffff84118385101761023f575082918261023b925282610572565b0390f35b634e487b7160e01b815260418552602490fd5b8787529192508591837f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b8385106102935750505050830101858080610209565b80548886018301529301928490820161027d565b60ff1916878501525050151560051b8401019050858080610209565b634e487b7160e01b895260228a52602489fd5b91607f16916101ea565b5050346100e55760203660031901126100e55760209181906001600160a01b036103086105bb565b16815280845220549051908152f35b5050346100e557806003193601126100e55761011260209261036061033a6105bb565b338352600186528483206001600160a01b038216845286529184902054602435906105ec565b9033610784565b5050346100e557816003193601126100e5576020905160128152f35b839150346100e55760603660031901126100e55761039f6105bb565b6103a76105d6565b91846044359460018060a01b0384168152600160205281812033825260205220549060001982036103e1575b60208661011287878761060f565b84821061040a57509183916103ff6020969561011295033383610784565b9193948193506103d3565b606490602087519162461bcd60e51b8352820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152fd5b5050346100e557816003193601126100e5576020906002549051908152f35b5050346100e557806003193601126100e55760209061011261048c6105bb565b6024359033610784565b8490843461056e578260031936011261056e5782600354600181811c90808316928315610564575b60209384841081146102c3578388529081156102a7575060011461050e57505050829003601f01601f191682019267ffffffffffffffff84118385101761023f575082918261023b925282610572565b600387529192508591837fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b8385106105505750505050830101858080610209565b80548886018301529301928490820161053a565b91607f16916104be565b8280fd5b6020808252825181830181905290939260005b8281106105a757505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610585565b600435906001600160a01b03821682036105d157565b600080fd5b602435906001600160a01b03821682036105d157565b919082018092116105f957565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b0390811691821561073157169182156106e05760008281528060205260408120549180831061068c57604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9587602096528286520382822055868152206106818282546105ec565b9055604051908152a3565b60405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608490fd5b60405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608490fd5b60405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608490fd5b6001600160a01b0390811691821561083557169182156107e55760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925918360005260018252604060002085600052825280604060002055604051908152a3565b60405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608490fd5b60405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608490fdfea2646970667358221220bc638fb6385249a1e52fd832a2ee218efbe97ca953308423b36ceca2cdb87c9b64736f6c63430008120033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts/contracts/Middle.sol/IGreeter.dbg.json b/packages/integration-tests/src/playbook/artifacts/contracts/Middle.sol/IGreeter.dbg.json deleted file mode 100644 index 31301548a5..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/contracts/Middle.sol/IGreeter.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../build-info/e49535a141eefaebe6d9aa3bc85bbb11.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts/contracts/Middle.sol/IGreeter.json b/packages/integration-tests/src/playbook/artifacts/contracts/Middle.sol/IGreeter.json deleted file mode 100644 index a60844fdfc..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/contracts/Middle.sol/IGreeter.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IGreeter", - "sourceName": "contracts/Middle.sol", - "abi": [ - { - "inputs": [], - "name": "greet", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "name": "setGreeting", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts/contracts/Middle.sol/Middle.dbg.json b/packages/integration-tests/src/playbook/artifacts/contracts/Middle.sol/Middle.dbg.json deleted file mode 100644 index 31301548a5..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/contracts/Middle.sol/Middle.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../build-info/e49535a141eefaebe6d9aa3bc85bbb11.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts/contracts/Middle.sol/Middle.json b/packages/integration-tests/src/playbook/artifacts/contracts/Middle.sol/Middle.json deleted file mode 100644 index 25dff8dc19..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/contracts/Middle.sol/Middle.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "Middle", - "sourceName": "contracts/Middle.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "_myAddress", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [], - "name": "callGreeter", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "myAddress", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "string", - "name": "newGreeting", - "type": "string" - } - ], - "name": "setGreet", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x60803461007457601f6103aa38819003918201601f19168301916001600160401b038311848410176100795780849260209460405283398101031261007457516001600160a01b0381169081900361007457600080546001600160a01b03191691909117905560405161031a90816100908239f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe608060408181526004908136101561001657600080fd5b600092833560e01c90816326b85ee11461021957508381639698086b14610130575063d7b4291c1461004757600080fd5b3461012c578260031936011261012c578254815163cfae321760e01b815292849184919082906001600160a01b03165afa918215610122578392610097575b81518061009385826102b8565b0390f35b9091503d8084833e6100a98183610241565b81019060208183031261011a5780519067ffffffffffffffff821161011e570181601f8201121561011a578051936100e085610279565b926100ed85519485610241565b858452602086840101116101175750610093936101109160208085019101610295565b9038610086565b80fd5b8380fd5b8480fd5b81513d85823e3d90fd5b8280fd5b929050346102155760203660031901126102155767ffffffffffffffff813581811161011e573660238201121561011e578083013561016e81610279565b9161017b86519384610241565b818352366024838301011161021157818792602460209301838601378301015284546001600160a01b031690813b1561020d5785916101ce918651978880948193635209b43160e11b83528983016102b8565b03925af18015610203576101e0578480f35b83116101f0575052388080808480f35b634e487b7160e01b845260419052602483fd5b83513d87823e3d90fd5b8580fd5b8680fd5b5050fd5b84903461023d578160031936011261023d5790546001600160a01b03168152602090f35b5080fd5b90601f8019910116810190811067ffffffffffffffff82111761026357604052565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff811161026357601f01601f191660200190565b60005b8381106102a85750506000910152565b8181015183820152602001610298565b604091602082526102d88151809281602086015260208686019101610295565b601f01601f191601019056fea26469706673582212209f246326f8c7ff4969b718fee6aaa69dd577ca0da481df5e161edd6e211be7ba64736f6c63430008120033", - "deployedBytecode": "0x608060408181526004908136101561001657600080fd5b600092833560e01c90816326b85ee11461021957508381639698086b14610130575063d7b4291c1461004757600080fd5b3461012c578260031936011261012c578254815163cfae321760e01b815292849184919082906001600160a01b03165afa918215610122578392610097575b81518061009385826102b8565b0390f35b9091503d8084833e6100a98183610241565b81019060208183031261011a5780519067ffffffffffffffff821161011e570181601f8201121561011a578051936100e085610279565b926100ed85519485610241565b858452602086840101116101175750610093936101109160208085019101610295565b9038610086565b80fd5b8380fd5b8480fd5b81513d85823e3d90fd5b8280fd5b929050346102155760203660031901126102155767ffffffffffffffff813581811161011e573660238201121561011e578083013561016e81610279565b9161017b86519384610241565b818352366024838301011161021157818792602460209301838601378301015284546001600160a01b031690813b1561020d5785916101ce918651978880948193635209b43160e11b83528983016102b8565b03925af18015610203576101e0578480f35b83116101f0575052388080808480f35b634e487b7160e01b845260419052602483fd5b83513d87823e3d90fd5b8580fd5b8680fd5b5050fd5b84903461023d578160031936011261023d5790546001600160a01b03168152602090f35b5080fd5b90601f8019910116810190811067ffffffffffffffff82111761026357604052565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff811161026357601f01601f191660200190565b60005b8381106102a85750506000910152565b8181015183820152602001610298565b604091602082526102d88151809281602086015260208686019101610295565b601f01601f191601019056fea26469706673582212209f246326f8c7ff4969b718fee6aaa69dd577ca0da481df5e161edd6e211be7ba64736f6c63430008120033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts/contracts/MultiTransfer.sol/TokenF2L2.dbg.json b/packages/integration-tests/src/playbook/artifacts/contracts/MultiTransfer.sol/TokenF2L2.dbg.json deleted file mode 100644 index 31301548a5..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/contracts/MultiTransfer.sol/TokenF2L2.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../build-info/e49535a141eefaebe6d9aa3bc85bbb11.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts/contracts/MultiTransfer.sol/TokenF2L2.json b/packages/integration-tests/src/playbook/artifacts/contracts/MultiTransfer.sol/TokenF2L2.json deleted file mode 100644 index 49b6f4deae..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/contracts/MultiTransfer.sol/TokenF2L2.json +++ /dev/null @@ -1,107 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "TokenF2L2", - "sourceName": "contracts/MultiTransfer.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "_owner", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_from", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_timestamp", - "type": "uint256" - } - ], - "name": "Paid", - "type": "event" - }, - { - "inputs": [], - "name": "getBalance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address[]", - "name": "_recivers", - "type": "address[]" - }, - { - "internalType": "address[]", - "name": "_tokenAddresses", - "type": "address[]" - }, - { - "internalType": "uint256[]", - "name": "_tokenAmounts", - "type": "uint256[]" - } - ], - "name": "multiTransfer", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "pay", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "stateMutability": "payable", - "type": "receive" - } - ], - "bytecode": "0x60803461007457601f61082a38819003918201601f19168301916001600160401b038311848410176100795780849260209460405283398101031261007457516001600160a01b0381169081900361007457600080546001600160a01b03191691909117905560405161079a90816100908239f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe60806040526004361015610023575b361561001957600080fd5b610021610275565b005b6000803560e01c90816312065fe01461007a5781631b9265b814610061575080638da5cb5b1461005c5763cd72250d0361000e576101bd565b610094565b8060031936011261007757610074610275565b80f35b80fd5b346100775780600319360112610077574760805260206080f35b346100bd5760003660031901126100bd576000546040516001600160a01b039091168152602090f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b6080810190811067ffffffffffffffff8211176100f457604052565b6100c2565b6040810190811067ffffffffffffffff8211176100f457604052565b90601f8019910116810190811067ffffffffffffffff8211176100f457604052565b67ffffffffffffffff81116100f45760051b60200190565b81601f820112156100bd5780359161016683610137565b926101746040519485610115565b808452602092838086019260051b8201019283116100bd578301905b82821061019e575050505090565b81356001600160a01b03811681036100bd578152908301908301610190565b60603660031901126100bd5767ffffffffffffffff6004358181116100bd576101ea90369060040161014f565b906024358181116100bd5761020390369060040161014f565b6044359182116100bd57366023830112156100bd5781600401359261022784610137565b926102356040519485610115565b84845260209460248686019160051b830101913683116100bd57602401905b828210610266576100218686866102a9565b81358152908601908601610254565b6040513481524260208201527fdf9a51129930649214df58f542322c245372c6f2fa6fc3c9b40d927c597cd23060403392a2565b60005491939290916001600160a01b0316330361037d576102cd84518251146103ba565b6102da84518351146103ba565b60005b845181101561037657806103136103076102fa610340948961042a565b516001600160a01b031690565b6001600160a01b031690565b6103455761033b61032a6103076102fa848861042a565b610334838661042a565b519061060e565b610405565b6102dd565b61033b6103586103076102fa848a61042a565b6103656102fa848861042a565b61036f848761042a565b5191610454565b5050509050565b60405162461bcd60e51b81526020600482015260156024820152742cb7ba9030b932903737ba103a34329037bbb732b960591b6044820152606490fd5b156103c157565b606460405162461bcd60e51b815260206004820152602060248201527f417272617973206d7573742068617665207468652073616d65206c656e6774686044820152fd5b60001981146104145760010190565b634e487b7160e01b600052601160045260246000fd5b805182101561043e5760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b60405163a9059cbb60e01b60208083019182526001600160a01b03948516602484015260448084019690965294825290929091610490846100d8565b16906040519261049f846100f9565b8484527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656485850152823b15610512576104eb939260009283809351925af16104e56105ce565b906106e9565b805190816104f857505050565b826105109361050b938301019101610557565b61056f565b565b60405162461bcd60e51b815260048101869052601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b908160209103126100bd575180151581036100bd5790565b1561057657565b60405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608490fd5b3d15610609573d9067ffffffffffffffff82116100f457604051916105fd601f8201601f191660200184610115565b82523d6000602084013e565b606090565b8147106106a4576000918291829182916001600160a01b03165af16106316105ce565b501561063957565b60405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608490fd5b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606490fd5b909190156106f5575090565b8151156107055750805190602001fd5b6040519062461bcd60e51b82528160208060048301528251908160248401526000935b82851061074b575050604492506000838284010152601f80199101168101030190fd5b848101820151868601604401529381019385935061072856fea264697066735822122060555dc8e10dce7d7d6e3e1a4e2f44d4de56d3ebdece296c24ffaa6553a61a1564736f6c63430008120033", - "deployedBytecode": "0x60806040526004361015610023575b361561001957600080fd5b610021610275565b005b6000803560e01c90816312065fe01461007a5781631b9265b814610061575080638da5cb5b1461005c5763cd72250d0361000e576101bd565b610094565b8060031936011261007757610074610275565b80f35b80fd5b346100775780600319360112610077574760805260206080f35b346100bd5760003660031901126100bd576000546040516001600160a01b039091168152602090f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b6080810190811067ffffffffffffffff8211176100f457604052565b6100c2565b6040810190811067ffffffffffffffff8211176100f457604052565b90601f8019910116810190811067ffffffffffffffff8211176100f457604052565b67ffffffffffffffff81116100f45760051b60200190565b81601f820112156100bd5780359161016683610137565b926101746040519485610115565b808452602092838086019260051b8201019283116100bd578301905b82821061019e575050505090565b81356001600160a01b03811681036100bd578152908301908301610190565b60603660031901126100bd5767ffffffffffffffff6004358181116100bd576101ea90369060040161014f565b906024358181116100bd5761020390369060040161014f565b6044359182116100bd57366023830112156100bd5781600401359261022784610137565b926102356040519485610115565b84845260209460248686019160051b830101913683116100bd57602401905b828210610266576100218686866102a9565b81358152908601908601610254565b6040513481524260208201527fdf9a51129930649214df58f542322c245372c6f2fa6fc3c9b40d927c597cd23060403392a2565b60005491939290916001600160a01b0316330361037d576102cd84518251146103ba565b6102da84518351146103ba565b60005b845181101561037657806103136103076102fa610340948961042a565b516001600160a01b031690565b6001600160a01b031690565b6103455761033b61032a6103076102fa848861042a565b610334838661042a565b519061060e565b610405565b6102dd565b61033b6103586103076102fa848a61042a565b6103656102fa848861042a565b61036f848761042a565b5191610454565b5050509050565b60405162461bcd60e51b81526020600482015260156024820152742cb7ba9030b932903737ba103a34329037bbb732b960591b6044820152606490fd5b156103c157565b606460405162461bcd60e51b815260206004820152602060248201527f417272617973206d7573742068617665207468652073616d65206c656e6774686044820152fd5b60001981146104145760010190565b634e487b7160e01b600052601160045260246000fd5b805182101561043e5760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b60405163a9059cbb60e01b60208083019182526001600160a01b03948516602484015260448084019690965294825290929091610490846100d8565b16906040519261049f846100f9565b8484527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656485850152823b15610512576104eb939260009283809351925af16104e56105ce565b906106e9565b805190816104f857505050565b826105109361050b938301019101610557565b61056f565b565b60405162461bcd60e51b815260048101869052601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b908160209103126100bd575180151581036100bd5790565b1561057657565b60405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608490fd5b3d15610609573d9067ffffffffffffffff82116100f457604051916105fd601f8201601f191660200184610115565b82523d6000602084013e565b606090565b8147106106a4576000918291829182916001600160a01b03165af16106316105ce565b501561063957565b60405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608490fd5b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606490fd5b909190156106f5575090565b8151156107055750805190602001fd5b6040519062461bcd60e51b82528160208060048301528251908160248401526000935b82851061074b575050604492506000838284010152601f80199101168101030190fd5b848101820151868601604401529381019385935061072856fea264697066735822122060555dc8e10dce7d7d6e3e1a4e2f44d4de56d3ebdece296c24ffaa6553a61a1564736f6c63430008120033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts/contracts/MyERC20.sol/MyERC20.dbg.json b/packages/integration-tests/src/playbook/artifacts/contracts/MyERC20.sol/MyERC20.dbg.json deleted file mode 100644 index 31301548a5..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/contracts/MyERC20.sol/MyERC20.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../build-info/e49535a141eefaebe6d9aa3bc85bbb11.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts/contracts/MyERC20.sol/MyERC20.json b/packages/integration-tests/src/playbook/artifacts/contracts/MyERC20.sol/MyERC20.json deleted file mode 100644 index 3de2dda8fc..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/contracts/MyERC20.sol/MyERC20.json +++ /dev/null @@ -1,326 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "MyERC20", - "sourceName": "contracts/MyERC20.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "string", - "name": "name_", - "type": "string" - }, - { - "internalType": "string", - "name": "symbol_", - "type": "string" - }, - { - "internalType": "uint8", - "name": "decimals_", - "type": "uint8" - } - ], - "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": [ - { - "internalType": "address", - "name": "_to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - } - ], - "name": "mint", - "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" - } - ], - "bytecode": "0x6080604052346200033b5762000d6f803803806200001d8162000340565b92833981016060828203126200033b5781516001600160401b03908181116200033b57826200004e91850162000366565b90602092838501518281116200033b576040916200006e91870162000366565b9401519360ff85168095036200033b5782518281116200023b576003918254916001958684811c9416801562000330575b888510146200031a578190601f94858111620002c4575b5088908583116001146200025d5760009262000251575b505060001982861b1c191690861b1783555b80519384116200023b5760049586548681811c9116801562000230575b828210146200021b57838111620001d0575b508092851160011462000162575093839491849260009562000156575b50501b92600019911b1c19161790555b60ff1960055416176005556040516109969081620003d98239f35b0151935038806200012b565b92919084601f1981168860005285600020956000905b89838310620001b557505050106200019a575b50505050811b0190556200013b565b01519060f884600019921b161c19169055388080806200018b565b85870151895590970196948501948893509081019062000178565b87600052816000208480880160051c82019284891062000211575b0160051c019087905b828110620002045750506200010e565b60008155018790620001f4565b92508192620001eb565b602288634e487b7160e01b6000525260246000fd5b90607f1690620000fc565b634e487b7160e01b600052604160045260246000fd5b015190503880620000cd565b90889350601f19831691876000528a6000209260005b8c828210620002ad575050841162000294575b505050811b018355620000df565b015160001983881b60f8161c1916905538808062000286565b8385015186558c9790950194938401930162000273565b90915085600052886000208580850160051c8201928b861062000310575b918a91869594930160051c01915b82811062000300575050620000b6565b600081558594508a9101620002f0565b92508192620002e2565b634e487b7160e01b600052602260045260246000fd5b93607f16936200009f565b600080fd5b6040519190601f01601f191682016001600160401b038111838210176200023b57604052565b919080601f840112156200033b5782516001600160401b0381116200023b576020906200039c601f8201601f1916830162000340565b928184528282870101116200033b5760005b818110620003c457508260009394955001015290565b8581018301518482018401528201620003ae56fe608060408181526004918236101561001657600080fd5b600092833560e01c91826306fdde031461057057508163095ea7b31461054657816318160ddd1461052757816323b872dd1461045d578163313ce5671461043b57816339509351146103eb57816340c10f191461032257816370a08231146102eb57816395d89b41146101cc578163a457c2d71461012457508063a9059cbb146100f45763dd62ed3e146100a957600080fd5b346100f057806003193601126100f057806020926100c5610695565b6100cd6106b0565b6001600160a01b0391821683526001865283832091168252845220549051908152f35b5080fd5b50346100f057806003193601126100f05760209061011d610113610695565b60243590336106e9565b5160018152f35b905082346101c957826003193601126101c95761013f610695565b918360243592338152600160205281812060018060a01b03861682526020522054908282106101785760208561011d858503873361085e565b608490602086519162461bcd60e51b8352820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152fd5b80fd5b8383346100f057816003193601126100f057805190828454600181811c908083169283156102e1575b60209384841081146102ce578388529081156102b2575060011461025d575b505050829003601f01601f191682019267ffffffffffffffff84118385101761024a575082918261024692528261064c565b0390f35b634e487b7160e01b815260418552602490fd5b8787529192508591837f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b83851061029e5750505050830101858080610214565b805488860183015293019284908201610288565b60ff1916878501525050151560051b8401019050858080610214565b634e487b7160e01b895260228a52602489fd5b91607f16916101f5565b5050346100f05760203660031901126100f05760209181906001600160a01b03610313610695565b16815280845220549051908152f35b8284346101c957816003193601126101c95761033c610695565b6001600160a01b03169060243582156103a8576020809550816103827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef936002546106c6565b6002558484528382528584206103998282546106c6565b90558551908152a35160018152f35b835162461bcd60e51b8152602081870152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606490fd5b5050346100f057806003193601126100f05761011d60209261043461040e610695565b338352600186528483206001600160a01b038216845286529184902054602435906106c6565b903361085e565b5050346100f057816003193601126100f05760209060ff600554169051908152f35b839150346100f05760603660031901126100f057610479610695565b6104816106b0565b91846044359460018060a01b0384168152600160205281812033825260205220549060001982036104bb575b60208661011d8787876106e9565b8482106104e457509183916104d96020969561011d9503338361085e565b9193948193506104ad565b606490602087519162461bcd60e51b8352820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152fd5b5050346100f057816003193601126100f0576020906002549051908152f35b5050346100f057806003193601126100f05760209061011d610566610695565b602435903361085e565b8490843461064857826003193601126106485782600354600181811c9080831692831561063e575b60209384841081146102ce578388529081156102b257506001146105e857505050829003601f01601f191682019267ffffffffffffffff84118385101761024a575082918261024692528261064c565b600387529192508591837fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b83851061062a5750505050830101858080610214565b805488860183015293019284908201610614565b91607f1691610598565b8280fd5b6020808252825181830181905290939260005b82811061068157505060409293506000838284010152601f8019910116010190565b81810186015184820160400152850161065f565b600435906001600160a01b03821682036106ab57565b600080fd5b602435906001600160a01b03821682036106ab57565b919082018092116106d357565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b0390811691821561080b57169182156107ba5760008281528060205260408120549180831061076657604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef95876020965282865203828220558681522061075b8282546106c6565b9055604051908152a3565b60405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608490fd5b60405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608490fd5b60405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608490fd5b6001600160a01b0390811691821561090f57169182156108bf5760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925918360005260018252604060002085600052825280604060002055604051908152a3565b60405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608490fd5b60405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608490fdfea2646970667358221220ecf6466b8716662ffc671dc3c32439cb6398425596e4462e0de3e0a25972740064736f6c63430008120033", - "deployedBytecode": "0x608060408181526004918236101561001657600080fd5b600092833560e01c91826306fdde031461057057508163095ea7b31461054657816318160ddd1461052757816323b872dd1461045d578163313ce5671461043b57816339509351146103eb57816340c10f191461032257816370a08231146102eb57816395d89b41146101cc578163a457c2d71461012457508063a9059cbb146100f45763dd62ed3e146100a957600080fd5b346100f057806003193601126100f057806020926100c5610695565b6100cd6106b0565b6001600160a01b0391821683526001865283832091168252845220549051908152f35b5080fd5b50346100f057806003193601126100f05760209061011d610113610695565b60243590336106e9565b5160018152f35b905082346101c957826003193601126101c95761013f610695565b918360243592338152600160205281812060018060a01b03861682526020522054908282106101785760208561011d858503873361085e565b608490602086519162461bcd60e51b8352820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152fd5b80fd5b8383346100f057816003193601126100f057805190828454600181811c908083169283156102e1575b60209384841081146102ce578388529081156102b2575060011461025d575b505050829003601f01601f191682019267ffffffffffffffff84118385101761024a575082918261024692528261064c565b0390f35b634e487b7160e01b815260418552602490fd5b8787529192508591837f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b83851061029e5750505050830101858080610214565b805488860183015293019284908201610288565b60ff1916878501525050151560051b8401019050858080610214565b634e487b7160e01b895260228a52602489fd5b91607f16916101f5565b5050346100f05760203660031901126100f05760209181906001600160a01b03610313610695565b16815280845220549051908152f35b8284346101c957816003193601126101c95761033c610695565b6001600160a01b03169060243582156103a8576020809550816103827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef936002546106c6565b6002558484528382528584206103998282546106c6565b90558551908152a35160018152f35b835162461bcd60e51b8152602081870152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606490fd5b5050346100f057806003193601126100f05761011d60209261043461040e610695565b338352600186528483206001600160a01b038216845286529184902054602435906106c6565b903361085e565b5050346100f057816003193601126100f05760209060ff600554169051908152f35b839150346100f05760603660031901126100f057610479610695565b6104816106b0565b91846044359460018060a01b0384168152600160205281812033825260205220549060001982036104bb575b60208661011d8787876106e9565b8482106104e457509183916104d96020969561011d9503338361085e565b9193948193506104ad565b606490602087519162461bcd60e51b8352820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152fd5b5050346100f057816003193601126100f0576020906002549051908152f35b5050346100f057806003193601126100f05760209061011d610566610695565b602435903361085e565b8490843461064857826003193601126106485782600354600181811c9080831692831561063e575b60209384841081146102ce578388529081156102b257506001146105e857505050829003601f01601f191682019267ffffffffffffffff84118385101761024a575082918261024692528261064c565b600387529192508591837fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b83851061062a5750505050830101858080610214565b805488860183015293019284908201610614565b91607f1691610598565b8280fd5b6020808252825181830181905290939260005b82811061068157505060409293506000838284010152601f8019910116010190565b81810186015184820160400152850161065f565b600435906001600160a01b03821682036106ab57565b600080fd5b602435906001600160a01b03821682036106ab57565b919082018092116106d357565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b0390811691821561080b57169182156107ba5760008281528060205260408120549180831061076657604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef95876020965282865203828220558681522061075b8282546106c6565b9055604051908152a3565b60405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608490fd5b60405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608490fd5b60405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608490fd5b6001600160a01b0390811691821561090f57169182156108bf5760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925918360005260018252604060002085600052825280604060002055604051908152a3565b60405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608490fd5b60405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608490fdfea2646970667358221220ecf6466b8716662ffc671dc3c32439cb6398425596e4462e0de3e0a25972740064736f6c63430008120033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts/contracts/MyNFT.sol/MyNFT.dbg.json b/packages/integration-tests/src/playbook/artifacts/contracts/MyNFT.sol/MyNFT.dbg.json deleted file mode 100644 index 31301548a5..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/contracts/MyNFT.sol/MyNFT.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../build-info/e49535a141eefaebe6d9aa3bc85bbb11.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts/contracts/MyNFT.sol/MyNFT.json b/packages/integration-tests/src/playbook/artifacts/contracts/MyNFT.sol/MyNFT.json deleted file mode 100644 index 74d8fd3fa9..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/contracts/MyNFT.sol/MyNFT.json +++ /dev/null @@ -1,422 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "MyNFT", - "sourceName": "contracts/MyNFT.sol", - "abi": [ - { - "inputs": [], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "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": "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": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "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": "address", - "name": "recipient", - "type": "address" - }, - { - "internalType": "string", - "name": "tokenURI", - "type": "string" - } - ], - "name": "mintNFT", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "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": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "ownerOf", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "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": "nonpayable", - "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": "nonpayable", - "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": "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": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x60803462000352576001600160401b03906040818101838111838210176200033c5781526005825260209164135e53919560da1b83820152815193828501858110828211176200033c578352600385526213919560ea1b8486015281518181116200033c576000948554916001948584811c9416801562000331575b838510146200031d578190601f94858111620002ca575b508390858311600114620002665789926200025a575b5050600019600383901b1c191690851b1786555b8651928311620002465783548481811c911680156200023b575b828210146200022757828111620001df575b5080918311600114620001785750849582939495926200016c575b5050600019600383901b1c191690821b1790555b60078054336001600160a01b03198216811790925591519290916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a36118ef9081620003588239f35b01519050388062000103565b90601f198316968487528287209287905b898210620001c7575050838596979810620001ad575b505050811b01905562000117565b015160001960f88460031b161c191690553880806200019f565b80878596829496860151815501950193019062000189565b8487528187208380860160051c8201928487106200021d575b0160051c019085905b82811062000211575050620000e8565b88815501859062000201565b92508192620001f8565b634e487b7160e01b87526022600452602487fd5b90607f1690620000d6565b634e487b7160e01b86526041600452602486fd5b015190503880620000a8565b898052848a208894509190601f1984168b5b87828210620002b3575050841162000299575b505050811b018655620000bc565b015160001960f88460031b161c191690553880806200028b565b8385015186558b9790950194938401930162000278565b9091508880528389208580850160051c82019286861062000313575b918991869594930160051c01915b8281106200030457505062000092565b8b8155859450899101620002f4565b92508192620002e6565b634e487b7160e01b88526022600452602488fd5b93607f16936200007b565b634e487b7160e01b600052604160045260246000fd5b600080fdfe6080604052600436101561001257600080fd5b60003560e01c806301ffc9a71461012757806306fdde0314610122578063081812fc1461011d578063095ea7b31461011857806323b872dd1461011357806342842e0e1461010e5780636352211e1461010957806370a0823114610104578063715018a6146100ff5780638da5cb5b146100fa57806395d89b41146100f5578063a22cb465146100f0578063b88d4fde146100eb578063c87b56dd146100e6578063e985e9c5146100e1578063eacabe14146100dc5763f2fde38b146100d757600080fd5b610ac1565b610938565b6108db565b6108a8565b610848565b6106b0565b61060b565b6105e2565b610581565b6104df565b6104c1565b610499565b610470565b61034c565b6102f0565b61020d565b610143565b6001600160e01b031981160361013e57565b600080fd5b3461013e57602036600319011261013e5760206004356101628161012c565b63ffffffff60e01b166380ac58cd60e01b81149081156101a0575b811561018f575b506040519015158152f35b6301ffc9a760e01b14905038610184565b635b5e139f60e01b8114915061017d565b60005b8381106101c45750506000910152565b81810151838201526020016101b4565b906020916101ed815180928185528580860191016101b1565b601f01601f1916010190565b90602061020a9281815201906101d4565b90565b3461013e576000806003193601126102ed576040519080805461022f81610c63565b808552916001918083169081156102c35750600114610269575b61026585610259818703826107d3565b604051918291826101f9565b0390f35b80809450527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b8284106102ab57505050810160200161025982610265610249565b80546020858701810191909152909301928101610290565b8695506102659693506020925061025994915060ff191682840152151560051b8201019293610249565b80fd5b3461013e57602036600319011261013e57602061030e600435610db5565b6040516001600160a01b039091168152f35b600435906001600160a01b038216820361013e57565b602435906001600160a01b038216820361013e57565b3461013e57604036600319011261013e57610365610320565b60243561037181610beb565b916001600160a01b0380841690821681146103ec576103a39361039e9133149081156103a5575b50610d43565b611254565b005b6001600160a01b031660009081526005602052604090206103e691506103df9033905b9060018060a01b0316600052602052604060002090565b5460ff1690565b38610398565b60405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608490fd5b606090600319011261013e576001600160a01b0390600435828116810361013e5791602435908116810361013e579060443590565b3461013e576103a36104813661043b565b9161049461048f8433610f5b565b610e47565b6110e9565b3461013e576103a36104aa3661043b565b90604051926104b8846107b2565b60008452610ec0565b3461013e57602036600319011261013e57602061030e600435610beb565b3461013e57602036600319011261013e576001600160a01b03610500610320565b168015610529576000526003602052610265604060002054604051918291829190602083019252565b60405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604482015269726f206164647265737360b01b6064820152608490fd5b3461013e576000806003193601126102ed5760075481906001600160a01b038116906105ae338314610b57565b6001600160a01b0319166007557f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b3461013e57600036600319011261013e576007546040516001600160a01b039091168152602090f35b3461013e576000806003193601126102ed576040519080600180549161063083610c63565b808652928281169081156102c357506001146106565761026585610259818703826107d3565b92508083527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b82841061069857505050810160200161025982610265610249565b8054602085870181019190915290930192810161067d565b3461013e57604036600319011261013e576106c9610320565b602435801515810361013e576001600160a01b0382169133831461075757816107146107259233600052600560205260406000209060018060a01b0316600052602052604060002090565b9060ff801983541691151516179055565b604051901515815233907f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3190602090a3005b60405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606490fd5b634e487b7160e01b600052604160045260246000fd5b6020810190811067ffffffffffffffff8211176107ce57604052565b61079c565b90601f8019910116810190811067ffffffffffffffff8211176107ce57604052565b67ffffffffffffffff81116107ce57601f01601f191660200190565b92919261081d826107f5565b9161082b60405193846107d3565b82948184528183011161013e578281602093846000960137010152565b3461013e57608036600319011261013e57610861610320565b610869610336565b6064359167ffffffffffffffff831161013e573660238401121561013e5761089e6103a3933690602481600401359101610811565b9160443591610ec0565b3461013e57602036600319011261013e576102656108c7600435611408565b6040519182916020835260208301906101d4565b3461013e57604036600319011261013e57602060ff61092c6108fb610320565b610903610336565b6001600160a01b0391821660009081526005865260408082209290931681526020919091522090565b54166040519015158152f35b3461013e57604036600319011261013e57610951610320565b60243567ffffffffffffffff811161013e573660238201121561013e57610982903690602481600401359101610811565b6007546001600160a01b03919061099c9083163314610b57565b60016008540191826008558316908115610a7d5782610a6d92610a41610265966109ea6109e56109e186600052600260205260018060a01b0360406000205416151590565b1590565b6116c3565b6001600160a01b0381166000908152600360205260409020610a0c81546110cd565b9055610a22846000526002602052604060002090565b80546001600160a01b0319166001600160a01b03909216919091179055565b60007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a482611763565b6040519081529081906020820190565b606460405162461bcd60e51b815260206004820152602060248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152fd5b3461013e57602036600319011261013e57610ada610320565b6007546001600160a01b0390610af39082163314610b57565b811615610b03576103a390610ba2565b60405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608490fd5b15610b5e57565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b600780546001600160a01b039283166001600160a01b0319821681179092559091167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3565b6000908152600260205260409020546001600160a01b03168015610c0c5790565b60405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201526832b73a103a37b5b2b760b91b6064820152608490fd5b90600182811c92168015610c93575b6020831014610c7d57565b634e487b7160e01b600052602260045260246000fd5b91607f1691610c72565b9060405191826000825492610cb184610c63565b908184526001948581169081600014610d205750600114610cdd575b5050610cdb925003836107d3565b565b9093915060005260209081600020936000915b818310610d08575050610cdb93508201013880610ccd565b85548884018501529485019487945091830191610cf0565b915050610cdb94506020925060ff191682840152151560051b8201013880610ccd565b15610d4a57565b60405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c00000000000000006064820152608490fd5b6000818152600260205260409020546001600160a01b031615610ded576000908152600460205260409020546001600160a01b031690565b60405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608490fd5b15610e4e57565b60405162461bcd60e51b815260206004820152603160248201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6044820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b6064820152608490fd5b60405190610eba826107b2565b60008252565b90610ee4939291610ed461048f8433610f5b565b610edf8383836110e9565b61132e565b15610eeb57565b60405162461bcd60e51b815280610f0460048201610f08565b0390fd5b60809060208152603260208201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b60608201520190565b6000828152600260205260409020546001600160a01b031615610ff157610f8182610beb565b9160018060a01b0390818316928285168414948515610fc0575b50508315610faa575b50505090565b610fb691929350610db5565b1614388080610fa4565b6001600160a01b0316600090815260056020526040902091945060ff91610fe791906103c8565b5416923880610f9b565b60405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608490fd5b1561105257565b60405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608490fd5b634e487b7160e01b600052601160045260246000fd5b6000198101919082116110c857565b6110a3565b90600182018092116110c857565b60300190816030116110c857565b906110f383610beb565b6001600160a01b0383811692909182168390036111ad576111426111869282169461111f86151561104b565b61112887611200565b6001600160a01b0316600090815260036020526040902090565b61114c81546110b9565b90556001600160a01b038116600090815260036020526040902061117081546110cd565b9055610a22856000526002602052604060002090565b7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4565b60405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b6064820152608490fd5b600081815260046020526040812080546001600160a01b03191690556001600160a01b0361122d83610beb565b167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258280a4565b600082815260046020526040902080546001600160a01b0319166001600160a01b0383161790556001600160a01b038061128d84610beb565b169116907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600080a4565b9081602091031261013e575161020a8161012c565b6001600160a01b03918216815291166020820152604081019190915260806060820181905261020a929101906101d4565b3d15611329573d9061130f826107f5565b9161131d60405193846107d3565b82523d6000602084013e565b606090565b92909190823b156113e857611361926020926000604051809681958294630a85bd0160e11b9a8b855233600486016112cd565b03926001600160a01b03165af1600091816113b8575b506113aa576113846112fe565b805190816113a55760405162461bcd60e51b815280610f0460048201610f08565b602001fd5b6001600160e01b0319161490565b6113da91925060203d81116113e1575b6113d281836107d3565b8101906112b8565b9038611377565b503d6113c8565b50505050600190565b90611404602092828151948592016101b1565b0190565b6000818152600260205260409020546001600160a01b0316156114975761144161143c826000526006602052604060002090565b610c9d565b9061144a610ead565b805115611492578251611462575061020a91506114f6565b61020a915061148461147e9360405194859360208501906113f1565b906113f1565b03601f1981018352826107d3565b505090565b60405162461bcd60e51b815260206004820152603160248201527f45524337323155524953746f726167653a2055524920717565727920666f72206044820152703737b732bc34b9ba32b73a103a37b5b2b760791b6064820152608490fd5b6000818152600260205260409020546001600160a01b0316156115525761151b610ead565b8051909190156115485761147e9161148461153861020a93611608565b60405194859360208501906113f1565b505061020a610ead565b60405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b6064820152608490fd5b906115b9826107f5565b6115c660405191826107d3565b82815280926115d7601f19916107f5565b0190602036910137565b9081518110156115f2570160200190565b634e487b7160e01b600052603260045260246000fd5b8015611694576000818181805b6116785750611623816115af565b935b61162f5750505090565b611638906110b9565b90600a9061166361165361164d8484066110db565b60ff1690565b60f81b6001600160f81b03191690565b841a61166f84876115e1565b53049081611625565b915060001981146110c8576001600a9101910480849291611615565b506040516040810181811067ffffffffffffffff8211176107ce5760405260018152600360fc1b602082015290565b156116ca57565b60405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606490fd5b90601f811161171d57505050565b600091825260208220906020601f850160051c83019410611759575b601f0160051c01915b82811061174e57505050565b818155600101611742565b9092508290611739565b6000818152600260205260409020549192916001600160a01b03161561185d5760005260206006815260406000209083519067ffffffffffffffff82116107ce576117b8826117b28554610c63565b8561170f565b80601f83116001146117f25750819293946000926117e7575b50508160011b916000199060031b1c1916179055565b0151905038806117d1565b90601f1983169561180885600052602060002090565b926000905b8882106118455750508360019596971061182c575b505050811b019055565b015160001960f88460031b161c19169055388080611822565b8060018596829496860151815501950193019061180d565b60405162461bcd60e51b815260206004820152602e60248201527f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60448201526d32bc34b9ba32b73a103a37b5b2b760911b6064820152608490fdfea26469706673582212209d70e4abf028cab3a64325ad2648d8f06205513affd8e16a5501ada03fd2c65c64736f6c63430008120033", - "deployedBytecode": "0x6080604052600436101561001257600080fd5b60003560e01c806301ffc9a71461012757806306fdde0314610122578063081812fc1461011d578063095ea7b31461011857806323b872dd1461011357806342842e0e1461010e5780636352211e1461010957806370a0823114610104578063715018a6146100ff5780638da5cb5b146100fa57806395d89b41146100f5578063a22cb465146100f0578063b88d4fde146100eb578063c87b56dd146100e6578063e985e9c5146100e1578063eacabe14146100dc5763f2fde38b146100d757600080fd5b610ac1565b610938565b6108db565b6108a8565b610848565b6106b0565b61060b565b6105e2565b610581565b6104df565b6104c1565b610499565b610470565b61034c565b6102f0565b61020d565b610143565b6001600160e01b031981160361013e57565b600080fd5b3461013e57602036600319011261013e5760206004356101628161012c565b63ffffffff60e01b166380ac58cd60e01b81149081156101a0575b811561018f575b506040519015158152f35b6301ffc9a760e01b14905038610184565b635b5e139f60e01b8114915061017d565b60005b8381106101c45750506000910152565b81810151838201526020016101b4565b906020916101ed815180928185528580860191016101b1565b601f01601f1916010190565b90602061020a9281815201906101d4565b90565b3461013e576000806003193601126102ed576040519080805461022f81610c63565b808552916001918083169081156102c35750600114610269575b61026585610259818703826107d3565b604051918291826101f9565b0390f35b80809450527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b8284106102ab57505050810160200161025982610265610249565b80546020858701810191909152909301928101610290565b8695506102659693506020925061025994915060ff191682840152151560051b8201019293610249565b80fd5b3461013e57602036600319011261013e57602061030e600435610db5565b6040516001600160a01b039091168152f35b600435906001600160a01b038216820361013e57565b602435906001600160a01b038216820361013e57565b3461013e57604036600319011261013e57610365610320565b60243561037181610beb565b916001600160a01b0380841690821681146103ec576103a39361039e9133149081156103a5575b50610d43565b611254565b005b6001600160a01b031660009081526005602052604090206103e691506103df9033905b9060018060a01b0316600052602052604060002090565b5460ff1690565b38610398565b60405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608490fd5b606090600319011261013e576001600160a01b0390600435828116810361013e5791602435908116810361013e579060443590565b3461013e576103a36104813661043b565b9161049461048f8433610f5b565b610e47565b6110e9565b3461013e576103a36104aa3661043b565b90604051926104b8846107b2565b60008452610ec0565b3461013e57602036600319011261013e57602061030e600435610beb565b3461013e57602036600319011261013e576001600160a01b03610500610320565b168015610529576000526003602052610265604060002054604051918291829190602083019252565b60405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604482015269726f206164647265737360b01b6064820152608490fd5b3461013e576000806003193601126102ed5760075481906001600160a01b038116906105ae338314610b57565b6001600160a01b0319166007557f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b3461013e57600036600319011261013e576007546040516001600160a01b039091168152602090f35b3461013e576000806003193601126102ed576040519080600180549161063083610c63565b808652928281169081156102c357506001146106565761026585610259818703826107d3565b92508083527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b82841061069857505050810160200161025982610265610249565b8054602085870181019190915290930192810161067d565b3461013e57604036600319011261013e576106c9610320565b602435801515810361013e576001600160a01b0382169133831461075757816107146107259233600052600560205260406000209060018060a01b0316600052602052604060002090565b9060ff801983541691151516179055565b604051901515815233907f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3190602090a3005b60405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606490fd5b634e487b7160e01b600052604160045260246000fd5b6020810190811067ffffffffffffffff8211176107ce57604052565b61079c565b90601f8019910116810190811067ffffffffffffffff8211176107ce57604052565b67ffffffffffffffff81116107ce57601f01601f191660200190565b92919261081d826107f5565b9161082b60405193846107d3565b82948184528183011161013e578281602093846000960137010152565b3461013e57608036600319011261013e57610861610320565b610869610336565b6064359167ffffffffffffffff831161013e573660238401121561013e5761089e6103a3933690602481600401359101610811565b9160443591610ec0565b3461013e57602036600319011261013e576102656108c7600435611408565b6040519182916020835260208301906101d4565b3461013e57604036600319011261013e57602060ff61092c6108fb610320565b610903610336565b6001600160a01b0391821660009081526005865260408082209290931681526020919091522090565b54166040519015158152f35b3461013e57604036600319011261013e57610951610320565b60243567ffffffffffffffff811161013e573660238201121561013e57610982903690602481600401359101610811565b6007546001600160a01b03919061099c9083163314610b57565b60016008540191826008558316908115610a7d5782610a6d92610a41610265966109ea6109e56109e186600052600260205260018060a01b0360406000205416151590565b1590565b6116c3565b6001600160a01b0381166000908152600360205260409020610a0c81546110cd565b9055610a22846000526002602052604060002090565b80546001600160a01b0319166001600160a01b03909216919091179055565b60007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a482611763565b6040519081529081906020820190565b606460405162461bcd60e51b815260206004820152602060248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152fd5b3461013e57602036600319011261013e57610ada610320565b6007546001600160a01b0390610af39082163314610b57565b811615610b03576103a390610ba2565b60405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608490fd5b15610b5e57565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b600780546001600160a01b039283166001600160a01b0319821681179092559091167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3565b6000908152600260205260409020546001600160a01b03168015610c0c5790565b60405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201526832b73a103a37b5b2b760b91b6064820152608490fd5b90600182811c92168015610c93575b6020831014610c7d57565b634e487b7160e01b600052602260045260246000fd5b91607f1691610c72565b9060405191826000825492610cb184610c63565b908184526001948581169081600014610d205750600114610cdd575b5050610cdb925003836107d3565b565b9093915060005260209081600020936000915b818310610d08575050610cdb93508201013880610ccd565b85548884018501529485019487945091830191610cf0565b915050610cdb94506020925060ff191682840152151560051b8201013880610ccd565b15610d4a57565b60405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c00000000000000006064820152608490fd5b6000818152600260205260409020546001600160a01b031615610ded576000908152600460205260409020546001600160a01b031690565b60405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608490fd5b15610e4e57565b60405162461bcd60e51b815260206004820152603160248201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6044820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b6064820152608490fd5b60405190610eba826107b2565b60008252565b90610ee4939291610ed461048f8433610f5b565b610edf8383836110e9565b61132e565b15610eeb57565b60405162461bcd60e51b815280610f0460048201610f08565b0390fd5b60809060208152603260208201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b60608201520190565b6000828152600260205260409020546001600160a01b031615610ff157610f8182610beb565b9160018060a01b0390818316928285168414948515610fc0575b50508315610faa575b50505090565b610fb691929350610db5565b1614388080610fa4565b6001600160a01b0316600090815260056020526040902091945060ff91610fe791906103c8565b5416923880610f9b565b60405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608490fd5b1561105257565b60405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608490fd5b634e487b7160e01b600052601160045260246000fd5b6000198101919082116110c857565b6110a3565b90600182018092116110c857565b60300190816030116110c857565b906110f383610beb565b6001600160a01b0383811692909182168390036111ad576111426111869282169461111f86151561104b565b61112887611200565b6001600160a01b0316600090815260036020526040902090565b61114c81546110b9565b90556001600160a01b038116600090815260036020526040902061117081546110cd565b9055610a22856000526002602052604060002090565b7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4565b60405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b6064820152608490fd5b600081815260046020526040812080546001600160a01b03191690556001600160a01b0361122d83610beb565b167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258280a4565b600082815260046020526040902080546001600160a01b0319166001600160a01b0383161790556001600160a01b038061128d84610beb565b169116907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600080a4565b9081602091031261013e575161020a8161012c565b6001600160a01b03918216815291166020820152604081019190915260806060820181905261020a929101906101d4565b3d15611329573d9061130f826107f5565b9161131d60405193846107d3565b82523d6000602084013e565b606090565b92909190823b156113e857611361926020926000604051809681958294630a85bd0160e11b9a8b855233600486016112cd565b03926001600160a01b03165af1600091816113b8575b506113aa576113846112fe565b805190816113a55760405162461bcd60e51b815280610f0460048201610f08565b602001fd5b6001600160e01b0319161490565b6113da91925060203d81116113e1575b6113d281836107d3565b8101906112b8565b9038611377565b503d6113c8565b50505050600190565b90611404602092828151948592016101b1565b0190565b6000818152600260205260409020546001600160a01b0316156114975761144161143c826000526006602052604060002090565b610c9d565b9061144a610ead565b805115611492578251611462575061020a91506114f6565b61020a915061148461147e9360405194859360208501906113f1565b906113f1565b03601f1981018352826107d3565b505090565b60405162461bcd60e51b815260206004820152603160248201527f45524337323155524953746f726167653a2055524920717565727920666f72206044820152703737b732bc34b9ba32b73a103a37b5b2b760791b6064820152608490fd5b6000818152600260205260409020546001600160a01b0316156115525761151b610ead565b8051909190156115485761147e9161148461153861020a93611608565b60405194859360208501906113f1565b505061020a610ead565b60405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b6064820152608490fd5b906115b9826107f5565b6115c660405191826107d3565b82815280926115d7601f19916107f5565b0190602036910137565b9081518110156115f2570160200190565b634e487b7160e01b600052603260045260246000fd5b8015611694576000818181805b6116785750611623816115af565b935b61162f5750505090565b611638906110b9565b90600a9061166361165361164d8484066110db565b60ff1690565b60f81b6001600160f81b03191690565b841a61166f84876115e1565b53049081611625565b915060001981146110c8576001600a9101910480849291611615565b506040516040810181811067ffffffffffffffff8211176107ce5760405260018152600360fc1b602082015290565b156116ca57565b60405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606490fd5b90601f811161171d57505050565b600091825260208220906020601f850160051c83019410611759575b601f0160051c01915b82811061174e57505050565b818155600101611742565b9092508290611739565b6000818152600260205260409020549192916001600160a01b03161561185d5760005260206006815260406000209083519067ffffffffffffffff82116107ce576117b8826117b28554610c63565b8561170f565b80601f83116001146117f25750819293946000926117e7575b50508160011b916000199060031b1c1916179055565b0151905038806117d1565b90601f1983169561180885600052602060002090565b926000905b8882106118455750508360019596971061182c575b505050811b019055565b015160001960f88460031b161c19169055388080611822565b8060018596829496860151815501950193019061180d565b60405162461bcd60e51b815260206004820152602e60248201527f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60448201526d32bc34b9ba32b73a103a37b5b2b760911b6064820152608490fdfea26469706673582212209d70e4abf028cab3a64325ad2648d8f06205513affd8e16a5501ada03fd2c65c64736f6c63430008120033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts/contracts/MyPaymaster.sol/MyPaymaster.dbg.json b/packages/integration-tests/src/playbook/artifacts/contracts/MyPaymaster.sol/MyPaymaster.dbg.json deleted file mode 100644 index 31301548a5..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/contracts/MyPaymaster.sol/MyPaymaster.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../build-info/e49535a141eefaebe6d9aa3bc85bbb11.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts/contracts/MyPaymaster.sol/MyPaymaster.json b/packages/integration-tests/src/playbook/artifacts/contracts/MyPaymaster.sol/MyPaymaster.json deleted file mode 100644 index 7cd00b5e21..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/contracts/MyPaymaster.sol/MyPaymaster.json +++ /dev/null @@ -1,275 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "MyPaymaster", - "sourceName": "contracts/MyPaymaster.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "_erc20", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [], - "name": "allowedToken", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "_context", - "type": "bytes" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "txType", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "from", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "to", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "gasLimit", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "gasPerPubdataByteLimit", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxFeePerGas", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxPriorityFeePerGas", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "paymaster", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "uint256[4]", - "name": "reserved", - "type": "uint256[4]" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "signature", - "type": "bytes" - }, - { - "internalType": "bytes32[]", - "name": "factoryDeps", - "type": "bytes32[]" - }, - { - "internalType": "bytes", - "name": "paymasterInput", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "reservedDynamic", - "type": "bytes" - } - ], - "internalType": "struct Transaction", - "name": "_transaction", - "type": "tuple" - }, - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - }, - { - "internalType": "enum ExecutionResult", - "name": "_txResult", - "type": "uint8" - }, - { - "internalType": "uint256", - "name": "_maxRefundedGas", - "type": "uint256" - } - ], - "name": "postTransaction", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "txType", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "from", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "to", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "gasLimit", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "gasPerPubdataByteLimit", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxFeePerGas", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxPriorityFeePerGas", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "paymaster", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "uint256[4]", - "name": "reserved", - "type": "uint256[4]" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "signature", - "type": "bytes" - }, - { - "internalType": "bytes32[]", - "name": "factoryDeps", - "type": "bytes32[]" - }, - { - "internalType": "bytes", - "name": "paymasterInput", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "reservedDynamic", - "type": "bytes" - } - ], - "internalType": "struct Transaction", - "name": "_transaction", - "type": "tuple" - } - ], - "name": "validateAndPayForPaymasterTransaction", - "outputs": [ - { - "internalType": "bytes4", - "name": "magic", - "type": "bytes4" - }, - { - "internalType": "bytes", - "name": "context", - "type": "bytes" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "stateMutability": "payable", - "type": "receive" - } - ], - "bytecode": "0x60803461007457601f61083038819003918201601f19168301916001600160401b038311848410176100795780849260209460405283398101031261007457516001600160a01b0381169081900361007457600080546001600160a01b0319169190911790556040516107a090816100908239f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe60406080815260048036101561001f575b5050361561001d57600080fd5b005b600090813560e01c928363038a24bc1461005c575050508063817b17f014610057576385fa292f14610052573880610010565b6103ff565b61039d565b60603660031901126103265760443567ffffffffffffffff811161032257610087903690840161032a565b9261022084016100a48461009b8388610428565b9050101561045b565b6100b76100b18287610428565b906104cd565b6325250c7760e21b916001600160e01b0319916100d3916104f8565b16036102d7576100f06100e96100f89287610428565b80916104db565b81019061057d565b5082546001600160a01b0396919287169061011690881682146105ff565b8451636eb1769f60e11b81526001600160a01b0360208481013590991690811688830190815230818b015290949192908990849081906040010381845afa9384156102d2578661018a8a9261017b60016101c6998f9986916102a5575b501015610656565b606060a082013591013561069a565b89516323b872dd60e01b81526001600160a01b039098169288019283523060208401526040830194909452929594859384929091839160600190565b03925af19081610278575b5061024e5750506101e06106db565b80519383851161024857825162461bcd60e51b81526020818601818152602a918101919091527f4661696c656420746f207472616e7366657246726f6d2066726f6d20757365726040820152691cc9c81858d8dbdd5b9d60b21b606082015281906080010390fd5b84925001fd5b90808080610269946180015af16102636106db565b5061070b565b51806102748161033e565b0390f35b61029790873d891161029e575b61028f818361053a565b8101906106c3565b50866101d1565b503d610285565b6102c591508a3d8c116102cb575b6102bd818361053a565b81019061063b565b38610173565b503d6102b3565b61064a565b825162461bcd60e51b81526020818601818152601a918101919091527f556e737570706f72746564207061796d617374657220666c6f77000000000000604082015281906060010390fd5b8380fd5b8280fd5b90816102609103126103395790565b600080fd5b62e2892f60e21b815260209060408282015260609182519081604084015260005b82811061037c5750506000828201840152601f01601f1916010190565b6080810151848201860152810161035f565b60843590600282101561033957565b60c03660031901126103395767ffffffffffffffff6004358181116103395736602382011215610339578060040135828111610339573691016024011161033957602435908111610339576103f690369060040161032a565b5061001d61038e565b34610339576000366003190112610339576000546040516001600160a01b039091168152602090f35b903590601e1981360301821215610339570180359067ffffffffffffffff82116103395760200191813603831361033957565b1561046257565b60405162461bcd60e51b815260206004820152603a60248201527f546865207374616e64617264207061796d617374657220696e707574206d757360448201527f74206265206174206c656173742034206279746573206c6f6e670000000000006064820152608490fd5b906004116103395790600490565b909291928360041161033957831161033957600401916003190190565b6001600160e01b0319903581811693926004811061051557505050565b60040360031b82901b16169150565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff82111761055c57604052565b610524565b67ffffffffffffffff811161055c57601f01601f191660200190565b90916060828403126103395781356001600160a01b0381168103610339579260208301359260408101359067ffffffffffffffff8211610339570181601f82011215610339578035906105cf82610561565b926105dd604051948561053a565b8284526020838301011161033957816000926020809301838601378301015290565b1561060657565b60405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b2103a37b5b2b760991b6044820152606490fd5b90816020910312610339575190565b6040513d6000823e3d90fd5b1561065d57565b60405162461bcd60e51b81526020600482015260156024820152744d696e20616c6c6f77616e636520746f6f206c6f7760581b6044820152606490fd5b818102929181159184041417156106ad57565b634e487b7160e01b600052601160045260246000fd5b90816020910312610339575180151581036103395790565b3d15610706573d906106ec82610561565b916106fa604051938461053a565b82523d6000602084013e565b606090565b1561071257565b60405162461bcd60e51b815260206004820152602a60248201527f4661696c656420746f207472616e736665722066756e647320746f20746865206044820152693137b7ba3637b0b232b960b11b6064820152608490fdfea2646970667358221220b99ef07141bf7f486036e0b62c9970053bfbb59093df49b0de39c9ea0cd9b2a564736f6c63430008120033", - "deployedBytecode": "0x60406080815260048036101561001f575b5050361561001d57600080fd5b005b600090813560e01c928363038a24bc1461005c575050508063817b17f014610057576385fa292f14610052573880610010565b6103ff565b61039d565b60603660031901126103265760443567ffffffffffffffff811161032257610087903690840161032a565b9261022084016100a48461009b8388610428565b9050101561045b565b6100b76100b18287610428565b906104cd565b6325250c7760e21b916001600160e01b0319916100d3916104f8565b16036102d7576100f06100e96100f89287610428565b80916104db565b81019061057d565b5082546001600160a01b0396919287169061011690881682146105ff565b8451636eb1769f60e11b81526001600160a01b0360208481013590991690811688830190815230818b015290949192908990849081906040010381845afa9384156102d2578661018a8a9261017b60016101c6998f9986916102a5575b501015610656565b606060a082013591013561069a565b89516323b872dd60e01b81526001600160a01b039098169288019283523060208401526040830194909452929594859384929091839160600190565b03925af19081610278575b5061024e5750506101e06106db565b80519383851161024857825162461bcd60e51b81526020818601818152602a918101919091527f4661696c656420746f207472616e7366657246726f6d2066726f6d20757365726040820152691cc9c81858d8dbdd5b9d60b21b606082015281906080010390fd5b84925001fd5b90808080610269946180015af16102636106db565b5061070b565b51806102748161033e565b0390f35b61029790873d891161029e575b61028f818361053a565b8101906106c3565b50866101d1565b503d610285565b6102c591508a3d8c116102cb575b6102bd818361053a565b81019061063b565b38610173565b503d6102b3565b61064a565b825162461bcd60e51b81526020818601818152601a918101919091527f556e737570706f72746564207061796d617374657220666c6f77000000000000604082015281906060010390fd5b8380fd5b8280fd5b90816102609103126103395790565b600080fd5b62e2892f60e21b815260209060408282015260609182519081604084015260005b82811061037c5750506000828201840152601f01601f1916010190565b6080810151848201860152810161035f565b60843590600282101561033957565b60c03660031901126103395767ffffffffffffffff6004358181116103395736602382011215610339578060040135828111610339573691016024011161033957602435908111610339576103f690369060040161032a565b5061001d61038e565b34610339576000366003190112610339576000546040516001600160a01b039091168152602090f35b903590601e1981360301821215610339570180359067ffffffffffffffff82116103395760200191813603831361033957565b1561046257565b60405162461bcd60e51b815260206004820152603a60248201527f546865207374616e64617264207061796d617374657220696e707574206d757360448201527f74206265206174206c656173742034206279746573206c6f6e670000000000006064820152608490fd5b906004116103395790600490565b909291928360041161033957831161033957600401916003190190565b6001600160e01b0319903581811693926004811061051557505050565b60040360031b82901b16169150565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff82111761055c57604052565b610524565b67ffffffffffffffff811161055c57601f01601f191660200190565b90916060828403126103395781356001600160a01b0381168103610339579260208301359260408101359067ffffffffffffffff8211610339570181601f82011215610339578035906105cf82610561565b926105dd604051948561053a565b8284526020838301011161033957816000926020809301838601378301015290565b1561060657565b60405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b2103a37b5b2b760991b6044820152606490fd5b90816020910312610339575190565b6040513d6000823e3d90fd5b1561065d57565b60405162461bcd60e51b81526020600482015260156024820152744d696e20616c6c6f77616e636520746f6f206c6f7760581b6044820152606490fd5b818102929181159184041417156106ad57565b634e487b7160e01b600052601160045260246000fd5b90816020910312610339575180151581036103395790565b3d15610706573d906106ec82610561565b916106fa604051938461053a565b82523d6000602084013e565b606090565b1561071257565b60405162461bcd60e51b815260206004820152602a60248201527f4661696c656420746f207472616e736665722066756e647320746f20746865206044820152693137b7ba3637b0b232b960b11b6064820152608490fdfea2646970667358221220b99ef07141bf7f486036e0b62c9970053bfbb59093df49b0de39c9ea0cd9b2a564736f6c63430008120033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/packages/integration-tests/src/playbook/artifacts/contracts/Root.sol/Root.dbg.json b/packages/integration-tests/src/playbook/artifacts/contracts/Root.sol/Root.dbg.json deleted file mode 100644 index 31301548a5..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/contracts/Root.sol/Root.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../build-info/e49535a141eefaebe6d9aa3bc85bbb11.json" -} diff --git a/packages/integration-tests/src/playbook/artifacts/contracts/Root.sol/Root.json b/packages/integration-tests/src/playbook/artifacts/contracts/Root.sol/Root.json deleted file mode 100644 index 0d009f0bb2..0000000000 --- a/packages/integration-tests/src/playbook/artifacts/contracts/Root.sol/Root.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "Root", - "sourceName": "contracts/Root.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "string", - "name": "_greeting", - "type": "string" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "string", - "name": "greeting", - "type": "string" - } - ], - "name": "SetGreeting", - "type": "event" - }, - { - "inputs": [], - "name": "greet", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "string", - "name": "_greeting", - "type": "string" - } - ], - "name": "setGreeting", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x60806040523461020a576106c9803803806100198161020f565b9283398101906020808284031261020a5781516001600160401b039283821161020a570190601f9184838201121561020a5780518481116101c057601f19916100678286018416850161020f565b9682885284838301011161020a57839060005b8381106101f657505060009187010152610095600054610234565b8381116101d6575b507f48692066726f6d20526f6f740000000000000000000000000000000000000018600081905585519485116101c0576100d690610234565b838111610188575b5081928411600114610126575050819260009261011b575b50508160011b916000199060031b1c1916176000555b60405161044390816102868239f35b0151905038806100f6565b6000808052828120918516959193925b8682106101705750508360019510610157575b505050811b0160005561010c565b015160001960f88460031b161c19169055388080610149565b80600185968294968601518155019501930190610136565b6101b19060008052836000208580880160051c8201928689106101b7575b0160051c019061026e565b386100de565b925081926101a6565b634e487b7160e01b600052604160045260246000fd5b6101f090600080528484600020910160051c81019061026e565b3861009d565b81810183015189820184015285920161007a565b600080fd5b6040519190601f01601f191682016001600160401b038111838210176101c057604052565b90600182811c92168015610264575b602083101461024e57565b634e487b7160e01b600052602260045260246000fd5b91607f1691610243565b818110610279575050565b6000815560010161026e56fe608080604052600436101561001357600080fd5b600090813560e01c908163a413686214610118575063cfae32171461003757600080fd5b3461011557806003193601126101155760405190808054610057816103d3565b808552916001918083169081156100eb5750600114610091575b61008d8561008181870382610352565b6040519182918261038a565b0390f35b80809450527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b8284106100d35750505081016020016100818261008d610071565b805460208587018101919091529093019281016100b8565b86955061008d9693506020925061008194915060ff191682840152151560051b8201019293610071565b80fd5b8234610115576020918260031936011261034e5760043567ffffffffffffffff9384821161034a573660238301121561034a57816004013585811161033657601f199261016c601f83018516840186610352565b81855236602483830101116103325781869260248593018388013785010152825194851161031e5761019e84546103d3565b601f81116102bd575b508091601f861160011461021757505090838394610206937f4dabe8361a35a905ec9d530e301d2e5c6cf44c65cdd7768f522a77a373436da9959161020c575b508160011b916000199060031b1c19161784556040519182918261038a565b0390a180f35b9050820151866101e7565b85929192168480527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5639285905b8282106102a5575050946102069392600192827f4dabe8361a35a905ec9d530e301d2e5c6cf44c65cdd7768f522a77a373436da997981061028c575b5050811b018455610081565b84015160001960f88460031b161c191690558680610280565b80600185968294968901518155019501930190610244565b8480527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563601f870160051c810191838810610314575b601f0160051c01905b81811061030957506101a7565b8581556001016102fc565b90915081906102f3565b634e487b7160e01b84526041600452602484fd5b8580fd5b634e487b7160e01b85526041600452602485fd5b8380fd5b5080fd5b90601f8019910116810190811067ffffffffffffffff82111761037457604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b8281106103bf57505060409293506000838284010152601f8019910116010190565b81810186015184820160400152850161039d565b90600182811c92168015610403575b60208310146103ed57565b634e487b7160e01b600052602260045260246000fd5b91607f16916103e256fea2646970667358221220bf6df06b6b1a9e36864c84d0d943e0b7a6eb18894a50d585b2645d2690958ba064736f6c63430008120033", - "deployedBytecode": "0x608080604052600436101561001357600080fd5b600090813560e01c908163a413686214610118575063cfae32171461003757600080fd5b3461011557806003193601126101155760405190808054610057816103d3565b808552916001918083169081156100eb5750600114610091575b61008d8561008181870382610352565b6040519182918261038a565b0390f35b80809450527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b8284106100d35750505081016020016100818261008d610071565b805460208587018101919091529093019281016100b8565b86955061008d9693506020925061008194915060ff191682840152151560051b8201019293610071565b80fd5b8234610115576020918260031936011261034e5760043567ffffffffffffffff9384821161034a573660238301121561034a57816004013585811161033657601f199261016c601f83018516840186610352565b81855236602483830101116103325781869260248593018388013785010152825194851161031e5761019e84546103d3565b601f81116102bd575b508091601f861160011461021757505090838394610206937f4dabe8361a35a905ec9d530e301d2e5c6cf44c65cdd7768f522a77a373436da9959161020c575b508160011b916000199060031b1c19161784556040519182918261038a565b0390a180f35b9050820151866101e7565b85929192168480527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5639285905b8282106102a5575050946102069392600192827f4dabe8361a35a905ec9d530e301d2e5c6cf44c65cdd7768f522a77a373436da997981061028c575b5050811b018455610081565b84015160001960f88460031b161c191690558680610280565b80600185968294968901518155019501930190610244565b8480527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563601f870160051c810191838810610314575b601f0160051c01905b81811061030957506101a7565b8581556001016102fc565b90915081906102f3565b634e487b7160e01b84526041600452602484fd5b8580fd5b634e487b7160e01b85526041600452602485fd5b8380fd5b5080fd5b90601f8019910116810190811067ffffffffffffffff82111761037457604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b8281106103bf57505060409293506000838284010152601f8019910116010190565b81810186015184820160400152850161039d565b90600182811c92168015610403575b60208310146103ed57565b634e487b7160e01b600052602260045260246000fd5b91607f16916103e256fea2646970667358221220bf6df06b6b1a9e36864c84d0d943e0b7a6eb18894a50d585b2645d2690958ba064736f6c63430008120033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/packages/integration-tests/src/playbook/cache-zk/solidity-files-cache.json b/packages/integration-tests/src/playbook/cache-zk/solidity-files-cache.json deleted file mode 100644 index 3d87336f97..0000000000 --- a/packages/integration-tests/src/playbook/cache-zk/solidity-files-cache.json +++ /dev/null @@ -1,2397 +0,0 @@ -{ - "_format": "hh-sol-cache-2", - "files": { - "/home/user/WebstormProjects/block-explorer/packages/integration-tests/src/playbook/contracts/Caller.sol": { - "lastModificationDate": 1701094423506, - "contentHash": "b8a825b66bfa4947f099e29622e2d554", - "sourceName": "contracts/Caller.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "GCaller", - "IGreeter2" - ] - }, - "/home/user/WebstormProjects/block-explorer/packages/integration-tests/src/playbook/contracts/Greeter.sol": { - "lastModificationDate": 1701094423510, - "contentHash": "5677b967695d460024f13e83800dc10b", - "sourceName": "contracts/Greeter.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "Greeter" - ] - }, - "/home/user/WebstormProjects/block-explorer/packages/integration-tests/src/playbook/contracts/L1.sol": { - "lastModificationDate": 1701094423518, - "contentHash": "07eeda41a97d3882c9fbc53b8cc23fdf", - "sourceName": "contracts/L1.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [ - "@openzeppelin/contracts/token/ERC20/ERC20.sol" - ], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "L1" - ] - }, - "/home/user/WebstormProjects/block-explorer/node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol": { - "lastModificationDate": 1696932067716, - "contentHash": "a9d2146925da52142435d3bb8df53c3c", - "sourceName": "@openzeppelin/contracts/token/ERC20/ERC20.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [ - "./IERC20.sol", - "./extensions/IERC20Metadata.sol", - "../../utils/Context.sol" - ], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "ERC20" - ] - }, - "/home/user/WebstormProjects/block-explorer/node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol": { - "lastModificationDate": 1696932068772, - "contentHash": "ad7c2d0af148c8f9f097d65deeb4da6b", - "sourceName": "@openzeppelin/contracts/token/ERC20/IERC20.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "IERC20" - ] - }, - "/home/user/WebstormProjects/block-explorer/node_modules/@openzeppelin/contracts/utils/Context.sol": { - "lastModificationDate": 1696932067004, - "contentHash": "5f2c5c4b6af2dd4551027144797bc8be", - "sourceName": "@openzeppelin/contracts/utils/Context.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "Context" - ] - }, - "/home/user/WebstormProjects/block-explorer/node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol": { - "lastModificationDate": 1696932068776, - "contentHash": "909ab67fc5c25033fe6cd364f8c056f9", - "sourceName": "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [ - "../IERC20.sol" - ], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "IERC20Metadata" - ] - }, - "/home/user/WebstormProjects/block-explorer/node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol": { - "lastModificationDate": 1696932069104, - "contentHash": "76814c83c32552ed2b521c816b4d801a", - "sourceName": "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [ - "../IERC20.sol", - "../../../utils/Address.sol" - ], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "SafeERC20" - ] - }, - "/home/user/WebstormProjects/block-explorer/node_modules/@openzeppelin/contracts/utils/Address.sol": { - "lastModificationDate": 1696932066760, - "contentHash": "ad714a6368ee7d43cded6bbe8af0b155", - "sourceName": "@openzeppelin/contracts/utils/Address.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [], - "versionPragmas": [ - "^0.8.1" - ], - "artifacts": [ - "Address" - ] - }, - "/home/user/WebstormProjects/block-explorer/node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol": { - "lastModificationDate": 1696932068020, - "contentHash": "21b9f3bdb3e60f56ea81361c37420136", - "sourceName": "@openzeppelin/contracts/token/ERC721/ERC721.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [ - "./IERC721.sol", - "./IERC721Receiver.sol", - "./extensions/IERC721Metadata.sol", - "../../utils/Address.sol", - "../../utils/Context.sol", - "../../utils/Strings.sol", - "../../utils/introspection/ERC165.sol" - ], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "ERC721" - ] - }, - "/home/user/WebstormProjects/block-explorer/node_modules/@openzeppelin/contracts/utils/Strings.sol": { - "lastModificationDate": 1696932069136, - "contentHash": "9c54c6c065d9e590fdcdd72c451425b9", - "sourceName": "@openzeppelin/contracts/utils/Strings.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "Strings" - ] - }, - "/home/user/WebstormProjects/block-explorer/node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol": { - "lastModificationDate": 1696932068788, - "contentHash": "cd8e72e5859bddd5fd26b2fb5c51c846", - "sourceName": "@openzeppelin/contracts/token/ERC721/IERC721.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [ - "../../utils/introspection/IERC165.sol" - ], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "IERC721" - ] - }, - "/home/user/WebstormProjects/block-explorer/node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol": { - "lastModificationDate": 1696932068812, - "contentHash": "c22d4395e33763de693fd440c6fd10e1", - "sourceName": "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "IERC721Receiver" - ] - }, - "/home/user/WebstormProjects/block-explorer/node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol": { - "lastModificationDate": 1696932067620, - "contentHash": "0e7db055ce108f9da7bb6686a00287c0", - "sourceName": "@openzeppelin/contracts/utils/introspection/ERC165.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [ - "./IERC165.sol" - ], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "ERC165" - ] - }, - "/home/user/WebstormProjects/block-explorer/node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol": { - "lastModificationDate": 1696932068804, - "contentHash": "efbc0d15b80a74e34dbe8da0f3e879bb", - "sourceName": "@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [ - "../IERC721.sol" - ], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "IERC721Metadata" - ] - }, - "/home/user/WebstormProjects/block-explorer/node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol": { - "lastModificationDate": 1696932068728, - "contentHash": "03e6768535ac4da0e9756f1d8a4a018a", - "sourceName": "@openzeppelin/contracts/utils/introspection/IERC165.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "IERC165" - ] - }, - "/home/user/WebstormProjects/block-explorer/node_modules/@openzeppelin/contracts/access/Ownable.sol": { - "lastModificationDate": 1696932068988, - "contentHash": "8398972af73b4e9e5ff3b31cad86234f", - "sourceName": "@openzeppelin/contracts/access/Ownable.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [ - "../utils/Context.sol" - ], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "Ownable" - ] - }, - "/home/user/WebstormProjects/block-explorer/packages/integration-tests/src/playbook/contracts/MyNFT.sol": { - "lastModificationDate": 1701094423518, - "contentHash": "27d0c7b5e3c1b1bb42fa322f1c397e80", - "sourceName": "contracts/MyNFT.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [ - "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol", - "@openzeppelin/contracts/utils/Counters.sol", - "@openzeppelin/contracts/access/Ownable.sol" - ], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "MyNFT" - ] - }, - "/home/user/WebstormProjects/block-explorer/node_modules/@openzeppelin/contracts/utils/Counters.sol": { - "lastModificationDate": 1696932067016, - "contentHash": "74654e3ae5d7f39555055dfe244dab7a", - "sourceName": "@openzeppelin/contracts/utils/Counters.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "Counters" - ] - }, - "/home/user/WebstormProjects/block-explorer/node_modules/@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol": { - "lastModificationDate": 1696932068228, - "contentHash": "580a443491d9d70eb064b0130fc3cd01", - "sourceName": "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [ - "../ERC721.sol" - ], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "ERC721URIStorage" - ] - }, - "/home/user/WebstormProjects/block-explorer/packages/integration-tests/src/playbook/contracts/MultiTransfer.sol": { - "lastModificationDate": 1701094423518, - "contentHash": "0deb40a841e9013cb6b092470451944f", - "sourceName": "contracts/MultiTransfer.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [ - "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", - "@openzeppelin/contracts/utils/Address.sol" - ], - "versionPragmas": [ - "^0.8.16" - ], - "artifacts": [ - "TokenF2L2" - ] - }, - "/home/user/WebstormProjects/block-explorer/packages/integration-tests/src/playbook/contracts/MyPaymaster.sol": { - "lastModificationDate": 1701094423518, - "contentHash": "9e55ade49d1b94c14905ecb883cd7889", - "sourceName": "contracts/MyPaymaster.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [ - "@openzeppelin/contracts/token/ERC20/IERC20.sol", - "@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymaster.sol", - "@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymasterFlow.sol", - "@matterlabs/zksync-contracts/l2/system-contracts/libraries/TransactionHelper.sol", - "@matterlabs/zksync-contracts/l2/system-contracts/Constants.sol" - ], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "MyPaymaster" - ] - }, - "/home/user/WebstormProjects/block-explorer/node_modules/@matterlabs/zksync-contracts/l2/system-contracts/Constants.sol": { - "lastModificationDate": 1696932060036, - "contentHash": "cc9dd864bd75ae5ab231fbfae7692cd9", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/Constants.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [ - "./interfaces/IAccountCodeStorage.sol", - "./interfaces/INonceHolder.sol", - "./interfaces/IContractDeployer.sol", - "./interfaces/IKnownCodesStorage.sol", - "./interfaces/IImmutableSimulator.sol", - "./interfaces/IEthToken.sol", - "./interfaces/IL1Messenger.sol", - "./interfaces/ISystemContext.sol", - "./interfaces/IBytecodeCompressor.sol", - "./BootloaderUtilities.sol" - ], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [] - }, - "/home/user/WebstormProjects/block-explorer/node_modules/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymaster.sol": { - "lastModificationDate": 1696932063876, - "contentHash": "5b6a8d8bf0320ecd1bdc362c4d312eaf", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymaster.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [ - "../libraries/TransactionHelper.sol" - ], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "IPaymaster" - ] - }, - "/home/user/WebstormProjects/block-explorer/node_modules/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymasterFlow.sol": { - "lastModificationDate": 1696932063904, - "contentHash": "875b182d35066260db165e6350aef799", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymasterFlow.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "IPaymasterFlow" - ] - }, - "/home/user/WebstormProjects/block-explorer/node_modules/@matterlabs/zksync-contracts/l2/system-contracts/libraries/TransactionHelper.sol": { - "lastModificationDate": 1696932064308, - "contentHash": "d3d97ce1ffa048c9ffebcd845a9944a1", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/libraries/TransactionHelper.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [ - "../openzeppelin/token/ERC20/IERC20.sol", - "../openzeppelin/token/ERC20/utils/SafeERC20.sol", - "../interfaces/IPaymasterFlow.sol", - "../interfaces/IContractDeployer.sol", - "../Constants.sol", - "./RLPEncoder.sol", - "./EfficientCall.sol" - ], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "TransactionHelper" - ] - }, - "/home/user/WebstormProjects/block-explorer/node_modules/@matterlabs/zksync-contracts/l2/system-contracts/BootloaderUtilities.sol": { - "lastModificationDate": 1696932059712, - "contentHash": "cf36b27c696f67d72e2eb3219d66ccd1", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/BootloaderUtilities.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [ - "./interfaces/IBootloaderUtilities.sol", - "./libraries/TransactionHelper.sol", - "./libraries/RLPEncoder.sol", - "./libraries/EfficientCall.sol" - ], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "BootloaderUtilities" - ] - }, - "/home/user/WebstormProjects/block-explorer/node_modules/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IContractDeployer.sol": { - "lastModificationDate": 1696932063696, - "contentHash": "04ab6e26fdc17a98e454a2d40b66cef5", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IContractDeployer.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "IContractDeployer" - ] - }, - "/home/user/WebstormProjects/block-explorer/node_modules/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IAccountCodeStorage.sol": { - "lastModificationDate": 1696932063608, - "contentHash": "05ac1dd6d28b32f9aec9c9835dd7f611", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IAccountCodeStorage.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "IAccountCodeStorage" - ] - }, - "/home/user/WebstormProjects/block-explorer/node_modules/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/INonceHolder.sol": { - "lastModificationDate": 1696932063852, - "contentHash": "635d8b1fb161434ece83d75563c90d31", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/interfaces/INonceHolder.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "INonceHolder" - ] - }, - "/home/user/WebstormProjects/block-explorer/node_modules/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IKnownCodesStorage.sol": { - "lastModificationDate": 1696932063760, - "contentHash": "8b44dba198e4579807dcf9972cedc472", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IKnownCodesStorage.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "IKnownCodesStorage" - ] - }, - "/home/user/WebstormProjects/block-explorer/node_modules/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IL1Messenger.sol": { - "lastModificationDate": 1696932063780, - "contentHash": "b31020815f13cfc6043efc3df1f1d06f", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IL1Messenger.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "IL1Messenger" - ] - }, - "/home/user/WebstormProjects/block-explorer/node_modules/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IImmutableSimulator.sol": { - "lastModificationDate": 1696932063748, - "contentHash": "a67696f328544ef71d1bb0b677b0c383", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IImmutableSimulator.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "IImmutableSimulator" - ] - }, - "/home/user/WebstormProjects/block-explorer/node_modules/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IEthToken.sol": { - "lastModificationDate": 1696932063732, - "contentHash": "51f28834f26a5d384b23a02d670123b2", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IEthToken.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "IEthToken" - ] - }, - "/home/user/WebstormProjects/block-explorer/node_modules/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/ISystemContext.sol": { - "lastModificationDate": 1696932063968, - "contentHash": "499113f82b84e5ea8b54667f54432b4a", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/interfaces/ISystemContext.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "ISystemContext" - ] - }, - "/home/user/WebstormProjects/block-explorer/node_modules/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBytecodeCompressor.sol": { - "lastModificationDate": 1696932063656, - "contentHash": "979ef36bc70c3548c81b3c03df07c73a", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBytecodeCompressor.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "IBytecodeCompressor" - ] - }, - "/home/user/WebstormProjects/block-explorer/node_modules/@matterlabs/zksync-contracts/l2/system-contracts/libraries/RLPEncoder.sol": { - "lastModificationDate": 1696932064100, - "contentHash": "57ce78bc816a06b695f053ca3b3e5a5b", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/libraries/RLPEncoder.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "RLPEncoder" - ] - }, - "/home/user/WebstormProjects/block-explorer/node_modules/@matterlabs/zksync-contracts/l2/system-contracts/libraries/EfficientCall.sol": { - "lastModificationDate": 1696932064068, - "contentHash": "57bf5cbfd3226e021863b79cceb0c8ec", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/libraries/EfficientCall.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [ - "./SystemContractHelper.sol", - "./Utils.sol", - "../Constants.sol" - ], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "EfficientCall" - ] - }, - "/home/user/WebstormProjects/block-explorer/node_modules/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBootloaderUtilities.sol": { - "lastModificationDate": 1696932063632, - "contentHash": "071dbd56f1fcce9fdbcbc21872002d4a", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBootloaderUtilities.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [ - "../libraries/TransactionHelper.sol" - ], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "IBootloaderUtilities" - ] - }, - "/home/user/WebstormProjects/block-explorer/node_modules/@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/IERC20.sol": { - "lastModificationDate": 1696932066540, - "contentHash": "ad7c2d0af148c8f9f097d65deeb4da6b", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/IERC20.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "IERC20" - ] - }, - "/home/user/WebstormProjects/block-explorer/node_modules/@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/utils/SafeERC20.sol": { - "lastModificationDate": 1696932066744, - "contentHash": "8ad35cad9b6ff0ffc1dd550ad873b005", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/utils/SafeERC20.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [ - "../IERC20.sol", - "../extensions/IERC20Permit.sol", - "../../../utils/Address.sol" - ], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "SafeERC20" - ] - }, - "/home/user/WebstormProjects/block-explorer/node_modules/@matterlabs/zksync-contracts/l2/system-contracts/libraries/Utils.sol": { - "lastModificationDate": 1696932064360, - "contentHash": "728dbbafd196a789d9c27fd56e75978f", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/libraries/Utils.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [ - "./EfficientCall.sol" - ], - "versionPragmas": [ - ">=0.8.0" - ], - "artifacts": [ - "Utils" - ] - }, - "/home/user/WebstormProjects/block-explorer/node_modules/@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractHelper.sol": { - "lastModificationDate": 1696932064172, - "contentHash": "d44c4d1e5757a576ca9eeee0e6294f39", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractHelper.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [ - "../Constants.sol", - "./SystemContractsCaller.sol", - "./Utils.sol" - ], - "versionPragmas": [ - "^0.8" - ], - "artifacts": [ - "ISystemContract", - "SystemContractHelper" - ] - }, - "/home/user/WebstormProjects/block-explorer/node_modules/@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractsCaller.sol": { - "lastModificationDate": 1696932064252, - "contentHash": "452f2673fe40e625be94629084ed91cd", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractsCaller.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [ - "../Constants.sol", - "./Utils.sol" - ], - "versionPragmas": [ - "^0.8" - ], - "artifacts": [ - "SystemContractsCaller" - ] - }, - "/home/user/WebstormProjects/block-explorer/node_modules/@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/utils/Address.sol": { - "lastModificationDate": 1696932066444, - "contentHash": "4dd40735feabb268b5dab77af993e691", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/utils/Address.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [], - "versionPragmas": [ - "^0.8.1" - ], - "artifacts": [ - "Address" - ] - }, - "/home/user/WebstormProjects/block-explorer/node_modules/@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/extensions/IERC20Permit.sol": { - "lastModificationDate": 1696932066620, - "contentHash": "e2c0f4f502e2fe75be0585737839ba9b", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/extensions/IERC20Permit.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "IERC20Permit" - ] - }, - "/home/user/WebstormProjects/block-explorer/packages/integration-tests/src/playbook/contracts/MyERC20.sol": { - "lastModificationDate": 1701094423518, - "contentHash": "1cc108cfc06e9b014d918883ba12e796", - "sourceName": "contracts/MyERC20.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [ - "@openzeppelin/contracts/token/ERC20/ERC20.sol" - ], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "MyERC20" - ] - }, - "/home/user/WebstormProjects/block-explorer/packages/integration-tests/src/playbook/contracts/L2.sol": { - "lastModificationDate": 1701094423518, - "contentHash": "bfc9b6518152360f9571628e502c0446", - "sourceName": "contracts/L2.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [ - "@openzeppelin/contracts/token/ERC20/ERC20.sol" - ], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "L2" - ] - }, - "/home/user/WebstormProjects/block-explorer/packages/integration-tests/src/playbook/contracts/Middle.sol": { - "lastModificationDate": 1701094423518, - "contentHash": "9bb55c95d385c793d7904c4afdf0ccd3", - "sourceName": "contracts/Middle.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "IGreeter", - "Middle" - ] - }, - "/home/user/WebstormProjects/block-explorer/packages/integration-tests/src/playbook/contracts/Root.sol": { - "lastModificationDate": 1701094423518, - "contentHash": "664fb2379ab90e306c20f62d3640d9c1", - "sourceName": "contracts/Root.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "Root" - ] - } - } -} diff --git a/packages/integration-tests/src/playbook/cache/solidity-files-cache.json b/packages/integration-tests/src/playbook/cache/solidity-files-cache.json deleted file mode 100644 index 5511e3d096..0000000000 --- a/packages/integration-tests/src/playbook/cache/solidity-files-cache.json +++ /dev/null @@ -1,2497 +0,0 @@ -{ - "_format": "hh-sol-cache-2", - "files": { - "/home/user/WebstormProjects/block-explorer/packages/integration-tests/src/playbook/contracts/Caller.sol": { - "lastModificationDate": 1701094423506, - "contentHash": "b8a825b66bfa4947f099e29622e2d554", - "sourceName": "contracts/Caller.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "GCaller", - "IGreeter2" - ] - }, - "/home/user/WebstormProjects/block-explorer/packages/integration-tests/src/playbook/contracts/Greeter.sol": { - "lastModificationDate": 1701094423510, - "contentHash": "5677b967695d460024f13e83800dc10b", - "sourceName": "contracts/Greeter.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "Greeter" - ] - }, - "/home/user/WebstormProjects/block-explorer/packages/integration-tests/src/playbook/contracts/L1.sol": { - "lastModificationDate": 1701094423518, - "contentHash": "07eeda41a97d3882c9fbc53b8cc23fdf", - "sourceName": "contracts/L1.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [ - "@openzeppelin/contracts/token/ERC20/ERC20.sol" - ], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "L1" - ] - }, - "/home/user/WebstormProjects/block-explorer/node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol": { - "lastModificationDate": 1696932067716, - "contentHash": "a9d2146925da52142435d3bb8df53c3c", - "sourceName": "@openzeppelin/contracts/token/ERC20/ERC20.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [ - "./IERC20.sol", - "./extensions/IERC20Metadata.sol", - "../../utils/Context.sol" - ], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "ERC20" - ] - }, - "/home/user/WebstormProjects/block-explorer/node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol": { - "lastModificationDate": 1696932068772, - "contentHash": "ad7c2d0af148c8f9f097d65deeb4da6b", - "sourceName": "@openzeppelin/contracts/token/ERC20/IERC20.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "IERC20" - ] - }, - "/home/user/WebstormProjects/block-explorer/node_modules/@openzeppelin/contracts/utils/Context.sol": { - "lastModificationDate": 1696932067004, - "contentHash": "5f2c5c4b6af2dd4551027144797bc8be", - "sourceName": "@openzeppelin/contracts/utils/Context.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "Context" - ] - }, - "/home/user/WebstormProjects/block-explorer/node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol": { - "lastModificationDate": 1696932068776, - "contentHash": "909ab67fc5c25033fe6cd364f8c056f9", - "sourceName": "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [ - "../IERC20.sol" - ], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "IERC20Metadata" - ] - }, - "/home/user/WebstormProjects/block-explorer/node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol": { - "lastModificationDate": 1696932069104, - "contentHash": "76814c83c32552ed2b521c816b4d801a", - "sourceName": "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [ - "../IERC20.sol", - "../../../utils/Address.sol" - ], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "SafeERC20" - ] - }, - "/home/user/WebstormProjects/block-explorer/node_modules/@openzeppelin/contracts/utils/Address.sol": { - "lastModificationDate": 1696932066760, - "contentHash": "ad714a6368ee7d43cded6bbe8af0b155", - "sourceName": "@openzeppelin/contracts/utils/Address.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [], - "versionPragmas": [ - "^0.8.1" - ], - "artifacts": [ - "Address" - ] - }, - "/home/user/WebstormProjects/block-explorer/node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol": { - "lastModificationDate": 1696932068020, - "contentHash": "21b9f3bdb3e60f56ea81361c37420136", - "sourceName": "@openzeppelin/contracts/token/ERC721/ERC721.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [ - "./IERC721.sol", - "./IERC721Receiver.sol", - "./extensions/IERC721Metadata.sol", - "../../utils/Address.sol", - "../../utils/Context.sol", - "../../utils/Strings.sol", - "../../utils/introspection/ERC165.sol" - ], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "ERC721" - ] - }, - "/home/user/WebstormProjects/block-explorer/node_modules/@openzeppelin/contracts/utils/Strings.sol": { - "lastModificationDate": 1696932069136, - "contentHash": "9c54c6c065d9e590fdcdd72c451425b9", - "sourceName": "@openzeppelin/contracts/utils/Strings.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "Strings" - ] - }, - "/home/user/WebstormProjects/block-explorer/node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol": { - "lastModificationDate": 1696932068788, - "contentHash": "cd8e72e5859bddd5fd26b2fb5c51c846", - "sourceName": "@openzeppelin/contracts/token/ERC721/IERC721.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [ - "../../utils/introspection/IERC165.sol" - ], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "IERC721" - ] - }, - "/home/user/WebstormProjects/block-explorer/node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol": { - "lastModificationDate": 1696932068812, - "contentHash": "c22d4395e33763de693fd440c6fd10e1", - "sourceName": "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "IERC721Receiver" - ] - }, - "/home/user/WebstormProjects/block-explorer/node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol": { - "lastModificationDate": 1696932067620, - "contentHash": "0e7db055ce108f9da7bb6686a00287c0", - "sourceName": "@openzeppelin/contracts/utils/introspection/ERC165.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [ - "./IERC165.sol" - ], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "ERC165" - ] - }, - "/home/user/WebstormProjects/block-explorer/node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol": { - "lastModificationDate": 1696932068804, - "contentHash": "efbc0d15b80a74e34dbe8da0f3e879bb", - "sourceName": "@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [ - "../IERC721.sol" - ], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "IERC721Metadata" - ] - }, - "/home/user/WebstormProjects/block-explorer/node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol": { - "lastModificationDate": 1696932068728, - "contentHash": "03e6768535ac4da0e9756f1d8a4a018a", - "sourceName": "@openzeppelin/contracts/utils/introspection/IERC165.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "IERC165" - ] - }, - "/home/user/WebstormProjects/block-explorer/node_modules/@openzeppelin/contracts/access/Ownable.sol": { - "lastModificationDate": 1696932068988, - "contentHash": "8398972af73b4e9e5ff3b31cad86234f", - "sourceName": "@openzeppelin/contracts/access/Ownable.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [ - "../utils/Context.sol" - ], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "Ownable" - ] - }, - "/home/user/WebstormProjects/block-explorer/packages/integration-tests/src/playbook/contracts/MyNFT.sol": { - "lastModificationDate": 1701094423518, - "contentHash": "27d0c7b5e3c1b1bb42fa322f1c397e80", - "sourceName": "contracts/MyNFT.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [ - "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol", - "@openzeppelin/contracts/utils/Counters.sol", - "@openzeppelin/contracts/access/Ownable.sol" - ], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "MyNFT" - ] - }, - "/home/user/WebstormProjects/block-explorer/node_modules/@openzeppelin/contracts/utils/Counters.sol": { - "lastModificationDate": 1696932067016, - "contentHash": "74654e3ae5d7f39555055dfe244dab7a", - "sourceName": "@openzeppelin/contracts/utils/Counters.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "Counters" - ] - }, - "/home/user/WebstormProjects/block-explorer/node_modules/@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol": { - "lastModificationDate": 1696932068228, - "contentHash": "580a443491d9d70eb064b0130fc3cd01", - "sourceName": "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [ - "../ERC721.sol" - ], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "ERC721URIStorage" - ] - }, - "/home/user/WebstormProjects/block-explorer/packages/integration-tests/src/playbook/contracts/MultiTransfer.sol": { - "lastModificationDate": 1701094423518, - "contentHash": "0deb40a841e9013cb6b092470451944f", - "sourceName": "contracts/MultiTransfer.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [ - "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", - "@openzeppelin/contracts/utils/Address.sol" - ], - "versionPragmas": [ - "^0.8.16" - ], - "artifacts": [ - "TokenF2L2" - ] - }, - "/home/user/WebstormProjects/block-explorer/packages/integration-tests/src/playbook/contracts/MyPaymaster.sol": { - "lastModificationDate": 1701094423518, - "contentHash": "9e55ade49d1b94c14905ecb883cd7889", - "sourceName": "contracts/MyPaymaster.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [ - "@openzeppelin/contracts/token/ERC20/IERC20.sol", - "@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymaster.sol", - "@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymasterFlow.sol", - "@matterlabs/zksync-contracts/l2/system-contracts/libraries/TransactionHelper.sol", - "@matterlabs/zksync-contracts/l2/system-contracts/Constants.sol" - ], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "MyPaymaster" - ] - }, - "/home/user/WebstormProjects/block-explorer/node_modules/@matterlabs/zksync-contracts/l2/system-contracts/Constants.sol": { - "lastModificationDate": 1696932060036, - "contentHash": "cc9dd864bd75ae5ab231fbfae7692cd9", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/Constants.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [ - "./interfaces/IAccountCodeStorage.sol", - "./interfaces/INonceHolder.sol", - "./interfaces/IContractDeployer.sol", - "./interfaces/IKnownCodesStorage.sol", - "./interfaces/IImmutableSimulator.sol", - "./interfaces/IEthToken.sol", - "./interfaces/IL1Messenger.sol", - "./interfaces/ISystemContext.sol", - "./interfaces/IBytecodeCompressor.sol", - "./BootloaderUtilities.sol" - ], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [] - }, - "/home/user/WebstormProjects/block-explorer/node_modules/@matterlabs/zksync-contracts/l2/system-contracts/libraries/TransactionHelper.sol": { - "lastModificationDate": 1696932064308, - "contentHash": "d3d97ce1ffa048c9ffebcd845a9944a1", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/libraries/TransactionHelper.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [ - "../openzeppelin/token/ERC20/IERC20.sol", - "../openzeppelin/token/ERC20/utils/SafeERC20.sol", - "../interfaces/IPaymasterFlow.sol", - "../interfaces/IContractDeployer.sol", - "../Constants.sol", - "./RLPEncoder.sol", - "./EfficientCall.sol" - ], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "TransactionHelper" - ] - }, - "/home/user/WebstormProjects/block-explorer/node_modules/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymaster.sol": { - "lastModificationDate": 1696932063876, - "contentHash": "5b6a8d8bf0320ecd1bdc362c4d312eaf", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymaster.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [ - "../libraries/TransactionHelper.sol" - ], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "IPaymaster" - ] - }, - "/home/user/WebstormProjects/block-explorer/node_modules/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymasterFlow.sol": { - "lastModificationDate": 1696932063904, - "contentHash": "875b182d35066260db165e6350aef799", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IPaymasterFlow.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "IPaymasterFlow" - ] - }, - "/home/user/WebstormProjects/block-explorer/node_modules/@matterlabs/zksync-contracts/l2/system-contracts/BootloaderUtilities.sol": { - "lastModificationDate": 1696932059712, - "contentHash": "cf36b27c696f67d72e2eb3219d66ccd1", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/BootloaderUtilities.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [ - "./interfaces/IBootloaderUtilities.sol", - "./libraries/TransactionHelper.sol", - "./libraries/RLPEncoder.sol", - "./libraries/EfficientCall.sol" - ], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "BootloaderUtilities" - ] - }, - "/home/user/WebstormProjects/block-explorer/node_modules/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IAccountCodeStorage.sol": { - "lastModificationDate": 1696932063608, - "contentHash": "05ac1dd6d28b32f9aec9c9835dd7f611", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IAccountCodeStorage.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "IAccountCodeStorage" - ] - }, - "/home/user/WebstormProjects/block-explorer/node_modules/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IContractDeployer.sol": { - "lastModificationDate": 1696932063696, - "contentHash": "04ab6e26fdc17a98e454a2d40b66cef5", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IContractDeployer.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "IContractDeployer" - ] - }, - "/home/user/WebstormProjects/block-explorer/node_modules/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IKnownCodesStorage.sol": { - "lastModificationDate": 1696932063760, - "contentHash": "8b44dba198e4579807dcf9972cedc472", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IKnownCodesStorage.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "IKnownCodesStorage" - ] - }, - "/home/user/WebstormProjects/block-explorer/node_modules/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IImmutableSimulator.sol": { - "lastModificationDate": 1696932063748, - "contentHash": "a67696f328544ef71d1bb0b677b0c383", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IImmutableSimulator.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "IImmutableSimulator" - ] - }, - "/home/user/WebstormProjects/block-explorer/node_modules/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IEthToken.sol": { - "lastModificationDate": 1696932063732, - "contentHash": "51f28834f26a5d384b23a02d670123b2", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IEthToken.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "IEthToken" - ] - }, - "/home/user/WebstormProjects/block-explorer/node_modules/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IL1Messenger.sol": { - "lastModificationDate": 1696932063780, - "contentHash": "b31020815f13cfc6043efc3df1f1d06f", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IL1Messenger.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "IL1Messenger" - ] - }, - "/home/user/WebstormProjects/block-explorer/node_modules/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/ISystemContext.sol": { - "lastModificationDate": 1696932063968, - "contentHash": "499113f82b84e5ea8b54667f54432b4a", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/interfaces/ISystemContext.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "ISystemContext" - ] - }, - "/home/user/WebstormProjects/block-explorer/node_modules/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBytecodeCompressor.sol": { - "lastModificationDate": 1696932063656, - "contentHash": "979ef36bc70c3548c81b3c03df07c73a", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBytecodeCompressor.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "IBytecodeCompressor" - ] - }, - "/home/user/WebstormProjects/block-explorer/node_modules/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/INonceHolder.sol": { - "lastModificationDate": 1696932063852, - "contentHash": "635d8b1fb161434ece83d75563c90d31", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/interfaces/INonceHolder.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "INonceHolder" - ] - }, - "/home/user/WebstormProjects/block-explorer/node_modules/@matterlabs/zksync-contracts/l2/system-contracts/libraries/RLPEncoder.sol": { - "lastModificationDate": 1696932064100, - "contentHash": "57ce78bc816a06b695f053ca3b3e5a5b", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/libraries/RLPEncoder.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "RLPEncoder" - ] - }, - "/home/user/WebstormProjects/block-explorer/node_modules/@matterlabs/zksync-contracts/l2/system-contracts/libraries/EfficientCall.sol": { - "lastModificationDate": 1696932064068, - "contentHash": "57bf5cbfd3226e021863b79cceb0c8ec", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/libraries/EfficientCall.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [ - "./SystemContractHelper.sol", - "./Utils.sol", - "../Constants.sol" - ], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "EfficientCall" - ] - }, - "/home/user/WebstormProjects/block-explorer/node_modules/@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBootloaderUtilities.sol": { - "lastModificationDate": 1696932063632, - "contentHash": "071dbd56f1fcce9fdbcbc21872002d4a", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IBootloaderUtilities.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [ - "../libraries/TransactionHelper.sol" - ], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "IBootloaderUtilities" - ] - }, - "/home/user/WebstormProjects/block-explorer/node_modules/@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/IERC20.sol": { - "lastModificationDate": 1696932066540, - "contentHash": "ad7c2d0af148c8f9f097d65deeb4da6b", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/IERC20.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "IERC20" - ] - }, - "/home/user/WebstormProjects/block-explorer/node_modules/@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/utils/SafeERC20.sol": { - "lastModificationDate": 1696932066744, - "contentHash": "8ad35cad9b6ff0ffc1dd550ad873b005", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/utils/SafeERC20.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [ - "../IERC20.sol", - "../extensions/IERC20Permit.sol", - "../../../utils/Address.sol" - ], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "SafeERC20" - ] - }, - "/home/user/WebstormProjects/block-explorer/node_modules/@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractHelper.sol": { - "lastModificationDate": 1696932064172, - "contentHash": "d44c4d1e5757a576ca9eeee0e6294f39", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractHelper.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [ - "../Constants.sol", - "./SystemContractsCaller.sol", - "./Utils.sol" - ], - "versionPragmas": [ - "^0.8" - ], - "artifacts": [ - "ISystemContract", - "SystemContractHelper" - ] - }, - "/home/user/WebstormProjects/block-explorer/node_modules/@matterlabs/zksync-contracts/l2/system-contracts/libraries/Utils.sol": { - "lastModificationDate": 1696932064360, - "contentHash": "728dbbafd196a789d9c27fd56e75978f", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/libraries/Utils.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [ - "./EfficientCall.sol" - ], - "versionPragmas": [ - ">=0.8.0" - ], - "artifacts": [ - "Utils" - ] - }, - "/home/user/WebstormProjects/block-explorer/node_modules/@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractsCaller.sol": { - "lastModificationDate": 1696932064252, - "contentHash": "452f2673fe40e625be94629084ed91cd", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/libraries/SystemContractsCaller.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [ - "../Constants.sol", - "./Utils.sol" - ], - "versionPragmas": [ - "^0.8" - ], - "artifacts": [ - "SystemContractsCaller" - ] - }, - "/home/user/WebstormProjects/block-explorer/node_modules/@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/utils/Address.sol": { - "lastModificationDate": 1696932066444, - "contentHash": "4dd40735feabb268b5dab77af993e691", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/utils/Address.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [], - "versionPragmas": [ - "^0.8.1" - ], - "artifacts": [ - "Address" - ] - }, - "/home/user/WebstormProjects/block-explorer/node_modules/@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/extensions/IERC20Permit.sol": { - "lastModificationDate": 1696932066620, - "contentHash": "e2c0f4f502e2fe75be0585737839ba9b", - "sourceName": "@matterlabs/zksync-contracts/l2/system-contracts/openzeppelin/token/ERC20/extensions/IERC20Permit.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "IERC20Permit" - ] - }, - "/home/user/WebstormProjects/block-explorer/packages/integration-tests/src/playbook/contracts/MyERC20.sol": { - "lastModificationDate": 1701094423518, - "contentHash": "1cc108cfc06e9b014d918883ba12e796", - "sourceName": "contracts/MyERC20.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [ - "@openzeppelin/contracts/token/ERC20/ERC20.sol" - ], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "MyERC20" - ] - }, - "/home/user/WebstormProjects/block-explorer/packages/integration-tests/src/playbook/contracts/L2.sol": { - "lastModificationDate": 1701094423518, - "contentHash": "bfc9b6518152360f9571628e502c0446", - "sourceName": "contracts/L2.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [ - "@openzeppelin/contracts/token/ERC20/ERC20.sol" - ], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "L2" - ] - }, - "/home/user/WebstormProjects/block-explorer/packages/integration-tests/src/playbook/contracts/Middle.sol": { - "lastModificationDate": 1701094423518, - "contentHash": "9bb55c95d385c793d7904c4afdf0ccd3", - "sourceName": "contracts/Middle.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "IGreeter", - "Middle" - ] - }, - "/home/user/WebstormProjects/block-explorer/packages/integration-tests/src/playbook/contracts/Root.sol": { - "lastModificationDate": 1701094423518, - "contentHash": "664fb2379ab90e306c20f62d3640d9c1", - "sourceName": "contracts/Root.sol", - "solcConfig": { - "version": "0.8.18", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "viaIR": true, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - }, - "zksolc": { - "version": "1.3.9", - "compilerSource": "binary", - "settings": { - "optimizer": { - "enabled": true, - "mode": "3" - }, - "compilerPath": "", - "experimental": {} - } - } - }, - "imports": [], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "Root" - ] - } - } -}